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
Brian Proffitt
Microsoft/Novell: Breaking Down the Coupon Numbers
Esther Schindler
Drupal's Dries Buytaert on Building the Next Drupal
Tom Henderson
Top Ten General Operating Systems Rants
pasmith
PS3 motion controller delayed; goes up against Project Natal
sjvn
Neolithic Windows security hole alive and well in Windows 7
claird
Perl source code comparison makes for good reading
mikelgan
Cell phones don't create stress or interrupt much
Sandra Henry-Stocker
How to: The Unix Interview
Where Google Chrome security fails: the password
I heard mention that the Chrome OS will have some sort of encryption available a la bitlocker. If it's possible to encrypt personal data using another password or key, then it may have potential for very secure data.... And Ubuntu has an 'encrypt home directory' option, perhaps google should follow suit.
- Dann
Join the conversation here
Quick, practical advice for IT pros. Made fresh daily.
- Ubuntu advances: Why Ubuntu server installations will surge in 2010
- Social media marketing: How to make friends with benefits
- More...
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.






