Collaborative Web Services and
Peer-to-peer Grids
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
n 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? • Note few applications today have message-based I/O
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
Classic Grid Architecture
Database Database Netsolv e Computin g Securit y Collaboratio n Compositio n Content Access Resources Clients Users and Devices
Middle Tie Brokers Service Providers
Middle Tier becomes Web Services
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 publish/subscribe, 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 For collaboration, this implies one can:
• Unify Collaboration Control (H323,SIP ..) as a Web Service
• Provide single collaboration messaging environment
(Audio/Video, shared display, text chat …)
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
So what are we doing of interest to CTS?
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 to support collaboration. Grids and P2P
• 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 using JMS or Narada
for messaging (uses Anabas technology for shared applications)
n We have illustrated collaborative pervasive/universal access by
subscribing PDA’s and desktop’s to different filtered topics
n We have prototyped audio-video conferencing as a web service
n We are repackaging collaborative SVG as a Web service to
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 (Open Grid
Service Architecture)
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
n Learning Plan agents to guide students and teachers
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, maps, (medical) instruments ….
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
Web Service Architectur
for Audio Video Conferencing
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
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>
</SessionDes>
Linking Client
or Servers
Current Implementatio
Polycom (H323)
Access Grid
Admire (Chinese system Similar to AG
and HearMe SIP VOI
Client Integration
Server is Future Projec
Link Proprietary MCU’s
System Summary
n XGSP Specification stable
n Will add native XGSP clients
n H323 Gateway based on openh323
n JMF (Java Media Framework) used for Media Server but will
replace JMF by NaradaBrokering for transport
• Will describe use of NaradaBrokering for publish/subscribe Media Server
n Will add filtering at server to allow codec choice as different
topics in JMS/Narada
• Initially offer streaming (RealNetworks) or conferencing (H261, MPEG4)
n Add P2P (JXTA) interfaces
n Add other shared applications using same XGSP control and
Narada messaging
n Collaboration with Admire Group at Beihang University
n Aiming at 1000 students interacting with each other across
Internet2 using A/V and Shared Display Summer 2003 (NOT
broadcast Webcast)
H323 Client (Polycom) in XGSP Session
Comparison with
other approaches
17Web 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
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 Transparently replace single server JMS systems with a
distributed solution.
n Provides reliable inter-peer group messaging for JXTA
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 implemented) based on WS-Sec
Web
Service 1 (VirtualQueue Service 2Web
Destinatio
Source Matching Filter
Routin
g workflow
WSD
Ports Broker WSDPorts
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?
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,
Checkpoint.
Performance/Routing in Message-based Architecture
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 (individual or collective)
• 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
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
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.
Injected into Narada network as XML events Administrative Interface
Sender/receiver/broker - (Pentium-3, 1 GHz, 256 MB RAM). 100 Mbps LAN. JDK-1.3, Red Hat Linux 7.3
All measurements on commodity $1500 Linux PC
Jitter J = J + (|D(i-1, i)| -J)/16
Each Stream 64kbp 60 ms interval
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
Commercial
Collaboratio
Systems
Placewar e
WebEx
Centra Anabas
NaradaBrokering and JMS (Java Message Service)
Low Rate; Small
NaradaBrokering
and JXTA
Narada-JXTA provides JXTA guaranteed long
distance delivery
Request/Response
Present if targeted a Particular peer
Narada JXTA Event
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 Direct 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 Work Works Works Works Works Works Works Stream Media Types Reliable Data Stream Start Start WinINET
Try SSL first then HTTP
“Fake ” SSL Over
Direct Doesn’tWork
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)
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 XPath/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
reliable storage
Federation of Services
n If you have a Service – Notification (as with Grid or JXTA
advertisements), Search, Scheduling, Audio-Video conferencing ….
• With a standard for client and server components • 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 servers for each island 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
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
includes “
user profile
”
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 with JXTA and
MyProfessor Interface
n Have implemented shared display, SVG, Text chat, Instant
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 (MVC) 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. 59
Architecture of Collaborative SVG
Application as a Portlet/WebService
SVG
portlet Portlet Control
Portlet Controller Turbine Screen Event Service {NaradaBrokering …} HTTP Client {JMS, NB} Client HTTP Client HHMS Client Minimum collaborative environment Minimum collaborative environment 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
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