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);
      • };
    • AQoSA API
      • 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