Chapter 3. Lotus Notes 8 and SOA

In this chapter, we will introduce the concept of a service oriented architecture (SOAs) and how Lotus Notes 8 fits into one. We will explain what an SOA is, its value, and its characteristics. You will also learn how Lotus Notes 8 has many of the characteristics of SOA components, and how it can help you assemble applications that can play a role in an SOA. (However, this chapter is not intended to provide the in-depth detail necessary to implement your own SOA.)

What is an SOA?

Although the concept of an SOA is simple, the components that make up one can be complex. Additionally, the value and perception of an SOA varies with the perspective and role of organizations and persons considering one. So in this chapter, we'll start with the basic definition of an SOA and then examine specific aspects of SOAs.

"SOA" stands forservice oriented architecture. This definition can often be taken further by adding the word "business", since the inherent value of an SOA comes from business orientation and enablement.

In computing, the term SOA expresses a software architectural concept that defines the use of services to support the requirements of software users. In an SOA environment, nodes on a network make resources available to other participants in the network as independent services they access in a standardized way. Most definitions of an SOA identify the use of web services (using SOAP and WSDL) in its implementation. However, you can implement SOA using any service-based technology.

SOAs can be used to:

  • Build distributed systems that deliver application functionality as services to either end-user applications or other users.

  • Design and implement distributed systems that allow a tight correlation between the business model and its IT implementation.

  • Manage services made available by different software packages for reuse and reconfiguration.

These uses of SOA highlight the fact that they encompasses a wide range of interests.

There are many ways to implement and view an SOA. The specific approach and value proposition depends on the needs of the business and the role of the organization or person considering the SOA. In this chapter, we will focus on how business how to reuse existing Notes-based functions, and how to take existing Eclipse and WebSphere Portal services and incorporate them into new Notes functions.

The Characteristics of an SOA

There are some commonly understood characteristics of an SOA. These include the following:

  • Services are reusable and called by many applications.

  • Service access is with communication protocols rather than direct calls.

  • Services are loosely coupled so that they are autonomous.

  • Interfaces are defined in a platform-independent manner.

  • Services are encapsulated so that the interface doesn't reveal how the service was implemented. (This is called abstraction.)

  • Services share a formal contract.

  • Services are composable (able to be assembled into composite applications).

  • Services are stateless.

  • Services are discoverable.

Later in this chapter, we will examine some of these characteristics and see how Lotus Notes 8 can interact with an SOA.

Perspectives on SOAs

From a business perspective, SOA is about identifying, surfacing, and integrating business services to meet business needs.

From an IT perspective, SOA is about responding quickly to changing business needs. IT organizations must determine what style, patterns, or principles provide architecture capable of responding in a timely fashion. These questions must be answered with the understanding that existing applications and systems have been built over time and are hard-wired together.

Why SOAs Now?

One key factor in the emergence and success of SOAs is the evolution of standards. Standardization has made SOAs more useful now than ever before. In the past, companies have made numerous attempts to develop a standard to support some version of SOAs. Standards such as CORBA and DCOM have existed for a while, but haven not been sufficiently widely adopted to allow true interconnection of companies and people.

Thanks to the Internet and standards such as HTML and HTTP, companies and customers are linked together as never before. This linkage is the key to the interconnection and combination of services that distinguish an SOA. As the Internet has matured, web services standards have emerged; they now have a common set of standards across vendors and businesses. Major vendors have agreed on standardization of web services and have incorporated these standardized services into products, providing unprecedented breadth of tools for supporting an SOA. Standards for interoperability that have been widely adopted include:

  • HTTP

  • XML

  • SOAP

  • WSDL

  • UDDI

  • OASIS standards such as ODF

Other factors play key roles in the adoption of SOAs. For example, mature software and software frameworks are now available across a breadth of vendors, including Eclipse and OSGi. SOA-related governance models and best practices are defined and proven. With the development of the Internet, implementation is now practical, and business/IT collaboration is receiving renewed focus.

SOA Lifecycle

There are four distinct phases to the lifecycle of an SOA: model, assemble, deploy, and manage.

SOA Lifecycle

This lifecycle provides a framework within which an SOA can be built. However, businesses and IT organizations can choose where within the lifecycle to begin an SOA implementation. (One of the key values of SOA is the ability to get quick benefits by assembling and deploying services without waiting for a full-blown SOA definition.)

The Model Phase

The model phase of the SOA lifecycle starts with discovering which program assets can be reuse in new applications. You can discover these hidden assets and determine which programs are good candidates for reuse in web applications with a number of tools already on the market.

As we stated earlier, the key value of an SOA is the surfacing of business services. So as to properly identify the business services and understand how they fit into the business, SOA modelling uses establishes a common understanding of the business processes, objectives, and outcomes between business and IT. The SOA model helps make sure that any IT applications meet the needs of the business and provide a baseline for business service performance.

At the end of the model phase, you should have a clear inventory of assets showing where they can be used in the business processes that you have modelled.

The Assemble Phase

The assemble phase is where programs are wrapped as services and used to create composite applications which bring together core assets that often span multiple platforms. If you use legacy host transactional environments, the tools simplify the development of new web user interfaces, traditional terminal interfaces, and back-end business logic.

During the assemble phase, you can create services out of existing assets such as ERP and financial systems, legacy host applications, and other solutions that are currently running your business. If no functionality exists, you can create and test a service to deliver the functionality required for your business process. Once the required services are available, you can orchestrate them so as to implement your business process.

Lotus Notes 8 includes features to support the assemble phase of SOA development. We will review those capabilities later in this chapter.

The Deploy Phase

During the deploy phase, you can configure and scale the runtime environment to meet the service levels required by your business process. You can optimize the services environment to reliably run mission-critical business processes while providing the flexibility to make updates dynamically in response to changing business requirements.

Once it is configured, you can deploy your business process into a robust, scalable, and secure services environment. This service-oriented approach can reduce the cost and complexity associated with maintaining numerous point-to-point integrations.

The Manage Phase

The manage phase involves managing the underlying service assets, establishing and maintaining service availability and response times, and managing and maintaining version control over the services that make up your business processes. The management phase ultimately enables you to make better business decisions sooner than previously possible.

You can monitor key performance indicators in real time to get the information required to prevent, isolate, diagnose, and fix problems, enabling you to provide feedback into the business process model so as to enable continuous improvement.

Once the SOA has been deployed, you'll need to continue to secure, manage, and monitor the composite applications and underlying resources from both an IT and a business perspective so as to get full value from the SOA. Information gathered during the manage phase on key SOA indicators can provide real-time insight into business processes, enabling you to make better business decisions, and feeding information back into the SOA lifecycle for continuous process improvement.

How Lotus Notes 8 Works with SOAs

Now that we've covered the basics of an SOA, it is time to examine how Lotus Notes 8 fits in. Lotus Notes 8 can help an organization achieve an architecture with SOA characteristics by:

  • Supporting service reuse. Lotus Notes 8 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 further work with SOAs through an open technologies framework

Composite Applications

Lotus Notes 8 has the ability to assemble composite applications. This ability is useful in the assemble phase of the SOA lifecycle. In this section, you will learn what a composite application is and how Lotus Notes 8 enables the assembly of composite applications.

A composite application is a loosely coupled collection of user-facing components brought together for a specific business purpose. Composite applications provide the front end of an SOA. The ability to create and edit composite applications lets you easily combine and reuse different services, providing a tremendous platform for service reuse a key characteristic of an SOA. With Lotus Notes 8, 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 hard-wired into the infrastructure) so they can be easily reused or extended, as business needs change. This is an important element in enabling a business to flexibly respond 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 Lotus Notes 8 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 reuse 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 Client. Composite applications can be built with minimal or no NSF design changes to reuse existing Notes applications as components of the composite application.

Composite Applications

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 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 enables composite- application assembly. The documentation and files necessary to build this example can be found at:http://www-03.ibm.com/developerworks/blogs/page/CompApps?entry=more_sophisticated_tutorial_of_composite

You can also find a blog discussing composite applications in Lotus Notes 8 at:http://www-03.ibm.com/developerworks/blogs/page/CompApps

This example involves three components:

  • Lotus Notes Contacts

  • A Notes Domino forum application

  • An Eclipse component implementing a Tag Cloud

    Composite Applications

The above figure shows the Lotus Notes Contacts view. 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 reuse 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. 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 the Lotus Notes Contacts to create a new, more useful service by loosely coupling these components.

Composite Applications

In the first step in this example, the Lotus Notes 8 Designer is uses WSDL (Web Services Description Language) to expose properties and actions needed to navigate within the Notes Forum application. Below is one screen from the Lotus Notes 8 Designer where the final step of the WSDL creation is being completed.

Composite Applications

In addition to using WSDL, Lotus Notes 8 Designer also allows you to create actions to be implemented during assembly of a composite application. In this case, the action is called Select Person.

Composite Applications

This action will select the forum entry for the current selection in the Lotus Notes Contacts component.

Composite Applications

With the appropriate WSDL action associated with the Notes Forum application, the prerequisites for assembling the composite application are in place. In the following figure, the composite application editor is used to wire the Notes Contact view and the Notes Forum application.

Composite Applications

The result is a composite application in which the Notes Forum entry is displayed based on the selected Notes contact entry. As you can see in the following figure, Betty Zachman of ZetaBank is the currently selected Lotus Notes contact and the Lotus Notes forum has been advanced to show the threads for Betty Zachman.

Composite Applications

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 Notes Forum application.

Composite Applications

In this final figure, the current Lotus Notes contact selection is Betty Zachman and the interest selected is application development. The result is a view of the Notes forum positioned in a thread by Betty Zachman related to application development.

Composite Applications

This simple example shows the power of the 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 reusing existing heterogeneous services.

Lotus Notes 8 and Web Services

Web services producer and consumer capability is not new to Lotus Notes 8. However, the ability to produce and consume web services is a key characteristic of an SOA. This section provides an overview of how Lotus Notes supports web service production and consumption.

A web service provider makes available a WSDL (Web Services Description Language) 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 invokes the web service in response to a SOAP-encoded message sent through an HTTP POST request. An HTTP GET request (for example, a browser query) returns the name of the service and its operations.

  • WSDL returns the WSDL document in response to an HTTP GET.

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 Shared code.

Lotus Notes 8 and Web Services

The web service design window looks a lot like the agent design window. Clicking the New Web Service button creates a new web service. Double-clicking the name of an existing web service opens it for editing.

An example of a web service to access Domino databases can be found here:

http://www-10.lotus.com/ldd/sandbox.nsf/ByDate/7b12bb2e3f4a78be852572c3005bac80?OpenDocument

Lotus Notes 8 and Open Technologies

Lotus Notes 8 supports both OASIS/ODF and Eclipse open formats.

OASIS/ODF

Lotus Notes 8 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. Lotus Notes 8 includes a suite of office productivity tools that allow end users to create, edit, and collaborate on a wide variety of file types. Lotus Notes 8 is packaged with IBM productivity tools that support the OASIS Open Document Format (ODF). ODF is an international standard for saving and sharing editable documents, such as word-processing documents, spreadsheets and presentations.

Eclipse

At the core of Lotus Notes 8 software is IBM's version of Eclipse Rich Client Platform (RCP) technology, which introduces a new open-standards-based SOA that makes 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 (security, synchronization, data, deployment, and more) that 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 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 helps to make 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 reuse existing assets as business needs evolve.

Summary

In this chapter, we introduced service oriented architectures (SOAs) and saw how Lotus Notes 8 supports it. We then looked at several Notes 8 features and capabilities that can help you implement SOA-based architectures within your own organization.

We saw that, with a foundation in open technologies like Eclipse and with the introduction of the composite application editor, Lotus Notes 8 can be a key part of an SOA.

We also saw that currently Lotus Notes 8 only participates directly in the assemble phase of an SOA lifecycle. However, the open framework on which Lotus Notes 8 is based provides a highly flexible platform, and we can expect to see significant growth of Lotus Notes as a key factor in the growth and adoption of SOAs.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset