Web Service Architecture
There are two ways to view the web service architecture:
- The first is to examine
the individual roles of each web service actor.
- The second is to
examine the emerging web service protocol stack.
Web
Service Roles
There are three
major roles within the web service architecture:
Service Provider
This is the
provider of the web service. The service provider implements the service and
makes it available on the Internet.
Service Requestor
This is any
consumer of the web service. The requestor utilizes an existing web service by
opening a network connection and sending an XML request.
Service Registry
This is a
logically centralized directory of services. The registry provides a central
place where developers can publish new services or find existing ones. It
therefore serves as a centralized clearing house for companies and their
services.
Web
Service Protocol Stack
A second option
for viewing the web service architecture is to examine the emerging web service
protocol stack. The stack is still evolving, but currently has four main
layers.
Service Transport
This layer is
responsible for transporting messages between applications. Currently, this
layer includes Hyper Text Transport Protocol (HTTP), Simple Mail Transfer
Protocol (SMTP), File Transfer Protocol (FTP), and newer protocols such as
Blocks Extensible Exchange Protocol (BEEP).
XML Messaging
This layer is
responsible for encoding messages in a common XML format so that messages can
be understood at either end. Currently, this layer includes XML-RPC and SOAP.
Service Description
This layer is
responsible for describing the public interface to a specific web service.
Currently, service description is handled via the Web Service Description
Language (WSDL).
Service Discovery
This layer is
responsible for centralizing services into a common registry and providing easy
publish/find functionality. Currently, service discovery is handled via
Universal Description, Discovery, and Integration (UDDI).
As web services
evolve, additional layers may be added and additional technologies may be added
to each layer.
The next chapter
explains the components of web services.
Few
Words about Service Transport
The bottom of
the web service protocol stack is service transport. This layer is responsible
for actually transporting XML messages between two computers.
Hyper Text Transfer
Protocol (HTTP)
Currently, HTTP
is the most popular option for service transport. HTTP is simple, stable, and
widely deployed. Furthermore, most firewalls allow HTTP traffic. This allows
XML-RPC or SOAP messages to masquerade as HTTP messages. This is good if you
want to integrate remote applications, but it does raise a number of security
concerns.
Blocks Extensible
Exchange Protocol (BEEP)
This is a
promising alternative to HTTP. BEEP is a new Internet Engineering Task Force
(IETF) framework for building new protocols. BEEP is layered directly on TCP
and includes a number of built-in features, including an initial handshake
protocol, authentication, security, and error handling. Using BEEP, one can
create new protocols for a variety of applications, including instant messaging,
file transfer, content syndication, and network management.
SOAP is not tied
to any specific transport protocol. In fact, you can use SOAP via HTTP, SMTP,
or FTP. One promising idea is therefore to use SOAP over BEEP.
Comments