Free download. Book file PDF easily for everyone and every device. You can download and read online SOA and WS-BPEL file PDF Book only if you are registered here. And also you can download or read online all Book PDF file that related with SOA and WS-BPEL book. Happy reading SOA and WS-BPEL Bookeveryone. Download file Free Book PDF SOA and WS-BPEL at Complete PDF Library. This Book have some digital formats such us :paperbook, ebook, kindle, epub, fb2 and another formats. Here is The CompletePDF Book Library. It's free to register here to get Book file PDF SOA and WS-BPEL Pocket Guide.

BPMN: An introduction to the standard. The Business Process Model and Notation BPMN is the de-facto standard for representing in a very expressive graphical way the processes occurring in virtually every kind of organization one can think of, from cuisine recipes to the The Business Process Model and Notation BPMN is the de-facto standard for representing in a very expressive graphical way the processes occurring in virtually every kind of organization one can think of, from cuisine recipes to the Nobel Prize assignment process, incident management, e-mail voting systems, travel booking procedures, to name a few.

We give an assessment of how the OMG's BPMN standard is perceived and used by practitioners in everyday business process modeling chores. Related Topics. Web service orchestration. Follow Following. Virtual Reference Service. Software as a Service. Cloud Computing. Web Services and SOA. Ads help cover our server costs. Remember me on this computer.

Popular Tags

Enter the email address you signed up with and we'll email you a reset link. Need an account? This is why such applications are sometimes called stovepipe applications. Let us summarize—on one side we have the business system, which consists of business processes. Business processes define the order of activities and tasks that produce a specific business result. Business processes have to be flexible in order to adapt to customer requirements, to market demand, and to optimize operations.

On the other side, we have the information system with multiple existing applications. Existing applications have important business logic implemented, which a company relies upon to perform business operations. Existing applications are also difficult to modify and adapt because they have not been developed in a flexible way that would allow modifying application parts quickly and efficiently.

Over time, this has resulted in an important loss of alignment between the business system and the information system. This has resulted in applications that do not fully support business tasks, and which have again hindered the evolution of business processes. The consequence has been less flexible and adaptable organizations with less competitive power in the market. Only companies where applications can be quickly and efficiently adapted to changing business needs can stay competitive in the global market.

  1. Core concepts.
  2. The Bolshevik revolution, 1917-1918;: Documents and materials,.
  3. WS-BPEL Approved as an OASIS Standard – Loosely Coupled Thinking;
  4. Account Options.

The loss of alignment between the business and IT has a name—IT gap. An IT gap is a common occurrence in almost every company. It is mainly a consequence of the inability of application developers to modify and adapt the applications to business requirements quickly and efficiently.

The main reason probably hides in the fact that in the past neither programming languages and technologies nor architectural design could have anticipated changes. Existing applications had been designed to last. They had been developed in a tightly coupled fashion, which makes changes to specific parts of applications very difficult.

Because of dependencies such changes usually have several, often unpredictable, consequences. In addition to the complexity and size of the modification, an important factor is also the state of the application being modified. If an application has a well-defined architecture and has been constructed keeping in mind future modifications, then it will be easier to modify.

However, each modification to the application makes its architecture less robust with respect to future changes. Applications that have been maintained for several years and have gone through many modifications usually do not provide robust architecture anymore unless they have been refactored constantly. Modifying them is difficult, time consuming, and often results in unexpected errors. Modifying existing applications therefore requires time. This means that an information system cannot react instantly to changes in business processes—rather it requires time to implement, test, and deploy the modifications.

This time is sometimes referred to as the IT gap time. It is obvious that the gap time should be as short as possible. However, in the real world this is once again not always the case. Modifying them is a complex, difficult, error-prone, and time-consuming task. Companies rely upon existing applications and very often their core business operations would be jeopardized if existing applications fail.

This makes the primary objective of information systems—to provide timely, complete, and easy to modify support for business processes—even more difficult to achieve. Service-Oriented Architecture We have seen that the lack of alignment between business and IT is a common occurrence in almost every company. The alignment of business and IT is very difficult to achieve using traditional approaches. However, if a mediation layer between the business and the information system is introduced, the alignment between business and IT becomes more realistic—meet the Service-Oriented Architecture.

To manage problems related to changing requirements, developments in technology, and integration of different methods have been proposed and used over time. A Service-Oriented Architecture is the latest architectural approach related to the integration, development, and maintenance of complex enterprise information systems. SOA is not a radically new architecture, but rather the evolution of well-known distributed architectures and integration methods.

Integration between applications has evolved from early days into well-defined integration methods and principles, often referred to as Enterprise Application Integration EAI. With the increasing need for integration between companies business-to-business , the focus of EAI has been extended to inter-EAI. SOA improves and extends the flexibility of earlier integration methods EAI and distributed architectures, and focuses on the reusability of existing applications and systems, efficient interoperabilities and application integrations, and the composition of business processes out of services functionalities provided by applications.

An important objective of SOA is also the ability to apply changes in the future in a relatively easy and straightforward way. Let us look at the definition of SOA, as provided by Bernhard Borges, Kerrie Holley, and Ali Arsanjani: SOA is the architectural style that supports loosely coupled services to enable business flexibility in an interoperable, technology-agnostic manner.

SOA consists of a composite set of business-aligned services that support a flexible and dynamically re-configurable end-to-end business processes realization using interface-based service descriptions. The end-to-end automation of business processes with BPEL fills the gap towards the business system. The services fill the gap towards the information system. Let's look at these two goals more closely. BPEL From the perspective of business systems, it is important that IT provides applications that support business processes from the beginning to the end or end-to-end.

Such support however has to be flexible, so that business processes can be modified quickly. BPEL is the most popular, commonly accepted specialized language for business process automation, and the main topic of this book. BPEL is a special language, designed to execute business processes using a special server—the process server.

BPEL promises to achieve the holy grail of enterprise information systems—to provide an environment where business processes can be developed in an easy and efficient manner, directly executed, monitored, and quickly adapted to the changing needs of enterprises without too much effort. SOA enables us to develop a modular, loosely coupled architecture which can overcome the difficulties of existing architectures. The end-to-end automation of business processes can only be successful if sound, robust, and reliable applications are available underneath. This goal can only be achieved by developing a flexible architecture, where applications consist of modules.

In SOA, modules are called services.

  • The Hound of the Baskervilles (Sherlock Holmes, Book 5);
  • Stay ahead with the world's most comprehensive technology and business learning platform..
  • Recent Posts?
  • UnFrosted!
  • Connect with OASIS.
  • WS-BPEL Approved as an OASIS Standard – Loosely Coupled Thinking.
  • They should be reusable and loosely coupled. They should be encapsulated and expose the operations through interfaces. Finally, the application architecture should be consolidated, which means that for a specific functionality only one service should exist. Services guide us into good development practices and away from monolithic, tightly coupled applications. They enable better and more efficient integration.

    Services enable us to modify and adapt the applications faster, with less effort, and with less negative consequences. Services are also the main building blocks of BPEL processes. They are the executable artifacts. Those services that expose high-level, coarse-grained operations are called business services. The operations in business services usually represent distinct business activities.

    They are used in business processes; more exactly, BPEL uses business services to execute process activities. In other words, BPEL processes are compositions of business services. Business services provide the functionality, while BPEL processes contain the process flow. Business services should be designed in a reusable manner, which means that a single business service can be used by more than one BPEL process. It also means that only one business service with the same functionality should exist in the system, which leads to consolidation.

    Although services in SOA are one of the most important building blocks, we should not forget about the architecture. Services will fulfill the promises only if they adhere to the architecture. Architectural design should therefore be the key priority. How to develop services There are several possibilities in which we can develop services. This is appropriate for functionalities that are new and not yet covered by existing applications.

    It is particularly important to reuse the logic in existing applications and to integrate new solutions with existing applications. Today, several possibilities exist for exposing existing applications through services, such as facades, adapters, mediators, and so on. Existing applications have an enormous amount of business logic, which should be exposed and reused. SOA provides a standardized way to expose and access the functionalities business logic of existing applications through services.

    From the technical perspective, services can be developed using a variety of distributed architectures. The requirement to expose the functionalities of applications and access them remotely has resulted in several distributed architectures and middleware products over time. The latest distributed architecture is Web Services. Web Services are the most suitable distributed architecture for exposing the functionality of applications as services.

    SOA is not directly related to any technology, although it is most often implemented with Web Services. Web Services are the most appropriate technology for SOA realization. This differs considerably from technology-oriented functionalities, such as retrieving or updating a table in a database. Services in SOA must provide business value, hide implementation details, and be autonomous. They should be abstract and autonomous. Service consumers are software entities, which call the service and use its functionality.

    Interfaces Service consumers access the service through its interface. The interface of a service defines a set of public operation signatures. The interface is a contract between the service provider and a service consumer. The interface is separated from the implementation, is self-describing, and platform independent. Interface description provides a basis for the implementation of the service by the service provider and a basis for the implementation of the service consumers.

    Each interface defines a set of operations. In order to define business services, we need to focus on the correct granulation of operations, and we should standardize interfaces. SOA services are best modeled with coarse granulation. Messages Operations are defined as a set of messages. Messages specify the data to be exchanged and describe it in a platform- and language-independent way using schemas. Services exchange only data, which differs considerably from objectoriented and component approaches, where behavior implementation code can also be exchanged.

    Operations should be idempotent an operation is idempotent if repeated invocations have the same effect as one invocation. Synchronicity Service consumers access services through the service bus. Service consumers can use synchronous or asynchronous communication modes to invoke the operations of services. In synchronous mode, a service operation returns a response to the service consumer after the processing is complete. The service consumer has to wait for the completion.

    Usually we use the synchronous mode with operations in order to complete processing in a short time. In an asynchronous mode, a service operation does not return a response to the consumer, although it may return an acknowledgement so that the consumer knows that the operation has been invoked successfully. If a response is needed, usually a callback from the service to the consumer is used. In such a scenario, a correlation between messages is needed.

    Loosely coupled services are services that expose only the necessary dependencies and reduce all kinds of artificial dependencies. This is particularly important when services are subject to frequent changes. Minimal dependencies assure us that there will be minimal number of changes required to other services when one service is modified. Such an approach improves robustness, makes systems more resilient to change, and promotes the reuse of services. Reusability SOA is about the consolidation of functionalities. Therefore, the common goal is to have a single service for each business functionality.

    WS-BPEL 2.0 Approved as an OASIS Standard

    In other words, we should not allow having more than one service with equal or similar functionalities. To achieve this it is essential to reuse services in different contexts. Reuse is not easy to achieve. First, we have to develop services that are general enough to be useful in different scenarios. Second, developers should first look at existing services, before developing a new one.

    If an existing service fulfills the need, they should reuse it. Reuse is fostered by registries and repositories. Registries and repositories To simplify and automate searching for the appropriate service, services are maintained in service registries, which act as directory listings. Service providers publish services in registries; service consumers look up the services in the registries. Lookup can be done by name, service functionality, or business process properties. UDDI is an example of a service registry. Service registries can improve reuse.

    Registries and repositories play an important role in SOA governance. Quality of Service Services usually have associated Quality of Service attributes. Such attributes include security, reliable messaging, transaction, correlation, management, policy, and other requirements.

    The infrastructure must provide support for these attributes. Quality of Service attributes are often important in large information systems. Quality of Service is also provided by the ESB. Services are composed in a particular order and follow a set of rules to provide support for business processes. The composition of services allows us to provide support for business processes in a flexible and relatively easy way. It also enables us to modify business processes quickly and therefore provide support to changed requirements faster and with less effort.

    For composition, we will use a dedicated language, BPEL, and an engine on which business process definitions will be executed. Only when we reach the level of service composition can we realize all the benefits of SOA. For service development, Web Services technology is usually used. Human task support is related to Identity Management. It also allows us to monitor the Key Performance Indicators KPIs , which is particularly interesting for management, as it allows them to understand better how the business operations perform. With BRMS we can put business rules into a central location instead of hard coding them.

    SOA is a complex architecture, which has to be governed in order to be consistent. Typical activities are related to managing service portfolios and lifecycles, ensuring service consistency, and monitoring service performance. The full architecture of SOA is shown in the following figure: [ 19 ] Introduction to BPEL and SOA The next figure shows the technology view of SOA and positions the above-mentioned concepts: Let us now add the technologies into the previous figure to understand the connection between SOA concepts and the technologies that provide a means for their realization.

    Notice that the mere use of a specific technology does not guarantee that we are building an SOA-compliant architecture. For example, with Web Services we can develop business services for example, a loan application , but we can also develop technology-focused services updating the database, for example. So, it is essential that technologies are used according to the guidelines provided by SOA concepts. The bottom-up view of SOA sees different applications exposing their functionalities through business services.

    This enables access to functionalities services of different existing and newly developed applications in a standard way. Access to services is important because a typical enterprise has a large number of applications that have to be integrated. Developing business services, either through reuse of existing applications or by new development, is not sufficient. We also need to compose services into business processes—this is the second, the top-down, or process-oriented approach to SOA.

    We would obviously prefer a relatively simple and straightforward way to compose and modify business processes. This is where BPEL becomes important. We compose services until the aggregate services provide support for the whole business processes. Business processes are thus defined as a collection of activities through which services are invoked.

    For the outside world that is, for the clients a business process looks like any other service. In real-world scenarios we will usually create two kinds of business processes—those that will contain services from within the enterprise only, and those that will consume services provided by several companies. With service composition, we can use services provided by business partners in our processes, and business partners can use our services in their processes.

    For example, a business process for booking business travel will invoke several services. In an oversimplified scenario, the business process will require us to specify the employee name, destination, dates, and other travel details. Then the process will invoke a service to check the employee's status. Based on the employee status, it will select the appropriate travel class.

    Then it will invoke the services of several airline companies such as American Airlines, Delta Airlines, and so on to check the airfare price and buy the one with the lowest price. The structure of services composed in the business process is shown in the following figure. We also do not care whether the services of airline companies are composed of other, lower-level services. From the perspective of the client for our business process , the client sees the process as any other service and does not care whether the process is implemented through composition of other services, or some other way.

    This stimulates reuse and further composition. Real-world business processes will usually be much more complicated than our example.

    Popular Tags

    Usually they will contain several services and invoke their operations either in sequence or in parallel. They will also contain flow logic, handle faults, take care of transactions and message correlation, and so on. The composition of services into business processes requires the definition of collaboration activities and data-exchange messages between involved Web Services. WSDL provides the basic technical description and specifications for messages that are exchanged.

    However, the description provided by WSDL does not go beyond simple interactions between the client sender and the web service receiver. These interactions may be stateless, synchronous, or asynchronous. These relations are inadequate to express, model, and describe the complex compositions of multiple Web Services in business activities, which usually consist of several messages exchanged in a well-defined order.

    In such complex compositions, synchronous and asynchronous messages can be combined, and interactions are usually long running, often involving state information that has to be preserved. An important aspect is also the ability to describe how to handle faults and other exceptional situations. Given the limitations of WSDL, we need a mechanism to describe the composition of Web Services into more complex processes. With composition, we merge functionalities services into larger services and processes.

    In other words, we do programming in the large, which differs from traditional programming in the small. Programming in the large refers to the representation of the high-level state transition logic of a system. Using programming languages, such as Java, C , and so on, for composition often results in inflexible solutions, particularly because there is no clear separation between the process flow and the business logic, which should not be tightly coupled.

    SOA and WS-BPEL

    In addition to these facts, the composition of business processes has other specific requirements, such as support for many process instances, long-running processes, compensation, and so on. All this makes the use of dedicated solutions reasonable. The disadvantage of using proprietary BPMs is that these are traditionally niche products, sold from a top-down perspective to large business users.

    Such products are usually expensive and bound to a certain provider. This is why we need BPEL. Web Services Web Services are the latest distributed technology and, as we will see, the most suitable technology for the realization of SOA. They have become the commonly used technology for interoperability and the integration of applications and information systems. Web Services provide the technological foundation for achieving interoperability between applications using different software platforms, operating systems, and programming languages.

    They are built on XML. While XML is the de facto standard for data-level integration, Web Services are becoming the de facto standard for service-level integrations between and within enterprises. RPC, ORBs, and component models share a similar communication model, which is based on a synchronous operation invocation. Messaging systems are based on an asynchronous communication model. How Web Services differ from their predecessors Web Services are similar to their predecessors, but also differ from them in several aspects.

    Web Services are the first distributed technology to be supported by all major software vendors. Therefore, they are the first technology that fulfills the promise of universal interoperability between applications running on disparate platforms. This differs from component and distributed object models, where behavior can also be exchanged.

    They are a collection of input, output, and fault messages. This differs from previous distributed technologies. This allows new approaches to message processing. They do not follow the object paradigm. So, connectivity through standard Internet connections, even those secured with firewalls, is less problematic. Web Services technology stack In addition to several advantages, Web Services also have a couple of disadvantages.

    One of them is performance, which is not as good as that of distributed architectures that use binary protocols for communication. The other is that plain Web Services do not offer infrastructure and Quality of Service QoS features, such as security, transactions, and others, which have been provided by component models for several years. AtomicTransaction specifies short duration, ACID transactions, and BusinessActivity specifies longer-running business transactions, also called compensating transactions. Because of their flexibility, interoperability, and other features, Web Services are regarded as the most appropriate technology for exposing the functionalities of applications as services and are therefore the most appropriate technology for realization of SOA.

    Because of their wide support by all major software vendors, Web Services provide the possibility to use the same technology to expose services implemented in a variety of different applications ranging from mainframe-based legacy applications to the modern multitier applications. Usually enterprises already have one or more middleware products, such as messaging systems and ORBs.

    Enterprises cannot afford to replace them overnight with Web Services. Therefore, there is a need to integrate different middleware products, and provide interoperability with Web Services. In such environments, we need ways to connect, mediate, manage, and control the services and particularly the communication between them.

    Enterprise information systems require dependable, robust, and secure service infrastructure. The ESB is the software infrastructure, acting as an intermediary layer of middleware that addresses the above-mentioned requirements. An ESB adds flexibility to the communication between services, and simplifies the integration and reuse of services. An ESB can act as a mediator between different, often incompatible protocols and middleware products.

    The ESB provides a robust, dependable, secure, and scalable communication infrastructure between services. In this manner, the ESB acts as an intermediary. ESB features The ESB enables the communication and management of services, along with providing answers related to the usage of services in complex enterprise information systems. In such environments, support for the centralized, declarative, and well-coordinated management of services and their communication is required.

    Because of existing middleware, the integration of different middleware products and interoperability with other services is required. The ESB is important because it represents the communication backbone for services. Using ESB for communication, we can get rid of point-to-point connections between services and processes.

    ESB also simplifies the transition between development, test, and production environments. The most important features of ESB are service routing, transformation and enhancement, protocol transformation, service mapping, security, and Quality of Service. Protocol transformation can also optimize performance and switch to an optimized protocol for collocated services. This is usually an extension of WSDL bindings. For securing services, authentication and authorization are important; for securing the exchange of messages, encryption is usually applied.

    Currently, there are several products in the market that claim to provide ESB functionality. A good ESB should provide at least Quality of Service support at enterprise level, including reliability, fault-tolerance, and security. If provided by an ESB, services can depend on these features and do not need to implement them themselves. The ESB should also allow the configuration of any combination of these Quality of Service features and provide flexibility.

    An ESB should provide support for a variety of technologies on which services are implemented. NET components, messaging middleware, legacy applications, and TP monitors. The ESB needs to provide flexibility to bind any combination of services without technological constraints. It should also support a combination of different interaction models, such as queuing, routing, and so on, without changing the services or requiring code writing.

    An ESB should make services broadly available.

    Oracle SOA 12c Examples - "CalculatorDemo"

    This means that it should be easy to find, connect, and use a service irrespective of the technology it is implemented in. With a broad availability of services, an ESB can increase reuse and can make the composition of services easier. Finally, an ESB should provide management capabilities, such as message routing, interaction, and transformation, which we have already described. It provides several benefits, including increased flexibility, reduced deployment, development, and maintenance costs, along with increased reliability and manageability.

    The more applications that we implement following SOA concepts, the more services we will have. Managing services becomes a challenging task. Registries and repositories help to answer these and similar questions. They have become an essential part of each SOA architecture. Registries and repositories are used to register services in a central location.

    Once registered, we can search and locate appropriate services. The more metadata about a service we include, the better search capabilities a registry and repository can provide. However, sometimes it might be wise to introduce it from the beginning because once developers get used to a certain development process, it will be very difficult to change their behavior. In addition to the above-mentioned questions, registries and repositories play an important role in service reuse. Somewhat simplifying things, reuse on a service level means that we compose executable processes in BPEL and reuse as many services as possible instead of developing them from scratch.

    Registries and repositories also play an important role in the deployment process. In professional development it is usual to have three environments—development, test, and production. When an application is ready for production use, this requires that it is deployed into the production environment.

    The controlled deployment of processes requires that a process starts to use a production version of services instead of development or test versions. If links to services are hard coded into the BPEL processes, such migrations can be very painful, as it might in a worst-case scenario require the manual change of URL addresses. When deploying a service we might want to know which processes use this service because we might want to retest those processes.

    The understanding of the role of registries and repositories in SOA has changed considerably over the years. A few years ago, we believed that a relatively simple registry, UDDI, would cover all the needs. Today, we have identified that a registry alone is not powerful enough for SOA because in many cases it makes sense to store service metadata as well WSDL interfaces, XSD schemas, and so on. Therefore, today we talk about registries and repositories. This simplifies queries and enables easier locations for the most appropriate services for reuse.

    Stage transitions can trigger automatic actions, such as validators. Registries and repositories also play an important role in SOA governance. SOA, therefore, has to provide support for human tasks. Human tasks are sometimes called user interactions. Human tasks in business processes can be simple, such as approving certain tasks or decisions, or complex, such as delegation, renewal, escalation, nomination, or chained execution.

    Task approval is the simplest, and probably the most common, human task. If the situation is more complex, a business process might require several users to make approvals, either in sequence or in parallel. In sequential scenarios, the next user often wants to see the decision made by the previous user. Sometimes, particularly in parallel human tasks users are not allowed to see the decisions taken by other users.

    This improves the decision potential. Sometimes one user doesn't even know which other users are involved, or whether any other users are involved at all. A common scenario for involving more than one user is escalation. Escalation is typically used in situations where an activity doesn't fulfill a time constraint. In such a case, a notification is sent to one or more users. Escalations can be chained, going first to the first-line employees and advancing to senior staff if the activity is not fulfilled.

    Sometimes it's difficult or impossible to define in advance which user should perform an interaction. In this case, a supervisor might manually nominate the task to other employees; the nomination can also be made by a group of users or by a decision-support system. In other scenarios, a business process may require a single user to perform several steps that can be defined in advance or during the execution of the process instance.

    Even more-complex processes might require that one workflow is continued with another workflow. Human tasks can include data entries or process management issues, such as process initiation, suspension, and exception management. This is particularly true for long-running business processes, where, for example, user exception handling can prevent costly process termination and related compensation for those activities that have already been successfully completed. As a best practice for human tasks, it's usually not wise to associate human tasks directly to specific users.

    It's better to connect tasks to roles and then associate those roles with individual users. This gives business processes greater flexibility, allowing any user with a certain role to interact with the process and enabling changes to users and roles to be made dynamically. To be able to do this, we need to have an identity management system, where users, roles, and groups are managed.

    This can be a simple LDAP or a more sophisticated system. This way, the BPEL process can assign user tasks and wait for responses by invoking the workflow service using the same syntax as for any other service. The BPEL process can also perform more complex operations such as updating, completing, renewing, routing, and escalating tasks.

    People activity is a new BPEL activity used to define user interactions, in other words, tasks that a user has to perform. For each people activity, the BPEL server must create work items and distribute them to users who are eligible to execute them. To specify human tasks the WS-Human Task specification has been proposed. The key objective of BAM is to provide a complete insight into business process execution. BAM allows for the monitoring of KPIs, such as total execution time, average execution time, the execution time of certain activities, and so on.

    This allows us to better understand how the business processes perform. Business Activity Monitoring is the real-time observation of key performance indicators. The most important component of BAM is time. Time is crucial because BAM shows the actual near real-time information on process execution. This way, a company can react quickly and efficiently to changes reflected through process execution.

    Publisher Description

    BAM solutions can provide other useful information. They can show us how many process instances are active at a specific time, how long on average it takes to complete a process, which users employees have started how many process instances, and so on. Note that BAM is not related to automatic activities those implemented by services only. It can be used with human activities as well. In such a case, we can use BAM to observe the productivity of employees. Connecting these data with past data enables BAM to identify critical situations in process execution or even automatically or semi-automatically solve some frequent critical problems.

    The ultimate goal of each BAM user is to optimize the process execution, to improve the process efficiency, and to sense important events and react. The BAM user interface dashboard should be simple and present information and data in an easy and understandable way. It should hide all the complexity behind the scenes.

    Usually a typical BAM user interface uses graphical elements, graphs, and colors to present the data. The next screenshot shows an example of a BAM user interface: In the previous screenshot, we can see the BAM dashboard showing different important information for decision makers.

    In addition to the dashboard, another important part of the BAM is the decision-support module. A module such as this can use decision methods, business intelligence, or simulations for support and can help decision makers take the right decision at the right time, which can improve business efficiency. Experiences have shown that business rules change, sometimes very often.

    Today, business rules are usually coded into different applications and are tightly coupled with the implementation of an application system. Changing business rules is therefore often very difficult and requires modifications to applications. Each modification requires that the developer change the code. After that, testing and deployment has to be done. The same business rules are often implemented in several applications.

    Therefore, if a rule changes, the major challenge becomes to identify which applications this business rule is coded into and to modify each application where such a rule has been used. Business rules are also very common in business processes. Without adapters we would need to manually expose functionality out of such systems, for example by developing corresponding Web Services. As such systems usually have rich functionalities, it would require a considerable amount of time and effort to develop the integration interfaces and services.

    Additionally, when such a system is upgraded, we would need to modify the integration services. Adapters are also useful for accessing database data directly. Such adapters automate the development of data services. Adapters differ in the level of sophistication. The simplest adapters are just API wrappers that expose the interfaces of the external systems as a service usually as a web service. More sophisticated adapters can have smart fault handling mechanisms, can capture events on both sides, allow synchronous and asynchronous interactions, take care of load balancing, performance, scalability, security, and so on.

    When deploying an SOA platform, it makes sense to check whether it provides adapters for the systems that we have deployed in our information system. With adapters, accessing the functionality of such systems will most likely be much simpler than without. All these components have to work together and support one or more composite applications. SCA is based on the idea of service composition orchestration. SCA provides a model for the composition of services and for the creation of service components, including the reuse of existing applications within SCA composites.

    The basic building blocks of SCA are components. Every SCA application is built from one or more components. SCA provides a generalized definition of a component. Implementations may depend on services provided by other components. Such dependencies are called references. Implementations can have properties through which the business function can be influenced. The component configures the implementation by providing values for the properties and by wiring the references to services provided by other components. An SCA component is represented as follows: Service components are assembled into applications, called composites.

    Composites can contain components, services, references, properties, and wiring. Composites themselves can also be used as components and can provide services. They can depend on references and expose properties. Composites can be used within other composites.

    This allows a hierarchical construction of composite business applications, where high-level services are implemented by sets of lower-level services. An SCA Domain represents an area of business functionality with the related services. SOA is a distributed architecture where applications consist of services and processes. The objective of SOA governance is assurance that all services and processes within an information system will adhere to the overall architecture. Without governance, SOA will most likely fail to deliver its value to the stakeholders.

    Understanding BPEL The general adoption of business process automation solutions requires a standard foundation and a specialized language for composing services into business processes that provide the ability to express business processes in a standardized way, using a commonly accepted language. BPEL is such a language and is quickly becoming the dominant standard. Within enterprises, BPEL is used to standardize enterprise application integration and extend the integration to previously isolated systems.

    Between enterprises, BPEL enables easier and more effective integration with business partners. BPEL stimulates enterprises to further define their business processes, which in turn leads to business process optimization, re-engineering, and the selection of the most appropriate processes, thus further optimizing the organization. Definitions of business processes described in BPEL do not influence existing systems.

    BPEL is the key technology in environments where functionalities already are, or will be, exposed via Web Services. With increases in the use of web service technology, the importance of BPEL will rise further. Since then SAP and Siebel have joined in, which has resulted in several modifications and improvements and the adoption of version 1.

    This has led to even broader acceptance in industry. BPEL combines both approaches and provides a rich vocabulary for the description of business processes. In this book, we will use BPEL version 2. BPEL version 2. Familiarity with them is helpful for learning BPEL. To a certain extent, BPEL is similar to traditional programming languages.