Using the web to coordinate distributed applications

Original Web middleware does not provide support for multiuser applications, such as groupware or workflow, as its basic nature is that of a passive information system. In fact, all activity is tied to server machines able to execute code using the CGI mechanism. Enhanced web browsers supporting applet scripting languages, such as Java [1], allow multithread activity at the user interface. However, there is no integrated middleware to coordinate activities tied to multiple, distributed clients. Coordination has to be centralized at some server to which all users participating in an application have to connect to. Thereby, the activity located at the browser does not really make the application distributed, as applets at the browser cannot connect to other applets providing services to them directly. For instance, think about a service to play chess or poker on the WWW against remote players. Java-enabled browsers can easily be used to build user interfaces including an interactive chessboard and other services, like a text-based messaging system. However, to coordinate a game over the Internet the Java programmer has to use sockets to transmit data and synchronizing events. This is a low-level approach subject to a variety of design and implementation errors. In order to solve such a class of problems, and simplify the design and implementation of distributed applications over the Web, we present here the architecture of the PageSpace, a software platform based on extending Java with coordination technology [3]. The PageSpace introduces a notion of active, coordinable objects - the agents - which are able to both use and provide services from an to other agents, without requiring centralized coordination from servers. Distributed applications involve heterogeneous machine-, network- and operating-system architectures. Coordinating agents in these environments means to make these heterogeneities transparent to the programmer. Using the PageSpace, transparency of network heterogeneity is achieved by using the Internet middleware underlying the communication platform. Transparency of different hardware architecture and operating systems is provided by Java. PageSpace is built on a set of existing technologies: Coordination technology provides the conceptual platform for the coordination of activities amongst asynchronously working collaborating agents. Coordination technology has been initiated by the language Linda [3]. Linda is a minimalistic language,namely it includes a small number of constructs which need to be integrated in a conventional language to get a complete language for distributed programming. The basic conception of uncoupled coordination implicit in Linda has been studied in a large variety of research projects, focusing on parallel, distributed, and open distributed systems, on its theoretical foundations by giving semantics to coordination languages, and on a number of implementation oriented research concerning the embedding of coordination languages and their efficient implementation. For a sample of current researches, see [5]. Web technology provides a wide-spread communication and presentation platform to PageSpace. Browsers allow at least the access to the PageSpace and with HTML a uniform graphical interface for the applications can be defined. Java technology provides a uniform processing platform. Java is popularized by its integration into standard Web-browsers and is available on all major hardware platforms. The PageSpace integrates these basic building blocks and thereby adds value to them. PageSpace uses Java as the implementation language for the platform, as well as the application programming language enhanced with a high level coordination support for distributed, concurrent agents to Java. The PageSpace adds value to the underlying building blocks by integrating them in a manner in which the extensive reuse and combination of existing and wide-spread complementary technologies leads to a platform that aims at supporting real-life applications. Our guideline is to add the coordinating glue to bind these technologies together, rather than extending them individually.