The Evolving Philosophers Problem: Dynamic Change Management

``The Evolving Philosophers Problem: Dynamic Change Management'' by J. Kramer and J. Magee. {IEEE} Transactions on Software Engineering, vol. 16, no. 11, Nov. 1990, pp. 1293-1306, IEEE Computer Society.
Annotation: Argues for a separation of functional application concerns from structural configuration concerns. Distributed applications are described as interconnected components. Configuration changes are specified declaratively; a configuration management system translates this specification into a ``change transaction'' that can create, remove, link, or unlink components. To preserve application consistency, components must be able to become ``passive,'' i.e., stop initiating but continue serving transactions. Given this capability, the configuration management system can passivate the appropriate components before actually changing the system structure. A component can be removed if it is ``quiescent'', i.e., it is passive and all components linked to it are passive. The authors mention that an alternative to quiescence is to use recovery to restore application consistency, but they argue that this complicates applications (but they also mention recovery may be necessary to deal with failure). The initial presentation assumes transactions are independent (i.e. not nested), but later sections relax this assumption (either by passivating dependent components or by aborting the dependent transactions). The system requires that the initiator of a transaction be informed of when a transaction completes (i.e., no one-way messages). The system can be extended to support multiple, concurrent change transactions by passivating more components. The system does not support state transfer between old and new components, but the authors mention that this is possible between quiescent components. In future work, the authors mention that an application could minimize system disruption by instigating change when quiescence is detected, rather than externally imposed.

BibTeX entry:

@article{kramer90evolving,
   author = {J. Kramer and J. Magee},
   title = {{The} {Evolving} {Philosophers} {Problem}: {Dynamic} Change
	Management},
   journal = {{IEEE} Transactions on Software Engineering},
   volume = {16},
   number = {11},
   pages = {1293--1306},
   publisher = {IEEE Computer Society},
   address = {Washington, DC},
   month = nov,
   year = {1990},
   url = {http://citeseer.ist.psu.edu/kramer90evolving.html}
}

Also see software upgrades publications by date.

Sameer Ajmani