The debate over this issue does not concern the need
for such operations but rather the specifics of how exactly
to model and implement service state and the associated
interactions on that state. State may be modeled
explicitly by the distributed computing technology used (for
example, as an “object” with create, read, update, and
destroy operations) or implicitly by referring to application domain-specific concepts within the interactions (for
example, “create reservation” and “update reservation”
messages that include a domain-specific identifier such
as an ASIN—Amazon standard identification number—in
Alphabet and Specification Soup
Any discussion of Web services inevitably involves a
plethora of acronyms and specification names. We list
some of them here. To save space, we do not provide
citations for individual specifications. These can easily
be located online.
EPR (endpoint reference). As defined in the
WS-Addressing specification, a combination of Web
services elements that define the address for a resource
in a SOAP header.
SOAP. A protocol for exchanging XML-based messages over networks, normally using HT TP.
WSDL (Web Services Description Language).
An XML-based language that provides a model for
describing Web services.
WS-Eventing. A specification that defines a protocol for Web services to subscribe to another Web service or accept a subscription from another Web service.
WSDM (Web Services Distributed Management)
An OASIS-developed Web services architecture and set
of specifications for managing distributed resources.
WS-Resource Transfer. A proposed integration of
WS-RF and WS-Transfer.
WS-RF (Web Services Resource Framework). An
OASIS-developed architecture and set of specifications
for describing and accessing state in a Web service.
WS-Transfer. A specification that defines a protocol for the transfer of an XML representation of a
WS-addressable resource, as well as for creating and
deleting such resources.
the body). Along a different dimension, we may use HTTP
or SOAP as an implementation technology.
Our goal here is to shed light on possible approaches
to modeling state. To this end, we present four different
approaches and show how each can be used to enable
access to a simple job management system. Then we summarize the key arguments that have been made for and
against each approach. In addition to providing insights
into the advantages and disadvantages of the different
approaches, the discussion may also be interesting as a
case study in technical debate. As we will see, the four
approaches are remarkably similar in what they do, but
differ in precisely how they do it.
SOME PRELIMINAR Y OBSERVATIONS
First, a few observations about what we mean by modeling
state. The systems with which we want to interact may
have simple or complex internal state. Various aspects
of this state may be exposed so that external clients
can engage in “management” operations. For example,
an airline reservation system might give customers the
ability to programmatically create, monitor, and manage
reservations. The same system might also allow operators
to programmatically access information about current
system load and the mapping of computational resources
to different system functions. We are not suggesting these
mechanisms provide direct access to the underlying state
in its entirety. Rather, we are assuming the principles of
encapsulation and data integrity/ownership are maintained. It is up to a system’s designer to define the projections to those aspects of the system’s internal state that
they are willing to expose to the outside world.
5
Such projections can be complex. In the case of a job
management system, for example, the underlying state
associated with even an apparently simple job may consist of multiple distinct processes on different back-end
computers, entries in various internal tables and catalogs,
and activities within subsystems such as schedulers and
monitors. When designing the allowed interactions with
such a system, we must model the “state of a job” (the
projection of the complex underlying state that is to be
made available to clients) in a manner that is not only