Control integration in heterogeneous distributed software applications
Elizabeth L. White · 1996
A distributed software application is composed of a group of independent components executing in parallel and interacting to achieve some goal. There are many reasons why a designer might wish to construct a distributed software application, including potential performance gains, the ability to use special-purpose hardware for part of the computation, and the increasing popularity of networks of workstations. However, integration of independent components can be difficult because there may be many threads of control to consider, different components of the application may execute on different machines and the individual components may be implemented in different languages. In essence, the implementation for each component must meet both functional requirements for the individual components and interaction requirements for the application as a whole. Techniques for dealing with the interactions involve generating interface software for each component targeted to the underlying environment. Previous approaches have focused on separating out system-level control issues, allowing designers to consider how to assemble applications in multiple run-time environments. However, these tools make assumptions about how the components are allowed to interact in the application. To use these tools, a designer has to design the application components and the application communication and synchronization with this interaction style in mind. If the control flow in a given application does not fit these constraints, the designer is forced back to manually adapting the components. Managing the potential complexity of the control flow in distributed applications motivates a further division of the control properties into module control properties, application control properties and system control properties. This thesis describes specification-directed control integration, an approach that extends previously studied generative approaches by allowing the user to describe control each of the three levels. After automatic tools uses these control descriptions to make decisions about where interface software is needed in the application, specialized stub generators can produce interface software that is tailored to the environment, to the components and to the user-defined interaction between the components.