HELP! * GREY=local Full HTML for

LOCAL foilset Tango web Collaboratory Technology

Given by Marek Podgorny at CEWES HPC Collaborative Methods and Tools Meeting on February 27 1997. Foils prepared March 4 1997
Abstract * Foil Index for this file

See also color IMAGE
TANGO is a prototype of an open, extensible system that provides a technological framework for building subsequent generations of collaborative systems
TANGO is fused with Web on both functional design and implementation levels
TANGO provides complete collaboratory runtime for both synchronous and asynchronous sessions

Table of Contents for full HTML of Tango web Collaboratory Technology


1 TANGO Collaboratory for the World Wide Web
2 What is TANGO?
3 TANGO: Design principles
4 TANGO: Design principles
5 Functional Model
6 Functional Model
7 Functional Model
8 Functional Model
9 Functional Model
10 Formal Design Requirements
11 Formal Design Requirements
12 Session Management
13 Session Management
14 TANGO Framework
15 Communication
16 Communication
17 User Authentication
18 Event/Data Logging
19 System Architecture
20 System Components
21 System Components
22 System Components
23 System Components
24 System Components
25 Implementation Details
26 TANGO API
27 TANGO API
28 TANGO API
29 Future Work

This table of Contents Abstract



HELP! * GREY=local HTML version of LOCAL Foils prepared March 4 1997

Foil 1 TANGO Collaboratory for the World Wide Web

From Tango web Collaboratory Technology CEWES HPC Collaborative Methods and Tools Meeting -- February 27 1997. * See also color IMAGE
Full HTML Index
Marek Podgorny
Northeast Parallel Architectures Center
Syracuse University

HELP! * GREY=local HTML version of LOCAL Foils prepared March 4 1997

Foil 2 What is TANGO?

From Tango web Collaboratory Technology CEWES HPC Collaborative Methods and Tools Meeting -- February 27 1997. * See also color IMAGE
Full HTML Index
TANGO is a prototype of an open, extensible system that provides a technological framework for building subsequent generations of collaborative systems
TANGO is fused with Web on both functional design and implementation levels
TANGO provides complete collaboratory runtime for both synchronous and asynchronous sessions

HELP! * GREY=local HTML version of LOCAL Foils prepared March 4 1997

Foil 3 TANGO: Design principles

From Tango web Collaboratory Technology CEWES HPC Collaborative Methods and Tools Meeting -- February 27 1997. * See also color IMAGE
Full HTML Index
A blueprint for a truly successful collaboratory system does not exist
  • Need an extensible system with very few limitations.
  • System must not define application specific protocols, application programming language, or limit in whatever way functionality of collaboratory applications
The essence of each collaboratory function must be defined by application and by application only
The most likely collaboratory applications are the applications supporting professional work in the stand-alone mode.

HELP! * GREY=local HTML version of LOCAL Foils prepared March 4 1997

Foil 4 TANGO: Design principles

From Tango web Collaboratory Technology CEWES HPC Collaborative Methods and Tools Meeting -- February 27 1997. * See also color IMAGE
Full HTML Index
The last requirement implies a system that is both a collaboratory runtime and an integration platform:
  • existing applications code reused when building their collaborative versions
  • the majority of applications working in collaborative mode may be implemented using similar, simple message passing mechanism
  • useful collaborative systems can be built by integrating slightly modified standalone applications with user and session management mechanisms
Need simple but powerful collaboratory API

HELP! * GREY=local HTML version of LOCAL Foils prepared March 4 1997

Foil 5 Functional Model

From Tango web Collaboratory Technology CEWES HPC Collaborative Methods and Tools Meeting -- February 27 1997. * See also color IMAGE
Full HTML Index
TANGO supports creation of shareable information spaces
  • not a "cooperating twins" model
  • supports coordinated but independent views of related information
  • supports information exchange between different applications
    • allows to build applications from small reusable modules
  • supports direct access to all information resources of the Web at all stages of collaborative process
    • complete and seamless integration with Web browsers

HELP! * GREY=local HTML version of LOCAL Foils prepared March 4 1997

Foil 6 Functional Model

From Tango web Collaboratory Technology CEWES HPC Collaborative Methods and Tools Meeting -- February 27 1997. * See also color IMAGE
Full HTML Index
TANGO is very tightly integrated with the Web:
  • Access to the entire informational potential of the Web
    • This is critical for the construction of the shareable information space discussed above.
  • Self-distributing software model for collaboratory applications.
    • While this decision created a number of difficult software implementation issues, it also makes the system very easy to install, use, and extend.

HELP! * GREY=local HTML version of LOCAL Foils prepared March 4 1997

Foil 7 Functional Model

From Tango web Collaboratory Technology CEWES HPC Collaborative Methods and Tools Meeting -- February 27 1997. * See also color IMAGE
Full HTML Index
TANGO provides support for all synchronous collaboratory functions:
  • TANGO is a statefull system. It supports all functions of a synchronous collaboratory system, including session management, data/event distribution, flexible floor control, and multiple configurable security levels.
Asynchronous collaboration is supported via database back-end:
  • Session recording and playback capability has been designed into the system as its fundamental component for both events and data streams.

HELP! * GREY=local HTML version of LOCAL Foils prepared March 4 1997

Foil 8 Functional Model

From Tango web Collaboratory Technology CEWES HPC Collaborative Methods and Tools Meeting -- February 27 1997. * See also color IMAGE
Full HTML Index
Distributed visualization and manipulation of multimedia information streams:
  • Scaleable multimedia support via decentralized distribution mechanisms of multimedia streams under TANGO session control.
Language independence:
  • Runtime written in Java, but no restriction on the language used to implement collaborative applications.
  • Full support for applications written in JavaScript.

HELP! * GREY=local HTML version of LOCAL Foils prepared March 4 1997

Foil 9 Functional Model

From Tango web Collaboratory Technology CEWES HPC Collaborative Methods and Tools Meeting -- February 27 1997. * See also color IMAGE
Full HTML Index
Extensibility:
  • Ultimate success or failure of a collaboratory system depends on its application set.
  • Video, audio, and whiteboard conferencing is just a seed of a collaboratory.
  • Domain specific applications must be either implemented for a collaboratory to become truly useful.
  • Hence, TANGO APIs for Java, C/C++ and Javascript have been designed, implemented, and documented.
TANGO extends Web paradigm to true collabora- tive computing and beyond the chat and shared whiteboard concept

HELP! * GREY=local HTML version of LOCAL Foils prepared March 4 1997

Foil 10 Formal Design Requirements

From Tango web Collaboratory Technology CEWES HPC Collaborative Methods and Tools Meeting -- February 27 1997. * See also color IMAGE
Full HTML Index
Integrate both standalone and Web-based applications by providing a uniform interface to communicate with their instances on remote machines
Allow to execute and control collaborative application from the Internet browser environment
Provide means for session control: user authentication, starting and ending sessions, tracing participants activities, changing user privileges, and for data/event distribution

HELP! * GREY=local HTML version of LOCAL Foils prepared March 4 1997

Foil 11 Formal Design Requirements

From Tango web Collaboratory Technology CEWES HPC Collaborative Methods and Tools Meeting -- February 27 1997. * See also color IMAGE
Full HTML Index
Enable integration of existing applications written in any language, assuming socket as the only necessary communication mechanism
Provide ability to download applications across the network (automatic distribution)
Provide logging mechanism, so all user activities may be stored in persistent form in a database and retraced if necessary
Support definition of compatible message and application classes to enable multiple, task oriented views of the information streams either locally or remotely

HELP! * GREY=local HTML version of LOCAL Foils prepared March 4 1997

Foil 12 Session Management

From Tango web Collaboratory Technology CEWES HPC Collaborative Methods and Tools Meeting -- February 27 1997. * See also color IMAGE
Full HTML Index
A session is a group of application instances currently working together in the collaborative mode.
  • All applications belonging to the same session exchange information and share behavior.
  • How particular application operates in collaborative mode depends on this application characteristics.
  • In all sessions there is one master user.
    • Master of the session has special privileges of controlling the application behavior and/or controlling access of other users to this session. The privileges depend on the application type.

HELP! * GREY=local HTML version of LOCAL Foils prepared March 4 1997

Foil 13 Session Management

From Tango web Collaboratory Technology CEWES HPC Collaborative Methods and Tools Meeting -- February 27 1997. * See also color IMAGE
Full HTML Index
Master status is dynamically transferable. Floor control allows for master-master relationship in certain cases
TANGO does not restrict the number of concurrent sessions. There may be multiple independent sessions of applications of the same type.
Messages from one application compatible with application of another type will be distributed transparently.

HELP! * GREY=local HTML version of LOCAL Foils prepared March 4 1997

Foil 14 TANGO Framework

From Tango web Collaboratory Technology CEWES HPC Collaborative Methods and Tools Meeting -- February 27 1997. * Critical Information in IMAGE
Full HTML Index
VTC
Collaboratory
Server
Multicast
Network
Medium
C2 Workstation
Web/DB Servers
C2 Workstation
Databases
DBMS
VTC
GIS
Viewer
GIS
Viewer
Web
Server
Simulation
Driver -
Event
Generator
Scripted
Participant
Active Participants

HELP! * GREY=local HTML version of LOCAL Foils prepared March 4 1997

Foil 15 Communication

From Tango web Collaboratory Technology CEWES HPC Collaborative Methods and Tools Meeting -- February 27 1997. * See also color IMAGE
Full HTML Index
Two major types of messages:
  • Control messages are generated by the system for communication between the server, daemons, and control applications.
  • These messages serve functions such as logging users into the system, establishing sessions, launching applications, etc.
  • Control messages are invisible for user applications.

HELP! * GREY=local HTML version of LOCAL Foils prepared March 4 1997

Foil 16 Communication

From Tango web Collaboratory Technology CEWES HPC Collaborative Methods and Tools Meeting -- February 27 1997. * See also color IMAGE
Full HTML Index
Two major types of messages, cont.
  • Application messages provide communication between user applications
  • The structure of application messages depends on the application and is opaque to TANGO server
  • Conversely, TANGO communication system is transparent for the application messages
  • Application specific communication protocol is always defined by the application itself using TANGO API
At present all messages are sent as strings

HELP! * GREY=local HTML version of LOCAL Foils prepared March 4 1997

Foil 17 User Authentication

From Tango web Collaboratory Technology CEWES HPC Collaborative Methods and Tools Meeting -- February 27 1997. * See also color IMAGE
Full HTML Index
TANGO authentication and authorization mechanisms are independent on the underlying OS
  • All user data is kept in a security database accessible only via the main server by a system administration application
  • User who fails authentication cannot open sessions and connect to the system
  • It is possible to associate certain application functionality with certain level of privileges
  • System security measures can be deactivated using TANGO server configuration tools

HELP! * GREY=local HTML version of LOCAL Foils prepared March 4 1997

Foil 18 Event/Data Logging

From Tango web Collaboratory Technology CEWES HPC Collaborative Methods and Tools Meeting -- February 27 1997. * See also color IMAGE
Full HTML Index
Since all system and application messages pass through the server, they can easily be recorded in a database
  • Events are recorded in the database together with the date, exact time, and sender information
  • These data can be then accessed and the whole system activity can be asynchronously reviewed.
Database logging also supports recording of the multimedia streams, using NPAC VoD server as a backend

HELP! * GREY=local HTML version of LOCAL Foils prepared March 4 1997

Foil 19 System Architecture

From Tango web Collaboratory Technology CEWES HPC Collaborative Methods and Tools Meeting -- February 27 1997. * Critical Information in IMAGE
Full HTML Index
N: Netscape Browser
LD: Local Daemon
CA: Control Application
AP: Applet
LA: Local Application
CS: Central Server
DB: Back-end Database
HTTP: Web server

HELP! * GREY=local HTML version of LOCAL Foils prepared March 4 1997

Foil 20 System Components

From Tango web Collaboratory Technology CEWES HPC Collaborative Methods and Tools Meeting -- February 27 1997. * See also color IMAGE
Full HTML Index
Local daemon's main tasks:
  • maintaining two way communication between user applications, applets and central server
  • launching local applications
  • passing messages between applications running on the same node
  • providing certain system level functionality not normally available to Java applets.
The daemon is implemented as a plug-in (or ActiveX control) to Web browsers.
  • The daemon is the only operating system dependent core part of TANGO.

HELP! * GREY=local HTML version of LOCAL Foils prepared March 4 1997

Foil 21 System Components

From Tango web Collaboratory Technology CEWES HPC Collaborative Methods and Tools Meeting -- February 27 1997. * See also color IMAGE
Full HTML Index
Central server is the main communication element.
  • Local daemons communicate with the central server.
  • Server maintains the system state data
  • Sever routes messages between applications participating in each session and records all events in the back-end database.
  • Currently, TANGO system is restricted to only one collaboratory server.
    • We are investigating a model for inter-server communication. This research is directed towards extended functionality of a collaboratory systems such as automatic discovery of potential collaborators.

HELP! * GREY=local HTML version of LOCAL Foils prepared March 4 1997

Foil 22 System Components

From Tango web Collaboratory Technology CEWES HPC Collaborative Methods and Tools Meeting -- February 27 1997. * See also color IMAGE
Full HTML Index
Local Applications:
  • User applications which run as standalone programs are called local applications. Local application may be written in any programming language.
    • Communicate with the local daemon using sockets. The daemon is responsible for starting these applications and routing messages to and from applications.
  • Java applets
    • User applications written in Java, downloaded from an HTTP server, and executed in browser environment.
      • Communication between Java applets and central server is also maintained by the local daemons. Java applets communicate with local daemon by calling its method functions.

HELP! * GREY=local HTML version of LOCAL Foils prepared March 4 1997

Foil 23 System Components

From Tango web Collaboratory Technology CEWES HPC Collaborative Methods and Tools Meeting -- February 27 1997. * See also color IMAGE
Full HTML Index
Control application provides TANGO GUI.
  • launches applications locally or remotely
  • creates and connect existing sessions, to exit applications, logs into the system, etc.
  • User interface to the control application depends on user privileges
CA communicates with the system via LD
  • The communication between control application and local daemon is different than in the case of standard Java applets since control application can also generate system messages.

HELP! * GREY=local HTML version of LOCAL Foils prepared March 4 1997

Foil 24 System Components

From Tango web Collaboratory Technology CEWES HPC Collaborative Methods and Tools Meeting -- February 27 1997. * Critical Information in IMAGE
Full HTML Index
For scaleability reasons, the real time multimedia streams are not sent via central server.
  • Instead, we use a distributed architecture akin to the Insoft's OpenDVE
  • The architecture supports multicast.
  • Session control remains with the TANGO session manager.
  • TANGO VTC supports stream recording, storage, and retrieval

HELP! * GREY=local HTML version of LOCAL Foils prepared March 4 1997

Foil 25 Implementation Details

From Tango web Collaboratory Technology CEWES HPC Collaborative Methods and Tools Meeting -- February 27 1997. * Critical Information in IMAGE
Full HTML Index
Daemon provides a mechanism for TANGO components such as Java applets, central server, JavaScript scripts etc. to talk to each other.
TANGO daemon has been implemented as a plug-in.
Using LiveConnect mechanisms, each applet residing in the same page with the plug-in may obtain its handle.
Message passing between plug-in and an applet is achieved by calling appropriate methods of each other

HELP! * GREY=local HTML version of LOCAL Foils prepared March 4 1997

Foil 26 TANGO API

From Tango web Collaboratory Technology CEWES HPC Collaborative Methods and Tools Meeting -- February 27 1997. * See also color IMAGE
Full HTML Index
TANGO API is used to convert a standalone application into a shared application
  • With TANGO API, all the message passing and event routing is completely transparent to the developers.
  • Developers only need to define when and what the application will share with all participants of the same application.
  • This is done by inserting Tango API into the application code, without modifying any line of the existing code.
  • Two categories of API functions: Core API and CA API

HELP! * GREY=local HTML version of LOCAL Foils prepared March 4 1997

Foil 27 TANGO API

From Tango web Collaboratory Technology CEWES HPC Collaborative Methods and Tools Meeting -- February 27 1997. * See also color IMAGE
Full HTML Index
TANGO Core API
  • Used for an application to communicate with other participants of the same application
TANGO CA API
  • Allows an application to access the current state information of the TANGO system, such as sessions, participants, modes, identifications, application lists etc.
  • Usually used for the applications that themselves are collaborative in nature, such as chat, whiteboard, audio conferencing etc.

HELP! * GREY=local HTML version of LOCAL Foils prepared March 4 1997

Foil 28 TANGO API

From Tango web Collaboratory Technology CEWES HPC Collaborative Methods and Tools Meeting -- February 27 1997. * See also color IMAGE
Full HTML Index
At present, both TANGO APIs are available for
  • Java (both applications and applets)
  • C/C++
  • JavaScript
JavaScript API:
  • supports client-side collaborative applications
  • TANGO-ized JavaScript applications can be synchronized within a "collaborative browser" based on a standard browser of any vendor
  • TANGO JavaScript API automatically turns each Web page into a collaborative entity.

HELP! * GREY=local HTML version of LOCAL Foils prepared March 4 1997

Foil 29 Future Work

From Tango web Collaboratory Technology CEWES HPC Collaborative Methods and Tools Meeting -- February 27 1997. * See also color IMAGE
Full HTML Index
Improvement and further development of the core TANGO runtime and APIs.
  • The project is driven by the technological advances of commercial Web tools and by academic research in distributed Internet systems.
Development of the domain specific application modules and deployment of the system in the domain specific testbeds

Northeast Parallel Architectures Center, Syracuse University, npac@npac.syr.edu

If you have any comments about this server, send e-mail to webmaster@npac.syr.edu.

Page produced by wwwfoil on Tue Mar 4 1997