164 Patterns: Implementing Self-Service in an SOA Environment
򐂰 Web services architecture
򐂰 Web services design considerations
򐂰 The key challenges in Web services
򐂰 Best practices for Web services
7.3.1 Web services architecture
Web services are deployed on the Web by service providers. The functions
provided by the Web service are described using the Web Services Description
Language (WSDL). Deployed services are published on the Web by service
providers.
A
service broker helps service providers and service requestors find each other.
A service requestor uses the Universal Discovery Description and Integration
(UDDI) API to ask the service broker about the services it needs. When the
service broker returns the search results, the service requestor can use those
results to bind to a particular service.
As we can see in Figure 7-9:
򐂰 Web service descriptions can be created and published by service providers.
򐂰 Web services can be categorized and searched by specific service brokers.
򐂰 Web services can be located and invoked by service requesters.
Figure 7-9 Web services roles and operations
We can now look at the building blocks of Web services:
򐂰 SOAP
򐂰 UDDI
򐂰 WSDL
F
i
n
d
Bind/Invoke
Service
Requester
Service
Provider
Service
Broker
P
u
b
l
i
s
h
W
S
D
L
,
U
D
D
I
W
S
D
L
,
U
D
D
I
SOAP
Chapter 7. Application and system design guidelines 165
SOAP
SOAP is a network-, transport-, and programming language-neutral protocol that
allows a client to call a remote service. The message format is XML. The
currently adopted standard is W3C’s SOAP 1.1 specification, while SOAP 1.2 is
in the review process.
SOAP has the following characteristics:
򐂰 SOAP is designed to be simple and extensible.
򐂰 All SOAP messages are encoded using XML.
򐂰 SOAP is transport protocol independent. HTTP is one of the supported
transports. Hence, SOAP can be run over an existing Internet infrastructure.
򐂰 There is no distributed garbage collection. Therefore, call by reference is not
supported by SOAP; a SOAP client does not hold any stateful references to
remote objects.
򐂰 SOAP is operating system independent and not tied to any programming
language or component technology. It is object model neutral.
Due to these characteristics, it does not matter what technology is used to
implement the client, as long as the client can issue XML messages. Similarly,
the service can be implemented in any language, as long as it can process XML
messages.
WSDL
The Web Services Description Language (WSDL) is an XML-based interface and
implementation description language. WSDL1.1 provides a notation to formally
describe both the service invocation interface and the service location.
WSDL allows a
service provider to specify the following characteristics of a Web
service:
򐂰 The name of the Web service and addressing information
򐂰 The protocol and encoding style to be used when accessing the public
operations of the Web service
򐂰 Type information, including operations, parameters, and data types
comprising the interface of the Web service, plus a name for the interface
A WSDL specification uses XML syntax, therefore, there is an XML schema for it.
UDDI
UDDI stands for Universal Description Discovery and Integration. UDDI is both a
client-side API and a SOAP-based server implementation that can be used to
store and retrieve information on service providers and Web services.

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.