next up previous
Next: Design Choice: Determining the Up: Adapting to Constraints: Choices Previous: Adapting to Constraints: Choices

Design Choice: Providing an Open Implementation of the components in the Underlying Technology

The concept of open implementation [7] from software engineering enables the designers of components to open up the implementation of their component so that it can be adjusted and adapted to suit various needs. The behaviour of a component should be described by its interface abstractions, but the implementation is generally hidden behind the interface. Following the design guidelines of open implementation (OI) [13], the designer of the component will offer other meta interfaces through which the programmer can adjust the implementation of the component.

If we are aiming to produce distributed applications which scale across network and display capabilities, then OI offers a suitable software engineering approach to enable this scalability. Simply put, the OI part of a software component exposes the network requirements of a particular implementation of a component. By allowing the adaptation controller to manipulate the implementation of a component, the controller can adjust the network requirements of the component and thus adapt the component to the prevailing network conditions. Following the guidelines in [8], the designer of an open implementation interface should attempt to:

  1. Define the abstract black box interface, which instantiates the ``useful'' behaviour of the component.
  2. Using the domain knowledge of both the inherent implementation of the component and of how clients will use the component, define interfaces which allow the client to control implementation strategies.

The inherent implementation of the component is based around the abstractions that will be used to implement the component. For the case of the file caching mechanism described in [12], it is the disk buffers and caches of a file system. For the network retrieval architecture described in Section 3, the abstractions are the compression schemes and representations of the various forms of multimedia. Since the abstractions used in understanding the implementation of a component are closer to the domain of the application, the designer will be able to better tune the adaptation of the application.


next up previous
Next: Design Choice: Determining the Up: Adapting to Constraints: Choices Previous: Adapting to Constraints: Choices

Malcolm McIlhagga
Thursday June 11 16:17:19 BST 1998