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 |
Outside Index Summary of Material
Marek Podgorny Rome Laboratory Final CIV Review April 8 1998 NPAC Syracuse University |
Basic architectures
|
Basic architectures
|
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
|
Proposed extension of the paradigm to the event broadcasting architectures (Old Dominions' JCT, Virginia Tech's JAMM)
|
Sharing possible only if applications deterministic
|
Copies of applications must be present everywhere
|
Environments must be identical
|
Initial state of a newcomer impossible to define
|
Cannot maintain consistency among copies
|
Web model enables event broadcasting! |
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 |
TANGO is a software framework supporting computer-based communication and collaboration
|
Technically, TANGO is a distributed system based on event broadcasting
|
Core system is implemented in Java and as a browser plug-in |
Base programming module is a Java applet
|
TANGO modules can be downloaded from anywhere
|
A blueprint for a truly successful collaboratory system does not exist
|
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. |
The last requirement implies a system that is both a collaboratory runtime and an integration platform:
|
Need simple but powerful collaboratory API |
TANGO supports creation of shareable information spaces
|
TANGO is very tightly integrated with the Web:
|
TANGO provides support for all synchronous collaboratory functions:
|
Asynchronous collaboration can be supported via database back-end:
|
Distributed visualization and manipulation of multimedia information streams:
|
Language independence:
|
Extensibility:
|
TANGO extends Web paradigm to true collabora- tive computing and beyond the chat and shared whiteboard concept |
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 |
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 |
A session is a group of application instances currently working together in the collaborative mode.
|
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. |
Two major types of messages:
|
Two major types of messages, cont.
|
At present all messages are sent as strings |
N: Netscape Browser |
LD: Local Daemon |
CA: Control Application |
AP: Applet |
LA: Local Application |
CS: Central Server |
DB: Back-end Database |
HTTP: Web server |
Local daemon's main tasks:
|
The daemon is implemented as a plug-in (or ActiveX control) to Web browsers.
|
Central server is the main communication element.
|
Local Applications:
|
Java applets
|
Control application provides TANGO GUI.
|
CA communicates with the system via LD
|
Application select |
buttons |
Application |
Domains |
Open/close and |
floor control |
Session |
information |
User information |
TANGO session, sync, and |
floor control buttons built |
into the application control |
panel. |
For scaleability reasons, the real time multimedia streams are not sent via central server.
|
TANGO authentication and authorization mechanisms are independent on the underlying OS
|
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 |
TANGO API is used to convert a standalone application into a shared application
|
TANGO Core API
|
TANGO CA API
|
At present, both TANGO APIs are available for
|
JavaScript API:
|
New generation APIs:
|
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 |
Core system implemented and available.
|
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 |
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 |
Support for both Web 3D tools and for the high-end 3D visualization
|
Master-slave video client architecture
|
No need for separate on-demand and broadcast video servers |