Upcoming SlideShare
Loading in...5







Total Views
Views on SlideShare
Embed Views



0 Embeds 0

No embeds



Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
Post Comment
Edit your comment

NSWC-6-25-01.ppt NSWC-6-25-01.ppt Presentation Transcript

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