Collaboration and Web Services
Document Sample


Collaboration and
Web Services
UIUC October 15 2002
PTLIU Laboratory for Community Grids
Geoffrey Fox
Computer Science, Informatics, Physics
Indiana University, Bloomington IN 47404
(Technology Officer, Anabas Corporation, San Jose)
http://grids.ucs.indiana.edu/ptliupages
gcf@indiana.edu
6/6/2012 uri="http://www.naradabrokering.org" 1
email="gcf@indiana.edu"
Some Basic Observations/Goals
Technology Support for e-learning is one motivation
Need Synchronous and Asynchronous Resource Sharing
• Can provide universal access using synchronous collaboration technology
Grids manage and share asynchronous resources in a rather
centralized fashion
Peer-to-peer networks are “just like” Grids with different
implementations of services like registration and look-up
Web Services interact with messages
• Everything (including applications like PowerPoint will be a WS?)
Computers are fast and getting faster. One can afford many
strategies that used to be unrealistic
• All messages can be publish/subscribe
• Software message routing
XML will be used for most interesting data and meta-data
• One will store/consider data and meta-data separately but often use same
technology to manage both of them.
6/6/2012 uri="http://www.naradabrokering.org" email="gcf@indiana.edu" 2
Deductions
The system consists of a sea of message-based Services
Services inject and extract messages whose transport and
manipulation is support by a logically distinct sea of
brokers/routers
• They support adaptive routing, filtering, workflow …
• They separate logical and actual transport
• These form a federated XML database and support asynchronous
collaboration
• These process real-time messages in about a millisecond and support
synchronous collaboration
Basic Unit of information (including events and messages) is a
bunch of XML using URI’s to link to other XML or to “other
technology capabilities” – Fortran programs, video files,
telescopes …
This XML includes service meta-data, user profiles, H323 done
right, your homework grades, update of framebuffer in shared
display etc.
6/6/2012 uri="http://www.naradabrokering.org" email="gcf@indiana.edu" 3
So what are we doing I?
We need to be UIUC to do all of this and I can only do a few
scattered projects based on this model
We have designed and built a messaging infrastructure
NaradaBrokering embodying some of these ideas
• We have shown interoperability between JXTA (Sun’s P2P environment),
Java Message Service (JMS) and NaradaBrokering
We have deployed a classic (Placeware, Interwise, WebEx)
synchronous collaboration environment (Garnet) using JMS or
Narada (uses Anabas technology)
We have illustrated filtering/universal access by linking PDA’s to
desktop collaboration
We have prototyped audio-video conferencing as a web service
We are repackaging collaborative SVG as a Web service to
illustrate (explore) how wonderful it will be when all applications
are Collaborative Web services
6/6/2012 uri="http://www.naradabrokering.org" email="gcf@indiana.edu" 4
So what are we doing II?
but won’t mention again
We are building a toolkit to allow any application to be made a
Web service (this only manipulates metadata)
• Aimed at support of classic Grid applications running on a backend
supercomputer
• A Computing Portal
We are building Jetspeed portlets of various types – including
collaborative
We have some XML news group technology which uses news
group interface to support management and browsing of
multiple XML information nuggets (instances) of general
Schema
• Wizard generates interfaces to define nuggets
• JSP wizard layout and browsing specification defined by annotating
Schema
6/6/2012 uri="http://www.naradabrokering.org" email="gcf@indiana.edu" 5
Classic Grid Architecture Resources
Database Database
Content Access
Composition Middle Tier
Netsolve Brokers
Security Service Providers
Collaboration
Computing
Middle Tier becomes Web Services
6/6/2012 Clients Users and Devices
uri="http://www.naradabrokering.org" email="gcf@indiana.edu" 6
Different Web Service Organizations
Everything is a resource (distributed object)
implemented as a Web Service, whether it be:
• back end supercomputers and a petabyte dataset
• Microsoft PowerPoint and this file
Web Services communicate by messages …..
• Web Services are “just distributed objects” with focus on
(particular) XML specified input and output messages
Grids and Peer to Peer (P2P) networks can be
integrated by building both in terms of Web Services
with different (or in fact sometimes the same)
implementations of core services such as registration,
discovery, life-cycle, collaboration and event or message
transport …..
• Gives a Peer-to-Peer Grid
Roughly but not completely consistent with OGSA
• Consistent with “rule”: build everything as a Web service
6/6/2012 uri="http://www.naradabrokering.org" email="gcf@indiana.edu" 7
Database
Database Peers
Service Facing
Web Service Interfaces
Event/ Event/ Event/
Peer to Peer Grid
Message
Brokers
Message
Brokers
Message
Brokers
Peers
User Facing
Web Service Interfaces
A democratic organization
6/6/2012 Peer to Peer Grid
uri="http://www.naradabrokering.org" email="gcf@indiana.edu" 8
Education as a Web Service
“Learning Object” XML standards already exist from IMS/ADL
http://www.adlnet.org – need to update architecture
Web Services for virtual university include:
Registration
Performance (grading)
Authoring of Curriculum
Online laboratories for real and virtual instruments
Homework submission
Quizzes of various types (multiple choice, random parameters)
Assessment data access and analysis
Synchronous Delivery of Curricula including Audio/Video
Conferencing and other synchronous collaborative tools as Web
Services
Scheduling of courses and mentoring sessions
Asynchronous access, data-mining and knowledge discovery
Learning Plan agents to guide students and teachers
6/6/2012 uri="http://www.naradabrokering.org" email="gcf@indiana.edu" 9
Collaboration and Web Services
Collaboration has
a) Mechanism to set up members (people, devices) of a
“collaborative sessions”
b) Shared generic tools such as text chat, white boards, audio-
video conferencing
c) Shared applications such as Web Pages, PowerPoint,
Visualization
b) and c) are “just shared objects” where objects
could be Web Services but rarely are at moment
• We can port objects to Web Services and build a general
approach for making Web services collaborative
a) is a “Service” which is set up in many different
ways (H323 SIP JXTA are standards supported by
multiple implementations) – we can make it a WS
quite easily
6/6/2012 uri="http://www.naradabrokering.org" email="gcf@indiana.edu" 10
Web Service Architecture
for Audio Video Conferencing
SIP Access
H.323
Client Grid
Client
A/V Web-Service
A/V Web-Service A/V Web-Service
Gateway
Gateway ( SIP ) Gateway ( AG )
( H.323)
A/V Media A/V Media A/V Media
Server Server Server
Event Message Service
Session Session Session
Server Server Server
Core Collaboration MiddleWare
6/6/2012 uri="http://www.naradabrokering.org" email="gcf@indiana.edu" 11
XGSP: Introduction
Session Command
Registration Method Query
Method Method
Session Channel
Binding Method
Collaboration as a WS
Registration Method
registration server with its alias name and current location
Session Command Method
Membership Control Commands, Session Control
Commands
Query Method
discover various properties about the system
Session Channel Binding Method (Specific to A/V)
bind the RTP channels of a client into the media server
6/6/2012 uri="http://www.naradabrokering.org" email="gcf@indiana.edu" 12
XGSP: Example
<SessionDes>
<SessionName> PervasiveTech Seminar </SessionName>
<SessionID> 1234567 </SessionID>
<SessionCreator> Ahmet@indiana.edu </SessionCreator>
<SessionInfo> this is a meeting on the XGSP </SessionInfo>
<SessionPlace> Lobby Room </SessionPlace>
<SessionTime>
<StartTime> (EastTime) 10:00AM </StartTime>
<EndTime> (EastTime) 12:00AM </EndTime>
</SessionTime>
<SessionURI> http://grids.ucs.indiana.edu/~ag </SessionURI>
<SessionParticipants>
<Participant> Wenjun@156.56.103.129 </Participant>
<Participant> Hasan@156.56.103.27 </Participant>
<Participant> Shrideeper@156.56.103.111 </Participant>
</SessionParticipants>
<ContactInfo> wewu@indiana.edu </ContactInfo>
</SessionDes>
6/6/2012 uri="http://www.naradabrokering.org" email="gcf@indiana.edu" 13
Collaboration Web
Administrator
Clients
User
Clients
Server
( Java Sevelets & JSP )
Linking
Web Interface
Clients
c
e
f
a
ea
ry
ne
tw
It
H.323
G
a
Gateway
Session
Server
Media Server
and Servers
Interface
H323
Current Implementation
Client H323 Signaling
Channels
Polycom (H323) Access Grid
Polycom
Netmeeti Integration
ng
Access
Media Server Grid
A/V RTP Channels A/V RTP Multicast
Channels
W W
Venues
Talk Server S Session Server S
D Bridge D
Server
Future Project
L L Link Proprietary MCU’s
HearMe Multicast
Illustrated for SIP (HearMe)
SIP
MCU Gateway
Media Cloud and Access Grid
Server
HearMe Access Grid
6/6/2012 uri="http://www.naradabrokering.org" email="gcf@indiana.edu" 14
Current Status
XGSP Specification stable
Demo prototype of Polycom (H323), Access Grid,
Shared Display clients
H323 Gateway based on openh323
JMF (Java Media Framework)
used for Media Server XGSP MCU (Control) User Interface
XGSP used Internally between
audio, video and session
control services
Codec negotiation supported
(No XGSP clients yet)
Narada UDP Communication
has been successfully tested
6/6/2012 uri="http://www.naradabrokering.org" email="gcf@indiana.edu" 15
H323 Client (Polycom) in XGSP Session
6/6/2012 uri="http://www.naradabrokering.org" email="gcf@indiana.edu" 16
Comparison with
6/6/2012 other approaches
uri="http://www.naradabrokering.org" email="gcf@indiana.edu" 17
Possible A/V Web Service Futures
Productize Narada Integration – needs more testing of
Narada multi-protocol interface
• Will this defeat firewalls that currently spoil my lectures?
Session Control Server can be used to define
collaborative sessions for other shared applications
• Text chat etc.
• Shared SVG, StarOffice, Internet Explorer, Word etc. (using
“.net” event interface)
• Integrate with JXTA interface using Narada-JXTA link
Add RealMedia (Windows Media) SIP (VOIP) and
native XGSP clients
Integrate at server (MCU) level for Polycom,
AccessGrid, VOIP – this is Federation
6/6/2012 uri="http://www.naradabrokering.org" email="gcf@indiana.edu" 18
Personal View of Collaborative Systems
Originally (at Syracuse) built a collaborative
environment Tango and used for online lectures and
training sessions from 1997-2001 (2001 updated system)
• Functionality fine but browser interface and network
produced instability
• Hard to build custom collaborative applications
Newer simpler (Garnet) system addresses these issues
although network issues still being addressed
Use of XML meta-data and building Education or e-
learning as a set of Web Services gives interoperability
Use of Grid (as from IBM) and peer-to-peer technology
will give improved infrastructure (still quite primitive)
6/6/2012 uri="http://www.naradabrokering.org" email="gcf@indiana.edu" 19
Courses at Jackson State
Taught using Tango/Garnet since fall 97 over Internet twice a
week from Syracuse/FSU/Indiana
• Course material same style as online material for in-university
classes
• Curricula, Homework, Grading, Facilities done by “me”
• Students get JSU NOT Syracuse/Indiana Credit
• “Trivial” in that learning model identical to that in traditional
courses – just changed interaction mode
Jackson State major MSI (Minority Serving) University with
many computer science graduates
Do not compete with base courses but offer addon courses with
“leading edge” material (Web Technology, modern scientific
computing) which give JSU (under)graduates skills that are
important in their career
Fall 99 Semester CPS640 offered to 40 students in 5 distant places
and separately 40 at Syracuse
6/6/2012 uri="http://www.naradabrokering.org" email="gcf@indiana.edu" 20
Lessons from Past
“True” Shared Event flexible but too much work for
most cases
Shared Display – nearly always works
Shared Export – SVG PDF HTML X3D etc. 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 modes
Later we realized need to integrate with Peer to Peer
and Web Services (straightforward as XML event
model fits these architectures)
6/6/2012 uri="http://www.naradabrokering.org" email="gcf@indiana.edu" 21
User Facing Ports for Web Service
Resource or Other WS
Service-facing
User-facing
Ports
WSDL Ports
R U
F F
Portal
I
Content Provider I
Aggregate
WS-User Facing
O O Fragments
Web Service
Other WS
User Facing
Ports Render
6/6/2012 uri="http://www.naradabrokering.org" email="gcf@indiana.edu" 22
Collaboration: Shared Display
Sharing can be done at any point on “object” or Web Service
pipeline
Shared Web Service Shared
Shared Shared Export Display
Event
Object Object
Object Object’ Object’’
Viewer Display
Master
Shared Display shares
framebuffer with events Event
Object
corresponding to changed (Message)
Display
pixels in master client. Service
As long as pipeline uses messages, easy to
make collaborative Object
Windows framebuffers and in fact most applications Display
do NOT expose a message based update interface
6/6/2012 uri="http://www.naradabrokering.org" email="gcf@indiana.edu" 23
Shared Input Port (Replicated WS) Collaboration
Collaboration as a WS
Set up Session with XGSP
R U
F Web F
Servic WS WS
I e I Viewer Display
O O
Master
R U
F Web F
Servic WS WS
Event I e I Viewer Display
O O
(Message)
Service
Other
Participants
R U
F Web F
Servic WS WS
I e I Viewer Display
O O
6/6/2012 uri="http://www.naradabrokering.org" email="gcf@indiana.edu" 24
Shared Output Port Collaboration
Collaboration as a WS
Web Service Message Set up Session with XGSP
Interceptor
Master
WSDL
R U
F F WS WS
Application or
I Content source I
Viewer Display
O O
Web Service
WS WS
Text Chat Viewer Display
Whiteboard
Multiple Event Other
masters (Message) Participants
Service
WS WS
Viewer Display
6/6/2012 uri="http://www.naradabrokering.org" email="gcf@indiana.edu" 25
Role of Event/Message Brokers
We will use events and messages interchangeably
• An event is a time stamped message
Our systems are built from clients, servers and “event brokers”
• These are logical functions – a given computer can have one
or more of these functions
• In P2P networks, computers typically multifunction; in Grids
one tends to have separate function computers
• Event Brokers “just” provide message/event services; servers
provide traditional distributed object services as Web services
There are functionalities that only depend on event itself and
perhaps the data format; they do not depend on details of
application and can be shared among several applications
• NaradaBrokering is designed to provide these functionalities
• MPI provided such functionalities for all parallel computing
6/6/2012 uri="http://www.naradabrokering.org" email="gcf@indiana.edu" 26
NaradaBrokering implements an Event Service
Destination
Routing Filter workflow
Source Matching
Web (Virtual) Web
Service 1 Queue Service 2
WSDL Broker WSDL
Ports Ports
Filter is mapping to PDA or slow communication channel
(universal access) – see our PDA adaptor
Workflow implements message process
Routing illustrated by JXTA and includes firewall
Destination-Source matching illustrated by JMS using Publish-
Subscribe mechanism
These use Security model (being designed) based on WS-Sec
6/6/2012 uri="http://www.naradabrokering.org" email="gcf@indiana.edu" 27
Engineering Issues Addressed
by Event / Messaging Service
Application level Quality of Service – give audio highest
priority
Tunnel through firewalls
Filter messages to slow (collaborative or real time)
clients
Hardware multicast is erratically implemented (Event
service can dynamically use software multicast)
Scaling of software multicast
Elegant implementation of Collaboration in a Groove
Networks (done better) style
Integrate synchronous and asynchronous collaboration
6/6/2012 uri="http://www.naradabrokering.org" email="gcf@indiana.edu" 28
Features of Event Service I
MPI nowadays aims at a microsecond latency
The Event Web Service aims at a millisecond (computer) latency
• Typical distributed system travel times are many milliseconds
(to seconds for Geosynchronous satellites)
• Different performance/functionality trade-off
Messages are not sent directly from P to S but rather from P to
Broker B and from Broker B to subscriber S
• Actually a network of brokers
Synchronous systems: B acts as a real-time router/filterer
• Messages can be archived and software multicast
Asynchronous systems: B acts as an XML database and
workflow engine
Subscription is in each case, roughly equivalent to a (XML)
database query
6/6/2012 uri="http://www.naradabrokering.org" email="gcf@indiana.edu" 29
Features of Event Service II
In principle Message brokering can be virtual and compiled
away in the same way that WSDL ports can be bound in real
time to optimal transport mechanism
• All Web Services are specified in XML but can be
implemented quite differently
• Audio Video Conferencing sessions could be negotiated using
SOAP (raw XML) messages and agree to use certain video
codecs transmitted by UDP/RTP
Separate logical User Channel and its protocol from “actual
ports/protocols” which are Transport Channels
• Use Performance Service to map user requirements into
transport
• e.g. audio user channel requests UDP from A to B but we use
TCP/IP on port 80 from A to N1 (through nasty firewall) and
UDP from N1 to B (say on Internet2)
There is a collection of XML Schema – call it GXOS – specifying
event service and requirements of message streams and their
endpoints
6/6/2012 uri="http://www.naradabrokering.org" email="gcf@indiana.edu" 30
Features of Event Service III
The event service is naturally implemented as a
dynamic distributed network
• Required for fault tolerance and performance
• Implies a corresponding dynamic distributed XML database
A new classroom joins my online lecture
• A broker is created to handle students – multicast locally my
messages to classroom; handle with high performance local
messages between students
Company X sets up a firewall
• The event service sets up brokers either side of firewall to
optimize transport through the firewall
Note all message based applications use same message
service
• Web services imply ALL applications are (possibly virtual)
message based
6/6/2012 uri="http://www.naradabrokering.org" email="gcf@indiana.edu" 31
Single Server P2P Illusion
Traditional Collaboration Architecture
Data e.g. commercial WebEx
base
Collaboration Server
6/6/2012 uri="http://www.naradabrokering.org" email="gcf@indiana.edu" 32
Narada Broker Network
(P2P) Community
For message/events service
Broker
Broker
(P2P) Community
Resource
Broker
Broker
Data
(P2P) Community Broker
base
Software multicast
Broker
(P2P) Community
6/6/2012 uri="http://www.naradabrokering.org" email="gcf@indiana.edu" 33
NaradaBrokering and JMS (Java Message Service)
Low Rate; Small Messages (commercial JMS)
6/6/2012 uri="http://www.naradabrokering.org" email="gcf@indiana.edu" 34
NaradaBrokering High end "long lived"/
persistent resources
and JXTA
Narada-JXTA provides NARADA-
JXTA proxy
JXTA guaranteed long
distance delivery NARADA
broker cloud
Narada JXTA Event
For duplicate Narada Headers
detection Peers
within
Interaction UUID JXTA
NARADA Request/
JXTA Interaction Dynamic/fluid Rendezvous
Response
Type peer groups PEER
Allows the Peer group id
NARADA
Peer id
Request/Response
Present if the
system to interaction is
route event to JXTA Event trageted to a
specific JXTA Payload Present
specific Peer if targeted at
proxies Narada Event Particular peer
Distribution Traces
6/6/2012 uri="http://www.naradabrokering.org" email="gcf@indiana.edu" 35
Transit delay for message samples in Narada, JXTA & Narada-JXTA
Topology - I (2 routers) Internal Machines
140
NaradaBr
Pure JXTA
120 Narada-JXTA
100
80
N NaradaBrokering broker NaradaBrokering client
60 R JXTA Rendezvous
JXTA Peer
N
40 R R R R
N N
20 (a) (b) (c)
0
500 1000 1500 2000 2500 3000 3500 4000 4500 5000 5500
Message Payload Size
6/6/2012
(Bytes)
uri="http://www.naradabrokering.org" email="gcf@indiana.edu" 36
Transit delay for message samples in Narada, JXTA and Narada-JXTA
Topology - III (8 routers) Internal Machines
300
NaradaBr
Pure JXTA
250 R R Narada-JXTA
R R R R
R R
200 (a)
N R R
R R
150
R R R R R R
N NaradaBrokering broker
R R
(b)
100 RN R
N R JXTA Rendezvous
(a)
N N N
R N R JXTA Peer
50 N N NaradaBrokering client
(c)
R N N R
0
500 1000 1500 2000 2500 3000 3500 4000 4500 5000 5500
R R
Message Payload Size
(b)
N N
6/6/2012
(Bytes)
uri="http://www.naradabrokering.org" email="gcf@indiana.edu" 37
Transit delay for message samples in NaradaBr, JXTA & Narada-JXTA
Topology - II (6 routers) External Machines
400
NaradaBr
R R
Pure JXTA
350 Narada-JXTA
R R
N NaradaBrokering broker
300 R R R JXTA Rendezvous
(a)
R R JXTA Peer
NaradaBrokering client
250 R N N R
R R
(b)
200 N N
N N
150
N N
(c)
100
50 100 150 200 250 300 350 400 450 500 550
Message Payload Size
6/6/2012
(Bytes)
uri="http://www.naradabrokering.org" email="gcf@indiana.edu" 38
NaradaBrokering Communication
Applications interface to NaradaBrokering through UserChannels.
UserChannels are implemented as TransportChannels which are made up
of Links
UserChannels have publish/subscribe semantics
Links implement a single conventional “data” protocol supported by a
SOAP administrative channel
• Easily adding new transport protocols within the Framework.
• Negotiating the best available communication protocol
Link implementations can incorporate their own handshaking protocols
for setting up of the communication channel.
Different links can have different underlying transport implementations
• Implementations in the next release will include support for TCP,UDP,
Multicast, SSL, HTTP, HTTPS.
• Support communication through proxies such as iPlanet, Netscape
• Support for communication through firewalls such as Microsoft ISA.
NaradaBrokering brokers and Links can be instantiated dynamically
• Support communication between two application end points across firewall &
proxy boundaries.
6/6/2012 uri="http://www.naradabrokering.org" email="gcf@indiana.edu" 39
User “XML
Database”
6/6/2012 uri="http://www.naradabrokering.org" email="gcf@indiana.edu" 40
Narada Performance Web Service
Performance measurements are
used by Links in
• Reconfiguring Connectivity
between nodes
• Deciding underlying transport
protocol
• Determining possible filtering
TransportChannel uses
“performance heuristic” to define
links and their protocols
Factors measured include
• Transit delays, bandwidth, Jitter, Receiving rates.
• Performance measurements are
Spaced out at increasing intervals for healthy
channels.
Factors selectively measured for unhealthy
channels.
• No repeated measurements of bandwidth
for example. Administrative Interface
Injected into Narada network as XML events
6/6/2012 uri="http://www.naradabrokering.org" email="gcf@indiana.edu" 41
Control Channel (TCP) Config
Specifics tunnel Specifics default
destination, parameters. tunnel destination,
[ SOAP port 80 ] parameters.
Non-Firewall
Proxy
CTL
TCP SSL Tunnel UDP
SSL
SSL Tunnel Server
Lib
Client Proxy Proxy TCP
UDP API
Firewall
Fake SSL JSSE WinINET Proxy
Impl. Impl. Impl.
Proxy Detection API
Required for MS
WinINET Authentication
Text Config support.
Detection
Required for
Proxy location
Firewall
Narada Link Firewall Architecture detection
6/6/2012 uri="http://www.naradabrokering.org" email="gcf@indiana.edu" 42
Stream Media Start Works
UDP
Types
Doesn’t Work
Reliable Data Start Works
TCP
Stream
Doesn’t Work
WinINET Works
Windows
? Try SSL first then HTTP
NaradaBrokering Doesn’t Work
Link Transport Works
Try SSL Over Connection
Firewall Does HTTPS Yes
HTTPS Complete
Proxy Exist
Heuristic Proxy
Doesn’t Work
Try HTTP Works
Does HTTP Yes
Over HTTP
Proxy Exist
Proxy
Doesn’t Work
“Fake
Works
” SSL Try SSL Over Try HTTP
Over Direct Direct
Doesn’t Doesn’t
Direct
Work Work
Works
6/6/2012 uri="http://www.naradabrokering.org" email="gcf@indiana.edu" 43
Roles of NaradaBrokering
Originally to provide uniform software multicast to
support real-time collaboration linked to publish-
subscribe for asynchronous
Until recently used JMS “instead” but have replaced by
NB as we can control features (bugs) in implemenation
Now has three major core functions
Message transport (based on performance) in multi-
link fashion
General publish-subscribe including JMS&JXTA
Federation of multiple instances (just starting) of Grid
services
6/6/2012 uri="http://www.naradabrokering.org" email="gcf@indiana.edu" 44
Federation of Services
If you have a service – Notification (as with Grid or JXTA
advertisements), Search, Scheduling, Audio-Video conferencing
….
With a standard which client and server components
Then can build a “server” that services all clients
Alternatively can hierarchically consider collection of existing
Server-client domains
• IBM or Globus OGSA islands
• Sun Grid Engine Schedulers
NB
• Polycom/Access Grid A/V sessions
Hub
• Enterprise Search Engines
Federation links islands together
• JXTA Search has XML specified federation approach – will try to include
and generalize as a NaradaBrokering federation framework
• DoD High Level Architecture HLA does this for simulation
6/6/2012 uri="http://www.naradabrokering.org" email="gcf@indiana.edu" 45
Narada/JMS and Collaboration
Collaboration involves sharing resources and synchronous
collaboration involves coordinating a common view of a resource
between multiple clients
Typically one client is “in charge” and others get initial and
updated resource from this “master”
Specification of initial state of resource and its change are “just
XML events” and we (Anabas and Indiana) have used first JMS
and now NaradaBrokering to implement the transport of update
events between collaborating clients
Update events include:
• text you type into text chat or Instant Messenger
• URL defining shared browser
• Change in framebuffer for (most flexible) shared display
• Microsoft events for shared PowerPoint (file replicated between clients)
6/6/2012 uri="http://www.naradabrokering.org" email="gcf@indiana.edu" 46
Commercial
Collaboration
Systems
Centra Anabas
WebEx
6/6/2012 uri="http://www.naradabrokering.org" email="gcf@indiana.edu" PlaceWare
47
Filtering Service
As (real-time) collaboration uses publish-subscribe, we
can and in fact must map/filter “object renderings” or
updates to them differently for each class of client
In distance education, needed for example to
• Cope with mix of Internet2 and dial-up clients (the student
who overslept and is at home)
• Allow PDA’s (Personal Digital Assistants) and desktops to be
in same session
• To allow Blind users to select the purely audio version of
some content
Mapping in event service enables universal access
Note clients’ subscription to publish/subscribe service
includes “user profile”
6/6/2012 uri="http://www.naradabrokering.org" email="gcf@indiana.edu" 48
Collaborative PDA
Extendable to more general universal access
Can implement filter either as an insertion in message stream or
in batch mode where a Service subscribes to event stream (one
collaborative application or “sharedlet”), filters it and reposts to
a different stream
We developed first case with a special adaptor that is essentially
a NaradaBrokering node that
• Has added filters controlled by client profile
• Has stripped down special purpose link protocol HHMS (Hand held
message service) optimized for PDA
Currently implemented as MyProfessor for Windows CE iPAQ
Working on Palm OS Cell-PDA combination
Have implemented shared display, SVG, Text chat, Instant
Messenger (using Jabber)
6/6/2012 uri="http://www.naradabrokering.org" email="gcf@indiana.edu" 49
PDA Collaboration Event Filter
GM S( Sub scr ib er )
GM SM E
10000
1000
Shared Display
Message/Second
100
10 GMS = Pass Through
JMS or
Narada
1
Lightweight
Narada
0.1
Hand Held
Link
1M
16
64
1
4
1K
4K
6
6K
K
K
25
16
64
25
Message Size (bytes) Protocol
6/6/2012 uri="http://www.naradabrokering.org" email="gcf@indiana.edu" 50
Collaborative SVG
6/6/2012 uri="http://www.naradabrokering.org" email="gcf@indiana.edu" 51
Sharing Applications
Very few applications are written as Web services
Rather they integrate Rendering and Control
These need to be separated for
a) Easy Collaborative model
b) Use on devices with limited rendering or for users requesting custom
rendering
Note important standards like W3C DOM do not separate
“NaradaBrokering”
Trap Inject
Pre Web Service User User
Shared Event Events Events
Collaboration
Control
Rendering IE Word etc.
6/6/2012 uri="http://www.naradabrokering.org" email="gcf@indiana.edu" 52
Architecture of Collaborative SVG
Application as a WebService
Collaborative SVG
content server
Rendering Engine SVG
Document
{JMS, NB} Client
Session manager
SVG portlet Portlet A Portlet B Chosen
Jetspeed Event Service
Portlet Control
Portlet Controller {NaradaBrokering…}
Rendering
Turbine Screen & Update
HTTP request
HTTP request
HTML content
HTML/WML
Controlling Event New/Updated Content
Setup
content
Communication
Adaptor for PDAs
HTTP Client HTTP Client
{JMS, NB} HHMS
Client Client
Minimum Minimum
collaborative collaborative
environment environment
6/6/2012 uri="http://www.naradabrokering.org" email="gcf@indiana.edu"
PDA user 53
Desktop user
Select Collaborative SVG Portlet : HTML
Select Collaborative SVG Portlet
for Desktop environment
6/6/2012 uri="http://www.naradabrokering.org" email="gcf@indiana.edu" 54
Collaborative content viewer for Users
Input URL of
SVG document
Browse
Ready-to-use image
from SVG content WS
Catch user’s collaborative
events from viewer
6/6/2012 uri="http://www.naradabrokering.org" email="gcf@indiana.edu" 55
WSDL Selection (NaradaBrokering)
R U Event Service
F F View
Application or
I Content source I
O O Filter
Web Service
Customized View Selector
Control Channel Portal
(Aggregator)
Customized
User-Facing Customized View
User
Ports Control Channel Profile
As used in Universal Access
Render
6/6/2012 uri="http://www.naradabrokering.org" email="gcf@indiana.edu" 56
Different Models for Rendering
Current Collaborative SVG leaves Batik SVG browser
largely unchanged but wrapped as a Web Service
User sees a simple (say JPEG) rendering
• Very convenient for annotations etc.
Alternatively take Batik source and split into two
• Control and Render/Catch User actions
• Build messaging interface between them and only wrap
control Minimal
Control Transform Transform Client
DAT CTL DTX ….. DTX FPCL
PPCL DTX MCL
User
Portlet
Content
Each of these is some sort of DOM
All transformations must be “invertible” whether DOM “semantic”
(Interpretable by CTL) or not (position of mouse click etc.)
6/6/2012 uri="http://www.naradabrokering.org" email="gcf@indiana.edu" 57
Get documents about "