Book Image

Design Principles for Process-driven Architectures Using Oracle BPM and SOA Suite 12c

By : Matjaz B Juric, Danilo Schmiedel, Mark Simpson, Torsten Winterberg, Sven Bernhardt, Kapil Pant
Book Image

Design Principles for Process-driven Architectures Using Oracle BPM and SOA Suite 12c

By: Matjaz B Juric, Danilo Schmiedel, Mark Simpson, Torsten Winterberg, Sven Bernhardt, Kapil Pant

Overview of this book

Table of Contents (19 chapters)
Design Principles for Process-driven Architectures Using Oracle BPM and SOA Suite 12c
Credits
About the Authors
About the Reviewers
www.PacktPub.com
Preface
Index

How SOA and BPM fit together


To automate business processes, the challenge from the technical perspective converts to development of process applications, often referred to as composite applications. To be able to develop process/composite applications, that is, to compose business processes out of services, we need corresponding technologies.

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 reusable business services that can be composed into processes on the one hand and can integrate and communicate more easily on the other hand.

SOA 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. In this context, we should not forget the importance of reuse, which is the key to fast development of new solutions and minimized testing efforts (due to reuse of existing artifacts), as shown in the following figure:

Figure 3: Relation between BPM and SOA

The service life cycle enables IT agility, while the process life cycle enables business agility. The following figure shows how the process and service life cycles match and how they interconnect:

Figure 4: Process and service life cycle

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 rule engines, registries, and repositories. SOA is based on typed communication with messages that conform to common schemas. In SOA, in its new-generation avatar, 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 the application architecture more robust and resistant to changes. This will allow applications, components, and services to evolve and change with, or without, minimal effect on other applications, components, and services.

From this perspective, BPM and SOA are crucial to increasing the agility, improving time to market, and lowering the operational costs.

The following figure encapsulates this discussion:

Figure 5: SOA for increased agility

Let's look at some of the benefits of this approach.

Agility

SOA can improve the agility of IT by enabling the development and adaption of business processes quickly and efficiently using the composition of business services, that is, through programming in the large. As business services are designed for reuse and integration, the design, development, and test efforts are considerably reduced. SOA promotes reuse, which leads to increased standardization and compliance at the enterprise level. SOA also minimizes the business-to-IT gap.

Resilience

SOA is concerned with the development of loosely-coupled information architectures, which shield business processes and services from changes and function 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, multichannel 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.

Better aligning business with 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 IT, which simplifies the connection between the 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 a complex mapping of requirements to represent the actual software. 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. The 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 and improvements and overall process excellence, which will have important impacts on the overall efficiency of the company.

New frontiers for SOA

SOA has been evolving over the years and expanded its reach beyond services, orchestrations, mediations, business rules, and human tasks. One of the major enhancements is business events, which are a part of event-driven architecture (EDA). The EDA approach allows us to trigger services by events and not by explicitly invoking operations. This leads to even more loosely-coupled architectures, where a service component can trigger an event and several other components can subscribe to the event.

In addition to simple, event-based relations, events can also represent a means for integration with the Internet of Things (IoT) devices. In such cases, devices will generate large numbers of events, which need to be processed in real time or near real time. In such scenarios, we are not interested in individual events but often need to find patterns in event streams. This brings us to complex event processing (CEP).

The number of events and other data generated by business processes, composite applications, and services opens the opportunity for analysis of this data. This is where SOA connects to big data. Big data is particularly interesting for analyzing great amounts of data, which can be nonstructured or semistructured. Sometimes, this data needs to be analyzed in real or near real time, which brings us to fast data.

Furthermore, SOA has been designed around XML, web services, WSDL, and SOAP. Lately, another type of web service has emerged, RESTful services, or REST for short. REST services differ considerably from SOAP services. Instead of interface with operations, REST services use resources, which map URIs to specific actions. They also utilize HTTP methods. Although REST services can use XML format for payloads, it is more common that they use JavaScript Object Notation (JSON), which is simpler and easier to parse. Introducing REST to SOA has been a challenge lately and has been successfully solved on several SOA platforms, such as Oracle SOA Suite.

REST enablement is important for integration of BPM/SOA solutions with mobile devices and with modern client-side web development HTML5/JavaScript web pages, which are also known as one-page applications.

Mobile enablement is one of the key steps towards multichannel and omnichannel support. In contrast to multichannel support, where different channels for clients exists, possibly all leading to the same business logic in the backend, omnichannel support also provides true integration between channels on the backend, which means that a client can switch channels while retaining the session.

Although SOA is an integration architecture, new challenges have emerged to the integration with the cloud. As more applications use the SaaS model, integration with cloud applications and services needs careful consideration. Cloud integration can be solved with adapters or with Integration Platform as a Service (IPaaS). The cloud also provides new opportunities for integration and process support directly in the cloud.

The cloud is also related with the way applications are packaged and deployed. Traditionally, applications, even if designed and developed according to SOA, are packaged and deployed as single monolith archives (such as SAR, EAR, WAR, and JAR). Scaling such applications in the cloud is, however, not efficient. Therefore, modern applications are built following the microservice architecture that defines autonomous microservices as self-contained building blocks. Microservice architecture considerably improves flexibility and scalability and enables easier migration to new technologies and versions.

Finally, the emphasis on services and their interfaces has become even more important. As the number of APIs is growing, it is not only governance that matters, but the whole API management life cycle. Successful management of APIs is the key to the API economy and will become very important not only for Internet companies, but for all enterprises. The importance is denoted by the API economy.

Oracle SOA Suite

In this book, we will use Oracle SOA Suite 12c, which provides a comprehensive platform for SOA. Oracle SOA Suite provides full support for SOA and also addresses the new aspects of SOA. It provides Oracle Event Processing for EDA and CEP. It provides support for REST services, integration with the cloud, analytics integration, and even tools for API management. For more technical information on Oracle SOA Suite, please refer to www.oracle.com/technetwork/middleware/soasuite/.