Full HTML for

Basic foilset TANGO Interactive Training

Given by Marek Podgorny at NPAC Training on Dec 11 and 12 1997. Foils prepared Jan 8 1998
Outside Index Summary of Material


TANGO functionality - What it does?
TANGO architecture - How is it built?
Installation of TANGO software distributions
  • Client software
  • Collaboratory server software
  • Full installation of TANGO application server
Installation of TANGO "local applications"
Using core TANGO
Using TANGO applications
TANGO API and programming examples

Table of Contents for full HTML of TANGO Interactive Training

Denote Foils where Image Critical
Denote Foils where Image has important information
Denote Foils where HTML is sufficient

1 TANGO Interactive Training Session
2 Agenda
3 TANGO Interactive - What it Does?
4 TANGO Interactive - What it Does?
5 TANGO Interactive - What Is It?
6 System Architecture
7 Status of TANGO System
8 Current capabilities of TANGO
9 Current capabilities of TANGO
10 Current capabilities of TANGO
11 Current capabilities of TANGO
12 Versions of the TANGO system
13 TANGO version 1.0 beta 3
14 TANGO version 1.0
15 TANGO version 1.1
16 TANGO 2
17 TANGO Architecture: Components
18 TANGO Architecture: Components
19 TANGO Architecture: Components
20 Implementation Details
21 TANGO Architecture: Components
22 Events and Data
23 TANGO Architecture: Media Streams
24 Application Protocols
25 Application Protocols
26 Session Management
27 Session Management
28 Session Management
29 TANGO Client Installation: UNIX
30 TANGO Client Installation: UNIX
31 TANGO Client Installation: UNIX
32 TANGO Client Installation: UNIX
33 TANGO Client Installation: UNIX
34 Troubleshooting: Configuration
35 Troubleshooting: Networking
36 Diagnostics: Java console
37 Client configuration files
38 Client configuration files

Outside Index Summary of Material



HTML version of Basic Foils prepared Jan 8 1998

Foil 1 TANGO Interactive Training Session

From TANGO Interactive Training NPAC Training -- Dec 11 and 12 1997. *
Full HTML Index
Marek Podgorny and TANGO Development Team
NPAC
Syracuse University

HTML version of Basic Foils prepared Jan 8 1998

Foil 2 Agenda

From TANGO Interactive Training NPAC Training -- Dec 11 and 12 1997. *
Full HTML Index
TANGO functionality - What it does?
TANGO architecture - How is it built?
Installation of TANGO software distributions
  • Client software
  • Collaboratory server software
  • Full installation of TANGO application server
Installation of TANGO "local applications"
Using core TANGO
Using TANGO applications
TANGO API and programming examples

HTML version of Basic Foils prepared Jan 8 1998

Foil 3 TANGO Interactive - What it Does?

From TANGO Interactive Training NPAC Training -- Dec 11 and 12 1997. *
Full HTML Index
It lets applications controlled by your browser to talk to Web application run by other people
  • With few mouse clicks, TANGO Interactive builds for you a conference room, or a classroom, using tools from a long list of collaboratory modules
  • When you have your tools, with another mouse click you send them to your partners' machines
  • Anybody can join any of the application sessions, grab control, leave, open a private channel, create another chat room, send a private or public message, play a video other people see, or start and share any "legacy" application....

HTML version of Basic Foils prepared Jan 8 1998

Foil 4 TANGO Interactive - What it Does?

From TANGO Interactive Training NPAC Training -- Dec 11 and 12 1997. *
Full HTML Index
TANGO turns a web browser into a communication program
  • does not limit is any way current browser functionality
  • seamlessly merges communication and database access
  • provides means for sending not only data but also tools for their display and manipulation
  • provides complete collaboratory run-time with powerful session and floor control
  • provides open integration platform for collaboratory applications

HTML version of Basic Foils prepared Jan 8 1998

Foil 5 TANGO Interactive - What Is It?

From TANGO Interactive Training NPAC Training -- Dec 11 and 12 1997. *
Full HTML Index
Technically, it is a multiparty, multi-session, multiplatform, multimedia collaboratory system
It is also a software integration framework
  • It supports any kind of CSCW, but it is particularly well suited for distance learning applications
  • It is fused with Web infrastructure
  • It provides dozens of multimedia collaboratory tools
  • It does not require any expensive infrastructure beyond a standard PC or Unix workstation and a browser

HTML version of Basic Foils prepared Jan 8 1998

Foil 6 System Architecture

From TANGO Interactive Training NPAC Training -- Dec 11 and 12 1997. *
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 Jan 8 1998

Foil 7 Status of TANGO System

From TANGO Interactive Training NPAC Training -- Dec 11 and 12 1997. *
Full HTML Index
It must be competitive with best available collaborative tools and so its multi-language interface allows us to interface to other systems with Tango supplying Integrated Session Control
  • e.g. interfaces to Microsoft NetMeeting
Basic model is that of a room which is a group of people getting together for a class
  • Tango2 (April98) will support a very powerful persistent multi-room paradigm
Each room supports a collection of shared objects chosen by teacher/students/administrator

HTML version of Basic Foils prepared Jan 8 1998

Foil 8 Current capabilities of TANGO

From TANGO Interactive Training NPAC Training -- Dec 11 and 12 1997. *
Full HTML Index
TANGO supports enough (over 40) applications. Our next step is to evaluate, improve and make robust release
Core Collaboration Capabilities
  • Audio-Video Conferencing multicast between room participants
  • Text chat rooms with various tradeoffs between "coolness", ease of use etc.
  • Shared Browser (Synchronized view of Web Pages)
  • Shared Web Search (becomes shared database query)
  • Slide Show
  • White Board

HTML version of Basic Foils prepared Jan 8 1998

Foil 9 Current capabilities of TANGO

From TANGO Interactive Training NPAC Training -- Dec 11 and 12 1997. *
Full HTML Index
Office and Authoring Tools
  • PowerPoint via shared display or shared Java viewer (collaboration with Net-Scene)
  • Microsoft Excel
  • Microsoft Word
  • Shared visual C++ etc.
  • Combined Whiteboard/ Java object based PowerPoint like authoring system
  • Shared XEmacs editor

HTML version of Basic Foils prepared Jan 8 1998

Foil 10 Current capabilities of TANGO

From TANGO Interactive Training NPAC Training -- Dec 11 and 12 1997. *
Full HTML Index
General Virtual University Applications
  • Current WebWisdom hierarchical systems navigating through 20,000 foils and 500 foil sets
  • "Raise Hands" Applet to help teacher-student synchronous interaction
Special Virtual University Applications
  • Shared Java applets to teach physics (spring, planets, vector cross product)
  • Shared Java Applets used to teach Java!
  • Shared SmartDesk system aimed at activities useful in special education with built in assessment

HTML version of Basic Foils prepared Jan 8 1998

Foil 11 Current capabilities of TANGO

From TANGO Interactive Training NPAC Training -- Dec 11 and 12 1997. *
Full HTML Index
Have some fun with multi-player games
  • VRML2 Chess
  • Netris
  • Othello (Java)
  • Rubric's Cube (Java)
  • Should develop snakes and ladders and bunch of similar "grid" games
"Other" Applications
  • TANGOsim command and control system with shared tools (e.g. mapping, weather) to use in scripted crisis management

HTML version of Basic Foils prepared Jan 8 1998

Foil 12 Versions of the TANGO system

From TANGO Interactive Training NPAC Training -- Dec 11 and 12 1997. *
Full HTML Index
Current system version: 1.0 beta 3
  • Training material refers to version beta3 unless otherwise noted
Slated for end of Dec. `97: version 1.0
Slated for January `98: version 1.1
Expected January `98: version 1.1 for IE 4
Expected April `98: TANGO 2
  • Upcoming version will be discussed
TANGO server: version 1.0 available now

HTML version of Basic Foils prepared Jan 8 1998

Foil 13 TANGO version 1.0 beta 3

From TANGO Interactive Training NPAC Training -- Dec 11 and 12 1997. *
Full HTML Index
TANGO 1.x requires browser plug-in
Compatible with Netscape Navigator 3.0 and 3.01
  • not compatible with 3.02 and 3.03 (due to incoherent security model). There will be no TANGO for these versions of the browser
  • not compatible with MS Internet Explorer
    • TANGO 1 uses LiveConnect and plug-in architecture. Both these technologies are available for Internet Explorer, but MS implementation of LiveConnect is not fully compatible
  • supported platforms: Windows'95/NT, IRIX, Solaris, Linux
This version has been tested for 10 months

HTML version of Basic Foils prepared Jan 8 1998

Foil 14 TANGO version 1.0

From TANGO Interactive Training NPAC Training -- Dec 11 and 12 1997. *
Full HTML Index
Supported browsers: all Netscape versions up to Communicator 4.04
  • supports security models for both Netscape 3 and Netscape 4 browsers
    • digitally signed plug-in Java classes
    • Communicator version explicitly requires access to privileged operations
      • user's consent necessary for TANGO to run
      • consent needed only once per session
Protocol compatible with beta versions and with TANGO server 1.0
The system is available now in NPAC

HTML version of Basic Foils prepared Jan 8 1998

Foil 15 TANGO version 1.1

From TANGO Interactive Training NPAC Training -- Dec 11 and 12 1997. *
Full HTML Index
Supports all the same features as TANGO 1.0
Employs modified protocol between the plug-in and the collaboratory server
  • new protocol is NOT compatible with version 1.0
  • the system requires server version 1.1
  • application protocol is NOT modified!
  • protocol modifications improve system reliability
Version 1.1 will require re-installation of both server and client software
Version 1.1 will support MS Internet Explorer 4.x

HTML version of Basic Foils prepared Jan 8 1998

Foil 16 TANGO 2

From TANGO Interactive Training NPAC Training -- Dec 11 and 12 1997. *
Full HTML Index
A radically improved version of the entire system
  • All "lessons learned" from TANGO 1 incorporated into design and implementation
  • Far more powerful system with many new capabilities
  • Supports the vision of electronic communities and electronic civilization
  • Does NOT use plug-in technology, hence no client installation
  • Full asynchronous database support
Technical details will be released to interested parties 2Q98
Core system implemented now

HTML version of Basic Foils prepared Jan 8 1998

Foil 17 TANGO Architecture: Components

From TANGO Interactive Training NPAC Training -- Dec 11 and 12 1997. *
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, such as file access or printing
The daemon is implemented as a plug-in to Web browsers.
  • The daemon is the only operating system dependent core part of TANGO.

HTML version of Basic Foils prepared Jan 8 1998

Foil 18 TANGO Architecture: Components

From TANGO Interactive Training NPAC Training -- Dec 11 and 12 1997. *
Full HTML Index
Central Server is the main communication element.
  • Local daemons communicate with the central server
  • Server maintains the system state data
  • Server routes messages between applications participating in each session
  • All application protocols are opaque to the server
  • Currently, TANGO system is restricted to only one collaboratory server
    • No easy server switch mechanism
  • TANGO server is extremely stable and maintenance-free

HTML version of Basic Foils prepared Jan 8 1998

Foil 19 TANGO Architecture: Components

From TANGO Interactive Training NPAC Training -- Dec 11 and 12 1997. *
Full HTML Index
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
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

HTML version of Basic Foils prepared Jan 8 1998

Foil 20 Implementation Details

From TANGO Interactive Training NPAC Training -- Dec 11 and 12 1997. *
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 Jan 8 1998

Foil 21 TANGO Architecture: Components

From TANGO Interactive Training NPAC Training -- Dec 11 and 12 1997. *
Full HTML Index
Control Application provides TANGO GUI
  • Provides uniform application session and floor control for all TANGO applications
    • Launches applications locally or remotely, creates and connects to existing sessions, exits applications, logs into the system, etc.
    • Routes messages between applications on the same node
    • Monitors distributed system integrity
    • User interface to the control application auto-adjusts to the operating system
  • 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 Jan 8 1998

Foil 22 Events and Data

From TANGO Interactive Training NPAC Training -- Dec 11 and 12 1997. *
Full HTML Index
Since TANGO uses central server architecture, there are system scalability concerns.
  • System makes careful distinction between event and data distribution pathways
    • events are always distributed via collaboratory server
    • data may be distributed via collaboratory server for thin data streams
    • voluminous data are either distributed directly between application instances or delivered from HTTP servers
    • peer-to-peer application data exchange may use multicast if necessary
    • certain TANGO applications are therefore implemented as Web browsers for specialized data types (e.g., GIS Open Inventor Web browser)

HTML version of Basic Foils prepared Jan 8 1998

Foil 23 TANGO Architecture: Media Streams

From TANGO Interactive Training NPAC Training -- Dec 11 and 12 1997. *
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 Jan 8 1998

Foil 24 Application Protocols

From TANGO Interactive Training NPAC Training -- Dec 11 and 12 1997. *
Full HTML Index
A blueprint for a truly successful collaboratory system does not exist. Hence:
  • 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
TANGO does not define any application protocols

HTML version of Basic Foils prepared Jan 8 1998

Foil 25 Application Protocols

From TANGO Interactive Training NPAC Training -- Dec 11 and 12 1997. *
Full HTML Index
Current system requires application developer to implement application protocol conversion to byte streams
There is no explicit support for application state sharing
  • "latecomers" problem must be handled by application
All this is explicitly addressed by TANGO 2

HTML version of Basic Foils prepared Jan 8 1998

Foil 26 Session Management

From TANGO Interactive Training NPAC Training -- Dec 11 and 12 1997. *
Full HTML Index
A session is a group of application instances currently working together in the collaborative mode.
  • All (and only) applications belonging to the same session exchange information and may 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 access of other users to this session and/or controlling the application behavior. The privileges depend on the application type.

HTML version of Basic Foils prepared Jan 8 1998

Foil 27 Session Management

From TANGO Interactive Training NPAC Training -- Dec 11 and 12 1997. *
Full HTML Index
Master status is dynamically transferable. Floor control allows for both master-master and master-slave relationship
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 Jan 8 1998

Foil 28 Session Management

From TANGO Interactive Training NPAC Training -- Dec 11 and 12 1997. *
Full HTML Index
Currently supported operations:
  • Local open
  • Remote open (opens an instance on remote machine)
  • Global and limited remote open (open an instance on a group of machines)
  • Session join
  • Local close
  • Remote close, including global remote close
  • Acquire and grant session master status
CA implements "intelligent interface"

HTML version of Basic Foils prepared Jan 8 1998

Foil 29 TANGO Client Installation: UNIX

From TANGO Interactive Training NPAC Training -- Dec 11 and 12 1997. *
Full HTML Index
Download URL:
http://www.npac.syr.edu/tango/download
Packaging: gzipped tar file
May download to any location, no root password necessary
After unzipping, run tar:
  • tar -xpvf tango_plugin10b3.irix63.tar
  • Please, note the "p" option. If you don't use it,you file permissions will be determined by your umask

HTML version of Basic Foils prepared Jan 8 1998

Foil 30 TANGO Client Installation: UNIX

From TANGO Interactive Training NPAC Training -- Dec 11 and 12 1997. *
Full HTML Index
Un-tar creates the following directory structure
trurl:/usr/people/mp/webwisdom% ls
BuenaVista/ Copyright README.html exec/ tango_plugin10b3/
Change directory to exec/ and run the command
source tangorc
  • tangorc script sets environment variables
  • you have to source the script from the exec directory!
  • to make envvariables setup permanent, you must embed call to tangorc in your .cshrc file

HTML version of Basic Foils prepared Jan 8 1998

Foil 31 TANGO Client Installation: UNIX

From TANGO Interactive Training NPAC Training -- Dec 11 and 12 1997. *
Full HTML Index
The relevant envvariables after sourcing tangorc should be as follows:
CLASSPATH=/usr/people/mp/webwisdom/tango_plugin10b3:
/usr/local/lib/netscape/CosmoPlayer/classes
NPX_PLUGIN_PATH=/usr/people/mp/webwisdom/tango_plugin10b3/bin/:
/usr/local/lib/netscape/plugins
TANGO_PLUGIN_CONF=/usr/people/mp/webwisdom/tango_plugin10b3/conf
TANGO_APP_CONF=/usr/people/mp/webwisdom/tango_plugin10b3/conf
NCS_PATH=/usr/people/mp/webwisdom/BuenaVista
(assumes installation in /usr/people/mp directory)
Please, note that the tangorc script also modifies application.conf file. This file is needed for audio/ video conferencing.

HTML version of Basic Foils prepared Jan 8 1998

Foil 32 TANGO Client Installation: UNIX

From TANGO Interactive Training NPAC Training -- Dec 11 and 12 1997. *
Full HTML Index
TANGO_PLUGIN_CONF and TANGO_APP_CONF variables point to TANGO configuration file directory.
  • There are two files there:
  • plugin.conf file defines TANGO server to be used
  • applications.conf file defines paths to non-Java applications of TANGO system. Typically, this file is modified to point to BuenaVista, the audio/video conferencing package
NCS_PATH variable is used by BuenaVista to find its own media modules. Without this variable BV won't be able to start audio and video agents.

HTML version of Basic Foils prepared Jan 8 1998

Foil 33 TANGO Client Installation: UNIX

From TANGO Interactive Training NPAC Training -- Dec 11 and 12 1997. *
Full HTML Index
Restart your Netscape browser from the window you used to set environment (not from the desktop!)
Check plug-in installation (Help/About Plug-ins)
If plug-in OK, start the system

HTML version of Basic Foils prepared Jan 8 1998

Foil 34 Troubleshooting: Configuration

From TANGO Interactive Training NPAC Training -- Dec 11 and 12 1997. *
Full HTML Index
Common pitfalls:
  • Java not enabled in browser (on SGIs, browser will coredump!)
  • Envvariables incorrectly set (browser started from wrong window or not restarted, .cshrc wrong)
  • Plug-in installed for the wrong browser
  • Wrong permissions on configuration files
  • Faulty browser installation (missing Java classes)
  • Corrupted classes in browser cache (flush the cache!)
  • Duplicate, incompatible Java classes
  • Missing application Java classes (CosmoPlayer)
  • Re-link without rehash

HTML version of Basic Foils prepared Jan 8 1998

Foil 35 Troubleshooting: Networking

From TANGO Interactive Training NPAC Training -- Dec 11 and 12 1997. *
Full HTML Index
TANGO server not running
  • no error message if server restarted
Client behind firewall (need access to port 9500)
DNS problems
  • TANGO generally does not care, but current BV needs proper DNS setup for all parties)
HTTP server slow or not running
TANGO on HTTP server misconfigured

HTML version of Basic Foils prepared Jan 8 1998

Foil 36 Diagnostics: Java console

From TANGO Interactive Training NPAC Training -- Dec 11 and 12 1997. *
Full HTML Index
Local: Local demon started on port 8000
AcceptThread: thread started
ControlAppletHandle: applet thread number -7 started
Local: Connection accepted by remote host, starting demon threads ......
Local: Connected to kopernik.npac.syr.edu 9500
ThreadOut: Output thread number 1 started
DemonThreadIn: Demon input thread started
Length: 2222 bytes
Read: 2222 bytes
Reading completed
HelpText: Length: 12748 bytes
HelpText: Read: 12748 bytes
HelpText: Reading completed
.....

HTML version of Basic Foils prepared Jan 8 1998

Foil 37 Client configuration files

From TANGO Interactive Training NPAC Training -- Dec 11 and 12 1997. *
Full HTML Index
Plugin.conf defines location of TANGO server
//PLUGIN CONFIGURATION FILE
//FORMAT:
//serverhost serverport localport
//tango.jsums.edu 9500 8000
kopernik.npac.syr.edu 9500 8000
//cher.wes.army.mil 9500 8000
  • The file is read when TANGO plug-in is activated
  • To re-read the file, browser must be restarted (no dynamic server change at this time)

HTML version of Basic Foils prepared Jan 8 1998

Foil 38 Client configuration files

From TANGO Interactive Training NPAC Training -- Dec 11 and 12 1997. *
Full HTML Index
Applications.conf defines "local" applications
Watch \ (/) at absolute path's end!
Never modify AT numbers!
//Tango applications configuration file
//format:
//AT path application name
37 d:\progra~1\NPAC\BuenaVista\NCStango\ ManagerTango
//18 d:\WINNT\ application
77 d:\progra~1\NPAC\SharAgnt\ SharAgnt
78 d:\progra~1\NPAC\SharAgnt\ SharAgnt
79 d:\progra~1\NPAC\SharAgnt\ SharAgnt
80 d:\progra~1\NPAC\SharAgnt\ SharAgnt

© 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 Fri Jan 9 1998