Search NASASearch

Engineering topics

Smith, Gary W.

Publications and source records attributed to Smith, Gary W..

On-line upgrade of program modules using AdaPT

One purpose of our research is the investigation of the effectiveness and expressiveness of AdaPT, a set of language extensions to Ada 83, for distributed systems. As a part of that effort, we are now investigating the subject of replacing, e.g. upgrading, software modules while the software system remains in operation. The AdaPT language extensions provide a good basis for this investigation for several reasons: they include the concept of specific, self-contained program modules which can be manipulated; support for program configuration is included in the language; and although the discussion will be in terms of the AdaPT language, the AdaPT to Ada 83 conversion methodology being developed as another part of this project will provide a basis for the application of our findings to Ada 83 and Ada 9X systems. The purpose of this investigation is to explore the basic mechanisms of the replacement process. With this purpose in mind, we will avoid including issues whose presence would obscure these basic mechanisms by introducing additional, unrelated concerns. Thus, while replacement in the presence of real-time deadlines, heterogeneous systems, and unreliable networks is certainly a topic of interest, we will first gain an understanding of the basic processes in the absence of such concerns. The extension of the replacement process to more complex situations can be made later. A previous report established an overview of the module replacement problem, a taxonomy of the various aspects of the replacement process, and a solution to one case in the replacement taxonomy. This report provides solutions to additional cases in the replacement process taxonomy: replacement of partitions with state and replacement of nodes. The solutions presented here establish the basic principles for module replacement. Extension of these solutions to other more complicated cases in the replacement taxonomy is direct, though requiring substantial work beyond the available funding.

Waldrop, Raymond S.

On-line upgrade of program modules

This paper presents a taxonomy of problems that must be solved in order to achieve on-line upgradability of long-lived programs, and presents a solution to the fundamental problems in the taxonomy. The solutions are based upon AdaPT, a set of language extensions designed to aid in the distribution of a single Ada program. AdaPT introduces three major units, the public, the partition, and the node. Publics are primarily used to share type information. Partitions are the basic units of distribution while nodes are used to control the configuration of the program. Nodes and partitions can be created dynamically via the allocator. A node-level routine controls the replacement process. The controlling node creates a new instance of the routine being replaced; the run-time system must ensure that the new instance is the updated one. Once access to the new version has been established, all further calls to the module are redirected to the new version and the caller is informed of the change so that it may make subsequent calls directly. When a module is being upgraded, there is a transition period during which both the old and new versions are present. We require that clients of a potentially replaceable module 'check in' with the controlling node. The controlling node keeps track of the number of clients that have been redirected to the replacement. When all have been redirected, the old version can be deallocated.

Waldrop, Raymond S.

On-line replacement of program modules using AdaPT

One purpose of our research is the investigation of the effectiveness and expressiveness of AdaPT(1), a set of language extensions to Ada 83, for distributed systems. As a part of that effort, we are now investigating the subject of replacing, e.g., upgrading, software modules while the software system remains in operation. The AdaPT language extension provide a good basis for this investigation for several reasons: (1) they include the concept of specific, self-contained program modules which can be manipulated; (2) support for program configuration is included in the language; and (3) although the discussion will be in terms of the AdaPT language, the AdaPT to Ada 83 conversion methodology being developed as another part of this project will provide a basis for the application of our findings to Ada 83 systems. The purpose of this investigation is to explore the basic mechanisms to the replacement process. Thus, while replacement in the presence of real-time deadlines, heterogeneous systems, and unreliable networks is certainly a topic of interest, we will first gain an understanding of the basic processes in the absence of such concerns. The extension of the replacement process to more complex situations can be made later. This report will establish an overview of the on-line upgrade problem, and present a taxonomy of the various aspects of the replacement process.

Waldrop, Raymond S.