Chapter 7. Using Web services 167
Web services defines three terms that are related to the service concept:
????
PortType is the interface exposed.
????
Binding describes the communication details on a specific protocol.
????
Service describes the address of the service.
These concepts are so general that they are applicable to any kind of software
interaction. It does not matter what, how, and where the service is provided.
Thus, we have a general concept that we can used at any level of our software
architecture.
The only issue that we need to think about is how to design the building blocks of
our software to meet the requirements of internal and external reusability,
modularity, and change adaptability.
The standardization process has produced a formal document that expresses
the essence of a service: the Web Services Description Language (WSDL)
document. The W3C organization hosts this specification which, at the time of
writing this book, has reached version 1.2.
The next step is to handle a service without the pain of needing to handle all the
technical details. We need a software library that after inspecting WSDL is able
to invoke services as a black box. In the Java world, the Apache Software
Foundation provides Web Services Invocation Framework (WSIF) as a tool to
achieve this task. WSIF was developed originally by IBM, then it was donated to
Apache. WSIF is different from the JAX-RPC API, because it can invoke any kind
of service, with any kind of binding, not only SOAP services. WSIF extends the
purpose of a SOAP-invocation API to become a shaped tool for a new era of
enterprise application integration (EAI). For more details on the Web Services
Invocation Framework, see:
http://ws.apache.org/wsif/
7.1.2 Web services evolution
New Web services specifications are announced constantly, which can give the
impression that Web services are a volatile technology not yet ready for mission
critical applications. Although the standardization roadmap has many open
topics, there are many specifications that are well defined and solid enough to
give us a first set of powerful features.
We can classify the evolution of the Web services standardization in three
phases:
???? Connection: addresses the communication between the parties
???? Quality of service: addresses security and reliability
???? Enterprise: addresses workflow, transactions, and system management