Java Reference
In-Depth Information
Invocation
As a standard feature, ESBs support synchronous and asynchronous calls to services, and
sometimes callbacks. You can map one service to another if necessary. Some ESBs allow
runtime policy negotiation through WS-MetadataExchange, allowing services to be invoked
on behalf of clients according to what the client's capabilities are for security or other features.
Mediation and protocol independence
Mediation within a bus means that a variety of protocols can be reconciled for complex routes
across a variety of platforms. This allows you to integrate your enterprise but maintain loose
coupling between indirectly connected components. For example, an incoming SOAP mes-
sage over HTTP may need to be formatted for JMS if a backend system on the route requires
this; the bus is capable of handling such mediation.
Buses typically will allow you to plot many different protocols on a message path, including
not only HTTP and JMS but HTTPS, SMTP, XMPP, FTP, and so forth. Many buses feature the
ability to seamlessly connect a variety of other formats such as Electronic Data Interchange
(EDI), JDBC, COBOL copy books, and flat files. This is a powerful feature that allows you
to maintain the independent components within your enterprise as you like, and yet connect
them all with minimal intrusion.
Routing
Many buses support addressing and allow you to perform service lookup in conjunction with
a registry/repository to perform dynamic routing. You can perform routing based on a variety
of possible connection methods, including content-based routing, routing based on a rules ser-
vice, and routing based on policies. Perhaps the most popular of these is content-based rout-
ing, in which, for example, you use XPath to select data from a SOAP envelope and, based on
the content, select a new service destination for the current message.
Some buses offer advanced features such as service pooling, in which the bus can determine
that a particular service endpoint is unavailable (say, due to a crash) and can dynamically route
messages to another service instance in the pool.
Transformation
Data represented as XML can be transformed using XSLT, and queried using XQuery and
XPath. These technologies together allow you to enhance the content of messages to prepare
it for downstream invocation of other systems. If you are using a canonical data model, this
feature is important.
Search WWH ::




Custom Search