Chapter 8 • Web
Services 287
generate the stub and skeleton proxies, respectively. These proxies interact with the SOAP-based middleware.
WSDL code generator tools one of which is reviewed in Section 8.5 below allow automatic generation of Web services, automatic generation of WSDL documents, and invocation of Web
services.
8.3.5 Non-functional Descriptions and Beyond WSDL
WDSL only describes functional characteristics of a particular Web service how to invoke it. But this is only part of the picture and will be sufficient only for standalone Web services that will be
used individually. In some cases, non-functional characteristics such as performance, security, reliability may be important, as well. In a general case, the service consumer needs to know:
• How to invoke the service? supported by WSDL, described above
• What are the characteristics of the service? not supported by WSDL -
Is a service more secure than the others are? -
Does a particular provider guarantee a faster response or a more scalable and reliableavailable service?
- If there is a fee for the service, how does billing and payment processing work?
Service requestor Service provider
WSDL document of service provider
Application object client
SOAP-based middleware
Stub Application object
Web service
SOAP-based middleware
Skeleton
1 3
2
WSDL compiler client side
WSDL compiler server side
WSDL generator
Figure 8-16: From a Programming Interface to WSDL and back to the Program: Step n: generate WSDL documents from interface classes or APIs.
Step o: generate server-side stub from the WSDL document. Step p: generate client-side stub from the WSDL document.
Ivan Marsic • Rutgers University
288
• In what order should related Web services and their operations be invoked? not
supported by WSDL -
How can services be composed to create a macro service often referred to as service orchestration?
The diagram in Figure 8-17 lists the different aspects of Web service description. WSDL focuses on describing individual Web services, and interface and implementation descriptions are the
central elements of describing individual services. Policy and presentation are two concepts that are not in the scope of the core WSDL specification since more standardization work needs to be
done here.
When considering service relationships, or service interactions, programmatic approaches composition vs. configuration-oriented agreements orchestration have to be distinguished.
Orchestration is a synonym for choreography. An emerging specification is the Business Process Execution Language for Web Services BPEL4WS.
Figure 8-17 lists also service and business level agreements, both not yet defined in detail. Some Web services are so simple that they do not need the complete description as shown in
Figure 8-17. A service consumer invoking a standalone service is probably not interested in how the service is orchestrated with other services. Sometimes the consumer does not care about non-
functional characteristics, such as performance or reliability. In addition, non-functional characteristics may be irrelevant if only one provider exists for a service.
8.4 UDDI for Service Discovery and Integration
The discovery agency level connection is a publishfind mechanism Figure 8-1, either used at build-time or runtime. Universal Description, Discovery, and Integration UDDI is an
Business level agreements Service level agreements
Composition Orchestration
Presentation Policy
Implementation description Interface description
XML Schema
Service Description
Service Broker UDDI Registry
Service Broker UDDI Registry
Service Provider
Service Provider
Service Customer
Service Customer
3. BindUse 2
. F in
d S
e a
rc h
1 .
P u
b lis
h R
e g
is te
r Service
Description
Indi vidual
ser v
ic e
de scr
ip ti
on Se
rv ic
e re
lat ion
ships
Figure 8-17: Web service description stack.