|
|
||||||||||||||||||||
| Home > SOA + EDA = FUD? | |
| Commentary: |
|
||
Guest Commentary
While Service-Oriented Architecture (SOA) seems to be on everybody's lips these days, some vendors and analysts are proposing an alternative approach known as Event-Driven Architecture (EDA). Some camps even go so far as to say that SOA and EDA are competitive, mutually exclusive concepts, and that enterprises have to choose between one or the other, casting Fear, Uncertainty, and Doubt (FUD) into the decisionmaking processes of IT architectural committees far and wide. Well, if you have some of this FUD yourself, you can relax. ZapThink believes that for all practical purposes, EDA is not truly a separate architectural approach, but is actually core to how companies should implement a proper SOA, and distinguishing EDA as a separate architectural approach is nothing more than a straw man. What is event-driven rrchitecture? SOA, on the other hand, is an architectural approach where software functionality is exposed as loosely coupled, location independent Services on the network. While Web services are not necessary for SOA, SOA based upon Web services is the approach that ZapThink focuses on, and is the architecture that ZapThink believes encompasses EDA's core concepts. In particular, ZapThink believes that SOAs should be asynchronous, because asynchrony is essential to the loose coupling between Service producers and consumers, as well as being core to the fundamental nature of business processes. Are SOAs event-driven? To understand why EDA is a subset of SOA, you need to get into the details of the underlying standards, beginning with SOAP. SOAP supports four interaction patterns: request-response (client to server and back), notification-response (server to client and back), one-way from client to server, and notification from server to client. In this way, SOAP by itself is able to support both remote procedure call (RPC) and document-style interactions, in either a synchronous or asynchronous fashion. In particular, the event notifications core to EDA have been a part of SOAP from the beginning. SOAP by itself, however, does not provide all the detail needed for a full Event-Driven publish/subscribe environment. As a result, there are several initiatives working their way through vendor groups and standards bodies meant to complete this picture: one camp is working on Web Services Notification (WS-Notification), Web Services Base Notification (WS-BaseNotification), Web Services Brokered Notification (WS-BrokeredNotification) and Web Services Topics (WS-Topics), while another camp is working on Web Services Eventing (WS-Eventing), Web Services Dynamic Discovery (WS-Discovery), Web Services Coordination (WS-Coordination), Web Services Metadata Exchange (WS-MetadataExchange), and Web Services Business Activity Framework (WS-BusinessActivity). Now, it's obvious that much work remains to bring this laundry list of specifications into a single streamlined set of standards, but be that as it may, once the dust settles, SOA based on Web Services will offer a complete, robust set of Event-Driven mechanisms. More importantly, ZapThink discusses frequently in its research that as application logic and functionality becomes more coarse grained, they become more "business-like" and less "API-like." At the highest level, all of the details of how the company operates (its processes and services) are hidden from the Service consumer. Invoking these Services then becomes a matter of sending the right messages (or events) to trigger processes to occur that in turn generate subsequent events for further Service processing. Are all EDAs service-oriented? The big problem with fully decoupled EDAs, however, is that they are not particularly good for application-to-application communication. This level of decoupling works for completely unstructured information, for example, textual information intended for human consumption. When one application publishes data for another application to consume, however, in the absence of a Service contract, those data are necessarily fine-grained. In other words, a fully decoupled event might be an alert that a process is complete or might be some kind of acknowledgment, but the subscribing application would be hard pressed to make sense out of a complex, structured event in the absence of a Service contract. The bottom line, then, is that it's possible for an EDA not to be Service-oriented, but for most practical purposes, Event-Driven interactions in an EDA should be Service-oriented. The distinction between the two approaches, therefore, is more of a technical detail than a difference that has any importance to the business. So, what we should be talking about is not a separate concept called EDA, but rather "event-driven SOAs" as a coherent melding of the two concepts. So why all the FUD? It might also be argued that some of our fellow industry analysts have contributed to the FUD. It is the nature of the analyst business that every analyst wants a particular market category or issue that they can champion. If too many analysts are already on the SOA bandwagon, then maybe a different wagon would be less crowded. Unfortunately, such tomfoolery isn't good for IT consumers who look to analysts for insight and direction.
Copyright 2004. Originally published by ZapThink LLC, reprinted with permission. ZapThink LLC provides quality, high-value, focused research, analysis, and insight on emerging technologies that will have a high impact on the way business will be run in the future. To register for a free e-mail subscription to ZapFlash, click here. For more information:
'); // -->
|
|||||||||||||||||||||||||
| About Us | Contact Us | For Advertisers | For Business Partners | Site Index | RSS |
|
|
|
|||||||