Given by Marek Podgorny at CEWES Tango Training on November 17-18 98. Foils prepared November cw3029 98
Outside Index
Summary of Material
TANGO functionality - What it does? |
TANGO architecture - How is it built? |
Installation of TANGO software distributions
|
Installation of TANGO "local applications" |
Using core TANGO |
Using TANGO applications |
TANGO API and programming examples |
Outside Index Summary of Material
Marek Podgorny |
NPAC, Syracuse University |
TANGO functionality - What it does? |
TANGO architecture - How is it built? |
Installation of TANGO software distributions
|
Installation of TANGO "local applications" |
Using core TANGO |
Using TANGO applications |
TANGO API and programming examples |
It lets applications controlled by your browser to talk to Web application run by other people
|
TANGO turns a web browser into a communication program
|
Technically, it is a multiparty, multi-session, multiplatform, multimedia collaboratory system |
It is also a software integration framework
|
N: Netscape Browser |
LD: Local Daemon |
CA: Control Application |
AP: Applet |
LA: Local Application |
CS: Central Server |
DB: Back-end Database |
HTTP: Web server |
It must be competitive with best available collaborative tools and so it's multi-language interface allows us to interface to other systems with TANGO supplying Integrated Session Control
|
Basic model is that of a room which is a group of people getting together for a class
|
Each room supports a collection of shared objects chosen by teacher/students/administrator |
TANGO supports enough (over 40) applications. Most of them went through iterative evaluation, improvement and robustification cycle |
Core Collaboration Capabilities
|
Office and Authoring Tools
|
General Virtual University Applications
|
Special Virtual University Applications
|
Have some fun with multi-player games
|
"Other" Applications
|
Current system version: 1.02
|
Slated for end of Jan 1. `99: version 1.03
|
Slated for March 1 `98: version 1.1
|
TANGO server: version 1.0 available now |
TANGO 1.x requires browser plug-in |
Compatible with Netscape Communicator 4.0x and 4.5
|
This version has been tested for 9 months |
Integration with browsers provided critical functionality (information resource access) |
On the other hand, browser is a terrible platform to develop for
|
Can we retain all current advantages but get out of the browser? |
We enhance JDK's appletviewer to support multi-applet frameworks
|
Browser treated as a native application |
LiveConnect emulator enables communication between HTML/Javascript pages and externally running TANGO Interactive |
Benefit: 10-fold performance increase on UNIX platforms |
Supported browsers: all Netscape versions up to Communicator 4.5
|
Protocol incompatible with earlier beta versions and with beta TANGO server |
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 to Web browsers.
|
Central Server is the main communication element.
|
Java applets
|
Local Applications:
|
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 |
Control Application provides TANGO GUI
|
Since TANGO uses central server architecture, there are system scalability concerns.
|
For scaleability reasons, the real time multimedia streams are not sent via central server.
|
A blueprint for a truly successful collaboratory system does not exist. Hence:
|
The essence of each collaboratory function must be defined by application and by application only |
TANGO does not define any application protocols |
Current system requires application developer to implement application protocol conversion to byte streams |
There is no explicit system support for application state sharing
|
TANGO 2 system addresses this by providing shared data support on the server
|
Current solution: powerful object oriented API on top of message passing |
A session is a group of application instances currently working together in the collaborative mode.
|
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. |
NOTE: current model confuses floor control and session ownership. It will be replaced by two distinct mechanisms in version 1.1 |
Currently supported operations:
|
CA implements "intelligent interface" |
CA supports different "privacy" models |
Diversity of application behaviors
|
Need for better system support for floor control |
Download URL: |
http://trurl.npac.syr.edu/tango/Use_it_/Download/download.html |
Packaging: gzipped tar file |
May download to any location, no root password necessary |
After unzipping, run tar:
|
Un-tar creates the following directory structure |
trurl:/usr/people/mp/webwisdom% ls |
BuenaVista/ Copyright README.html exec/ tango_plugin102/ |
Change directory to exec/ and run the command |
source tangorc
|
All this is needed since UNIX has no global registry |
The relevant envvariables after sourcing tangorc should be as follows: |
CLASSPATH=/usr/people/mp/webwisdom/tango_plugin102: |
/usr/local/lib/netscape/CosmoPlayer/classes |
NPX_PLUGIN_PATH=/usr/people/mp/webwisdom/tango_plugin102/bin/: |
/usr/local/lib/netscape/plugins |
TANGO_APP_ROOT=/usr/people/mp/webwisdom/ |
NCS_PATH=/usr/people/mp/webwisdom/BuenaVista |
(assumes installation in /usr/people/mp directory) |
TANGO_APP_CONF variable points to TANGO installation directory.
|
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. |
There may be additional variables for other applications |
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 |
Common pitfalls:
|
TANGO server not running
|
Client behind firewall
|
DNS problems
|
HTTP server slow or not running |
TANGO on the HTTP server misconfigured |
index.html: browser ok: 'Netscape' index.html: major version numberok: 4 index.html: minor version numberok: 4 index.html: mime ok: 'application/x-collaboratory' index.html: plugin ok: 'TANGO Interactive' index.html: loading CA ... CA.html: loadTango(ohio.npac.syr.edu:11000,320x700) LocalBase.LocalBase(): server=ohio.npac.syr.edu:11000 localPort=8000 LoaderApplet.init(): CA registered with code=52 [ CentralServer.initSocket(): unable to contact server: java.net.ConnectException: Connection refused ] AppDef.readConfFile(): contentLength=3372 AppDef.readConfFile(): reading again AppDef.readConfFile(): completed ..... |
Download URL: |
http://trurl.npac.syr.edu/tango |
Packaging: .exe file. The same for NT/95/98 |
May download to any location |
After downloading, run exec file:
|
Don't install as administrator on NT!
|
Installation puts the files in the following directory |
X:\Program files\WebWisdom |
Some of the files go to Netscape plugin directory: |
X:\Program files\Netscape\Communicator\Program\plugins |
NPTangoV10.dll |
and to the Netscape Java\Class directory: |
....\Communicator\Program\Java\classes\tango10.jar |
The .jar file is digitally signed |
Most recent versions of TANGO also installs items such as Swing class libraries
|
The function of environment variables under UNIX is replac3ed by registry entries.
|
Win32 installation comes with Buena Vista
|
Troubleshooting
|
If TANGO "does not work", you likely have a system problem |
Which browser version is best?
|
Java application
|
100% maintenance free |
Industry-strength stability |
Platform-independent
|
Available for download from http://trurl.npac.syr.edu/tango |
The server can run with any UID, but... |
Recommended procedure: create new local UID "tango" with home directory in /usr/people/tango
|
For IRIX, we have a procedure for automatic server restart after machine reboot. To install, follow this steps:
|
Download server (in exe file) from |
Run .exe file
|
the server installs as Windows NT service
|
server should start automatically
|
Does it run???
|
It doesn't?
|
TANGO applets may be loaded from arbitrary http server. For scalability reasons, one may decide to distribute applets to multiple servers or even local disks on client machines |
Distribution directory tree:
|
Graphical interface for .tca configuration:
|
APPLICATION_TYPE / AT / SYSTEM CONSTRAINTS / NAME / SHORT NAME / FOLDER - may be multiple / NUMBER OF SESSIONS ALLOWED /[ URL ] / [WINDOW_HEIGHT]/ [ WINDOW_WIDTH ] / |
NUMBER OF SESSIONS ALLOWED: 0 - any number; 1 - one session; ɭ - exact number |
Application type: 0 - APPLET; 1 - APPLICATION; 2 - APPLET & APPLICATION; |
SYSTEM CONSTRAINTS: 0 - all systems; 1 - only Windows; 2 - only Unix |
AT: unique application identifier, administered by TANGO Team |
Example: |
#0#142#0#SharedBrowser#Browser#1#2#http://ohio.npac.syr.edu/tango101/applets/sb/index.html#60#80# |
#0#145#0#WebWisdom#WebWisdom#1#1#http://www.npac.syr.edu/wisdom/users/gcf/wisdom/tangowisdom1.html#20#570# |
#0#311#0#VideoPlayer#Video#2#1#http://trurl.npac.syr.edu/tango101/applets/video/index.html#50#300# |
#1#37#0#Buena Vista#BuenaVista#1#1#BuenaVista#BVtango# |
#1#331#2#3D GIS#GIS#2#1#GIS#terrain_viewer# |
Upcoming change: relative URL addresses for easier migration |
General questions
|
Architecture, client setup
|
Server
|
Applications
|
http://trurl.npac.syr.edu/tango |
FOR MORE INFO... |