elstar IT

Fullstack | Java | Tech Speaker | Tech Coach | Frank van der Linden

  • About me
  • Blog license
  • My Open source projects

Make the NSF modern again with OpenNTF Domino API

18-01-2018 one response flinden68 business community development hrassistant

Currently the Domino Jam 2025 on  underway, both on premise or online, where you can have a say about the missing features for the next Domino releases.

Go participate today, https://www.ibm.com/developerworks/community/groups/community/domino2025.

One of the idea posted by my fellow IBM Champion Daniele Grillo about moving the NSF to a more modern NoSQL approach. I totally agree with him.

Domino/NSF has some very cool features like security. But also a few but very annoying limitations.

MongoDb and CouchDb (or Cloudant) to mention a few very popular NoSQL datastore has overtaken Domino/NSF. The documents are stored as JSON, which makes it very flexible.

Make it modern with OpenNTF Domino API

For HR Assistant we store everything in a Cloudant datastore running on Bluemix. With a OSGi plugin who do the conversion from Java objects to JSON both ways, we store all the data.

A customer had the requirement to save all the data in a NSF, which was not our preferred way. One plus was they were not using the Notes Client to view the data.

So I was looking around who to do it and I found a solution, thanks to Paul Withers (as always ;-))

OpenNTF Domino API has a build in mechanism to convert a field to RichText if the stored data is too big for a normal field.

That was the solution to store all the JSON data direct in 1 notes field, in a document. Almost the way we store the data in a Cloudant datastore. In the end I created a DominoJSONService class with a few CRUD methods

A small code example which shows I can feed the method every object

DominoJSONService example

I store all the data in ‘json’ field, with Jackson Json Mapper to convert the Java objects to JSON.

For this purpose I also store the dataType, which is used in the selection formula of the view.

 

This opens up lots of possibilities for the ‘old’ NSF.

Happy coding

 

 

Tags: business, hrassistant, openntf

One thought on “Make the NSF modern again with OpenNTF Domino API”

  1. Richard Moy says:
    19-01-2018 at 20:26

    Frank,

    We have been using NSF as a JSON datastore for almost 8 years now and it works great. Advantages that MongoDB and others do not have is built-in security in the database, record, field and subfield level. You can have encryption in MongoDB and CouchDB, but that is different then how NSF works. The biggest challenge was creating a LotusScript based JSON parser that was fast and flexible. Regardless of how many applications or users, we have a single datastore design for NSF which makes it easier to maintain. Data format is JSON regardless of what application. You have on single datastore form.

    Developer should not complain about any size limitation that NSF have. We have not run across anything so far except maybe it is not as fast as MongoDB or CouchDB for raw speed writing which is not what we do. We design for security not raw speed.

    Reply

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

  • « Talk to an IBM Champion and get a discount for IBM Think
  • I will be speaking at EntwicklerCamp, again »

Contact me

My name is Frank van der Linden and I am an independent software developer based in the Netherlands. The last 2 years I was awarded as IBM Champion. Also I am on the board of OpenNTF. My specialisations are Java, Web development and Domino.


If you want to hire me, please fill in the Contact form


IBM Champion web badge
Apache Logo

All the code on this blog are under the Apache License 2.0. For more details, see Apache License 2.0

Most recent posts

  • Engage 2020: Hello are you listening, There is stream for everything
  • Spring Cloud Function on Azure run locally
  • Deploy Spring Cloud Function to IBM Cloud
  • Speaking (again) at Engage in a Zoo
  • Congratulations, you’re an IBM Champion (again)!

Latest reactions

  • Spring Cloud Function on Azure run locally - elstar IT on Deploy Spring Cloud Function to IBM Cloud
  • flinden68 on Quick XPages tip: add Fullcalendar plugin to your application
  • Rajesh samal on Quick tip: Swagger support for Spring Webflux
  • dsieyx on Quick XPages tip: add Fullcalendar plugin to your application
  • John on Named as IBM Champion 2019

Archive

  • March 2020
  • February 2020
  • January 2020
  • October 2019
  • September 2019
  • June 2019
  • May 2019
  • April 2019
  • March 2019
  • January 2019
  • December 2018
  • October 2018
  • September 2018
  • May 2018
  • April 2018
  • March 2018
  • February 2018
  • January 2018
  • December 2017
  • November 2017
  • October 2017
  • July 2017
  • June 2017
  • May 2017
  • April 2017
  • March 2017
  • February 2017
  • January 2017
  • December 2016
  • November 2016
  • October 2016
  • September 2016
  • August 2016
  • June 2016
  • May 2016
  • April 2016
  • March 2016
  • February 2016
  • December 2015
  • November 2015
  • October 2015
  • September 2015
  • August 2015
  • July 2015
  • June 2015
  • May 2015
  • April 2015
  • March 2015
  • February 2015
  • December 2014
  • October 2014
  • September 2014
  • August 2014
  • July 2014
  • June 2014
  • May 2014
  • April 2014
  • March 2014
  • February 2014

Category

  • bluemix
  • business
  • cloudant
  • community
  • development
  • hrassistant
  • openntf
  • running
  • salesforce
  • Springboot
  • Tesla
  • trailrunning
  • Uncategorized
  • watson
  • OpenNTF
  • Collaboration Today
  • XSnippets
  • Stackoverflow
  • IBM Collaboration Solutions
  • Social Business Toolkit
  • About me
  • Dutch curriculum vitae
  • English curriculum vitae
  • Google+
  • LinkedIn profile
  • Twitter
  • Slideshare
  • Blog license
  • My open source projects