Home : Support : Resources : SPDL
Our think tank brings to you  ground-breaking integrated  collaborative techology ideas

Applications of XML and Customizable Components in Building Virtual Places on the Web

Lukasz Beca
CollabWorx

Abstract

The demand for the systems that facilitate human interactions over the World Wide Web is growing. Shared Place is a technology for building collaboration environments tightly integrated with the Web and customized for specific user needs. XML-based Shared Place Definition Language, designed to describe collaboration functionality of the configurable components, can be merged with ordinary Web page content to create specifications of virtual places. This paper discusses basic concepts of the Shared Place technology, the model developed to describe functionality of virtual places, Shared Place documents and the architecture of the system. The discussion is illustrated with the examples of the applications.

1. Introduction

In recent years, the demand for Web-based collaboration environments is growing. Currently, on-line presentations, distance learning, and customer support are beginning to offer interactive applications on the Web. However, many aspects of personal interactions in this environment are awkward and primitive - the most often used collaboration tool is still a chat and sets of static HTML pages. In spite of the enormous potential for building media rich, interactive experiences on the Web, the frameworks that would enable such solution are not widely used. One of the reasons is that HTML was not designed and is not well suited for describing collaboration functionality. It is sufficient for description of the appearance of a Web page but does not address such issues as, for instance, synchronization policy of collaborative applications.

Fortunately, the progress in Web technologies may change this in near future. Important standards such as XML [16] emerged, which enable creating collaboration-oriented languages. Also, of great importance are advances in browser technology. Browser products - Internet Explorer 5.0 and Mozilla currently support XML, Document Object Model (DOM) [15], and other features such as dynamic changes in the structure of the Web page content. Development of component architectures for major programming languages: ActiveX [4] for C++ and Java Beans [13] for Java is another factor. Those advances together create platform for new developments in area of collaboration on the Web.

To explore those opportunities, we launched new research program called Shared Place on the Web. The main assumption we make is that collaboration functionality should be treated as any other Web page content. In this way the Web content can be combined with the collaboration components in order to create new functionality. We believe this approach will enable implementation of efficient Web-based shippable places described in [11] as the next generation of the Web content - the places that can be shipped over the Internet. In our work on Shared Place we build on the experience gained during development of the TANGO Interactive framework [1] and component-based solutions employed in this system for creating collaborative applications [2]. Currently, TANGO Interactive Virtual Classroom [14] is actively used by Syracuse University to deliver online courses.

2. Shared Place overview

A place consists of two important components: a shared space and a social context. Multiple aspects of place metaphor application in development of collaboration systems are described in [12]. We are convinced that both social and spatial aspects are important for successful collaboration and our solution tries to support both factors equally.

Shared Place does not offer collaboration functionality per se, rather it supports construction of virtual places on the Web where people can interact and work together. Users of such virtual places can use content and tools that are present at the place for collaborative work. They can bring their own content and share it with others. They can possibly create new content and take it with them to another virtual place or store it in a personal repository for off-line work. From the user’s point of view, the Shared Place application is an ordinary Web page with added collaboration functionality. Let's imagine a place for stock traders. Such place would contain relevant information in HTML or XML form: stock prices, news updates, and latest data about financial state of various companies. It would also contain collaboration tools such as audio conferencing tools for communication, shared spreadsheets for financial calculations, shared whiteboards for analyzing economic trends, and voting tools for making buy/sell decisions. Such a place could be an efficient work environment and could be created by merging HTML content with collaboration components. Countless other places can be imagined, such as the place for discussing results of experiments for scientists or a place for distance learning.

Shared Place offers significant advantages to software developers and Web site builders. It provides mechanisms that allow separation of software components development from process of building virtual places. Software developers can concentrate on creating various types of collaboration tools using Shared Place API. Whereas content developers can use available collaboration components, Web resources, and Shared Place Definition Language (SPDL) to develop virtual places on the Web. Content developers do not have to deal with complexities of the collaboration component implementation. Hence, people without programming background can create interactive virtual places according to their needs.

3. Model

Collaborative applications must usually satisfy a large set of requirements. It would be convenient to have a model that allows specification of those requirements in abstract terms relevant to the collaboration functionality. Our model is a tool for making the transition from the domain of high-level software requirements to more structured specification of the virtual place. The model is designed in such a way that the description of the application in terms of model entities can be easily transformed to an SPDL document, which in turn is used by the Shared Place framework to create a virtual place with desired functionality. The model is a result of analysis of needs of various collaboration applications (such as distance learning and virtual meeting tools) and is influenced by especially successful MUD and MOO approaches [6].

3.1. Model entities

Shared Place model distinguishes several basic entities:

A Place corresponds to a physical place in the real world. It provides boundaries where the intended interactions occur. Places can contain Artifacts, Visitors, Agents, Tools, and Gates. Visitors present at the Place can interact directly with Agents, Tools, and Gates gathered here. Visitors interact indirectly (by using Tools) with Artifacts and other Visitors. Places are persistent; its content is preserved when all Visitors leave. They can also provide Gates to other Places. In this way the groups of interconnected Places can be defined. Figure 1 illustrates the Place with Place Artifacts, Visitors, a Gate, and a Tool used by Visitors to work on the Artifact.

Figure 1. Model entities

A Place possesses a number of customizable properties. First, it is possible to specify Visitors that are allowed to enter the Place and assign them to Visitor groups. The Place also contains description of the place policy specified as a set of behavior rules. Policies impose various restrictions on the model entities depending on the desired functionality (see [8] for detailed discussion of policies in collaborative applications). For example, a description of the Place can include allowed and disallowed types of Artifacts and Tools. A description of a Tool can specify the level of control that a Visitor can exercise over the Tool, the level of synchronization that the specific Tool provides, mechanism used for initial state distribution, user interface presented to Visitors, and type of floor control transfer. Rules for Artifacts can describe Visitor’s rights to create, store, copy, or delete Artifacts.

A Visitor represents the user in a Place and is similar in some aspects to the concept of an avatar in Multi-User Virtual Environments (MUVE) [9]. All actions that a user executes on the content of the Place are performed by the Visitor. Visitors can enter and leave the Place using Gates. The Visitor can interact with Place Artifacts using Tools and carry their own Personal Artifacts. Visitors can interact with Agents and communicate with each other using Tools. One user can have possibly several Visitors present in different Places at the same time. Usually, each Visitor has some role assigned in the Place. A role is used to determine how other Shared Place entities react to the Visitor actions. The Visitor cannot assume several roles in the same Place.

A Tool provides means of interaction between Artifacts and Visitors, as well as between Visitors. Whenever the Visitor wants to change state of the Artifact, the Visitor must use a Tool. Tools can be used to perform various tasks such as: providing awareness information, artifact management, communication, collaborative work, or modification of artifacts. Some Places need Tools that implement all these tasks, others will manage to provide required functionality with a subset. Tools may behave in different way depending on the type and mode of the Artifact they operate on, and the role of the Visitor that uses them. Tools can present different interfaces to the Visitors with different roles. Their behavior is defined by the place policy rules. They can be associated with a given Place or brought to a Place by a Visitor.

An Artifact represents content of an arbitrary type that can be created and accessed by a Visitor using Tools. It is essentially a data container such as a Web page, a document, an image, a stream of data, an entry point to information stored in database, or a set of links to other Artifacts. Artifacts can be moved from one Place to another by Visitors. However, some Places may put limitations on types of imported and exported Artifacts.

An Artifact can exist in one of two basic modes - as a Personal or a Place Artifact. A Personal Artifact belongs to a Visitor. A Visitor can possess arbitrary number of Personal Artifacts. Personal Artifacts are Place independent and can be carried from one Place to another. Place Artifacts are part of the Place content. They can be visible to the Visitors present at the Place if appropriate Tool for managing Artifacts is provided. The Visitors can change the mode of an Artifact by moving it from the Personal pool to the Place space or from the Place space to the Personal pool if appropriate Tools are present.

Artifacts have a number of properties such as type, expiration date, author information, date of modification, and pointer to a Tool that can be used to access the content. The Tool indicated by the information associated with an Artifact is activated when the Place does not have a specific Tool assigned to this type of the Artifact.

An Agent may perform actions on Place Artifacts on behalf of the Visitor while he or she is not present in the Place. Those might be administration tasks - removal of the expired Artifacts, or update of the time-sensitive content of the Artifact. Agents can also act without any authorization of a specific Visitor. Moreover, Agents may have social tasks to perform such as greeting Visitors, or offering instructions about use of certain Tools.

A Gate is an entity that enables Visitors to move from one Place to another. It is similar to HTML hypertext link but a Gate can also perform more complicated tasks such as authentication or providing information about the Place that the Visitor is about to enter.

3.2. User's view of the Place

A user perceives a place through a view. The view can be very different, depending on the purpose and the functionality of the place. The same entities of the model can be presented to the user in different manner in different places. Another factor that influences the view of the place is the role assigned to the user in the place. A user having the role of an administrator has access to more functionality than a user accessing the place as an ordinary customer. The view may also depend on the used device. For example, a view presented on a palmtop should be simpler than the view presented on a desktop machine.

A view is composed of Tools, Gates, Agents and HTML content. Information about Artifacts and other Visitors present at the place is not shown directly in the place view but it can be displayed by dedicated Tools. For example, a Tool can display a list of Personal or Place Artifacts or show Visitors as icons. The user may see all or certain subset of the place entities. If the designer of the place decides that it should be used only for synchronous communication, Artifacts and Agents may not be necessary.

3.3. Example of place description

In this section we describe a fairly complex collaboration system, a customer support place, using concepts introduced by the Shared Place model. We begin with a view seen by a support person. Such a person enters the place as a Visitor with 'Support' role assigned. Necessary Tools for communication with customers include a chat Tool or an audio Tool and a demonstration area. The chat or the audio Tool (whichever is available in the place) has the ability to create logs of conversations in the form of Place text or audio Artifacts. The demonstration area has the ability to retrieve Place Artifacts with the examples of the offered products and provides whiteboard functionality.

Figure 2. Customized place - support person

Two more tools are essential: a Place Artifact manager and a customer presence Tool. The Place Artifact manager enables control over the demonstration Artifacts and the Artifacts created using communication Tools. The customer presence Tool informs the support person that a customer has entered the place and seeks assistance. The support person does not need to have access to his or her Personal Artifacts because all Artifacts necessary to provide the service are available as the Place Artifacts. No Agents or Gates are necessary for the support person.

A customer enters the place as a Visitor with 'Customer' role assigned. The customer has access to the same communication tools as the support person; they are necessary for asking questions and receiving responses, but their functionality is slightly different. They enable archiving of interaction results in the form of Personal Artifacts that the customer will be able to store and consult later. The demonstration area should offer similar functionality. As a result, a Personal Artifact manager is needed to control created Artifacts. The customer support place can also have a Gate to another place where customers can gather and exchange experiences with other customers who bought the same product. An Agent may greet entering customers and offer some forms of assistance. Finally, the place view is complemented with the context content: HTML with company specific widgets or ads of the latest products.

Figures 2 and 3 demonstrate the view of the customer support place as seen by the support person and the customer respectively. The screenshots show the prototype implementation of DirecTouch - the customer support system developed by CollabWorx using the Shared Place framework. The functionality of the customer's interface presented in Figure 3 is not as rich as described in the example above but it is sufficient for basic communication. It is important to notice that the support person has access to more place resources than the customer does. More Tools are available; apart from a chat and a whiteboard, a list of Place Artifacts and a list of present Visitors are provided. Moreover, the chat and the whiteboard Tools operated by the support person have additional controls that allow saving chat and whiteboard content in form of Place Artifacts. Other controls are used for erasing and synchronizing Tool content. In this prototype, integration of the HTML content with collaboration components allowed to create customized appearance of the place.

Figure 3. Customized place - customer

4. Shared Place documents

Shared Place documents have crucial role for the Shared Place concept. Most of the content of the documents is specified in Shared Place Definition Language (SPDL) - the XML-based language providing syntax for describing the collaboration functionality of the virtual place. The Shared Place framework recognizes several types of documents. The most important is the document that describes the place itself. It is composed of two parts. The SPDL part defines collaboration functionality of the place. It has ability to define multiple properties such as users allowed to enter the place, roles assigned to specific users, behavior of collaboration tools, or policies regarding persistence of objects created during collaborative work. It contains entries that describe properties of model entities: the place itself, the users, user groups and their roles, artifacts, tools, visitors, agents, and gates to other places. The place policy is specified in SPDL as a set of behavior rules, which are associated with user roles, tools, artifacts and agents to create complete definition of the place policy.

<role name="Support">
  <user>John</user>
</role>
<role name="Customer">
  <user>guest</user>
</role>
<behavior_def name="restricted">   <synchronization>instant</synchronization>   <control>no_buttons</control>
  <initial_state>none</initial_state>
  <archiving space="none">none</archiving>   <floor_control>none</floor_control>
</behavior_def>
<behavior_def name="full_access">   <synchronization>instant</synchronization>   <control>full</control>
  <initial_state>none</initial_state>
  <archiving space="public">read_write</archiving>   <floor_control>none</floor_control>
</behavior_def>
<tool_def name="chat">
  <description>Tool for text based communication     </description>
  <policy role="Customer" behavior="restricted"/>
  <policy role="Support" behavior="full_access"/>   <implementation>
    http://www.CollabWorx/shared/sptool/chat.spdl   </implementation>
</tool_def>

Figure 4. A fragment of place description in SPDL

Figure 4 presents the fragment of the SPDL part of the place description. It declares two roles - the 'Support' role is assigned to the person that enters the place as John, the 'Customer' role is assigned to any other user that enters the place through gate without authentication. Two behavior rules are declared, later associated with user roles to determine behavior of a chat tool. Information about tool contains URL of the tool description document that contains declaration of collaboration properties supported by the chat and a pointer to the actual implementation of the tool.

The HTML part of the place definition document describes the appearance of the virtual place, and can be different for each user role. In this part a developer can utilize all the resources used in building regular Web page. Entities described using SPDL are embedded in the HTML part of the document by using special tags. HTML is not the only choice here. Other applications of XML such as XHTML can be used.

Shared Place also relies on other documents, specified entirely in SPDL. They describe properties that tools, artifacts, agents, and gates expose for customization. This information is used to check validity of the place definition document. The last type of document used by Shared Place provides identity information about a user. It corresponds to a business card presented whenever user accesses specific place. It contains such data as user name, e-mail address, home Web page or place, and a public key used for data encryption.

5. Architecture

Shared Place merges several technologies such as Web infrastructure, Web browser platforms, and component technologies (see Figure 5). Shared Place documents are stored on Web servers and can be downloaded as any other Web resources. The places are accessed using the components implementing gate functionality. Such a component can be embedded in a regular Web page or it can be a part of a virtual place. When activated by the user, it has the ability to fetch a Shared Place document, translate it into a document with embedded collaboration and Shared Place framework components understandable by a standard Web browser, and display the result as a virtual place in a browser window. The collaboration components are visible to the user, whereas the framework components, which implement the collaboration services and expose them to the collaboration components of virtual place, remain hidden. The collaboration services include user authentication, establishing channels of communication, synchronization, access to place properties, access to policy settings, notifications about changes in the state of the place, and management of persistent artifacts. The services implemented by Shared Places framework are available through the set of Application Programming Interfaces (API). The framework components communicate with the Shared Place server that implements most of the services.

The collaboration components (tools, gates, and agents) are customizable pieces of software developed using available component technologies (for example Java Beans or ActiveX) and Shared Place API. They are stored on a Web server together with the SPDL documents that describe their configurable properties. When embedded in a place, they follow rules described in a place definition document and communicate with the Shared Place framework (through exposed API) to access available collaboration services. As a result, it is possible to create multiple places that look and behave in different manner by changing SPDL specifications or place layout while using the same set of the collaboration components.

Figure 5. Shared Place architecture

The HTTP or FTP servers are used as the artifact repositories. The servers must be set up in a way that makes updates of artifacts possible. An artifact may also provide an interface to more complex form of storage such as database repository, media streams or access to scientific instrument input and output. In addition, personal artifacts may be stored on a local machine to allow off-line access.

6. Related work

Significant research was conducted in the area of separating the computation and coordination mechanisms in collaborative applications. For example, Describing Collaborative Work Programming Language (DCWPL) [5] allows developers to specify multiple coordination rules for the same application. The execution of applications is controlled by external entity - Control Engine, which can interpret DCWPL programs and impose chosen collaboration policy. Shared Place framework is not so restrictive in controlling behavior of collaboration components. Collaboration components access policy settings during initialization procedure and act accordingly.

Artifact [7] is Web-based framework for building collaborative applications that supports a room metaphor. The rooms are built from set of HTML frames that contain information about applications, objects and users. The applications are launched as separate windows with exception of a chat tool, which is permanently built in the one of the room frames. Artifact provides Artifact Definition Language (ADL) that allows building simple collaboration tools by composing HTML and Tcl constructs. It also offers APIs in several programming languages. Our solution differs in several aspects. Virtual environments built using Shared Place are not restricted to one type of layout, HTML documents with arbitrary structure can be used to define appearance of the place. Moreover, Shared Place allows arbitrary collaboration components to be embedded in the document as interactive content (this approach is preferred over launching tools in separate windows). In addition to collaboration tools, other specialized components can be used such as gates and agents. Finally, SPDL can define the behavior of the individual component as well as the behavior of the whole place.

There are many other environments and systems that employ place metaphor such as Multi User Dungeons (MUD and MOO) [6], Collaborative Virtual Workspace [10] or TeamRooms [12] but they are not integrated with Web environment and usually they do not allow for component customization.

7. Implementation status

The early results of the work on Shared Place were presented at XML Developers' Conference in August'99 [3]. The prototype versions of the Shared Place server and the framework components are already implemented and were used to develop virtual places for customer support service.

8. Conclusions

Shared Place technology provides place functionality by merging customizable collaboration components and support for persistent artifacts with the Web content. The Shared Place Definition Language (SPDL), based on XML, allows description of collaboration functionality using conventional markup language. The conformance to the Web standards means that SPDL documents can be processed by widely available XML tools and can be integrated with other Web resources.

The level of customizability offered by Shared Place allows developers to create various environments, from social interaction to work and service oriented places. The process of building places is separated from the development of the collaboration tools. One of the advantages of this approach is the possibility of dynamic creation of the virtual places from the libraries of the components. The dynamic construction of the virtual place can be accomplished by generating Shared Place documents according to user preferences, tasks to be executed or available resources. Whenever necessary, the places can be interconnected to build complex Web communities.

Further work is still needed to include support for dynamic changes of users’ roles and directory services for finding users distributed among different places. Other important issues that must be addressed include security and privacy of the users accessing virtual places.

10. References

[1] Beca, L., Cheng, G., Fox, G. C., Jurga, T., Olszewski, K., Podgorny, M., Sokolowski, P., and Walczak, K., Java enabling collaborative education, health care, and computing, Concurrency: Practice and Experience, Vol. 9(6), June 1997, pp. 521-533.

[2] Beca, L., Fox, G. C., Podgorny, M., Component Architecture for Building Web-Based Synchronous Collaboration Systems, Proceedings of WETICE'99, June 1999, pp.108-113.

[3] Beca, L., Fox, G. C., Podgorny, M., Shared Places on the Web: XML for Web-based collaboration and Distance Education, Graphic Communications Association, XML Developers' Conference, August 1999, http://www.npac.syr.edu/users/gcf/montrealxmlaug99/.

>[4] Chappell D., Understanding ActiveX and OLE: A Guide for Developers & Managers, Microsoft Press, 1996.

[5] Cortés, M., Mishra, P., DCWPL: a programming language for describing collaborative work, Proceedings of CSCW'96, November 1996, pp. 21-29.

[6] Curtis, P., Nichols, D.A., MUDs grow up: Social Virtual Reality in the Real World, Proceedings of the 1994 IEEE Computer Conference, 1994.

[7] Dobridge, T., Lin, J., Rajan, D., Roscoe, T., Brandenburg, J., Byerly, B., Artifact: A Framework for Low-Overhead Web-Based Collaborative Systems, Proceedings of CSCW'98, November 1998, Page 189 - 196.

[8] Edwards, W. K., Policies and Roles in Collaborative Applications, Proceedings of CSCW' 96, November 1996, pp.11 - 20.

[9] Kauppinen, K., Kivimäki, A., Era, T., Robinson, M., Producing identity in collaborative virtual environments, Proceedings of the ACM Symposium on Virtual reality software and technology, November 1998, pp. 35 - 42.

[10] Mosier, J. N., Deus, L. M., Carlson, J. A., Spellman, P. J., Collaborative Virtual Workspace; Proceedings of the International ACM SIGGROUP Conference on Supporting Group Work, November1997, pp. 197 - 203.

[11] Orfali, R., Harkey, D., Edwards, J., The Essential Client/Server Survival Guide, Second Edition, John Wiley and Sons, 1996.

[12] Roseman, M., Greenberg, S., TeamRooms: Network Places for Collaboration, Proceedings of CSCW'96, November 1996, pp. 325 - 333.

[13] Sun Microsystems, The JavaBeans 1.01 Specification, http://java.sun.com/beans.

[14] CollabWorx, TANGO Interactive Virtual Classroom, http://www.collabworx.com/products/vclassroom.html.

[15] World Wide Web Consortium, Document Object Model (DOM) Level1 Specification: Version 1.0, W3C Recommendation, http://www.w3.org/TR/REC-DOM-Level-1, October 98.

[16] World Wide Web Consortium, Extensible Markup Language(XML) 1.0, W3C Recommendation, http://www.w3.org/TR/REC-xml, February 98.

 

[Home] [About Us] [Products] [Downloads] [Search]

Copyright © 2000 CollabWorx, Inc. All Rights Reserved
Privacy Policy | Contact CollabWorx