Full HTML for

Basic foilset Tango Futures: XML for Web-based Collaboration and Distance Education

Given by Geoffrey C. Fox at SURA Meeting Birmingham Alabama on September 8 1999. Foils prepared September 13 99
Outside Index Summary of Material


We describe the essentials of shared event collaboration and how it is naturally integrated with the Web for both replicated client and server side shared objects.
We describe TangoInteractive and its applications
One use of XML is to define Shared Web Pages which implement both asynchronous (portal) and synchronous collaboration
Another use of XML is to support universal access and to link diverse display devices in collaborative sessions
We define the resultant event based architecture to be used in a new implementation of TangoInteractive
We conclude with original presentation abstract

Table of Contents for full HTML of Tango Futures: XML for Web-based Collaboration and Distance Education

Denote Foils where Image Critical
Denote Foils where Image has important information
Denote Foils where HTML is sufficient

1 Tango Futures: XML for Web-based Collaboration and Distance Education http://www.npac.syr.edu/users/gcf/suratangoxmlsep99 SURANET Meeting Birmingham Alabama Sep 8 1999
2 Abstract of XML and Collaboration
3 Components of Technology Cauldron
4 What is Web-based Collaboration?
5 Simplest Shared Object is Client Side Java Applet
6 Shared Simulations -- Fluid Flow and Planetary Motion
7 More General Shared server side Objects
8 Sharing Server Side Objects II
9 Shared Event Model of Collaboration?
10 So what do we have now--TangoInteractive
11 The current Capabilities of Tango -I
12 TangoInteractive is a flexible framework -- 3 chats
13 Tango Offers Two White Boards
14 Capabilities of Tango -II
15 Microsoft's NetMeeting runs under Tango -- It has a more limited sharing Model
16 The current Capabilities of Tango -III
17 The current Capabilities of Tango -IV
18 Games are Natural in Tango Othello and the Magic Cube
19 TangoInteractive System Architecture
20 Application Developers View
21 Architecture of Tango
22 What About Tango 2
23 Tango 1.4 Compared to Tango 2
24 Next Generation TangoInteractive
25 Collaboration Framework I
26 State of a Web Page is
27 Each Collaborating Client Receives Events
28 Shared Places on the Web I
29 Shared Places on the Web II
30 SPW and Portals
31 SPW as Shared Portal on the Web
32 SPW and Window Clutter
33 Two Uses of XML in Collaboration?
34 JSSB Currently Shares Existing Web DOM in Netscape 4.5
35 JavaScript Shared Browser with Dynamic HTML -- Shared Pointer
36 Basic JSSB Architecture
37 Shared Form Illustrated by Shared Access to NCSA Biology Workbench showing how general server objects can be shared from web interface
38 User and System Events
39 JSSB and Shared Card Games
40 Sharing XML Content Pages
41 XML JSSB Architecture
42 Applications of Shared XML Content Pages
43 XML and Universal Access I
44 XML and Universal Access II
45 Some Technical and System Comments
46 Where are we today?
47 Shared Places and SPDL - Overview
48 Shared Places - Technology Components
49 Shared Place Example: Introduction
50 Overview of Typical SPDL Document
51 SPDL Document Header
52 Declare the Shared Objects
53 What does SPDL Document Define
54 What SPDL Document Defines- continued
55 Definition of Groups of Users
56 Access to the Shared Place
57 Define User Roles I
58 Define User Roles II
59 Define Collaborative Sessions
60 Define Data Synchronization
61 Define source of Data
62 Shared Place Components
63 A Collection of Shared Place Components
64 Web Page with 2 Shared Objects
65 Continuing the HTML File: Load Shared Place and 2 Java Applets
66 The Real Stuff in HTML Page
67 Shared Places Interfaces
68 Shared Place Architecture
69 Shared Place Architecture - continued
70 Conclusions

Outside Index Summary of Material



HTML version of Basic Foils prepared September 13 99

Foil 1 Tango Futures: XML for Web-based Collaboration and Distance Education http://www.npac.syr.edu/users/gcf/suratangoxmlsep99 SURANET Meeting Birmingham Alabama Sep 8 1999

From Tango Futures: XML for Web-based Collaboration and Distance Education SURA Meeting Birmingham Alabama -- September 8 1999. *
Full HTML Index
NPAC
111 College Place
Syracuse NY 13244 4100
Phone: 3154432163
Lukasz Beca
Geoffrey Fox
Marek Podgorny
Syracuse University

HTML version of Basic Foils prepared September 13 99

Foil 2 Abstract of XML and Collaboration

From Tango Futures: XML for Web-based Collaboration and Distance Education SURA Meeting Birmingham Alabama -- September 8 1999. *
Full HTML Index
We describe the essentials of shared event collaboration and how it is naturally integrated with the Web for both replicated client and server side shared objects.
We describe TangoInteractive and its applications
One use of XML is to define Shared Web Pages which implement both asynchronous (portal) and synchronous collaboration
Another use of XML is to support universal access and to link diverse display devices in collaborative sessions
We define the resultant event based architecture to be used in a new implementation of TangoInteractive
We conclude with original presentation abstract

HTML version of Basic Foils prepared September 13 99

Foil 3 Components of Technology Cauldron

From Tango Futures: XML for Web-based Collaboration and Distance Education SURA Meeting Birmingham Alabama -- September 8 1999. *
Full HTML Index
Internet is universal delivery infrastructure
XML is universal data structure (or object serialization mechanism)
Java is universal programming language
Distributed Objects are basic electronic building blocks
Jini is universal mechanism for registration and look up of distributed objects
Databases are useful way of persistently storing and managing objects
Pagers/PalmTops/Cell Phones/PC's render objects
W3C DOM describes Web Pages -- the universal view of all objects
Messages or Events link objects together (Java programs this producing information in XML format)

HTML version of Basic Foils prepared September 13 99

Foil 4 What is Web-based Collaboration?

From Tango Futures: XML for Web-based Collaboration and Distance Education SURA Meeting Birmingham Alabama -- September 8 1999. *
Full HTML Index
Collaboration means sharing objects
Web-based Collaboration implies use of Web to share distributed objects accessible through the Web
  • Shared Web Pages; Resources accessed through Web Servers or Brokers; Client-side applications with programmatic interfaces
Specify Page
Receive Identical Page
Web Site

HTML version of Basic Foils prepared September 13 99

Foil 5 Simplest Shared Object is Client Side Java Applet

From Tango Futures: XML for Web-based Collaboration and Distance Education SURA Meeting Birmingham Alabama -- September 8 1999. *
Full HTML Index
Web Pages are an example where there is a single copy of an object; perhaps simpler is the replicated object model used in chat-rooms and more generally shared applets where sharing is maintaining consistent state of replicas
Server Shares Events
Java Chat Rooms (applications or applets). Share text typed by users

HTML version of Basic Foils prepared September 13 99

Foil 6 Shared Simulations -- Fluid Flow and Planetary Motion

From Tango Futures: XML for Web-based Collaboration and Distance Education SURA Meeting Birmingham Alabama -- September 8 1999. *
Full HTML Index
These educational resources are
shared replicated client side objects

HTML version of Basic Foils prepared September 13 99

Foil 7 More General Shared server side Objects

From Tango Futures: XML for Web-based Collaboration and Distance Education SURA Meeting Birmingham Alabama -- September 8 1999. *
Full HTML Index
Web Page Sharing is a special case of sharing server side objects -- CGI Scripts, Databases, Object Repositories etc.
This can be done by sharing the Web specification of these objects which can be done client side without ANY change to basic object
This is sharing of client side interface (proxy) to server side object
Specify Object
Collaboration Server Shares Object Specification
Receive Identical Specification
Fetch Identical Objects

HTML version of Basic Foils prepared September 13 99

Foil 8 Sharing Server Side Objects II

From Tango Futures: XML for Web-based Collaboration and Distance Education SURA Meeting Birmingham Alabama -- September 8 1999. *
Full HTML Index
We have used the shared proxy notion to implement
  • Shared Browser
  • Shared Form to access Server side computation (NCSA Biology Workbench -- bunch of CGI scripts)
  • Shared access to Web-linked database
Server does not need to know about detail of
collaboration.
It is more efficient if it
caches information for
re-use.
Thus use custom data-base
caching or general
proxy server

HTML version of Basic Foils prepared September 13 99

Foil 9 Shared Event Model of Collaboration?

From Tango Futures: XML for Web-based Collaboration and Distance Education SURA Meeting Birmingham Alabama -- September 8 1999. *
Full HTML Index
So if all clients want exactly same view at all times, then the "shared event" model is a waste.
Might as well, just share the display produced on originating client (cf. Microsoft NetMeeting)
In fact, shared event typically enables each client to get the same view but instead one shares the object but has different presentation layers on each client
For instance, share a single XML document but apply different style sheets on each client
Again in command and control, basic application is a 3D map (Geographical Information System) but not so interested clients can present a simple 2D view

HTML version of Basic Foils prepared September 13 99

Foil 10 So what do we have now--TangoInteractive

From Tango Futures: XML for Web-based Collaboration and Distance Education SURA Meeting Birmingham Alabama -- September 8 1999. *
Full HTML Index
http://www.npac.syr.edu/tango
Largely Java system enabling collaboration between general client side objects
  • If client side object is a Server proxy, then this ruse enables sharing of server side objects
  • Has API for Java applet/application, C++, JavaScript
API Enables sharing of events in applications
  • This is just a fancy way of saying it forwards messages
API Enables applications to find out about participants
Currently ONLY deployed for Netscape version 4.5 as uses LiveConnect to connect JavaScript to Java
  • Internet Explorer version not fully debugged
Tango 2.0 is about as good as you can do with current web
  • Tango 1.4 less flashy but production "quality"

HTML version of Basic Foils prepared September 13 99

Foil 11 The current Capabilities of Tango -I

From Tango Futures: XML for Web-based Collaboration and Distance Education SURA Meeting Birmingham Alabama -- September 8 1999. *
Full HTML Index
Tango supports a synchronous shared event model of collaboration
Tango supports (more than) enough (over 40) applications
Core Collaboration Capabilities
  • Audio-Video Conferencing multicast between room participants
  • Text chat rooms with various tradeoffs between "coolness", ease of use etc.
  • Shared Browser (Synchronized view of Web Pages)
  • Shared Web Search (becomes shared database query)
  • Slide Show
  • White Board
  • Shared Audio and Video Players (Java Applets and link to video on demand database)

HTML version of Basic Foils prepared September 13 99

Foil 12 TangoInteractive is a flexible framework -- 3 chats

From Tango Futures: XML for Web-based Collaboration and Distance Education SURA Meeting Birmingham Alabama -- September 8 1999. *
Full HTML Index
Shared Streaming Video

HTML version of Basic Foils prepared September 13 99

Foil 13 Tango Offers Two White Boards

From Tango Futures: XML for Web-based Collaboration and Distance Education SURA Meeting Birmingham Alabama -- September 8 1999. *
Full HTML Index

HTML version of Basic Foils prepared September 13 99

Foil 14 Capabilities of Tango -II

From Tango Futures: XML for Web-based Collaboration and Distance Education SURA Meeting Birmingham Alabama -- September 8 1999. *
Full HTML Index
Databases Linkage
  • JDBC Link to WebWisdom Database
  • Lotus Notes Link to Asynchronous Collaboration (Abandoned)
Office and Authoring Tools
  • PowerPoint via shared display or shared Java viewer
  • Microsoft Excel using NetMeeting
  • Microsoft Word
  • shared visual C++ etc.
  • Combined Whiteboard / Java object based PowerPoint like authoring system
  • Shared emacs editor -- shared programming
Disappointing Use

HTML version of Basic Foils prepared September 13 99

Foil 15 Microsoft's NetMeeting runs under Tango -- It has a more limited sharing Model

From Tango Futures: XML for Web-based Collaboration and Distance Education SURA Meeting Birmingham Alabama -- September 8 1999. *
Full HTML Index

HTML version of Basic Foils prepared September 13 99

Foil 16 The current Capabilities of Tango -III

From Tango Futures: XML for Web-based Collaboration and Distance Education SURA Meeting Birmingham Alabama -- September 8 1999. *
Full HTML Index
General Virtual University Applications
  • Current WebWisdom hierarchical database system navigating through 35,000 foils and 750 foilsets
  • "Raise Hands" Applet to help teacher-student synchronous interaction
Special Virtual University Applications
  • Shared Java applets to teach physics (spring, planets, vector cross product)
  • Shared visible human illustrates biology teaching
  • Shared Java Applets used to teach Java!
  • Shared SmartDesk system aimed at activities useful in special education with built in assessment
  • Untested Quiz and Glossary Support
Not Used

HTML version of Basic Foils prepared September 13 99

Foil 17 The current Capabilities of Tango -IV

From Tango Futures: XML for Web-based Collaboration and Distance Education SURA Meeting Birmingham Alabama -- September 8 1999. *
Full HTML Index
Have some fun with Multi-player games
  • VRML Chess
  • JavaScript Card Games and Internet Snap
  • Java Othello and Rubic's Cube
  • snakes and ladders and could develop a bunch of similar "grid" games
"Other" Applications
  • TANGOsim command and control system with shared tools (e.g. mapping, weather) to use in scripted crisis management
  • There is a very good shared mapper which is a Java whiteboard supporting map backends and general shared drawing
  • Shared Visualization available for test
Obsolete

HTML version of Basic Foils prepared September 13 99

Foil 18 Games are Natural in Tango Othello and the Magic Cube

From Tango Futures: XML for Web-based Collaboration and Distance Education SURA Meeting Birmingham Alabama -- September 8 1999. *
Full HTML Index

HTML version of Basic Foils prepared September 13 99

Foil 19 TangoInteractive System Architecture

From Tango Futures: XML for Web-based Collaboration and Distance Education SURA Meeting Birmingham Alabama -- September 8 1999. *
Full HTML Index
N: Netscape Browser
LD: Local Daemon
CA: Control Application
AP: Applet
LA: Local Application
CS: Tango Java Server
DB: Collaboration Database (XML now)
HTTP: Web Server / Object Broker
Client
Client
Collaboration Server
Object/Content Server

HTML version of Basic Foils prepared September 13 99

Foil 20 Application Developers View

From Tango Futures: XML for Web-based Collaboration and Distance Education SURA Meeting Birmingham Alabama -- September 8 1999. *
Full HTML Index
For each supported mode
  • C++
  • Java Applet or Application
  • JavaScript
You can communicate between linked clients to preserve state
  • "master" sends state changes to nonmasters
You can find out list of participants
  • Who is master etc.
  • You are notified when participants change

HTML version of Basic Foils prepared September 13 99

Foil 21 Architecture of Tango

From Tango Futures: XML for Web-based Collaboration and Distance Education SURA Meeting Birmingham Alabama -- September 8 1999. *
Full HTML Index
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

HTML version of Basic Foils prepared September 13 99

Foil 22 What About Tango 2

From Tango Futures: XML for Web-based Collaboration and Distance Education SURA Meeting Birmingham Alabama -- September 8 1999. *
Full HTML Index
Significant but evolutionary improvement to Tango 1.4
Too a lot longer than expected and still in beta stage
  • production use is Tango 1.4
Capability TI 1.4 TI 2.0
Core tools (BV, SB, WBD, Chat, etc.) + +
Shared dynamic HTML support + +
Shared Document Object Model + +
Shared Java applets + +
Shared Java in pages - +
Shared JavaBeans - +
SWING-based interface - +
User authentication - +
Personal Identity Module - +

HTML version of Basic Foils prepared September 13 99

Foil 23 Tango 1.4 Compared to Tango 2

From Tango Futures: XML for Web-based Collaboration and Distance Education SURA Meeting Birmingham Alabama -- September 8 1999. *
Full HTML Index
Capability TI 1.4 TI 2.0
Server licensing - +
File repositories - T2.1
Fully-integrated e-mail support - +
Listserv Support - T2.1
"Awareness" service (like AIM) - +
Site-configurable/customizable interface + +
Internet Explorer support - T2.1
"Out-of-browser" implementation - T2.1
Shared visualization - T2.1
Shared compute engine + +
Shared web-linked database + +

HTML version of Basic Foils prepared September 13 99

Foil 24 Next Generation TangoInteractive

From Tango Futures: XML for Web-based Collaboration and Distance Education SURA Meeting Birmingham Alabama -- September 8 1999. *
Full HTML Index
So let us imagine that we can redo all of this and assume that
  • The proxy ruse is correct and one does only need to share client side Web Pages
  • There are plenty of conventional web pages but full support for XML and W3C DOM in browsers
  • XML can be used for control pages and specialized pages such as those produced by web-linked databases and education portals
Collaboration implies sharing of electronic objects and is needed in Asynchronous and Synchronous modes
Asynchronous mode is MOST important (in all applications including distance education) and will be supported by run of the mill object web infrastructure
  • shared web pages and documents
  • electronic mail
Synchronous mode has important applications and not done fully by giants ...

HTML version of Basic Foils prepared September 13 99

Foil 25 Collaboration Framework I

From Tango Futures: XML for Web-based Collaboration and Distance Education SURA Meeting Birmingham Alabama -- September 8 1999. *
Full HTML Index
Objects register and then define their state via a stream of events
Need to share (federate) events between domains (your PC and mine) whose event services are normally isolated
"Tango Server"
Clients which receive events which are either queued (asynchronous)
or processed synchronously

HTML version of Basic Foils prepared September 13 99

Foil 26 State of a Web Page is

From Tango Futures: XML for Web-based Collaboration and Distance Education SURA Meeting Birmingham Alabama -- September 8 1999. *
Full HTML Index
Initial Load plus
Stream of events reflecting
  • Scroll,
  • DHTML,
  • Form etc. changes

HTML version of Basic Foils prepared September 13 99

Foil 27 Each Collaborating Client Receives Events

From Tango Futures: XML for Web-based Collaboration and Distance Education SURA Meeting Birmingham Alabama -- September 8 1999. *
Full HTML Index
Event Stream becomes set of time stamped XML messages
  • Control Messages: e.g. New Participant Joined
  • Shared Object Definition/Update Messages (e.g. Page Scrolled by such and such amount done as XML serialization of JavaScript Event object)
One or More Shared Places
One or More Shared Places
.............

HTML version of Basic Foils prepared September 13 99

Foil 28 Shared Places on the Web I

From Tango Futures: XML for Web-based Collaboration and Distance Education SURA Meeting Birmingham Alabama -- September 8 1999. *
Full HTML Index
Each "Shared Place on the Web" or SPW is a set of XML and HTML documents
An XML document defines the collaboration Structure -- who is allowed in "Shared Place"; what objects can be there; where they are stored
  • This replaces the suite of undocumented rigid policies in TangoInteractive as well as scattered configuration files
  • There is one such XML document for each type of SPW e.g. there would be distedtojacksonstate.xml or xmldevelopersconf.xml etc.
  • We have developed SPDL (Shared Place Definition Language) which is currently quite simple and is used in the SPW structure definition

HTML version of Basic Foils prepared September 13 99

Foil 29 Shared Places on the Web II

From Tango Futures: XML for Web-based Collaboration and Distance Education SURA Meeting Birmingham Alabama -- September 8 1999. *
Full HTML Index
There is an HTML document defines the shared place itself; it instantiates particular objects and is presentation layer
  • There is an associated XSL style sheet which invokes necessary programmatic capabilities and interprets XML islands in HTML document. These islands are defined in SPDL
  • There can be many SPW's presentation layers with a given SPDL structure
  • This (HTML + Style sheet) combination replaces the current TangoInteractive "Control Applet"
We will re-use some existing client side Java as SP agent and control objects invoked from style sheets
The TangoInteractive Server can also be largely re-used

HTML version of Basic Foils prepared September 13 99

Foil 30 SPW and Portals

From Tango Futures: XML for Web-based Collaboration and Distance Education SURA Meeting Birmingham Alabama -- September 8 1999. *
Full HTML Index
There is a lot of interest in portals these days
We build Web-based computing environments which are portals to Supercomputers and Web-based education or portals to a virtual university
Merrill Lynch predicts that Enterprise Information portal market will be $15B by 2002
Portals are built (by us) as a customizable set of XML components ( e.g. Run a Particular Program or display thumbnail of the next web-page in lecture)
SPW's can be thought of as customizable collaborative portals which define both synchronous and asynchronous shared components

HTML version of Basic Foils prepared September 13 99

Foil 31 SPW as Shared Portal on the Web

From Tango Futures: XML for Web-based Collaboration and Distance Education SURA Meeting Birmingham Alabama -- September 8 1999. *
Full HTML Index
Electronic Mail and News Updates are just "events" which can be handed to viewer objects in an SPW
  • In synchronous collaboration, events are typically generated on a client and immediately shared with other clients
  • Asynchronous events typically are generated by a server (which offers persistent store) and transmitted to client
Integration of Synchronous and Asynchronous Events is essential in "Next Generation" TangoInteractive
Customization is available as you can choose which objects are in your SPW and you can define customization parameters such as area for which you want weather and which sports results should be displayed
Such customized portals are commonplace but SPDL has the advantage that it specifies both synchronous and asynchronous portal components.

HTML version of Basic Foils prepared September 13 99

Foil 32 SPW and Window Clutter

From Tango Futures: XML for Web-based Collaboration and Distance Education SURA Meeting Birmingham Alabama -- September 8 1999. *
Full HTML Index
Currently TangoInteractive produces a very cluttered desktop as each capability is invoked as a separate window
We build Java and JavaScript window managers to help out but doesn't seem right ...
SPW will allow one design more coherent systems using either frames or windows as appropriate
For instance, for distance education, one could put chat room, audio-video conferencing controls and whiteboard as separate frames of a single window

HTML version of Basic Foils prepared September 13 99

Foil 33 Two Uses of XML in Collaboration?

From Tango Futures: XML for Web-based Collaboration and Distance Education SURA Meeting Birmingham Alabama -- September 8 1999. *
Full HTML Index
We have introduced XML used to define the nature of collaboration in terms of objects, clients, policies
We have discussed user customization in terms of portals
Consider the JavaScript Shared Browser (JSSB) in TangoInteractive
It is an example of collaborative content built around sharing events defined in Web Page
  • Difficulties with "version 4 DOM" as bugs and inconsistent or incomplete implementations
  • However it can be made to work very effectively
Here we discuss "content" Web pages and not the "Collaboration Definition" Web pages we discussed already
Remember that "shared event" Collaborative systems share the object and not its particular presentation layer on each client

HTML version of Basic Foils prepared September 13 99

Foil 34 JSSB Currently Shares Existing Web DOM in Netscape 4.5

From Tango Futures: XML for Web-based Collaboration and Distance Education SURA Meeting Birmingham Alabama -- September 8 1999. *
Full HTML Index
Clicks on form/link in layers or frames
Clicks on layers
mouseover and mouseout ...
Can veto default action on clicks or other events on nonmaster side
  • Don't know how to veto changes on nonmaster in Netscape4
Save Form Contents at any time
  • can reload any dump at any time
Resizing so all clients have same scaling
Scrolling
Sharing can be customized from dialog window
Download times to monitor bad networks at application level
JSSB does monitor client page to detect unwanted page changes (One can capture clicks on Page links but not on "back button" )

HTML version of Basic Foils prepared September 13 99

Foil 35 JavaScript Shared Browser with Dynamic HTML -- Shared Pointer

From Tango Futures: XML for Web-based Collaboration and Distance Education SURA Meeting Birmingham Alabama -- September 8 1999. *
Full HTML Index
Shared Pointer added to Internet Assistant PowerPoint on the Web
Illustrates sharing of Web Object Model internal to document

HTML version of Basic Foils prepared September 13 99

Foil 36 Basic JSSB Architecture

From Tango Futures: XML for Web-based Collaboration and Distance Education SURA Meeting Birmingham Alabama -- September 8 1999. *
Full HTML Index
Null Window Holds All
Permanent
Data
Tango Control Applet
Launches and Positions auxiliary windows
Cannot be signed Cannot do SetTimeout
(has LiveConnect restrictions)
Clock and Event Record
Signed JavaScript Capture Events Control Clock
and Inspect Shared Page for events
Shared Page is a frame
Dummy Page
Position Control Bar
Can be Destroyed without restarting Tango Session

HTML version of Basic Foils prepared September 13 99

Foil 37 Shared Form Illustrated by Shared Access to NCSA Biology Workbench showing how general server objects can be shared from web interface

From Tango Futures: XML for Web-based Collaboration and Distance Education SURA Meeting Birmingham Alabama -- September 8 1999. *
Full HTML Index
Shared Multiple List
Shared Buttons
Shared Text field
Shared Checkbox

HTML version of Basic Foils prepared September 13 99

Foil 38 User and System Events

From Tango Futures: XML for Web-based Collaboration and Distance Education SURA Meeting Birmingham Alabama -- September 8 1999. *
Full HTML Index
One can either share raw system message (click event occurred) or higher level user event generated by JavaScript invoked by event
Note Netscape 4.5 does NOT allow you to generate a general event in a page
  • You can invoke "click" events on form elements but not so events associated with layers
  • You can parse JavaScript invoked by event and transmit but this is unreliable
So User events are convenient and sometimes required
Function process() ...
Invoke Tango JS Interface
with user defined meaning
Click on Button which happens to
invoke some User JavaScript Code
Capture Click and
Invoke Tango JS Interface
with meaning that click occurred
Or

HTML version of Basic Foils prepared September 13 99

Foil 39 JSSB and Shared Card Games

From Tango Futures: XML for Web-based Collaboration and Distance Education SURA Meeting Birmingham Alabama -- September 8 1999. *
Full HTML Index
Dialog Box Invokes Shared User Events
Cards are 56 DHTML Layers
All of this
implies XML
Framework
for Card Games
and Internet Gambling

HTML version of Basic Foils prepared September 13 99

Foil 40 Sharing XML Content Pages

From Tango Futures: XML for Web-based Collaboration and Distance Education SURA Meeting Birmingham Alabama -- September 8 1999. *
Full HTML Index
So "new version of JSSB" for SPW should implement:
  • Share XML content of a document
  • Allow each collaborating client to generate personalized presentation layer using customized stylesheet or equivalent
Note TangoInteractive can map object specification on each client and so customization can be performed either before or after web page generated
  • Currently we map URL's before submission so each client accesses optimal mirror site (if available)

HTML version of Basic Foils prepared September 13 99

Foil 41 XML JSSB Architecture

From Tango Futures: XML for Web-based Collaboration and Distance Education SURA Meeting Birmingham Alabama -- September 8 1999. *
Full HTML Index
Content Server
Shared by SPW
Events
Trapped by XML JSSB
Master
Nonmaster

HTML version of Basic Foils prepared September 13 99

Foil 42 Applications of Shared XML Content Pages

From Tango Futures: XML for Web-based Collaboration and Distance Education SURA Meeting Birmingham Alabama -- September 8 1999. *
Full HTML Index
Support of Collaboration between PC client, Palmtop and high graphics devices such as CAVE's
So in education, can support a mix of wireless palmtops and laptops in the class, with distance PC's
  • Laptops and PC's get all the information including shared PowerPoint/Web Curricula pages etc.
  • Palmtops just get quizzes, chatrooms, whiteboard etc.
Linkage of geographically distributed researchers is necessary to support collaborative computational science
  • One researcher may be in a 3D virtual environment
  • Others will be looking at traditional scientific visualization on workstations
A common XML specification of visualization is mapped according to display capabilities of client device

HTML version of Basic Foils prepared September 13 99

Foil 43 XML and Universal Access I

From Tango Futures: XML for Web-based Collaboration and Distance Education SURA Meeting Birmingham Alabama -- September 8 1999. *
Full HTML Index
It is essential that collaborative technologies support all users independent of their hardware and physical capabilities
Hardware issues are essentially illustrated by palmtop to CAVE example on previous foil
Suppose we wish to teach a class where some students and/or teachers have impaired sight and hearing.
Then we need to share same object content but render it differently on each client.
  • Possibly want to render a given object in multiple ways on a given machine
Essential to share content (as in XML JSSB) and this enables you to choose right presentation for given client
  • Typical HTML layout aimed at fully capable users and needs to be redone for physically impaired users
Concepts of XML JSSB for universal access developed with Al Gilman from Trace Center

HTML version of Basic Foils prepared September 13 99

Foil 44 XML and Universal Access II

From Tango Futures: XML for Web-based Collaboration and Distance Education SURA Meeting Birmingham Alabama -- September 8 1999. *
Full HTML Index
Assume that all education will be web-based
Assume that we need to provide web resources of equal quality for all citizens
This will not work if one has to translate each course from material for "regular user" to that for "user for different access capabilities"
Thus only chance is to define curriculum in XML and produce customized presentation layers
One will need a powerful indexing/abstracting scheme to be able design appropriate navigation schemes for all users and clients
  • Natural framework is XML based Education Portals with SPW implementing collaboration (a.k.a. teaching)

HTML version of Basic Foils prepared September 13 99

Foil 45 Some Technical and System Comments

From Tango Futures: XML for Web-based Collaboration and Distance Education SURA Meeting Birmingham Alabama -- September 8 1999. *
Full HTML Index
There is a lot of TangoInteractive Software lying around to implement collaboration and so natural to implement customization in Java or JavaScript as an alternative to XSL
  • 15,000 lines JavaScript and a lot more Java
Note JavaScript very fast but phenomenological
  • Undefined thread behaviour etc. makes for experimental programming
  • However there is usually way of getting things to work
Note that on detects events at presentation layer but must share at object layer -- only works if this object- presentation layer connection well defined
XML Content
Pages
Events Trapped
by XML JSSB
define object state
Converted by Browser etc.
Shared Object

HTML version of Basic Foils prepared September 13 99

Foil 46 Where are we today?

From Tango Futures: XML for Web-based Collaboration and Distance Education SURA Meeting Birmingham Alabama -- September 8 1999. *
Full HTML Index
Current Web-based Curriculum are rarely based on XML
  • PowerPoint
  • WebCT
  • Blackboard
  • We have an unknown system WebWisdom based on XML
Largest concern of (some) universities is the 80% of the faculty, who have little or no web expertise
  • There is another group of zealots who would be happy to litter their pages with Java applets
Note advantage of XML and DOM is that seems relatively clear how to make collaborative with universal access
Javabeans allow Java applets to be made collaborative but there is no separation between presentation and object layers

HTML version of Basic Foils prepared September 13 99

Foil 47 Shared Places and SPDL - Overview

From Tango Futures: XML for Web-based Collaboration and Distance Education SURA Meeting Birmingham Alabama -- September 8 1999. *
Full HTML Index
Shared Place/Portal on the Web - the virtual place on the Web where people can meet and work together. They can use provided content and tools for collaboration and possibly creating new content. Basically, it is a ordinary Web page with collaboration and customization functionality added
Shared Place Definition Language (SPDL) is an XML based application that implements the idea of collaboration as a Web page content. It enables creation of Shared Places. HTML includes Java Applets Active X etc.
SPDL offers:
  • syntax for defining collaboration functionality of Web page content
  • mechanisms for merging seamlessly collaboration content with the regular Web page content
  • constructs to customize behavior of collaboration content depending on required policy

HTML version of Basic Foils prepared September 13 99

Foil 48 Shared Places - Technology Components

From Tango Futures: XML for Web-based Collaboration and Distance Education SURA Meeting Birmingham Alabama -- September 8 1999. *
Full HTML Index
Shared Place Definition Language is a language for defining properties of shared places. SPDL conforms to XML specification
Shared Object is a piece of software that can be embedded as a part of a Web page content. Shared Objects offer collaboration functionality using mechanisms provided by SP framework. To interact with SP framework, Shared Objects must implement the defined SP interface. Examples: Java Applets, Plug-ins, ActiveX objects, JavaScript Applications
SP Framework is a set of mechanisms that implement (roughly equivalent to Tango server + local daemon) collaboration services and expose them to Shared Objects using SP interfaces (discussed later)

HTML version of Basic Foils prepared September 13 99

Foil 49 Shared Place Example: Introduction

From Tango Futures: XML for Web-based Collaboration and Distance Education SURA Meeting Birmingham Alabama -- September 8 1999. *
Full HTML Index
In this example we define a simple shared place where the results of some scientific computations are available.
The place can be used also for discussion among collaborating scientists. The discussion is supported by two shared objects: chat and data viewer.
The chat can be used for the text based discussion about presented results.
The data viewer can be used for the graphical presentation of the results. The authors of the results (`creators') have access to the advanced functionality of the data viewer. (e.g. support of particular XML dialects) They can use this functionality to present their findings visually to the `observers'.
The shared place is defined by two documents. The presentation layer is described by the HTML document and the collaboration functionality is defined by the SPDL XML/XSL document.

HTML version of Basic Foils prepared September 13 99

Foil 50 Overview of Typical SPDL Document

From Tango Futures: XML for Web-based Collaboration and Distance Education SURA Meeting Birmingham Alabama -- September 8 1999. *
Full HTML Index
The SPDL document defines several collaboration aspects of the shared place.
The header defines the communication protocol used for contact with collaboration server. (could be CORBA or what have you)
Next, all the shared objects embedded in the shared place are enumerated.
The following fragments define the user groups that have access to the shared place, specific user roles, and types of the collaborative sessions that are established in the shared place.
Other fragments describe how the data visible by different users are synchronized and specify the sources of the content presented by the shared objects.
Note how some Shared Place properties (e.g. users and files) are useful in non-collaborative page mode and others support both synchronous and asynchronous collaboration

HTML version of Basic Foils prepared September 13 99

Foil 51 SPDL Document Header

From Tango Futures: XML for Web-based Collaboration and Distance Education SURA Meeting Birmingham Alabama -- September 8 1999. *
Full HTML Index
<?xml version="1.0"?>
<placedef>
<head>
<title>Result Presentation</title>
<protocol type="plain">
<server>kopernik.npac.syr.edu</server>
<port򘮓</port>
</protocol>
</head>
The Header contains the title of the place.
It also declares how the shared place communicates with the collaboration framework. (I.e. server in Tango language)
The plain client/server protocol is chosen here with the collaboration server running on the machine: kopernik.npac.syr.edu on the port: 5555.
Other protocols such as IIOP can be used as well.
Initialize shared place definition

HTML version of Basic Foils prepared September 13 99

Foil 52 Declare the Shared Objects

From Tango Futures: XML for Web-based Collaboration and Distance Education SURA Meeting Birmingham Alabama -- September 8 1999. *
Full HTML Index
<sharedobject name="viewer"/><location> http://www.npac.syr.edu/experiments/apps/viewer.jar
  • </location>
  • <width</width>
  • <height</height>
</shared_object>
<sharedobject name="chat">......</sharedobject>
This fragment describes shared objects that are used in the shared place.
  • Two shared objects are declared.
  • Other objects which are not declared here, will not be supported by the Shared Place Framework in the `Result Presentation' place (HTML Page).

HTML version of Basic Foils prepared September 13 99

Foil 53 What does SPDL Document Define

From Tango Futures: XML for Web-based Collaboration and Distance Education SURA Meeting Birmingham Alabama -- September 8 1999. *
Full HTML Index
Collaboration functionality:
Session management: Defines how the Shared Objects initiate or join collaborative sessions
Synchronization: Describes mechanisms for assuring the consistence of data observed by collaborating users
Control mechanisms: Defines how the behavior of Shared Objects can be controlled and how the state of the collaboration session can be accessed
Shared Object data:
Initial state: Defines how the Shared Object are initialized when they start running
Persistence: Describes whether and how the content of the collaborative session is stored
Content: Describes the data to be processed by Shared Objects during collaboration session

HTML version of Basic Foils prepared September 13 99

Foil 54 What SPDL Document Defines- continued

From Tango Futures: XML for Web-based Collaboration and Distance Education SURA Meeting Birmingham Alabama -- September 8 1999. *
Full HTML Index
Users:
Grouping: Defines user groups with possibility of assigning roles
User identity based configuration: It is possible to define different behavior of Shared Object depending on the user, user group or user role
Referencing Shared Objects:
Shared Object ID: SPDL uses Shared Object ID to define properties for specific Shared Object
Granularity: It is possible to define different behavior for individual Shared Objects, classes of Shared Objects or for the whole Shared Place

HTML version of Basic Foils prepared September 13 99

Foil 55 Definition of Groups of Users

From Tango Futures: XML for Web-based Collaboration and Distance Education SURA Meeting Birmingham Alabama -- September 8 1999. *
Full HTML Index
<groups>
<group name="syracuse">
<user>morgan</user>
<user>cheng</user>
</group>
<group name="boston">
<user>smith</user>
<user>johnson</user>
</group>
<group name="washington">
<user>anderson</user>
<user>brown</user>
</group>
</groups>
This fragment of the SPDL document defines user groups. Those groups are used in further sections of the SPDL document to define other properties of the shared place. Three user groups, each with two users, are defined: syracuse, boston and washington.

HTML version of Basic Foils prepared September 13 99

Foil 56 Access to the Shared Place

From Tango Futures: XML for Web-based Collaboration and Distance Education SURA Meeting Birmingham Alabama -- September 8 1999. *
Full HTML Index
<users>
<place_access>
<user_group>syracuse</user_group>
<user_group>boston</user_group>
<user_group>washington</user_group>
</place_access>
<users>
This fragment declares that only members of the groups: syracuse, boston, and washington can access the shared place.
The declaration uses the `place_access' tag, therefore the access restriction applies to the whole place (chat and viewer objects). However, it is possible to define separate settings for the specific objects.

HTML version of Basic Foils prepared September 13 99

Foil 57 Define User Roles I

From Tango Futures: XML for Web-based Collaboration and Distance Education SURA Meeting Birmingham Alabama -- September 8 1999. *
Full HTML Index
<roles>
<object_roles name="viewer">
  • <role_item name="creator" mode="static" >
  • <user_group>syracuse</user_group>
  • </role_item>
  • <role_item name="observer" mode="static" >
  • <user_group>boston</user_group>
  • <user_group>washington</user_group>
  • </role_item>
</object_roles>
</roles>
The fragment of the SPDL document on this page defines the roles for the users of the shared object: in particular we illustrate with the roles creator and observer.

HTML version of Basic Foils prepared September 13 99

Foil 58 Define User Roles II

From Tango Futures: XML for Web-based Collaboration and Distance Education SURA Meeting Birmingham Alabama -- September 8 1999. *
Full HTML Index
We suppose that the content handled by the viewer object were produced by scientists from Syracuse therefore the role of the creator is assigned to them. The two other groups have the observer roles.
The shared object `viewer' behaves in different way depending on the role of the user. The user that has the role of the creator (must belong to `syracuse' group) obtains access to the viewer interface with more functionality. This extended functionality enables presenting the gathered material to the observers.
On the other hand, observers obtain access to the simpler interface suitable only for viewing the content presented by the creators.
The shared object `chat' does not have this distinction. All users (that belong to the previously declared groups) can access it in the same way without any limitations.

HTML version of Basic Foils prepared September 13 99

Foil 59 Define Collaborative Sessions

From Tango Futures: XML for Web-based Collaboration and Distance Education SURA Meeting Birmingham Alabama -- September 8 1999. *
Full HTML Index
<sessions>
  • <place_sessions>
    • <session_item enter_mode="automatic" init_mode="none">
      • <user_group>syracuse</user_group>
      • <user_group>boston</user_group>
      • <user_group>washington</user_group>
    • </session_item>
  • </place_sessions>
</sessions>
This fragment defines how the collaboration sessions are created in the shared place.
The members of all three groups automatically enter the collaboration session when they access the result analysis page.
This means that when a user opens the page with the shared place defined by this document, she immediately starts the collaboration with other users without executing any special actions.

HTML version of Basic Foils prepared September 13 99

Foil 60 Define Data Synchronization

From Tango Futures: XML for Web-based Collaboration and Distance Education SURA Meeting Birmingham Alabama -- September 8 1999. *
Full HTML Index
<synchronization>
  • <place_synchronization>
    • <synchronization_item mode="instant">
      • <user_group>syracuse</user_group>
      • <user_group>boston</user_group>
      • <user_group>washington</user_group>
    • <synchronization_item>
  • </place_synchronization>
</synchronization>
This fragment of the SPDL document specifies that whenever one of the users change the state of their shared object, this change will be immediately propagated to the shared objects of the other users.
Such a "instant" mode is declared for all shared objects present in the shared place.

HTML version of Basic Foils prepared September 13 99

Foil 61 Define source of Data

From Tango Futures: XML for Web-based Collaboration and Distance Education SURA Meeting Birmingham Alabama -- September 8 1999. *
Full HTML Index
<content>
  • <object_content name="viewer" location="http://www.npac.syr.edu/experiments/results/" >
    • <content_access mode="readonly">
      • <user_group>everybody</user_group>
    • </content_access>
  • </object_content>
</content>
</placedef>
This fragment of the SPDL document states that the shared object that implements the result viewer has access to the data from the location: http://www.npac.syr.edu/experiments/results/ in "read-only" mode.
This place should be used for storing the data that can be displayed by the viewer.

HTML version of Basic Foils prepared September 13 99

Foil 62 Shared Place Components

From Tango Futures: XML for Web-based Collaboration and Distance Education SURA Meeting Birmingham Alabama -- September 8 1999. *
Full HTML Index
HTML documents containing:
  • ordinary content: text, pictures, etc.
  • collaborative content: Shared Objects embedded using SPDL tags
  • reference to valid SPDL document
SPDL XML document defining collaboration functionality of Shared Objects embedded in the HTML document
Style Sheet for SPDL XML file defining applet that interprets page

HTML version of Basic Foils prepared September 13 99

Foil 63 A Collection of Shared Place Components

From Tango Futures: XML for Web-based Collaboration and Distance Education SURA Meeting Birmingham Alabama -- September 8 1999. *
Full HTML Index
<placedef>
.
. .
</placedef>
SPDL document
Web browser
Regular content
Web page
Shared objects
So Web Page is defined as a set of Nodes
-- You choose which nodes (and their children)
that you wish to share and then events are exchanged
maintaining state consistency

HTML version of Basic Foils prepared September 13 99

Foil 64 Web Page with 2 Shared Objects

From Tango Futures: XML for Web-based Collaboration and Distance Education SURA Meeting Birmingham Alabama -- September 8 1999. *
Full HTML Index
<HTML>
<head><title>Page with the computation results</title></head>
<body>
<xml id="placeDocument" src="results.xml"></xml>
<xml id="chatDef">
<embedobject name="chat">
<location>http://www.npac.syr.edu/experiments/apps/chat.jar
</location ></embedobject></xml>
<xml id="viewerDef">
<embedobject name="viewer">
<location>http://www.npac.syr.edu/experiments/apps/viewer.jar
</location ></embedobject></xml>
<xml id="style" src="spdl.xsl"></xml>
SPDL Definitions Page
Style Sheet
Shared Objects

HTML version of Basic Foils prepared September 13 99

Foil 65 Continuing the HTML File: Load Shared Place and 2 Java Applets

From Tango Futures: XML for Web-based Collaboration and Distance Education SURA Meeting Birmingham Alabama -- September 8 1999. *
Full HTML Index
Interpret 3 XML islands in style sheet and instantiate them in three (other) regions of document. ( Previously we loaded XML islands but they were not instantiated by browser)
<SCRIPT FOR="window" EVENT="onload">
docTarget.innerHTML = placeDocument.transformNode(style.XMLDocument);
chatTarget.innerHTML = chatDef.transformNode(style.XMLDocument);
viewerTarget.innerHTML = viewerDef.transformNode(style.XMLDocument);
</SCRIPT>

HTML version of Basic Foils prepared September 13 99

Foil 66 The Real Stuff in HTML Page

From Tango Futures: XML for Web-based Collaboration and Distance Education SURA Meeting Birmingham Alabama -- September 8 1999. *
Full HTML Index
<div id="docTarget"></div>
<p>This page contains the results of our latest computations.
The most interesting fragments are presented below.
<p>results here ..... ANY OLD HTML
<p>The authors of those computations will come here to discuss latest results on Monday at 3:00pm.
Please join them in the discussion:
<p>Visualization of some results presented by the authors is
available here:
<div id="viewerTarget"></div>
<p>Talk with others about the results here: ANY OLD HTML
<div id="chatTarget"></div> </body></HTML>
The display of two shared objects
Control Display

HTML version of Basic Foils prepared September 13 99

Foil 67 Shared Places Interfaces

From Tango Futures: XML for Web-based Collaboration and Distance Education SURA Meeting Birmingham Alabama -- September 8 1999. *
Full HTML Index
Now we turn to implementation and architecture
We remarked that SP Framework exposed a set of interfaces to Shared Objects and tools that manipulate them
SP Interfaces are the entry points for accessing collaboration functionality provided by SP Framework (major extension of functionality provided by Tango API in Java applet, application, C++ and JavaScript):
  • Configuration interface enables initialization of Shared Objects based on the content of SPDL document
  • Data sharing interface offers data passing and synchronization services to the Shared Objects
  • Control interface provides means for accessing and manipulation of collaboration state

HTML version of Basic Foils prepared September 13 99

Foil 68 Shared Place Architecture

From Tango Futures: XML for Web-based Collaboration and Distance Education SURA Meeting Birmingham Alabama -- September 8 1999. *
Full HTML Index
Shared Objects
  • Offer high-level collaboration functionality to the users
  • Communicate with Shared Place Framework
Shared Place Framework
  • SP Agent
    • Interprets SPDL document for specific Shared Place
    • Initializes Shared Objects
    • Exposes collaboration services to Shared Objects
    • Communicates with Collaboration Framework
Collaboration Framework offers low-level collaboration services to SP Agent (messaging and event service shared between collaborating clients as in current Tango Server)

HTML version of Basic Foils prepared September 13 99

Foil 69 Shared Place Architecture - continued

From Tango Futures: XML for Web-based Collaboration and Distance Education SURA Meeting Birmingham Alabama -- September 8 1999. *
Full HTML Index
Web browser
Collaboration Framework
SP Agent
Shared Object
Web page
Other Clients

HTML version of Basic Foils prepared September 13 99

Foil 70 Conclusions

From Tango Futures: XML for Web-based Collaboration and Distance Education SURA Meeting Birmingham Alabama -- September 8 1999. *
Full HTML Index
We have analyzed a successful Web-based collaboration system TangoInteractive and in particular its JavaScript interface enabling shared interactive web pages
We have noted that it is very helpful to
  • use XML and new W3C DOM
  • Link Asynchronous and Synchronous events
  • Link Portal and Collaboration technology
XML can be used in defining portal/shared collaboration space
XML can support universal access to collaborative environments to those with disabilities -- hence giving them access to education
XML can support collaboration between clients from palmtops, to PC's and high-end virtual environments
TangoInteractive is available now at http://www.npac.syr.edu/tango
Prototypes involving SPDL and Collaborative PC's/palmtops will be available in Jan 00
This talk is: http://www.npac.syr.edu/users/gcf/suratangoxmlsep99

© Northeast Parallel Architectures Center, Syracuse University, npac@npac.syr.edu

If you have any comments about this server, send e-mail to webmaster@npac.syr.edu.

Page produced by wwwfoil on Mon Sep 13 1999