Transactional Graphic Objects: An Open Approach for Web Based Distributed Graphic Objects and Interactions
9, rue de Verdun
94253 Gentilly, France
1 49 08 29 65
9, rue de Verdun
94253 Gentilly, France
1 49 08 29 65
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 90s, we can notice two important missing features:
- All significant web interaction relies on form- and menu-based interfaces. Direct manipulation is missing from the standard toolset of web designers.
- Synchronous distant collaboration is limited to some proprietary tools. We are still missing general-purpose synchronous collaboration tools and the integration of such features in standard desktop office tools.
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).
2.1 Server-Side Architecture
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:
- The GOM is behind the Transaction Coordinator and is protected from unexpected accesses by client applications. This makes the platform more robust.
- All accesses to the GOM are handled by the Transaction Coordinator. The Transaction Coordinator is aware of the state of the GOM and hence can efficiently coordinate concurrent accesses. This makes the platform more scalable.
- The Transaction Coordinator can sequence the accesses to the GOM. This makes the undo/redo on graphic objects much easier and more reliable. The sequence can be later used to incrementally replicate the changes on the GOM to client applications.
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.
2.2 Client Side Architecture
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
3. RESULTS AND FUTURE WORK
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:
- An Open and Convenient Architecture: The hierarchical Graphic Object Model, the fine-grained addressing methods, and the Transaction Coordinator are designed to efficiently handle concurrent transactions in synchronous CSCW applications.
- An Open Protocol: The Graphic Object Access Language (GOAL) defines the interface of the TGO server. The protocol is specifically designed to build distributed graphic applications in a heterogonous network: it accepts the notion of high-level transactions and incremental, differential or partial replications.
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.
4. ACKNOWLEDGEMENTSWe wish to thank the members of the INDIGO RNTL project for providing expert advice and tremendous incentive to present and formalize our ideas. This work is partially supported by the French Ministry of Research and Technology INDIGO project.
- Patterson, J.F. Hill, R.D. Rohall, S.L. Rendezvous: An Architecture for Synchronous Multi-User Applications. CSCW Proceedings, Los Angeles, Pages: 317-328.
- Smith, G. Rodden, T. Access as a means of configuring cooperative interfaces. Proceedings of the conference on Organizational computing systems, December 1993.