Introduction to Service-Oriented and Event-Driven Architectures


By Clive Finkelstein

Service-oriented architecture (SOA) is the term that has emerged to describe executable components - such as Web services - that can be invoked by other programs that act as clients or consumers of those services. As well as the execution of Web services, these services can also be complete modern - or even legacy - application programs that can be invoked for execution as a black box. A developer does not need to know how the programs work, only the input that they require, the output they provide and how to invoke them for execution.

The services are loosely coupled to the client program. They can be invoked based on decisions made by business rules. This means that developers can swap out one service and replace it with another service that is designed to achieve the same or enhanced result without having to worry about their inner workings. Today, standard parts in a car can be interchanged without having to strip down the whole car and rebuild it. With SOA we have similar flexibility, where existing services can be easily replaced by improved services without having to change the internal logic of monolithic application programs as was necessary in the past. Software categories that provide this SOA flexibility are called business process management or business process integration (BPI) products.

A further term also describes these business process management and BPI execution environments: event-driven architecture (EDA). This is an approach for designing and building applications where business events trigger messages to be sent between independent services that are completely unaware of each other. An event may be the receipt by the enterprise of a sales order transaction from a customer for processing. Or, it may be a change in a data value that requires a purchase order to be placed with a supplier when the available quantity of a product in the warehouse falls below a minimum balance threshold.

Because the services in an EDA environment are independent, they are decoupled - as distinct from the loosely coupled services of the SOA-based approach. An event source sends messages to middleware software, which matches the messages against the subscription criteria or business rules of programs or services that want to be notified of these events. Messages are typically sent using the publish-and-subscribe approach because this enables simultaneous delivery to multiple destinations.
Business process management is used for workflow modeling and execution by several products for enterprise application integration (EAI) including Microsoft BizTalk Server and webMethods Business Integrator. IBM, SeeBeyond, TIBCO and Vitria use similar business process management approaches in their EAI products.

Most business process management products to date have used proprietary methods to define process logic in workflow diagrams. To overcome these product-focused solutions, an open architecture approach has been defined for interoperability. Several XML languages have emerged: Business Process Execution Language for Web Services (BPEL4WS), Business Process Modeling Language (BPML) and the ebXML Business Process Specification Schema (BPSS) definitions, and I will address these in the following months.

Source: DM Review