By the same authors

From the same journal

A Disconnected Service Architecture for Unanticipated Runtime Evolution of Code

Research output: Contribution to journalArticle



Publication details

JournalIEE Proceedings - Software
DatePublished - 2004
Issue numberSpecial Issue on Unanticipated Software Evolution
Original languageUndefined/Unknown


Run-time evolution of applications is an important issue for safety critical systems, such as nuclear power plant management systems; or for software used night and day like mail/Web servers and banking systems. It may also be useful, during an application development, to let portions of code evolve at run-time, not restarting the debugged application, and still using it. In addition, today’s software is surrounded by a highly dynamic environment, in terms of software, network topologies or communication means. Thus, evolution of code cannot always be anticipated, i.e. foreseeable at design time. In our sense, unanticipated run-time evolution of object code is favoured by disconnection of communicating components, i.e. by avoiding as much as possible dependencies among components. Anonymous and asynchronous communications are
two means for realising disconnection. The paper first presents a model for unanticipated run-time evolution of code, based on these principles. The model enables communication among components through asynchronous services, which are described rather than designated, thus respecting the anonymity of communicating parties. Second, the authors describe two implementations of the model: a local one allowing the addition and removal of services at runtime
on a local host; and a distributed one, which enables the distribution of an application while it is still running. The authors also report their experience in realising a restricted Web server and a tic-tac-toe game, which demonstrate that their evolution model allows one to hot-swap, duplicate and remove parts of an application at run-time.

Discover related content

Find related publications, people, projects, datasets and more using interactive charts.

View graph of relations