Graphics: Visual and Interactive Computing

JACIE - A Scripting Language for Multimedia Collaborative Applications


A Group Scrabble Game written in JACIE.


A Teamwork Courseware for Network Trouble Shooting.


Video and Whiteboard Channels.


Software Architecture of JACIE.

With continuous acceptance of World Wide Web (WWW) as a de facto standard for human-computer interaction and human-human communication, it is desirable to develop net-centric, multimedia and collaborative applications. JACIE (Java-based Authoring language for Collaborative Interactive Environments) is a scripting language designed to support rapid prototyping and implementation of such applications.

In particular, JACIE targets a collection of applications for which the existing programming tools would incur expensive development costs. From a software engineering perspective, the key design principles of JACIE are therefore special purpose and programming efficiency. The main functional features of JACIE, which reflects its design principles, are:

  • Typical applications — These include groupware (e.g., a distributed timetabling system), courseware (in particular teamwork-based courseware) and games (e.g., board games and card games) These applications commonly feature real-time collaborative activities, shared working canvas, controlled access domain and structured communication. It is often very difficult for applications in these areas to generate much commercial profit, and thereby difficult to attract resources to develop them in the first place. It is intended for JACIE to provide a software development tool that enables such applications to be developed at a very low development cost, within a short development period, and by possibly inexperienced programmers.
  • Images and carefully-selected graphics functions — JACIE assumes that the graphics in most of these applications involve mainly images and simple 2D graphics drawings, since the use of complex 3D graphics mpdelling in such applications would not be cost-effective in terms of expertise and effort. This assumption allows JACIE to reduce the complexity of its display functions, a desirable feature for any scripting language.
  • "Single program" for server and clients - With almost all WWW-based programming languages and software development tools, separate programs have to be written for server and client. To ease the programming effort, JACIE uses a single program to specify both server and client. It is the compiler’s job to generate server and client programs to run on different computers.
  • Structured communications — The majority of targeted applications would require a structured communication, that is, unlike our daily face-to-face conversation, the order of communication activities is a critical part of an application. Different applications may require different communication protocols. JACIE addresses this problem by providing a set of built-in protocols that can be easily utilized by JACIE programmers.
  • Channels — In an application, communications may take place in a number of different forms of media. JACIE introduces the concept of channels for specifying these media. The built-in channels in JACIE include canvas, message, chat, voice, video and whiteboard.
  • Interaction Protocols — An interaction protocol defines the rules that govern the means of interactions between users in a collaborative environment, and is used to coordinate the input from users and the display on a channel. (The term “interaction protocol” is used specifically to avoid the confusion with low-level communication protocols).
  • Session control — JACIE employs a template-based programming style for its main program body. It divides each program into a set of standard components.
  • Interfacing with Java — No doubt, some applications will require functions, such as complicated graphics operations, which JACIE cannot supply. The target language Java naturally becomes convenient in such cases. JACIE allows the inclusion of Java code as part of a JACIE program. This enables experienced programmers to utilize Java for the implementation of complex code segments, for example, complicated graphics, numerical computation, or logic control.

JACIE utilises WWW as the main vehicle to deliver a collaborative application, though it also supports stand-alone implementation of net-centric applications. Its general functionality, including its language components, session control, image and graphics functions, event management and interaction protocols, are mapped onto Java programs. Some of the JACIE channels (including message, chat and canvas) are implemented through a set of purposely designed Java classes, while the others (including voice, video and whiteboard) are built upon Microsoft NetMeeting.

The design and development of JACIE is part of a PhD programme. The specification and compiler development has been completed. We are working on three example applications in conjunction with the testing process. The basic specification of JACIE can be found in the Appendix of this draft paper (2.6M), and the Appendix was later removed in its published version due to space constraints. Further details will be available shortly after we have completed the testing process (expected in July 2001).

Main References

  • A.S. Haji-Ismail, M. Chen, P.W. Grant and M. Kiddell, JACIE - an authoring language for rapid prototyping net-centric, multimedia and collaborative applications, Annals of Software Engineering, 12, 47-75, 2001.
    This was an extended version invited for submission after the publication of the initial short version in Proc. IEEE International Symposium on Multimedia Software Engineering, Taipei, IEEE Computer Society, 385-392, December 2000.
  • A. S. Haji-Ismail, M. Chen and P. W. Grant, Managing interactions and communications in collaborative multimedia applications: the JACIE way, Proc. Second International Conference on Information, Communications, and Signal Processing (ICICS'99), Singapore, November 1999.
  • S. Z. Z. Abidin, M. Chen and P. Grant, Managing Interaction and Interest - through the Keyhole of Noughts and Crosses Games, in Proc. IEEE Multimedia Software Engineering, Miami, December 2004.