The primary goal of this tutorial to close the gap between the high-level concept of Service-Oriented Architecture (SOA), and the question of how to implement such an architecture once services have been identified. Colloquially, it is often assumed that services
in a Web-oriented are implemented as Web services
, and these are often exclusively perceived as using the SOAP stack of protocols. Our goal is to describe that Web services
can also use other technologies, such as RESTful implementations on top of HTTP. Furthermore, we will explain how a disciplined process can lead from the business level, which is mainly about identifying services on an abstract level, to an IT architecture, and that it is important to not impose architectural constraints (such as defining service in a function-oriented way rather than in a resource-oriented way) too early in the process.
Web Services have been of increasing interest in the past years. While Web Services
were first defined as machine-accessible services based on Web technologies, the term quickly was perceived as exclusively referring to SOAP-based services, which mirror the traditional IT integration style of distributed objects with messaging technologies layered on top of Web technologies. This tutorial focuses on an alternative approach towards the design and implementation of Web Services, based on the architectural style of the Web itself, Representational State Transfer (REST). Thus, the tutorial learning objectives specifically include giving an in-depth understanding on how the two different styles of Web Services compare, and why the decision of SOAP vs. REST is fundamental and needs to be made very early in any SOA project. We focus on the question of how to do SOA with REST, and do so by explaining and highlighting the fundamental differences between the more tightly coupled integration
style of distributed objects, and the more loosely coupled cooperation
style of REST. Thus, attendees will gain a new perspective that highlights the importance of following Web principles to support the design of Web Services and learn why not all Web Services are made equal and that only RESTful ones are really of the Web
, whereas others are just implemented on the Web
.