Solving Some of the Problems i
Collaboration
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
Abstract
n We address the challenges of building reliable collaboration environments and the opportunities to address this using modern Internet and Grid
technologies. We examine two key building blocks;
• namely a common dynamic messaging environment and
• systematic use of Web Services including one to support session
specification and control.
n We present our prototype audio-video conferencing Web Service and
messaging environment NaradaBrokering. We describe a core collaboration Web Service defined with an XML protocol XGSP subsuming the capabilities of H323, SIP and JXTA.
n At this stage we have demonstrated various component ideas and are working on integrating them. We will discuss and hopefully demonstrate
n a) Integration of Access Grid, desktop video and Polycom systems n b) Integration of SIP into XGSP with VOIP and Microsoft Messenger n c) Better software multicast support for Access Grid
n d) Use of publish subscribe media servers supporting codec conversion and firewall tunneling.
n e) Demonstration of codec conversion with integration of conferencing (H261) and streaming (RealVideo) clients
Grid Computing: Making The Global
Infrastructure a Reality
n Fran Berman,
Anthony J.G. Hey, Geoffrey Fox
n ISBN: 0-470-85319-0
n Hardcover 1080 Pages
n Publication March 2003
n http://www.grid2002.org
n Chapters 18 22 and 43
Some Basic Observations/Goals
n
Web Services
interact with
messages
• Everything (including applications like PowerPoint) will be a
Web Service?
• 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 for performance (QoS) and
multicast
n
XML
will be used for most interesting
data and
meta-data
n
Currently
Grids
are “just”
Web Service
approach to
Classic Grid Architecture
Database Database Netsolv e Computin g Securit y Collaboratio n Compositio n Content Access ResourcesClient Users and Devices
Middle Tie Brokers Service Providers
Middle Tier becomes Web Services
Message Passing on the Grid
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
Problems from Tango and all Others
n Clients were unreliable – addressed by better windows and
moving collaboration from Browser to an application
n Networks were unreliable and firewalls are a problem
• Not a lot of progress with QoS at network level
• Some QoS problems are due to different collaboration
streams interfering
• Use application level QoS with highly robust managed
messaging
n Very hard to customize each application in “shared state event
model”
• Offer shared display
• Convert Applications to Web Services
n Many different standards H323, SIP, Access Grid, T120 …
• Unify as single XML standard
n Inconvenient to customize user interfaces
Portals and Web Services
n
Web Services
allow us to build a
component model
(see
CCA) for resources.
n
Each resource
naturally has a
user interface
(which
might be customized for user)
n
Web Service <--> Portlet
n
Natural to use a component model for portal building
displayed web page from collection of portlets
• So can customize each portlet and customize which portlets
you want
n
Apache Jetspeed
seems good open source technology
supporting this model
WSRP Structure of a Portlet
n Each Web Service naturally has a user interface specified as “just another port”
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 portlet at same time
Application o Content source WSD L Web Service S R W P
Application as a WS
General Application Ports Interface with other Web Services
User Face o Web Servic
WSRP Ports define
Portal User Profil Aggregat UI Fragments Clien t WSRP i
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 generalapproach for making Web services collaborative
n
a)
is a “Service” which is set up in many different
XGSP MCU Architecture
SIP H323 AccessGrid NativeXGSP Admire
Gateways convert to uniform XGSP Messaging
High Performance (RTP and XML/SOAP and ..
Media Servers
Filters Session Server
XGSP-based Control
NaradaBrokerin g
All Messaging
Use Multiple Media servers to scale to many codecs and many versions of audio/video mixing
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>
Shared Event Collaboration
n
“True shared events” shares the events (like URL or
PowerPoint file name/slide # ) that specify state of an
application
n
However all collaboration is about sharing some sort of
event
• Audio/Video conferencing shares events specifying in
compressed form audio or video
• Shared display shares events corresponding to change in
pixels of a framebuffer
• Instant Messengers share updates to text message streams
n
Using Web services makes universal as exposes updates
of all kinds as messages
Application as a Web service Application Mode
Remaining W3C DOM Semantic Events
Data
Control
Application with W3C DOM Structure as a Web Service User Facin Ports Resource Facing Ports Events as Message s Rendering as Messages
W3C DOM User Interface W3C DOM Raw(UI) Events
Application as a Web service
Master Client
Event
s Rendering
User Interface W3C DOM Events To Collaborativ
Clients From
Collaboration As a WS
Application as a Web service
Participating Client
Event
s Rendering
User Interface W3C DOM Events From Master
From
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
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
H323 Client (Polycom) in XGSP Session
Software in the XGSP MCU
n
Core Components are Open source
• openh323 is basis of H323 Gateway
• NIST SIP stack is basis of SIP Gateway
• NaradaBrokering is open source messaging from Indiana
• Java Media Framework basis of Media Servers
n
Can have proprietary modules such as
• Anabas Shared Display
• Instant Messengers
• DIVX MPEG4
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
nWe 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
and
Palm OS Cell-PDA
combination
n
Have implemented
shared display, SVG, Text chat,
Real-time Community Collaboration
n Desktop PC, local wireless (802.11b) and the rest of the world (Sprint PCSVision as glimpse of next generation cell phones)
n Reconcile different protocols, different display areas, different O/S and different network bandwidths
Real-time Community Collaboration
Use Profile Application o Content source WSD L Web Service F I U O F I R O Render Jetspee d Portal Selecto r Filte r Control Channel Customized View Selectio View Control Channel Customized View
Customize
User-Facin
Ports
Universal Access With Jetspee Web ServicesMVC Model for applications Asynchronous Messaging
Status of XGSP Collaboration
n We have demonstrated most key ideas but won’t have real
“alpha” integrated system until June
n Need to add RealAudio
n Need to improve audio handling (silence suppression) in media
server
n Add other collaborative tools – many prototypes (shared display,
shared PowerPoint, Games)
n Could link at server (MCU) not client
n Include Beihang tools like MPEG4
n Production version of PDA interface
n Messaging (NaradaBroker) available today – full functionality
by August
n Aiming at 1000 students interacting with each other across
Internet2 using A/V and Shared Display Summer 2003 (NOT
NaradaBrokering Publish/Subscribe Distributed Event/Message System
http://www.naradabrokering.org
“MQSeries/JMS” P/S applied to Collaboration, Grid, P2P(JXTA)
Supports UDP, TCP/IP, Firewalls (actual transport user call)
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 five 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
• Distributed XML data-base using P/S XPATH metaphor • Filtering for heterogeneous clients
• Federation of multiple instances of Grid services as illustrated
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?
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 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
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
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.
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 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
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
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 Status
n
Basic System available for download – has been used as
engine of several Audio/Video (largely USB video
cameras) and Anabas sessions with upto 30
participants – JMS compatibility tested
n
Next few months devoted to testing and improving
administrative support of deployment
n
Multiple distributed broker
n
Performance monitoring integrated
n
Firewall WS Security integration
n
JXTA Peer-to-peer integration
n
Full integration of Java NIO with thread pool
June