Distributed Service Programming and Interoperability

Distributed Service Programming and Interoperability

José C. Delgado (Instituto Superior Técnico, Technical University of Lisbon, Portugal)
DOI: 10.4018/978-1-4666-2533-4.ch006

Abstract

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).
Chapter Preview
Top

Introduction

The Web started out as a solution to the problem of browsing remote hypermedia documents (Berners-Lee, 1999). This was essentially an instance of the client-server paradigm geared for global human-to-human interaction, which in fact was the major factor that spurred all subsequent developments.

Up to then, computers could communicate, but this was basically limited to system-to-system or application-to-application data exchange, or human-to-human text messages in e-mail or newsgroups. This was the first time thata human could place a multimedia document in some server and any other human, with a suitable client (the browser), could easily access that document and others accessible from it, with just a few clicks. The world of information had left the realm of specialists and reached the general user.

In those days, text was king. The main inspiration came from the printed document, which essentially was text sprinkled with other artifacts such as pictures and tables. The choice of a text markup document description language (HTML), based on another one coming from the printing world (SGML), seems natural and more than justified (Toshniwal & Agrawal, 2004).

Today, the world is rather different. Text is just one among other formats, with binary information (e.g., pictures, video, voice) taking a great part of the data bandwidth. Humans are no longer satisfied with information browsing and want added value in the form of services. Service providers recognize this value and are moving from face-to-face contact with the customers in physical shops to the virtual presence in sites that allow someone anywhere to instantly access services or buy products. Organizations are also customers of other organizations, in a value-added chain, and began using the same infrastructure to setup their information systems and integrate them with their partners’ (enterprise integration), in which web services replaced specific application-to-application protocols.

The human-to-human Web of Documents has evolved into a global Web of Services (Tolk, 2006), in which the interacting parties are both humans and computer applications. Actually, contents are increasingly dynamic, generated on the fly according to some database, and the basic, manual hypermedia document creation (corresponding to the original human-to-human interaction) is decreasing its importance.

What is happening here? Services are replacing static documents and computer applications are filling in the web space once dominated by humans. Human-to-human interaction is now migrating to a higher level, the social network. However, computer applications were left using the technology once developed to describe data in a user-oriented way (hypermedia document browsing).

Granted, there was a major evolution milestone when HTML evolved into XML, with presentation separated from data description, language extensibility and metadata introduced to self-describe the information. But XML is not really a general data description language, since it has a heavy document-style legacy (text and markup based, weak binary support, element and attribute discrimination, element sequence instead of a composition construct, and so on). Perfectly understandable in terms of evolutionary transition, but still a mismatch towards both humans (verbose and complex, aside trivial cases) and applications (limited regarding binary formats and inefficient due to parsing).

Web Services embodied another major evolution, the transition from the client-server to the service paradigm. But Web Services were built on top of the text document technology (XML) and the actual work must be done by a separate mechanism (either a general programming language or an orchestration language such as BPEL).

Everybody knows that backwards compatibility of a new technology can be both a bonus (things done so far still work) and a curse (many new features become a compromise instead of what they should be). Wrapping a new technology around an older one is just one way to evolve.

This chapter revisits this problem and considers the case of conceiving a Web of Services right from the start, using a service model rather than a document model as a seed, but that can still work with the current XML-based technologies. The main ideas can be summarized as follows:

Complete Chapter List

Search this Book:
Reset