Collaborative Peer-to-peer Grids for
Education and Research
PTLIU Laboratory for Community Grids
Geoffrey Fox
Computer Science, Informatics, Physics Indiana University, Bloomington IN 47404
(Technology Officer, Anabas Corporation, San Francisco)
http:
//grids.ucs.indiana.edu/ptliupages
Some Basic Observations/Goals
n Technology Support for e-learning is one motivation
n Need Synchronous and Asynchronous Resource Sharing
• Can provide universal access using collaboration technology
n Grids manage and share asynchronous resources in a rather
centralized fashion
n Peer-to-peer networks are “just like” Grids with different
implementations of services like registration and look-up
n Web Services interact with messages
• Everything (including applications like PowerPoint) will be a WS?
n 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
n XML will be used for most interesting data and meta-data
Deductions
n The system consists of a sea of message-based Services
n 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
n 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 …
n This XML includes service meta-data, user profiles, H323 done
right, your homework grades, update of framebuffer in shared display etc.
So what are we doing I?
n We co-edited a book on Grid Computing to be published April
2003 http://www.grid2002.org
n 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
n We have deployed a classic (Placeware, Interwise, WebEx)
synchronous collaboration environment (Garnet) using JMS or Narada (uses Anabas technology)
n We have illustrated filtering/universal access by linking PDA’s
to desktop collaboration
n We have prototyped audio-video conferencing as a web service
n We are repackaging collaborative SVG as a Web service to
illustrate (explore) how wonderful it will be when all applications are Collaborative Web services
n We have started HPSearch Internet Scripting Language project
So what are we doing II?
n We have some “Architecture of Computing Portals” including concept of
Grid Shell
n We are building a “Application Web service 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
• This gives Computing Portals for various applications
n We are building Jetspeed portlets of various types – including
collaborative
n We have thought about integration of XML with more traditional
information resources and designed some XML news group technology
which uses news group interface to support management and browsing of multiple XML information nuggets (instances) of general Schema
• Supported by JMS/NaradaBorokering
• Wizard generates interfaces to define nuggets
• JSP wizard layout and browsing specification defined by annotating Schema
n We continue work on HPJava (parallel computing in Java)
Classic Grid Architecture
Database Database
Netsolv e
Computin g
Securit y Collaboratio
n
Compositio n
Content Access
Resources
Middle Tie Brokers Service Providers
Web Services in a Nutshell
n Web Services codify a clear process for deploying distributed software
components representing
• Data and Information Sources (Sensors, Databases)
• Computers
• Application Software
• Learning Services like “Submit Homework”, “Grade” • System services (OGSA Open Grid Service Architecture)
n Distributed Message Passing Model
n We should be in some process of dividing applications (including e-learning)
into components and giving them an XML “skin” defining input and output ports (data, remote procedure calls)
• WSDL Web Service Definition Language
Application o Content
source WSD L
Web Service
Ports: Messages to and fro other web services, resource or users
Different Web Service Organizations
n 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
n Web Services communicate by messages …..
• Web Services are “just distributed objects” with focus on
(particular) XML specified input and output messages
n 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
n Roughly but not completely consistent with OGSA
Peer to Peer Grid
Database Database
Peers Peers
Peer to Peer Grid A democratic organization
User Facin
Web Service Interfaces
Service Facin
Web Service Interfaces
Event Messag Brokers
Event Messag Brokers
Event Messag Brokers
Education as a Web Service
n “Learning Object” XML standards already exist from IMS/ADL
http://www.adlnet.org – need to update architecture
n Web Services for virtual university include:
n Registration
n Performance (grading) n Authoring of Curriculum
n Online laboratories for real and virtual instruments n Homework submission
n Quizzes of various types (multiple choice, random parameters) n Assessment data access and analysis
n Synchronous Delivery of Curricula including Audio/Video
Conferencing and other synchronous collaborative tools as Web Services
n Scheduling of courses and mentoring sessions
n Asynchronous access, data-mining and knowledge discovery
Collaboration and Web Services
n
Collaboration
has
• Mechanism to set up members (people, devices) of a
“collaborative sessions”
• Shared generic tools such as text chat, white boards,
audio-video conferencing
• Shared applications such as Web Pages, PowerPoint,
Visualization
n
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
n
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
Web Service Architectur
XGSP: Introduction
Session Channel Binding Method
Query Method Session Command
Method Registration
Method
n Registration Method
registration server with its alias name and current location
n Session Command Method
Membership Control Commands, Session Control Commands
n Query Method
discover various properties about the system
n Session Channel Binding Method (Specific to A/V)
bind the RTP channels of a client into the media server
Collaboration as a WS
XGSP: Example
<SessionDes>
<SessionName> PervasiveTech Seminar </SessionName> <SessionID> 1234567 </SessionID>
<SessionCreator> [email protected] </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> [email protected] </Participant> <Participant> [email protected] </Participant>
<Participant> [email protected] </Participant> </SessionParticipants>
<ContactInfo> [email protected] </ContactInfo>
Linking Client
and Servers
Current Implementatio
Polycom (H323) Access Grid Admire (Chinese system
Similar to AG
and HearMe SIP VOI Integration
Future Projec
Link Proprietary MCU’s
Illustrated for SIP (HearMe and Access Grid
Current linkage for Clients not servers
Current Status
n
XGSP Specification stable
n
Demo prototype of Polycom (H323), Access Grid,
Admire, HearMe clients
n
H323 Gateway based on openh323
XGSP MCU (Control) User Interface
JMF (Java Media Framework) used for Media Serve
XGSP used Internally between audio, video and session
control services
Codec negotiation supported (No XGSP clients yet)
H323 Client (Polycom) in XGSP Session
Possible A/V Web Service Futures
n Productize Narada Integration – needs more testing of Narada
multi-protocol interface
• Will this defeat firewalls that currently spoil my lectures?
n Integrate video codec shared display system with classic bimap
shared display with dynamic choice
n 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
n Add RealMedia (Windows Media) SIP (VOIP) and native XGSP
clients
n Integrate at server (MCU) level for Polycom, AccessGrid, VOIP
– this is Federation
Personal View of Collaborative Systems
n
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
n
Newer simpler (
Garnet/Anabas
) system addresses these
issues although network issues still being addressed
n
Use of
XML meta-data
and building
Education
or
e-learning
as a set of
Web Services
gives
interoperability
n
Use of
Grid
(as from
IBM
) and
peer-to-peer
technology
Courses at Jackson State
n 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
n Jackson State major MSI (Minority Serving) University with
many computer science graduates
n 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
n Fall 99 Semester CPS640 offered to 40 students in 5 distant places
and separately 40 at Syracuse
Lessons from Past
n
“True” Shared
Event
flexible but too much work for
most cases
n
Shared
Display
– nearly always works
n
Shared
Export
–
SVG PDF HTML X3D
etc. can be
re-used
n
Integrate
synchronous
and
asynchronous
collaboration
nDo not build into
browser
as not a reliable or standard
virtual machine
n
Build around uniform
publish-subscribe style XML
Event Model
supporting archiving, customization,
filtering – apply to all collaboration modes
n
Later we realized need to integrate with
Peer to Peer
What is meant to Happen
n One uses IMS/ADL to define all needed properties in XML
• Such as Title of page; Address of student etc. • Ignore those sensitive to architecture;
• add some XML specifications such as those to define collaborative sessions
n One needs “automation”/”support tools” for process of generating
meta-data
• Such as prerequisites for courses; Author of web page etc.
n One uses conventional authoring tools to build curricula
• Uses portal technology to integrate user-interfaces to multiple Web Services • Unfortunately open approach not used in current
n Hopefully industry will build needed tools as Web services and
interoperability will allow picking and choosing between vendors rather than use of monolithic systems
• LMS or Learning Management Systems
• LCMS or Learning Content Management Systems (Use non education specific system)
• Authoring/Portals (I think it is best NOT to use education specific tools) • Collaborative Environments (shared applications)
• Audio-Video Conferencing
Current Status in a Nutshell
n Systems such as Centra, WebEx, Garnet and Placeware offer
similar functionality to our old system Tango for synchronous collaboration
• Shared applications, chatroom, whiteboard, A/V conferencing
n Blackboard, WebCT, Lotus offer learning management systems
• Not very consistent with modern architectures but can be used
effectively today
n Access Grid (community e.g. classroom) and Polycom (etc.) are
excellent audio-video systems
n I develop research system Garnet for education portals
• Features hand-held and desktop clients, integrated
collaboration and some “technical advances” – major use of XML and publish/subscribe systems
• Audio-Video Conferencing as a Web Service
Commercial
Collaboratio
Systems
Placewar e
WebEx
Centra Anabas
Learning Objects
n Given changing technology, need standards to protect investment
in authoring and administrative data generated and stored in databases
n Education community has unusually good set of community
standards
n Educational Environment Educause set up IMS –
http://www.imsproject.org Instructional Management System with selection of companies and universities
• IMS focus was changed to drop implementation work and is
now “Global Learning Consortium” Inc.
n Department of Defense (which has huge training needs) set up
ADL Advanced Distributed Learning Initiative
• www.adlnet.org whose links section includes all other useful
URL’s
n IEEE (Computing Community) set up P1484 Learning
LMS Model used by ADL
Learnin Server Conten t Server( s) External systems: HR, E-Commerce, ERP... Migrati onAdapt er Learning Server AP I Adapter Application
Properties of Learning Objects
n Metadata from IEEE and IMS
• Roughly Properties of educational objects thought of as “documents” (author, title …)
n Course Packaging, Digital Repositories from SCORM and IMS
• How to form bigger units of instruction from smaller units
• Called Content Packaging by IMS and Course Structure Format (CSF) by SCORM which goes in greater depth than IMS
n Tests and Quizzes from IMS
n Specialized CSF descriptors from SCORM (via CMI)
• Such as objectives, prerequisites, completion requirements
n LMS Runtime API from SCORM – I am doubtful about value n Enterprise Properties from IMS
• Link to people and organization databases (training, human
resource, library, student administration)
n Learner Information Package from IMS
• Name/Address, Goals, Skills, Grades etc.
n “Competencies” from IMS
Learning Management Systems
n Most education and training stresses asynchronous or web
support for conventional delivery
n WebCT Blackboard Lotus(IBM) and others offer LMS
systems with limited synchronous capability
• Support typical educational needs like grading, quizzes,
homework, glossaries, group email
• Varying database backend and
• Varying authoring support
n Popular with colleges as supports not so expert faculty
n DoD use less clear as need for homework and other tools less
critical than for University classes
n No built in support for areas like “programming labs” (VPL
from NPAC did this)
Hierarchical Delivery Model
n
One could teach to
1000 different students
– each at a
separate workstation but …
n
No real opportunity for questions so better to use
broadcast technology – not conferencing
n
Further could better deliver to 40 classrooms – each
with an average of 25 students
n
Each classroom has central high quality A/V
conferencing, displays and
• A Mentor monitoring and helping students
• Each student could have wireless laptop or PDA
n
So synchronous systems must support simultaneously
Authoring of Curriculum
n Possible Market pressures push to high end authoring
n Authoring approaches for the Web can include
• Basic HTML
• Macromedia/Adobe/etc. packages like Fireworks,
Dreamweaver, Illustrator
• PowerPoint and Word exported
n Also can include RealNetworks or Microsoft or .. format
Multimedia
• Note Streaming multimedia formats have larger buffers than
A/V conferencing formats
n Certainly use XML to specify content and render this into
attractive portal
n SVG and SMIL are important 2D vector graphics and multimedia
standards
• HTML does not give reproducible pages
• Flash can be thought of as “proprietary SVG”
Web Services as a Portlet
n
Each
Web Service
naturally has
a
user interface
specified as “just
another port”
• Customizable for universal access
n
This gives each Web Service a
Portlet
view specified (in XML
as always) by
WSRP
(Web
services for Remote Portals)
n
So component model for
resources “automatically” gives
a
component model for user
interfaces
• When you build your
application, you define portle
at same time
Application o Content source WSD L Web Service S R W P
Application as a WS General Application Port Interface with other We Services
User Face o Web Servic
WSRP Ports define
WS as a Portlet
WSRP i
Integration of Portlets
n
Portals
integrate
Portlets
into a complete user interface
nApache Jetspeed
seems good open source technology
supporting this model
Application o Content source WSD L Web Service S R W P
Application as a WS General Application Port Interface with other We Services
User Face o Web Servic
WSRP Ports define
WS as a Portlet
Portal
User Profil Aggregat
UI Fragments
Integrate Multiple Portlets User Customizatio
at either Portal or if complicated at WS
Clien Render
Online Knowledge Center built from Portlets
n
Web Services
provide a
component model
for the
middleware (see large “
common component
architecture
” effort in Dept. of Energy)
n
Should match each WSDL component with a
corresponding user interface component
n
Thus one “must use” a
component model for the portal
with again an XML specification (
portalML
) of portal
component
Jetspeed Computing Portal: Choose Portlets
4 available portlet
linking to Web Service I choose two
Collaboration: Shared Display
n Sharing can be done at any point on “object” or Web Service
pipeline
Objec
t Object’ Object’’
Object Displa y Object Viewer Object Displa y Object Displa y Even (Message Service
Shared Display shares framebuffer with event corresponding to change pixels in master client.
Master
Share Display
Shared Web Service Share
Event SharedExport
As long as pipeline uses messages, easy t make collaborativ
Windows framebuffers and in fact most applications do NOT expose a message based update interface
W Displa y W Viewe r WS Displa y WS Viewe r Even (Message Service Master W Displa y WS Viewe r
Collaboration as a W Set up Session with XGSP
We Servic e F I U O F I R O
Shared Input Port (Replicated WS) Collaboration
W Displa y W Viewe r WS Displa y WS Viewe r Even (Message Service Master W Displa y WS Viewe r Web Service Message
Interceptor
Collaboration as a W Set up Session with XGSP
Application o Content source WSD L Web Service F I U O F I R O
NaradaBrokering
n
Based on a network of cooperating broker nodes
• Cluster based architecture allows system to scale to arbitrary
size
n
Originally designed to provide
uniform software
multicast
to support real-time collaboration linked to
publish-subscribe for asynchronous systems.
n
Now has four major core functions
• Message transport (based on performance measurement) in
heterogeneous multi-link fashion
• General publish-subscribe including JMS & JXTA and
support for RTP-based audio/video conferencing
• Filtering for heterogeneous clients
Role of Event/Message Brokers
n We will use events and messages interchangeably
• An event is a time stamped message
n 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
n 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
Engineering Issues Addresse
by Event / Messaging Service
n Application level Quality of Service
– e.g. give audio highest priority
n Tunnel through firewalls & proxies
n Filter messages to slow (collaborative/real-time) clients
n Choose Hardware or Software multicast
n Scaling of software multicast
• Efficient calculation of destinations and routes.
n Integrate synchronous and asynchronous collaboration with
same messaging, control, archiving for all functions
n Supports local broker accesses
n Transparently replace single server JMS systems with a
distributed solution.
NaradaBrokering implements an Event Service
n Filter is mapping to PDA or slow communication channel
(universal access) – see our PDA adaptor
n Workflow implements message process
n Routing illustrated by JXTA and includes firewall
n Destination-Source matching illustrated by JMS using
Publish-Subscribe mechanism
n These use Security model (being designed) based on WS-Sec
Web
Service 1 (VirtualQueue Service 2Web
Destinatio
Source Matching Filter
Routin
g workflow
WSD
Ports Broker WSDPorts
Features of Event Service
n MPI nowadays aims at a microsecond latency
n 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
n Messages are not sent directly from P to S but rather from P to
Broker B and from Broker B (via other brokers) to subscriber S.
n Synchronous systems: B acts as a real-time router/filterer
• Messages can be archived and software multicast
n Asynchronous systems: B acts as a database & workflow engine n Subscription is in each case, roughly equivalent to a database
query
n Company X sets up a firewall
Narada Broker Network
Data base
Reso urce
Broker
Broker Broker Broker
Broker
Broker
Software multicast
(P2P) Community
(P2P) Community
For message/events service (P2P) Community
(P2P) Community
Hypercube topology for brokers?
Tree for distance education with teacher at root
Performance in Message-based Architecture I
n Useful analogies with transportation grids
and parallel computing
n In traveling from cities A to B (say 3 separate passengers), one
chooses between and changes transport mechanism at
waystations to optimize cost, time, comfort, scenic beauty …
n Waystations are now NB brokers where one chooses transport
protocol
• Able to choose between car, type of car, plane, train etc
• Able to dynamically create waystations to cope with problems
and acts as hubs for multicast messages
• Knows about traffic jams and can assign the “HOV lane”
Satellit UDP
Firewal HTTP
Dial-u Filter A
B1
Hand-Hel Protocol Fas
Link
Software Multicast B2
Performance in Message-based Architecture II
n
Application level QoS
– can optimize among managed
streams (audio versus video) using performance
subsystem
•
This is just a variant of the
NP complete load
balancing
problem of parallel computing where all
reasonable heuristics worked
•
Load-balance in Space-time (strings) not just Space
(particles)
n
“Performance” needs to measured carefully as
includes
QoS
•
I delayed shared application update to ensure audio
quality and filtered image to lower resolution
•
So “application” has changed to satisfy performance
constraints
NaradaBrokering Communication
n Applications interface to NaradaBrokering through UserChannels
which NB constructs as a set of links between NB Broker waystations
which may need to be dynamically instantiated
n UserChannels have publish/subscribe semantics with XML topics n Links implement a single conventional “data” protocol.
• Interface to add new transport protocols within the Framework
• Administrative channel negotiates the best available communication
protocol for each link
n Different links can have different underlying transport implementations • Implementations in the current release include support for
TCP,UDP, Multicast, SSL and RTP.
HTTP, HTTPS support will be available in Feb 2003 release.
• Supports communication through proxies such as iPlanet, Netscape
and Apache.
• Supports communication through firewalls such as Microsoft ISA,
Note on Optimization
n
Note in
parallel computing
, couldn’t do much dynamic
optimization as aiming at
microsecond latency
• Natural to use hardware routing
n
In
Grid
, time scales are different
• 100 millisecond quite normal network latency
• 30 millisecond typical packet time sensitivity (this is one audio
or video frame) but even here can buffer 10-100 frames on client (conferencing to streaming)
• 1 millisecond is time for a Java server to “think”
n
Jitter
in latency (transit time) due to routing, processing
(in NB) or packet loss recovery is important property
n
Grid needs and can tolerate significant dynamic
optimization
Sender/receiver/broker - (Pentium-3, 1 GHz, 256 MB RAM). 100 Mbps LAN. JDK-1.3, Red Hat Linux 7.3
Jitter J = J + (|D(i-1, i)| -J)/16
H.263 video file
Average bit-rate of 600Kbps. Frame-rate of 30 frames/sec
Narada/JMS and Collaboration
n Collaboration involves sharing resources and synchronous
collaboration involves coordinating a common view of a resource
between multiple clients
n Typically one client is “in charge” and others get initial and
updated resource from this “master”
n 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
n Update events include:
• text you type into text chat or Instant Messenger • URL defining shared browser
• Change in framebuffer for (most flexible) shared display
NaradaBrokering and JMS (Java Message Service)
Low Rate; Small
Messages (commercialJMS)
NaradaBrokering
and JXTA
Narada-JXTA provides JXTA guaranteed long
distance delivery
Request/Response
Narada Performance Web Service
n Performance measurements are
used by Links in
• Reconfiguring Connectivity between nodes
• Deciding underlying transport protocol
• Determining possible filtering
n Each node determines performance
of links of which it is endpoint
n Individual node web services are
aggregated as another Web Service
n Factors measured include
n Transit delays, bandwidth, Jitter, Receiving rates. n 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
Firewall Non-Firewall Proxy Firewall Proxy
Proxy Detection API
WinINET Detection Text Config SSL Tunnel Server Proxy UD P TC P
Control Channel (TCP)
Specifics tunnel destination, parameters.
[ SOAP port 80 ]
Config Specifics default tunnel destination, parameters. SSL Tunnel Client Proxy TC P UD P CTL S S L Li b A PI JSSE Impl. WinINE T Impl.
Required for MS Authentication support. Required for Proxy location detection Fake SSL Impl.
UD P TC P Win do ws ? Try SSL Over HTTPS Proxy Try HTTP Over HTTP Proxy Does HTTP S Proxy Exist Try SSL Over Does HTTP Proxy Exist Try HTTP Direct Connectio n Complete Doesn’t Work Doesn’t Work Doesn’t Work Doesn’t Work Doesn’t Work Doesn’t Works Works Works Works Works Works Stream Media Types Reliable Data Stream Start Start WinINET
Try SSL first then HTTP
Architecture of Message Layer
n Need to optimize not only routing of particular messages but
classic publish/subscribe problem of integrating different
requests with related topics (subscribe to sports/basketball/lakers
and sports)
n Related to Akamai, AOL … caching and Server optimization
problem
1-> N Grid Nodes
Hypercube o
NB Brokers (logical not physical)
N≈100 for Distance Education Scale to billions of grid nodes?
NaradaBrokering as an XML database
n
NB is inevitably a distributed XML database
supporting real-time update and access (JMS uses SQL
like syntax)
• Performance data
• Event Logging
• Published “properties” of publish/subscribe messages
n Publish as XML topic; subscribe using XQuery?
n
We use NB as a simple XML database for News groups
and other “XML nuggets” see
http://www.xmlnuggets.org
• XML Instance==Message; what is difference between a
message and a database record except performance but Moore’s law is rewriting rules here
n
Subscribe a real database (Oracle) to all topics for
Federation of Services
n If you have a service – Notification (as with Grid or JXTA
advertisements), Search, Scheduling, Audio-Video conferencing ….
n With a standard which client and server components
n Then can build a “server” that services all clients
n Alternatively can hierarchically consider collection of existing
Server-client domains
• IBM or Globus OGSA islands • Sun Grid Engine Schedulers
• Polycom/Access Grid A/V sessions • Enterprise Search Engine
n 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 N Hub
Filtering Service
n
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
n
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
n
Mapping in event service enables universal access
n
Note
clients’ subscription
to publish/subscribe service
Collaborative PDA
n Extendable to more general universal access
n 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
n 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
n Currently implemented as MyProfessor for Windows CE iPAQ
n Working on Palm OS Cell-PDA combination
n Have implemented shared display, SVG, Text chat, Instant
Messenger (using Jabber)
PDA Collaboration Event Filter
GMS JMS o
Narada Lightweigh
Narad Hand Hel Link
Protocol Pass Through
Collaborative SVG
Sharing Applications
n Very few applications are written as Web services
n Rather they integrate Rendering and Control
n These need to be separated for
• Easy Collaborative model
• Use on devices with limited rendering or for users requesting custom rendering
n Note important standards like W3C DOM do not separate
Master IE Word etc.
Trap User Events
Inject User Events
“NaradaBrokering”
Pre Web Servic Shared Even Collaboration
Rendering
non-Master
IE Word etc. 77
Architecture of Collaborative SVG
Application as a WebService
SVG
portlet Portlet Control
Portlet Controller Turbine Screen Event Service {NaradaBrokering …} HTTP Client {JMS, NB} Client HTTP Client HHMS Client Minimum
collaborative Minimumcollaborative
Communication Adaptor for
PDAs Rendering Engine
{JMS, NB} Client
Portlet A Portlet B
Collaborative SVG content server Session manager New/Updated Content HHMS HT TP request HT ML
content HTTP
request HT ML/W ML content SVG Documen t Setup Controlling Event Controlling Event Controlling Event New/Updated Content HHMS New/Updated Content
Jetspeed ChoseRenderin
Select Collaborative SVG Portlet : HTML
Select Collaborative SVG Portlet for Desktop environment
Collaborative content viewer for Users
Input URL of SVG document
Browse
Ready-to-use image from SVG content WS
Use Profile Application o Content source WSD L Web Service F I U O F I R O Render Porta (Aggregator ) Selecto r Filte r Control Channel Customized View Selectio View Control Channel Customized View
Customize
User-Facin
Ports
As used in Universal Access
(NaradaBrokering Event Service
Different Models for Rendering
n
Current Collaborative SVG leaves Batik SVG browser
largely unchanged but wrapped as a Web Service
n
User sees a simple (say JPEG) rendering
• Very convenient for annotations etc.
n
Alternatively take Batik source and split into two
• Control (Model and Control in MVC) and Render/Catch
User actions (View in MVC)
• Build messaging interface between Model/Control and View
and only wrap Model/Control section
Model Control
Native Render
(view)
Image View Web Service
Model Control
Native Render
(view) Web
Invertible User View Transformations
n DAT defines data/model of a Content Web Service
n CTL defines control of a Content Web Service
n DTX is a typical transformation e.g. XSLT action
n MCL is client interface – simplest is just an image with mouse
click positions recognized
n Universal Access or Collaboration requires that Control (CTL) be
properly supported by MCL – this requires that all
transformations must be “invertible” whether DOM “semantic” (Interpretable directly by CTL) or not (position of mouse click etc.)
Each of these is some sort of DOM FPC L DT X CT
L DTX
…..
DTX FPCLCT
L DTX
…..
DTX PPCL UserCT
L
…..
DTXDA
T MCL