SOA with REST: Principles, Patterns, and Constraints

SATURN, April 2013

Tutorial presented on 29 April 2013 at the 9th SEI Architecture Technology User Network (SATURN 2013) Conference in Minneapolis.

Recent technology trends in web services indicate that a solution eliminating the perceived complexity of the WS-* standard technology stack may be in sight. Advocates of representational state transfer (REST) have come to believe that their ideas explaining why the World Wide Web works are just as applicable to solve problems related to enterprise application integration and to radically simplify the plumbing required to implement a service-oriented architecture (SOA). In this tutorial, we give an update on how the REST architectural style has been recently rediscovered to become the foundation for so-called RESTful web services, a trend that has now made a strong impact on the architectural design of large-scale service-oriented systems. Our goal is to show that the notions of open systems, dynamic discovery, interoperability, reuse, loose coupling, and statelessness usually associated with service-oriented computing can be naturally expressed within the set of constraints given by the REST architectural style. We will answer questions such as these:

  • Why is a vast majority of existing public web-services APIs declaring themselves to be RESTful (even if they are not)?
  • Why is REST perceived to be simple (as opposed to WS-*)?
  • Is there anything missing from today's RESTful web services that would keep them from being fully adopted within enterprise architectures?

We will use the ensuing discussion to highlight some open research problems related to this emerging and important area of software service engineering.

The tutorial is directed to SATURN 2013 attendees with an interest and optionally some background in software service engineering and the design of SOAs. Whereas we will keep the material self-contained, we will assume attendees have some experience browsing the World Wide Web and a basic understanding of the HTTP protocol. Any professional familiar with the concepts of architectural style and software service will be able to follow the material. Attendees should be interested in learning not only the basic principles and patterns of RESTful web-service design but also in assessing how REST significantly differs and potentially improves upon existing approaches centered around WS-* technologies. If time permits, we will also include some quick technology demonstrations so that attendees will be able to gain an understanding of the maturity, the benefits, and the main limitations of the current state of the art in RESTful web-service tooling.