Collaboration and Web Services @ Community Grids Laboratory
Document Sample


Collaboration and Web Services
@ Community Grids Laboratory
Beijing October 27-31 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/16/2010 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/16/2010 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/16/2010 uri="http://www.naradabrokering.org" email="gcf@indiana.edu" 3
So what are we doing I?
We co-edited a book on Grid Computing to be published
February 2003
• http://www.grid2002.org
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/16/2010 uri="http://www.naradabrokering.org" email="gcf@indiana.edu" 4
So what are we doing II?
We have some “Architecture of Computing Portals” including concept of
Grid Shell
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
We are building Jetspeed portlets of various types – including
collaborative
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
We continue work on HPJava (parallel computing in Java)
6/16/2010 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/16/2010 Clients Users and Devices
uri="http://www.naradabrokering.org" email="gcf@indiana.edu" 6
Web Services in a Nutshell
WSDL
Ports: Messages to and from
Application or
other web services, resources
Content source
or users
Web Service
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)
Distributed Message Passing Model
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
6/16/2010 uri="http://www.naradabrokering.org" email="gcf@indiana.edu" 7
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/16/2010 uri="http://www.naradabrokering.org" email="gcf@indiana.edu" 8
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/16/2010 Peer to Peer Grid
uri="http://www.naradabrokering.org" email="gcf@indiana.edu" 9
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/16/2010 uri="http://www.naradabrokering.org" email="gcf@indiana.edu" 10
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/16/2010 uri="http://www.naradabrokering.org" email="gcf@indiana.edu" 11
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/16/2010 uri="http://www.naradabrokering.org" email="gcf@indiana.edu" 12
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/16/2010 uri="http://www.naradabrokering.org" email="gcf@indiana.edu" 13
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/16/2010 uri="http://www.naradabrokering.org" email="gcf@indiana.edu" 14
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/16/2010 uri="http://www.naradabrokering.org" email="gcf@indiana.edu" 15
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/16/2010 uri="http://www.naradabrokering.org" email="gcf@indiana.edu" 16
H323 Client (Polycom) in XGSP Session
6/16/2010 uri="http://www.naradabrokering.org" email="gcf@indiana.edu" 17
Comparison with
6/16/2010 other approaches
uri="http://www.naradabrokering.org" email="gcf@indiana.edu" 18
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/16/2010 uri="http://www.naradabrokering.org" email="gcf@indiana.edu" 19
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/Anabas) 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/16/2010 uri="http://www.naradabrokering.org" email="gcf@indiana.edu" 20
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/16/2010 uri="http://www.naradabrokering.org" email="gcf@indiana.edu" 21
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/16/2010 uri="http://www.naradabrokering.org" email="gcf@indiana.edu" 22
What is meant to Happen
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
One needs “automation”/”support tools” for process of generating
meta-data
• Such as prerequisites for courses; Author of web page etc.
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
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
6/16/2010 uri="http://www.naradabrokering.org" email="gcf@indiana.edu" 23
Current Status in a Nutshell
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
Blackboard, WebCT, Lotus offer learning management systems
• Not very consistent with modern architectures but can be used
effectively today
Access Grid (community e.g. classroom) and Polycom (etc.) are
excellent audio-video systems
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
• Improving network robustness including firewall tolerance 24
6/16/2010 uri="http://www.naradabrokering.org" email="gcf@indiana.edu"
Commercial
Collaboration
Systems
Centra Anabas
WebEx
6/16/2010 uri="http://www.naradabrokering.org" email="gcf@indiana.edu" Placeware
25
Learning Objects
Given changing technology, need standards to protect investment
in authoring and administrative data generated and stored in
databases
Education community has unusually good set of community
standards
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.
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
IEEE (Computing Community) set up P1484 Learning
Technology Standards Committee LTSC
6/16/2010 uri="http://www.naradabrokering.org" email="gcf@indiana.edu" 26
LMS Model used by ADL
Learning
“Learning Content External systems:
HR, E-Commerce, ERP... Server
Management Server(s) Course
System” Interchange:
LMS Course
Structure
Format (CSF),
Migration Metadata
Adapter
Services or Adapter
Learning Server Critical
Server Interchange
Adapter
Server Side
Capability
Client Side Runtime
Environment:
Client Browser Launch, API,
Data Model
API Antiquated
Adapter Application HTML+ Architecture
6/16/2010 uri="http://www.naradabrokering.org" email="gcf@indiana.edu" 27
Properties of Learning Objects
Metadata from IEEE and IMS
• Roughly Properties of educational objects thought of as “documents”
(author, title …)
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
Tests and Quizzes from IMS
Specialized CSF descriptors from SCORM (via CMI)
• Such as objectives, prerequisites, completion requirements
LMS Runtime API from SCORM – I am doubtful about value
Enterprise Properties from IMS
• Link to people and organization databases (training, human
resource, library, student administration)
Learner Information Package from IMS
• Name/Address, Goals, Skills, Grades etc.
“Competencies” from IMS
“Accessibility” (universal access guidelines) from IMS
6/16/2010 uri="http://www.naradabrokering.org" email="gcf@indiana.edu" 28
Learning Management Systems
Most education and training stresses asynchronous or web
support for conventional delivery
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
Popular with colleges as supports not so expert faculty
DoD use less clear as need for homework and other tools less
critical than for University classes
No built in support for areas like “programming labs” (VPL
from NPAC did this)
6/16/2010 uri="http://www.naradabrokering.org" email="gcf@indiana.edu" 29
Hierarchical Delivery Model
One could teach to 1000 different students – each at a
separate workstation but …
No real opportunity for questions so better to use
broadcast technology – not conferencing
Further could better deliver to 40 classrooms – each
with an average of 25 students
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
So synchronous systems must support simultaneously
disparate clients – high end display to PC to PDA
6/16/2010 uri="http://www.naradabrokering.org" email="gcf@indiana.edu" 30
Authoring of Curriculum
Possible Market pressures push to high end authoring
Authoring approaches for the Web can include
• Basic HTML
• Macromedia/Adobe/etc. packages like Fireworks,
Dreamweaver, Illustrator
• PowerPoint and Word exported
Also can include RealNetworks or Microsoft or .. format
Multimedia
• Note Streaming multimedia formats have larger buffers than
A/V conferencing formats
Certainly use XML to specify content and render this into
attractive portal
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”
6/16/2010 uri="http://www.naradabrokering.org" email="gcf@indiana.edu" 31
Web Services as a Portlet
Each Web Service naturally has Application as a WS
a user interface specified as “just General Application Ports
another port” Interface with other Web
Services
• Customizable for universal access
WSDL
This gives each Web Service a W
Application or S
Portlet view specified (in XML Content source R
as always) by WSRP (Web P
Web Service
services for Remote Portals)
So component model for User Face of
resources “automatically” gives Web Service
WSRP Ports define
a component model for user WS as a Portlet
interfaces
WSRP is
• When you build your Web Services for Remote Portals
application, you define portlet 1st Meeting OASIS March 18 2002
at same time
6/16/2010 uri="http://www.naradabrokering.org" email="gcf@indiana.edu" 32
Integration of Portlets
Portals integrate Portlets into a complete user interface
Apache Jetspeed seems good open source technology
supporting this model
Application as a WS
General Application Ports
Interface with other Web
Services
WSDL Client
W Portal
Application or S Render
User Profile
Content source R Aggregate
P UI Fragments
Web Service
Integrate Multiple Portlets
User Face of
User Customization
Web Service
at either Portal or if
WSRP Ports define
complicated at WS
6/16/2010 Portlet
WS as a uri="http://www.naradabrokering.org" email="gcf@indiana.edu" 33
Online Knowledge Center built from Portlets
A set of UI
Web Services provide a component model Components
for the
middleware (see large “common component
architecture” effort in Dept. of Energy)
Should match each WSDL component with a
corresponding user interface component
Thus one “must use” a component model for the portal
with again an XML specification (portalML) of portal
component
6/16/2010 uri="http://www.naradabrokering.org" email="gcf@indiana.edu" 34
Jetspeed Computing Portal: Choose Portlets
4 available portlets
linking to Web Services
I choose two
6/16/2010 uri="http://www.naradabrokering.org" email="gcf@indiana.edu" 35
Choose Portlet Layout
Choose 1-column Layout
Original 2-column Layout
6/16/2010 uri="http://www.naradabrokering.org" email="gcf@indiana.edu" 36
Two Computing
Portlets
6/16/2010 uri="http://www.naradabrokering.org" email="gcf@indiana.edu" 37
HTML
Turbine Servlet
JSP template
ECS Root to HTML
PSML Screen Manager
ECS
PortletController PortletController
ECS ECS ECS
PortletControl
ECS ECS ECS ECS ECS
Portlets Portlet Portlet Portlet Portlet Portlet
XML HTML JSP or VM WebPage Portlets
Data Local files Local templates Remote HTML User implemented
RSS, OCS, or other
using Portal API
Local or remote
6/16/2010 uri="http://www.naradabrokering.org" email="gcf@indiana.edu" 38
XML Nugget Technology
One can expect lots of small bundles of XML data such as
• XML representation of each entry in a digital library
• Metadata for course pages or homework or …
• XML defining Web Services
• XML defining news items
One needs technology to handle this
• RSS defines News Items
• We developed XML News groups
We designed a Schema wizard that automatically generates an
input page to allow one to specify Schema instances
We developed a “nugget browser” with a news group like
view of repositories of multiple instances of a particular
Schema
Integrate with XML database plus “Google” (to search links
from XML)
6/16/2010 uri="http://www.naradabrokering.org" email="gcf@indiana.edu" 39
Schema wizard generates JSP that
delivers the form
That enables one to create instance of
Schema
6/16/2010 uri="http://www.naradabrokering.org" email="gcf@indiana.edu" 40
Schema Wizard Architecture
Velocity
Velocity
Templates
Templates
Velocity
Templates
Castor SOM
Velocity
Schema Object Model
Velocity
Templates
JSP
Templates
Schema and
Processor HTML
forms
XML
Schema
Castor Javabeans
SourceGenerator Javabeans
Javabeans
6/16/2010 uri="http://www.naradabrokering.org" email="gcf@indiana.edu" 41
6/16/2010 uri="http://www.naradabrokering.org" email="gcf@indiana.edu" 42
6/16/2010 uri="http://www.naradabrokering.org" email="gcf@indiana.edu" 43
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/16/2010 uri="http://www.naradabrokering.org" email="gcf@indiana.edu" 44
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/16/2010 uri="http://www.naradabrokering.org" email="gcf@indiana.edu" 45
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/16/2010 uri="http://www.naradabrokering.org" email="gcf@indiana.edu" 46
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/16/2010 uri="http://www.naradabrokering.org" email="gcf@indiana.edu" 47
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/16/2010 uri="http://www.naradabrokering.org" email="gcf@indiana.edu" 48
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/16/2010 uri="http://www.naradabrokering.org" email="gcf@indiana.edu" 49
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/16/2010 uri="http://www.naradabrokering.org" email="gcf@indiana.edu" 50
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/16/2010 uri="http://www.naradabrokering.org" email="gcf@indiana.edu" 51
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/16/2010 uri="http://www.naradabrokering.org" email="gcf@indiana.edu" 52
Single Server P2P Illusion
Traditional Collaboration Architecture
Data e.g. commercial WebEx
base
Collaboration Server
6/16/2010 uri="http://www.naradabrokering.org" email="gcf@indiana.edu" 53
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/16/2010 uri="http://www.naradabrokering.org" email="gcf@indiana.edu" 54
NaradaBrokering and JMS (Java Message Service)
Low Rate; Small Messages (commercial JMS)
6/16/2010 uri="http://www.naradabrokering.org" email="gcf@indiana.edu" 55
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/16/2010 uri="http://www.naradabrokering.org" email="gcf@indiana.edu" 56
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/16/2010
(Bytes)
uri="http://www.naradabrokering.org" email="gcf@indiana.edu" 57
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/16/2010
(Bytes)
uri="http://www.naradabrokering.org" email="gcf@indiana.edu" 58
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/16/2010
(Bytes)
uri="http://www.naradabrokering.org" email="gcf@indiana.edu" 59
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/16/2010 uri="http://www.naradabrokering.org" email="gcf@indiana.edu" 60
User “XML
Database”
6/16/2010 uri="http://www.naradabrokering.org" email="gcf@indiana.edu" 61
Network Protocol Architecture
Application e.g. Audio
(user level) Specified as
Low Bandwith
QoS, Priority Low Latency
Specification High Reliability
NaradaBrokering
Performance Chosen e.g. QoS Request
Information Implementation Satisfied as UDP on
Traditional Long haul with
Transport Optimized TCP/IP
Protocols through firewall
Physical
Level Process priority within application
So Audio would be set to high
Priority so no interference with
Video and shared application in
for example collaboration session
6/16/2010 uri="http://www.naradabrokering.org" email="gcf@indiana.edu" 62
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/16/2010 uri="http://www.naradabrokering.org" email="gcf@indiana.edu" 63
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/16/2010 uri="http://www.naradabrokering.org" email="gcf@indiana.edu" 64
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/16/2010 uri="http://www.naradabrokering.org" email="gcf@indiana.edu" 65
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/16/2010 uri="http://www.naradabrokering.org" email="gcf@indiana.edu" 66
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/16/2010 uri="http://www.naradabrokering.org" email="gcf@indiana.edu" 67
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/16/2010 uri="http://www.naradabrokering.org" email="gcf@indiana.edu" 68
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/16/2010 uri="http://www.naradabrokering.org" email="gcf@indiana.edu" 69
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/16/2010 uri="http://www.naradabrokering.org" email="gcf@indiana.edu" 70
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/16/2010 uri="http://www.naradabrokering.org" email="gcf@indiana.edu" 71
Collaborative SVG
6/16/2010 uri="http://www.naradabrokering.org" email="gcf@indiana.edu" 72
MyProfessor
on the PDA
6/16/2010 uri="http://www.naradabrokering.org" email="gcf@indiana.edu" 73
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
Rendering
Master non-Master
6/16/2010 IE Word etc. IE Word etc.
uri="http://www.naradabrokering.org" email="gcf@indiana.edu" 74
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/16/2010 uri="http://www.naradabrokering.org" email="gcf@indiana.edu"
PDA user 75
Desktop user
Select Collaborative SVG Portlet : HTML
Select Collaborative SVG Portlet
for Desktop environment
6/16/2010 uri="http://www.naradabrokering.org" email="gcf@indiana.edu" 76
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/16/2010 uri="http://www.naradabrokering.org" email="gcf@indiana.edu" 77
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/16/2010 uri="http://www.naradabrokering.org" email="gcf@indiana.edu" 78
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 (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
Native Native
Model Image Model
Render Render
Control View Control
(view) (view)
Web Service Web
Service
Convert View
6/16/2010 uri="http://www.naradabrokering.org" email="gcf@indiana.edu" 79
Invertible User View Transformations
Minimal
Control Transform Transform Client
DAT CTL DTX ….. DTX FPCL
PPCL DTX MCL
User
Portlet
Defining data
And model Each of these is some sort of DOM
Content Web
Service
DAT defines data/model of a Content Web Service
CTL defines control of a Content Web Service
DTX is a typical transformation e.g. XSLT action
MCL is client interface – simplest is just an image with mouse
click positions recognized
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.)
6/16/2010 uri="http://www.naradabrokering.org" email="gcf@indiana.edu" 80
Related docs
Get documents about "