1 / 15

Packaging Quality of Service Control Behaviors for Reuse

Packaging Quality of Service Control Behaviors for Reuse. Joe Loyall. BBN Technologies. ISORC 2002 April 29-May 1, 2002. Rick Schantz, Michael Atighetchi, Partha Pal. Trends Motivating Development of QoS-Enabled, Adaptive Middleware. Trends in technology development

ellene
Download Presentation

Packaging Quality of Service Control Behaviors for Reuse

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Packaging Quality of Service Control Behaviors for Reuse Joe Loyall BBN Technologies ISORC 2002 April 29-May 1, 2002 Rick Schantz, Michael Atighetchi, Partha Pal

  2. Trends Motivating Development of QoS-Enabled, Adaptive Middleware • Trends in technology development • Hardware keeps getting smaller, faster, and cheaper • Software keeps getting larger, slower, and more expensive • Challenges in Software Development • Building distributed systems is difficult • Simultaneously the two dimensions of • Wider distribution across WANs, including wireless and satellite links • Smaller embedded environments with strict QoS and resource constraints have made distributed systems development increasingly difficult

  3. The Quality Objects (QuO) Framework Supports Development of Distributed Applications with QoS The QuO framework provides • Separation of concerns between software functional properties and QoS needs • Consistent interfaces for QoS measurement and resource management control • Standard middleware interfaces between application and QoS-provider layers • Facilities to enable application- and system-level adaptation QuO is being developed as a common approach to adaptable QoS for a number of projects focusing on different QoS dimensions: • Dependability, replication, group communication (U.Illinois, Cornell, UCSB) • Managed bandwidth, resource reservation (CMU, Columbia Univ., OOMWorks) • Real-time behavior (Washington Univ in St. Louis, OOMWorks) • Security, access control, survivability, intrusion detection (TIS) • Integrating different dimensions in an application, e.g., real-time and dependability • Suitability for supporting different approaches to a dimension

  4. in args OBJECT (SERVANT) OBJECT (SERVANT) in args Contract Contract CLIENT CLIENT OBJECT (SERVANT) OBJECT (SERVANT) operation() OBJ REF out args + return value IDL SKELETON IDL STUBS OBJECT ADAPTER Network ORB ORB ORB ORB IIOP IIOP IIOP IIOP Network QuO Adds Specification, Measurement, and Adaptation into the Distributed Object Model Application Developer CORBA DOC MODEL Mechanism Developer Application Developer CLIENT CLIENT operation() OBJ REF out args + return value Delegate Delegate QuO Developer SysCond SysCond SysCond QUO/CORBA DOC MODEL SysCond IDL SKELETON MECHANISM/PROPERTY MANAGER IDL STUBS OBJECT ADAPTER Mechanism Developer

  5. QuO Provides In-Band and Out-of-Band Measurement • In-band measurement handled by instrumentation • A structure is transparently passed along with the method call/return • Information can be inserted, read, and processed to record and evaluate method call statistics (e.g., the time spent in marshalling) • Out-of-band measurement provided by system condition objects

  6. QuO Provides In-Band and Out-of-Band Adaptation and Control • In-band adaptation provided by the delegate and gateway • A delegate decides what to do with a method call or return based upon the state of its contract • Gateway enables control and adaptation at the transport layer • Out-of-band adaptation triggered by transitions in contract regions • Caused by changes in the system observed by system condition objects

  7. The QuO Toolkit Supports Building Adaptive Applications or Adding Adaptation to Existing Apps • QuO aspect languages • Contract description language and adaptive behavior description language • Code generators that weave QuO code into Java and C++ applications • System Condition Objects • Provide interfaces to resources, managers, and mechanisms • QuO Runtime Kernel • Contract evaluator • Factory object which instantiates contract and system condition objects • Instrumentation library • QuO gateway • Insertion of special purpose transport layers and adaptation below the ORB CORBA IDL Contract Description Language (CDL) Contracts Delegates QuO Runtime Code Generators Adaptation Specification Language (ASL)

  8. Adapter Interface Delegate Templates Qosket Contracts System Condition Objects Delegate Interface Callback Objects Qosket Implementation Helper Methods QuO Components Are Packaged into Reusable Bundles of “Systemic Behavior” Called Qoskets • The Qosket encapsulates a set of contracts (CDL), system condition objects (IDL), and QoS adaptive behavior (ASL) • The Qosket exposes interfaces to access QuO controls and information (specified in IDL) • The Qosket separates the functional adaptive behavior (business logic) from the QoS adaptive behavior and the middleware controls from the QoS mechanisms

  9. Specialized to a Business Interface Reusable Qosket Adapter-Qosket.idl Delegate-Qosket.idl Contract.cdl Business.idl Hand-written Hand-written Hand-written Adapt.asl Adapt-Template.asl Hand-written Adapter-Qosket.java Delegate-Qosket.java QDL compiler generated implements (java) AdapterQosket- Skel.java QDL compiler generated implements (java) QDL compiler generated QDL compiler generated Contract Delegate extends (java) Qosket- Impl.java Hand-written implements (java) extends (java) Callback.idl Syscond.idl QDL compiler generated Hand-written QBAdapter.java Exposed through an External Interface Callback Stub Syscond Stub IDL compiler generated extends (java) Callback- Impl.java Syscond- Impl.java Hand-written Hand-written QBWrapper.java QDL or IDL code Native language code Key Functional QoS Writing a Qosket, Instantiating and Wrapping It, and Specializing It to a Functional Interface

  10. An Example: A Video Distribution Application • Must maintain QoS Requirements, make Tradeoffs • Timeliness of the video • Fidelity of the video • Data quality of the video • Qoskets are used to support the QoS properties • async_sender - threading and thread priorities • atr - controls image quality to support image processing • distributor - monitors and controls throughput • filter - filters frames • fragment - fragments and re-assembles frames to support rsvp • fragment_ppm - ditto for PPM • frame_proc - introduces tasking • header - creates and processes RTP headers for MPEG • rsvp - determines and controls RSVP policy • Uses off-the-shelf components • QuO adaptive middleware • Real-time CORBA ORB (TAO) • Naming Service • A/V Streaming Service • AQoSA • DVDViewer • Simulated ATR • Heterogeneity • Data formats - MPEG, PPM • Mechanisms • RSVP, DiffServ • Filtering, scaling, compression • Networking • Wired Ethernet • Wireless Ethernet

  11. A Qosket That Measures Throughput and Reserves Bandwidth Video Distributor send_frame() BWReserveQosket StreamEndpointDelegate Normal Filter? reserve_ bandwidth() Degraded Timestamp Unusable Sequence no. request reservation reservation status throughput send_frame() A/V Streaming Service Video Display AQoSA RSVP

  12. distributor.{h,cpp} TAO_AV_Protocol_ Object Distributor Code Receive Frame Event Callback TAO_AV_ UDP_Object receiver.{h,cpp} transport->send() wrapper-> send_frame() Receiver Code Receive Frame Event Callback RSVP Fragmentation Problem Solved by Use of QuO Qoskets Distributor Receiver • MPEG in UDP packets were being fragmented by IP. • Routers did not know that fragmented IP packets were part of a RSVP reservation of UDP packets. • Solution: QuO delegates for fragmentation/reassembly, so UDP packets are not fragmented at IP level. Reassemble Frame Delegate Frame Filter Delegate Fragment Frame Delegate

  13. Max lateness Mean lateness 32.696 sec 5.400 sec No adaptation 0.067 sec Adaptation 1.930 sec Support for Real-time Video Delivery Using Middleware Adaptation 35 • Sender, distributor, and receiver running on 3 200 MHz PCs (Linux), 128 MB memory, TCP/IP • Additional 60% CPU load introduced on second stage (3 processes requesting 20% load each) starting at approx. 60 secs, removed at approx. 120 secs. 30 Without adaptation 25 20 Additional latency (secs) 15 Load With adaptation 10 5 0 0 30 60 90 120 150 180 210 240 270 300 Execution time (secs) Under load

  14. Controlling Frame Loss Using QuO Adaptation • Sender, distributor on a Pentium III 933 MHz, 512 MB RAM; Receiver on a Pentium II 200 MHz, 144 MB of RAM; all Linux, with 10 Mbps link, using UDP. • Additional Network load introduced after 60 seconds, removed after 120 seconds • Without middleware control, network layer will drop packets without application knowledge • Frame dropping dropped the less important B and P frames in favor of the I frames 700 600 No Adaptation 500 400 Load Frame dropping Number of I frames received 300 Frame dropping and 200 network reservation 100 0 0 100 200 300 400 500 600 Number of I frames sent # I Frames Sent # Received # Lost No adaptation 600 481 119 Frame Dropping 600 600 0 RSVP + Frame Dropping 600 600 0

  15. Conclusions and Next Steps • We have presented a component model, called Qoskets, that works with the QuO middleware, for encapsulating adaptive QoS behaviors • More information on QuO, including qoskets, is available at http://www.dist-systems.bbn.com/tech/QuO • QuO open-source software is at http://www.dist-systems.bbn.com/tech/QuO/release • The example presented in this talk is at http://www.dist-systems.bbn.com/projects/AIRES/UAV • Current, ongoing work • Comparison, coordination with CORBA Component Model (CCM) • Composition of qoskets • Coordinated RT CORBA, DiffServ for end-to-end RT behavior

More Related