Standards-Based Software Infrastructure for Collaborative Environment and Distributed Computing Applications

Deb Agarwal (LBNL), Ian Foster (ANL) and Tim Strayer (SNL)

We propose a focused, multi-laboratory research and development project to produce the distributed computing infrastructure required to support the development of scientific "collaboratories." The goal of the project is to improve software quality, reduce duplication of effort, enhance interoperability, and promote interlab cooperation by developing a common software infrastructure that can be shared by many projects. This infrastructure will provide essential distributed computing functions such as resource location, data transport, security, and persistent services. It will also provide a framework into which can be embedded software components developed by various DOE and nonDOE groups, hence providing a basis for development and widespread deployment of collaboratory components. The infrastructure will be developed by a talented team spanning multiple DOE laboratories.

Strong commercial pressures and rapid progress in distributed computing means that developers of advanced collaboratory technologies find themselves in a difficult situation. Commercial interest in distributed computing has led to significant standardization efforts (e.g., the Common Object Request Broker Architecture: CORBA) that cannot be ignored. Yet quality implementations of these standards are still scarce, and those implementations that exist lack features judged essential for DOE applications, such as multicast, high-performance transport, and implementations on parallel computers. Individual projects do not have the resources to produce high-performance implementations of standards themselves. The result is the adoption of mutually incompatible software solutions across different DOE collaboratory projects, and considerable duplication of effort.

We propose to overcome this problem by a "standards+" approach to the development of a DOE-wide software infrastructure, in which existing standards and commercial or public domain software are evaluated and extended where necessary to meet DOE requirements. We propose that this approach be pursued in a three-year, multi-lab project, with three distinct phases:

We expect that this work will adopt CORBA interfaces and services as a framework within which DOE-specific requirements can be addressed. The use of CORBA has significant advantages, including the existence of well-documented standards, availability of software for immediate development, and interoperability with commercial systems.

A significant outcome of this work is likely to be a high-performance implementation of key CORBA facilities, portable across high-performance platforms of interest to DOE and incorporating specialized features (e.g., multicast and security) required for DOE applications. The development of such a system will represent a major DOE contribution to the distributed computing community and will inevitably also lead to significant research advances.

In developing this "standards+" software infrastructure, we will work closely with the DOE user community on the one hand, and with CORBA and distributed systems developers on the other. In fact, the first activities that we propose for this new initiative are two workshops:


Attachment: DOE Requirements for Collaboratory Software

=======================================================

Analysis

--------

No existing software system meets the requirements listed above. Systems such as the Message Passing Interface address the need for high-performance transport. The Nexus and Globus systems address in addition issues of naming, resource location, etc. Parallel C++ systems such as CC++ provide object-oriented design. Legion provides a distributed, object oriented parallel processing environment. Various CORBA products meet a cross section of the above requirements, but tend to have poor performance and to lack key elements such as multicast.

These considerations motivate the following approach to the definition of software infrastructure.