SlideShare a Scribd company logo
NaradaBrokering Grid Messaging and  Applications as Web Services Geoffrey Fox Presenter: Marlon Pierce Community Grids Lab Indiana University [email_address]
NaradaBrokering might Support Grid Messaging reliably in spirit of WS-ReliableMessaging Virtualize inter-service communication Federate different Grids Together Scalable pervasive audio-video conferencing General collaborative Applications and Web services Build next generation clients interacting with messages not method-based user interrupts Unify peer-to-peer networks and Grids Handle streams as in “media or sensor Grids” Handle events as in WS-Notification
NaradaBrokering Queues Web Service A Web Service B Stream Minicomputer Firewall Computer Server PDA Modem Laptop computer Workstation Peers Peers Audio/Video Conferencing Client Audio/Video Conferencing Client NaradaBrokering Broker Network
“ GridMPI” v. NaradaBrokering In  parallel computing ,  MPI  and  PVM  provided “all the features one needed’ for inter-node messaging NB aims to play same role for the Grid but the requirements and constraints are very different NB is not MPI  ported to a Grid/Globus environment Typically MPI aiming at  microsecond latency but  for  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” Jitter  in  latency  (transit time through broker) due to routing, processing (in NB) or packet loss recovery is important property Grids  need and can use software supported message functions and trade-offs between hardware and  software routing  different from  parallel computing
NaradaBrokering Based on a network of cooperating  broker nodes Cluster based architecture allows system to scale in size Originally designed to provide  uniform software multicast  to support real-time collaboration linked to publish-subscribe for asynchronous systems. Now has several core functions  Reliable order-preserving “Optimized” Message transport  (based on  performance  measurement) in heterogeneous multi-link fashion with TCP, UDP, SSL, HTTP, and will add GridFTP General  publish-subscribe  including  JMS  &  JXTA and  support for RTP-based  audio/video conferencing  Distributed XML  event selection  using  XPATH metaphor QoS, Security  profiles for sent and received messages Interface with  reliable storage for persistent events
Laudable Features of NaradaBrokering Is  open source   http://www.naradabrokering.org Has  client  “plug-in” as well as standalone brokers Will have a  discovery service  to find nearest brokers Does  tunnel  through most firewalls without requiring ports to be opened Supports  uniform time  across a distributed network Supports  JXTA, JMS  (Java Message Service) and more powerful native mode Transit time  < 1 millisecond  per broker Will have  setup  and  broker network administration module
NaradaBrokering Naturally Supports Filtering  of events to support different client requirements (e.g,. PDA versus desktop, slow lines, different A/V codecs) Virtualization  of addressing, routing, interfaces Federation  and  Mediation  of multiple instances of Grid services as illustrated by  Composition of  Gridlets  into full Grids (Gridlets are single computers in P2P case) JXTA  with peer-group forming a Gridlet Monitoring  of messages for Service management and general autonomic functions Fault tolerant  data  transport Virtual Private Grid  with fine-grain  Security  model
Grid Messaging Substrate Consumer Service SOAP+HTTP GridFTP RTP …. Standard client-server style communication. Substrate mediated communication removes transport protocol dependence.  e.g. Now can use GridFTP with multi-stream performance boost for any message flow Messaging Substrate Consumer Service SOAP+HTTP GridFTP RTP …. Any Protocol satisfying QoS
Virtualizing Communication Communication  specified in terms of  user goal  and  Quality of Service  – not in choice of port number and protocol Protocols  have become  overloaded  e.g. MUST use UDP for A/V latency requirements but CAN’t use UDP as firewall will not support ……… A given communication can involve  multiple transport protocols  and  multiple destinations  – the latter possibly determined dynamically Dial-up Filter Satellite UDP Firewall HTTP A B 1 Hand-Held Protocol Fast Link Software Multicast B 2 B 3 NB Broker Client Filtering NB Brokers
Performance Monitoring Every broker  incorporates a  Monitoring service  that  monitors links  originating from the node. Every link measures and exposes a set of  metrics Average delays, jitters, loss rates, throughput. Individual links can  disable  measurements for individual or the entire set of metrics. Measurement  intervals can  also be varied Monitoring Service,  returns measured  metrics to  Performance  Aggregator .
Architecture of Message Layer 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 ) Related to  Akamai, AOL  … caching and Server optimization problem 1-> N Grid Clients Hypercube of NB Brokers (logical not physical) N≈100 for Distance Education Per edge Broker Scale with distributed Broker net?
NaradaBrokering Communication Applications interface to  NaradaBrokering  through  UserChannels  which NB constructs as a set of  link s between NB Brokers acting as “ waystations”  which may need to be dynamically instantiated UserChannels  have  publish/subscribe semantics  with  XML topics Link s 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 Different links can have different underlying transport implementations Implementations in the  current  release include support for  TCP,UDP, Multicast, SSL, RTP and HTTP.  GridFTP  most interesting new protocol Supports communication through proxies and firewalls such as  iPlanet ,  Netscape, Apache, Microsoft ISA  and  Checkpoint .
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 hop-5 hop-7
 
 
 
NaradaBrokering and JMS (Java Message Service) (commercial JMS) Low Rate; Small Messages
NaradaBrokering and JXTA Federation Based on  hybrid proxy  that acts as both  Rendezvous  peer (JXTA routers) and NaradaBrokering end-point. No changes to JXTA core  or constraints on interactions Change made to Rendezvous layer Peers are not aware  that they interact with a Narada-JXTA proxy or Rendezvous peer. NB provides JXTA guaranteed  long distance delivery NB  federates  multiple JXTA Peer Groups
End-point Services in Native NaradaBrokering Allows you to create  Consumers  (subscribers) of events (an event is a time stamped message where time stamp can be empty!) Allows you to create  Producers  of events (publishers) Allows you to  discover brokers  and  initialize  communications with the broker. Services available at the client side will perform Compression  of payloads Computation of  Message digests  for Integrity Secure encryption  of payload based on the specified keys Fragmentation  of large payloads into smaller packets Redundancy  service which maintains active (alternate) connections to multiple brokers.
Event Consumer Capabilities Allow you to  subscribe  to events that conform to a certain template. The specified  subscription profile  could topic-based strings, XPath queries, <tag=value> pairs or integer topics. Event Consumers can also create  Consumer constraints  to specify various properties regarding the delivery of events. Consumer constraints are  different  from  subscriptions .  Subscriptions (or  Profiles ) are evaluated in a distributed fashion by the  broker  network, Consumer constraints  are  QoS  related and are managed by the QoS services running on the  end-point . Consumer constraints can specify Reliable  Delivery of events Ordered  (Publisher, causal and time ordered) delivery of events Exactly once  delivery of events Delivery after  un-compression  of compressed payload Delivery after  decrypting  encrypted payload
Event Producer Capabilities Facilitate the  generation  of events in correct format (next slide) Facilitate the  publishing  of events to brokers Allow the creation of  Publisher constraints  which facilitate specification of properties that need to be satisfied by published events Among the constraints that can be specified include Method of   Securing  message payloads Computing  message digests Compressing  message payloads Fragmenting  large payloads
Native NaradaBrokering Event The event comprises of Event headers Content Synopsis   (for selection as in JMS properties WITHOUT reading body) Content Payload Dissemination Traces  (generated on the fly as event traverses broker network) This is  different  from structure of  JMS  or  JXTA  events This NBEvent structure supports the extra capabilities discussed earlier The event headers specify information regarding Security and Integrity  of encapsulated payload Fragmentation  of events Compression   of payloads Correlation identifiers  (to define ordering between different streams as is needed in some collaboration applications ) Priority Application Type Event Identifiers
Based on  Message Level Security Messages  organized into  topics Each topic  has a separate  key; Topics  can be organized into  sessions
Yes No Yes end-to-end  Security   Yes Yes No Support for  XPath  queries/ subscriptions  Yes No Yes Communication through  proxies and firewalls   Yes No No Support for  Audio/Video Conferencing  & raw RTP clients  JXTA and later Gnutella Yes No Support for routing  P2P Interactions  Yes Yes Yes Guaranteed Messaging  (Robust)   No Yes Medium  (MQ is based on the point-to-point model. There is a limit on the effectiveness of this mode in large configurations).  WebSphere MQ (formerly MQSeries) Yes No Network Performance Monitoring   Yes No JMS Compliant Very large   Very large   Maximum number of nodes hosting the messaging infrastructure NaradaBrokering Pastry Functionality I
Yes No Yes Multiple transport protocols  over  multiple hops.  TCP (Blocking and non-blocking), UDP, Multicast, HTTP, SSL, RTP, (GridFTP) TCP, UDP TCP, HTTP, Multicast, SSL, SNA etc.   Transport Protocols  Supported  Fair with some “production” testing Fair Extremely mature ,  with very robust diagnostic information   Maturity of Software   Platforms supporting Java 1.4 (tunneling C++) Supported on platforms which support  C#  (Microsoft) or  Java  (Rice).   35 different  OS/ platforms supported. Also supports the  Java  Platform.  Platforms  or  Hosting Environments No Yes (Squirrel) No Support for  P2P  distributed  caching  No Yes WebSphere MQ (formerly MQSeries) In Progress No Broker Network Design Interface No No Workflow Support NaradaBrokering Pastry Functionality II
Autonomic Services In a Web (Grid) Service architecture, the  state  of any service is defined by its  initial condition  and all the  messages  (including ordering)  that it receives This  how  shared event model of  collaboration works This is a “ Finite State Change ” model analogous to saving file and “undo” command in many editors NB plus a  robust store  can “guarantee” to save all these messages for (all) services This allows one to build both &quot; autonomic data transport &quot; and &quot; autonomic services &quot; since these services can sustain packet losses in transport and can also sustain failures of apps/brokers archived messages (previous invocations, published events etc) can be retransmitted to reconstruct state at the service or to correct a transport error.  Further  anomalies  in message traffic (such as a publisher or subscriber are silent) can be detected by NB and signal problems We are building examples of both scenarios using  GridFTP  as our data transport example We will build a sample  autonomic visualization service  with detection of failed servers and brokers
Reliable Messaging Standards There are 2 competing standards in the Web Services community WS-Reliability from OASIS WS-ReliableMessaging from IBM and Microsoft (now expanded to include others)
WS-Reliability & WS-RM  Specifications provide reliable delivery between two endpoints. Both the specifications use positive acknowledgements to ensure reliable delivery Both specifications include support for faults WS-Reliability is a SOAP based protocol WS-ReliableMessaging provides an XML schema for reliable messaging.  Includes a SOAP binding.
NaradaBrokering & Reliable Delivery specifications We can provide support for both these specifications  In NaradaBrokering we provide reliable delivery from multiple points to multiple points We have identified issues that will allow federation between these specifications Sequence numbering, fault mappings, numbering rollovers, quality of service guarantees Federation would allow WSRM sender & WS-Reliability receiver WS-Reliability sender & WSRM receiver
SequenceTerminated Unknown Sequence InvalidAcknowledgement MessageNumberRollover LastMessageNumberExceeded InvalidMessageHeader Invalid MessageIdentifier InvalidReferenceToMessageId InvalidTimeStamp InvalidExpiryTime InvalidReliableMessage InvalidAckRequested InvalidMessageOrder Fault Codes supported by protocol Relies on WS-Security and assorted specifications Relies on WS-Security and assorted specifications Security  At most once, at least once and exactly once. Order is not necessarily tied to guaranteed delivery. Exactly once ordered delivery, reliable delivery. Order is always tied to guaranteed delivery and cannot be separately specified.  Delivery sequences supported WS-Policy assertions are used to meet delivery assurances. Is initiated by the sender.  Quality of Service Allows the specification of a  RetransmissionInterva l for a sequence (effects every message in the sequence). The interval can also be adjusted based on the exponential backoff algorithm. Triggered after receipt of a set of acknowledgements. In the event an acknowledgement is not received, the message is retransmitted until a specified number of resend attempts have been made. Retransmissions No explicit reference to UTC. Uses the  dateTime  format. Are expressed as UTC and conforms to a [XML Schema Part2: Data Types]  dateTime  element. Timestamps  The identifier associated with the sequence of messages and the message number within that sequence. The identifier associated with the message being acknowledged. Correlation associated with an Acknowledgement AckRequested  is used to request the receiving entity to acknowledge the message received. This is not REQUIRED. The  AckRequested  element is REQUIRED in every message for which reliable delivery needs to be ensured. Requesting acknowledgements Acknowledgements can be based on a range of messages, and the timing for issuing this can be advertised in a policy. An endpoint may also choose to send acknowledgements at any time. Can be sent upon receipt of messages, as a callback or in response to a poll. Needed upon receipt of every message. Acknowledgements Message number is REQUIRED for every message that needs to be delivered reliably. REQUIRED only for guaranteed ordering.  Presence of numbering information and its relation to delivery  No new sequences can be generated. MessageRollover  fault is issued. Generate a new group identifier and begin new sequence only after receipt of last message in old sequence. Sequence numbering rollover Starts at 1 for the first message in a group. Starts at 0 for the first message in a group. Sequence numbering initialization URI based [RFC 2396]. No additional requirement. Messages within a sequence are identified based on message numbers. URI based [RFC 2396], the syntax for the message-ID should be based on what is outlined in RFC2392.  Unique Ids  WS-Policy, WS-Security SOAP, WS-Security Related Specifications WSRM provides an XML schema for elements needed to support the reliable messaging framework. The specification provides a SOAP binding for the protocol. Is a SOAP based protocol, which has an HTTP binding which facilitates acknowledgements and faults to be issued over HTTP responses. SOAP related issues WS-RM WS-Reliability
NaradaBrokering, WS-Notification & JMS NaradaBrokering is JMS compliant Topics in NaradaBrokering could be based on XML, String(as in JMS), Plain text, Integers, and (tag=value) tuples. Subscriptions could be XPath queries, SQL queries, Regular expressions, Strings and integers Almost all the primitives needed in WS-Notification are available in NaradaBrokering Exception : Entities never communicate directly with each other, as proposed in WS-Notification. We are  either allow such direct communication or mimic in NB – no performance overhead! We are currently building a prototype implementation of WS-Notification Need to relate WS-Notification with WS-Eventing and WS-Events
NaradaBrokering and NTP NaradaBrokering includes an implementation of the Network Time Protocol (NTP) All entities within the system use NTP to communicate with atomic time servers maintained by organizations like NIST and USNO to compute  offsets Offset is the computed difference between global time and the local time. The offset is computed based on  the time returned from multiple atomic time servers. The NTP algorithms weighs results from individual time clocks based on the distance of the atomic server from the entity. NTP ensures that all entities are within 1-30 milliseconds of each other. The timestamps account for clock drifts that take place on machines Time returned is based on software clocks which can slow down with increased computing load on the machine.
NB Time Service In figure on  left , there is a  NTP daemon running  on the local machine besides the NB Time Service. NTP daemon running on the machine adjusts the underlying system clock. NB Time Service shows consistent results with NTP daemon. Figure on  right  shows results on machine that  does not run NTP daemon. The following  results are obtained over a period of 48 hours .  In these tests, NB Time Service computes offset every 30 seconds.  Usually NTP daemons on Linux/Solaris adjust underlying clock every second.
Building PSE’s with the Rule of the Millisecond I Typical Web Services are used in situations with interaction delays (network transit) of 100’s of milliseconds But basic  message-based interaction  architecture only incurs  fraction of a millisecond delay Thus use Web Services to build ALL PSE components Use messages  and  NOT method/subroutine call or RPC This “rule” OFTEN violated – people use “Java Interfaces” and so cannot distribute services Interaction Nugget1 Nugget2 Nugget3 Nugget4 Data
Building PSE’s with the Rule of the Millisecond II Messaging has several advantages over scripting languages Collaboration trivial by sharing messages Software Engineering due to greater modularity Web Services do/will have wonderful support “ Loose” Application coupling  uses workflow technologies Find characteristic interaction time  (millisecond programs; microseconds MPI and particle) and use  best supported architecture at this level Two levels: Web Service (Grid)  and  C/C++/C#/Fortran/Java/Python Major difficulty  in frameworks is NOT building them but rather in supporting them IMHO only hope is to always  minimize life-cycle support risks Science is too small a field to support much! Expect to use DIFFERENT technologies at each level  even though possible to do everything with one technology Trade off support versus performance/customization
Streams and Workflow Grids  need to consider  streams  and  Services Topics in NB are streams not just individual messages There is  service-oriented workflow  where streams are typically implicit.  For  stream-oriented workflow , the streams are explicit. We have built a sophisticated system GlobalMMCS for audio-video conferencing, which we will discuss next Media Industry and sensor based science are different examples We are building a  stream control engine for NaradaBrokering  when streams are “just” message flows on the Grid. Here one would use NB discovery services – find streams – and monitor NB could be used as part of workflow runtime
UNIX-style Workflow Example `flow: x &> (y1|z1 &> p,(q|storage1)), (y2|z2|storage2)`; Note this approach allows for example all workflow streams to use RMI, GridFTP, RTP – your or rather NaradaBrokering’s choice  x y1 z1 p storage2 NaradaBrokering Topic (Queue) y2 z2 q storage1
Stream–oriented Workflow As in audio-video conferencing and multimedia file delivery where it’s the media  streams that are the “point” Services generate and transform streams but one thinks of  streams going through services  rather than  services generating streams Multi-cast streams where video from one client sent to all other participants in a collaborative session common One thinks of a stream being published and participants subscribing to it. Pub/Sub Queue Publish Subscribe
InterGrids Federated Grid using NB Build a  P2P Network  where each  component  ( cell  or  Gridlet )   is itself a  Grid If  cell  is a  single computer , reduces to using  NB  to build  communication infrastructure  between  nodes of P2P network If  cell  is a  JXTA peer group , then  InterGrids  includes previous  federation  of  JXTA Peer Groups Gridlets NB Brokers Grid formed from Multiple cells
InterGrids Mediation Architecture NB  acts as a  Mediation agent  in such a  Cellular Grid Using federated security model constructs a VPN like  Virtual Private Grid (NB could support VPN protocol and combine with Grid Security) Mediation  includes more than routing (as in current JXTA) as can map between Interface standards Each  Gridlet  can use  different Service  standards Services register  interfaces with mediator giving ways to map using perhaps  OGSA  as a common intermediate form Allows integration of  OGSI WSRF WS-GAF  and “ pure web service ” or  Jini  or  JXTA  based Grids where each Grid uses its natural service architecture Support  interoperable  (like Job Submission) and  federated  (like registry or metadata catalog) services  Exploits  stream filtering  capability of  NB
Collaboration and Web Services 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 …. 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 should make it a WS
Shared Event Collaboration 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 Finite State Change  NOT  Finite State  Machine architecture Using  Web services  allows one to expose updates of all kinds as messages “ Event service” for collaboration is similar to Grid notification service and we effectively define SDE’s (service data elements) in OGSI Group ( Session ) communication service is needed for the delivery of the update events Using Event Messaging middleware makes messaging universal
Collaborative SVG Web Service SVG  is  W3C 2D Vector Graphics  standard and is interesting for visualization and as a simple PowerPoint like application Further SVG is built on  W3C DOM  and one can generalize results to all W3C DOM-based applications (“all” in future?) Apache Batik  SVG is  Java  and  open source  and so it is practical to modify it to explore Real Applications  as a  Web Service Collaboration  as a  Web Service MVC model  and web services with implications for  portlets We use  NaradaBrokering  and  XGSP  to control collaboration; support  PDA Cell-phone  and  desktop  clients; are restructuring Batik as  MVC Web Service Good progress in all areas see  http://www.svgarena.org   for SVG Games http://grids.ucs.indiana.edu/ptliupages/projects/carousel/  for PDA
Applications as Web Services? Build “all” classic applications in  Web service style  with user interface and “real application” interacting by (WSDL/SOAP) messages and NOT by O/S controlled interrupts This is “just”  MVC  ( Model View Control ) paradigm done very explicitly Quite hard because MVC not actually used very systematically Perhaps the advantages of this architecture could be enough to shake the  Microsoft hegemony  in both O/S and “productivity” applications Current challenges of Microsoft applications are trying to do as well and not easy to see how they can do better Immediately make a lot easier to support  cross O/S  applications Form the “ Next Generation Client Consortium ”? There is quite a lot of open source (but not web service based) software with which to begin
Classic MVC Paradigm
Web Service Model for Application Development Interrupts in traditional monolithic applications become “real messages” not directly method calls Natural for collaboration and universal access Natural in MVC Model W3C DOM User Interface W3C DOM Raw (UI) Events Application as a Web service W3C DOM Semantic Events Data User Facing Ports Resource Facing Ports Events as  Messages Rendering as  Messages View Control Model Narada Brokering
Collaborative SVG As A Web Service NaradaBrokering
Collaborative SVG Chess Game in Batik Browser Players Observers
WS  Display WS  Viewer Event (Message) Service Master WS Display WS  Viewer Web Service Message Interceptor Collaboration as a WS Set up Session with XGSP Shared Output Port Collaboration Other Participants Text Chat Whiteboard Multiple masters WS Display WS Viewer Application or Content  source WSDL Web Service F I U O F I R O
SIMD Collaboration Identical Programs receiving identical events Token determines if browser is moving, waiting for opponent or an observer Shared Output port SIMD Collaborative Web Service Non Web Service Implementation SVG Browser SVG Browser SVG Browser SVG Browser SVG Viewer SVG Viewer SVG Viewer SVG Viewer SVG Model (DOM) NaradaBrokering NaradaBrokering
Event (Message) Service Master Collaboration as a WS Set up Session with XGSP Shared Input Port ( Replicated  WS) Collaboration Other Participants WS Display WS Viewer WS  Display WS  Viewer WS Display WS  Viewer Web Service F I U O F I R O Web Service F I U O F I R O Web Service F I U O F I R O
MIMD Collaboration NaradaBrokering Shared Input port MIMD Collaborative Web Service SVG Viewer SVG Viewer SVG Viewer SVG Viewer SVG  Model SVG  Model SVG  Model SVG  Model NaradaBrokering
Global-MMCS 2.0 XGSP MCU 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.  We will deploy it globally and hope to test with later this year. The function of A/V media server will be distributed using NaradaBrokering architecture. Media Servers  mix and convert A/V streams  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 from Indiana Java Media Framework  basis of Media Servers
XGSP Web Service MCU Architecture Gateways convert to uniform XGSP Messaging High Performance (RTP) and XML/SOAP and .. Use Multiple Media servers to scale to many codecs and many versions of audio/video mixing NB Scales as distributed Web Services NaradaBrokering SIP H323 Access Grid Native XGSP Admire Media Servers Filters Session Server XGSP-based Control NaradaBrokering All Messaging
A/V Collaboration Systems H323 H.323 is defined as an umbrella standard specifying the components to be used within an H.323-based environment.  SIP The Session Initiation Protocol (SIP) defines how to establish, maintain and terminate Internet sessions including multimedia conferences  Access Grid enhanced Mbone A/V tools ( VIC, RAT ) Internet 2 network ( Multicast support )
XGSP Collaboration Framework  To integrate heterogeneous systems into one collaboration system A unified, scalable, robust “overlay” network is needed to support A/V and data group communication over heterogeneous networking environments.  A common A/V signaling protocol has to be designed to support interactions between different A/V collaboration endpoints.  Different A/V endpoints should collaborate in the same collaboration session.
Group Communication in Collaboration Collaboration applications usually need a group communication service for both multipoint data and control information delivery Centralized conferencing systems usually depend upon a single conference server  Distributed conferencing systems use IP multicast Access Grid uses Internet2 multicast for audio/video transmission.  Problems: Centralized conferencing systems don’t have good scalability  and IP multicast has not become ubiquitously available We use distributed NaradaBrokering to provide this communication
A/V Collaboration over publish/subscribe Middleware   video streams (VS) VS {v 1 , v 2 , … v m  }  audio streams (AS) AS  { a 1 , a 2 , … a n  } A/V endpoints: E 1 , E 2 , … E l Each endpoint may send a single or multiple video streams, but only send an audio stream Different types of A/V endpoints have different  collaboration capabilities.  Multicast endpoints are able to receive multiple video and audio streams, display all the video streams in their screens, and mix all the audio streams by themselves Unicast endpoints like Polycom Via Video can only receive and play a single video and audio stream
Publish/subscribe of A/V  A stream in VS and AS is regarded as a “topic”  Each RTP packet from this stream is regarded as an “event” for this topic Only the sender of this stream can “publish” A/V events to this topic Other endpoints need to subscribe to this topic in order to receive the stream data Create mixed video and audio stream topics for unicast endpoints
RTP packets encapsulation   RTPLink: RTP Packets map to Narada Brokering Event Every legacy A/V client needs one corresponding RTPLink to be set up at a broker within broker network. Unicast RTPLink:  Integer Topic Numbers for RTP and RTCP   Multicast RTPLink:  A reflector between NaradaBrokers and multicast groups, encapsulating raw RTP packets from a multicast IP address to RTP events, publishing these events to NaradaBrokers, and forwarding the data it receives from broker network on the same IP address
Audio Mixer, Video Mixer, Image Grabber   Audio Mixing The audio mixer creates a mixed audio stream from all the audio streams in the session Video Mixing  Video mixing makes the unicast users watch the pictures of multiple participants in a meeting through one video stream Video Thumbnail  visualize the VS set in the session, embedded into the control panel of each endpoint, which Image grabbers capture video streams and save them as static JPEG files.  All the media processing components can be distributed among the pool of the media servers connected to NaradaBrokering infrastructures.  This generalizes to a farm of “stream servers” doing image processing etc.
H.323, SIP Gateway Servers, A/V Session Server   H.323 and SIP gateway transform these protocol specific messages into XGSP signaling messages so that H.323 and SIP A/V endpoints could communicate with the XGSP A/V session server  The session server implements session management logics  creating/destroying A/V sessions allowing endpoints to join/leave session  Allowing users to make audio/video selection, managing A/V application components  Note Session Server very similar to Context Server in WS-Context
0 10 20 30 40 50 60 0 200 400 600 800 1000 1200 1400 1600 1800 2000 Delay (Milliseconds) Packet Number Average delays per packet for 50 video-clients NaradaBrokering Avg=2.23 ms, JMF Avg=3.08 ms NaradaBrokering-RTP JMF-RTP
0 1 2 3 4 5 6 7 8 0 200 400 600 800 1000 1200 1400 1600 1800 2000 Jitter  (Milliseconds) Packet Number Average jitter (std. dev) for 50 video clients. NaradaBrokering Avg=0.95 ms, JMF Avg=1.10 ms NaradaBrokering-RTP JMF-RTP
Polycom view of multiple video streams
Polycom, Access Grid and RealVideo views of multiple streams using CGL A/V Web Service integrating SIP and H323
Unicast AG Portlet
Application Web Services and Universal Access NaradaBrokering can link  lightweight clients  (V in MVC) to  Web Services  holding as a Web service the “guts of an application” (M in MVC) This allows customizable user interfaces gotten by mapping between client profile protocols at NB Supports collaboration between diverse clients Web Service Client1 Client2 M Agent1 Agent2 Profiles NB P1 P2 P Map P to P1 Map P to P2
Integration of PDA, Cell phone and Desktop Grid Access

More Related Content

PPT
Remarks on Grids e-Science CyberInfrastructure and Peer-to-Peer ...
PPT
PPT
Collaboration and Grid Technologies
PDF
Audio Video Conferencing in Distributed Brokering Systems
PPTX
Protocols for internet of things
PDF
MQTT Protocol: IOT Technology
PPT
Real Time Java DDS
Remarks on Grids e-Science CyberInfrastructure and Peer-to-Peer ...
Collaboration and Grid Technologies
Audio Video Conferencing in Distributed Brokering Systems
Protocols for internet of things
MQTT Protocol: IOT Technology
Real Time Java DDS

What's hot (16)

PDF
PDF
Converged Monitoring Fabric for SDN-based Environments, an IBM and VSS Monito...
PDF
TAM new report
PDF
Lab 10 manual(1)
PPTX
componenets of osb12c
PDF
Microsoft NetMeeting and Windows XP Video Conferencing vs
PPTX
Approaches for Mitigating Discovery Problems in Larger Systems
PPTX
Message queuing telemetry transport (mqtt) message format
PDF
A New Approach to Volunteer Cloud Computing
PDF
Week11 qo s-2017(1)
PDF
Lt2520382043
PDF
A Novel High Order Tree for Securing Key Management for Multicast Services
PPT
Cliser
DOCX
PROVABLE MULTICOPY DYNAMIC DATA POSSESSION IN CLOUD COMPUTING SYSTEMS
PDF
IRJET- Design of Anonymous Publish-Subscribe Messaging System in a P2P Networ...
DOCX
COST-MINIMIZING DYNAMIC MIGRATION OF CONTENT DISTRIBUTION SERVICES INTO HYBR...
Converged Monitoring Fabric for SDN-based Environments, an IBM and VSS Monito...
TAM new report
Lab 10 manual(1)
componenets of osb12c
Microsoft NetMeeting and Windows XP Video Conferencing vs
Approaches for Mitigating Discovery Problems in Larger Systems
Message queuing telemetry transport (mqtt) message format
A New Approach to Volunteer Cloud Computing
Week11 qo s-2017(1)
Lt2520382043
A Novel High Order Tree for Securing Key Management for Multicast Services
Cliser
PROVABLE MULTICOPY DYNAMIC DATA POSSESSION IN CLOUD COMPUTING SYSTEMS
IRJET- Design of Anonymous Publish-Subscribe Messaging System in a P2P Networ...
COST-MINIMIZING DYNAMIC MIGRATION OF CONTENT DISTRIBUTION SERVICES INTO HYBR...
Ad

Similar to NaradaBrokering Grid Messaging and Applications as Web Services (20)

PPT
PPTX
Protocols for internet of things
PPTX
Internet of Things: Protocols for M2M
PPTX
Protocols for internet of things
PPTX
Protocols for internet of things
PPTX
Protocols for internet of things
PPT
nv.ppt
DOCX
Chapter 11 Selecting Technologies and Devices for Enterprise Netwo.docx
PPTX
A Deep Dive in the World of IT Networking (Part 2)
PPT
Three Challenges in Reliable Data Transport over Heterogeneous ...
PDF
Essay On Ethernet
PPT
lec3_10.ppt
PPT
934 Ch1 Networks
PDF
From Stream to Screen: Real-Time Data Streaming to Web Frontends with Conflue...
PPTX
WebRTC presentation
PPTX
Introduction to Kafka
PPTX
Carrier As A Service15102009
PDF
Implementing Domain Events with Kafka
PPTX
network fundamentals _Chapter 2 - Week 2and 3.pptx
PDF
Multi port network ethernet performance improvement techniques
Protocols for internet of things
Internet of Things: Protocols for M2M
Protocols for internet of things
Protocols for internet of things
Protocols for internet of things
nv.ppt
Chapter 11 Selecting Technologies and Devices for Enterprise Netwo.docx
A Deep Dive in the World of IT Networking (Part 2)
Three Challenges in Reliable Data Transport over Heterogeneous ...
Essay On Ethernet
lec3_10.ppt
934 Ch1 Networks
From Stream to Screen: Real-Time Data Streaming to Web Frontends with Conflue...
WebRTC presentation
Introduction to Kafka
Carrier As A Service15102009
Implementing Domain Events with Kafka
network fundamentals _Chapter 2 - Week 2and 3.pptx
Multi port network ethernet performance improvement techniques
Ad

More from Videoguy (20)

PDF
Energy-Aware Wireless Video Streaming
PDF
Microsoft PowerPoint - WirelessCluster_Pres
PDF
Proxy Cache Management for Fine-Grained Scalable Video Streaming
PDF
Adobe
PDF
Free-riding Resilient Video Streaming in Peer-to-Peer Networks
PDF
Instant video streaming
PDF
Video Streaming over Bluetooth: A Survey
PDF
Video Streaming
PDF
Reaching a Broader Audience
PDF
Considerations for Creating Streamed Video Content over 3G ...
PDF
ADVANCES IN CHANNEL-ADAPTIVE VIDEO STREAMING
PDF
Impact of FEC Overhead on Scalable Video Streaming
PDF
Application Brief
PDF
Video Streaming Services – Stage 1
PDF
Streaming Video into Second Life
PDF
Flash Live Video Streaming Software
PDF
Videoconference Streaming Solutions Cookbook
PDF
Streaming Video Formaten
PDF
iPhone Live Video Streaming Software
PDF
Glow: Video streaming training guide - Firefox
Energy-Aware Wireless Video Streaming
Microsoft PowerPoint - WirelessCluster_Pres
Proxy Cache Management for Fine-Grained Scalable Video Streaming
Adobe
Free-riding Resilient Video Streaming in Peer-to-Peer Networks
Instant video streaming
Video Streaming over Bluetooth: A Survey
Video Streaming
Reaching a Broader Audience
Considerations for Creating Streamed Video Content over 3G ...
ADVANCES IN CHANNEL-ADAPTIVE VIDEO STREAMING
Impact of FEC Overhead on Scalable Video Streaming
Application Brief
Video Streaming Services – Stage 1
Streaming Video into Second Life
Flash Live Video Streaming Software
Videoconference Streaming Solutions Cookbook
Streaming Video Formaten
iPhone Live Video Streaming Software
Glow: Video streaming training guide - Firefox

NaradaBrokering Grid Messaging and Applications as Web Services

  • 1. NaradaBrokering Grid Messaging and Applications as Web Services Geoffrey Fox Presenter: Marlon Pierce Community Grids Lab Indiana University [email_address]
  • 2. NaradaBrokering might Support Grid Messaging reliably in spirit of WS-ReliableMessaging Virtualize inter-service communication Federate different Grids Together Scalable pervasive audio-video conferencing General collaborative Applications and Web services Build next generation clients interacting with messages not method-based user interrupts Unify peer-to-peer networks and Grids Handle streams as in “media or sensor Grids” Handle events as in WS-Notification
  • 3. NaradaBrokering Queues Web Service A Web Service B Stream Minicomputer Firewall Computer Server PDA Modem Laptop computer Workstation Peers Peers Audio/Video Conferencing Client Audio/Video Conferencing Client NaradaBrokering Broker Network
  • 4. “ GridMPI” v. NaradaBrokering In parallel computing , MPI and PVM provided “all the features one needed’ for inter-node messaging NB aims to play same role for the Grid but the requirements and constraints are very different NB is not MPI ported to a Grid/Globus environment Typically MPI aiming at microsecond latency but for 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” Jitter in latency (transit time through broker) due to routing, processing (in NB) or packet loss recovery is important property Grids need and can use software supported message functions and trade-offs between hardware and software routing different from parallel computing
  • 5. NaradaBrokering Based on a network of cooperating broker nodes Cluster based architecture allows system to scale in size Originally designed to provide uniform software multicast to support real-time collaboration linked to publish-subscribe for asynchronous systems. Now has several core functions Reliable order-preserving “Optimized” Message transport (based on performance measurement) in heterogeneous multi-link fashion with TCP, UDP, SSL, HTTP, and will add GridFTP General publish-subscribe including JMS & JXTA and support for RTP-based audio/video conferencing Distributed XML event selection using XPATH metaphor QoS, Security profiles for sent and received messages Interface with reliable storage for persistent events
  • 6. Laudable Features of NaradaBrokering Is open source http://www.naradabrokering.org Has client “plug-in” as well as standalone brokers Will have a discovery service to find nearest brokers Does tunnel through most firewalls without requiring ports to be opened Supports uniform time across a distributed network Supports JXTA, JMS (Java Message Service) and more powerful native mode Transit time < 1 millisecond per broker Will have setup and broker network administration module
  • 7. NaradaBrokering Naturally Supports Filtering of events to support different client requirements (e.g,. PDA versus desktop, slow lines, different A/V codecs) Virtualization of addressing, routing, interfaces Federation and Mediation of multiple instances of Grid services as illustrated by Composition of Gridlets into full Grids (Gridlets are single computers in P2P case) JXTA with peer-group forming a Gridlet Monitoring of messages for Service management and general autonomic functions Fault tolerant data transport Virtual Private Grid with fine-grain Security model
  • 8. Grid Messaging Substrate Consumer Service SOAP+HTTP GridFTP RTP …. Standard client-server style communication. Substrate mediated communication removes transport protocol dependence. e.g. Now can use GridFTP with multi-stream performance boost for any message flow Messaging Substrate Consumer Service SOAP+HTTP GridFTP RTP …. Any Protocol satisfying QoS
  • 9. Virtualizing Communication Communication specified in terms of user goal and Quality of Service – not in choice of port number and protocol Protocols have become overloaded e.g. MUST use UDP for A/V latency requirements but CAN’t use UDP as firewall will not support ……… A given communication can involve multiple transport protocols and multiple destinations – the latter possibly determined dynamically Dial-up Filter Satellite UDP Firewall HTTP A B 1 Hand-Held Protocol Fast Link Software Multicast B 2 B 3 NB Broker Client Filtering NB Brokers
  • 10. Performance Monitoring Every broker incorporates a Monitoring service that monitors links originating from the node. Every link measures and exposes a set of metrics Average delays, jitters, loss rates, throughput. Individual links can disable measurements for individual or the entire set of metrics. Measurement intervals can also be varied Monitoring Service, returns measured metrics to Performance Aggregator .
  • 11. Architecture of Message Layer 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 ) Related to Akamai, AOL … caching and Server optimization problem 1-> N Grid Clients Hypercube of NB Brokers (logical not physical) N≈100 for Distance Education Per edge Broker Scale with distributed Broker net?
  • 12. NaradaBrokering Communication Applications interface to NaradaBrokering through UserChannels which NB constructs as a set of link s between NB Brokers acting as “ waystations” which may need to be dynamically instantiated UserChannels have publish/subscribe semantics with XML topics Link s 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 Different links can have different underlying transport implementations Implementations in the current release include support for TCP,UDP, Multicast, SSL, RTP and HTTP. GridFTP most interesting new protocol Supports communication through proxies and firewalls such as iPlanet , Netscape, Apache, Microsoft ISA and Checkpoint .
  • 13. 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 hop-5 hop-7
  • 14.  
  • 15.  
  • 16.  
  • 17. NaradaBrokering and JMS (Java Message Service) (commercial JMS) Low Rate; Small Messages
  • 18. NaradaBrokering and JXTA Federation Based on hybrid proxy that acts as both Rendezvous peer (JXTA routers) and NaradaBrokering end-point. No changes to JXTA core or constraints on interactions Change made to Rendezvous layer Peers are not aware that they interact with a Narada-JXTA proxy or Rendezvous peer. NB provides JXTA guaranteed long distance delivery NB federates multiple JXTA Peer Groups
  • 19. End-point Services in Native NaradaBrokering Allows you to create Consumers (subscribers) of events (an event is a time stamped message where time stamp can be empty!) Allows you to create Producers of events (publishers) Allows you to discover brokers and initialize communications with the broker. Services available at the client side will perform Compression of payloads Computation of Message digests for Integrity Secure encryption of payload based on the specified keys Fragmentation of large payloads into smaller packets Redundancy service which maintains active (alternate) connections to multiple brokers.
  • 20. Event Consumer Capabilities Allow you to subscribe to events that conform to a certain template. The specified subscription profile could topic-based strings, XPath queries, <tag=value> pairs or integer topics. Event Consumers can also create Consumer constraints to specify various properties regarding the delivery of events. Consumer constraints are different from subscriptions . Subscriptions (or Profiles ) are evaluated in a distributed fashion by the broker network, Consumer constraints are QoS related and are managed by the QoS services running on the end-point . Consumer constraints can specify Reliable Delivery of events Ordered (Publisher, causal and time ordered) delivery of events Exactly once delivery of events Delivery after un-compression of compressed payload Delivery after decrypting encrypted payload
  • 21. Event Producer Capabilities Facilitate the generation of events in correct format (next slide) Facilitate the publishing of events to brokers Allow the creation of Publisher constraints which facilitate specification of properties that need to be satisfied by published events Among the constraints that can be specified include Method of Securing message payloads Computing message digests Compressing message payloads Fragmenting large payloads
  • 22. Native NaradaBrokering Event The event comprises of Event headers Content Synopsis (for selection as in JMS properties WITHOUT reading body) Content Payload Dissemination Traces (generated on the fly as event traverses broker network) This is different from structure of JMS or JXTA events This NBEvent structure supports the extra capabilities discussed earlier The event headers specify information regarding Security and Integrity of encapsulated payload Fragmentation of events Compression of payloads Correlation identifiers (to define ordering between different streams as is needed in some collaboration applications ) Priority Application Type Event Identifiers
  • 23. Based on Message Level Security Messages organized into topics Each topic has a separate key; Topics can be organized into sessions
  • 24. Yes No Yes end-to-end Security Yes Yes No Support for XPath queries/ subscriptions Yes No Yes Communication through proxies and firewalls Yes No No Support for Audio/Video Conferencing & raw RTP clients JXTA and later Gnutella Yes No Support for routing P2P Interactions Yes Yes Yes Guaranteed Messaging (Robust) No Yes Medium (MQ is based on the point-to-point model. There is a limit on the effectiveness of this mode in large configurations). WebSphere MQ (formerly MQSeries) Yes No Network Performance Monitoring Yes No JMS Compliant Very large Very large Maximum number of nodes hosting the messaging infrastructure NaradaBrokering Pastry Functionality I
  • 25. Yes No Yes Multiple transport protocols over multiple hops. TCP (Blocking and non-blocking), UDP, Multicast, HTTP, SSL, RTP, (GridFTP) TCP, UDP TCP, HTTP, Multicast, SSL, SNA etc. Transport Protocols Supported Fair with some “production” testing Fair Extremely mature , with very robust diagnostic information Maturity of Software Platforms supporting Java 1.4 (tunneling C++) Supported on platforms which support C# (Microsoft) or Java (Rice). 35 different OS/ platforms supported. Also supports the Java Platform. Platforms or Hosting Environments No Yes (Squirrel) No Support for P2P distributed caching No Yes WebSphere MQ (formerly MQSeries) In Progress No Broker Network Design Interface No No Workflow Support NaradaBrokering Pastry Functionality II
  • 26. Autonomic Services In a Web (Grid) Service architecture, the state of any service is defined by its initial condition and all the messages (including ordering) that it receives This how shared event model of collaboration works This is a “ Finite State Change ” model analogous to saving file and “undo” command in many editors NB plus a robust store can “guarantee” to save all these messages for (all) services This allows one to build both &quot; autonomic data transport &quot; and &quot; autonomic services &quot; since these services can sustain packet losses in transport and can also sustain failures of apps/brokers archived messages (previous invocations, published events etc) can be retransmitted to reconstruct state at the service or to correct a transport error. Further anomalies in message traffic (such as a publisher or subscriber are silent) can be detected by NB and signal problems We are building examples of both scenarios using GridFTP as our data transport example We will build a sample autonomic visualization service with detection of failed servers and brokers
  • 27. Reliable Messaging Standards There are 2 competing standards in the Web Services community WS-Reliability from OASIS WS-ReliableMessaging from IBM and Microsoft (now expanded to include others)
  • 28. WS-Reliability & WS-RM Specifications provide reliable delivery between two endpoints. Both the specifications use positive acknowledgements to ensure reliable delivery Both specifications include support for faults WS-Reliability is a SOAP based protocol WS-ReliableMessaging provides an XML schema for reliable messaging. Includes a SOAP binding.
  • 29. NaradaBrokering & Reliable Delivery specifications We can provide support for both these specifications In NaradaBrokering we provide reliable delivery from multiple points to multiple points We have identified issues that will allow federation between these specifications Sequence numbering, fault mappings, numbering rollovers, quality of service guarantees Federation would allow WSRM sender & WS-Reliability receiver WS-Reliability sender & WSRM receiver
  • 30. SequenceTerminated Unknown Sequence InvalidAcknowledgement MessageNumberRollover LastMessageNumberExceeded InvalidMessageHeader Invalid MessageIdentifier InvalidReferenceToMessageId InvalidTimeStamp InvalidExpiryTime InvalidReliableMessage InvalidAckRequested InvalidMessageOrder Fault Codes supported by protocol Relies on WS-Security and assorted specifications Relies on WS-Security and assorted specifications Security At most once, at least once and exactly once. Order is not necessarily tied to guaranteed delivery. Exactly once ordered delivery, reliable delivery. Order is always tied to guaranteed delivery and cannot be separately specified. Delivery sequences supported WS-Policy assertions are used to meet delivery assurances. Is initiated by the sender. Quality of Service Allows the specification of a RetransmissionInterva l for a sequence (effects every message in the sequence). The interval can also be adjusted based on the exponential backoff algorithm. Triggered after receipt of a set of acknowledgements. In the event an acknowledgement is not received, the message is retransmitted until a specified number of resend attempts have been made. Retransmissions No explicit reference to UTC. Uses the dateTime format. Are expressed as UTC and conforms to a [XML Schema Part2: Data Types] dateTime element. Timestamps The identifier associated with the sequence of messages and the message number within that sequence. The identifier associated with the message being acknowledged. Correlation associated with an Acknowledgement AckRequested is used to request the receiving entity to acknowledge the message received. This is not REQUIRED. The AckRequested element is REQUIRED in every message for which reliable delivery needs to be ensured. Requesting acknowledgements Acknowledgements can be based on a range of messages, and the timing for issuing this can be advertised in a policy. An endpoint may also choose to send acknowledgements at any time. Can be sent upon receipt of messages, as a callback or in response to a poll. Needed upon receipt of every message. Acknowledgements Message number is REQUIRED for every message that needs to be delivered reliably. REQUIRED only for guaranteed ordering. Presence of numbering information and its relation to delivery No new sequences can be generated. MessageRollover fault is issued. Generate a new group identifier and begin new sequence only after receipt of last message in old sequence. Sequence numbering rollover Starts at 1 for the first message in a group. Starts at 0 for the first message in a group. Sequence numbering initialization URI based [RFC 2396]. No additional requirement. Messages within a sequence are identified based on message numbers. URI based [RFC 2396], the syntax for the message-ID should be based on what is outlined in RFC2392. Unique Ids WS-Policy, WS-Security SOAP, WS-Security Related Specifications WSRM provides an XML schema for elements needed to support the reliable messaging framework. The specification provides a SOAP binding for the protocol. Is a SOAP based protocol, which has an HTTP binding which facilitates acknowledgements and faults to be issued over HTTP responses. SOAP related issues WS-RM WS-Reliability
  • 31. NaradaBrokering, WS-Notification & JMS NaradaBrokering is JMS compliant Topics in NaradaBrokering could be based on XML, String(as in JMS), Plain text, Integers, and (tag=value) tuples. Subscriptions could be XPath queries, SQL queries, Regular expressions, Strings and integers Almost all the primitives needed in WS-Notification are available in NaradaBrokering Exception : Entities never communicate directly with each other, as proposed in WS-Notification. We are either allow such direct communication or mimic in NB – no performance overhead! We are currently building a prototype implementation of WS-Notification Need to relate WS-Notification with WS-Eventing and WS-Events
  • 32. NaradaBrokering and NTP NaradaBrokering includes an implementation of the Network Time Protocol (NTP) All entities within the system use NTP to communicate with atomic time servers maintained by organizations like NIST and USNO to compute offsets Offset is the computed difference between global time and the local time. The offset is computed based on the time returned from multiple atomic time servers. The NTP algorithms weighs results from individual time clocks based on the distance of the atomic server from the entity. NTP ensures that all entities are within 1-30 milliseconds of each other. The timestamps account for clock drifts that take place on machines Time returned is based on software clocks which can slow down with increased computing load on the machine.
  • 33. NB Time Service In figure on left , there is a NTP daemon running on the local machine besides the NB Time Service. NTP daemon running on the machine adjusts the underlying system clock. NB Time Service shows consistent results with NTP daemon. Figure on right shows results on machine that does not run NTP daemon. The following results are obtained over a period of 48 hours . In these tests, NB Time Service computes offset every 30 seconds. Usually NTP daemons on Linux/Solaris adjust underlying clock every second.
  • 34. Building PSE’s with the Rule of the Millisecond I Typical Web Services are used in situations with interaction delays (network transit) of 100’s of milliseconds But basic message-based interaction architecture only incurs fraction of a millisecond delay Thus use Web Services to build ALL PSE components Use messages and NOT method/subroutine call or RPC This “rule” OFTEN violated – people use “Java Interfaces” and so cannot distribute services Interaction Nugget1 Nugget2 Nugget3 Nugget4 Data
  • 35. Building PSE’s with the Rule of the Millisecond II Messaging has several advantages over scripting languages Collaboration trivial by sharing messages Software Engineering due to greater modularity Web Services do/will have wonderful support “ Loose” Application coupling uses workflow technologies Find characteristic interaction time (millisecond programs; microseconds MPI and particle) and use best supported architecture at this level Two levels: Web Service (Grid) and C/C++/C#/Fortran/Java/Python Major difficulty in frameworks is NOT building them but rather in supporting them IMHO only hope is to always minimize life-cycle support risks Science is too small a field to support much! Expect to use DIFFERENT technologies at each level even though possible to do everything with one technology Trade off support versus performance/customization
  • 36. Streams and Workflow Grids need to consider streams and Services Topics in NB are streams not just individual messages There is service-oriented workflow where streams are typically implicit. For stream-oriented workflow , the streams are explicit. We have built a sophisticated system GlobalMMCS for audio-video conferencing, which we will discuss next Media Industry and sensor based science are different examples We are building a stream control engine for NaradaBrokering when streams are “just” message flows on the Grid. Here one would use NB discovery services – find streams – and monitor NB could be used as part of workflow runtime
  • 37. UNIX-style Workflow Example `flow: x &> (y1|z1 &> p,(q|storage1)), (y2|z2|storage2)`; Note this approach allows for example all workflow streams to use RMI, GridFTP, RTP – your or rather NaradaBrokering’s choice x y1 z1 p storage2 NaradaBrokering Topic (Queue) y2 z2 q storage1
  • 38. Stream–oriented Workflow As in audio-video conferencing and multimedia file delivery where it’s the media streams that are the “point” Services generate and transform streams but one thinks of streams going through services rather than services generating streams Multi-cast streams where video from one client sent to all other participants in a collaborative session common One thinks of a stream being published and participants subscribing to it. Pub/Sub Queue Publish Subscribe
  • 39. InterGrids Federated Grid using NB Build a P2P Network where each component ( cell or Gridlet ) is itself a Grid If cell is a single computer , reduces to using NB to build communication infrastructure between nodes of P2P network If cell is a JXTA peer group , then InterGrids includes previous federation of JXTA Peer Groups Gridlets NB Brokers Grid formed from Multiple cells
  • 40. InterGrids Mediation Architecture NB acts as a Mediation agent in such a Cellular Grid Using federated security model constructs a VPN like Virtual Private Grid (NB could support VPN protocol and combine with Grid Security) Mediation includes more than routing (as in current JXTA) as can map between Interface standards Each Gridlet can use different Service standards Services register interfaces with mediator giving ways to map using perhaps OGSA as a common intermediate form Allows integration of OGSI WSRF WS-GAF and “ pure web service ” or Jini or JXTA based Grids where each Grid uses its natural service architecture Support interoperable (like Job Submission) and federated (like registry or metadata catalog) services Exploits stream filtering capability of NB
  • 41. Collaboration and Web Services 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 …. 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 should make it a WS
  • 42. Shared Event Collaboration 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 Finite State Change NOT Finite State Machine architecture Using Web services allows one to expose updates of all kinds as messages “ Event service” for collaboration is similar to Grid notification service and we effectively define SDE’s (service data elements) in OGSI Group ( Session ) communication service is needed for the delivery of the update events Using Event Messaging middleware makes messaging universal
  • 43. Collaborative SVG Web Service SVG is W3C 2D Vector Graphics standard and is interesting for visualization and as a simple PowerPoint like application Further SVG is built on W3C DOM and one can generalize results to all W3C DOM-based applications (“all” in future?) Apache Batik SVG is Java and open source and so it is practical to modify it to explore Real Applications as a Web Service Collaboration as a Web Service MVC model and web services with implications for portlets We use NaradaBrokering and XGSP to control collaboration; support PDA Cell-phone and desktop clients; are restructuring Batik as MVC Web Service Good progress in all areas see http://www.svgarena.org for SVG Games http://grids.ucs.indiana.edu/ptliupages/projects/carousel/ for PDA
  • 44. Applications as Web Services? Build “all” classic applications in Web service style with user interface and “real application” interacting by (WSDL/SOAP) messages and NOT by O/S controlled interrupts This is “just” MVC ( Model View Control ) paradigm done very explicitly Quite hard because MVC not actually used very systematically Perhaps the advantages of this architecture could be enough to shake the Microsoft hegemony in both O/S and “productivity” applications Current challenges of Microsoft applications are trying to do as well and not easy to see how they can do better Immediately make a lot easier to support cross O/S applications Form the “ Next Generation Client Consortium ”? There is quite a lot of open source (but not web service based) software with which to begin
  • 46. Web Service Model for Application Development Interrupts in traditional monolithic applications become “real messages” not directly method calls Natural for collaboration and universal access Natural in MVC Model W3C DOM User Interface W3C DOM Raw (UI) Events Application as a Web service W3C DOM Semantic Events Data User Facing Ports Resource Facing Ports Events as Messages Rendering as Messages View Control Model Narada Brokering
  • 47. Collaborative SVG As A Web Service NaradaBrokering
  • 48. Collaborative SVG Chess Game in Batik Browser Players Observers
  • 49. WS Display WS Viewer Event (Message) Service Master WS Display WS Viewer Web Service Message Interceptor Collaboration as a WS Set up Session with XGSP Shared Output Port Collaboration Other Participants Text Chat Whiteboard Multiple masters WS Display WS Viewer Application or Content source WSDL Web Service F I U O F I R O
  • 50. SIMD Collaboration Identical Programs receiving identical events Token determines if browser is moving, waiting for opponent or an observer Shared Output port SIMD Collaborative Web Service Non Web Service Implementation SVG Browser SVG Browser SVG Browser SVG Browser SVG Viewer SVG Viewer SVG Viewer SVG Viewer SVG Model (DOM) NaradaBrokering NaradaBrokering
  • 51. Event (Message) Service Master Collaboration as a WS Set up Session with XGSP Shared Input Port ( Replicated WS) Collaboration Other Participants WS Display WS Viewer WS Display WS Viewer WS Display WS Viewer Web Service F I U O F I R O Web Service F I U O F I R O Web Service F I U O F I R O
  • 52. MIMD Collaboration NaradaBrokering Shared Input port MIMD Collaborative Web Service SVG Viewer SVG Viewer SVG Viewer SVG Viewer SVG Model SVG Model SVG Model SVG Model NaradaBrokering
  • 53. Global-MMCS 2.0 XGSP MCU 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. We will deploy it globally and hope to test with later this year. The function of A/V media server will be distributed using NaradaBrokering architecture. Media Servers mix and convert A/V streams 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 from Indiana Java Media Framework basis of Media Servers
  • 54. XGSP Web Service MCU Architecture Gateways convert to uniform XGSP Messaging High Performance (RTP) and XML/SOAP and .. Use Multiple Media servers to scale to many codecs and many versions of audio/video mixing NB Scales as distributed Web Services NaradaBrokering SIP H323 Access Grid Native XGSP Admire Media Servers Filters Session Server XGSP-based Control NaradaBrokering All Messaging
  • 55. A/V Collaboration Systems H323 H.323 is defined as an umbrella standard specifying the components to be used within an H.323-based environment. SIP The Session Initiation Protocol (SIP) defines how to establish, maintain and terminate Internet sessions including multimedia conferences Access Grid enhanced Mbone A/V tools ( VIC, RAT ) Internet 2 network ( Multicast support )
  • 56. XGSP Collaboration Framework To integrate heterogeneous systems into one collaboration system A unified, scalable, robust “overlay” network is needed to support A/V and data group communication over heterogeneous networking environments. A common A/V signaling protocol has to be designed to support interactions between different A/V collaboration endpoints. Different A/V endpoints should collaborate in the same collaboration session.
  • 57. Group Communication in Collaboration Collaboration applications usually need a group communication service for both multipoint data and control information delivery Centralized conferencing systems usually depend upon a single conference server Distributed conferencing systems use IP multicast Access Grid uses Internet2 multicast for audio/video transmission. Problems: Centralized conferencing systems don’t have good scalability and IP multicast has not become ubiquitously available We use distributed NaradaBrokering to provide this communication
  • 58. A/V Collaboration over publish/subscribe Middleware video streams (VS) VS {v 1 , v 2 , … v m } audio streams (AS) AS { a 1 , a 2 , … a n } A/V endpoints: E 1 , E 2 , … E l Each endpoint may send a single or multiple video streams, but only send an audio stream Different types of A/V endpoints have different collaboration capabilities. Multicast endpoints are able to receive multiple video and audio streams, display all the video streams in their screens, and mix all the audio streams by themselves Unicast endpoints like Polycom Via Video can only receive and play a single video and audio stream
  • 59. Publish/subscribe of A/V A stream in VS and AS is regarded as a “topic” Each RTP packet from this stream is regarded as an “event” for this topic Only the sender of this stream can “publish” A/V events to this topic Other endpoints need to subscribe to this topic in order to receive the stream data Create mixed video and audio stream topics for unicast endpoints
  • 60. RTP packets encapsulation RTPLink: RTP Packets map to Narada Brokering Event Every legacy A/V client needs one corresponding RTPLink to be set up at a broker within broker network. Unicast RTPLink: Integer Topic Numbers for RTP and RTCP Multicast RTPLink: A reflector between NaradaBrokers and multicast groups, encapsulating raw RTP packets from a multicast IP address to RTP events, publishing these events to NaradaBrokers, and forwarding the data it receives from broker network on the same IP address
  • 61. Audio Mixer, Video Mixer, Image Grabber Audio Mixing The audio mixer creates a mixed audio stream from all the audio streams in the session Video Mixing Video mixing makes the unicast users watch the pictures of multiple participants in a meeting through one video stream Video Thumbnail visualize the VS set in the session, embedded into the control panel of each endpoint, which Image grabbers capture video streams and save them as static JPEG files. All the media processing components can be distributed among the pool of the media servers connected to NaradaBrokering infrastructures. This generalizes to a farm of “stream servers” doing image processing etc.
  • 62. H.323, SIP Gateway Servers, A/V Session Server H.323 and SIP gateway transform these protocol specific messages into XGSP signaling messages so that H.323 and SIP A/V endpoints could communicate with the XGSP A/V session server The session server implements session management logics creating/destroying A/V sessions allowing endpoints to join/leave session Allowing users to make audio/video selection, managing A/V application components Note Session Server very similar to Context Server in WS-Context
  • 63. 0 10 20 30 40 50 60 0 200 400 600 800 1000 1200 1400 1600 1800 2000 Delay (Milliseconds) Packet Number Average delays per packet for 50 video-clients NaradaBrokering Avg=2.23 ms, JMF Avg=3.08 ms NaradaBrokering-RTP JMF-RTP
  • 64. 0 1 2 3 4 5 6 7 8 0 200 400 600 800 1000 1200 1400 1600 1800 2000 Jitter (Milliseconds) Packet Number Average jitter (std. dev) for 50 video clients. NaradaBrokering Avg=0.95 ms, JMF Avg=1.10 ms NaradaBrokering-RTP JMF-RTP
  • 65. Polycom view of multiple video streams
  • 66. Polycom, Access Grid and RealVideo views of multiple streams using CGL A/V Web Service integrating SIP and H323
  • 68. Application Web Services and Universal Access NaradaBrokering can link lightweight clients (V in MVC) to Web Services holding as a Web service the “guts of an application” (M in MVC) This allows customizable user interfaces gotten by mapping between client profile protocols at NB Supports collaboration between diverse clients Web Service Client1 Client2 M Agent1 Agent2 Profiles NB P1 P2 P Map P to P1 Map P to P2
  • 69. Integration of PDA, Cell phone and Desktop Grid Access

Editor's Notes

  • #11: Every broker in NaradaBrokering incorporates a monitoring service (as shown in Figure 12) that monitors the state of the links originating from the broker node. Metrics computed and reported over individual links, originating from a broker node, include bandwidth , jitter , transit delays , loss rates and system throughputs . Factors are measured in a non-intrusive way so as to ensure that the measurements do not further degrade the metrics being measured in the first place. Factors such as bandwidth measurements, which can pollute other metrics being measured, are measured at lesser frequencies. Furthermore, once a link is deemed to be at the extreme ends of the performance spectrum (either very good or very bad) the measurement of certain factors are turned off while others are measured at a far lower frequency . The monitoring service then reports this data to a performance aggregator node, which aggregates information from monitoring services running at other nodes.
  • #19: The integration is based on the proxy model, which essentially acts as the bridge between the NaradaBrokering system and JXTA. The Narada-JXTA proxy, operating inside the JXTA rendezvous layer, serves in a dual role as both a rendezvous peer and as a NaradaBrokering client providing a bridge between NaradaBrokering and JXTA. NaradaBrokering could be viewed as a service by JXTA. We make no changes to the JXTA core and the associated protocols. We make additions to the rendezvous layer for integration purposes. Second, this integration should entail neither any changes to the peers nor a restriction of the interactions that these peers could have had prior to the integration. Peers do not know that the broker network is routing some of their interactions. Furthermore, these Narada-JXTA proxies, since they are configured as clients within the NaradaBrokering system, inherit all the guarantees that are provided to NaradaBrokering clients.
  • #24: The figure above depicts the sequence of operations involved in securing messaging within NB. When an entity requests permission to publish, the KMC responds back with a topic key if the entity is authorized to publish to the topic. The entity then proceeds to encrypt the message with the topic key, compute a message digest and sign the message digest with its personal private-key. Individual Brokers upon receipt of the secure message can verify the entity signatures and permissions. If it is not authorized to publish or if the message integrity is compromised (revealed by the message digest) the message is discarded. When an entity requests permission to subscribe to a topic, the KMC returns it the topic keys if the entity is authorized to subscribe. Since the subscription needs to be propagated within the system, the entity propagates its subscription request by signing the request with its personal public-key. Upon receipt of a secure message, the subscriber verifies the signature and integrity of the message. It then proceeds to decrypt the secure message with the KMC supplied secret topic-key.
  • #64: Standarad deviation between inter packet arrival times