Abstract
This dissertation introduces a new communication paradigm, RESTCLK, that extends programmatic observation and control (O&C) to the communication network. In a RESTCLK-based distributed application system, any software object with requisite privileges may suspend and resume the ow of data and examine and modify the data in transit over RESTCLK communication networks. Abstractions and protocols used in RESTCLK allow dynamic changes to be performed in RESTCLK communication networks while maintaining transparency with respect to the application objects, that is, without requiring their knowledge or participation. Support for transparency and dynamicity in RESTCLK networks leads to a unique set of significant features of O&C in RESTCLK including: (1) Objects in a system need not be aware of O&C happening around them; (2) O&C may be performed selectively at any point in a RESTCLK communication network and for any data in transit; and (3) O&C may be recursively performed on O&C itself. O&C capabilities in RESTCLK lead to several significant benefits, especially in the context of dynamic reconfiguration of distributed application systems: (1) Software objects used in building application systems need not be designed to accommodate future dynamic reconfigurations of application systems; (2) Ability to perform even a priori unplanned dynamic reconfigurations; (3) Reduction in complexity of object source codes through elimination of reconfiguration related coordination logic from source codes; (4) Enhanced reusability of object source codes. We also discuss use of RESTCLK in several other contexts: In situ testing of new versions of software in their actual target operational environments without jeopardizing correctness of, and with minimal interference to, the services provided by the current versions; Data in transit may be dynamically encrypted and protected as and when need arises over any part of the communication network; Fault management strategies may be dynamically incorporated into an application system. A proof-of-concept distributed prototype system has been implemented that supports RESTCLK abstractions by providing APIs for use by application system developers. Several well-known applications have been implemented using this prototype to demonstrate some of the benefits of RESTCLK