scispace - formally typeset
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

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

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

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

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.
Related Papers (5)