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

SOA Inception


So far, we have seen that SOA is a comprehensive project that includes:

  • Business aspects

  • Technical aspects

  • Organization aspects

The most important business aspects, based on an SOA survey that the author has conducted among 283 IT departments of large and medium-sized companies, are:

  • Faster adaptability to changes and better adaptation of business process

  • Improved efficiency of business processes

  • Better alignment with IT and business requirements

This results of the survey are shown in the following figure:

SOA is a long-term project, and it is very important that it is seen as such. In other words, SOA is a long-term development of the overall IT architecture. To be successful, we have to plan the project carefully:

  1. We have to set the objectives. We have to identify the goals of SOA. It is important that we articulate the objectives very precisely. Just saying that we would like to improve the efficiency of business processes is not adequate. We have to identify which processes we would like to improve, why, when, and by how much. Only when we have a deep understanding of this, will we be able to move forward.

  2. We have to identify the risks. There are many risks involved with the SOA project, starting with the organizational aspects, selection of processes, technology-related risks, and so on.

  3. We have to take the necessary organizational steps and also educate the SOA team members at the same time. Here it is very important to understand that SOA introduces many changes to all aspects of application development. Team members have to understand these changes. They also have to understand the new technologies and languages.

  4. We have to select an appropriate SOA platform. Major vendors today offer SOA platforms that differ in several important aspects. Careful selection is therefore necessary. We have to take into account specific aspects of the environment, existing systems, and existing knowledge in order to make a good decision.

An SOA project is usually started with a pilot project, which should be done with the help of external SOA experts. Within the SOA pilot, several aspects can be addressed. The most important aspect is probably that our team has to get used to the round-trip development of business process modeling, and their transition into executable BPEL processes. In other words, the SOA team has to feel comfortable with the composite approach to development.

SOA Forces

We have seen that SOA aligns the business and IT aspects. Listed here are the five most important business aspects:

  • Business models

  • Business processes

  • Organizational structures

  • Workforce

  • Business functions such as marketing, finance, and so on

The following are the most important IT aspects:

  • IT architecture

  • Application systems

  • Security

  • Transactions

  • Databases

  • Hardware infrastructure

There are four major categories of forces that influence business process automation using IT:

  • Business aspects such as agility, competition, new opportunities, customer demands, and customer contact

  • Organizational aspects such as the need for optimization, improvements in efficiency, and cost reduction

  • Increased complexity, integration demands, and standards

  • Introduction of new technologies, such as Web 2.0, new devices, and architecture

This is illustrated in the following figure:

Value of SOA for IT Departments

Besides having business value, SOA also introduces important benefits to the IT departments:

  • IT departments are under constant pressure due to frequent changes. SOA makes such continuous changes easy, and reduces the negative effects of changes.

  • Duplication of data across different databases and systems is quite common in existing systems. SOA fosters consolidation of data and introduces master data management solutions based on SOA concepts, services, and loose coupling.

  • In existing applications, we usually face duplicated functionalities. SOA fosters consolidation of such duplicated functionalities. Using services, we can expose composed functionalities.

  • When talking about business processes, companies often have variants of business processes that differ only in details. SOA enables support for such variants and their modifications with a common base process.

  • With the diversity of devices, it becomes more and more important to enable access to applications and data through different channels (PCs, palmtops, cell phones, voice, and so on). SOA enables access to processes through different channels.

  • IT departments often do not develop everything in-house. With the existing approaches, it is quite difficult to separate the roles of the external partners (outsourcing partners) and in-house development. Too often, the outsourcing partner has gained control over the application it has developed, and the IT department (and the company as a whole) has become dependent on the partner. SOA enables easier separation of responsibilities, whereby services can be outsourced while their integration into business processes stays in-house. In this way, IT departments retain control over the most valuable know-how a company has: the business processes know-how.

  • Finally, SOA enables the development of service networks, which in turn enable the development of virtual value chains, not only within the company, but also between companies. This can open completely new possibilities in how IT can be used to optimize the business.

Changes in the Development Approach

SOA has also learned from the experiences of the existing software development methods. These methods were based on the specification of requirements, and had foreseen the analysis, design, implementation, testing, deployment, and maybe some other phases. However, the core assumption was that requirements had to be specified as precisely as possible. Changing the requirements has always been seen as something that is undesirable.

The fact today, however, is that changes are expected.

SOA has considered change from the start. Therefore, it has introduced some important modifications to the development approach. Instead of the classic approach shown here:

SOA introduces a modified approach, which consists of the following phases:

We can see that the phases are quite different. Instead of the analysis, the SOA approach foresees modeling, which refers to business process modeling. This way, the development is aligned better with the actual needs of the business. This is the first advantage of the SOA approach.

The second phase in the SOA approach is composition. Composition refers to the way business processes are developed. Instead of traditional implementation in a programming language, such as Java or C#, in the SOA approach, we have to develop business processes so that we can re-use services and compose (orchestrate) them into processes. This approach works best when we already have a portfolio of services such as:

  • Services from existing applications, where we expose business logic as services

  • Services that are bought, or for which development is outsourced, to external companies

  • Services developed in-house

In all three scenarios, we have to follow certain guidelines. The most important one is that we develop services that are re-usable. This is not an easy task and we will talk more on this later in this section, when we describe the technical characteristics of SOA.

Re-usable services are very important for SOA, because they represent "big" building blocks, which contain business logic. Developing applications (processes) with such existing building blocks is much faster compared to the traditional approach in Java or C# (even if we have some libraries available). Therefore, the SOA approach to development is sometimes called programming-in-the-large. Composition of services (using BPEL) has been designed for such a purpose.

The third phase of SOA development approach is testing. Testing SOA applications refers to testing of the process and related services. However, we re-use services that have already been tested. Therefore, the effort required for testing is also reduced, as services do not have to be unit-tested again. Although, processes may still have to be tested (integration testing), the overall effort for testing is reduced.

Finally, we come to the monitoring phase. This phase refers to run-time monitoring of the process performance and includes:

  • Monitoring of business activities, say BAM, which provides valuable information about the performance and efficiency of business processes, and can serve to identify future optimization points.

  • Monitoring of QoA aspects of processes and services, such as response time, security, availability, and so on. This is often related to the definition of a SLA (Service Level Agreement) for processes and services.

Leading SOA platforms from vendors such as Oracle, IBM, Microsoft, and others support both these aspects of process monitoring.

Reduced Complexity

The changes in the development approach described above considerably reduce the overall complexity of the development. According to some estimates, SOA reduces the complexity by approximately 50%. This is very important because the increased complexity of application systems has been a significant source of the problems related to the long response time, needed for application modifications.