Distributed Service Programming and Interoperability
The Web started as a means to navigate in hypermedia documents but has evolved to a pervasive Web of Services, raising distribution and interoperability problems. Web Services appeared as a solution but have grown to become a complex technology, leading many web application providers to adopt a much simpler architectural style, REST. Each style has advantages and disadvantages. As always, the trick is to learn from both sides and to use a flexible technology that can adapt and support both styles. This chapter establishes a model, based on resources, services, and processes, and discusses the various possible combinations, putting the current architectural styles into perspective. Based on this, this chapter proposes one single language to support several levels that are currently implemented in separate technologies: data (including schema, usually described in XML or JSON), interface (WSDL for Web Services and HTTP verbs for Restful applications), and behavior (usually done in BPEL or in a general programming language).