The term “service-oriented architecture” (SOA) has been bantered about the industry in various forms over the years. However, since 2001, widely agreed to standards, such as J2EE and web services, above the basic Internet protocols enable a new level of interoperability and SOAs. While many vendors have announced SOA initiatives and platforms, most implementations are dependent upon expensive, closed source platforms. There are also a few open source initiatives for some of the “piece parts” of SOA such as ESB components. JBoss takes a different tack with the JBoss Enterprise Middleware System (JEMS) - its Open Source Platform for SOA. JBoss’s Professional Open Source model presents an affordable, developer-friendly, easily consumed SOA foundation, delivered in JEMS, which will enable a larger number of users and companies to benefit from SOA. JBoss with its large partner ecosystem completes the JBoss SOA story.
JBoss Application Server is widely used today to host SOA end points and Web services and is a key platform in a growing number of SOA deployments. JBoss Portal and JBoss jBPM currently support SOA applications requiring a unified application user interface that can deliver process-driven interoperability with Web services. By incorporating the Drools project, JEMS will enable dynamic processing and intelligent routing within business processes, based on service level agreements or other business rules. The SOA capabilities of JEMS will be further enhanced with the forthcoming release of JBoss Messaging in early 2006, which will be the backbone of JBoss Enterprise Service Bus (ESB), due later in 2006.
JEMS is also the interoperable platform of choice. As exemplified in the recently announced alliance between JBoss and Microsoft, interoperability and flexibility of choice are of paramount importance to Enterprise IT organizations. (See press release “JBoss and Microsoft Outline Interoperability Goals”, September 27 2005 http://www.jboss.com/pdf/press/microsoft.pdf ) JEMS’ combination of open source software and the plug-and-play architecture results in a SOA platform that offers value and opportunity for enterprises and partners alike. JBoss continues to work with partners and potential partners to grow the JEMS ecosystem.
SOA Tiers and Components
The “Logical SOA Tiers and Components” figure illustrates the primary logical tiers from an application perspective within a SOA. The three middle tiers (Presentation, Business, and Intermediary tiers) primarily exist to connect Clients to Resources and to do so in a manner that is efficient, scalable, and minimizes the effect and scope of changes. Within the system, there are three basic elements: Domain Objects (which for JEMS are typically Java objects), Business Services, and Technical Services.
The Client Tier manages interactions with the user. It renders HTML, presents application data, intercepts user input and may even do rudimentary application-specific range and syntax checking. In a J2EE application, this tier typically executes in a standalone Java application, Web browser, mobile device, or B2B gateway.
The Presentation Tier essentially provides different ways for clients to interact with components in the Business Tier such that the Business Services may be shared among multiple applications. It handles exceptions that occur during invocation of the Business Services and also transforms the data in the Domain Objects to other formats required by the different clients in the Client Tier. In essence, the Presentation Tier provides whatever mechanism the client needs to interact with the Business Tier. Thus, while the Presentation Tier may have to change in response to new client requirements or devices, the business logic and Business Services can remain unchanged.
Domain Objects exist in all three middle tiers because their job is to transfer data between system components. For example, the Technical Services in the Intermediary Tier mediate the transfer of data from the Resource Tier to the Business and Presentation Tiers. For example, for reading and writing data, the Persistence Service in the Intermediary Tier interacts with a Domain Object within the Business Tier or Presentation Tier and provides indirect access to the data stored in the backend resource. Changes to the data are then coordinated through the Domain Object and stored in the corresponding repository in the Resource Tier by a corresponding Technical Service.
The Business Tier is responsible for implementing Business Services and making them available as service-oriented interfaces to the Presentation Tier. The Business Services leverage the Domain Objects and the Technical Services to implement the business logic. Note that the Business Tier Domain Objects are the distributable data representation for communicating with the Presentation and Intermediary Tiers.
The Intermediary Tier provides Technical Services such as rules and process/workflow engines, query, transformation, and persistence. In general, if the application requires access to external systems or any third-party component, this tier provides adapters to those resources via Technical Services. These services act as “abstraction layers,” such that a change to, or replacement of, a component in the Resource Tier does not affect components in the Business Tier. The Java Business Integration (JBI) container standardizes the platform for some of the SOA-related Technical Services.
The Resource Tier is where the shared enterprise resources such as database systems, business rules repository, BPM repository, and so forth, reside. These resources can be accessed from the Technical Services in the Intermediary Tier. Some examples of Technical Services accessing resources are: a) the persistence service reading and writing rows to/from the database, b) a process/workflow service initiating and executing businesses processes, c) a rules service executing business rules, and so forth.
JEMS: The Open Source Platform for SOA
JBoss Enterprise Middleware Suite provides components and products for all of the server-side tiers needed to build an SOA. As one can see in the figure “Logical SOA Tiers and JBoss Products”, JEMS’ products span the presentation, business, intermediary, and resource tiers. In order for a business to fully realize benefit from the value proposition of Professional Open Source in their SOA, they require the choice of deploying open source products supporting all of these tiers as they see fit. A “piece parts” or “low-end” application server approach does not work very well, by comparison.
PresentationJBoss offers several approaches to SOA presentation. Key is JBoss Portal with the ability to host JSR-168 portlets for standards-based presentation capabilities. With WSRP coming in the 2nd quarter of 2006, JBoss Portal will add even more value to the Open Source Platform for SOA. JBoss Application Server provides state of the art presentation capabilities with JBoss Seam which is a framework that marries EJB3, JavaServer Faces and jBPM into an easy-to-develop-to web application framework that is unmatched even in expensive proprietary application servers. JEMS also includes Apache Tomcat, the web container that is widely used for more basic applications and presentation requirements.
BusinessThe JBoss Application Server is the market leading business logic platform and offers innovation to enhance developer and operational productivity of business applications and services to be consumed in an SOA. JBoss is a key leader of the Java development simplification efforts manifesting in EJB3 and JBoss Seam. JBoss also has delivered its microcontainer which will enable other JBoss services (e.g., EJB3, web services) to run in other containers and on other application servers. This enhances developer and IT flexibility enabling them to use only what services they need for their applications and SOA deployments.
jBPM delivers capability at multiple SOA tiers. It has a flexible process engine that supports multiple workflow, BPM and orchestration “personalities”. This is a unique feature of jBPM. At the business level, jBPM supports task management and workflow within Java applications bringing key SOA capability into the Java programming environment. jPDL, jBPM’s process language, is designed for embedded workflow processing and business process management. jBPM offers the potential for other BPM vendors to leverage JBoss’s core process engine, adding their language or BPM personality, and focus on higher value activities.
Finally, JBoss is building JBoss Enterprise Service Bus by extending its microcontainer to support Java Business Integration (JBI – JSR-208) interfaces for transport bindings and engine service interfaces that will support intermediary subsystems in the next tier of the SOA.
IntermediaryJEMS includes several products that provide intermediary services in an SOA. These include JBoss Application Server functionality such as web services, JCA, and JMS; Hibernate, JBoss Cache and clustering. These capabilities and products provide access to other resources including data stores, other applications, existing systems and resources allocated to provide high availability.
jBPM’s orchestration engine, implemented in its BPEL support, provide intermediary capabilities amongst a set of services by orchestrating business processes for an SOA. Orchestration of a process leveraging services represents a key process integration point in an SOA.
JBoss Business Rules facilitates knowledge transfer to centralized repositories and helps reduce risk due to the loss of key decision makers, managers and knowledge workers. This loss can cause significant damage to smaller organizations and hamper the efforts of medium and even larger enterprises. By dramatically improving the ability to put knowledge resources to use, JBoss Business Rules can help customize a company’s product and service offerings with specific business rules based on actions, events and previous behavior. This customization can occur on an individual or group basis. These same business rules can also be shared across an SOA to many applications in an enterprise as needed. This reuse and flexibility is a key value proposition of SOA, hence JBoss’s move to federate the Drools project into JEMS as JBoss Business Rules.
JBoss Messaging will be a refactored JBossMQ designed to be the foundation for an ESB as well as enterprise-grade JMS utilization. JBoss Messaging also is architected to enable other messaging protocols to be added as the open source and vendor communities see fit. Its enhancements include higher performance and availability characteristics.
JBoss ESB is going to be a complete enterprise service bus with its first release targeted for mid-2006. This strategy is in contrast to most other recent open source initiatives focused just on a JBI implementation. Some of the projects and products planned to be included in JBoss ESB include JBoss web services, microcontainer extended to support JBI, JBoss Messaging, JBoss jBPM and JBoss Business Rules.
ResourcesJEMS products either access to or provide resource repositories for business processes with jBPM, business rules with Business Rules. JBoss Application Server provides JCA, JMS and web services, to name a few, that access existing application, data and system resources.
Bottom LineJEMS is the Open Source Platform for SOA. It has been built by a large open source community backed by a strong and rapidly growing vendor, JBoss, Inc. JBoss continues to add to the Open Source Platform for SOA by bringing on new projects (e.g., Drools) and adding new partners and alliances (e.g., Microsoft). Unlike other open source efforts by commercial entities, which take open source pieces of the SOA platform and bury them in proprietary offerings; or efforts by other standalone open source efforts which focus on one or a small number of the “piece parts” of an SOA platform, JBoss is committed to delivering a complete Open Source Platform for SOA with its community and ecosystem to JEMS users worldwide.
Other contributors: Shaun Connolly and Don Vines.