Service-Oriented Architecture (SOA) provides for a set of resources that are linked together on demand. This demand access can be from other systems, and/or users, or even applications that link resources together via a set of standards. Lotus Notes 8.5.3 is built on IBM's release of the Eclipse Rich Client Platform (RCP). As Lotus Notes 8.5 was built based on a set of standard components, it was a part of an SOA. This provides a more extensible server-managed client.
In this chapter, we will introduce the concept of SOA and how Lotus Notes 8.5.3 fits into one such architecture. We will explain what an SOA is, its value, and its characteristics. We will also cover how Lotus Notes 8.5.3 has many characteristics of SOA components, and how it can help you assemble applications that can play a role in SOA.
In this chapter, we will cover the following topics:
What is an SOA?
Why SOAs now?
The SOA lifecycle
How Lotus Notes 8.5.3 works with SOAs
Although the concept of SOA is simple, the components that make up SOA can be complex. Additionally, the value and perception of SOA varies with the perspective and role of organizations and people considering SOA. In this chapter, we will start with the basic definition of SOA and then examine specific aspects of SOAs.
The definition of SOA can often be taken further by adding the word "business", as the inherent value 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 in a network make resources available to other participants in the network as independent services which they access in a standardized way. Most definitions of SOA identify the use of web services (using SOAP and WSDL) in its implementation.
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 re-use and reconfiguration
These uses of SOA highlight the fact that they encompass 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 businesses can re-use existing Lotus Notes-based functions, and how to take existing Eclipse and WebSphere Portal services and incorporate them into new Lotus Notes functions.
There are some commonly understood characteristics of an SOA. These include the following:
Services are re-usable 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
The following screenshot shows how to add an assembled composite application into Lotus Notes Designer 8.5.3:
Later in this chapter, we will examine some of these characteristics and see how Lotus Notes 8.5.3 can interact with an SOA.
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 hardwired together.