David A. Karr
BBN Technologies
Network
Latest external collaboration on country level. Dive into details by clicking on the dots.
Publication
Featured researches published by David A. Karr.
symposium on reliable distributed systems | 1998
Michel Cukier; Jennifer Ren; Chetan Sabnis; David Henke; Jessica Pistole; William H. Sanders; David E. Bakken; Mark E. Berman; David A. Karr; Richard E. Schantz
Dependable distributed systems are difficult to build. This is particularly true if they have dependability requirements that change during the execution of an application, and are built with commercial off-the-shelf hardware. In that case, fault tolerance must be achieved using middleware software, and mechanisms must be provided to communicate the dependability requirements of a distributed application to the system and to adapt the systems configuration to try to achieve the desired dependability. The AQuA architecture allows distributed applications to request a desired level of availability using the Quality Objects (QuO) framework and includes a dependability manager that attempts to meet requested availability levels by configuring the system in response to outside requests and changes in system resources due to faults. The AQuA architecture uses the QuO runtime to process and invoke availability requests, the Proteus dependability manager to configure the system in response to faults and availability requests, and the Ensemble protocol stack to provide group communication services. Furthermore, a CORBA interface is provided to application objects using the AQuA gateway. The gateway provides a mechanism to translate between process-level communication, as supported by Ensemble, and IIOP messages, understood by Object Request Brokers. Both active and passive replication are supported, and the replication type to use is chosen based on the performance and dependability requirements of particular distributed applications.
Middleware '98 Proceedings of the IFIP International Conference on Distributed Systems Platforms and Open Distributed Processing | 2009
Rodrigo Vanegas; John A. Zinky; Joseph P. Loyall; David A. Karr; Richard E. Schantz; David E. Bakken
Most distributed applications are brittle; they work in a limited environment and cannot adapt to changes in this environment. Making these applications less brittle is a complex engineering task that is hard for specific application areas and even harder to generalize. The Quality Objects (QuO) project offers a framework for creating applications that adapt to different Quality of Services (QoS) offered by the underlying resources. QuO offers several layers of tools for creating adaptive distributed applications using the familiar CORBA development process of code generators and runtime support libraries. In this paper we describe the QuO Runtime and the components it uses to maintain and adapt to QoS. The QuO Runtime is the base functionality on which QuO code generators specialize for a specific adaptive application. The QuO Runtime handles much of the complexity of collecting, organizing, and acting on changing QoS, thus reducing the burden for application developers.
Lecture Notes in Computer Science | 1998
Joseph P. Loyall; David E. Bakken; Richard E. Schantz; John A. Zinky; David A. Karr; Rodrigo Vanegas; Kenneth R. Anderson
Distributed object middleware, such as CORBA, hides system-and network-specific characteristics of objects behind functional interface specifications. This simplifies development and maintenance of distributed objects, contributing to their growing acceptance. Critical applications have Quality of Service (QoS) requirements, however, such as real-time performance, dependability, or security, that are hidden by middleware. Because of this, application developers often bypass distributed object systems, thus gaining little or no advantage from the middleware. We have developed Quality Objects (QuO), a framework for developing distributed applications with QoS requirements. QuO provides a set of aspect languages, called Quality Description Languages (QDL), for specifying possible QoS states, the system resources and mechanisms for measuring and controlling QoS, and behavior for adapting to changing levels of available QoS at runtime. This paper describes QuOs aspect languages, their usage, and how they interact with the QuO runtime system to form the QuO framework.
international conference on distributed computing systems | 2001
Joseph P. Loyall; Richard E. Schantz; John A. Zinky; Partha P. Pal; Richard Shapiro; Craig Rodrigues; Michael Atighetchi; David A. Karr; Jeanna M. Gossett; Christopher D. Gill
The Quality Objects (QuO) middleware is a set of extensions to standard distributed object computing middleware that is used to control and adapt the quality of service in a number of distributed application environments, from wide-area to embedded distributed applications. This paper compares and contrasts the characteristics of key use cases and the variations in QuO implementations that have emerged to support them. We present these variations in the context of several actual applications being developed using the QuO middleware.
languages compilers and tools for embedded systems | 2001
Yamuna Krishnamurthy; Vishal Kachroo; David A. Karr; Craig Rodrigues; Douglas C. Schmidt
This paper describes the integration of QoS-enabled distributed object computing (DOC) middleware for developing next-generation distributed applications. QoS-enabled DOC middleware facilitates ease of development and deployment of applications that can leverage the underlying networking technology or end-system QoS architecture. This paper also describes the development of a demonstration application utilizing QoS-enabled middleware to control the dissemination of Unmanned Air Vehicle (UAV) data throughout a ship.
Dependable Computing for Critical Applications 7 | 1999
Chetan Sabnis; Michel Cukier; Jennifer Ren; Paul Rubel; William H. Sanders; David E. Bakken; David A. Karr
Building dependable distributed systems from commercial off-the-shelf components is of growing practical importance. For both cost and production reasons, there is interest in approaches and architectures that facilitate building such systems. The AQuA architecture is one such approach; its goal is to provide adaptive fault tolerance to CORBA applications by replicating objects, providing a high-level method for applications to specify their desired dependability, and providing a dependability manager that attempts to reconfigure a system at runtime so that dependability requests are satisfied. This paper describes how dependability is provided in AQuA. In particular it describes Proteus, the part of AQuA that dynamically manages replicated distributed objects to make them dependable. Given a dependability request, Proteus chooses a fault tolerance approach and reconfigures the system to try to meet the request. The infrastructure of Proteus is described in this paper, along with its use in implementing active replication and a simple dependability policy.
Proceedings of the 2001 international workshop on Multimedia middleware | 2001
David A. Karr; Craig Rodrigues; Joseph P. Loyall; Richard E. Schantz
We demonstrate a standards-based middleware platform, including the QuO adaptive middleware framework and the TAO CORBA A/V Streaming Service, for developing adaptive multimedia applications that are better architected and easier to modify than ad-hoc architectures and that can adapt to changes in resource availability to meet QoS requirements. These are presented in the context of an Unmanned Aerial Vehicle (UAV) video distribution application. We present experimental results showing how the UAV application uses adaptive behavior to meet timeliness requirements in the face of restrictions in processing power or network bandwidth.
high-assurance systems engineering | 1999
Jennifer Ren; Michel Cukier; Paul Rubel; William H. Sanders; David E. Bakken; David A. Karr
Building dependable distributed systems using ad hoc methods is a challenging task. Without proper support, an application programmer must face the daunting requirement of having to provide fault tolerance at the application level, in addition to dealing with the complexities of the distributed application itself. This approach requires a deep knowledge of fault tolerance on the part of the application designer, and has a high implementation cost. What is needed is a systematic approach to providing dependability to distributed applications. Proteus, part of the AQuA architecture, fills this need and provides facilities to make a standard distributed CORBA application dependable, with minimal changes to an application. Furthermore, it permits applications to specify, either directly or via the Quality Objects (QuO) infrastructure, the level of dependability they expect of a remote object, and will attempt to configure the system to achieve the requested dependability level. Our previous papers have focused on the architecture and implementation of Proteus. This paper describes how to construct dependable applications using the AQuA architecture, by describing the interface that a programmer is presented with and the graphical monitoring facilities that it provides.
international symposium on object component service oriented real time distributed computing | 1999
Richard E. Schantz; John A. Zinky; David A. Karr; David E. Bakken; James Megquier; Joseph P. Loyall
dependable systems and networks | 2001
David E. Bakken; Zhiyuan Zhan; Christopher C. Jones; David A. Karr