Applying Adaptive Middleware to Manage End-to-End QoS for Next-generation Distributed Applications Christopher D. Gill, David L. Levine, and Fred Kuhns Douglas C. Schmidt cdgill,levine,fredk @cs.wustl.edu firstname.lastname@example.org Department of Computer Science Department of Electrical and Computer Engineering Washington University University of California, Irvine St. Louis, MO 63130, USA Irvine, CA 92697, USA Joseph P. Loyall and Richard E. Schantz jloyall,schantz @bbn.com BBN Technologies/GTE Internetworking Cambridge, MA 02138, USA This paper has been submitted to the Special Issue of Com- puter Communications on QoS-Sensitive Network Applica- tions and Systems, edited by Klara Nahrstedt and Tarek Ab- delzaher. Abstract Delivering end-to-end quality of service (QoS) for diverse classes of distributed applications remains a significant R&D challenge. While individual technologies based on prior re- search have touched upon these QoS delivery problems for specific domains or usage patterns, these isolated achieve- ments have yielded only a fraction of the potential benefit for the broad domain of QoS-enabled distributed applications. We present our coordinated middleware-based strategy for broad- ening delivery of, and simplifying from the user’s perspec- tive, end-to-end QoS to a wider range of next-generation QoS- enabled distributed applications. This paper makes the following contributions to research on end-to-end QoS. First, we describe an architecture for inte- grating and coordinating QoS technologies (1) at all levels of the system, (2) on all time scales of system development, de- ployment, and operation, and (3) across all system resources. Second, we describe results from several projects implement- ing particular segments of this overall architecture. We an- alyze these results and summarize how our work can be ap- plied more broadly to future research on middleware for next- generation QoS-enabled applications. This work was supported in part by Boeing, BBN, DARPA contract 9701516, and DARPA Quorum program contract F#0602-98-C-0187 moni- tored by Rome Air Force Laboratory. 1 Introduction Motivation: Many domains, such as aerospace, manufac- turing, and health care, rely heavily on predictable comput- ing and networking services to perform their respective mis- sions. Increasingly, applications in these domains are needing to perform more demanding functions over highly networked environments, which in turn places more stringent require- ments on the underlying computing and networking systems. In particular, next-generation distributed applications are re- quiring a broad range of features, such as service guaran- tees and adaptive resource management, to support a widening range of quality-of-service (QoS) aspects, such as predictable performance, secure operation, dependability, and fault toler- ance [1, 2]. Limitations with current techniques: Due to deregula- tion, global competition, and budget constraints, even systems with stringent QoS demands are increasingly required to use commercial-off-the-shelf (COTS) hardware and software components. Although a variety of research and commercial operating systems, networks, and protocols now support some QoS management features, integrated end-to-end solutions are not yet available. For instance, research on QoS for ATM net- works has focused largely on policies and mechanisms for al- locating network bandwidth on a virtual-circuit basis. Sim- ilarly, recent research on Internet2 topics has focused on ei- ther specific signaling and enforcement mechanisms, such as RSVP , or on broadly based global resource sharing tech- niques, such as Differentiated Services . In addition, re- search on real-time operating systems  has focused largely on avoiding priority inversions and non-determinism in syn- 1
Applying Adaptive Middleware to Manage End-to-End QoS …schmidt/PDF/CC.pdf · Applying Adaptive Middleware to Manage End-to-End QoS for Next-generation Distributed Applications Christopher
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Applying Adaptive Middleware to Manage End-to-EndQoS for Next-generation Distributed Applications�
Christopher D. Gill, David L. Levine, and Fred Kuhns Douglas C. Schmidtfcdgill,levine,email@example.com firstname.lastname@example.orgDepartment of Computer Science Department of Electrical and Computer Engineering
Washington University University of California, IrvineSt. Louis, MO 63130, USA Irvine, CA 92697, USA
Joseph P. Loyall and Richard E. Schantzfjloyall,email@example.com
BBN Technologies/GTE InternetworkingCambridge, MA 02138, USA
This paper has been submitted to the Special Issue of Com-puter Communications on QoS-Sensitive Network Applica-tions and Systems, edited by Klara Nahrstedt and Tarek Ab-delzaher.
Delivering end-to-end quality of service (QoS) for diverseclasses of distributed applications remains a significant R&Dchallenge. While individual technologies based on prior re-search have touched upon these QoS delivery problems forspecific domains or usage patterns, these isolated achieve-ments have yielded only a fraction of the potential benefit forthe broad domain of QoS-enabled distributed applications. Wepresent our coordinated middleware-based strategy for broad-ening delivery of, and simplifying from the user’s perspec-tive, end-to-end QoS to a wider range of next-generation QoS-enabled distributed applications.
This paper makes the following contributions to researchon end-to-end QoS. First, we describe an architecture for inte-grating and coordinating QoS technologies (1) at all levels ofthe system, (2) on all time scales of system development, de-ployment, and operation, and (3) across all system resources.Second, we describe results from several projects implement-ing particular segments of this overall architecture. We an-alyze these results and summarize how our work can be ap-plied more broadly to future research on middleware for next-generation QoS-enabled applications.
�This work was supported in part by Boeing, BBN, DARPA contract9701516, and DARPA Quorum program contract F#0602-98-C-0187 moni-tored by Rome Air Force Laboratory.
Motivation: Many domains, such as aerospace, manufac-turing, and health care, rely heavily on predictable comput-ing and networking services to perform their respective mis-sions. Increasingly, applications in these domains are needingto perform more demanding functions over highly networkedenvironments, which in turn places more stringent require-ments on the underlying computing and networking systems.In particular, next-generation distributed applications are re-quiring a broad range of features, such as service guaran-tees and adaptive resource management, to support a wideningrange of quality-of-service (QoS) aspects, such as predictableperformance, secure operation, dependability, and fault toler-ance [1, 2].
Limitations with current techniques: Due to deregula-tion, global competition, and budget constraints, even systemswith stringent QoS demands are increasingly required touse commercial-off-the-shelf (COTS) hardware and softwarecomponents. Although a variety of research and commercialoperating systems, networks, and protocols now support someQoS management features,integratedend-to-end solutions arenot yet available. For instance, research on QoS for ATM net-works has focused largely on policies and mechanisms for al-locating network bandwidth on a virtual-circuit basis. Sim-ilarly, recent research on Internet2 topics has focused on ei-ther specific signaling and enforcement mechanisms, such asRSVP , or on broadly based global resource sharing tech-niques, such as Differentiated Services . In addition, re-search on real-time operating systems  has focused largelyon avoiding priority inversions and non-determinism in syn-
chronization and scheduling mechanisms for multi-threadedapplications.
In general, QoS research on networks and operating systemshas not addressed some key requirements and end-to-end us-age characteristics of mission-critical real-time systems, espe-cially on COTS platforms. In particular, existing approacheshave not focused on providing both avertically (i.e., networkinterface$ application layer) andhorizontally (i.e., end-to-end) integrated solution that provides a higher-level servicemodel, or global policy framework, to developers and end-users. Determining how to map the results from earlier QoSresearch on global policies and local enforcement techniquesonto a more suitable system architecture is an important openresearch issue that is crucial to solve the challenges of next-generation QoS-enabled distributed applications.
Solution approach! Adaptive QoS-enabled COTS mid-dleware: To meet these research challenges, we believe it isnecessary to devise an architectural framework that (1) pre-serves and extends the benefits of existing research areas,while (2) simultaneously defining newmiddlewareservices,protocols, and finterface that. This framework must provideadaptivity encompassing the end-to-end resources needed toaddress QoS requirements of next-generation applications thatinvolve cooperation of multiple systems.
One promising architectural framework that meets these re-quirements is our TAO [6, 7] implementation of the Real-time CORBA specification . Real-time CORBA is a COTSmiddleware standard that supports end-to-end predictabilityfor operations infixed-priority1 CORBA applications. Asshown in Figure 1, the Real-time CORBA specification de-
OS I/O SUBSYSTEM
OS I/O SUBSYSTEM
out args + return value
Figure 1: TAO Support for the Real-Time CORBA Specifica-tion
1Subsequent OMG specifications are standardizing dynamic schedulingtechniques, such as deadline-based  or value-based  scheduling.
fines standard APIs and policies that improve an application’sability to configure and control (1)processor resourcesviathread pools, priority mechanisms, intra-process mutexes, anda global scheduling service, (2)communication resourcesviaprotocol properties and explicit bindings, and (3)memory re-sourcesvia request queues and bounded thread pools.
TAO is an open-source2 CORBA-compliant COTS ORB de-signed to support applications with stringent quality of service(QoS) requirements. The TAO real-time ORB provides a richset of middleware mechanisms for representing and enforcingreal-time requirements in applications. Directly programmingTAO’s lower-level real-time mechanisms to achieve specificend-to-end quality of service (QoS) goals can be excessivelytedious and error-prone, however, particularly for large-scalenext-generation QoS-enabled distributed applications. There-fore, higher-level middleware capabilities for end-to-end QoSspecification and control are needed.
To meet these needs, we have developed a complementaryarchitectural framework calledQuality Objects (QuO)[11, 12,13]. QuO offers the following two capabilities for higher levelspecification and control of TAO’s real-time CORBA middle-ware mechanisms:
1. QuO provides additional mechanisms for middlewareadaptation that complement and improve the applicationcontrol of lower-level real-time capabilities of ORB mid-dleware, as well as the underlying operating systems andnetworks.
2. QuO allows developers to specify higher-level aspects ofreal-time requirements, such as the type of real-time re-quired (e.g., periodic or end-to-end), the relative priorityof events, and the tradeoffs between real-time and otherQoS requirements. It then maps these higher-level speci-fications into QuO and TAO mechanisms that implement,measure, and control them.
As shown in Figure 2, QuO defines interfaces that enable
Figure 2: The QuO Distributed Object Computing Model
2The source code and documentation for TAO can be downloaded fromwww.cs.wustl.edu/ �schmidt/TAO.html .
CORBA applications tospecifyQoS aspects of concern,con-trol resources and mechanisms that provide QoS,measuretheQoS provided by the system, andadaptto changing levels ofQoS in the system. To do this, we introduce the middlewareabstractions ofcontractsto organize the intended behavior intooperating regions,system conditionobjects to effect measure-ment, anddelegatesto coordinate changing behavior under-neath the client/server interactions.
The adaptive specification, control, and measurement ca-pabilities of QuO are further enhanced when integrated withTAO’s capabilities for resource configuration and manage-ment. QuO’s higher level QoSpolicies are enforcedusingTAO’s lower level mechanisms. By combining these comple-mentary middleware layer frameworks, as shown in Figure 3,we are taking a major step forward to aligning (1) adaptivelycontrolled behavior with (2) a more predictable operating en-vironment that is oriented toward the needs of next-generationQoS-enabled systems.
From the bottom up, we are developing and using mecha-nisms to enhance execution predictability and control resourcemanagement decisions across system boundaries to meet end-to-end requirements. From the top down, we are provid-ing advanced application-oriented QoS interfaces that adaptto changing conditions and affect resource management deci-sions at lower levels of middleware, OS, and network infras-tructure. In the current phase of our joint DARPA Quorumintegration project , we are focusing on controlling the real
time behavior aspect of delivered QoS. Work is simultaneouslyongoing to control and integrate other QoS aspects, such asdependability and security, as well as advanced software engi-neering concepts and tools for controlling the intended behav-ior of next-generation QoS-enabled applications.
Paper organization: The remainder of this paper is struc-tured as follows: Section 2 describes properties of next-generation distributed applications that illustrate and motivatethe key research challenges and design forces addressed byour QoS research; Section 3 describes our integrated TAO andQuO middleware strategy for delivering end-to-end QoS adap-tively and presents quantitative and qualitative results gleanedfrom applying TAO and QuO to several mission-critical real-time distributed applications; Section 4 compares our efforts torelated work on end-to-end QoS; and Section 5 presents con-cluding remarks and summarizes our directions for researchon middleware for next-generation QoS-enabled applications.
2 Synopsis of Key Research Challengesand Design Forces
Development methodologies for many types of distributed ap-plications, particularly those with stringent real-time require-ments, have historically lagged behind the state of the art dueto the constraints on footprint, performance, and weight/powerconsumption. As a result, such systems are expensive andtime-consuming to develop, validate, optimize, deploy, main-tain, and upgrade. Moreover, they are often so specialized andtightly coupled to their current configuration and operating en-vironment that they cannot adapt readily to new market oppor-tunities, technology innovations, or changes in run-time situa-tional environments.
In addition to the development methodology and systemlifecycle constraints mentioned above, designers of real-timeapplications have historically used relatively static methodsto allocate scarce or shared resources to system compo-nents. For instance, flight-qualified avionics mission com-puting systems  establish the priorities for all resourceallocation and scheduling decisions very early in the systemlifecycle, i.e., well before run-time. Static strategies havetraditionally been used for mission-critical real-time applica-tions because (1) system resources were insufficient for morecomputationally-intensivedynamic on-line approaches and (2)simplifying analysis and validation was essential to remain onbudget and on schedule, particularly when systems were de-signed from scratch using low-level, proprietary tools.
Unfortunately, the static methodologies and techniques out-lined above are too inflexible to support the requirements ofnext-generation QoS-enabled distributed applications. The re-mainder of this section describes requirements of several rep-
resentative next-generation QoS-enabled applications and dis-tills the key research challenges and design forces that are be-ing addressed by our middleware-based QoS research to sup-port these requirements.
2.1 Key Features of Next-generation Applica-tions
One of the most demanding next-generation QoS-enabled dis-tributed applications istele-immersion, which combinestele-conferencing, tele-presence, and virtual reality. Tele-immersion places stringent demands at all levels along theend-to-end path for distributed applications. It requires real-time, predictable behavior fromendsystemsin order to (1) in-teract with the physical world within specific delay bounds and(2) present images or other stimuli in real-time to users .Likewise, users may be distributed across intranets or the In-ternet thus requiring predictable performance from thenet-work to provide low-latency and high-bandwidth to applica-tions end-to-end .
Applying tele-immersion to health care: Intensive caremedicine is a domain where tele-immersion can provide sig-nificant benefits. For instance, teams of medical personnelmust make critical decisions, often at an accelerated tempo,based on information emerging at a range of time scales andfrom a variety of sources. Consultations with remote experts,modeling of physiological processes, and integration of bothexisting and emerging information often must be performedwhile in close proximity to the patient, as illustrated in Fig-ure 4. In this context, it is essential that the computing and
networking technologies perform and adapt in real-time to thechanging situational requirements, while still maintaining QoSguarantees.
Applying tele-immersion to aerospace: The aerospace do-main is tele-immersion applications. In the battle zone of thefuture, a distributed web of sensors, weapons, and decision-makers must interact rapidly in real-time to gain and preservemilitary advantage. The battle environment will be changingconstantly, requiring the system to adapt both globally and lo-cally. For instance, multiple unmanned combat air vehicles(UCAVs) can provide surveillance, weapons delivery, and bat-tle damage assessment capabilities both on tactical and strate-gic scales.
With tele-immersion, immediate remote interaction with thephysical environment can help maximize effectiveness at alllevels of the system. For example, a group of UCAVs canshare sensor data, post-process data products, and remote op-erator requests. Next-generation avionics mission comput-ing systems , such as the sensor-driven example shownin Figure 5, must collaborate with remote command and con-
trol systems, provide on-demand browsing capabilities for ahuman operator, and respond flexibly to unanticipated situ-ational factors that arise in the run-time environment .Moreover, these systems must perform unobtrusively, shield-ing human operators from unnecessary details, while simul-taneously communicating, highlighting, and responding tomission-critical information in real-time.
The next-generation applications outlined above will re-quire a range of QoS support from middleware, endsystems,and networks. The end-to-end QoS received by the appli-cations will translate directly into users’ perceived worth ofthe new applications and related services. For example, if amedical video conference application routinely delivers pack-ets late, it will have a relatively low value to its users. Thus, byproviding real-time access to emerging information and real-
time actuation of responses, QoS-enabled systems can pro-vide (1) improved situational awareness, (2) reduced decision-action times, and (3) greater overall responsiveness to emerg-ing situations.
2.2 Synopsis of QoS Requirements for Next-generation Applications
The characteristics of the next-generation systems outlined inSection 2.1 present QoS requirements that can vary signifi-cantly at run-time. In turn, this increases the demands on end-to-end system resource management, which makes it hard tosimultaneously (1) create effective resource managers usingtraditional statically constrained allocators and schedulers and(2) achieve reasonable resource utilization. In addition, themission-critical aspects of these systems require that they re-spond adaptively to changing situational features in their run-time environment.
Key features of these next-generation systems, such as inter-action with the real world, produce stringent requirements thatserve to distill the key research challenges and design forcesthat must be addressed by QoS research to support these ap-plications. The following design forces characterize the keyresearch challenges we have identified based on our R&D ef-forts [14, 1, 17, 19, 18, 20] developing next-generation avion-ics mission computing systems. These forces must be ad-dressed by researchers to ensure system correctness, perfor-mance, adaptability, and adequate resource utilization.
Diverse inputs: Many next-generation distributed applica-tions must simultaneously use diverse sources of information,such as raw sensor data, command and control directives, andoperator inputs, while sustaining real-time timing behavior.
Diverse outputs: Next-generation distributed applicationsoften must concurrently produce diverse outputs, such as fil-tered sensor data, mechanical device commands, and imagery,whose resolution quality and timeliness is crucial to othersystems with which they interact.
Critical operations: QoS management for next-generationdistributed applications with hard timing constraints forapplication-critical operations must insulate critical operationsfrom the resource demands of non-critical operations.
End-to-end requirements: Many next-generation dis-tributed applications may operate in heterogeneous environ-ments, and must manage distributed resources to enforceQoS requirements end-to-end. For example, such systemsmay need to manage resource reservations and allocationsinvolving several end-system CPUs and network links along arequest-response path between client and server endsystems.
System configuration: Developers and managers of next-generation distributed applications must be able to control theinternal concurrency, resource management, and resource uti-lization configurations throughout networks, endsystems, mid-dleware and applications, to provide the necessary level ofend-to-end QoS to applications.
System adaptation: Next-generation distributed infrastruc-ture frameworks and applications must be able to (1) reflect onsituational factors as they arise dynamically in the run-time en-vironment and (2) adapt to these factors while preserving theintegrity of key mission-critical activities. Operators must beinsulated from the programming model for resource manage-ment,e.g., via a set of suitable abstractions for communicatingoperator QoS requirements and monitoring/controlling the re-ceived QoS.
The distilled requirements of next-generation QoS-enableddistributed applications outlined above motivate solutions that(1) offer deterministic real-time performance end-to-end, (2)protect resources needed by application-critical operations, (3)promote adaptation to a rapidly evolving environment, and (4)offer flexible configuration and control of key mechanismsfor resource management. In Section 3, we present our ap-proach to addressing these requirements, based on adaptiveQoS-enabled middleware.
This section presents our approach to integrating the individ-ual capabilities of existing QoS technologies to create a uni-fied adaptive middleware solution. Our approach leveragesproperties of deterministic end-to-end performance, combinedwith configurable and adaptive QoS management capabilities,to meet the requirements of next-generation QoS-enabled dis-tributed applications described in Section 2.
Our work focuses on supplying additional coordination andcontrol capabilities across diverse lower-level QoS mecha-nisms to provide end-to-end QoS to a broad range of advancedQoS-enabled distributed applications. Our progress to date inidentifying key patterns and developing techniques for adap-tive and dynamic resource management and applying themto real-time mission-critical systems has focused onadaptiveQoS-enabled middleware architectures, which we describe be-low in Section 3.1. Section 3.2 then presents quantitative andqualitative results derived from applying our adaptive middle-ware to several mission-critical real-time distributed applica-tions.
3.1 Adaptive System Architectures
During our earlier efforts to integrate adaptation capabilitiesfrom different low-level system layers and components man-ually, it became evident that a higher-level, highly automatedintegration capability was desirable for the following reasons:
Simplified programming model: Providing a higher-leveldescription of the various adaptive capabilities in different sys-tem layers helps to simplify and reify the programming modelfor adaptive real-time mission-critical systems.
Application-independence: Providing a higher-level de-scription of system operating regions decouples the adaptivearchitecture from the particulars of any specific application,thereby increasing the relevance of the adaptive system archi-tecture across real-time mission-critical system domains.
Automated language and tool support: Providing lan-guage and tool support for these descriptions helps to automateand decouple system aspects, such as functionality, timing be-havior, and fault tolerance, so that (1) new aspects can be in-tegrated when new system requirements arise and (2) interac-tions between the various aspects can be managed effectively.
To provide these capabilities, we have developed an archi-tectural framework that (1) preserves and extends the ben-efits of individual QoS research contributions while (2) si-multaneously defining new middleware services, protocols,and interfaces that provide adaptivity encompassing end-to-end resources needed to address QoS requirements of next-generation applications involving cooperation of multiplesystems. This architectural framework is based onQuality Ob-jects (QuO)andThe ACE ORB(TAO)  technologies devel-oped under the DARPA Quorum object integration  pro-gram. Below, we summarize how QuO and TAO help providean adaptive architecture for QoS-enabled applications.
3.1.1 Overview of QuO
QuO is a middleware framework designed to develop dis-tributed applications that can specify (1) their QoS require-ments, (2) the system elements that must be monitored andcontrolled to measure and provide QoS, and (3) the behaviorfor adapting to QoS variations that occur at run-time. By pro-viding these features, QuO opens up distributed object imple-mentations  to control an application’s functional aspectsand implementation strategies that are encapsulated within itsfunctional interfaces.
The functional path of QuO illustrated in Figure 2 is a su-perset of the functional path of CORBA. The components pro-vided by QuO to support the above operations are defined be-low.
Contracts: The operating regions and service requirementsof the application are encoded incontracts, which describe thepossible states the system might be in, as well as the actions toperform when the state changes.
Delegates: QuO insertsdelegatesinto the CORBA func-tional path. Delegates project the same interfaces as the stub(client-side delegate) and the skeleton (server-side delegate),but support adaptive behavior upon method call and return.When a method call or return is made, the delegate checks thesystem state, as recorded by a set of contracts, and selects abehavior based upon it.
Contracts and delegates support two means for triggeringmanager-level, middleware-level, and application-level adap-tation. The delegate triggersin-bandadaptation by makingchoices upon method calls and returns. The contract triggersout-of-bandadaptation when region transitions occur whichcan be caused by changes in observed system condition ob-jects.
System Condition Objects: These objects provide uniforminterfaces to multiple levels of system resources, mechanisms,and managers to translate between application-level concepts,such as operating modes, to resource and mechanism-levelconcepts, such as scheduling methods and real-time attributes.System condition objects are used to measure the states of sys-tem resources, mechanisms, and managers that are relevant tocontracts in the overall system. In addition, they can pass in-formation to interfaces that control the levels of desired ser-vices.
Higher-level system condition objects can interface to other,lower-level system condition objects, forming a tree of systemcondition objects that translate mechanism data into applica-tion data. System condition objects can be eitherobservedornon-observed. Changes in the values measured by observedsystem conditions trigger contract evaluation, possibly result-ing in region transitions and triggering adaptive behavior.
Observed system condition objects are suitable for measur-ing conditions that either change infrequently or for whom ameasured change can indicate an event of notice to the applica-tion or system. Non-observed system condition objects repre-sent the current value of whatever condition they are measur-ing, but do not trigger an event whenever the value changes.Instead, they provide the value upon demand, whenever thecontract needs it,i.e., whenever the contract is evaluated dueto a method call or return or due to an event from an observedsystem condition object.
Instrumentation Probes: QuO provides a library ofinstru-mentation probesthat can be inserted throughout the remotemethod invocation path. These probes can be used by the QuOinfrastructure to gather performance statistics and validationinformation unobtrusively. To accomplish this, the QuO dele-gate adds a data structure to each method call and return. This
structure can be populated or read by any or all the instrumen-tation probes along the method call/return path.
Quality Description Languages (QDLs) and Code Gener-ators: QuO provides a suite of QDLs, which are similarto CORBA’s Interface Description Language (IDL), andcodegenerators, which are similar to the stub and skeleton genera-tors of CORBA IDL compilers. QDLs and code generators de-scribe and automatically output, respectively, the componentsof QuO applications [11, 12, 13]. QuO currently provides acontract description language (CDL); a structure descriptionlanguage (SDL) to specify adaptive behavior and adaptationstrategies; and a connector setup language (CSL) to specifythe components of a QuO application and how they are instan-tiated, connected, and initialized.
QuO Runtime Kernel and GUI Monitor: QuO provides aruntime kernelthat coordinates contract evaluation and pro-vides other runtime QuO services . These services includeinitializing contracts and system conditions, binding them toeach other and to delegates, triggering contract evaluation, andtriggering adaptive behavior. In addition, the QuO kernel pro-vides a graphical user interface (GUI) that enables monitoringapplications to observe the QuO middleware in action. TheGUI displays contracts and regions and indicates the currentactive region and the previously active regions. It also dis-plays the system condition objects in the system and their val-ues, indicating when region transitions occur and the adaptivebehavior triggered by the transition. Finally, it displays statis-tics showing how much time applications have spent in eachcontract region.
QuO Gateway: QuO provides a general object gatewaycomponent, illustrated in Figure 6, which allows low-level communication mechanisms and special-purpose to beplugged intoan application . The QuO gateway residesbetween the client and server ORBs. It is a mediator  thatintercepts IIOP messages sent from the client-side ORB anddelivers IIOP messages to the server-side ORB (on the mes-sage return the roles are reversed). On the way, the gatewaytranslates the IIOP messages into a custom transport protocol,such as group multicast in a replicated, dependable system.The QuO gateway is implemented using TAO’s pluggable pro-tocol feature .
The gateway also provides an API that allows adaptive be-havior or processing control to be configured below the ORBlayer. For example, the gateway can select between alternatetransport mechanisms based on low-level message filtering orshaping, as well as the overall system’s state and conditionobjects. Likewise, the gateway can be used to integrate secu-rity measures, such as authenticating the sender and verifyingaccess rights to the destination object.
Potential applications of this integrated adaptive architec-ture include end-to-end control of distinct QoS aspects in a
Figure 6: The QuO gateway
distributed real-time environment with high variability of situ-ational factors.
3.1.2 Overview of TAO
TAO is a high-performance, real-time ORB endsystem tar-geted for applications with deterministic and statistical QoSrequirements, as well as best-effort requirements. The TAOORB endsystem contains the network interface, OS, commu-nication protocol, and CORBA-compliant middleware compo-nents and services shown in Figure 7.
TAO supports the standard OMG CORBA referencemodel  and Real-time CORBA specification , with en-hancements designed to ensure efficient, predictable, and scal-able QoS behavior for high-performance and real-time appli-cations. Below, we outline the features of TAO’s componentsshown in Figure 7.
Optimized IDL Stubs and Skeletons: IDL stubs and skele-tons perform marshaling and demarshaling of application op-eration parameters, respectively. TAO’s IDL compiler gener-ates stubs/skeletons that can selectively use highly optimizedcompiled and/or interpretive (de)marshaling . This flex-ibility allows application developers to selectively trade offtime and space, which is crucial for high-performance, real-time, and/or embedded distributed systems.
Real-time Object Adapter: An Object Adapter associatesservants with the ORB and demultiplexes incoming requeststo servants. TAO’s real-time Object Adapter  uses perfecthashing  and active demultiplexing  optimizations todispatch servant operations in constantO(1) time, regardless
HIGH-SPEED NETWORKINTERFACES(e.g., APIC, VME)
SSRTRT I/O I/OSUBSYSTEMSUBSYSTEM
OO(1) (1) REQUESTREQUEST DEMUXERDEMUXER
RTRT ORBORB CORECORE
SOCKETSOCKET QUEUEQUEUE DEMUXERDEMUXER
Figure 7: Components in the TAO Real-time ORB Endsystem
of the number of active connections, servants, and operationsdefined in IDL interfaces.
Run-time Scheduler: TAO’s run-time scheduler  mapsapplication QoS requirements, such as bounding end-to-endlatency and meeting periodic scheduling deadlines, to ORBendsystem/network resources, such as CPU, memory, networkconnections, and storage devices. TAO’s run-time schedulersupports both static  and dynamic  real-time schedulingstrategies.
Real-time ORB Core: An ORB Core delivers client re-quests to the Object Adapter and returns responses (if any) toclients. TAO’s real-time ORB Core  uses a multi-threaded,preemptive, priority-based connection and concurrency archi-tecture  to provide an efficient and predictable CORBAprotocol engine. TAO’s ORB Core allows customized proto-cols to be plugged into the ORB without affecting the standardCORBA application programming model.
Real-time I/O subsystem: TAO’s real-time I/O (RIO) sub-system  extends support for CORBA into the OS. RIO as-signs priorities to real-time I/O threads so that the schedulabil-ity of application components and ORB endsystem resourcescan be enforced. When integrated with advanced hardware,such as the high-speed network interfaces described below,RIO can (1) perform early demultiplexing of I/O events ontoprioritized kernel threads to avoid thread-based priority inver-sion and (2) maintain distinct priority streams to avoid packet-based priority inversion. TAO also runs efficiently and rel-
atively predictably on conventional I/O subsystems that lackadvanced QoS features.
High-speed network interface: At the core of TAO’s I/Osubsystem is a “daisy-chained” network interface consistingof one or more ATM Port Interconnect Controller (APIC)chips . The APIC is designed to sustain an aggregate bi-directional data rate of 2.4 Gbps using zero-copy buffering op-timization to avoid data copying across endsystem layers. Inaddition, TAO runs on conventional real-time interconnects,such as VME backplanes and multi-processor shared memoryenvironments, as well as Internet protocols like TCP/IP.
TAO internals: TAO is developed using lower-level mid-dleware called ACE , which implements core concur-rency and distribution patterns  for communication soft-ware. ACE provides reusable C++ wrapper facades and frame-work components that support the QoS requirements of high-performance, real-time applications and higher-level middle-ware like TAO. ACE and TAO run on a wide range of OS plat-forms, including Win32, most versions of UNIX, and real-timeoperating systems like Sun/Chorus ClassiX, LynxOS, and Vx-Works.
3.2 Adaptive System Architecture Implemen-tation and Performance
Our recent research has focused on two principal activities.First, we have quantified the performance of adaptation onsmall time scales via dynamic scheduling in the TAO Real-Time Event Service when integrated with an adaptive avionics mission computing application, under varying condi-tions of CPU load. Second, we have demonstrated the abilityof the QuO middleware to guide adaptation to changes in sys-tem conditions, by adjusting both the rate of event generationand the priorities of events. Below, we summarize the quanti-tative and qualitative results gleaned from both these researchactivities.
Benchmark overview: The focus of the benchmarks de-scribed below is to quantify the benefits and costs of schedul-ing systems using hybrid static/dynamic approaches, whencompared to statically scheduled systems. Our hypothesis isthat hybrid approaches, though they can incur additional run-time overhead, will prove to be more flexible, both in termsof application development ease and overall computationalthroughput.
Ease of application development is facilitated by two adap-tive properties of hybrid static/dynamic scheduling: (1) whenload exceeds the schedulable bound, non-critical operations
are dropped, whereas critical operations are scheduled, and(2) dynamic scheduling supports selectively dropping non-critical operations that will miss deadlines, while preservingnon-critical operations that might be schedulable later. Encap-sulating fine-grain adaptive control over operation dispatchingin the middleware layers relieves developers of tedious, error-prone, and often redundant tasks related to developing this as-pect of their applications.
Increased computational throughput is achieved throughgreater processor utilization compared to static systems, whichgenerally require under-utilization of the CPU to be schedu-lable. Here too, hybrid static/dynamic scheduling providesfine-grain adaptive control over operation dispatching so thatmore operations can be scheduled to increase CPU utilization.Moreover, dropping operation dispatch requests that will notmeet their QoS requirements can improve the amount of use-ful computation that is performed.
Below, we report the results of benchmarks that quantifykey aspects of our hypothesis outlined above. As shown below,computational overhead is a primary metric because schedul-ing operations are run frequently with respect to applicationexecution frequency. Thus, overly burdensome algorithmsor algorithm implementations that scale poorly as applicationsize grows will be undesirable in most real-time applications.
Benchmark configuration: Our experiment used a com-plete real-time embedded information systems application,with roughly 70 distinct operations. The application ran us-ing the TAO ORB , the TAO Scheduling Service , andthe TAO Real-Time Event Service , configured for var-ious scheduling strategies. We conducted measurements onfour key areas of resource control overhead:dispatching over-head, operation execution times, operation cancellation, andprotecting critical operations. The analysis below features acomparison of two publically available scheduling algorithms,Maximum Urgency First (MUF)  and Rate MonotonicScheduling (RMS) . Measurements were conducted on200 MHz Power PC Single Board Computers running the Vx-Works 5.3 operating system.
� Dispatching overhead: We measured the time spentwithin the mechanisms that actually assign the processor toapplication functions. The dispatching mechanism is made upof multiple dispatching queues, each serviced by a thread ata different priority level. For dynamic scheduling, the queuesmust be reordered according to laxity or time to deadline asrequests age.
Figure 8 shows a graph of the measured enqueue over-head, collected at the same time as the dequeue measurements.Dynamic queues may perform re-ordering before trying to
1 45 89 133
Figure 8: Measured RMS and MUF Enqueue DispatchingOverhead
wait on anot emptyor not full condition variable and then en-queue or dequeue the operation after acquiring the appropriatelock. Therefore, it was necessary to exclude the time spentwaiting for locks from the measurement, so that only the CPUtime actually consumed by the dynamic queue was measured.This was achieved by extending the time probe class providedby ACE  framework to log suspend and resume time probeevents around the call to acquire the lock, and to assess totaloverhead accordingly.
Figure 9 shows a graph of the measured dequeue dispatch-ing overhead using both the MUF and RMS scheduling strate-gies. As Figure 8 and Figure 9 show, several anomalous data
1 65 129
Figure 9: Measured RMS and MUF Dequeue DispatchingOverhead
points were observed in the measured enqueue and dequeueoverheads. We attribute these to non-determinism in our ex-perimental setup, possibly due to network interrupt handlingin the VxWorkstNetTask , rather than to the behavior of thequeues themselves. Excluding these outlying data points, theobserved enqueue and dequeue overheads were approximatelythe same for the static RMS scheduling strategy and the hy-brid static/dynamic MUF scheduling strategy, with a slightly
higher overhead observed for the dynamic queues used forMUF.
These results indicate that (1) the amount of dynamic re-ordering was low in this experiment, and (2) the fundamentaloverhead for dynamic and static queue management is com-parable when there is little dynamic reordering. For futureinvestigation, we plan to conduct similar experiments acrossa wider range of real-time embedded applications and appli-cation features. In particular, we hope to determine whetherincreased heterogeneity of application features would inducegreater levels of reordering for dynamic scheduling, and if soat what resulting cost.
� Operation execution times: We compared the execu-tion times of both critical and non-critical operations, whichcomprise a representative subset of all operations in the sys-tem. All operations were scheduled using MUF, which re-orders operations dynamically by laxity in each priority level.Figure 10 illustrates this comparison. The operation execu-
Figure 10: Execution Times of Critical and Non-Critical Op-erations
tion times showed several anomalous spikes, similar in valueand prevalence to those observed in the dispatching overheadmeasurements. We again interpret these as the result of non-determinism in our experimental configuration rather than indispatching the operations themselves. Otherwise, the opera-tion execution times were reasonably deterministic, even withall operations dispatched from dynamically managed queues.
� Operation cancellation: Figure 11 shows the effectsof operation cancellation for non-critical operations in dy-namic scheduling strategies. As described above, the MUFscheduling strategy can use operation cancellation to reducethe amount of wasted work performed in operations that misstheir deadlines. Assuming there is no residual value of an op-eration that completes past its deadline, this time increases theamount of unusable overhead. Note that while the MUF strat-egy with operation cancellation was more effective in limit-
Figure 11: Effects of Non-Critical Operation Cancellation
ing the number of operations that were dispatched and thenmissed their deadlines, the number of operations that madetheir deadlines in each case was comparable. We attribute thisto the short execution times of several of the non-critical op-erations. In fact, the variation with cancellation had slightlylower numbers of non-critical operations that were success-fully dispatched, as operation cancellation is necessarily pes-simistic.
� Protecting critical operations: We examined the rela-tive effects of CPU overload on critical and non-critical oper-ations, in the hybrid static/dynamic MUF scheduling strategyand the static RMS strategy. Figure 12 shows the number of
Figure 12: Effects of CPU Overload under RMS and MUF
deadlines made and missed for each strategy. With no opera-tion cancellation, MUF meets all of its deadlines, while RMSmisses between 2 and 6 critical operations per sample. Fur-thermore, MUF successfully dispatches additional non-criticaloperations. We investigated whether adding operation can-
cellation might have reduced the number of missed deadlinesfor critical operations with RMS, by reducing the amount ofwasted work. However, it appears that the overhead of opera-tion cancellation in fact makes matters worse, missing between6 and 7 operations per sample. We interpret this to mean thatthere were few opportunities for effective non-critical opera-tion cancellation in RMS under the experimental conditions.
3.2.2 Adaptive Middleware Layer Integration
Integration overview: The QuO and TAO QoS policies andmechanisms described in Sections 3.1.1 and 3.1.2 provide anadaptive framework for meeting the application requirementslisted in Section 2.2. To illustrate how we have integrated TAOand QuO framework to meet the QoS requirements of mission-critical real-time applications, we describe an example sensor-actuator application, representative of those found in event-driven avionics systems .
Synopsis of sensor-actuator applications: As illustrated inFigure 13, sensor-actuator applications contain many subsys-
1: I/O via interrupts
I/O Facade I/O Facade
2: push (demarshaled data)
3: push (demarshaled data)
Figure 13: A Real-time Event-Driven Avionics System
tems operating in concert, responding to sensor data events,and managing functions of the aircraft. These subsystems in-clude functionality, such as the heads-up display and naviga-tion subsystems. Sensor data can come from a number of sen-sors on the aircraft, such as a global positioning satellite re-ceivers, or various radar sensors.
In general, sensor-actuator applications have crucial QoSrequirements, such as real-time response, dependability, andresource utilization. Moreover, the set of QoS requirementsthat must be satisfied can be highly variable, differing (1) be-tween families of aircraft and between specific products withina family of aircraft, (2) between subsystems within a singleaircraft, and (3) even between missions and between operatingmodes, within a single aircraft subsystem.
Currently fielded avionics systems are designed to be con-figured between missions, so that pilots can manually switchbetween mission computer operating modes . However,for the most part current avionics software systems are con-figured statically. Therefore, changes occur in the form ofsoftware upgrade cycles and mission reprogramming. Theselegacy sensor-actuator systems are inflexible because the sen-sors are tightly coupled to the actuators, and the software isoften tightly coupled to special-purpose hardware.
To overcome these limitations, it is necessary to applynew engineering methods to the process of developing thesesystems. In particular, improving the reliability and flexibilityof distributed real-time systems requires advanced techniques,such as leveraging COTS hardware and software, increasingsoftware reuse through middleware, and applying design pat-terns and adaptive object-oriented programming techniques.Moreover, these techniques serve to manage the monetary andtime costs of the overall system development lifecycle.
Supporting sensor-actuator applications with QuO andTAO: As part of the TAO and QuO integration, we havedeveloped a prototypical sensor-actuator application test-bedthat uses the QuO adaptation engine to adjust the rate of eventgeneration and the priority of generated events in response tosystem conditions. As illustrated in Figure 14, this test-bedcan be configured with multiple suppliers that generate eventsat similar priorities. Other suppliers can flood the TAO real-
Figure 14: QuO Control of TAO Real-time Event Channel
time event channel in response to an external stimulus. A QuOsystem condition object recognizes that events are not beingdelivered on time and, in response, the QuO delegate of thenon-critical supplier reduces the rate at which it is generatingevents. Similarly, the delegate of the non-critical supplier can
reduce the priority of the events that it is generating. Con-versely, a delegate of the critical supplier can increase the pri-orities of its events.
Our results to date indicate that adaptive QoS-enabled mid-dleware frameworks, such as QuO and TAO, implement thenecessary patterns, strategies, and infrastructure needed tobuild modern, more flexible avionics systems. In the ex-ample illustrated in Figure 13, sensors and actuators are de-coupled and largely hidden from one another through sensorproxies and event channels. This allows sensors and actua-tors to be independently reconfigured, upgraded, or replaceddynamically without affecting the other subsystems. Further-more, the avionics software can automatically adapt to chang-ing missions and operational conditions by making tradeoffsbetween QoS dimensions, and dynamically reallocating re-sources. For example, an avionics system may temporarilysacrifice progress of non-critical operations for increased per-formance of critical operations.
Integration benefits: This adaptive TAO+QuO architectureprovides the following combined assets:
� Decoupling and enforcement: The integrated middle-ware can decouple sensors and actuators while offering real-time enforcement, such as that provided by the TAO real-timeORB.
� Flexible integration: The architecture readily supportsintegrating other layers and components, such as dynamic re-source managers and mechanisms, such as RT-ARM  orDarwin .
� Application control: Adaptable middleware, such asthe QuO system, can provide application-level control andadaptation based upon changing mission goals, operationalmodes, environmental conditions, and changing QoS trade-offs.
These capabilities are complementary. The TAO ORB en-ables the decoupling of sensor and actuator functionality whileguaranteeing real-time delivery of sensor events. Dynamicresource managers enable access to and reallocation of re-sources in response to changing system conditions and missionneeds, while the QuO middleware enables the application- andsubsystem-level control to allocate the resources and function-ality to the proper mission or operating mode.
4 Relationship to Existing Techniquesand Research Communities
We view the techniques discussed in this paper, such as dy-namic scheduling , multi-resource scheduling , andadaptive reconfiguration , as necessary and appropriate ex-tensions to the static resource allocation techniques that have
been used historically. By preserving the best attributes ofthese approaches and extending their capabilities as efficientlyas possible, we believe a new generation of mission-criticaladaptive real-time systems can be realized. For example,sensor-driven systems with hard real-time processing require-ments can benefit greatly from dynamic scheduling capabili-ties, particularly to make effective use of over-provisioned re-sources during non-peak loads.
Another valuable feature used in many real-time systemsis statically allocated priority banding , which can be en-forced by preemptive thread priorities. Priority banding is es-sential because higher priority operations can be shielded fromthe resource demands of lower priority operations. Hybridstatic-dynamic scheduling techniques  offer a way to pre-serve the off-line scheduling guarantees for critical operations,while increasing overall system utilization.
As more real-time systems are interconnected, both witheach other and with non-real-time systems, the need to sup-port flexible and configurable scheduling capabilities  be-comes increasingly important. We also believe that emerg-ing standards for dynamic and adaptive resource managementin real-time mission-critical systems,e.g., the OMG DynamicScheduling RFP , should extend corresponding standardsfor static resource management. For example, standards fordynamic CPU scheduling in real-time middleware should ex-tend the existing static CPU scheduling mechanisms of currentreal-time middleware specifications, so that the existing staticmechanisms will interoperate with additional capabilities fordynamic scheduling.
Finally, important insights can be gleaned from the oper-ating system and networking research communities. Thesecommunities have developed a plethora of QoS policies andmechanisms that address enforcement, allocation, and adap-tation. These research activities have addressed specific is-sues, such as hierarchical scheduling , fair resource alloca-tion , distributed signaling protocols , and admissioncontrol policies .
Core networking technologies: During the past decade,there has been substantial R&D emphasis onhigh-speednetworkingand performance optimizationsfor network ele-ments  and protocols . These efforts have paid off suchthat networking products are now available off-the-shelf thatcan support Gbps on every port,e.g., Gigabit Ethernet andATM switches. Moreover, OC-12 (622 Mbps) ATM connec-tivity in WAN backbones are becoming standard and OC-48(2.4 Gbps) is being deployed for advanced networks such asAbilene  and Advanced Technology Demonstration Net-work (ATDnet) . There are already plans to deploy OC-192 (9.6Gbps) within these backbones as it becomes practical.
Advanced architectures for modern high-performancerouters and switches are being designed and constructed to
support novel approaches for providing QoS. For example,the Active Network Node (ANN)  project at WashingtonUniversity is using the Washington University Gigabit Switch(WUGS)  switch with the Smart Port Cards (SPC)  toprovide a robust environment to support active networking andQoS research and development.
QoS architectures and models: The various real-time ap-plications demand QoS assurance at the endsystem and net-work resource levels. Providing QoS guarantees at both theselevels ensures true end-to-end QoS. There is extensive on-going research at both these levels. AQUA (Adaptive QUal-ity of service Architecture)  is a resource-management ar-chitecture, at the endsystem level, in which applications andthe OS cooperate to dynamically adapt to variations in re-source requirements and availability. AQUA manages theCPU and network-I/O resources in an integrated fashion toprovide predictable QoS. At the network resource level thecurrent Internet supports only best-effort service, irrespectiveof user expectations. Moreover, application heterogeneity dic-tates that there be service heterogeneity and service differen-tiation. QoS architectures and models have been proposed toaddress the end-to-end QoS challenge. For example, the IETFhas several ongoing efforts directed to defining an architec-ture and proposing necessary protocols and infrastructure re-quirements. These working groups include Differentiated Ser-vices (DiffServ) , Integrated Services (IntServ)  andIntegrated Services over Specific Link Layers (ISSLL) .Additionally, the Internet2 QoS working group has proposeda testbed for IP differentiated services (QBone ) wherecommercial equipment is deployed in order to investigate dif-ferent approaches or implementations supporting the DiffServmodel. These all support the allocation of resources to providedifferent levels of guarantees to applications.
IntServ is defined in RFC 1633  and is intended to pro-vide QoS transport over IP internets. IntServ effort uses RSVP(Resource ReSerVation Protocol)  for signaling resource re-quirements. IntServ requires flow classification and forward-ing state for each active flow at each router along each QoSpath. ISSLL is intended to provide QoS transport for IP overspecific networking technologies.
As an alternative, theDifferentiated Services(DiffServ) working group was formed to address perceived scalabilityand implementation issues associated with IntServ. DiffServaggregates flows into service classes rather than maintainingper flow state. Moreover, QoS requirements are specified out-of-band, removing the necessity for a signaling protocol suchas RSVP. Packet classification is based on the setting of a fewbits in the IP header.
Providing QoS to applications: Most existing approachesare highly platform/protocol-specific, however, which makesit hard to develop and deploy portable applications. The dif-
ferent R&D focuses outlined above have not, in general, ad-dressed providing middleware with standard QoS models andinterfaces. And very little has been done to provide applica-tion developers with a standard programming interface thatcan leverage the underlying advances to provide end-to-endQoS guarantees.
Application developers need a standardized framework andinterfaces which allow for QoS specification and to receiveguarantees from the underlying network and QoS infrastruc-ture. There have been several attempts  at designing andimplementing a unified QoS API that leverages the QoS fea-tures available in networks and end-systems. Our QoS API(1) provides a simple interface for the users to QoS enabletheir applications, (2) hides the underlying platform/protocolspecific issues of a QoS implementation, and (3) is integratedwith middleware like CORBA, so the application not only con-tinues to benefit from the middleware for distribution but alsogets QoS guarantees through the standard middleware APIs.
5 Concluding Remarks
Over the past decade, individual QoS technologies, such asDifferentiated Services  or the Resource ReSerVation Pro-tocol (RSVP) , have emerged from previous R&D effortsand been applied successfully to specific application domains,such as audio/video streaming. In isolation, however, theseachievements yield only a portion of the potential benefits forthe broad domain of next-generation QoS-enabled distributedapplications and services. For example, managing networkresource reservations, without coordinating these reservationswith other resource management mechanisms, such as prior-itized thread pools or global middleware resource manage-ment, is insufficient to meet the end-to-end QoS requirementsof next-generation systems.
During the same time period, commercial-off-the-shelf(COTS) middleware, such as CORBA, Java EJB, and COM+,has emerged from previous R&D efforts and been appliedsuccessfully to reduce the development cost and cycle-timeassociated with developing distributed applications. How-ever, meeting the increasingly demanding QoS requirementsof next-generation applications is currently beyond the capa-bilities of conventional COTS middleware solutions. In partic-ular, meeting the QoS requirements of these next-generationsystems requires more than higher-level design and program-ming techniques, such as encapsulation and separation of con-cerns, associated with conventional COTS middleware. In-stead, it requires an integrated architecture, based on adaptivereal-time middleware, network, and application patterns, poli-cies, and mechanisms, that can deliver end-to-end QoS supportat multiple levels in distributed systems.
This paper has illustrated how next-generation applications
with a variety of QoS requirements can be supported by adap-tive middleware, such as QuO and TAO, in order to meet theQoS requirements end-to-end. To make the example concrete,and to document our on-going R&D activities in the DARPAQuorum integration effort , we have focused our examplesand empirical benchmarks on the avionics mission comput-ing domain. In our future work, however, we are addressingthe following research issues to demonstrate the broader ap-plicability of our adaptive multi-level middleware strategy forQoS-enabled distributed applications:
Leveraging existing QoS research: The operating systemand networking research communities have produced a wealthof techniques, architectures, and empirical information forQoS management issues in the network and OS kernel lay-ers. These techniques must be used as the basis for developingand evaluating middleware QoS management approaches, andwherever possible built into end-to-end middleware solutions.Some middleware solutions leverage particular point-solutionsfor QoS management,e.g., TAO leverages preemptive threadscheduling in the OS kernel to enforce static priorities. How-ever, a more comprehensive integration of policies and mech-anismsat the middleware levelis needed.
Identifying general-purpose patterns: To leverage exist-ing QoS research at the OS and networking levels effectively,it is necessary to identify the key general-purpose patterns forcomposingthe lower level mechanisms end-to-end. For exam-ple, identifying different patterns for co-scheduling networkand CPU resources along a request-response path between aclient and a server will be relevant to many applications. Theseclient-server resource allocation patterns will in turn guide thecreation of flexible middleware that is suited to the commonrequirements of a wide range of QoS-enabled client-server ap-plications.
Identifying domain-specific patterns: Where effective res-olutions of common design forces are captured by general-purpose patterns, each individual application domain also pro-duces design forces that are specific to that domain. QoSrequirements such as timing, utilization, or reliability con-straints may differ between different application domains,e.g.,telecommunications and sensor-actuator systems. Additionalresearch is needed to identify the key design forces for eachdomain, along with the patterns that can resolve those forces.
Building flexible QoS frameworks: After identifying thegeneral-purpose and domain-specific patterns outlined above,along with the necessary lower-level mechanisms for QoS en-forcement, it is possible to reify these patterns in flexible QoSframeworks. Implementing key QoS mechanisms, strategiesand policies, and embedding these within middleware frame-works, allows middleware to support (1) the common require-ments of a wide range of QoS-enabled applications and (2) the
specific requirements of individual domains and applications.Moreover, building these frameworks offers practical insightsinto additional patterns and techniques for QoS managementin adaptive middleware for distributed and embedded systems.
We would like to thank Bryan Doerr and Greg Holtmeyerof the Boeing Company for their support of the research de-scribed in this paper. Both have contributed to our vision ofadaptive end-to-end QoS, and have supported our work to-ward that vision. We would also like to thank Alia Atlas ofBBN Technologies/GTE Internetworking for her contributionsto our research on integrating adaptive middleware layers, de-scribed in Section 3.2.2.
References J. A. Zinky, D. E. Bakken, and R. Schantz, “Architectural Support for
Quality of Service for CORBA Objects,”Theory and Practice of ObjectSystems, vol. 3, no. 1, 1997.
 DARPA, “The Quorum Program.”http://www.darpa.mil/ito/research/quorum/index.html, 1999.
 R. Braden et al, “Resource ReSerVation Protocol (RSVP) Version 1Functional Specification,”Network Working Group RFC 2205,pp. 1–112, Sep 1997.
 S. Blake, D. Black, M. Carlson, E. Davies, Z. Wang, and W. Weiss, “Anarchitecture for differentiated services,”Network Information CenterRFC 2475, December 1998.
 R. Rajkumar, L. Sha, and J. P. Lehoczky, “Real-Time SynchronizationProtocols for Multiprocessors,” inProceedings of the Real-TimeSystems Symposium, (Huntsville, Alabama), December 1988.
 C. O’Ryan, D. C. Schmidt, F. Kuhns, M. Spivak, J. Parsons, I. Pyarali,and D. Levine, “Evaluating Policies and Mechanisms for SupportingEmbedded, Real-Time Applications with CORBA 3.0,” inProceedingsof the6th IEEE Real-Time Technology and Applications Symposium,(Washington DC), IEEE, May 2000.
 D. C. Schmidt, D. L. Levine, and S. Mungee, “The Design andPerformance of Real-Time Object Request Brokers,”ComputerCommunications, vol. 21, pp. 294–324, Apr. 1998.
 S. Wang, Y.-C. Wang, and K.-J. Lin, “A General SchedulingFramework for Real-Time Systems,” inIEEE Real-Time Technologyand Applications Symposium, IEEE, June 1999.
 E. D. Jensen, “Eliminating the Hard/Soft Real-Time Dichotomy,”Embedded Systems Programming, vol. 7, Oct. 1994.
 J. P. Loyall, R. E. Schantz, J. A. Zinky, and D. E. Bakken, “Specifyingand measuring quality of service in distributed object systems,” inProceedings of The 1st IEEE International Symposium onObject-oriented Real-time distributed Computing (ISORC 98), April1998.
 J. P. Loyall, D. E. Bakken, R. E. Schantz, J. A. Zinky, D. Karr,R. Vanegas, and K. R. Anderson, “Qus aspect languages and theirruntime integration,”Proceedings of the Fourth Workshop onLanguages, Compilers and Runtime Syste,s for Sclable Components,May 1998.
 P. Pal, J. Loyall, R. Schantz, J. Zinky, , R. Shapiro, and J. Megquier,“Using qdl to specify qos aware distributed (quo) applicationconfiguration,” inProceedings of The 3rd IEEE InternationalSymposium on Object-oriented Real-time distributed Computing(ISORC 00), to appear March 2000.
 T. H. Harrison, D. L. Levine, and D. C. Schmidt, “The Design andPerformance of a Real-time CORBA Event Service,” inProceedings ofOOPSLA ’97, (Atlanta, GA), ACM, October 1997.
 A. Network and I. Services, “National Tele-Immersion Initiative.”http://www.advanced.org/tele-immersion.
 J. Lanier, “Tele-Immersion: The Ultimate QoS-Critical Application,” inFirst Internet2 Joint Applications/ Engineering QoS Workshop, May1998.
 D. L. Levine, C. D. Gill, and D. C. Schmidt, “Dynamic SchedulingStrategies for Avionics Mission Computing,” inProceedings of the 17thIEEE/AIAA Digital Avionics Systems Conference (DASC), Nov. 1998.
 B. S. Doerr, T. Venturella, R. Jha, C. D. Gill, and D. C. Schmidt,“Adaptive Scheduling for Real-time, Embedded Information Systems,”in Proceedings of the 18th IEEE/AIAA Digital Avionics SystemsConference (DASC), Oct. 1999.
 C. D. Gill, D. L. Levine, and D. C. Schmidt, “The Design andPerformance of a Real-Time CORBA Scheduling Service,”TheInternational Journal of Time-Critical Computing Systems, specialissue on Real-Time Middleware, 2000.
 B. S. Doerr and D. C. Sharp, “Freeing Product Line Architectures fromExecution Dependencies,” inProceedings of the 11th Annual SoftwareTechnology Conference, Apr. 1999.
 G. Kiczales, “Beyond the black box: Open implementation,”IEEESoftware, 1996.
 R. Vanegas, J. A. Zinky, J. P. Loyall, D. Karr, R. E. Schantz, and D. E.Bakken, “Quo’s runtime support for quality of service in distributedobjects,”Proceedings of Middleware 98, the IFIP InternationalConference on Distributed Systems Platform and Open DistributedProcessing, September 1998.
 R. E. Schantz, J. A. Zinky, D. A. Karr, D. E. Bakken, J. Megquier, andJ. P. Loyall, “An object-level gateway supporting integrated-propertyquality of service,” inProceedings of The 2nd IEEE InternationalSymposium on Object-oriented Real-time distributed Computing(ISORC 99), May 1999.
 E. Gamma, R. Helm, R. Johnson, and J. Vlissides,Design Patterns:Elements of Reusable Object-Oriented Software. Reading, MA:Addison-Wesley, 1995.
 C. O’Ryan, F. Kuhns, D. C. Schmidt, O. Othman, and J. Parsons, “TheDesign and Performance of a Pluggable Protocols Framework forReal-time Distributed Object Computing Middleware,” inProceedingsof the Middleware 2000 Conference, ACM/IFIP, Apr. 2000.
 Object Management Group,The Common Object Request Broker:Architecture and Specification, 2.3 ed., June 1999.
 A. Gokhale and D. C. Schmidt, “Optimizing a CORBA IIOP ProtocolEngine for Minimal Footprint Multimedia Systems,”Journal onSelected Areas in Communications special issue on Service EnablingPlatforms for Networked Multimedia Systems, vol. 17, Sept. 1999.
 I. Pyarali, C. O’Ryan, D. C. Schmidt, N. Wang, V. Kachroo, andA. Gokhale, “Applying Optimization Patterns to the Design ofReal-time ORBs,” inProceedings of the5th Conference onObject-Oriented Technologies and Systems, (San Diego, CA),USENIX, May 1999.
 D. C. Schmidt, “GPERF: A Perfect Hash Function Generator,” inProceedings of the2nd C++ Conference, (San Francisco, California),pp. 87–102, USENIX, April 1990.
 D. C. Schmidt, S. Mungee, S. Flores-Gaitan, and A. Gokhale,“Software Architectures for Reducing Priority Inversion andNon-determinism in Real-time Object Request Brokers,”Journal ofReal-time Systems, special issue on Real-time Computing in the Age ofthe Web and the Internet, To appear 2000.
 F. Kuhns, D. C. Schmidt, C. O’Ryan, and D. Levine, “SupportingHigh-performance I/O in QoS-enabled ORB Middleware,”ClusterComputing: the Journal on Networks, Software, and Applications,2000.
 Z. D. Dittia, G. M. Parulkar, and J. R. Cox, Jr., “The APIC Approach toHigh Performance Network Interface Design: Protected DMA andOther Techniques,” inProceedings of INFOCOM ’97, (Kobe, Japan),pp. 179–187, IEEE, April 1997.
 D. C. Schmidt and T. Suda, “An Object-Oriented Framework forDynamically Configuring Extensible Distributed CommunicationSystems,”IEE/BCS Distributed Systems Engineering Journal (SpecialIssue on Configurable Distributed Systems), vol. 2, pp. 280–293,December 1994.
 D. C. Schmidt, M. Stal, H. Rohnert, and F. Buschmann,Pattern-Oriented Software Architecture: Patterns for Concurrency andDistributed Objects, Volume 2. New York, NY: Wiley & Sons, 2000.
 D. B. Stewart and P. K. Khosla, “Real-Time Scheduling ofSensor-Based Control Systems,” inReal-Time Programming(W. Halang and K. Ramamritham, eds.), Tarrytown, NY: PergamonPress, 1992.
 C. Liu and J. Layland, “Scheduling Algorithms for Multiprogrammingin a Hard-Real-Time Environment,”JACM, vol. 20, pp. 46–61, January1973.
 J. Huang et al., “RT-ARM: A real-time adaptive resource managementsystem for distributed mission-critical applications,” inWorkshop onMiddleware for Distributed Real-Time Systems, RTSS-97, (SanFrancisco, California), IEEE, 1997.
 P. Chandra and et. al, “Darwin: Resource Management forValue-Added Customizable Network Service,” inSixth IEEEInternational Conference on Network Protocols (ICNP’98), (Austin,TX), IEEE, Oct. 1998.
 J. Huang and R. Jha and W. Heimerdinger and M. Muhammad and S.Lauzac and B. Kannikeswaran and K. Schwan and W. Zhao and R.Bettati, “RT-ARM: A real-time adaptive resource management systemfor distributed mission-critical applications,” inWorkshop onMiddleware for Distributed Real-Time Systems, RTSS-97, (SanFrancisco, California), IEEE, 1997.
 Object Management Group,Dynamic Scheduling, OMG Documentorbos/99-03-32 ed., March 1999.
 Z. Deng and J. W.-S. Liu, “Scheduling Real-Time Applications in anOpen Environment,” inProceedings of the 18th IEEE Real-TimeSystems Symposium, IEEE Computer Society Press, Dec. 1997.
 H.-Y. Tyan and J. C. Hou, “A rate-based message schedulingparadigm,” inFourth International Workshop on Object-Oriented,Real-Time Dependable Systems, IEEE, January 1999.
 P. Newman, W. Edwards, R. Hinden, E. Hoffman, F. Ching Liaw, T.Lyon, and G. Minshall, “Ipsilon’s General Switch ManagementProtocol Specification Version 2.0,” Standards Track RFC 2297,Network Working Group, March 1998.
 A. Mehra, A. Indiresan, and K. G. Shin, “Structuring CommunicationSoftware for Quality-of-Service Guarantees,”IEEE Transactions onSoftware Engineering, vol. 23, pp. 616–634, Oct. 1997.
 C. P. et al., “A fifty gigabit per second ip router,”IEEE Journal ofTransactions on Networking, vol. 6, pp. 237–248, June 1998.
 U. C. for Advanced Internet Development, “Abilene is an advancedbackbone for the Internet2 project.” http://www.internet2.edu/abilene/.