Java Reference
In-Depth Information
as a good maintenance solution for larger or geographically dispersed enterprise-level integ-
ration efforts.
Consider the WSDL interface that might expose this same customer relationship management
function:
<service name="CRM">
<port binding="sc:CrmPortBinding" name="CrmPort">
<s:address location="http://soacookbook.com:8080/CustomerService"/>
</port>
</service>
A WSDL and XML Schema wrapper around such a system aids in this effort somewhat, as
you do not reveal the underlying implementation platform, and your services can be main-
tained more independently of the client systems that rely on them. However, the protocol
(HTTP) and the endpoint location of the service are still revealed. Moreover, the message
format is defined by XML Schema, but if it declares that a customer ID is represented as an
integer, you still have some of the same problems of the previous EJB-based solution.
An ESB is one important way that you truly achieve the promise of SOA. Because the ESB
provides a layer of abstraction, clients can talk only to the bus, and not actually ever know the
location of the service endpoint itself. Once the XML message is received on the bus, as the
central integration point, it can perform necessary transformations to ensure that the legacy
CRM system integrates smoothly with the newly acquired system. This is where a canonical
data model gains real importance, as the client systems can still talk in the way they want to,
and the bus can serve to translate the message format as needed.
To take this example further, the bus can aggregate services into a service composition, ex-
posing the desired simple interface to clients, though behind the scenes it is managing the in-
vocation of a set of services working in conjunction to fulfill the request.
Depending on the size of your organization and your proposed SOA buildout, you may want
to consider introducing ESB after the initial phase. In order to minimize initial complexity
and realize ROI more quickly, many SOA practitioners will defer putting an ESB in place un-
til after several services are developed and the basic building block is understood. This view
makes a lot of sense. The only concern is that you will have to re-point clients to a new WSDL
(the ESB proxy representation of the service).
By the end of this chapter, you should be in a position to decide for yourself whether an ESB
has a place in your SOA.
Search WWH ::




Custom Search