Pervasive Grid and Web Services
Advanced Research Workshop o
High Performance Computing
Cetraro June 1 2004
Geoffrey Fox
Community Grids Lab
Indiana University
Grids of Grids of Simple Services
• Link via methods messages streams
• Services and Grids are linked by messages
• Internally to service, functionalities are linked by methods
• A simple service is the smallest Grid
• We are familiar with method-linked hierarch
Lines of Code Methods Objects Programs Packages
Overlay and Compose
Grids of Grids Methods Services Functional Grids
CPUs Clusters Compute Resource Grids MPPs
Databases DatabasesFederated
Sensor Sensor Nets
Data
Education Grid
Inservice Teachers Preservice Teachers School of Education
Teacher Educator Grids Informal Education (Museum) Grid Student/Parent … Community Grid Science Grids
Typical Science Gri Service such as Research
Database or simulation Transformed by Grid Filte to form suitable for education
Learning Management
or LMS Grid
Publisher Grid Campus o Enterprise Administrative Grid
Education as a Grid of Grids
Digital Library
Grid
Database Database Analysis and Visualizatio Portal Repositorie Federated Databases Data Filte Services
Field Trip Data
Streaming Data Sensor s
?
Discovery Services SERVOGrid Researc Simulation s Research Education Customization Services From Researc to Education Educatio Grid Computer FarmGeoscience Research and Education Grids
GI Grid
Sensor Grid Database Grid
Critical Infrastructure (CI) Grids built as Grids of Grids
Gas Service and Filters
Physical Network Registr
y Metadata
Flood Service and Filters
Flood CIGrid
…
Electricity Gas CIGrid CIGrid…
Data
Access/Storage Securit
y Notification Workflow Messaging Portal
s VisualizationGrid Collaboration
Grid
Sensor Grid Compute
Grid GIS Grid
What is a Simple Service?
• Take any system – it has multiple functionalities
– We can implement each functionality as an independent distributed service
– Or we can bundle multiple functionalities in a single service • Whether functionality is an independent service or one of many
method calls into a “glob of software”, we can always make them as Web services by converting interface to WSDL
• Simple services are gotten by taking functionalities and making as small as possible subject to “rule of millisecond”
– Distributed services incur messaging overhead of one (local) to
100’s (far apart) of milliseconds to use message rather than method call
– Use scripting or compiled integration of functionalities ONLY when require <1 millisecond interaction latency
• Apache web site has many projects that are multiple functionalities presented as (Java) globs and NOT (Java) Simple Services
Minicompute r Firewall Compute r Serve r PDA Mode m Laptop computer Workstatio n Peer s Peer s Audio/Video Conferencing Client Audio/Video Conferencing Client NaradaBrokering Broker Network
NaradaBrokering
QueuesWeb Service B
Stream
P2P Messaging
Server-enhance Messaging
NB supports messages and streams
NB role for Grid is Similar to
Prototype implementation of WS-Notification Web Service Notifications
Prototype implementation of WS-ReliableMessaging Web Service reliability
NaradaBrokering enhanced Grid-FTP. Bridge to the Globus TK3. Grid Application Support
Java Message Service (JMS) 1.0.2b compliant Support for routing P2P JXTA interactions. Messaging Related
Compliance
Compression and Decompression of payloads Fragmentation a nd Coalescing of payloads Message Payload options
Message-level WS-Security compatible security Security
Recovery from failures and disconnects. Replay of events/messages at any time. Recovery and Replay
Producer Order and Total Order over a message type
Time Ordered delivery using Grid-wide NTP based absolute time Ordered delivery
Robust and exactly-once delivery of messages in presence of failures
Reliable delivery
Subscription can be Strings, Integers, XPath queries, Regular Expressions, SQL and tag=value pairs.
Subscription Formats
Transport protocols supported include TCP, Parallel TCP streams, UDP, Multicast, SSL, HTTP and HTTPS.
Communications through authenticating proxies/firewalls & NATs. Network QoS based Routing
Multiple transport support In publish-subscribe
Paradigm with different Protocols on each link
NaradaBrokering Service Integration
S1 P1 P2 S2
S1 S2
S1 S2
Proxy Messaging
Handler Messaging
Notification
S? Service P? Proxy
NB Transport
Internal to Service: SOAP Handlers/Extensions/Plug-ins Java (JAX-RPC) .NET Indigo and special cases: PDA's gSOAP, Axis C++
Standard SOAP Transport
NaradaBrokering and JMS (Java Message Service)
Low Rate; Small
Pentium-3, 1GHz, 256 MB RAM
100 Mbps LAN
JRE 1.3 Linux
hop-3 0 1 2 3 4 5 6 7 8 9 100 1000 Transit Delay (Milliseconds)
Message Payload Size (Bytes)
Mean transit delay for message samples in NaradaBrokering: Different communication hops
hop-2
Streams and Workflow
nNaradaBrokering can
manage streams
from
• Audio/Video conferences
• Sensors
• Inter-service communication in workflow
n
http
://www.hpsearch.org/demo/ des
cribes scripting
managemen
interface to
NaradaBrokering
Could be a standalone workflow engine but better used to interface with GUI’s such as
Future/Ongoing NB Enhancements
n Server/Broker-free version to support “immediate deployment” of NB-based Community Grids
• Support local file systems as “stable consistent cross client”
storage
• Support local implementations of Grid services
n Rich handler and proxy support for WS-ReliableMessaging and WS-Reliability with federation between standards
n Federated support of WS-Eventing, WS-Notification and JMS n Other Mediation/Federation to heterogeneous Grids
n Replicated Subscriber (Fault-tolerance/Performance) Services
• NaradaBrokering will choose between several subscribing replicated services
n VPG Virtual Private Grid: Build standard VPN transport
(PPTP, L2TP, IPSec) into NB
• Could offer new Grid Security options and/or more choice on
P2P and NaradaBrokering
n JXTA is a well known P2P framework from Sun with a similar
transport model to NaradaBrokering
n We have integrated NB into JXTA to link peer groups
n Server/Broker free version will support P2P versions of Grid
applications
• Day 1: Use a server (broker) free version of NB
• If successful, add brokers in the Grid sky to achieve better performance (if broker has better network link than clients)
• Service providers could sell such Grid Farm services
n Add DHT (Distributed Hash Table) approach (used in latest
JXTA) to matching topics and subscriptions in NB
n GridTorrent: Merge NB-enhanced GridFTP and P2P BitTorrent
Collaboration and Web Services
nCollaboration
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
Shared Event Collaboration
n All collaboration is about sharing events defining state changes • Audio/Video conferencing shares events specifying in
compressed form audio or video
• Shared display shares events corresponding to change in
pixels of a frame buffer
• Instant Messengers share updates to text message streams • Microsoft events for shared PowerPoint (file replicated
between clients) as in Access Grid
n Finite State Change NOT Finite State Machine architecture n Using Web services allows one to expose update events of all
kinds as message streams
n Need publish/subscribe approach to share messages (NB) plus n System to control “session” – who is collaborating and rules
• XGSP is XML protocol for controlling collaboration building
Web Services and M-MVC
n Web Services are naturally
M-MVC – Message based Model View Controller with
• Model is Web Service • Controller is Portal and
Messages (NaradaBrokering) • View is rendering
Desktop and Web Services with MMVC
n
Most desktop applications are in fact roughly
MVC
with
controller
formed by “system interrupts” with
View
and
Model
communicating by “post an event”
and define a “listener” programming mode
n
We propose to
integrate desktop and Web Service
approach by systematic use of MMVC and
NaradaBrokering
n
Allows easier porting to
diverse clients
and automatic
collaboration
n
Attractive for next generation of
Linux desktop clients
nWe have demonstrated for
SVG
Browser (Scalable
Vector Graphics),
OpenOffice
and
PowerPoint
SM-MV Collaboration
Shared Output por
Single Model, Multiple
View SM-MV Collaborativ
Web Service
MM-MV Collaboration
Shared Input por
Global-MMCS Community Grid
n We are building an open source protocol independent Web
Service “MCU” which will scale to an arbitrary number of users and provide integrated thousands of simultaneous users
collaboration services.
n The function of A/V media server is distributed using
NaradaBrokering architecture.
• Media Servers mix and convert A/V streams
n Open XGSP MCU based on the following open source projects • openh323 is basis of H323 Gateway
• NIST SIP stack is basis of SIP Gateway
• NaradaBrokering is open source messaging
• Java Media Framework basis of Media Servers
• Helix Community http://www.helixcommunity.org for Real
Media
n http://www.globalmmcs.org open source “non advertised”
XGSP Web Service 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
NB Scales a distributed
We Services
Break up into Web Services
n Monolithic MCU becomes many different “Simple Services”
• Session Control
• Thumbnail “image” grabber • Audio Mixer
• Video Mixer
• Codec Conversion • Helix Real Streaming • PDA Conversion
• H323/SIP Gateways
n As independent can replicate particular services as needed • Codec conversion might require 20 services for 20 streams
spread over 5 machines
n 1000 simultaneous users could require:
• 1 session controller, 1 audio mixer, 10 video mixers, 20 codec
converters, 2 PDA converters and 20 NaradaBrokers
n Support with a stream optimized Grid Farm in the sky
GlobalMMCS and NaradaBrokering
n All communication – both control and “binary” codecs are
handled by NaradaBrokering
n Control uses SOAP and codecs use RTP transport n Each stream is regarded as a “topic” for NB
n Each RTP packet from this stream is regarded as an “event” for
this topic
n Can use replay and persistency support in NB to support
archiving and late clients
n Can build customized stream management to administer replay,
and who gets what stream in what codec
n NaradaBrokering supports unicast and multicast
n Use firewall penetration and network monitoring services in NB
0 1 0 2 0 3 0 4 0 5 0 6 0
0 20
0 400 600 800 1000 1200 1400 1600 1800 2000 Delay (Milliseconds)
Packet Number
Average delays per packet for 50
video-clientsNaradaBrokering Avg=2.23 ms, JMF Avg=3.08
ms
NaradaBrokering-RTP
0 1 2 3 4 5 6 7 8
0 20
0 400 600 800 1000 1200 1400 1600 1800 2000
Jit
ter
(Milliseconds)
Packet Number
Average jitter (std. dev) for 50 video clients.
NaradaBrokering Avg=0.95 ms, JMF Avg=1.10
ms
NaradaBrokering-RTP
Polycom, Access Grid
and RealVideo views of
Integration of PDA, Cell phone and Desktop Grid Access
GlobalMMCS Futures
n Current “release” has very rudimentary session management • Should support adding members and applications to a
collaborative session
• Administration and master/non-master roles
n Collaborative PowerPoint, OpenOffice, SVG release waiting
XGSP session manager
n Most interesting clients are Java applets supporting portlet
model for modern portals
n Linux and Macintosh clients require higher performance JMF –
Java Media Framework
n Need to support use of NB QoS features
n Add additional codecs like MPEG2 and MPEG4 n Improve video codec-based shared display
n Need scheduler of dynamic services sensitive to streaming
Points to Remember I
•
MPI (successful parallel computing) and Web Services
teach us that programming is
Message-based not Method
based …
– i.e. use distributed not shared memory
•
M-MVC: Message
Based
Model View Control
paradigm
for
desktop applications
and
Web Services
•
Paradigm for new generation of
Linux
, PDA, Macintosh
clients
better than Windows!
•
M-MVC Collaboration is either
– MM-MV: Shared Input Port Web Services (Multiple Model Multiple View) cf. MIMD
Points to Remember II
•
2 Principles for
Software Engineering for Grids
– Build Grids of Grids of Simple Services
– Rule of the Millisecond – Build as a service if can tolerate inter-functionality latency of a few milliseconds
•
Need to handle streams (ordered collections of messages)
as well as messages
•
Grids are high performance
P2P Networks
•
NaradaBrokering
supports messaging needed between
services
– http://www.naradabrokering.org is pretty solid open source
•
GlobalMMCS
is an improving scalable Web Service based
collaboration environment to build
community Grids
– A/V Conferencing, Shared desktop, shared OpenOffice, PowerPoint ….