The application development landscape of today's world is completely upside-down. While in the past a platform has to integrate all and should consume open standards, in today's world a platform should be capable of being integrated everywhere and providing open standards. This shift is a logical consequence of the new paradigms of microservices and microservice-oriented architecture. While the previous times an application development platform had to provide as many services as possible to make the development easier, today's world is more pure then ever! But what to do with existing platforms like IBM Domino? Are all the services of IBM Domino only become obsolete because of a new development paradigm?

IBM Domino: Rock-Solid, Low-TCO, and Over 25 Years of Proven Capabilities
IBM Domino delivers a lot of strong services, which are easy to consume if you use IBM Domino as a application development platform. In the beginning, the services where only available for IBM Notes applications, later via Java or COM API for other rich client platforms. With XPages, IBM began to deliver an extended application development experience, based on the at-the-time popular JSF Framework. XPages not only used JSF, it extended it with a lot of brilliant concepts. Even in today's microservice world, XPages is still one of the fastest and most complete application development platforms and there are thousands of applications developed by a huge community, running and bringing value to its users and customers! But instead of feeling proud of the value that these applications bring to their customers, for some different reasons a lot of developers feel themselves unworthy and lousy developers.
... But back on track. IBM Domino is still rock solid and, since FP8, has a recent Java runtime. Feature Pack 9 will bring Designer to the most recent Eclipse-based development platform. But that's not all!!

REST APIs and SmartNSF
To make IBM Domino even more valuable, IBM is providing for the standard services of IBM Domino existing and newly-designed REST APIs. The following services are for the first phase in focus:
  • Data Service
  • Calendar Service
  • Freebusy Service
  • Mail Service

    But there are more under discussion, like Directory Service, Configuration Service, and others.

    But only providing this service is 20% of the work for success. To support the adoption and usage of these services, IBM's Dave Delay has shared a set of OpenAPI Specification based files for freebusy and calendar on OpenNTF's Github Repository. The OpenAPI Specification is today's standard for documenting REST APIs, and the tooling at leverages the OpenAPI Specification to generate source code for the server implementation and, even more importantly, the client code to consume and test the REST API.

    Complete the Story with SmartNSF
    Millions of IBM Notes Applications are still out there, providing value to their customers and covering valuable business needs. What to do with these applications? There are several proven approaches to modernize such an application. Starting with building XPages Applications, using frameworks like Aveedo, Darwino, or Sapho, or exposing the business logic via a REST API. And, to be honest, since version 5 it is possible to write REST APIs based on LotusScript agents, the Extension Library provides a proven REST Service Component, ODA has a REST service framework, and the XPages Toolkit provides a mechanism as well. So why write another REST API Framework (other than "because it's fun")?
    SmartNSF has a single purpose: inspired by Node.js, it lets you define a full REST API with a single file. It protects your business logic and lets you intercept the REST service calls with defined events. SmartNSF is designed for low- and medium-complexity IBM Notes applications and targets the existing Notes/Domino developer. You will be surprised about the simplicity of the approach, so give it a shot! We (Martin Jinoch and I) have released Beta 2 and are working on Beta 3. Our target is to deliver Release 1.0 at Engage.UG. Release 1.0 should contain the capability to export the REST API as OpenAPI Specifications and will also contain a wizard to generate the REST API.

    I hope you now have an first impression and you can understand why REST services are so important. Again (and yes it's a repetition), today's application development platforms no longer have to integrate as much as possible: instead, they have to be ready to be integrated everywhere.

comments powered byDisqus