Programming Distributed Collaboration Interaction Through the World Wide Web

University of Calgary, Department of Computer Science
MSc Thesis © Roberto A. Flores June, 1997




CHAPTER 6
Evaluation and Future Development



In summarizing the work set forth in this thesis, it is useful to analyze the original stated aim for the present research. As presented at the beginning of Chapter 1, the goal of this research was to evaluate Java as a suitable programming language for the Internet by using it to implement a concept mapping system able to support distributed user environments on the Internet and the World Wide Web.

To achieve such goal, the Java programming language was thoroughly analyzed and used to develop a concept mapping system that can work as a standalone application or as an applet inside Web browsers. These programs, which are named jKSImapper and jKSImapplet respectively, are designed to perform as elicitation agents that interact with server processes. These server processes will perform as centralized coordinators and data repositories. In this context, the Web acts as a hypermedia integrator, and the Internet as the transport medium.


6.1 EVALUATION.

Seven objectives were defined for this research. These objectives, which were listed in Section 1.5 in Chapter 1, will be revisited and analyzed in the following sections as a guide to evaluate the work presented on this thesis.


6.1.1 REQUIREMENTS.

The first objective was: This objective was met in Chapter 1 and Chapter 2. Chapter 1 addressed general concepts related to client/server systems, the Internet and the World Wide Web. This chapter also introduced the notion of executable code on the Web, and identified portability, security and functionality as requisites to well-behaved Web programs. These issues (portability, security and functionality) were addressed in detail on Chapter 2, where they were used to analyze Java and Microsoft's ActiveX, which are the foremost techniques to integrate downloadable code to the Web.


6.1.2 BACKGROUND.

The second objective was: This objective was answered on Chapter 3, where Java was defined by describing the main attributes of the language. Such attributes depicted Java as an object-oriented, distributed, portable, secure and multi-threaded programming language. Additional topics covered on this chapter were the facilities provided by the language to effortlessly support Internet communication, and the integration of applets to Java-aware Web browsers, such as Netscape's Navigator.


6.1.3 CURRENT WORK IN THE FIELD.

The third objective was: Chapter 4 addressed this objective by describing the implementation requirements essential to the development of a concept mapping tool aimed at a multi-user environment. The first part of this chapter briefly introduced concept mapping tools previously developed at the Knowledge Science Institute. The experience gained after developing such tools greatly contributed to the definition of a set of requirements on which to base the implementation of the present concept mapping programs.

On the other hand, requirements for a multi-user system were defined according to the Computer Supported Collaborative Work interaction modes for a community of users working on a common project. Such requirements represented guidelines for the development of multi-user systems on distributed environments, such as the Internet and the Web.


6.1.4 IMPLEMENTATION.

The fourth objective was: This objective was met in Chapter 4 and Chapter 5. The former chapter detailed graphical elements and commands available to the user interacting with jKSImapper and jKSImapplet. Chapter 5 went deeper on the subject and analyzed each of the classes constituting the Java jCMap class library. This library, which is a pivotal part of this research, was derived from a previously developed C++ library, called CMap. The design goal for jCMap is to support the operation of jKSImapper, jKSImapplet, and the jKSImapper server process.


6.1.5 DEMONSTRATION.

The fifth and sixth objectives were: The fifth objective was covered in Chapter 5, Section 5.3. This chapter addressed specific issues that were confronted, and will certainly be confronted by other projects, when porting C++ code to Java. Such issues, which reflect the differences existing between these programming languages, include topics ranging from multi-threading and parameterized types, to dynamic memory access models and program integration with the World-Wide Web.

The sixth objective, to evaluate jKSImapper and jKSImapplet in a range of practical applications, was met through the many examples displayed on this research, which are mentioned as follows:


6.1.6 FUTURE WORK.

The seventh objective was: jKSImapper cannot be considered a final or complete product. Instead, it can be labeled as the first comprehensive layer of functionality for the development of domain-specific concept mapping systems. As explained on Section 6.2 below, the functionality provided by jKSImapper can be enhanced in two non-exclusive ways: by extension, or by improvement.


6.2 AREAS OF FUTURE DEVELOPMENT.

This section is an account of the future development issues for jKSImapper. As explained through this work, this implementation provides a well-defined functionality to handle concept maps. Consequently, future developments are aimed to enhance such functionality, either by improving the techniques applied to their inner mechanisms, or by extending them with new domain-specific functionality.


6.2.1 EXTENDING FUNCTIONALITY.

The extension of functionality implies the specialization of existing functionality to perform under domain-specific constraints. This specialization is achieved by adding classes and methods to support operations specific to a community of users.

This section will propose viable extensions to the Java systems presented on this thesis. It is important to bear in mind that, since these systems provide a generic solution for concept mapping elicitation on the Internet and the Web, the suggestions made on following sections are exclusive to the perspective of the author, and they do not represent limitations on the application of the systems to other domains.

As explained below, two different extensions are proposed: one, to support graphical elicitation of conceptual graphs; and, second, to integrate jKSImapper as a component for the Habanero Environment, which is a Java groupware system developed by the National Center of Supercomputing Applications (NCSA).


6.2.1.1 CONCEPTUAL GRAPHS.

Conceptual graphs are defined in the literature as finite, connected, bipartite graphs (Sowa, 1984). They are described as finite, since users' memory is bound to retain just a finite number of concepts and conceptual relations. They are depicted as connected, because two parts that are not connected would represent two independent graphs. Finally, they are defined as bipartite, since there are two distinctive types of nodes, concepts and conceptual relations, where every arc links a node of one kind to a node of the other kind.

Conceptual graphs can be denoted using three different representation types. Such representations will be described and illustrated using the sentence "Dickson went to Calgary by plane" (Lukose, 1996):

From the representations mentioned above, diagrammatic representations are (arguably) the easiest to recognize and interpret by humans. As illustrated in Figure 39, jKSImapper has the ability to graphically depict conceptual graphs as diagrams. However, due to its non-specialized nature, the system does not provide any assistance (and it does not enforce any constraints) for the elicitation of formal graphs. As a result, extending the functionality of jCMap to handle conceptual graphs is an area of future development that can demonstrate the usefulness of the system when applied to a specific domain.

Another example of the application of jKSImapper and jKSImapplet is found on current collaboration efforts undertaken between the Knowledge Science Institute and the Department of Mathematics, Statistics and Computer Science at the University of New England, Australia. Such efforts may result on the unification of systems into a distributed environment for the elicitation of centralized knowledge bases. In this context, jKSImapper and jKSImapplet will act as client elicitation agents to create and edit knowledge structures maintained by an Extendible Graph Processor system (Garner, Tsui, Lui, Lukose and Koh, 1992) performing as a server process. Future developments may also extend the functionality of these systems to allow the translation of conceptual graphs into alternate forms of knowledge representation.


6.2.1.2 THE HABANERO ENVIRONMENT.

The Habanero Environment (NCSA, 1997) is a groupware framework aimed to support multi-user Java systems that share resources over the Internet.

Habanero is defined a client/server system composed of a server process coordinating client systems, each supporting a collection of Java applications. Client applications currently shipped with Habanero include multi-user versions of a whiteboard program, a text editor, and an audio chat for voice communication. To support such systems, Habanero implements networking and synchronization mechanisms that allow to share state, data and events generated by users manipulating client software systems.

To maintain a consistent state among client applications, Habanero implements mechanisms that allow clients to route user events to a server, which will broadcast such events to all the participants on a session. Since such runtime structure is similar to the one implemented on jKSImapper, it is feasible to adapt and extend the present system to operate as a Habanero client application. This circumstance will help to increase the awareness of concept maps as collaborative tools, and will allow jKSImapper to be under the scrutiny of different communities of users, some of which might find it suitable for extension on their particular domains.


6.2.2 IMPROVING FUNCTIONALITY.

To improve the functionality of a system means to enhance the mechanisms supporting the operation of such system. In the case of the developments presented on this work, such enhancements are achieved by adding and refining algorithms and methods to increase their performance and usability.

The following sections have been included as a critique of the limits, weaknesses and imperfections detected on the implementations described on this work. Proposed enhancements will be addressed under three different sections: Human-Computer interfaces, Multi-user issues, and Miscellaneous improvements.


6.2.2.1 HUMAN-COMPUTER INTERFACE.

Human-Computer interfaces are generally described as information channels that allow users and computers to communicate (Lewis and Rieman, 1994). Usually, these communication channels on a system are composed of menus, windows, the keyboard and the mouse.

One method to discover the strengths and weakness of a user interface, is to count the number of keystrokes and mental operations (decisions) required for the tasks the user intends to achieve. This will enable estimation of task times and identify tasks that take too many steps.


Figure 42. Font style modification using menu commands.

In the case of jKSImapper, frequently used operations include creation, edition and manipulation of graphical objects. From these operations, modifying an object's location is the less step-consuming task, since this operation is performed just by clicking on the target and dragging it to a new location. On the other hand, creation of objects and the edition of their attributes are the most step-consuming operations, since they rely on commands nested under several sub-menu levels. Of existing operations, the modification of an element's font style represents one of the most inefficient operations found on the system. As illustrated on Figure 42, this task is achieved by selecting the object to modify (e.g., a node), and by traversing a group of sub-menus until reaching the desired font style to change. As a result, a total of six decisions are required to successfully complete this command. Under human-computer ergonomics, such number of decisions reflects a poorly designed interface.


Figure 43. jKSImapper Toolbar.

At this point, it is true that a better solution for selecting commands needs to be provided. One feasible answer to this problem is achieved by implementing a toolbar allowing fast selection of frequently used commands. Such a toolbar may be organized as illustrated on Figure 43. In this figure, a jKSImapper toolbar is shown as an independent window, but it can also be implemented as part of the display area of the system.

Functions provided by the toolbar may allow the creation and modification of objects. This dual functionality will be defined by the existence (or the absence) of selected elements on an elicitation.

If multiple objects are selected, the toolbar will reflect the common denominator values for attributes of those objects. In the case of the example shown on Figure 43, a rectangular node labeled "PERSON: Tom" is selected. As a result, the node's characteristics are reflected on the toolbar's controls, which can be used to modify the attributes of the node. In this case, buttons located at the top of the toolbar can be used to change the shape of the node to ellipse or rounded rectangle. In the case of this example, the remaining buttons are shaded since they do not reflect options applicable to the selected object. Additional controls included on the toolbar are: a color palette that works in conjunction of a list box to modify color attributes on the targeted object; an input line for editing the label of the object; and a pair of list boxes that are used to select the selected element's font attributes and their values, respectively.

The toolbar can be used to create new elements if no objects are found to be selected. In this case, new objects will have their attributes initialized to the values provided by the controls in the toolbar. This technique can speed the creation of multiple objects using non-default values.

However, the toolbar approach is not suggested as the ultimate solution for human-computer interaction, and it certainly contains weaknesses. One of such limitations is found on the creation of new elements while existing objects are selected. This circumstance represents a problem, since the toolbar presented does not accommodate (yet) the functionality to switch states from modification of selected items to creation of new items.

Additional enhancements to the user interface can be achieved by implementing pop-up menus and in-place edition of labels. These techniques can make explicit the operations available for an object (in the case of pop-ups) and substantially simplify the modification of objects' attributes. The implementation of these approaches is not defined in this thesis, and they are left for future development.


6.2.2.2 MULTI-USER ISSUES.

Groupware awareness is another topic that requires improvement. Groupware awareness is defined as the dynamic knowledge of changing environments, which are updated and maintained as the environments evolve (Gutwin, Greenberg and Roseman, 1996).

There are features that can be used to provide awareness on multi-user environments. For example, there are mechanisms to identify the members collaborating on a multi-user session. However, techniques vary from displaying a list box listing the names of the participants, to the implementation of individual cursors for each participant and global viewers displaying the location of each participant under the entire domain of the session. The suitability of such techniques depends on the context on which the target application will be used.

In general, groupware techniques allow participants to be aware of the presence of other participants (e.g., by using global viewers displaying each member's cursor); they allow participants to be aware of the operations performed by each collaborator (e.g., using authorship and concurrency control); and may allow communication between members of the session (e.g., by using text areas for message exchange, or using voice transmission processes). However, as desirable as these functions may be, the implementation of some of them may require high bandwidth network connections. In the case of jKSImapper and jKSImapplet, such networking power may not be available, since these applications were designed to work on the Internet, which is a networking environment that does not make any assumptions with regard to speed and reliability.

The identification of participants and concurrency control are issues that need to be implemented on jKSImapper. Identification of users can be achieved by maintaining a list of members joining the server. This information can be made available to all the clients for display (e.g., using a list form). On the other hand, concurrency control can be achieved by using centralized locks for displayed objects. Such locks can be maintained by the server, and will be represented on client systems by using visual feedback (e.g., using colors or patterns to indicate granted locks).


6.2.2.3 MISCELLANEOUS IMPROVEMENTS.

Miscellaneous improvements encompass enhancements that do not fit under previous sections. Up to the moment of writing, two topics have been identified as candidates to such improvements. These topics are:

6.3 THESIS SUMMARY AND CONCLUSION.

The goal of this research was to evaluate Java as a suitable programming language for the Internet by using it to implement a concept mapping tool system able to support distributed user environments on the Internet and the World Wide Web.

To accomplish such task, the presented research introduced, during early stages, the notion of concept maps, followed by an overview of the Internet and the World Wide Web. The Web was described as a hypermedia environment capable of presenting Internet resources under a multimedia interface. From such resources, executable code was identified as the most versatile resource available, due to its ability to provide complex services as a response to users' interaction.

At this point, leading techniques that provide downloadable executable code on the Web were identified and analyzed based on their capabilities to support portability, security and functionality issues. Techniques evaluated were Java and ActiveX.

This evaluation was followed by a description of the characteristics found in the Java programming language, including an overview of the networking features that have positioned Java as a suitable programming language for the Internet and the World Wide Web. This discussion was followed by a comparison between Java and C++ at the language level.

The leading step towards production is based on a thorough understanding of the tools to use. In the case of this research, its first part was devoted to understand the features of the tool, which is the Java programming language, and the context of its use, which is the Internet and the World Wide Web. Once these topics were covered, the production of the system was started. As stated in the aim of this work, a concept mapping tool was to be implemented to support multi-user concept mapping collaboration on the Internet and the Web.

The process of producing such tool required the study of previous concept mapping developments as a guidance to the definition of the requirements for the system. Such requirements were defined based on levels used for the analysis of concept maps (abstract, visual and discourse perspectives), and on the functionality that the system has to provide to support multi-user environments (based on the CSCW interaction modes). The definition of the requirements for the tool was followed by an overview of the functionality implemented on the systems developed, which were named jKSImapper and jKSImapplet. These systems perform as Java concept mapping tools for the Internet and the Web, respectively.

The last part of this research was devoted to describe in detail the jCMap class hierarchy, the runtime system architecture for the systems implemented, and the lessons learned while porting C++ code to Java. Class hierarchies are structures composed of defined entities ordered to reflect the specialization of state and behavior. In the case of the this research, jCMap was presented as a class hierarchy composed of more than 60 classes designed to support jKSImapper and jKSImapplet. The operations implemented on these classes were described according to the areas on which they perform (which are Behavioural Graphic, Visual Graphic, User Interface, Command Handling, Networking and Server, and File Storage).

However, class libraries are not a suitable reflection of the relationships existing among objects at runtime. Thus, a description was required of how the objects collaborate to provide the functionality expected for the systems implemented. Such relationships between components in a program define the runtime system architecture for the system. In the case of this research, three architectures were presented; one for jKSImapper, one for jKSImapplet, and a third one for the server process.

This discussion was followed by a description of the lessons learned while porting C++ code to Java, and a section describing areas of future development.

Overall, this thesis has presented a usable implementation of a client/server concept mapping tool developed using the Java programming language. This tool can perform as a standalone application or as an applet embedded on Netscape browsers. Such developments, which are named jKSImapper and jKSImapplet, have been demonstrated to support the elicitation of concept maps on single and multi-user collaborative environments under the Internet and the World Wide Web.



© Roberto A. Flores June, 1997