178 Patterns: Implementing Self-Service in an SOA Environment
򐂰 Bottom-up
If some server-side Java code already exists, the WSDL specification can be
generated from it. The client-side Java proxy is still generated from this
WSDL document.
򐂰 Meet-in-the-middle
The meet-in-the-middle (MIM) development style is a combination of the two
previous ones. There are two variants:
MIM variant 1
Some server-side Java code is already there. Its interface, however, is not
fully suitable to be exposed as a Web service. For example, the method
signatures might contain unsupported data types. A Java wrapper is
developed and used as input to the WSDL generation tools in use.
MIM variant 2
There is an existing WSDL specification for the problem domain; however,
its operations, parameters, and data types do not fully match with the
envisioned solution architecture. The WSDL is adopted before server-side
Java is generated from it.
In the near future, we expect most real-world projects to follow the
meet-in-the-middle approach, with a strong emphasis on its bottom-up elements.
This is MIM variant 1, starting from and modifying existing server-side Java and
generating WSDL from it.
Level of integration between requester and provider
In a homogeneous environment, client and server (requester and provider) use
the same implementation technology, possibly from the same vendor. They
might even run in the same network.
In such an environment, runtime optimizations such as performance and security
improvements are possible. We expect such additional vendor-specific features
to become available as the Web services technology evolves.
We do not recommend enabling such features, however, because some of the
main advantages of the Web service technology such as openness, language
independence, and flexibility can no longer be exploited. Rather, you should
design your solution to loosely couple requester and provider, allowing
heterogeneous systems to communicate with each other.
7.3.3 The key challenges in Web services
Web services can potentially revolutionize application integration by providing a
layer of abstraction between the technology that requests a service and the
Chapter 7. Application and system design guidelines 179
technology that provides the service. In order to achieve this, though, there are
still technical challenges that have to be addressed. This section briefly
describes a few key issues, such as the Extended Web Services Architecture,
security, interoperability, quality of service, and distributed transactions.
Extended Web Services Architecture
In November 2002, W3C released a draft Web Service Architecture specification
that identifies the functional components, the relationships among those
components, and establishes a set of constraints to guide the desired properties
of the overall architecture.
The proposed architecture consists of a basic architecture that defines the
interactions between service requesters and service providers, as discussed in
7.3.1, “Web services architecture” on page 164.
The proposed architecture also defines an Extended Web Services Architecture
that incorporates additional features and functionality. These additional features
include:
򐂰 Asynchronous messaging
򐂰 Attachments typically used to include binary data in SOAP messages
򐂰 Caching
򐂰 Message Exchange Pattern (MEP)
򐂰 Correlation
򐂰 Long running transactions
򐂰 Reliable messages
򐂰 Message authentication
򐂰 Message confidentiality
򐂰 Message integrity
򐂰 Message routing
򐂰 Management messages
򐂰 Session
See the W3C Web Services Architecture specification for more detail:
http://www.w3.org/TR/2002/WD-ws-arch-20021114/
Security
Security concerns are the main limitation of current Web services initiatives. The
Internet and many of its prevalent technologies were not designed with security
in mind. Web services security must also be compatible with the foundational
technologies (SOAP, WSDL, XML Digital Signature, XML Encryption, and
SSL/TLS).
We further discuss the latest development in Web services security in 10.8.1,
“Security considerations for Web services” on page 354.

Get Patterns: Implementing Self-Service in an SOA Environment now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.