402139

The high-level architecture of the TANGO Interactive system is rather simple: in the center of the system there is an instance of a collaboratory server, also known as Meeting Engine. The Engine allows unlimited number of browsers (Netscape or Internet Explorer) to talk to each other.

Now, wait a minute? Why would somebody use a browser to talk to another browser?

Well, why not? Netscape folks call their browser a "Communicator",  don't they? This is precisely what TANGO Interactive does: it turns the browser into a real-time, multi-user communication device!

All modules  of our client software are either running within, or are started from the browser. Now, the problem with this is that TANGO Interactive client software is quite complex. Some parts must be installed, others are downloaded, and which part comes from where is somewhat arbitrary. In the past this has created a great deal of confusion among system users. This page discribes, in layman terms, the architectural concepts of the TANGO Interactive client software.

fd260014

In order to use the system, you must have installed the TANGO Interactive plugin. Our plugin isn't like any other plugin, though. The concept of browser plugin was created to expand browser capability to handle new data types and display them. TI plugin does not display anything and is not even associated with any data type. Instead, it provides browser with ability to communicate with arbitrary software modules. These  modules can be implemented either as Javascript pages or Java applets, in which case plugin uses LiveConnect to communicate with them, or they can be arbitrary external programs, written in any language whatsoever. The process is slightly different for Internet Explorer, but the principle is the same.

 In the case of non-Java applications, TANGO Interactive plugin resorts to sockets as the basic communication medium. In addition to communication with applications running on your local machine, the plugin also communicates with TANGO Interactive Meeting Engine, and, via the engine, with other instances of Javascript pages, Java applets, and C/C++, or LISP applications. TANGO Interactive plugin is one of the cornerstones of our distributed collaborative computing infrastructure.

fd260015

Unlike Java applets and HTML pages, browser plugins are not downloadable during the runtime. A plugin must be installed before it can be used.  Our plugin consists of two parts: a DLL for PCs or a shared object library (.so) for UNIX, and a set of Java classes. Actually, 95% of the plugin code is Java, with only a tiny part implemented in C++.

The fact that we use a plugin is a historical consequence of the browser development path. A plugin- based architecture was the only venue to build a distributed collaboratory infrastructure for the generation 3 browsers. Generation 4 (and 5) browsers don't really need a plugin, but we decided to stick with this architecture for a while. We expect however that the next major release of the system won't use any plugins and that the system will have an option to be entirely downloadable during the runtime. It is however not clear if this is the right way to go. Runtime downloadability comes at a price: it takes time to start the system. Hence, TANGO Interactive offers a number of different modalities for system installation and startup, as explained below.

Other components that must be installed before being used are all the so called " local applications ". We use this term to describe the non-Java-applet application modules. The term "local" is used here to signify that these application moduless are locally installed, and not downloaded from an HTTP server. The most  frequently used "local" application is BuenaVista - our video-conferencing module. As Java at this time does not support gadgets such as microphones and video capture cards, there is no way to implement video conferencing using only Java.

In the current release, we package local applications with the plugin, and install plugin and local apps in one installation run. The entire package is known as "Tango Interactive Client". However, upon customer request, the "local" application can be distributed and installed as separate system add-ins, according to user needs.

What else is in the TI Client  installation package? Well, usually the Java stuff that is available in current JDKs, but not yet supported by browsers. For instance, some of our application modules, as well as  the Session Manager,  are implemented using Swing Java classes.  Swing library is very large and getting it downloaded and byte-verified every time is very time-consuming. As Netscape will not distribute the browser with these classes until version 5 (if at all), we  include them in plugin installations. We anticipate that  even if we move away from the plugin acrhitecture, we will continue offering installation packages, simply to ensure that the user does not need to download magabytes of the library code every time s/he starts the system.

To summarize: TANGO Interactive client software is multi-component. At present, the default distribution mechanism is that the user needs to download and install the plugin and few local applications, whereas both the SM and all Java and Javascript application modules are dynamically loaded from TI Application Servers at run time. Further, depending on the network nominal speed and performance, the client software can be set up  to cover the entire spectrum  of system configurations, from completely runtime-downloadable to completely locally installed, with the SM and all application modules being started from the local disk. Such system configuratons are available upon request. We expect however that majority of the users will be adequately served by the default configuration.

Picture
Picture