Full HTML for

Basic foilset Tango Collaboratory for CIV Project

Given by Marek Podgorny at Rome Laboratory CIV Final Review on 9 April 98. Foils prepared 9 April 98
Outside Index Summary of Material


This was centerpiece of CIV project and provided collaboration functions and overall software integration
We review basic principles and classification of collaboration systems and use to motivate
Tango Highlights, Design Principles, Design requirements and Functional Model
We describe Session Management, Communication, System architecture and its components
We describe Tango API for application developers and a sort overview of some applications

Table of Contents for full HTML of Tango Collaboratory for CIV Project

Denote Foils where Image Critical
Denote Foils where HTML is sufficient

1 CIV Collaboration Framework: TANGO Interactive
2 Collaboratory systems: Taxonomy
3 Collaboratory systems: Taxonomy II
4 Collaboration Transparency
5 Event Broadcasting: Criticism
6 What is TANGO?
7 TANGO Collaboratory
8 TANGO: Highlights
9 TANGO: Design principles
10 TANGO: Design principles
11 Functional Model
12 Functional Model
13 Functional Model
14 Functional Model
15 Functional Model
16 Formal Design Requirements
17 Formal Design Requirements
18 Session Management
19 Session Management
20 Communication
21 Communication
22 System Architecture
23 System Components
24 System Components
25 System Components
26 System Components
27 TANGO: Control Application
28 TANGO: application control
29 System Components
30 User Authentication
31 Implementation Details
32 TANGO API
33 TANGO API
34 TANGO API
35 TANGO API
36 TANGO Applications
37 TANGO: Status
38 TANGO/Wisdom
39 TANGO & Collaborative 3D
40 Video on Demand/TANGO Integration

Outside Index Summary of Material



HTML version of Basic Foils prepared 9 April 98

Foil 1 CIV Collaboration Framework: TANGO Interactive

From Tango Collaboratory for CIV Project Rome Laboratory CIV Final Review -- 9 April 98. *
Full HTML Index
Marek Podgorny Rome Laboratory Final CIV Review April 8 1998 NPAC Syracuse University

HTML version of Basic Foils prepared 9 April 98

Foil 2 Collaboratory systems: Taxonomy

From Tango Collaboratory for CIV Project Rome Laboratory CIV Final Review -- 9 April 98. *
Full HTML Index
Basic architectures
  • Shared display: single instance of application, user input & display replicated via conference agent
    • Entire functionality of application is shared
    • Examples: Shared X (HP), NetMeeting (MS), ProShare (Intel), ShowMe (Sun), Timbuktu (Farallon)
    • Advantages: simple to implement
    • Disadvantages:
      • functional: simplistic, inflexible, awkward session control model, insecure (no data access control), no support for asynchronous collaboration, race condition problems
      • performance: generate heavy data traffic, unacceptable on WANs
      • incompatible with Web programming model assuming local intelligence

HTML version of Basic Foils prepared 9 April 98

Foil 3 Collaboratory systems: Taxonomy II

From Tango Collaboratory for CIV Project Rome Laboratory CIV Final Review -- 9 April 98. *
Full HTML Index
Basic architectures
  • Event broadcasting: each workstation runs its own copy of application.
    • (A) Virtual instance: all events shared (collaboration transparency)
    • (B) Independent data views: some events shared
    • Examples: Habanero (NCSA - B), Java Collab. Toolset (Old Dominion - A ), ProMondia (Univ. of Nuernberg - B), UARC (Univ. of Michigan - B), TANGO (NPAC - B)
    • Disadvantages: new category of SW, difficult to implement
    • Advantages: infinitely flexible and adaptable, generate little network traffic, perfectly fit Web/Java paradigm, can implement security, can support asynchronous collaboration....

HTML version of Basic Foils prepared 9 April 98

Foil 4 Collaboration Transparency

From Tango Collaboratory for CIV Project Rome Laboratory CIV Final Review -- 9 April 98. *
Full HTML Index
Concept: design a system that allows using an application designed for a single individual to be used by a group of people without changing anything in the application
  • Shared display applications implement collaboration transparency
Proposed extension of the paradigm to the event broadcasting architectures (Old Dominions' JCT, Virginia Tech's JAMM)
  • technical approach: modification of the Java AWT to distribute events
  • our evaluation:
    • we support event distribution model, but consider collaboration transparency an unrealistic limitation.
    • Similar functionality can be achieved by using OO API technology

HTML version of Basic Foils prepared 9 April 98

Foil 5 Event Broadcasting: Criticism

From Tango Collaboratory for CIV Project Rome Laboratory CIV Final Review -- 9 April 98. *
Full HTML Index
Sharing possible only if applications deterministic
  • applications ARE deterministic or can be made so
Copies of applications must be present everywhere
  • but they are, being applets or downloaded via a push channel
Environments must be identical
  • Java VM takes care about this
Initial state of a newcomer impossible to define
  • not so for good OO design and object serialization mechanism
Cannot maintain consistency among copies
  • Difficult ? Impossible. Variety of sync mechanisms available
Web model enables event broadcasting!

HTML version of Basic Foils prepared 9 April 98

Foil 6 What is TANGO?

From Tango Collaboratory for CIV Project Rome Laboratory CIV Final Review -- 9 April 98. *
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

HTML version of Basic Foils prepared 9 April 98

Foil 7 TANGO Collaboratory

From Tango Collaboratory for CIV Project Rome Laboratory CIV Final Review -- 9 April 98. *
Full HTML Index
TANGO is a software framework supporting computer-based communication and collaboration
  • Initial design and implementation for Command and Control
  • Runs in Web environment and uses standard Web technologies
  • Allows for implementation of arbitrary collaboratory applications
  • Multiplatform run-time and multi-language API
    • UNIX/Windows; Java (applet or application), C, C++, JavaScript, VRML2, LISP

HTML version of Basic Foils prepared 9 April 98

Foil 8 TANGO: Highlights

From Tango Collaboratory for CIV Project Rome Laboratory CIV Final Review -- 9 April 98. *
Full HTML Index
Technically, TANGO is a distributed system based on event broadcasting
  • TANGO does not assume collaborative transparency, although current design allows it for certain applications
Core system is implemented in Java and as a browser plug-in
Base programming module is a Java applet
  • however, other forms supported as well, including Java, C/C++ applications, JavaScript/VRML 2 or even LISP modules
TANGO modules can be downloaded from anywhere
  • can interact via a server at arbitrary location

HTML version of Basic Foils prepared 9 April 98

Foil 9 TANGO: Design principles

From Tango Collaboratory for CIV Project Rome Laboratory CIV Final Review -- 9 April 98. *
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.

HTML version of Basic Foils prepared 9 April 98

Foil 10 TANGO: Design principles

From Tango Collaboratory for CIV Project Rome Laboratory CIV Final Review -- 9 April 98. *
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

HTML version of Basic Foils prepared 9 April 98

Foil 11 Functional Model

From Tango Collaboratory for CIV Project Rome Laboratory CIV Final Review -- 9 April 98. *
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

HTML version of Basic Foils prepared 9 April 98

Foil 12 Functional Model

From Tango Collaboratory for CIV Project Rome Laboratory CIV Final Review -- 9 April 98. *
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.

HTML version of Basic Foils prepared 9 April 98

Foil 13 Functional Model

From Tango Collaboratory for CIV Project Rome Laboratory CIV Final Review -- 9 April 98. *
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 can be supported via database back-end:
  • Session recording and playback capability has been designed into the system as its fundamental component. However, this feature has not yet been implemented.

HTML version of Basic Foils prepared 9 April 98

Foil 14 Functional Model

From Tango Collaboratory for CIV Project Rome Laboratory CIV Final Review -- 9 April 98. *
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.

HTML version of Basic Foils prepared 9 April 98

Foil 15 Functional Model

From Tango Collaboratory for CIV Project Rome Laboratory CIV Final Review -- 9 April 98. *
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

HTML version of Basic Foils prepared 9 April 98

Foil 16 Formal Design Requirements

From Tango Collaboratory for CIV Project Rome Laboratory CIV Final Review -- 9 April 98. *
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

HTML version of Basic Foils prepared 9 April 98

Foil 17 Formal Design Requirements

From Tango Collaboratory for CIV Project Rome Laboratory CIV Final Review -- 9 April 98. *
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

HTML version of Basic Foils prepared 9 April 98

Foil 18 Session Management

From Tango Collaboratory for CIV Project Rome Laboratory CIV Final Review -- 9 April 98. *
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.

HTML version of Basic Foils prepared 9 April 98

Foil 19 Session Management

From Tango Collaboratory for CIV Project Rome Laboratory CIV Final Review -- 9 April 98. *
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.

HTML version of Basic Foils prepared 9 April 98

Foil 20 Communication

From Tango Collaboratory for CIV Project Rome Laboratory CIV Final Review -- 9 April 98. *
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.

HTML version of Basic Foils prepared 9 April 98

Foil 21 Communication

From Tango Collaboratory for CIV Project Rome Laboratory CIV Final Review -- 9 April 98. *
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

HTML version of Basic Foils prepared 9 April 98

Foil 22 System Architecture

From Tango Collaboratory for CIV Project Rome Laboratory CIV Final Review -- 9 April 98. *
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

HTML version of Basic Foils prepared 9 April 98

Foil 23 System Components

From Tango Collaboratory for CIV Project Rome Laboratory CIV Final Review -- 9 April 98. *
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.

HTML version of Basic Foils prepared 9 April 98

Foil 24 System Components

From Tango Collaboratory for CIV Project Rome Laboratory CIV Final Review -- 9 April 98. *
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.

HTML version of Basic Foils prepared 9 April 98

Foil 25 System Components

From Tango Collaboratory for CIV Project Rome Laboratory CIV Final Review -- 9 April 98. *
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.

HTML version of Basic Foils prepared 9 April 98

Foil 26 System Components

From Tango Collaboratory for CIV Project Rome Laboratory CIV Final Review -- 9 April 98. *
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.

HTML version of Basic Foils prepared 9 April 98

Foil 27 TANGO: Control Application

From Tango Collaboratory for CIV Project Rome Laboratory CIV Final Review -- 9 April 98. *
Full HTML Index
Application select
buttons
Application
Domains
Open/close and
floor control
Session
information
User information

HTML version of Basic Foils prepared 9 April 98

Foil 28 TANGO: application control

From Tango Collaboratory for CIV Project Rome Laboratory CIV Final Review -- 9 April 98. *
Full HTML Index
TANGO session, sync, and
floor control buttons built
into the application control
panel.

HTML version of Basic Foils prepared 9 April 98

Foil 29 System Components

From Tango Collaboratory for CIV Project Rome Laboratory CIV Final Review -- 9 April 98. *
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

HTML version of Basic Foils prepared 9 April 98

Foil 30 User Authentication

From Tango Collaboratory for CIV Project Rome Laboratory CIV Final Review -- 9 April 98. *
Full HTML Index
TANGO authentication and authorization mechanisms are independent on the underlying OS
  • "User identity model" supports "virtual civilization"
  • 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

HTML version of Basic Foils prepared 9 April 98

Foil 31 Implementation Details

From Tango Collaboratory for CIV Project Rome Laboratory CIV Final Review -- 9 April 98. *
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

HTML version of Basic Foils prepared 9 April 98

Foil 32 TANGO API

From Tango Collaboratory for CIV Project Rome Laboratory CIV Final Review -- 9 April 98. *
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

HTML version of Basic Foils prepared 9 April 98

Foil 33 TANGO API

From Tango Collaboratory for CIV Project Rome Laboratory CIV Final Review -- 9 April 98. *
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.

HTML version of Basic Foils prepared 9 April 98

Foil 34 TANGO API

From Tango Collaboratory for CIV Project Rome Laboratory CIV Final Review -- 9 April 98. *
Full HTML Index
At present, both TANGO APIs are available for
  • Java (both applications and applets)
  • C/C++ , LISP (AI)
  • 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.

HTML version of Basic Foils prepared 9 April 98

Foil 35 TANGO API

From Tango Collaboratory for CIV Project Rome Laboratory CIV Final Review -- 9 April 98. *
Full HTML Index
New generation APIs:
  • "Dynamic channels" API supports implementation of compound collaborative applications ("horizontal integration")
  • TANGOBean API supports IDE-style, point-and-click creation of the collaboratory applications
    • this is the way TANGO supports collaborative transparency

HTML version of Basic Foils prepared 9 April 98

Foil 36 TANGO Applications

From Tango Collaboratory for CIV Project Rome Laboratory CIV Final Review -- 9 April 98. *
Full HTML Index
Generic tools: chats (1D, 2D, 3D*), whiteboards (paint and draw)
Multimedia tools: audio/video conferencing, collaborative indexed streaming video, Java media players
Shared browsers: slide shows, fully synchronized, shared JavaScript, customizable client-side apps
Virtual University: WebWisdom - interactive contents delivery system, a set of applets for physics curriculum
Domain specific applets: 2D and 3D (collaborative VRML) Visible Human, science applets
Games
C2 applications: mappers, 3D visualization....
Editors and debuggers
Event simulators

HTML version of Basic Foils prepared 9 April 98

Foil 37 TANGO: Status

From Tango Collaboratory for CIV Project Rome Laboratory CIV Final Review -- 9 April 98. *
Full HTML Index
Core system implemented and available.
  • TANGO server for Unix and Windows NT
  • TANGO Plug-ins for Wndows95/NT, IRIX, Solaris, Linux
APIs for Java, C/C++, and JavaScript available
Two generations of GUI implemented
Customized GUIs developed for C2 applications
~50 application modules implemented
System being used in real-life applications
System being used by external developers

HTML version of Basic Foils prepared 9 April 98

Foil 38 TANGO/Wisdom

From Tango Collaboratory for CIV Project Rome Laboratory CIV Final Review -- 9 April 98. *
Full HTML Index
Collaborative version of WebWisdom aimed at distance education
Uses the NPAC Collaborative System TANGO which has a well defined JavaScript API using LiveConnect for Java to JavaScript connectivity.
Supports asymmetric use with one multiframe WebWisdom ("master") controlling multiple clients running simpler single frame system.
With replicated course material, only control information is passed over the expensive network connection

HTML version of Basic Foils prepared 9 April 98

Foil 39 TANGO & Collaborative 3D

From Tango Collaboratory for CIV Project Rome Laboratory CIV Final Review -- 9 April 98. *
Full HTML Index
Support for both Web 3D tools and for the high-end 3D visualization
  • Web 3D visualization standard: VRML 2.0
    • programmability: (1) scripting nodes, (2) External Authoring Interface (EIA)
    • TANGO supports both VRML programmability models
  • High-end 3D visualization support
    • Open Inventor Web-compliant 3D viewer
      • initially designed as terrain viewer, later generalized
      • fully collaborative, uses TANGO infrastructure
    • TANGO API for C++ applications

HTML version of Basic Foils prepared 9 April 98

Foil 40 Video on Demand/TANGO Integration

From Tango Collaboratory for CIV Project Rome Laboratory CIV Final Review -- 9 April 98. *
Full HTML Index
Master-slave video client architecture
  • Master client for the teacher
    • has all capabilities of the stand-alone video client, including random access capability
    • uses unicast for server access
    • forwards video streams to a multicast address
  • Slave client for students/general audience
    • start/stop capability only
    • session control via TANGO session manager (more secure than standard MBONE)
No need for separate on-demand and broadcast video servers

© 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 Sun Nov 29 1998