Completed Research Projects - Philip K. McKinley
Development of Adaptable and Dependable Middleware
The goal of this project is to develop and evaluate a unified methodology
for designing middleware components to support distributed computing in
heterogeneous, mobile environments. The design methodology applies
to adaptive communication protocols, fault tolerance and security services,
and reconfigurable user interfaces. The methodology is supported by a programming
paradigm that enables declarative specifications of quality-of-service
needs, evolution of the system to accommodate new technologies and services,
and automated checking of functional and nonfunctional properties of the
system. The project will produce tools to support the development and reuse
of middleware components, based on these techniques, as well as industry-guided
case studies of their use. Supported by the Office of Naval Research
under Grant No. N00014-01-1-0744.
Meridian: An Integrated Toolkit
for Developing Interactive Distributed Applications
This project involves the integration and validation of Meridian, a
collection of tools designed to help automate the development of interactive
distributed applications (IDAs). Collectively, these tools will support
diagram-based modeling, rigorous correctness analysis, software reuse,
automated code generation, and software visualization. Moreover, they will
interact with one another through explicit design representations with
formally defined semantics, enabling requirements to be traced from high-level
models to low-level code. In order to validate the Meridian toolkit and
facilitate technology transfer, case studies of three different classes
of IDAs will be conducted using projects supplied by industrial partners.
This project is supported in part by a grant from the NSF/EIA Experimental
Partnerships Program (EIA-0000433).
KMX: Supporting Adaptable Pervasive Computing through a Kernel-Middleware eXchange
The dynamics of network environments
(variable conditions on wireless networks, changing
security policies as users roam among wireless domains, and
computing priorities that depend on battery life) pose a
significant challenge in the design of software infrastructure
for mobile systems. One approach to this problem is to introduce
a layer of adaptive middleware between applications and
underlying transport services.
The Kernel-Middleware eXchange (KMX) project investigates how middleware
can actively cooperate with the
operating system in order to provide applications with supporting
functionality that neither part could provide by itself. The
project addresses three cross-cutting concerns:
quality-of-service of multimedia communication on wireless
networks; measures to enhance the security of mobile devices,
including adaptive auditing and packet filtering; and managing
battery lifetime through data transformations, adaptive process
scheduling, and management of network interface card usage.
is supported in part by NSF grant ITR-0313142.
Communication Services for Collaborative Computing
This research project addresses the design of communication protocols
and middleware to support collaborative applications in heterogeneous environments.
The project focuses on several major issues of interoperability:
host-level group communication protocols that adapt to dynamic network
conditions; object-oriented middleware design to support software reuse,
extensibility, and maintenance; proxy-based services that dynamically conform
to participants with disparate computing devices and network connections;
and techniques for incorporating domain-specific policies and functionality
into collaborative middleware and systems software. This project
is supported in part by NSF grant CCR-9912407.
Group Communication Protocols
for Computer Networks
This project addresses network support for group operations, such as
multipoint connection management and leader election, by taking advantage
of internal routing information. The resulting protocols are applicable
to both ATM networks and the Internet. This research is supported in part
by NSF grant NCR-9706285.
Communication for Parallel and Distributed Processing
This project addresses the design of collective communication operations,
such as multicast, global reduction, and barrier synchronization, for use
by parallel and distributed applications. Target architectures include
both massively parallel processors (MPPs) and networks of workstations
(NOWs). This research has been supported in part by NSF grant CCR-9503838.
This project investigates methods to improve the programmability of
parallel and distributed architectures without sacrificing performance.
Early work in this area addressed the design of communication libraries
for scalable parallel architectures. More recent work has focused software
reuse through object-oriented design. This project has been supported in
part by DOE grant DE-FG02-93ER25167.
Communication in Multicomputers
This project investigated one-to-many, or multicast, communication
in multicomputers. The project comprised three primary tasks: design of
unicast-based multicast algorithms, design of hardware support for multicast,
and use of multicast algorithms in parallel applications. This project
was supported in part by NSF grant MIP-9204066.