Brief overview of modern (2021) server-side development landscape in Domino
by Richard Pajerski
Posted on Thursday October 07, 2021 at 08:21PM in Technology
Among the technical reasons Domino has enjoyed longevity in the application server market are its stability and reliability. But of course technology changes rapidly and being able to successfully adapt to new trends has also kept Domino relevant over the years. Striking a balance between trendy and relevant is not always obvious but the stewards of Domino have generally taken a conservative approach to introducing and supporting new technology which continues to benefit the product in the immediate and long term.
Very briefly then, beyond the tried-and-true world of Notes client server application development, let's look at three modern technology options developers can choose from in 2021:
1. Domino AppDev Pack (https://doc.cwpcollaboration.com/appdevpack/docs/en/homepage.html)
From the site: "The AppDev Pack primarily adds Node.js support to HCL Domino Server."
2. Domino REST API (Project Keep) (https://opensource.hcltechsw.com/domino-keep-docs/)
From the site: "Domino REST API is designed to re-establish Domino as a world class, modern, standards-compliant, cloud native and enterprise-level collaboration platform. It adds contemporary REST APIs to Notes and Domino, enabling a modern programming experience with the tools of your choice."
This is still in beta but will hopefully be out in Domino 12.0.1 later this fall. Domino has for many years had the ability to offer data via a REST API (Domino Access Services) but Keep modernizes that effort by implementing (among other things) OpenAPI and JWT Authorization. In addition, developers will be able to introduce their own server-side modules called "verticles" as Keep runs on top of Vert.x.
3. Tasklets with DOTS - Domino OSGi Tasklet Service (https://help.hcltechsw.com/domino/12.0.0/admin/wn_dotsredux.html)
From the documentation: "DOTS is a generic Domino add-in task that lets users create Domino server tasks by creating a tasklet container using Java OSGi plugins."
Ok, this is not exactly modern -- DOTS was an OpenNTF project that's been available since Domino 8.5.3. Although officially dropped in the Domino 10/11 era it was recently updated and re-introduced in Domino 12.
Strictly-speaking, DOTS is the Domino server task that manages the tasklets which are Java server-side plugins. Tasklets use a standard mechanism for starting/stopping (OSGi-defined) which makes them similar to Java agents but have the additional benefits of (a) not being tied to a specific .nsf file, (b) not requiring a full JVM reload on every execution and (c) better access to the Domino C API.
How are you developing Domino server-side code these days?