Results 1 - 10
of
10
Engineering self-adaptive systems through feedback loops
- In Software Engineering for Self-Adaptive Systems
, 2009
"... Abstract. To deal with the increasing complexity of software systems and uncertainty of their environments, software engineers have turned to self-adaptivity. Self-adaptive systems are capable of dealing with a continuously changing environment and emerging requirements that may be unknown at design ..."
Abstract
-
Cited by 9 (3 self)
- Add to MetaCart
Abstract. To deal with the increasing complexity of software systems and uncertainty of their environments, software engineers have turned to self-adaptivity. Self-adaptive systems are capable of dealing with a continuously changing environment and emerging requirements that may be unknown at design-time. However, building such systems cost-effectively and in a predictable manner is a major engineering challenge. In this paper, we explore the state-of-the-art in engineering self-adaptive systems and identify potential improvements in the design process. Our most important finding is that in designing self-adaptive systems, the feedback loops that control self-adaptation must become first-class entities. We explore feedback loops from the perspective of control engineering and within existing self-adaptive systems in nature and biology. Finally, we identify the critical challenges our community must address to enable systematic and well-organized engineering of self-adaptive and self-managing software systems. 1
Dynamic Analysis of Web Services
, 2011
"... Orchestrated web service applications are highly distributed applications that accomplish business goals by executing services offered by partners. This dependance on partner services allows the development of more flexible, modular applications. For a classical distributed system, correctness can b ..."
Abstract
-
Cited by 2 (2 self)
- Add to MetaCart
Orchestrated web service applications are highly distributed applications that accomplish business goals by executing services offered by partners. This dependance on partner services allows the development of more flexible, modular applications. For a classical distributed system, correctness can be ensured by statically checking the composition of the components that make up the system against properties of interest. However, in the case of web service applications, there are various conditions that make this type of analysis insufficient. For example, partners can be dynamically discovered, which means that we cannot create a definitive model of the system to analyze. Web service applications can also display new behaviour at execution time, so statically checked properties of the system may not hold throughout the system’s lifetime. Due to these limitations of static analysis, this thesis concentrates on the dynamic analysis of web service applications, specifically, by monitoring runtime events. The goal of runtime monitoring is to check whether an application violates a given specification of its behaviour during its execution. The behaviour of the system can be specified in
Optimizing Computation of Recovery Plans for BPEL Applications
- In Proceedings of 2010 Workshop on Testing, Analysis and Verification of Web Software (TAV-WEB’10
, 2010
"... Web service applications are distributed processes that are composed of dynamically bounded services. In our previous work [15], we have described a framework for performing runtime monitoring of web service against behavioural correctness properties (described using property patterns and converted ..."
Abstract
-
Cited by 1 (1 self)
- Add to MetaCart
Web service applications are distributed processes that are composed of dynamically bounded services. In our previous work [15], we have described a framework for performing runtime monitoring of web service against behavioural correctness properties (described using property patterns and converted into finite state automata). These specify forbidden behavior (safety properties) and desired behavior (bounded liveness properties). Finite execution traces of web services described in BPEL are checked for conformance at runtime. When violations are discovered, our framework automatically proposes and ranks recovery plans which users can then select for execution. Such plans for safety violations essentially involve “going back ” – compensating the executed actions until an alternative behaviour of the application is possible. For bounded liveness violations, recovery plans include both “going back ” and “re-planning ” – guiding the application towards a desired behaviour. Our experience, reported in [16], identified a drawback in this approach: we compute too many plans due to (a) overapproximating the number of program points where an alternative behaviour is possible and (b) generating recovery plans for bounded liveness properties which can potentially violate safety properties. In this paper, we describe improvements to our framework that remedy these problems and describe their effectiveness on a case study. 1
(Dagstuhl Seminar Organizer Authors)
"... Software’s ability to adapt at run-time to changing user needs, system intrusions or faults, changing operational environment, and resource variability has been proposed as a means to cope with the complexity of today’s softwareintensive systems. Such self-adaptive systems can configure and reconfig ..."
Abstract
- Add to MetaCart
Software’s ability to adapt at run-time to changing user needs, system intrusions or faults, changing operational environment, and resource variability has been proposed as a means to cope with the complexity of today’s softwareintensive systems. Such self-adaptive systems can configure and reconfigure themselves, augment their functionality, continually optimize themselves, protect themselves, and recover themselves, while keeping most of their complexity hidden from the user and administrator. In this paper, we present research road map for software engineering of selfadaptive systems focusing on four views, which we identify as essential: requirements, modelling, engineering, and assurances.
Injecting Robustness into Autonomic Grid Systems
"... Autonomic computational grids are self-organizing software systems that pool the computational resources of large public networks to solve computationally-intensive problems. While autonomic grids can scale to networks far larger than centralized grids, they have not seen the same adoption and succe ..."
Abstract
- Add to MetaCart
Autonomic computational grids are self-organizing software systems that pool the computational resources of large public networks to solve computationally-intensive problems. While autonomic grids can scale to networks far larger than centralized grids, they have not seen the same adoption and success in industry due to an incomplete treatment of fault tolerance. In this paper, we propose two complementary mechanisms, progressive redundancy and redundant distribution, that secure autonomic grids by injecting robustness into insecure, possibly malicious networks. Progressive redundancy replicates computation in a way that reduces the probability of failure while minimizing the associated cost. Redundant distribution allows for the replication of computation in decentralized networks. We formally define the class of grid technologies to which progressive redundancy and redundant distribution apply and evaluate the cost and benefit of using the techniques. Progressive redundancy and redundant distribution reduce the probability of system failure exponentially, at a linear cost in the execution speed of the system.
Monitoring and Recovery of Web Service Applications
"... Abstract. For a system of distributed processes, correctness can be ensured by (statically) checking whether their composition satisfies properties of interest. However, web services are distributed processes that dynamically discover properties of other web services. Since the overall system may no ..."
Abstract
- Add to MetaCart
Abstract. For a system of distributed processes, correctness can be ensured by (statically) checking whether their composition satisfies properties of interest. However, web services are distributed processes that dynamically discover properties of other web services. Since the overall system may not be available statically and since each business process is supposed to be relatively simple, we propose to use (on-line) runtime monitoring of conversations between partners as a means of checking behavioural correctness of the entire web service system. Our framework allows application developers to specify behavioural correctness properties. By transforming these properties to finite-state automata, we enable conformance checking of finite execution traces of web services described in BPEL against the specification. Moreover, when violations are discovered at runtime, we automatically propose and rank recovery plans which users of the system can then select for execution. For some of the violations, such plans essentially involve “going back ” – compensating the occurred actions until an alternative behaviour of the application is possible. For other violations, such plans include both “going back ” and “re-planning ” – guiding the application towards a desired behaviour. We report on the implementation and experience with our monitoring and recovery system, and discuss the implications that the move to “smart internet ” [39] may have on our approach. 1
Improving Impact of Self-Adaptation and Self-Management Research through Evaluation Methodology Position Paper
"... Today, self-adaptation and self-management approaches to software engineering are viewed as specialized techniques and reach a somewhat limited community. In this paper, I overview the current state and expectation of self-adaptation and self-management impact in industry and in premier publication ..."
Abstract
- Add to MetaCart
Today, self-adaptation and self-management approaches to software engineering are viewed as specialized techniques and reach a somewhat limited community. In this paper, I overview the current state and expectation of self-adaptation and self-management impact in industry and in premier publication venues and identify what we, as a community, may do to improve such impact. In particular, I find that common evaluation methodologies make it relatively simple for self-adaptation and selfmanagement research to be compared to other such research, but not to more-traditional software engineering research. I argue that extending the evaluation to include comparisons to traditional software engineering techniques may improve a reader’s ability to judge the contribution of the research and increase its impact. Finally, I propose a set of evaluation guidelines that may ease the promotion of self-adaptation and self-management as mainstream software engineering techniques. 1.
Crystal-Growth-Inspired Algorithms for Computational Grids
"... Biological systems surpass man-made systems in many important ways. Most notably, systems found in nature are typically self-adaptive and self-managing, capable of surviving drastic changes in their environments, such as internal failures and malicious attacks on their components. Large distributed ..."
Abstract
- Add to MetaCart
Biological systems surpass man-made systems in many important ways. Most notably, systems found in nature are typically self-adaptive and self-managing, capable of surviving drastic changes in their environments, such as internal failures and malicious attacks on their components. Large distributed software systems have requirements common to those of some biological systems, particularly in the number and power of individual components and in the qualities of service of the system. However, it is not immediately clear how engineers can extract useful properties from natural systems and inject them into software systems. In this paper, we explore the nature’s process of crystal growth and develop mechanisms inspired by that process for designing large distributed computational grid systems. The result is the tile architectural style, a set of design principles for building distributed software systems that solve complex computational problems. Systems developed using the tile style scale well to large computations, tolerate faults and malicious attacks, and preserve the privacy of the data.
TRANSACTIONS ON SOFTWARE ENGINEERING 1 Preserving Privacy in Distributed Computation via Self-Assembly
"... Abstract—We present the tile style, an architectural style for distributing computation onto large, insecure, public networks, such as the Internet. The tile style provides guarantees on (1) privacy preservation: tile-style systems preserve the privacy of the algorithm and data, (2) fault and attack ..."
Abstract
- Add to MetaCart
Abstract—We present the tile style, an architectural style for distributing computation onto large, insecure, public networks, such as the Internet. The tile style provides guarantees on (1) privacy preservation: tile-style systems preserve the privacy of the algorithm and data, (2) fault and attack tolerance: tile-style systems can tolerate faulty and malicious nodes, and (3) scalability: tile-style systems scale well to leverage the size of the public network to accelerate the computation. We concentrate on systems that solve NP-complete problems and demonstrate how tile-style systems can solve important real-world problems, such as protein folding, image recognition, and resource allocation. We present the algorithms involved in the tile style and formally prove that tile-style systems preserve privacy. We develop Mahjong, a tile-style implementation, and empirically evaluate it on several physical networks of varying sizes, including the globally distributed PlanetLab. Our analysis demonstrates tile style’s scalability and ability to handle varying network delay, and shows that problems requiring privacy-preservation can be solved using the tile style orders of magnitude faster than using today’s state-of-the-art alternatives. 1
TRANSACTIONS ON PARALLEL AND DISTRIBUTED SYSTEMS 1 Preserving Privacy in Distributed Systems
"... Abstract—We present sTile, a technique for distributing trust-needing computation onto insecure networks, while providing probabilistic guarantees that malicious agents that compromise parts of the network cannot learn private data. With sTile, we explore the fundamental cost of achieving privacy th ..."
Abstract
- Add to MetaCart
Abstract—We present sTile, a technique for distributing trust-needing computation onto insecure networks, while providing probabilistic guarantees that malicious agents that compromise parts of the network cannot learn private data. With sTile, we explore the fundamental cost of achieving privacy through data distribution and bound how much less efficient a privacy-preserving system is than a non-private one. While that cost is significant, we find that sTile-based systems execute orders of magnitude faster than homomorphic encryption systems, the alternative promising approach to preserving privacy. This paper focuses specifically on NP-complete problems and demonstrates how sTile-based systems can solve important real-world problems, such as protein folding, image recognition, and resource allocation. We present the algorithms involved in sTile and formally prove that sTile-based systems preserve privacy. We develop a reference sTile-based implementation and empirically evaluate it on several physical networks of varying sizes, including the globally distributed PlanetLab testbed. Our analysis demonstrates sTile’s scalability and ability to handle varying network delay, as well as verifies that problems requiring privacy-preservation can be solved using sTile orders of magnitude faster than using today’s state-of-the-art alternatives. 1

