Java Reference
In-Depth Information
Chapter 8. RESTful Web Services
Introduction
SOAP is a specification. WSDL is a specification. XML Schema is a specification. Although
developers and architects may hotly debate exactly how implementations of SOAP-based web
services should be written or how they should be used, there is no question about whatthese
things are. They are concrete, and exist. Like a cup.
SOA, and even ESB, on the other hand, are more conceptual in nature. Their principles are
clear, but they really represent architectural styles and strategies. They are therefore more
open to interpretation than the likes of SOAP and WSDL; their very definitions are open to
considerable debate. So while people can generally agree on the key principles of SOA (loose
coupling, etc.) and on key features of an ESB (routing, mediation, transformation, etc.), the
devil is always in the details.
SOA, ESB, and REST have no specifications. As a result, vendors may take whatever 15-year-
old EAI software they have lying around and re-brand it as their “SOA Stack” now that SOA
has become the chief topic of conversation at every dinner table in the country. (Or at least
in every software-company lunchroom.) And as with SOA and ESB, there are many contrib-
uting factors to the sense that REST is in the middle of a lot of contention out there. Java
developers who may be used to having clearly defined APIs have to make a slight shift when
it comes to thinking about SOA, ESB, and REST. Sun can't simply tell us exactly what they
are—we have to really understand the concepts. Anyone with an IDE who knows that JSPs
exist can write and deploy a JSP in under a minute without necessarily having to understand
what's happening under the hood. But anyone with an IDE can'tsit down to write and deploy
a RESTful application in under a minute: it's a matter of knowing the principles.
REST is the brainchild of Roy T. Fielding, cofounder of the Apache HTTP server project and
coauthor of the HTTP and URI standards. In 2000, he wrote a doctoral dissertation for the
University of California at Irvine called ArchitecturalStylesandtheDesignofNetwork-based
Software Architectures, wherein he defined REST.
NOTE
You can read Dr. Fielding's dissertation at http://www.ics.uci.edu/~fielding/pubs/dissertation/
top.htm . REST developers frequently cite this work directly (even as they misinterpret it), as does
JSR 311. It's a terrific read.
Search WWH ::




Custom Search