Introduction
Over the past few years, Services Oriented Architecture (SOA) has emerged as the leading paradigm for application development for many good reasons. SOA enables the deployment of composite applications adept at handling change in heterogeneous environments prevalent in modern organizations. This white paper touches upon the importance of SOA and composite applications and the reasons for their widespread popularity, but leaves an in-depth discussion to excellent white papers authored by others.
We expound the importance of processes as the backbone of SOA-based composite applications because of their ability to orchestrate services in ways that are unique to each organization and its needs. The importance of processes to SOA makes BPM the central nervous system of SOA. We then explain how the Ultimus BPM Suite provides 360° support for SOA out-of-the-box. Finally, we discuss how Ultimus Adaptive Discovery enables Adaptive SOA for rapid deployment as well as real-time agility of composite applications. Adaptive SOA empowers composite applications to handle the dynamics of change in real-time which is a competitive imperative for modern organizations.
Processes are the Central Nervous System of SOA
Analysts, industry gurus and vendors have written extensively about SOA and why it has become the predominant enterprise architecture. Two examples of articles on SOA that provide a succinct explanation of the technology and its benefits are listed in the references section of this paper. It is not the intention of this white paper to restate the description, evolution, and the benefits of SOA that have brought it to the forefront. However, there are two important attributes of SOA that must be highlighted because of their central relevance to the discussion about Adaptive SOA.
First, in SOA, the logic and rules of many processes can be extracted and abstracted from the underlying application. Traditional enterprise applications are monolithic as illustrated in Figure 1. They try to be as all-encompassing as possible and include all the services (functions), the processes to use these services for delivering value to users, and the logic and rules of these embedded processes. The ability to change the embedded processes, logic and rules is limited and available only through pre-defined templates or configurations. While undoubtedly there are significant benefits of providing complete functionality, the embedding of the processes inside enterprise applications makes it difficult for the application to adapt to the unique needs of different customers. If customer requirements are met by the capability of the embedded processes, then it works well for them. However, if customer requirements are beyond the flexibility provided by the application, the only recourse is to either to customize the application, which adds significant cost, or for the customer to forgo their existing business processes and adopt the ones embedded in the enterprise application. Even more importantly, embedded business processes are constrained to the enterprise application and cannot be easily extended to include the services provided by other applications in the organization.
SOA changes all that by allowing enterprise applications to expose their core services as discrete functions. The consequence is that the processes that consume these services to deliver value to the users and their logic (rules) can be externalized and abstracted as shown in Figure 2. When processes are externalized, they are much more easily customizable to the unique needs and “personality” of each customer, and they can also be easily modified to respond to changes in the business environment.
Second, services in SOA are exposed using an industry-standard protocol. This protocol is generally Web Services which is fast becoming the default lingua franca of software systems. The use of Web Services as the vehicle of integration in SOA means that third-party applications can readily consume the services exposed by enterprise applications without the need for point integration which is expensive and brittle. The use of Web Services provides other benefits. Web Services are based on XML which means they are platform agnostic. They provide means of rapid discovery so that consuming applications can discover not only the services available but also the means of integration with the services. Finally, Web Services provide loose coupling between the provider and the consumer.