Title: Garnet Collaboration Framework
1 GarnetCollaboration Framework
- Geoffrey FoxProfessor of Computer Science,
Informatics, Physics - and Director PTLIU Laboratory for Community Grids
- Indiana University, Bloomington IN
47404http//grids.ucs.indiana.edu/ptliupages/pres
entations
gcf_at_indiana.edu
2Collaboration Lessons from Past
- True Shared Event flexible but too much work
for most cases - Shared Display nearly always works
- Shared Export SVG PDF HTML Java3D X3D etc.
useful as can be re-used - Integrate synchronous and asynchronous
collaboration - Do not build into browser as not a reliable or
standard virtual machine - Build around uniform publish-subscribe style XML
Event Model supporting archiving, customization,
filtering apply to all collaboration functions - Later we realized need to integrate with Peer to
Peer and Web Services (straightforward as XML
event model fits these architectures)
3Garnet Collaboration
- Assume Enterprise System built from communicating
Web Services exchanging XML-Specified Messages - Collaboration is Sharing Objects (state)
preferably as Web services - Change in state defined by XML messages and
transported by event service - JMS JXTA are typical publish-subscribe event
services with different delivery models - Insures integration of synchronous and
asynchronous collaboration - Includes Netmeeting, Groove, WebEx, Placeware,
Interwise models - Integrate with existing solutions consistent with
basic architecture - Application Server (Web Service Host)
- Data and Network Management
- Portals
- Workflow, Content Management
4AsynchronousCollaboration
SynchronousCollaboration
Audio/VideoConferencing
Web pages
email
WorkflowPub-Sub
Desktop Tools(chat,whitebrd)
File Mgmt
IMP2PTools
Content Mgmt
Many
Polycom
JMS
Many
Meta-data Mgmt
Slide
Yahoo AOL MSN
Blackboard
GarnetIntegrated Collaboration
GrooveTango
SharedEvent
NetmeetingWebEx
JetspeedWebSphereSybase EPBlackboard
WebSphereSybase EA Srvr
SharedExport
Vertical
GrooveJXTA
ApplicationsLMS, Gaming .
SharedDisplay
Architecture
UniversalAccess
Web Services
Portals
Grid
Peer-to-Peer
5Garnet Capabilities
- Default sharing is Shared Display with basic
tools (Text Chat, White Board, Polls, A/V
Conferencing) - Build custom shared export for common formats
SVG (Scalable Vector Graphics) and Java3D
examples - Lower bandwidth, better animation
- Publish-Subscribe sharing model allows
customization to different portal views and
client characteristics - Basic event infrastructure with well defined
interfaces - PDAs Slow Clients with adaptor
- Archive events for replay by subscribing database
to session - Integrate particular applications such as
learning content and management systems
6Collaborative Web Services
- First note that there are two distinct concepts
- Collaboration (and its basic tools) as a Web
Service - Such as Audio-Video Conferencing as a Web
Service or Text Chat as a Web Service - Collaborative Web Services
- Here we view a Web Service as specifying a
(distributed) object and wish to share an object - Object could be a Web page, a Job status form, a
scientific visualization, a PowerPoint slide etc.
(not all of these are Web Services but all should
be) - There is an overall framework (part of
collaboration as a web service) specifying such
items as members of collaborative session and
their preferences. There is a mechanism to make
Web services collaborative within this framework
7Types of Collaboration I
- Shared Display here one shares the rendering of
a Web Service. No modification is needed of the
web service. Rather this is handled by the portal
controlling the user interface - Collaborative Replicated Web Services here one
replicates several instances of a web service and
the task is to keep these copies consistent. This
synchronizes inputs to multiple Web Services - Collaborative Web Service Access here one has
multiple clients accessing a single instance of a
web service and obtaining consistent views. This
multicasts output of a single Web service to
multiple clients
8Types of Collaboration II
- Shared Export is built on synchronizing the
viewers (PDF HTML SVG Browsers) of standard
formats. It differs from Shared Web Services in
that user inputs (mouse clicks, keyboard) and not
(XML Web service) messages are shared - One can share export with either a single or
replicated back-end engine - The most elegant shared export models are built
around viewers of documents sharing W3C DOM - It would be interesting to convert W3C DOM to a
Web Service - Shared event is like shared Web service but is a
custom implementation for each application - One can often choose between sharing user inputs
or sharing implied change in specification of
object state
9Collaboration Shared Display
- Sharing can be done at any point on object
pipeline
Master
Event(Message)Service
Object Display
Shared Display shares framebuffer with
eventscorresponding to changedpixels in master
client.
Object Display
10Shared Display in Garnet
11Commercial CollaborationSystems
Centra
Garnet
WebEx
PlaceWare
12Shared Event ModelShared HTML Form Illustrated
by Shared Access to NCSA Biology Workbench
My original system Tango implemented shared
event collaboration modelHere is a shared browser
Shared Multiple List Shared Buttons Shared Text
field Shared Checkbox
13SciVis Integrated into Garnet
14PDA Collaboration Adaptor
15SVG Sharing PC to PDA
Batik Viewer on PC
PowerPoint can be converted to SVGvia
Illustrator or Web export
16Collaborative Web Service Access
- This shows how the Collaboration Web service
supports collaborative web services
Web Service InterceptorProviding General Services
Collaborationas a WebService
Collaborative WebService
Set Collaboration and Message Mode
MasterClient
Web Service has a port (perhaps WSRP portlet) on
which collaborativemodes set Web Service can
befront-end (in middletier) to complex
back-end object
Event(Message)Service
Client
Client
17Collaborative Portlets I
- When one has multiple components in the UI one
must extend Web Service picture to include Portal
and Portlets
Application as a WSGeneral Application
PortsInterface with other WebServices
PortalUser ProfileAggregateUI Fragments
Client
User Face ofWeb ServiceWSRP Ports define WS as
a Portlet
Integrate Multiple Portlets User
Customizationat either Portal or if complicated
at WS
18Collaborative Portlets II
- Collaboration is gotten by extending the WSRP
Interface
Collaborationas a WebService
Interceptor
Control
PortalUser ProfileAggregateUI Fragments
Client
WorkflowFilterPub-Sub
Event(Message)Service
19Shared Display in Portlet Model
Event(Message)Service
Collaborationas a WebService
Multi resolutionAnd other shared displayFeatures
PortalUser ProfileAggregateUI Fragments
NonMasterClients
Local or RemoteApplication to Share(maybe from
Portal)
Shared InputControl Port
MasterClient
Display Updates
20Garnet to portlet picture
- Need to breakup current custom client (a Java
application) into a set of components (Java
applets or ActiveX control for shared display
master) - SD, text chat, HearMe control, buttons etc.
- We already have Collaboration as a Web Service
control process and JMS as event service - In one month we will have extended JMS to enable
server side customization. This is essentially
interceptor - Currently options like multi-resolution are
scheduled for beginning of June deployment - Total portlet integration is 4 person-months for
SD application - Shared WSRP for shared WS would be supported
- Need to build WSDL/WSRP versions of CLIENT
applications to share (SVG, Star Office,
PowerPoint) - Essentially no change is needed for applications
which are already Web services and have message
based user interface
21Event Web Service
- Filter is mapping to PDA or slow communication
channel (universal access) see our PDA adaptor - Workflow natural as all messages intercepted by
Event Web Service - Routing illustrated by JXTA
- Destination-Source matching illustrated by JMS