Integration Tier Patterns - Web Service Broker
Problem
You want to provide access to one or more services using XML and web protocols
J2EE applications expose coarse-grained business services using Service Facade (360).
However, these services might be too fine grained to expose as a web service or may not be designed to be exposed outside of their application.
Another factor is that enterprise services run on various platforms and are implemented in a variety of languages.
This heterogeneity often introduces incompatibilities, increasing the amount of complexity involved in seamlessly integrating these systems,
such as with J2EE and .NET applications.
This means that whether you have existing J2EE services, .NET services, or legacy services, you rarely wish to expose each one as a web service.
Even with coarse-grained J2EE services, businesses typically want to expose only a limited set of the J2EE service methods for web service access.
Additionally, systems often have a requirement to coordinate and aggregate several existing services.
Forces
You want to reuse and expose existing services to clients.
You want to monitor and potentially limit the usage of exposed services, based on your business requirements and system resource usage.
Your services must be exposed using open standards to enable integration of heterogeneous applications.
You want to bridge the gap between business requirements and existing service capabilities
Solution
Use a Web Service Broker to expose and broker one or more services using XML and web protocols.
Definition of a web service provided by W3C:
1)A web service is a software system identified by a URI, whose public interfaces and bindings are defined and described using XML.
Its definition can be discovered by other software systems.
These systems may then interact with the web service in a manner prescribed by its definition, using XML based messages conveyed by Internet protocols.
2)A collection of EndPoints.
3)An EndPoint is an association between a binding and a network address, specified by a URL, used to communicate with an instance of a service.
A port indicates a specific location for accessing a service using a specific protocol and data format.
我的理解:
使用Web Service Broker暴露那些比Session Facade粒度更粗,但比整个Service粒度更细的一组服务。
来源:
Core J2EE Patterns 2nd Editioin.chm