6.5 Homogeneous Asynchronous Drawbridges


6.5 Homogeneous Asynchronous Drawbridges

In addition the heterogeneous asynchronous drawbridge technology, both Microsoft's .NET and Sun's Java support a homogeneous asynchronous drawbridge technology. In essence, it is a component veneer on top of a message queue. Microsoft calls this technology queued components and Sun calls it message-driven beans . The goal in both cases is to allow the use of a message queue to look as much as possible like an invocation of a method on a native component. I refer to both Microsoft's queued components and Sun's message-driven beans as asynchronous components , which is what they really are.

Remember from the discussion of homogeneous synchronous drawbridges that component technologies use surrogates in both the client and the component process to deal with the ugly details of communications. As shown in Figure 6.4, asynchronous components work in the same way, but their surrogates use a message queue rather than either a proprietary synchronous transport protocol (as do the homogeneous synchronous components) or HTTP (as do the heterogeneous synchronous components).

Figure 6.4. Asynchronous Component

The thin veneer that asynchronous components add to the underlying message queue changes nothing about the characteristics of the message queue itself. The discussion about transactions is therefore just as relevant to asynchronous components riding over message queues as it is to message queues used directly.

In general, I don't like asynchronous components ”either the Sun or the Microsoft flavor. You lose the flexibility of heterogeneity and get nothing in return other than not having to learn the message queue API. Given that use of the message queue API is limited to the envoy, having to learn the API does not seem too onerous.



Software Fortresses. Modeling Enterprise Architectures
Software Fortresses: Modeling Enterprise Architectures
ISBN: 0321166086
EAN: 2147483647
Year: 2003
Pages: 114

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net