Peer-to-peer Grids and
Collaborative Environments
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
Some Basic Observations/Goals
n Technology Support for e-learning
n Need Synchronous and Asynchronous Resource Sharing
• Can provide universal access using synchronous 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
• One will store/consider data and meta-data separately but often use same
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
So what are we doing I?
n We need to be IBM to do all of this and I can only do a few
scattered projects based on this model
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
So what are we doing II
but won’t mention again
n We are building a toolkit to allow any application to be made a
Web service (this only manipulates metadata)
• Aimed at support of classic Grid applications running on a backend
supercomputer
• A Computing Portal
n We are building Jetspeed portlets of various types – including
collaborative
n We have some XML news group technology which uses news
group interface to support management and browsing of
multiple XML information nuggets (instances) of general
Schema
• Wizard generates interfaces to define nuggets
• JSP wizard layout and browsing specification defined by annotating
Classic Grid Architecture
Database Database
Netsolv e
Computin g
Securit y Collaboratio
n
Compositio n
Content Access
Resources
Client Users and Devices
Middle Tie Brokers Service Providers
Different Web Service Organizations
n
Everything is a
resource 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
…..
nGrids
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
• Consistent with “rule”: build everything as a Web service
n
Narada is an example of
Event
or
Message Service
Peer to Peer Grid
Database Database
Peers Peers
User Facin
Web Service Interfaces
Service Facin
Web Service Interfaces
Event Messag Brokers
Event Messag Brokers
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
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
Engineering Issues Addresse
by Event / Messaging Service
n
Application level
Quality of Service
– give audio highest
priority
n
Tunnel through
firewalls
n
Filter messages
to slow (collaborative or real time)
clients
n
Hardware multicast
is erratically implemented (Event
service can dynamically use software multicast)
n
Scaling
of
software multicast
n
Elegant implementation of
Collaboration
in a Groove
Networks (done better) style
Features of Event Service I
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 to subscriber S
• Actually a network of brokers
n Synchronous systems: B acts as a real-time router/filterer
• Messages can be archived and software multicast
n Asynchronous systems: B acts as an XML database and
workflow engine
n Subscription is in each case, roughly equivalent to a (XML)
Features of Event Service II
n 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
n 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)
n There is a collection of XML Schema – call it GXOS – specifying
Features of Event Service III
nThe event service is naturally implemented as a
dynamic distributed network
• Required for fault tolerance and performance
• Implies a corresponding dynamic distributed XML database
n
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
n
Company X sets up a
firewall
• The event service sets up brokers either side of firewall to
optimize transport through the firewall
n
Note
all message based applications
use
same message
service
• Web services imply ALL applications are (possibly virtual)
Single Server P2P Illusion
Collaboration Server
Data base
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
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
NaradaBrokering Communication
n Applications interface to NaradaBrokering through UserChannels.
n UserChannels are implemented as TransportChannels which are made up
of Links
n UserChannels have publish/subscribe semantics
n 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
n Link implementations can incorporate their own handshaking protocols
for setting up of the communication channel.
n 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.
n NaradaBrokering brokers and Links can be instantiated dynamically
Use
Narada Performance Web Service
n Performance measurements are
used by Links in
• Reconfiguring Connectivity between nodes
• Deciding underlying transport protocol
• Determining possible filtering
n TransportChannel uses
“performance heuristic” to define links and their protocols
n Factors measured include
• Transit delays, bandwidth, Jitter, Receiving rates. • Performance measurements are
n Spaced out at increasing intervals for healthy channels.
n Factors selectively measured for unhealthy channels.
• No repeated measurements of bandwidth
for example.
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.
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
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
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
Commercial
Collaboratio
Systems
WebEx
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
PDA Collaboration Event Filter
GMS JMS o
Narada Lightweigh
Narad Hand Hel Link
Protocol Pass Through
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
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
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 Integration
Future Projec
Link Proprietary MCU’s
Current Status
n
XGSP Specification stable
n
Demo prototype of Polycom (H323), Access Grid,
Shared Display 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)
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
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,
W Displa y W Viewe r WS Displa y WS Viewe r Even (Message Service Master W Displa WS Viewe
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
Shared Output Port
Collaboration
Othe
Content Provider
WSD L
Web Service
F I U
O F
I R
O
Portal
Aggregat WS-User Facing
Fragments
Render Other W
User Facin Ports
Other WS Resource o
Service-facin
Ports User-facinPorts
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
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
Control
Trap User Events
Inject User Events
“NaradaBrokering” Pre Web Servic
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 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
Select Collaborative SVG Portlet : HTML
Collaborative content viewer for Users
Input URL of SVG document
Browse
Ready-to-use image from SVG content WS
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 and Render/Catch User actions
• Build messaging interface between them and only wrap
control
Each of these is some sort of
FPC L DT
X CT
L DTX
…..
DTX FPCLCT
L DTX
…..
DTX PPCL UserCT
L
…..
DTXDA
T MCL