Journal ArticleDOI
A formal framework for on-line software version change
Reads0
Chats0
TLDR
This work describes a formal framework for studying online software version change, gives a general definition of validity of an online change, shows that it is in general undecidable and develops sufficient conditions for ensuring validity for a procedural language.Abstract:
The usual way of installing a new version of a software system is to shut down the running program and then install the new version. This necessitates a sometimes unacceptable delay during which service is denied to the users of the software. An online software replacement system replaces parts of the software while it is in execution, thus eliminating the shutdown. While a number of implementations of online version change systems have been described in the literature, little investigation has been done on its theoretical aspects. We describe a formal framework for studying online software version change. We give a general definition of validity of an online change, show that it is in general undecidable and then develop sufficient conditions for ensuring validity for a procedural language.read more
Citations
More filters
Journal ArticleDOI
A survey of software refactoring
Tom Mens,Tom Tourwe +1 more
TL;DR: This research is compared and discussed based on a number of different criteria: the refactoring activities that are supported, the specific techniques and formalisms that are used for supporting these activities, the types of software artifacts that are being refactored, the important issues that need to be taken into account when buildingRefactoring tool support, and the effect of refactors on the software process.
Proceedings ArticleDOI
Providing database as a service
TL;DR: A novel paradigm for data management in which a third party service provider hosts "database as a service", providing its customers with seamless mechanisms to create, store, and access their databases at the host site is explored.
Proceedings ArticleDOI
Architecture-based runtime software evolution
TL;DR: An architecture-based approach to runtime software evolution is presented and the role of software connectors in supporting runtime change is highlighted and an initial implementation of a tool suite for supporting the runtime modification of software architectures is presented.
Proceedings ArticleDOI
Dynamic software updating
TL;DR: This work presents a new approach for C-like languages that provides type-safe dynamic updating of native code in an extremely flexible manner and permits the use of automated tools to aid the programmer in the updating process.
Proceedings ArticleDOI
Ksplice: automatic rebootless kernel updates
Jeff Arnold,M. Frans Kaashoek +1 more
TL;DR: Ksplice allows system administrators to apply patches to their operating system kernels without rebooting and can correct 88% of the Linux kernel vulnerabilities from this interval without the need for reboots and without writing any new code.
References
More filters
Book
Compilers: Principles, Techniques, and Tools
TL;DR: This book discusses the design of a Code Generator, the role of the Lexical Analyzer, and other topics related to code generation and optimization.
Journal ArticleDOI
The evolving philosophers problem: dynamic change management
Jeff Kramer,Jeff Magee +1 more
TL;DR: A model for dynamic change management which separates structural concerns from component application concerns is presented and is applied to an example problem, 'evolving philosophers', which has been implemented and tested in the Conic environment for distributed systems.
Journal ArticleDOI
Dynamic Configuration for Distributed Systems
Jeff Kramer,Jeff Magee +1 more
TL;DR: Using this model, the properties required by languages and their execution environments to support dynamic configuration are determined and CONIC, the distributed system which has been developed at Imperial College, is described to illustrate the feasibility of the model.
Journal ArticleDOI
Constructing distributed systems in Conic
TL;DR: The Conic environment provides a language-based approach to the building of distributed systems which combines the simplicity and safety of a language approach with the flexibility and accessibility of an operating systems approach.
Journal ArticleDOI
The POLYLITH software bus
TL;DR: A system called POLYLITH that helps programmers prepare and interconnect mixed-language software components for execution in heterogeneous environments so that once an application has been developed for use in one execution environment it can be adapted for reuse in other environments by automatic techniques.