Book Image

Business Process Driven SOA using BPMN and BPEL

5 (1)
Book Image

Business Process Driven SOA using BPMN and BPEL

5 (1)

Overview of this book

Table of Contents (13 chapters)
Business Process Driven SOA using BPMN and BPEL
Credits
Foreword
About the Authors
About the Reviewer
Preface
Index

How SOA, BPMN, and BPEL Fit Together


SOA provides the technical architecture to develop end-to-end support for business processes. SOA achieves this objective by exposing an organization's IT assets as re-usable business services that can be composed into processes on the one hand, and can integrate and communicate more easily on the other hand.

From the bottom-up perspective, SOA is integration architecture. It provides technologies and approaches for the systematic integration of existing applications and the development of new solutions. With SOA, software architects develop a high-level integration architecture that uses common concepts to share data, information, and business logic between applications in a controlled, transactional manner using a service bus or other supporting technologies, such as rules engines, registries and repositories. SOA is based on typed communication with messages that confirm to common schemas. In new-generation SOA, business events have been introduced, that provide an alternative approach to the realization of one of the most important goals of SOA—loose coupling. Loose coupling is an approach where different software services and components share the lowest common denominator of dependencies. This makes application architecture more robust and resistant to changes. This will allow applications, components, and services to evolve and change with, or without minimal effects on other applications, components, and services.

SOA is also the architecture for designing, automating, and optimizing business processes. The objective of SOA is to provide end-to-end automation of business processes. Business processes in SOA are based on the composition of services and processes using programming-in-the-large technologies, most importantly BPEL. BPEL business processes enable fast development, and are flexible and easy to change and modify in the future, as shown in the following figure:

Another important feature of SOA is that it minimizes the semantic gap between process models and executable code. It achieves this objective by providing a common language to business analysts, IT architects, and developers. BPMN has become the new notation for business process modeling. An automatic round-trip mapping between BPMN and BPEL has also been developed. In this context, we should not forget the importance of re-use, which is the key to fast development of new solutions, and minimized testing efforts (due to re-use of existing artifacts), as shown in the following figure:

Companies that use SOA to develop end-to-end automation of business processes will benefit in terms of agility, flexibility, resilience, quality of service, better collaboration between business and IT, and better chances to develop new innovative business models.

Note

Innovation is the key objective of SOA and end-to-end business process automation. SOA will open up new opportunities for the development of new and innovative business models. Therefore, SOA will become a new key competency factor and an important tool for raising the competitive advantage of companies.

Let us look at some of the benefits of this approach.

Agility

SOA can improve the agility of the whole company by enabling the development and adaption of business processes quickly and efficiently using the composition of services, that is, through programming-in-the-large. As SOA services are designed for re-use and integration, the design, development, and test efforts are considerably reduced. SOA promotes re-use, which leads to increased standardization and compliance at the enterprise level. SOA also minimizes the business-to-IT gap, with the introduction of round-trip mapping between business process models (BPMN) and executable processes (BPEL).

Resilience

SOA is concerned with the development of loosely-coupled information architecture, which shields business processes and services from changes, and functions independently of versions, locations, or technical details of applications systems. SOA also enables easier and less painful migration from legacy systems, consolidation of duplicated resources, master data management, multi-channel access to applications, and the flexibility to develop variants of processes from the same base. Loose coupling enables IT assets to develop and evolve without the limitations imposed by interdependencies and point-to-point integrations.

Alignment Between Business and IT

SOA introduces a new dimension to application development with a major consequence – that of better aligning business with IT. SOA raises the level of abstraction from technologies to business services. SOA introduces business vocabulary to the IT, which simplifies the connection between IT and business people, and enables them to better understand each other. Above all, SOA talks about applications in terms of business processes. Therefore, it does not require complex mapping of requirements to actual software representation. Further, SOA provides the ability to achieve two-way mapping between the business process model and the executable processes (and services). This guarantees better alignment between business and IT in the long run—even after several maintenance and upgrade cycles.

As SOA is related to BPM, it will encourage companies to think about business processes and achieve better collaboration between business analysts and IT. Business will discover that the SOA architecture is agile enough to adapt to requirements quickly, and IT will better understand the needs of the business. This will lead to business process optimizations, improvements, and to overall process excellence, which will have important impacts on the overall efficiency of the company.

New Business Models

SOA has become the new key competency factor across companies. It has achieved this by combining the business requirements with IT capabilities. SOA uses technologies, which enable modeling, execution, configuration, and adaptability of business processes using service composition. These technologies enable better alignment of business and IT, which improves the efficiency of IT, and enables improvement of IT services on one hand, and cost savings on the other. These cost savings can be used for development of new innovative services and products, which will improve the efficiency of the whole company.

SOA also allows easier outsourcing of services, and opens up opportunities for new business models in which the business processes of a company can be exposed to customers and suppliers to achieve much tighter integration with business partners.

How the Puzzles Fit Together

This brings us to the overall picture of SOA architecture, which connects the following technologies:

  • BPMN for business process modeling

  • BPEL for business process execution

  • Services, which represent business logic at various levels of abstraction, and are the basic building blocks of SOA

  • The ESB for managing the communication between processes and services over the bus

  • The registry and repository for registering services, and processes for re-use and governance

  • The rules engine, which is a central place for definition of business rules

  • Human interaction using user tasks, which is used for human workflow in business processes

  • BAM, which is used to monitor activities and processes and to learn about process performance

In addition, SOA is typically related to the following:

  • A presentation layer, which could be a portal providing a unified user experience for all integrated applications

  • Security and identity management, together with single-sign-on, which becomes even more important with the introduction of SOA

The complete SOA architecture is shown in following the figure:

SOA Vendors

The technologies described above are part of SOA platforms, that are offered by major software vendors. Here are some major SOA vendors, which offer complete solutions:

  • Oracle SOA Suite, BPA Suite, BAM, and related products including BEA (recently acquired by Oracle), AquaLogic and WebLogic

  • IBM WebSphere Process Server, Business Modeler, Integration Developer, Process Monitor, ESB, Registry&Repository, and related products

  • Microsoft WCF (Windows Communication Foundation), WF (Workflow Foundation), BizTalk, and the forthcoming Microsoft Oslo

  • Software AG webMethods

  • SAP NetWeaver SOA Middleware

We can find several other companies in the market that offer separate products such as BPEL engines, ESBs, rules engines, and so on. We have not listed them here, as this information can be obtained on the Internet.

An alternative to commercial vendors is an open source implementations. SOA can be developed around open source software. One of the most popular is JBoss Enterprise SOA Platform. We can also use a mix of products such as the Glassfish application server, Open ESB, BPEL engine (such as ActiveBPEL, Apache Agila or Bexee), Drools rules engines, and many more.