Given by Geoffrey C. Fox at NPAC Tutorial on Tango/WebWisdomNT on October 26 98. Foils prepared October 26 98
Outside Index
Summary of Material
Pictorial Overview of Tango highlighting applications and features |
Basic Tango Tutorial for Users |
Set up for slide show use |
Missing WebWisdom and Shared Browser |
Outside Index Summary of Material
Web Pages |
Web Pages |
Java |
Java |
C++ |
C++ |
Tango Team |
NPAC |
Syracuse University |
111 College Place |
Syracuse NY 13244-4100 |
tango@npac.syr.edu |
http://www.npac.syr.edu/tango |
Web-based Training Issues |
TangoInteractive Collaborative System
|
WebWisdomNT Curricula Database and Instructional Management System
|
LeCorder lecture recording and web export system |
Other Applications of TangoInteractive/ WebWisdomInteractive technology outside education and training |
Futures |
Distance Learning |
Electronic Communities |
CRISIS MANAGEMENT |
PLAY GAMES |
Your Web |
Application |
Sharing |
Using Tango is just a mouse click to download an applet as long as certain preparations have been made |
Tango involves a bunch of collaborating machines (called clients) which are linked together by a Java Tango server. There are default Tango servers which can always be chosen but specialized Tango applications often use their own server. |
A Tango client fetches programs from a Web Server NOT from the Java Server |
server |
Client |
Web Server |
Web Server |
Client |
Client |
Client |
After understanding which Server you will use, Tango must be installed on your machine. This involves installing a Netscape plug-in and also a C++ audio-video conferencing system Buena Vista |
Then each time you wish to load Tango, one must download the "control application" (CA)which is a Java Applet.
|
Collaboration involves two or more clients sharing information and this covers both the teacher-students interaction in education; commander-firefighters interaction in a crisis; and the linkage of researchers in a distributed scientific collaboratory. |
The previous page shows the architecture of our distance education project where we taught CSC499 from Syracuse University to Jackson State fall 97 and spring 98. Note the mirrored Web servers (one at Syracuse and one at JSU) but single Java Server
|
The next page shows the
|
Java Tango |
Server |
Netscape Browser |
Tango |
Daemon |
Shared Applet 1 |
Shared Applet 2 |
Shared |
Java/C++/.. |
Application |
Socket Connections |
Client Side Bus |
Netscape's |
LiveConnect |
Typical Client |
Other |
Collaborating |
Clients |
Shared |
JavaScript/ Web Page |
Tango CA |
Web Pages |
Web Pages |
Java |
Java |
C++ |
C++ |
Tango Interactive is Integrated into Web Browser |
Start with One Click |
After requesting a Tango download of control applet, one may get a security dialog (grant permission to download and remember decision), and first one is asked (as on previous page) to choose a server
|
After a while, if all goes well, one gets the request to "login" which currently just requires that you type in a unique "handle" by which you are known in the collaboration room.
|
Note we define a session as an instance of an application shared by a set of users. One can have any number of sessions based on a given application which separate instantiations of the application and different subsets of users. As we will see users decide who joins a given session. |
Sessions can either be started or joined |
Sessions can be joined either because the master adds a user or because a user requests it. |
Sessions are started from the icons under the tags in the middle of the CA's user interface |
Suppose the teacher has started a chat or other session. Then it appears on the list of sessions at the bottom middle section for ALL clients. Highlighting it, one see that join is an option (shown in left bottom panel) |
Click the join button and you become part of this session
|
For chat, this happens almost instantaneously. For more complex applications, the registration process takes longer as Tango only accepts a joined client when The Java applet is properly loaded |
For a chat, sharing is clear -- one shares the text typed in by the different users. |
Now start and share in the same way, one or more of the simple physics applets -- spring or cross-product. |
The teacher (deemed the master if he or she started it) can move the Position of the spring and the Force and Energy change in response.
|
In spring case, Tango shares state defining applet -- here the position of the Spring. |
Tango can share any client or server application whose state can be determined and set. Tango finds the state from the master and transmits it to the slave clients
|
Porting an application to Tango, requires sending messages from master with state (change) and receiving them on slave. Hardest perhaps is knowing what the state is! |
Web Pages |
Web Pages |
Java |
Java |
C++ |
C++ |
We showed how users could be added to sessions by clients joining a session initiated by the master. |
Alternatively, one can use a remote open command shown on previous and next two pages
|
When teacher highlights the cross-product session (and no other users have joined), he or she is offered the allowed choices:
|
The dialog box that jumps up allows one either to select specific users or all -- the latter is a good option for education when one typically wants all students involved. |
We will see later how the configuration tab, allows clients to prevent unwanted remote opens cluttering their windows |
Your Web |
Application |
Sharing |
The master status can be changed at the request of either master or slave
|
As in remote open, configuration tab, allows one to control unwanted transfer of master status |
As an example, one could use this in education to allow student to control the spring applet and demonstrate that they understood basic ideas. |
Microsoft currently supplies NetMeeting for Windows 95/98/NT |
This supports a different model for sharing
|
At its simplest, NetMeeting shares the "display" (frame buffer produced by application)
|
NetMeeting captures mouse and keyboard actions in the shared window and treats these as shared events
|
This is an example of Tango interfacing to a C++ client application -- Microsoft's NetMeeting |
Web Pages |
Web Pages |
Java |
Java |
C++ |
C++ |
There are other capabilities of Control Application with users, mailbox, configuration and help tabs |
The users tab can tell you more about all the users who are logged into the Tango Server
|
Each user is responsible for setting status message |
On next page, we show the result of double clicking on a given user.
|
You can ping the user -- send a message to see the user machine is still alive. |
If the ping works, try a hail which tries the wake the user up so he or she can collaborate with you.
|
Your Web |
Application |
Sharing |
Clicking the configuration tab, we can inspect some useful system parameters
|
One can define the processing of remote requests -- change master status and remote open/close
|
On the right, one has a configuration file window which is only useful if there is a problem -- it will tell you where the information for each application is stored.
|
Although the Tango Console is not so useful, one can usefully invoke the Java Console from the communicator menu at the top of the Netscape window |
The Java Console can tell you if Netscape or Tango has made a mistake
|
Note you can start the Console at any time and still see past information and so you can wait till a problem develops |
Web Pages |
Web Pages |
Java |
Java |
C++ |
C++ |
Tango has lots of applications ranging from the serious to the frivolous; from the essentially bug-free to cases which are only illustrative due to implementation problems. |
Tango has a well defined API which allows diverse applications to be ported to it. |
For instance, the current release of Tango sports three versions of chat.
|
Shared Streaming Video |
Tango has several multimedia applications
|
The multimedia applications only use the Tango Server for control information. The high volume data is sent by separate channels outside the Tango Server
|
The deployed version of Tango shares audio and video files using Java applets to decode multimedia data on the client (Video is low bandwidth H263)
|
Tango offers two basic whiteboards
|
The variety of such tools is a key advantage of a framework like Tango -- you can adopt it for your particular application and expect that the open API will allow a variety of basic tools such as whiteboards and chats to be developed to support your application
|
Another whiteboard is used in the popular mapper shared application where one has maps displayed on the whiteboard
|
These whiteboards illustrate your freedom in defining shared events in Tango |
For each of the three examples just discussed (basic whiteboards and mapper), all users in the session can freely modify the whiteboard
|
We could have made a different choice, with for instance only the master able to set the viewpoint.
|
This illustrates power of shared event model as one can choose which events to share and change this at any time |
It is all "just software"! |
Your Web |
Application |
Sharing |
So games are a natural applications of collaborative system
|
We showed two simple physics applications but we also have more sophisticated shared applets illustrating planetary motion and computational fluid dynamics (CFD)
|