0
QoS Enabled A/V Streaming Irfan Pyarali Yamuna Krishnamurthy
Presentation Outline <ul><li>Vanilla CORBA Audio/Video Streaming Service </li></ul><ul><li>QoS enabled A/V Streaming </li>...
CORBA Audio/Video Streaming Service <ul><li>Goals of OMG CORBA A/V Service Specification </li></ul><ul><ul><li>Define stan...
Components in the CORBA A/V Service Stream  EndPoint (Sink) Stream Interface  Control Object Stream  Adaptor POA ORB Contr...
A/V Streaming Interfaces <ul><li>StreamCtrl   </li></ul><ul><ul><li>controlling the stream </li></ul></ul><ul><li>MMDevice...
request_connection StreamCtrl aMMDevice bMMDevice create _ A A_Endpoint, A_VDev create _ B B_Endpoint, B_VDev A _ Endpoint...
Point-to-Multipoint Streaming <ul><li>Asymmetrical- Only flow producers in source MMDevice, only flow consumers in sink MM...
Point-To-Multipoint Connection Establishment <ul><li>The MCastConfigIF interface acts as the virtual sink </li></ul><ul><l...
A/V Streaming: Pluggable Protocols <ul><li>Layers Pattern  – Decoupled transport from flow protocols </li></ul><ul><li>Acc...
QoS Enabled A/V Streaming <ul><li>AV QoS Framework </li></ul><ul><ul><li>QoS Transport (AQoSA) </li></ul></ul><ul><ul><li>...
QoS Specification <ul><li>//From Property Service </li></ul><ul><li>typedef string PropertyName; </li></ul><ul><li>struct ...
<ul><li>modify_qos(newQoS)  method for QoS renegotiations </li></ul><ul><li>Changes the QoS associated with the stream </l...
QoS Negotiation <ul><li>Negotiator interface is used to negotiate QoS between two stream endpoints </li></ul><ul><li>Negot...
AQoSA API <ul><li>Binds flows to reservations  in a uniform and portable way </li></ul><ul><li>Encapsulates  application’s...
AQoSA Architecture
AQoSA Session Design <ul><li>AQoSA uses the  BRIDGE  pattern </li></ul><ul><li>Separate Abstraction and Implementor hierar...
AQoSA Session Factory <ul><li>AQoSA uses the  ABSTRACT FACTORY  pattern </li></ul><ul><li>Abstract Factory </li></ul><ul><...
AQoSA Event Notification <ul><li>AQoSA QoS events </li></ul><ul><ul><li>Changes to Resource reservations </li></ul></ul><u...
AQoSA Event Notification <ul><li>AQoSA uses the  Reactor  to listen to QoS Events </li></ul><ul><ul><li>High level APIs </...
QoS Decorator <ul><li>Allows applications to continue using the ACE event handling model for QoS events </li></ul><ul><li>...
QoS Session/Socket Association <ul><li>Many to Many relation </li></ul><ul><li>QoS Manager </li></ul><ul><ul><li>Separates...
RAPI Sender Session Sender QoS_Session_Factory create Session ( ) qos_session qos_session open ( ) RAPI ACE_Sock_Dgram_Mca...
RAPI Receiver Session Receiver QoS_Session_Factory create Session ( ) qos_session qos_session open ( ) RAPI ACE_Sock_Dgram...
QoS Enabled Point-to-Point Streaming request_connection app qos network qos StreamCtrl aMMDevice bMMDevice create _ A A_En...
Handling Changes in QoS QoS Monitor qos events AQoSA Shaping  Filter Selection  Filter Adapto r Adaptor Quo System Conditi...
UAV Application Design Video Source Process UAV  SIMULATION  HOST UAV Video File Video DIstributor VIDEO DISTRIBUTION HOST...
Asynchronous StartUp <ul><li>Sender Up, No Receivers </li></ul>Naming Service Sender resolve Sender bind Sender Sender Sen...
Asynchronous StartUp <ul><li>No Sender, First Receiver Up </li></ul>Naming Service Receiver1 resolve Sender resolve Sender...
Naming Service Sender Sender Receivers Receiver1 Receiver2 Receiver1 Receiver2 Sender resolve Sender resolve Receivers <ul...
Naming Service Sender Sender Receivers Receiver1 Receiver2 Receiver1 Receiver2 Sender <ul><li>Receivers and Sender Up, the...
Flexible Configuration <ul><li>Distributor Switching </li></ul>Sender Distributor Receiver Distributor X X Sender X Receiv...
Further References and Obtaining Software <ul><li>http://www.dist-systems.bbn.com/tech/QuO/ </li></ul><ul><ul><li>informat...
Upcoming SlideShare
Loading in...5
×

NSWC-6-25-01.ppt

256

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
256
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
3
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Transcript of "NSWC-6-25-01.ppt"

  1. 1. QoS Enabled A/V Streaming Irfan Pyarali Yamuna Krishnamurthy
  2. 2. Presentation Outline <ul><li>Vanilla CORBA Audio/Video Streaming Service </li></ul><ul><li>QoS enabled A/V Streaming </li></ul><ul><li>AQoSA API design and implementation </li></ul><ul><li>UAV Application Design </li></ul>
  3. 3. CORBA Audio/Video Streaming Service <ul><li>Goals of OMG CORBA A/V Service Specification </li></ul><ul><ul><li>Define standard mechanisms for: </li></ul></ul><ul><ul><ul><li>Stream Establishment </li></ul></ul></ul><ul><ul><ul><li>Stream Control </li></ul></ul></ul><ul><ul><ul><li>Multiple Flows </li></ul></ul></ul><ul><ul><ul><li>Multiple Protocols </li></ul></ul></ul><ul><ul><ul><li>QoS </li></ul></ul></ul><ul><li>Goals of TAO A/V Streaming Service Project </li></ul><ul><ul><li>Implement OMG CORBA A/V Specification using TAO </li></ul></ul><ul><ul><li>Provide pluggable transport protocols </li></ul></ul><ul><ul><li>Provide QoS enabled streaming </li></ul></ul>
  4. 4. Components in the CORBA A/V Service Stream EndPoint (Sink) Stream Interface Control Object Stream Adaptor POA ORB Control and Management Objects POA Stream EndPoint (Source) Stream Interface Control Object Multimedia Stream Stream Adaptor
  5. 5. A/V Streaming Interfaces <ul><li>StreamCtrl </li></ul><ul><ul><li>controlling the stream </li></ul></ul><ul><li>MMDevice </li></ul><ul><ul><li>interface for logical or physical device </li></ul></ul><ul><li>StreamEndPoint </li></ul><ul><ul><li>network specific aspects of a stream </li></ul></ul><ul><li>Vdev </li></ul><ul><ul><li>properties of the stream </li></ul></ul>
  6. 6. request_connection StreamCtrl aMMDevice bMMDevice create _ A A_Endpoint, A_VDev create _ B B_Endpoint, B_VDev A _ Endpoint aVDev bVDev connect configure bind_devs (aMMDevice, bMMDevice) B_Endpoint Point-to-Point Streaming
  7. 7. Point-to-Multipoint Streaming <ul><li>Asymmetrical- Only flow producers in source MMDevice, only flow consumers in sink MMDevice </li></ul><ul><li>Only sources are started and stopped </li></ul><ul><li>Sink can listen to any subset of flows </li></ul><ul><li>Solution based on IP Multicasting </li></ul>
  8. 8. Point-To-Multipoint Connection Establishment <ul><li>The MCastConfigIF interface acts as the virtual sink </li></ul><ul><li>This interface keeps a list of the sinks </li></ul><ul><li>UDP multicasting is used to send and receive the actual data </li></ul>
  9. 9. A/V Streaming: Pluggable Protocols <ul><li>Layers Pattern – Decoupled transport from flow protocols </li></ul><ul><li>Acceptor/Connector uses Flow_Factory interface to create protocol objects </li></ul>
  10. 10. QoS Enabled A/V Streaming <ul><li>AV QoS Framework </li></ul><ul><ul><li>QoS Transport (AQoSA) </li></ul></ul><ul><ul><li>QoS Mapping </li></ul></ul><ul><ul><li>QoS Monitoring </li></ul></ul><ul><ul><li>QoS Adaptation </li></ul></ul><ul><li>ACE QoS API (AQoSA) </li></ul><ul><ul><li>RAPI </li></ul></ul><ul><ul><li>GQoS </li></ul></ul>
  11. 11. QoS Specification <ul><li>//From Property Service </li></ul><ul><li>typedef string PropertyName; </li></ul><ul><li>struct Property{ </li></ul><ul><li>PropertyName property_name; </li></ul><ul><li>any property_value; </li></ul><ul><li>}; </li></ul><ul><li>typedef sequence<Property> Properties; </li></ul><ul><li>struct QoS { </li></ul><ul><li>string QoSType; </li></ul><ul><li>Properties QoSParams; </li></ul><ul><li>}; </li></ul><ul><li>typedef sequence<QoS> streamQoS; </li></ul><ul><li>Two levels of specifying QoS </li></ul><ul><ul><li>application (video frame rate) </li></ul></ul><ul><ul><li>network (bandwidth) </li></ul></ul><ul><li>QoS definition is a named list of properties and their values </li></ul>
  12. 12. <ul><li>modify_qos(newQoS) method for QoS renegotiations </li></ul><ul><li>Changes the QoS associated with the stream </li></ul><ul><ul><li>Empty the_spec means apply operation to all flows </li></ul></ul><ul><li>Method on StreamCtrl, StreamEndPoint, Vdev interfaces </li></ul><ul><li>boolean </li></ul><ul><li>modify_QoS ( </li></ul><ul><li>inout streamQoS new_qos, in flowSpec the_spec) </li></ul><ul><li>raises ( </li></ul><ul><li>noSuchFlow, </li></ul><ul><li>QoSRequestFailed); </li></ul>QoS Modification
  13. 13. QoS Negotiation <ul><li>Negotiator interface is used to negotiate QoS between two stream endpoints </li></ul><ul><li>Negotiator interface is defined as a property of the StreamEndpoint </li></ul><ul><li>The negotiate() method is called when there is a change in the specified QoS </li></ul><ul><li>The negotiator can be derived by the user to perform application specific functionality </li></ul><ul><li>In the UAV scenario the QuO System Condition Object is derived from the Negotiator </li></ul><ul><li>interface Negotiator { </li></ul><ul><li>boolean negotiate ( </li></ul><ul><li>in Negotiator remote_negotiator, </li></ul><ul><li>in streamQoS qos_spec); </li></ul><ul><li>}; </li></ul>
  14. 14. AQoSA API <ul><li>Binds flows to reservations in a uniform and portable way </li></ul><ul><li>Encapsulates application’s notion of the underlying network QoS </li></ul><ul><li>Separates QoS properties of its sessions from low-level socket data transfer aspects </li></ul><ul><li>Allows the application to specify and request QoS. Be notified if the QoS was not available </li></ul><ul><li>Updates itself based on QoS notifications </li></ul><ul><li>Portably wraps the QoS parameters </li></ul><ul><li>Implementation targets (RSVP) Resource reSerVation Protocol </li></ul><ul><ul><li>RAPI & GQoS </li></ul></ul>
  15. 15. AQoSA Architecture
  16. 16. AQoSA Session Design <ul><li>AQoSA uses the BRIDGE pattern </li></ul><ul><li>Separate Abstraction and Implementor hierarchies </li></ul><ul><ul><li>Abstraction : QoS Protocols </li></ul></ul><ul><ul><li>Implementor : QoS Protocol Impls . </li></ul></ul><ul><li>Hierarchies separately extensible to include future QoS protocols and Impls. </li></ul><ul><li>Hides the class representation from clients </li></ul><ul><li>AQoSA uses a factory to manage the lifecycle of QoS sessions </li></ul><ul><li>Clients only need to relink not recompile </li></ul>
  17. 17. AQoSA Session Factory <ul><li>AQoSA uses the ABSTRACT FACTORY pattern </li></ul><ul><li>Abstract Factory </li></ul><ul><ul><li>QoS Session Factory </li></ul></ul><ul><li>Concrete Factories </li></ul><ul><ul><li>IntServ Protocol Factory </li></ul></ul><ul><ul><li>DiffServ Protocol Factory </li></ul></ul><ul><li>Isolates the concrete classes </li></ul><ul><li>Switching factories allows us to change complete hierarchies of implementations without change of interfaces. </li></ul><ul><li>SINGLETON pattern </li></ul>
  18. 18. AQoSA Event Notification <ul><li>AQoSA QoS events </li></ul><ul><ul><li>Changes to Resource reservations </li></ul></ul><ul><ul><li>RSVP : RSVP events triggered through signaling </li></ul></ul><ul><ul><li>DiffServ : Non-signaling means </li></ul></ul><ul><li>Problem </li></ul><ul><ul><li>Different interfaces/models from different Service Providers </li></ul></ul><ul><ul><li>GQoS model: Modified socket API </li></ul></ul><ul><ul><li>RAPI model: RAPI Daemon </li></ul></ul><ul><ul><li>Native APIs => Inconsistent Application Design </li></ul></ul><ul><ul><li>Solution should be consistent with traditional ACE event handling model </li></ul></ul>
  19. 19. AQoSA Event Notification <ul><li>AQoSA uses the Reactor to listen to QoS Events </li></ul><ul><ul><li>High level APIs </li></ul></ul><ul><ul><li>Inherent and Accidental complexity </li></ul></ul><ul><ul><li>Decouples demultiplexing/dispatching from QoS event handling </li></ul></ul><ul><li>AQoSA notifies applications of QoS events when </li></ul><ul><ul><li>A particular QoS state is accepted/rejected for the first time </li></ul></ul><ul><ul><li>The QoS state is updated </li></ul></ul><ul><li>AQoSA enhances the existing ACE Event Handling model through DECORATOR PATTERN </li></ul>
  20. 20. QoS Decorator <ul><li>Allows applications to continue using the ACE event handling model for QoS events </li></ul><ul><li>Associates QoS responsibilities to the ACE Event Handler dynamically </li></ul><ul><li>Only a single Event Handler registered with the reactor by the application for Read/Write/QoS </li></ul>
  21. 21. QoS Session/Socket Association <ul><li>Many to Many relation </li></ul><ul><li>QoS Manager </li></ul><ul><ul><li>Separates the QoS session from the Socket </li></ul></ul><ul><ul><li>Manages QoS sessions that a socket has subscribed to </li></ul></ul><ul><ul><li>Keeps the ACE SOCK classes lightweight </li></ul></ul><ul><ul><li>Manages the QoS FlowSpec Profiler </li></ul></ul>
  22. 22. RAPI Sender Session Sender QoS_Session_Factory create Session ( ) qos_session qos_session open ( ) RAPI ACE_Sock_Dgram_Mcast_QoS subscribe ( ) qos ( ) QoS_Decorator init ( ) ACE_Reactor register_handler ( ) rapi_session ( ) QoS_Manager join_qos_session ( ) rapi_sender ( ) Create a RAPI Sender Session and initiate PATH Messages
  23. 23. RAPI Receiver Session Receiver QoS_Session_Factory create Session ( ) qos_session qos_session open ( ) RAPI ACE_Sock_Dgram_Mcast_QoS subscribe ( ) qos ( ) QoS_Decorator init ( ) ACE_Reactor register_handler ( ) rapi_session ( ) QoS_Manager join_qos_session ( ) rapi_reserve ( ) Create a RAPI Receiver Session and initiate RESV Messages
  24. 24. QoS Enabled Point-to-Point Streaming request_connection app qos network qos StreamCtrl aMMDevice bMMDevice create _ A A_Endpoint, A_VDev create _ B B_Endpoint, B_VDev A _ Endpoint aVDev bVDev connect configure (with QoS) QoS Mapper AQoSA create session reserve path bind_devs (aMMDevice, bMMDevice) qos events bind_devs (aMMDevice, bMMDevice, streamQoS) register session and callback QoS Monitor B_Endpoint change Negotiator negotiate modify_qos
  25. 25. Handling Changes in QoS QoS Monitor qos events AQoSA Shaping Filter Selection Filter Adapto r Adaptor Quo System Condition Object X X change adapt configure adapt Quo Contract modify
  26. 26. UAV Application Design Video Source Process UAV SIMULATION HOST UAV Video File Video DIstributor VIDEO DISTRIBUTION HOST QuO Contract VIDEO DISPLAY HOST 1 Video Display Proxy CORBA A/V Streaming Service + AQoSA Resource Reservation (IntServ) CORBA A/V Streaming Service <ul><li>Reused Off the Shelf Software </li></ul><ul><li>DVDView video player </li></ul><ul><li>Common middleware services </li></ul><ul><li>TAO CORBA A/V Service </li></ul><ul><li>QuO </li></ul><ul><li>AQoSA </li></ul><ul><li>TAO Naming Service </li></ul>Frame filtering commands Observed throughput Reservation requests Video Display VIDEO DISPLAY HOST 2 VIDEO DISPLAY HOST N
  27. 27. Asynchronous StartUp <ul><li>Sender Up, No Receivers </li></ul>Naming Service Sender resolve Sender bind Sender Sender Sender Receivers
  28. 28. Asynchronous StartUp <ul><li>No Sender, First Receiver Up </li></ul>Naming Service Receiver1 resolve Sender resolve Sender Sender Sender Receivers Receiver1 Receiver2 bind Receiver1 bind Receiver2 Receiver2 <ul><li>No Sender, Second Receiver Up </li></ul>
  29. 29. Naming Service Sender Sender Receivers Receiver1 Receiver2 Receiver1 Receiver2 Sender resolve Sender resolve Receivers <ul><li>Receivers Up, then Sender Up </li></ul>Asynchronous StartUp
  30. 30. Naming Service Sender Sender Receivers Receiver1 Receiver2 Receiver1 Receiver2 Sender <ul><li>Receivers and Sender Up, then Third Receiver Up </li></ul>Receiver3 resolve Sender bind Receiver3 Receiver3 Asynchronous StartUp
  31. 31. Flexible Configuration <ul><li>Distributor Switching </li></ul>Sender Distributor Receiver Distributor X X Sender X Receiver-1 Receiver-2 Distributor-1 X X <ul><li>Sender Switching </li></ul><ul><li>Multiple Receivers </li></ul><ul><li>Multiple Distributors </li></ul><ul><li>Sender Restarting </li></ul>
  32. 32. Further References and Obtaining Software <ul><li>http://www.dist-systems.bbn.com/tech/QuO/ </li></ul><ul><ul><li>information about QuO framework </li></ul></ul><ul><ul><li>to obtain QuO, send e-mail to quo-help@bbn.com </li></ul></ul><ul><li>http://www.cs.wustl.edu/~schmidt/TAO.html </li></ul><ul><ul><li>source code for TAO ORB, CORBA A/V service, and AQoSA </li></ul></ul><ul><ul><li>UAV application uses TAO 1.1.15 or higher (TAO 1.2 major release is imminent) </li></ul></ul><ul><ul><li>further information can be obtained via e-mail from av@oomworks.com </li></ul></ul><ul><li>Contact information: </li></ul><ul><ul><li>Craig Rodrigues, crodrigu@bbn.com, 1-617-873-4725 </li></ul></ul><ul><ul><li>Yamuna Krishnamurthy, yamuna@oomworks.com, 1-314-726-1368 </li></ul></ul>
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×