e-Actions: Universal Lightweight Transactions for Building Network-Aware Applications over Programmable Network Infrastructure
Investigators: Jie Xu and Keith Bennett
Research Associates and Students: Proposal under review
Summary: Future large-scale distributed computing requires fast service deployment and effective resource utilisation and management. The programmable network infrastructure provides a timely solution to these requirements by combining the power of mobility, telecommunication networks and the Internet. The overall goal of this research project is to provide universal transaction services and system-level support for 1) dependable deployment of network-aware applications over programmable network infrastructure and 2) various applications on wireless hand-held devices. The research focus is on the problem of ensuring consistency of shared data in the presence of concurrent activities and intentional/unintentional faults in a programmable and mobile network environment. Coupled with our research strengths in atomic actions, fault tolerance and flexible software architecture, our new method unifies benefits of lightweight transactions and programmable networks to enable dependable network-aware applications. The major application domains include mobile e-commerce, telecommunications, and itinerant transactions. The end product of this project is an e-Action programming system specially designed for building dependable network-aware applications over programmable network infrastructure. This programming system is supported by a formal transaction model, built-in mechanisms for concurrency control and failure recovery, and development toolkits.
SeCode: A Fault-Tolerant and Secure Mobile Code System for Dynamically Distributed Critical Applications
Investigators: Jie Xu and Keith Bennett
Research Associates and Students: Erica Yang
Summary: The overall goal of this project is to provide the infrastructure services, including fault tolerance and security, for mobile code platforms so as to facilitate the fault-tolerant and secure execution of mobile code in a large-scale and potentially insecure network environment. The research focus is on the development of an architectural framework and method to support mobile code against unintentional/intentional faults and malicious attacks from its operating environment. The method is based on a completely new approach to using redundancy management for mobile code which avoids well understood limitations of existing solutions. The major application domains are business-critical and security-critical systems such as e-commerce, telecommunications, itinerant transactions and information gathering. The end product of this project is a fault-tolerant and secure mobile code system designed for dynamically distributed critical applications, supported by a theoretical framework that characterises the system’s fault tolerance and security properties and by the construction of demonstrators of progressively greater ambition along with supporting toolsets.
Flexx: Highly
Flexible and Dependable Software to Support Business Change
(EPSRC GR/L42568)
Investigators: Keith Bennett and Jie Xu
Research Associates and Students: Henry Zhuang
Summary: Software-based systems need to evolve, to meet the changing requirements of their users and to maintain market competitiveness. The design of the system architecture is a key component in allowing this sort of flexibility. This project addresses this general problem. The aim of the Flexx project is to explore flexible and dependable architectures that can cope with unexpected requirements changes and/or unintentional/intentional faults. Evolution is separated into two forms: integration evolution, in which new capabilities are required that must be integrated with existing capabilities; and reconfiguration evolution, in which new capabilities are in the form of changes to existing instances. The major challenges are concerned with integration evolution, and this is the focus of Flexx. The end product of this project is a general framework and model for software evolution and a flexible and dependable software architecture for supporting business change, supported by the construction of a number of demonstrators.
MVD: Building Dependable Software for Safety-Critical Applications: Multi-Version Design versus One Good Version
Investigators: Jie Xu and Malcolm Munro
Research Associates and Students: Paul Townend
Summary: The overall goal of this project is to investigate and evaluate the two main development methods for building dependable software for safety-critical applications. We will develop both a single-version and multi-version system for a given domain, with each approach given the same development budget; when complete, the systems will be analysed in order to ascertain the relative dependability of each. By doing this, we will gain vital empirical data which we will then use to analyse the two approaches. We will also develop a new cost model for multi-version systems, based on this and other studies, in order to assist industry in planning and deciding which development methodology to use in projects. The expected results will be effective for a given application with given development conditions. These results will give an indication of how changing available resources influences the quality of the resulting software, and will therefore help industry to make decisions with an improved level of confidence. By performing this research, we will help to increase understanding in two neglected areas of study, and as this experiment is the first of its kind, we are confident that we can make substantial progress in the area.
TestDES: Testing Distributed Enterprise Systems
Investigators: Malcolm Munro and Jie Xu
In Collaboration with: SERC and Aditya Mathur at Purdue
Summary: An enterprise system often has both a functional and non-functional properties such as reliability, availability and security. Testing is one of the most important methods for ensuring those properties. This research will develop a new testing approach for enterprise systems, building on the strengths of object technology and component paradigms. Our approach is novel in that it will focus on the interaction between components and between objects. It will address the ever increasing importance of the dynamic composition of distributed enterprise systems. In such systems the full functionality will not be determined until the system is in action because of the ultra late binding techniques used.
This research will create an Interaction-Oriented Model of distributed enterprise systems and will develop a new Testing Method associated with the data collected from the object-oriented development process (such as Fusion, URM and UML). Once a model has been created then special-purpose Model Checking and Validation techniques will also be developed and used. In particular, there are two subjects that are drawing the common interests of Purdue and us after two visits from colleagues at Purdue: 1) testing the mechanisms for fault tolerance and the part of the code that deals with exceptions and errors; and 2) on-line testing and monitoring based on an architectural abstraction that is general and independent of any concrete middleware platforms.