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. |