It could be the best of both worlds: combining Domino's well-known database replication and workflow capabilities with WebSphere's scalable J2EE platform. Unfortunately, many Domino developers prefer not to take advantage of the benefits of WebSphere, just as many Java and WebSphere folks don't appreciate the value of using Domino on the back end.
But for the many heterogeneous environments out there, the best approach is to leverage the benefits of both technologies. "There are more tools available for programming in WebSphere and J2EE," says Jeffrey Lo, advisory software engineer for IBM's alphaWorks research group. "More importantly, J2EE and WebSphere are based on open standards, so you can use community-contributed code that you can drag off a community Web site or from IBM."
Conversely, there are three good reasons to stick with Domino as a development platform: rapid application development, workflow capability and easy replication of databases, all of which can be very useful in creating Web applications. And organizations that already have considerable data and content stored in a Domino database will likely want to leverage that investment in other, non-Domino applications.
For Domino developers who want -- or are compelled -- to have one foot in the Lotus world and the other in the WebSphere world, however, the key question is how to integrate them in the most efficient manner.
There are several ways to integrate Domino applications and data with WebSphere. Recent WebSphere tips on this site have explained aspects of one integration method: using portlets and WebSphere Portal. But Portal isn't the only way to bring Domino data and applications into the WebSphere Java world. There are other integration techniques that don't require the purchase of WebSphere Portal.
Two other approaches are Domino XML Language (DXL) and Domino Java Server Page (JSP) tag libraries. Each is more suited to certain integration scenarios. DXL, a Domino-extended version of XML, enables developers to generate XML from Domino elements such as forms, views and documents for use in a Web application. Domino JSP tag libraries were designed so that Domino developers with minimal knowledge of Java could create Domino-enabled JSPs for Web applications. (JSPs are extensions of Java servlet technology that enables HTML and Java to be combined on the same Web page, a capability particularly useful with dynamic Web sites.)
Before Domino 6, developers who wanted to integrate Domino data with Java applications using JSP had to build CORBA and IIOP calls into their JSP applications. Not only was this difficult, but the resulting code wasn't very reusable. With the Domino JSP tag library (one of two JSP tag libraries that ships with version 6 and higher), developers can simply insert tags that encapsulate Domino functions and elements into the JSP pages. The tag libraries hide the underlying Java code that connects the JSP to Domino, thereby minimizing how much Java knowledge a developer needs. However, to use the tag libraries, a developer must still be very familiar with the Domino architecture and database design and be able to make system configuration changes. It's a good method for Domino experts who are still new to Java.
According to Lo, Domino JSP tags are also the best method for transactional Web sites -- sites that involve heavy amounts of user input and interactivity -- because they support bi-directional data flow between Domino and WebSphere. An example of a transactional Web site would be a company intranet, where the users would need to go through an authorization and authentication process against a user registry and might be interacting heavily with back-end applications and databases. Other examples are online discussion forums and e-commerce or e-auction sites.
For more presentation-heavy Web sites -- those with more graphics and content and less interactivity and transactions -- XML is the better approach, says Lo.
DXL is XML that follows the Domino document type definition (DTD). It is designed to represent Domino elements in a tree-like, hierarchical structure. Because DXL uses the Domino DTD to describe every element, it is easy for a Domino developer to understand. Using the Java utility class called DxlExporter, which ships with Domino 6.5 or can be downloaded as part of the Lotus XML Toolkit, developers can generate DXL programmatically from Domino elements fairly easily.
However, Lo notes that while DXL is a valid XML document and can be read by non-Domino systems, it is structured around Domino elements and often does not make much sense when used outside of the Domino environment. For instance, a typical XML structure can be extended to describe an "employee" field:
In DXL, however, you must use the Domino "item" element, like this:
<item name="employee"> <text>Jane Doe</text>
XML is more extensible and more readily understood by non-Domino XML developers. And that leads to another good reason to convert Domino data to XML: It can be used by on-staff XML and Web experts, thereby expanding an organization's IT labor force without everyone having to learn LotusScript. Integrating Domino with Web applications using common technologies like Java and XML allows an organization to shift some of the workload to IT people who don't have Domino skills. That, in turn, means the Domino experts can spend more time handling Domino-specific maintenance and development issues.
"The likelihood that you can find someone who knows XML and Java is higher than the odds of finding a person who knows Domino well," says Lo. "So off-loading the presentation-side Web development will make it easier to balance your workforce."
After all, that is one of the key benefits of combining the Domino and WebSphere worlds -- the ability to leverage two sets of capabilities. So, despite the naysayers in both camps, putting a WebSphere front end on a Domino back end does indeed have the potential to provide the best of both worlds.
For more information, read Jeffrey Lo's two-part series on integrating Domino and WebSphere:
"Domino JSP Tag Libraries," at http://www-128.ibm.com/developerworks/lotus/library/dwintegration-jsp/
Also, read the IBM Redbook XML Powered by Domino: How to use XML with Lotus Domino, at http://www.redbooks.ibm.com/abstracts/SG246207.html?Open
Sue Hildreth is a contributing writer and editor based in Waltham, Mass. You can reach her at SueHildreth@comcast.net.