The organization of many large companies has been transformed in recent years. What used to be a hierarchy with large numbers of layers has been flattened ( Benson, 1997). Whereas previously a well defined path of information flow existed, the pattern of information flow can now be significantly more chaotic. Team based work has been encouraged and is now the norm for many companies. This is especially true in process engineering where engineers from a variety of disciplines may be required to work together and simultaneously on a project. This requires the users to share data as the project evolves.
There are several issues which arise when team based work is considered. The most important is arguably the issue of consistency: will the design work performed by one engineer (on a section of a plant, for example) mesh with the design work performed by another engineer? This is an issue that is currently being tackled ( Bañares-Alcántara, 1995) and is not discussed in this paper. Instead, this talk concentrates on the tools which provide the necessary support for collaboration, concentrating on data sharing and manipulation.
There are two types of collaborative computing software:
The first of these is obviously a requirement for the second and hence will be discussed in this order.
One of the basic requirements for collaboration is the ability to share data between users. Standard Internet tools such as electronic mail and newsgroups provide this ability. However, they lack the features which have made the World Wide Web popular: support for multimedia and hypertext linking. The ability to include multimedia information, images, video, and sound, is a necessity in many cases. Hypertext linking is crucial when large amounts of information are presented. Related information can be linked together, making it easier for users to quickly find specific information. Information can also be linked in different ways, something which is usually not possible with a database system. For example, a process flowsheet may be viewed as a sequence of units by one engineer whereas another engineer might be more interested in the control loop structure. Both viewpoints require access to much of the same information but linked in different ways. For these reasons, the World Wide Web is likely to be an attractive mechanism for providing a framework for sharing data.
The World Wide Web is based on the open standards of the Internet with the addition of two new specifications ( World Wide Web Consortium, 1997):
The hypertext transfer protocol which defines how the user's computer (via a Web browser) can request information from a Web server.
Hypertext Markup Language which is used to write documents for the Web. HTML is based on a format similar to SGML, the standard generalized markup language (in fact, this paper has been written in SGML and automatically translated to a variety of forms including HTML for installation on the author's Web page and LaTeX for the proceedings).
Both new specifications are simple and have been adopted quickly. HTML is still evolving with latest versions providing support for more specific formatting information (subscripts, tables, frames, etc). The link between HTML and http is the Uniform Resource Locator (URL). This is used to label hypertext links in a document. URLs describe both the location of the link (actual computer and the file on that computer) and the type of access method to use (hypertext, FTP, electronic mail). Web browsers parse the URL and request the specific service from the computer identified in the URL.
Although the Web has become popular, in its basic form it is only suitable for dissemination of static information. It is difficult for a user to update information on the Web as it requires editing files on the server. In other words, it is not easy for the viewer of the information to interact with the document presented. For proper support for collaborative work, users should be able to change documents related to their work while using the Web tools to access those documents.
Recently, several tools for converting the static nature of the Web into interactive information systems have been developed. One of these is the Basic Support for Cooperative Work (BSCW) system ( BSCW, 1996). This system is available from the Internet and is easily installed on a Web server. The BSCW system is accessed through a Web browser. The user is presented with a hierarchical view of a workspace. Given suitable access permissions, entries in this workspace can be modified, new entries can be added, and existing entries can be deleted. Due to the base multimedia support in HTML and Web browsers, entries may be anything from simple text documents through complex word processing articles to images and video tracks. Figure 1 shows a screenshot of a workspace view, including a link to a Microsoft Excel spreadsheet.
The BSCW system described above provides support for ongoing discussions and dynamic information dissemination. However, it is still one level removed from true interactive computing where two users interact directly with the computer and each other. One of the most popular tools on the Internet is the Internet Relay Chat (IRC). IRCs are similar to old telephone party lines and new conference call capabilities where several people are able to talk simultaneously. Although effective as a means of social interaction, IRCs are not powerful enough for true interactive collaborative computing, especially as they provide solely textual interaction and the computer is simply the conduit for the information.
Engineers use a variety of computational tools in their work. For example, in design, an engineer may use a drawing program for plant layout, he or she may use a program to simulate the behaviour of the plant, or indeed may ask the computer to synthesize the process flowsheet automatically. At present, the majority of these tools are single user and any collaboration occurs by the results being presented post-facto to the other engineers in the team. What is missing is the ability for two or more engineers to simultaneously access the same tool.
One of the basic premises for this talk is that all the tools presented be usable on a large variety of computers. Combined with the desire to use the Web for information dissemination, this leads naturally to the Java language. Java was designed by SunSoft as a portable, secure, safe, and distributed language ( Sun Microsystems, 1997). Although not originally developed for the Web, the language was announced just as the Web was starting to become popular. Given its original design goals and the need for tools that can span an enterprise's computer hardware, Java has become very popular. Although Java has been mostly used to design more attractive and interactive Web pages, it is now being used for large scale applications as well. For example, we have implemented an automated synthesis package which runs standalone or within a Web page ( Figure 2). Commercial applications have also appeared: Corel has rewritten its office suite of applications in Java ( Corel, 1997). Development tools for the language have also appeared. These are full rapid application design (RAD) environments, similar to Microsoft's Visual Basic, which greatly ease the development of graphical applications.
One of the features of Java is the application programmers interface (API) which is part of the language definition. The API is still under development but one integral part of it is the Abstract Window Toolkit (AWT). This toolkit allows a software developer to write code independent of the actual windowing system that will be used to run the applications. The underlying Java runtime system (known as the Java Virtual Machine) is responsible for mapping the AWT calls to the local windowing system. As a result, a Java application will appear as a MS Windows application when run in MS Windows and as a Macintosh application when run on a Macintosh computer. And so on for OS/2 and Unix. This means that the user of the computer is automatically comfortable with the program.
Of special interest for collaborative computing is the Java Collaborator Toolkit ( Kvande). This library is intended as a plug-in replacement for the standard AWT library that comes with the Java system. By writing (and debugging) a program using the AWT and then replacing the library, a graphical tool is automatically converted to a shareable tool. The result is a program that can be run simultaneously by two or more engineers over the network, each having access to the program and each seeing what the other users are doing.
The Collaborator toolkit comes with a simple example. A small application implements a drawing canvas in which the user can use the mouse to create diagrams. The collaborative version is equivalent to a whiteboard on which several users can draw. Figure 3 shows this whiteboard application in action. One use has drawn a simple representation of a flowsheet showing a reactor and a separation section. The second user has annotated the flowsheet and has added a recycle stream.