Integration of QoS-Enabled Distributed Object Computing Middleware for Developing Next-Generation Distributed Applications BBN Technologies.

Slides:



Advertisements
Similar presentations
CS Spring 2012 CS 414 – Multimedia Systems Design Lecture 15 –QoS Admission, QoS Negotiation, and Establishment of AV Connections Klara Nahrstedt.
Advertisements

Seminarium on Component-based Software Engineering Jan Willem Klinkenberg CORBA.
1 Quality Objects: Advanced Middleware for Wide Area Distributed Applications Rick Schantz Quality Objects: Advanced Middleware for Large Scale Wide Area.
ACN: IntServ and DiffServ1 Integrated Service (IntServ) versus Differentiated Service (Diffserv) Information taken from Kurose and Ross textbook “ Computer.
Mobile Agents: A Key for Effective Pervasive Computing Roberto Speicys Cardoso & Fabio Kon University of São Paulo - Brazil.
© DSRG 2001www.cs.agh.edu.pl Cross Grid Workshop - Kraków Krzysztof Zieliński, Sławomir Zieliński University of Mining and Metallurgy {kz,
VSP Video Station Protocol Presented by : Mittelman Dana Ben-Hamo Revital Ariel Tal Instructor : Sela Guy Presented by : Mittelman Dana Ben-Hamo Revital.
CORBA Programming Using ACE/TAO
1 4/20/98ISORC ‘98 BBN Technologies Specifying and Measuring Quality of Service in Distributed Object Systems Joseph P. Loyall, Richard E. Schantz, John.
1 05/01/02ISORC 2002 BBN Technologies Joe Loyall Rick Schantz, Michael Atighetchi, Partha Pal Packaging Quality of Service Control Behaviors for Reuse.
Quality-based Adaptive Resource Management Architecture (QARMA): A CORBA Resource Management Service Presenter: David Fleeman {
D. Schmidt DARPA Example: Navy UAV Concept & Representative Scenario 1. Video feed from off-board source (UAV) 2. Video distributor sends video to hosts.
Understanding the CORBA Model. What is CORBA?  The Common Object Request Broker Architecture (CORBA) allows distributed applications to interoperate.
Institute of Computer and Communication Network Engineering OFC/NFOEC, 6-10 March 2011, Los Angeles, CA Lessons Learned From Implementing a Path Computation.
BBN Technologies Craig Rodrigues Gary Duzan QoS Enabled Middleware: Adding QoS Management Capabilities to the CORBA Component Model Real-time CCM Meeting.
1 Using Quality Objects (QuO) Middleware for QoS Control of Video Streams BBN Technologies Cambridge, MA Craig.
Magnetic Field Measurement System as Part of a Software Family Jerzy M. Nogiec Joe DiMarco Fermilab.
MILCOM 2001 October page 1 Defense Enabling Using Advanced Middleware: An Example Franklin Webber, Partha Pal, Richard Schantz, Michael Atighetchi,
1 06/00 Questions 10/6/2015 QoS in DOS ECOOP 2000John Zinky BBN Technologies ECOOP 2000 Workshop on Quality of Service in Distributed Object Systems
Wireless Access and Terminal Mobility in CORBA Dimple Kaul, Arundhati Kogekar, Stoyan Paunov.
Chapter Three Network Protocols By JD McGuire ARP Address Resolution Protocol Address Resolution Protocol The core protocol in the TCP/IP suite that.
1 10/20/01DOA Application of the QuO Quality-of-Service Framework to a Distributed Video Application Distributed.
Extending OpenLDAP Luke Howard PADL Software Pty Ltd Copyright © 2003 PADL Software Pty Ltd. All rights reserved. PADL is a registered trademark of PADL.
Using SCTP to Improve QoS and Network Fault- Tolerance of DRE Systems OOMWorks LLC BBN Technologies LM ATL Metuchen, NJ Cambridge, MA Camden, NJ Yamuna.
WDMS 2002 June page 1 Middleware Policies for Intrusion Tolerance QuO Franklin Webber, Partha Pal, Chris Jones, Michael Atighetchi, and Paul Rubel.
1 06/ /21/2015 ECOOP 2000 Workshop QoS in DOSJohn Zinky BBN Technologies Quality Objects (QuO) Middleware Framework ECOOP 2000 Workshop QoS in DOS.
1 Applying Adaptive Middleware, Modeling, and Real-Time CORBA Capabilities to Ensure End-to- End QoS Capabilities of Video Streams BBN Technologies Cambridge,
RMI remote method invocation. Traditional network programming The client program sends data to the server in some intermediary format and the server has.
Reconsidering Internet Mobility Alex C. Snoeren, Hari Balakrishnan, M. Frans Kaashoek MIT Laboratory for Computer Science.
Hwajung Lee.  Interprocess Communication (IPC) is at the heart of distributed computing.  Processes and Threads  Process is the execution of a program.
CORBA Common Object Request Broker Architecture. Basic Architecture A distributed objects architecture. Logically, an object client makes method calls.
CS Spring 2014 CS 414 – Multimedia Systems Design Lecture 18 – Multimedia Transport (Part 1) Klara Nahrstedt Spring 2014.
Integration of QoS-enabled Distributed Object Computing Middleware for Developing Next- Generation Distributed Applications By Krishnamurthy et Al. Presented.
1 BBN Technologies Quality Objects (QuO): Adaptive Management and Control Middleware for End-to-End QoS Craig Rodrigues, Joseph P. Loyall, Richard E. Schantz.
Complementary Methods for QoS Adaptation in Component-based Multi-Agent Systems MASS 2004 August 30, 2004 John Zinky, Richard Shapiro, Sarah Siracuse BBN.
1 010/02 Aspect-Oriented Interceptors Pattern 1/4/2016 ACP4IS 2003John Zinky BBN Technologies Aspect-Oriented Interceptors Pattern Dynamic Cross-Cutting.
AMQP, Message Broker Babu Ram Dawadi. overview Why MOM architecture? Messaging broker like RabbitMQ in brief RabbitMQ AMQP – What is it ?
Interceptor CS562 Spring 2002 Jan Anand Krishnan Morgan Deters Venkita Subramonian.
Slide 1 2/22/2016 Policy-Based Management With SNMP SNMPCONF Working Group - Interim Meeting May 2000 Jon Saperia.
Nguyen Thi Thanh Nha HMCL by Roelof Kemp, Nicholas Palmer, Thilo Kielmann, and Henri Bal MOBICASE 2010, LNICST 2012 Cuckoo: A Computation Offloading Framework.
OIC Open Source Work Group. 1 Architecture IoTivity v1.0 CA API CA Control Network Config. Network Config. CoAP Protocol CoAP Protocol Interface Controller.
© Airspan Networks Inc. Automatic QoS Testing over IEEE Standard.
Software and Communication Driver, for Multimedia analyzing tools on the CEVA-X Platform. June 2007 Arik Caspi Eyal Gabay.
VoIP ALLPPT.com _ Free PowerPoint Templates, Diagrams and Charts.
Examples (D. Schmidt et al)
Application and Desktop Sharing
The Role of Reflection in Next Generation Middleware
Instructor Materials Chapter 6: Quality of Service
Joe Loyall, Rick Schantz, Gary Duzan
Middleware Policies for Intrusion Tolerance
Klara Nahrstedt Spring 2009
CORBA Alegria Baquero.
Processes The most important processes used in Web-based systems and their internal organization.
QoS-Enabled Middleware
Chapter 2 Introduction Application Requirements VS. Transport Services
Transparent Adaptive Resource Management for Middleware Systems
Taxonomy of network applications
* Essential Network Security Book Slides.
Chapter 3: Open Systems Interconnection (OSI) Model
Applying Domain-Specific Modeling Languages to Develop DRE Systems
CORBA Alegria Baquero.
Process-to-Process Delivery:
By Krishnamurthy et Al. Presented by David Girsault
An Introduction to Software Architecture
System Models and Networking Chapter 2,3
Utility-Function based Resource Allocation for Adaptable Applications in Dynamic, Distributed Real-Time Systems Presenter: David Fleeman {
Transparent Adaptive Resource Management for Middleware Systems
On the notion of Variability in Software Product Lines
Quality-aware Middleware
Chapter 13: I/O Systems.
Presentation transcript:

Integration of QoS-Enabled Distributed Object Computing Middleware for Developing Next-Generation Distributed Applications BBN Technologies Washington University Cambridge, MA St. Louis, MO Craig Rodrigues, David A. Karr Yamuna Krishnamurthy Joseph P. Loyall, Richard Schantz Vishal Kachroo University of California Irvine, CA Douglas C. Schmidt ACM SIGPLAN Workshop on Optimization of Middleware and Distributed Systems (OM 2001) June 18, 2001

Unmanned Air Vehicle uav.navair.navy.mil/home.htm

Prototype Architecture Video feed from off-board source (UAV) Distributor sends video to hosts on ship’s network Users’ hosts receive video and display it Users send commands to UAV to control it 1 2 3

Why is Adaptation Necessary? Limited resources CPU and network bandwidth are shared by many applications, not just video Some applications are of higher priority than others, so it becomes necessary to adapt in response to scheduling and resource management decisions

UAV adaptive tactics ...PBBPBBPBBI I I I NETWORK RESERVATION IBBPBBPBBPBBPBBPBBIBBPB NETWORK RESERVATION Under excessive Network load - Use IntServ/DiffServ to reserve bandwidth ...PBBPBBPBBI I I I DATA FILTERING Excessive network or CPU load - Drop frames LOAD BALANCING Excessive CPU load - Move distributor to more lightly loaded host

CORBA Audio/Video Service Why use a Framework? Quality Objects (QuO) provides higher level programming model for specifying application-level QoS CORBA Audio/Video Service abstracts away network programming concerns such as connection management ACE QoS API (AQoSA) uniform API for QoS (RSVP, GQoS)

UAV application design CORBA A/V Streaming Service + AQoSA Resource Reservation (IntServ) CORBA A/V Streaming Service Video Source Process Video DIstributor Video Display Proxy Video Display Reservation requests Observed throughput Frame filtering commands VIDEO DISPLAY HOST 1 QuO Contract UAV Video File VIDEO DISPLAY HOST 2 VIDEO DISTRIBUTION HOST UAV SIMULATION HOST VIDEO DISPLAY HOST N Common middleware services TAO CORBA A/V Service QuO AQoSA TAO Naming Service Reused Off the Shelf Software DVDView video player

Functionality of the UAV architecture Video Source Process UAV SIMULATION HOST Video Distributor VIDEO DISTRIBUTION HOST Video Display VIDEO DISPLAY HOST 1 Display Proxy VIDEO DISPLAY HOST N Functionality Read bytes from a file Convert into frames Send out pipe Other inter-twined aspects Timing: periodic delivery of frames Base Functionality Receive frames Send frames to registered receivers Other intertwined aspects Functional: Frame filtering (i.e., frame dropping) QoS: Measuring frame rate Measuring resource usage and availability (CPU and network) Adapting to performance degradation (e.g., frame dropping, load balancing) Real Time: Time stamping Sequencing Display frames on the screen Removing time stamp Removing sequencing Discarding frame if late or out of sequence VIDEO DISPLAY HOST 2

Quality Objects (QuO) Provides a higher level programming model for specifying application QoS operating regions specified in QuO Contracts transitions between regions trigger adaptive behaviors Support for different middleware architectures CORBA (Java and C++) Java RMI

Specifying QoS behaviors with QuO C++ Application Code behavior Timestamp () { void distributor::send_frame(ACE_Message_Block *frame) { inplaceof METHODCALL { ACE_Message_Block *timed_msg = add_timestamp(frame); remoteObj->send_frame(timed_msg); } } void displayproxy::send_frame(ACE_Message_Block *frame) {extern long last_time_processed; inplaceof METHODCALL { ACE_Message_Block *timed_msg = remove_timestamp(frame, tsp); if (tsp >= last_time_processed) { // is this a late frame remoteObj->send_frame(timed_msg); last_time_processed = tsp; // else drop frame, a more recent frame has already been delivered }; class Sender { public: /// Constructor Sender (void); int init (int argc, char **argv, CORBA::Environment&); /// Method to initialize the various data components. /// Method to pace and send data from a file. int pace_data (CORBA::Environment &); /// Accessor to the connection manager. /// Amount of debugging info to print out: 0 = none, 10 = lots Connection_Manager &connection_manager (void); int debug_level_; private: /// Method to parse the command line arguments. }; ... ... class Distributor Distributor (void); /// Destructor. ~Distributor (void); /// Initialize data components. /// Parse args. int init (int argc, char **argv, CORBA::Environment &); int parse_args (int argc, char **argv); // Flag to know when we are done. int done (void) const; /// Accessor to connection manager. void done (int); /// Amount of debugging output to print out; 0 = none, 10 = lots /// Connection manager. protected: class Sender { public: /// Constructor Sender (void); int init (int argc, char **argv, CORBA::Environment&); /// Method to initialize the various data components. /// Method to pace and send data from a file. int pace_data (CORBA::Environment &); /// Accessor to the connection manager. /// Amount of debugging info to print out: 0 = none, 10 = lots Connection_Manager &connection_manager (void); int debug_level_; private: /// Method to parse the command line arguments. }; ... ... class Distributor Distributor (void); /// Destructor. ~Distributor (void); /// Initialize data components. /// Parse args. int init (int argc, char **argv, CORBA::Environment &); int parse_args (int argc, char **argv); // Flag to know when we are done. int done (void) const; /// Accessor to connection manager. void done (int); /// Amount of debugging output to print out; 0 = none, 10 = lots /// Connection manager. protected: class Sender { public: /// Constructor Sender (void); int init (int argc, char **argv, CORBA::Environment&); /// Method to initialize the various data components. /// Method to pace and send data from a file. int pace_data (CORBA::Environment &); /// Accessor to the connection manager. /// Amount of debugging info to print out: 0 = none, 10 = lots Connection_Manager &connection_manager (void); int debug_level_; private: /// Method to parse the command line arguments. }; ... ... class Distributor Distributor (void); /// Destructor. ~Distributor (void); /// Initialize data components. /// Parse args. int init (int argc, char **argv, CORBA::Environment &); int parse_args (int argc, char **argv); // Flag to know when we are done. int done (void) const; /// Accessor to connection manager. void done (int); /// Amount of debugging output to print out; 0 = none, 10 = lots /// Connection manager. protected: behavior Sequence () { int sequence_number = 1; void distributor::send_frame(ACE_Message_Block *frame) { inplaceof METHODCALL { // insert sequence number ACE_Message_Block *seq_msg = add_sequence_number(frame, sequence_number); remoteObj->send_frame(seq_msg); seq_number++; } } }; behavior Filter () { void distributor::send_frame(ACE_Message_Block *frame) { inplaceof METHODCALL { // examine contract and drop B or P frames if necessary ... } }; Video Source Process Video Distributor Process Filter? Insert Seq. No. Display Proxy Process Video Display Process Periodic Delivery Insert Timestamp Remove Timestamp Remove Seq. No. Filter? Insert Seq. No. UAV SIMULATION HOST VIDEO DISPLAY HOST 1 VIDEO DISTRIBUTION HOST VIDEO DISPLAY HOST 2 VIDEO DISPLAY HOST N

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 Service Specification using TAO

CORBA A/V Service Overview Stream EndPoint (Sink) Stream Interface Control Object Stream Interface Control Object Stream EndPoint (Source) Control and Management Objects Stream Adaptor POA POA Stream Adaptor ORB Multimedia Stream

CORBA A/V Service Overview StreamCtrl controlling the stream MMDevice interface for logical or physical device StreamEndPoint network specific aspects of a stream Vdev properties of the stream

QoS Enabled TAO A/V Service TAO AV QoS Framework AQoSA QoS Mapping QoS Monitoring QoS Adaptation ACE QoS API (AQoSA) RAPI GQoS

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

Connection Establishment bind_devs (aMMDevice, bMMDevice) StreamCtrl create_B create_A (with QoS) A_Endpoint, A_VDev B_Endpoint, B_VDev connect QoS Monitor QoS Mapper aMMDevice bMMDevice register session app qos qos events network qos and callback A_Endpoint AQoSA B_Endpoint create session request_connection reserve path bVDev aVDev configure

X X Change in QoS AQoSA QoS Monitor adapt AV_Adaptor adapt Adaptor configure change Shaping Filter Selection Filter AV_Adaptor qos events modify X X AQoSA

Integrating TAO A/V in the UAV Application More flexible than ad-hoc socket code Facilitated additional features: Multiple Viewers Multiple receivers Movable distributors Network level QoS (with AQoSA) Host name and port info Migration of the processes across different hosts was cumbersome Poor scalability and flow management Not flexible to design changes and addition of components. Video Source Process Video Distributor Process Display Proxy Process Video Display Process Instrumentation A/V Stream Adhoc TCP Connection Video Forwarding Code Adhoc TCP Connection A/V Stream + AQoSA Video Forwarding Code Video Display Code Video Forwarding Code CPU load Throughput Output Rate Control Queue Size Bandwidth Output Rate Control Throughput Contract CPU load UAV Video File Contract QuO Adaptive Control Process QuO Adaptive Control Process VIDEO DISTRIBUTION HOST VIDEO DISPLAY HOST

Flexible Configuration Distributor Switching Sender Switching Multiple Receivers Multiple Distributors Sender Restarting Sender X Distributor X X Receiver Sender X Distributor X Receiver-1 Distributor-1 Receiver-2

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