XML, Web Services, and the REST Architecture
The rain lashes against the window; the wind howls through the trees.
It is dark outside. Gusts of cold westerly wind sneak under the door
but are mercifully warmed before they reach my unshod feet by the
sterling efforts of a blazing fireplace. Coffee in one hand, Roy
Fielding's PhD dissertation on architectural styles and the design of
network-based software architectures in the other -- just another
evening in paradise, or, if your prefer, another evening reading my way
through a bout of torrential rain and freezing cold on the North
Atlantic coast.
It is not often that a PhD dissertation by an esteemed computer
scientist is cited as a sort of comfort food for consumption during
prolonged bouts of inclement winter weather. Such things are not
typically easy to read. Fielding's dissertation is an exception. It is
easy to read, erudite, and exciting at the same time -- a winning
combination for any type of factual presentation.
On the face of it, the dissertation does not seem to have anything to
do with XML. It is concerned with architectures for distributed system -
- not markup. It may, however have a lot to do with XML. We will get
back to this point in a moment. First, let's look at what Fielding's
work is about.
The dissertation starts by classifying the various architectural styles
that can be used to build software in general and distributed software
systems in particular. He gives the various common architectures
detailed names, digging beneath such generalizations such as
client/server to such delightful acronyms as LC$SS (layered client
cache stateless server).
The various architectural styles are evaluated against such criteria as
performance, efficiency, scalability, simplicity, modifiability,
portability, and reliability. Unsurprisingly, different styles have
different pros and cons. No silver bullet here, then.
The Web itself is then looked at through the eyes of this
classification system. Fielding coins a term for the point in the
classification system occupied by the Web: REST -- standing
for "representational state transfer."
Simply put, the REST architectural style consists of a set of named
resources. Resources communicate by transferring representations of
resources in a small set of standard data types. These communications
can be purely informational or can instigate actions to change the
state of resources.
In the implementation of the REST architecture that is the Web,
resources are known as URIs. URIs communicate by transferring
representations of resources in a small set of standard data types
(e.g., MIME) with standardized metadata (e.g., HTTP headers). The
communications can be purely informational (e.g., HTTP GET) or can
instigate actions to change the state of resources (e.g., HTTP POST).
The Web as practiced is not a perfect match with the REST architectural
style.
Sign up for ITworld's Daily newsletter
Follow ITworld on Twitter @IT_world
Esther Schindler
If the comments are ugly, the code is ugly
claird
SVG a graphics format for 21st century
pasmith
Take Chrome OS for a test spin
Sandra Henry-Stocker
Solaris Tip: Have Your Files Changed Since Installation?
jfruh
Android fragments vs. the iPhone monolith
mikelgan
What Gizmodo missed about the Pro WX Wireless USB disk drive
Sidekick: The Good News & the Bad News
Either way you look at it Microsoft Data Center management did not follow standards or best practices in this failure. In which case it makes me wonder more about the outsourcing of corporate data much less personal data.
- mburton325
Join the conversation here
Quick, practical advice for IT pros. Made fresh daily.
Want to cash in on your IT savvy? Send your tip to tips@itworld.com. If we post it, we'll send you a $25 Amazon e-gift card.













