Now that we've covered the basics of SOAs, it is time to examine how Lotus Notes 8.5.3 fits in. Lotus Notes can help an organization achieve target architecture requirements with SOA characteristics by:
Supporting service re-use. Lotus Notes 8.5.3 does this by providing a composite application development capability, and by providing web service consumer and producer capability.
Enabling further extension of Lotus Notes to work with SOAs through an open technologies framework.
Lotus Notes 8.5.3 has the ability to assemble composite applications. This ability is useful in the Assemble phase of the SOA lifecycle.
A composite application is a loosely coupled collection of user-facing components brought together for a specific business purpose. Composite applications provide the frontend of an SOA. The ability to create and edit composite applications lets you easily combine and re-use different services, providing a tremendous platform for service re-use—a key characteristic of an SOA. With Lotus Notes 8.5.3, server-managed, NSF-based composite applications can be created or edited. An NSF-based composite application can consist of NSF, Eclipse, and WebSphere Portal components.
Elimination of information and service "silos" is a key benefit of composite applications for end users. With composite applications, the services are loosely coupled and independent (not hardwired into the infrastructure), so they can be easily re-used or extended, as business needs change. This is an important element in enabling a business to respond flexibly to business changes and to alter application interactions as needs dictate. Available online or offline, composite applications can facilitate self-service activities. Using the Composite Application Editor within the Lotus Notes 8.5.3 software, end users and LOB managers can create composite applications. IT staff can use their current development skills to build and modify reusable components, helping to reduce IT and development costs. Organizations can re-use previously developed Eclipse technology-based components within the composite applications experienced by Lotus Notes and Domino 8 software, helping to increase return on investment in application development tools and skills.
The Composite Application Editor is an install-time option of the Lotus Notes 8.5.3 client. Composite applications can be built with minimal or no NSF design changes to re-use existing Lotus Notes applications as components of the composite application.
Development responsibilities for building composite applications can be distributed across several types of application development and administration team members. The process does not have to be restricted to a highly skilled component developer. The roles in composite application development typically include the following:
A component developer who designs and creates NSF and Eclipse components
An application assembler who defines and assembles the composite application, and who may be a business user
An application administrator who deploys portlets onto the WebSphere portal and maintains NSF-based composite applications on the Domino server
The following section provides an example of how Lotus Notes 8.5.3 enables composite application assembly. The documentation and files necessary to build this example can be found by visiting http://www-03.ibm.com/developerworks/blogs/page/CompApps?entry=more_sophisticated_tutorial_of_composite.
The first component of this example is Lotus Notes contacts.
The following screenshot shows the Contacts view of Lotus Notes. On its own, this component shows a list of contacts and has a preview pane showing the details for the currently selected contact. Certainly, this is a valuable service by itself. But our example shows how you can re-use this service, combine it with other services, and extend the value of this component:
The second component of this example is a Lotus Notes discussion application that is shown in the following screenshot. This component allows users to discuss topics (in this case, Lotus Notes Designer) in a user discussion forum setting. Again, this on its own is a useful component, but our example will combine this component with Lotus Notes contacts to create a new, more useful service by loosely coupling these components:
In the first step in this example, the Lotus Notes 8.5.3 Designer uses Web Services Description Language (WSDL) to expose properties and actions needed to navigate within the Lotus Notes forum application. The following screenshot is from the Lotus Notes 8.5.3 Designer where the final step of the WSDL creation is being completed:
In addition to using WSDL, the Lotus Notes 8.5.3 Designer also allows you to create actions to be implemented during the assembly of a composite application. In this case, the action is called SelectPerson, as shown in the following screenshot:
This action will select the forum entry for the current selection in the Lotus Notes contacts component, as shown in the following screenshot:
With the appropriate WSDL action associated with the Lotus Notes Forum application, the prerequisites for assembling the composite application are in place. In the following screenshot, the Composite Application Editor is used to wire the Lotus Notes Contacts view and the Notes forum application:
The result is a composite application in which the Notes Forum entry is displayed based on the selected Lotus Notes contact. As you can see in the following screenshot, Betty Zechman of ZetaBank is the currently selected Lotus Notes contact and the Lotus Notes Forum has been advanced to show the threads for Betty Zechman.
Next, the Composite Application Editor is used to include an Eclipse tag cloud in the composite application. This component displays tag data about the current contact. This is accomplished by linking the Eclipse component to the Lotus Notes Forum application.
In the following screenshot, the current Lotus Notes contact selection is Betty Zechman and the interest selected is Applications Development. The result is a view of the Notes forum positioned in a thread by Betty Zechman related to Applications Development:
This simple example shows the power of Lotus Notes 8 Composite Application Editor. Minimal Lotus Notes designer effort, combined with use of the Lotus Notes 8 client Composite Application Editor, can produce a new business function re-using existing heterogeneous services.
Web service producer and consumer capability is not new to Lotus Notes 8 and Notes 8.5.3. However, the ability to produce and consume web services is a key characteristic of SOA. This section provides an overview of how Lotus Notes supports web service production and consumption.
A web service provider makes available a WSDL document that defines the service interface. The WSDL document is in XML format. What happens behind the interface is up to the provider, but most providers map the interface to procedure calls in a supported programming language. Incoming requests from a consumer are passed to the underlying code, and results are passed back to the consumer.
Lotus Domino maps the WSDL interface to an agent-like web service design element that can be coded in LotusScript or Java. The web service must be on a Domino server with HTTP enabled. (We can test the web service through an HTTP session in the Notes client preview.) Access is through one of the following Domino URL commands:
OpenWebService:
This invokes the web service in response to a SOAP-encoded message, sent through an HTTPPOST
request. An HTTPGET
request (for example, a browser query) returns the name of the service and its operations.WSDL:
This returns the WSDL document in response to an HTTPGET
request.
Several approaches can be used to create a web service design element in Domino Designer. One approach is to code the service entirely in LotusScript or Java. In this case, saving the design element generates a WSDL document that reflects the LotusScript or Java code. Alternatively, an existing WSDL document can be imported. In this case, the LotusScript or Java code reflects the operations in the imported WSDL document. The web service design element saves the WSDL document as well as the code. If the public interface has not changed, the WSDL document stays as it is. If anything in the coding that affects the public interface is changed, a new WSDL document is generated.
In Domino Designer, the web service design element resides below Agents under the Shared Code element, as shown in the following screenshot:
The Web Services design window looks a lot like the Agent design window. Clicking on the New Web Service button creates a new web service. Double-clicking on the name of an existing web service opens it for editing.
An example of a web service to access Domino databases can be found by visiting the following URL:
Lotus Notes 8.5.x supports both OASIS/ODF and Eclipse open formats.
Lotus Notes 8.5.3 supports both OASIS/ODF and Eclipse open formats. Word processing, spreadsheet, and presentation applications are basic, standard tools that many business users need and use on a daily basis. The Lotus Notes 8 and 8.5.3 product suite includes a suite of office productivity tools that allows end users to create, edit, and collaborate on a wide variety of file types. The Lotus Notes 8.x product suite is packaged with IBM productivity tools that support OASIS. Open Document Format (ODF) is an international standard for saving and sharing editable documents such as word processing documents, spreadsheets, and presentations.
At the core of the Lotus Notes 8.x software (and the higher versions), is IBM's version of Eclipse Rich Client Platform (RCP) technology, which introduces a new, open, standards-based SOA that makes the Lotus Notes 8 software more extensible. In fact, a number of the new features of Lotus Notes 8 are a direct result of this extensibility (for instance, Sametime integration and RSS feed integration).
IBM has built a common client platform named Lotus Expeditor (previously called WebSphere Everyplace Deployment or WED) that packages the Eclipse Rich Client Platform with some extra services such as security, synchronization, data, deployment, and more, which can be used across the IBM software product set. The Lotus Notes 8 client is a consumer of this Lotus Expeditor common platform. This provides additional functionality while ensuring forward compatibility for existing Lotus Notes and Domino applications.
Lotus Notes 8 and 8.5.x software supports nearly all custom Lotus Notes applications built for prior versions and incorporates the open standards of the Eclipse application development framework, allowing the use of a componentized SOA. This provides help in making it easy to aggregate, access, and deploy functionality from a mix of software programs and systems. It enables developers to build applications more quickly and to re-use existing assets as business needs arise.