Intelligent Distributed Computing Department
Distributed Systems Technology Group Technologies


Quality Objects (QuO)

QuO version 3.1 is now available


QuO Overview

Quality Objects (QuO) is a framework for providing quality of service (QoS) in network-centric distributed applications. These applications range from embedded applications to wide area network applications, including many military and commercial applications.

In recent years, object-oriented programming has become quite popular because of the many software engineering benefits it provides. These benefits are even more pronounced in distributed applications, application programs which must operate between multiple computers. The Common Object Request Broker Architecture (CORBA) standard by the Object Management Group (OMG) consortium has become quite popular for distributed applications. There are currently CORBA products from vendors such as Inprise, OCI, Sun Microsystems, and Iona Technologies, and others. However, CORBA does not yet deal well with the problems associated with developing and deploying distributed applications which operate across WANs, mobile links, etc. In such environments bandwidth is limited, resource availability changes quickly, and there is neither central control nor predictability.

In separate efforts, quality of service (QoS) is being developed as a way to manage communications and other kinds of resources to provide bandwidth and other properties (see the Internet Engineering Task Force (IETF) and the IWQoS Workshop, for example). However, these efforts are currently not helpful to many WAN-based distributed applications for two reasons. First, they generally assume a fairly controlled and tame environment such as a local area network (LAN). Second, they are based at the socket level (which only encapsulates communication resources) rather than at the distributed object level (which encapsulates communications, processing, and storage resources). These resource tradeoffs are probably the right ones to manage some applications, such as video and multimedia. However, many distributed applications spanning WANS are interested in other properties, including security, dependability, and real-time behavior.

We are developing QuO to help distributed application developers write programs that can run reasonably over WANs, LANs, and embedded environments. QuO bridges the gap between the socket-level QoS being specified, researched, and provided by a number of organizations and the distributed object level where many distributed applications are best written. QuO adds QoS to CORBA and Java RMI in a manner which is appropriate for creating applications that can adapt to environments that are unpredictable or have strict resource constraints. QuO integrates and simplifies information from many:

to help the developer. Further, trying to provide absolute "guarantees" over WANs (proving semantics close to local procedure calls or invocations across an unloaded LAN) will be either too expensive, suffer too high a latency, or be far too complicated to program. Thus, QuO's emphasis is on specification, measuring, controlling, and adapting to changes in QoS. QuO provides a number of capabilities, including the following:

For further introduction to the issues involved with providing QoS to WAN applications, with an introduction to QuO, please see our paper in the January 1997 issue of Theory and Practice of Object Systems, or any of our other papers.

QuO Projects

Other Related Projects

QuO People

QuO Papers and Presentations

This is a selected list of recent QuO related papers. A more complete listing is here.

QuO Middleware Architecture Papers

QuO in Embedded Systems Papers

QuO in Wide-Area Environments Papers

QuO in Survivable Systems Papers

Middleware Papers

Miscellaneous QuO, QoS, and Middleware Papers

QuO Alumni

Related People and Projects

QuO research has been funded in part by the Defense Advanced Research Projects Agency.

Last modified January 30 2006

BBN Home Projects Technologies People Papers Comments
© 2002 BBN Technologies