meridian-computer.gif (19819 bytes)    Meridian Project Summary

 

Meridian: An Integrated Toolkit for Developing Interactive Distributed Applications

Interactive distributed applications (IDAs) are those that involve direct interaction with users and whose processing and data components are distributed across a network. Examples of IDAs include distributed data management systems, on-board driver/pilot navigation assistance systems, computer-supported cooperative work environments, distance education tools, and a variety of public safety systems. The increasing interest in IDAs is fueled by several factors, including the advent of the World-Wide Web, the development of new middleware technologies, the introduction of scripting languages for graphical user interfaces, and the availability of new network services and protocols.

Three characteristics of IDAs complicate their development. First,  IDAs usually interact with other independent systems, including one or more human users. Verification of the system functionality requires extensive experimentation and testing. Second, IDAs typically comprise multiple levels of concurrent communicating components, creating the potential for race conditions, deadlock, and starvation. Informal reasoning about correctness and performance of concurrent systems is difficult and prone to error. Third, IDAs typically incorporate existing software modules to implement communication protocols, manage distributed resources, and display data to the user. An IDA developer should be able to browse reuse repositories, reason about component interaction, and validate a component's ability to satisfy requirements. As the demand for IDAs grows, and as they become increasingly complex, there is a need to automate various activities in their construction and maintenance. Automated software techniques can potentially improve both the quality of the resulting products and productivity of developers.

The proposed project involves the integration and validation of Meridian, a collection of tools designed to help automate the development of 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. (See Diagram for Meridian Vision)

The Meridian project will be conducted on an NSF-supported mobile/distributed computing testbed and will involve three experimental components. First, the construction of the Meridian toolkit itself is a proof-of-concept endeavor demonstrating that a set of existing tools can be integrated to support all phases of IDA development. Second, Meridian will be accessible only through a set of coordinated interfaces that support user input capture, thus enabling the recording of each step of the development process for purposes of traceability and reproducibility of development results. Third, 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.


The Meridian project will leverage on multidisciplinary precursor research in software engineering, formal methods, interactive systems design, distributed systems, and networking. By constructing a single development framework for a specific class of applications, in which tools for different phases interact via consistent representations, the Meridian project can address several critical issues that do not arise when studying individual phases of development: tracing requirements through design, implementation, and testing; visualizing consistent models of component behavior; supporting software reuse across different levels of abstraction; and incorporating performance feedback from testing into formal specifications. These capabilities can fundamentally improve the way in which IDA software is developed and maintained. Moreover, Meridian can serve as a model for software development in other application domains.


 

BACK to Meridian Homepage