Given by Lukasz Beca at Workshop-Conference on "Enabling Technologies: Infrastructure for Enterprises (WET ICE)" at Stanford University in Palo Alto California, USA on June 16-18, 1999. Foils prepared October 25 99
Outside Index
Summary of Material
Motivation |
Requirements for Collaborative Components |
Tango Interactive™ Framework |
Tango Beans |
Conclusions |
Future Work |
Software Demonstration |
Outside Index Summary of Material
Lukasz Beca, Geoffrey C. Fox, Marek Podgorny |
NPAC, Syracuse University, Syracuse, USA |
Motivation |
Requirements for Collaborative Components |
Tango Interactive™ Framework |
Tango Beans |
Conclusions |
Future Work |
Software Demonstration |
Synchronous collaboration systems - complex, distributed, multi-user environments |
Tango Interactive - framework for building Web-based synchronous collaboration systems
|
Need for tools that would enable faster development of collaboration applications without giving up functionality
|
Proposed solution: software components that can be combined using visual programming tools with ordinary components to create collaborative applications |
Web collaboration requirements: |
Capture and propagation of application events: user actions in one application are reflected in other applications |
Selection of relevant events: not all events need to be shared |
Specification of event target components: each event must have the recipient component which knows how to interpret the event |
Transfer of arbitrary data: enables information exchange among collaborative tools |
Access to the collaboration session state: used to support collaboration awareness or assure synchronized access to the session resources |
Integration with the Web environment: encapsulation of Web specific communication mechanisms enables creation of portable and generic applications |
Software engineering requirements: |
Implementation of generic interfaces that conform to widely accepted standards: enables combining with other software components and fast development of the applications |
Implementation complexity hidden from the application developer: developer does not have to understand underlying communication mechanisms |
Intuitive and flexible graphical interface: enables manipulation and composition with other components, disappears during application execution |
Testing outside collaboration environment: errors not related to the collaboration functionality can be quickly identified and removed |
Generic framework for construction of synchronous collaboration systems for the Web |
Accessed and started in the Web browser; extensively uses Web resources |
Important concepts:
|
Application programming interfaces available for Java applets, Java, JavaScript, C++ and LISP applications |
Customized systems built by selecting appropriate set of tools
|
Main components of Tango Interactive framework: |
Collaborative Server
|
Session Manager
|
A set of components that form an API for TI system: high level interface to collaboration services offered by TI framework |
Components:
|
Offer sufficient functionality to build advanced collaboration tools |
Designed for use in integrated development environments |
Developed as Java Beans - component model technology for Java
|
Implemented to operate in three modes:
|
|
TangoBean turns an application into a multi-user tool |
Integration of application with the TI system:
|
Control over the application from the Session Manager:
|
Sending and receiving collaboration events:
|
Access the session state information:
|
Event flow when the application with TangoBean is placed in Tango Interactive environment: |
Event flow when the application with TangoBean is in testing mode (outside Tango Interactive framework): |
ObjectPipe supports communication between components located in different application instances: |
Application events capture and distribution:
|
Distribution of arbitrary data:
|
Connections between Tango Beans components and application components enable distribution of desired events and objects |
Connection from a component to ObjectPipe indicates that the ObjectPipe will accept events generated by the object |
Connection from ObjectPipe to a component indicates that the component will receive shared events from other application instances |
Each ObjectPipe component in the application must be connected to TangoBean component |
All application components that want to receive information about session state must be connected to TangoBean |
Example connection setup between Tango Beans and application components: |
Event flow between components placed in different application instances in the same session: |
Description of the diagram:
|
Application components can access session state information using interface exposed by TangoBean |
Two modes of data access are available:
|
Synchronous access:
|
Asynchronous notification:
|
Installation of Tango Beans components package in the integrated development environment |
Development of collaborative application using ordinary and collaborative components by visual manipulation and traditional programming methods |
Application testing outside collaboration environment |
Generation of application distribution package signed digitally (required to operate in Web environment that implements security mechanisms) |
Registration of the application in the Session Manager |
Collaboration using developed application supported by Tango Interactive framework |
Significant advantages of component technology in construction of tools for synchronous collaboration
|
Tango Beans address specific needs of collaborative tools created for the Web
|
Disadvantages of using component technology
|
Limitations of Tango Beans
|
Overcoming current limitations of Tango Beans
|
Extension of functionality depending on the further development of Tango Interactive framework |