Integrating existing software packages using the virtual machine technique

Abstract This article proposes an approach using virtual machine (VM) techniques to integrate existing software packages called the VM pipe approach. The most important advantage of such a software integration scheme is that one need not change or be concerned with the internal structure of the existing software packages. Constructing a VM pipe relies on two key mechanisms—VM communication and VM I/O interception. VM communication is used to pass input and output data streams among the software packages executed within individual virtual machines. VM I/O interception mechanisms are required to redirect the input and output of application packages. To integrate software packages using the VM technique, we propose a system model in which there is a control VM and one or more server VMs coexisting in one physical computer. The former VM executes a user-supported coordinator program that controls system operations, integrates the packages running in server VMs, and serves as the interface with users. An experimental system was built to demonstrate the proposed system model using an 80386 personal computer on which multiple MS-DOS-based applications were integrated and executed concurrently within individual VM.

[1]  David Notkin,et al.  Guest Editors' Introduction: Integrated Design and Programming Environments , 1987, Computer.

[2]  Jeffrey P. Buzen,et al.  The evolution of virtual machine architecture , 1973, AFIPS National Computer Conference.

[3]  Morton Rosenthal,et al.  PC software integration , 1985 .

[4]  A. Nico Habermann,et al.  Software Development Environments , 1987, Computer.

[5]  David B. Leblang,et al.  Computer-Aided Software Engineering in a distributed workstation environment , 1984 .

[6]  Brian W. Kernighan,et al.  The UNIX™ programming environment , 1979, Softw. Pract. Exp..

[7]  Robert P. Goldberg,et al.  Architecture of virtual machines , 1973, Workshop on Virtual Computer Systems.

[8]  David Notkin,et al.  Gandalf: Software development environments , 1986, IEEE Transactions on Software Engineering.

[9]  Robert P. Goldberg,et al.  Virtual machines and distributed processing , 1979, Virtuelle Maschinen.

[10]  Peter H. Feiler,et al.  An Incremental Programming Environment , 1981, IEEE Transactions on Software Engineering.

[11]  Mark N. Wegman,et al.  A Program Development Tool , 1984, IBM J. Res. Dev..

[12]  Thomas Reps,et al.  Programming Techniques and Data Structures , 1981 .

[13]  Brian W. Kernighan,et al.  The Unix Progamming Environment , 1981, Computer.