We introduce Transactional Graphic Objects, an open approach to share graphic objects in direct-manipulation distant CSCW applications. The graphic objects hosted by the server are accessed by clients by means of transactions in an XML based language, the Graphic Object Access Language (GOAL). GOAL is defined as an open communication protocol between the client and the server. Conforming to the common protocol, the server and the client can be implemented using different languages or techniques. GOAL is language independent; it can be carried over HTTP and pass transparently through enterprise firewalls. This makes the construction of efficient heterogeneous direct manipulation CSCW applications much easier. GOAL is also compatible with the SOAP protocol and can be used to implement interactive Web Services. The transactional approach makes the handling of concurrent access and session management transparent to the application developer.
Transactional Graphic Objects, Distributed Graphics, Groupware, CSCW, Direct Manipulation, XML.
Comparing current web-based applications to the forecasted or prototyped groupware applications of the early 90ís, we can notice two important missing features:
We have developed Transactional Graphic Objects (TGO). The transaction has been shown to be an efficient concept for handling accesses to shared information hosted by relational databases. We borrow the transaction concept for handling accesses to interactive graphic objects.
We introduce an open and XML-based protocol, called Graphic Object Access Language (GOAL), between the servers (that host the transactional graphic objects) and the clients (that render the interactive graphic user interfaces). Following the communications protocol, the client and the server can be implemented in different languages and techniques. This provides more flexibility to build web-based CSCW applications.
A web-based direct manipulation CSCW application has client-server architecture. The client side and the server side talk to each other in an open protocol called Graphic Object Access Language (GOAL).
One role of the server part is to host the presentation scene in terms of graphic objects and provide services to share the graphic objects (Figure 1).
Figure 1: Server side architecture.
The GOM (Graphic Object Model) representing the shared graphic scene cannot be accessed directly by client applications. Instead, all access to the GOM must be handled by the Transaction Coordinator (TC). This approach is very different from the existing work where the graphic objects can be accessed through object invocation protocols such as CORBA, Java RMI, or other specific protocols. Using a Transaction Coordinator has many benefits:
To access the GOM objects, we have developed an XML-based Graphic Object Access Language (GOAL). Client applications must use this language to access the GOM objects. GOAL retains many surface aspects of the SQL query language. However, SQL was developed to query relational databases while GOAL is designed to access GOM objects.
GOAL is designed as a dialog interface between the servers and the client applications. No matter which programming language, Java or C#, is used to implement the server or the client application, they must talk to each other by using GOAL. This gives a complete separation between the servers and the client applications. This provides more flexibility to build heterogeneous distributed applications.
"The essence of multi-user applications is sharing and control over sharing" [1, 2]. Access control is often very complex to implement in multi-user applications. With our model, the transactional approach makes access control much easier to handle.
The client side is implemented to render the presentation scene and handle the interactions of the end users. There is some symmetry between the client and the server architectures (Figure 2).
Figure 2: Client side architecture
We have implemented the TGO servers and the client applications on both Java and Microsoft .NET platforms. Then we have tested the interoperability between the two platforms.
GOAL is an open, language independent and platform independent exchange protocol. We have successfully tested the interoperability on two different platforms: Java and .NET. TGO server and clients can both be implemented either in Java or in C#. The tests also show that Java clients and .NET clients can connect to the same TGO server and work cooperatively.
Two aspects of the Transactional Graphic Objects are to be emphasized:
Figure 3: Implementation example: A multi-user chess game embedded as applet in normal web pages.
Finally, the major requirement to make our model a viable architecture is its integration into common development environments, either in Java or in .NET. This tight integration work should provide the ease of development and deployment of direct manipulation synchronous CSCW applications, which has made the tremendous success of the HTML-based World Wide Web.