As Java and Java-based application servers such as WebSphere become standard elements in most IT environments, the need to migrate Domino applications to Java increases. In this, the first of a two-part story, the authors explore the main differences between Notes and Java applications, and the associated challenges in migrating from Domino to WebSphere. In Part 2, they will explain more about the steps to take when converting a Notes application to Java, and tools and tips that can be of help.
Notes/Domino has a lot of good things going for it. For one, it is a great groupware product -- probably the best tool available for group applications such as document repository, discussion group and workflow. Another factor in its popularity is the fact that the traditional Notes architecture basically has everything on one server: Web, mail, applications and database – even the LDAP module. This is not the case in the J2EE world, where everything is segregated and the Web server, application server and database server typically run on their own machines.
Because all the components of a Domino application are in one box, developers can create the database tables at the same time that the front-end components are developed, thereby facilitating the development of Notes applications.
However, Domino is not the perfect platform for every IT need. As applications grow from serving groups to serving departments and divisions, the data in a Domino application becomes harder and harder to maintain. Eventually, performance decreases. Also, as data becomes more relational and demands more transactions, often the best solution is to move it from a Notes database to a J2EE-based application with a relational database as the back end.
In short, even in the most dedicated of Domino shops, there comes a time when it is necessary to migrate an application to Java. IBM WebSphere is a good product to help accomplish this. But there are still three main challenges to overcome.
User interface. The front end of Notes/Domino has a sophisticated navigation design. Over the Web, few places use Notes-like browsing of sorted and categorized columns; most use only a search function and display results in a simple, non-categorized view. Because replication of the Notes view in WebSphere is not an easy task, staying with the simpler Web interface will speed your conversion process. However, if your users need the Notes view, it can be replicated.
To replicate the Notes view in WebSphere, it is best to write Java tag libraries and use them to build reusable view components. Many developers are using tag libraries based on Jakarta Struts, open source software that provides comparable front-end support for forms entry, display and views.
Database. Notes has a unique, integrated database that is document-based. The advantage of this design is that a Notes developer can easily create a database. So for applications that use a document repository database, a discussion group or simple workflow, Notes is often the top choice.
However, from a relational database standpoint, a Notes database is a de-normalized database (or flat table). This causes problems when you're dealing with situations that require an abundance of relationships with data or many joins of different tables.
To migrate a Notes database to a relational database, the developer must first normalize the Notes database. The challenge is in moving from the flat-file-like Notes database structure to one where there may be multiple tables with complex interrelationships (i.e., a relational structure).
Transactions. Notes has no transaction mechanism built into it. Developers will have to write their own transaction routines, usually by writing some temporary Notes documents and putting everything on the final page for final submission. For instance, when setting up the Domino server, all information -- the server name, password, administrator name, administrator password, etc. -- are collected and submitted on one page. WebSphere and other tools provide better transaction mechanisms, especially for mission-critical programs.
Because it is relatively easy to develop transactions in Java, most of the work required to transition transactions in Notes to Java will simply be in inspecting the Notes code and understanding how the existing transactions work, so they can be recreated in Java.
As data becomes more relational and demands more transactions, the best solution in most cases is to move it from a Notes database to a J2EE-based application with a relational database on the back end. Fortunately, WebSphere is an excellent J2EE platform for building Java applications and converting Domino applications to Java. In addition, there are many tools on the market to help with the various aspects of such a migration.
Chen Lin is the president of ToJava, Inc., a company specializing in tools and expertise to migrate Notes applications to J2EE-based applications. He is a Certified WebSphere Specialist and a Certified Lotus Notes Developer. Prior to founding ToJava, he worked at several Fortune 1000 corporations, including IBM, where he developed high-performance applications. He can be reached at clin@to-Java.com.
Sue Hildreth is a freelance writer based in Waltham, Mass. If you have an idea for a story related to Domino and WebSphere, drop her an e-mail at Sue.Hildreth@comcast.net.