Engineering Papers⌕ Search

Engineering topics

Holzbacher-Valero, A. A.

Publications and source records attributed to Holzbacher-Valero, A. A..

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.↗

Distributed and parallel Ada and the Ada 9X recommendations

Recently, the DoD has sponsored work towards a new version of Ada, intended to support the construction of distributed systems. The revised version, often called Ada 9X, will become the new standard sometimes in the 1990s. It is intended that Ada 9X should provide language features giving limited support for distributed system construction. The requirements for such features are given. Many of the most advanced computer applications involve embedded systems that are comprised of parallel processors or networks of distributed computers. If Ada is to become the widely adopted language envisioned by many, it is essential that suitable compilers and tools be available to facilitate the creation of distributed and parallel Ada programs for these applications. The major languages issues impacting distributed and parallel programming are reviewed, and some principles upon which distributed/parallel language systems should be built are suggested. Based upon these, alternative language concepts for distributed/parallel programming are analyzed.

Volz, Richard A.↗