Large networks, such as the Internet, pose an ideal medium for solving computationally intensive problems, such as NP-complete problems, yet no well-scaling architecture for computational Internet-sized systems exists. We propose a software architectural style for large networks, based on a formal mathematical study of crystal growth that will exhibit properties of (1) discreetness (nodes on the network cannot learn the algorithm or input of the computation), (2) fault-tolerance (malicious, faulty, and unstable nodes may not break the computation), and (3) scalability (communication among the nodes does not increase with network or problem size).
{"title":"An Architectural Style for Solving Computationally Intensive Problems on Large Networks","authors":"Yuriy Brun, N. Medvidović","doi":"10.1109/SEAMS.2007.4","DOIUrl":"https://doi.org/10.1109/SEAMS.2007.4","url":null,"abstract":"Large networks, such as the Internet, pose an ideal medium for solving computationally intensive problems, such as NP-complete problems, yet no well-scaling architecture for computational Internet-sized systems exists. We propose a software architectural style for large networks, based on a formal mathematical study of crystal growth that will exhibit properties of (1) discreetness (nodes on the network cannot learn the algorithm or input of the computation), (2) fault-tolerance (malicious, faulty, and unstable nodes may not break the computation), and (3) scalability (communication among the nodes does not increase with network or problem size).","PeriodicalId":354701,"journal":{"name":"International Workshop on Software Engineering for Adaptive and Self-Managing Systems (SEAMS '07)","volume":"19 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2007-05-20","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"130737417","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
H. Goldsby, David B. Knoester, B. Cheng, P. McKinley, C. Ofria
Developing a Dynamically Adaptive System (DAS) requires a developer to identify viable target systems that can be adopted by the DAS at runtime in response to specific environmental conditions, while satisfying critical properties. This paper describes a preliminary investigation into using digital evolution to automatically generate models of viable target systems. In digital evolution, a population of self-replicating computer programs exists in a user-defined computational environment and is subject to instruction-level mutations and natural selection. These "digital organisms" have no built-in ability to generate a model - each population begins with a single organism that only has the ability to self-replicate. In a case study, we demonstrate that digital evolution can be used to evolve known state diagrams and to further evolve these diagrams to satisfy system critical properties. This result shows that digital evolution can be used to aid in the discovery of the viable target systems of a DAS.
{"title":"Digitally Evolving Models for Dynamically Adaptive Systems","authors":"H. Goldsby, David B. Knoester, B. Cheng, P. McKinley, C. Ofria","doi":"10.1109/SEAMS.2007.6","DOIUrl":"https://doi.org/10.1109/SEAMS.2007.6","url":null,"abstract":"Developing a Dynamically Adaptive System (DAS) requires a developer to identify viable target systems that can be adopted by the DAS at runtime in response to specific environmental conditions, while satisfying critical properties. This paper describes a preliminary investigation into using digital evolution to automatically generate models of viable target systems. In digital evolution, a population of self-replicating computer programs exists in a user-defined computational environment and is subject to instruction-level mutations and natural selection. These \"digital organisms\" have no built-in ability to generate a model - each population begins with a single organism that only has the ability to self-replicate. In a case study, we demonstrate that digital evolution can be used to evolve known state diagrams and to further evolve these diagrams to satisfy system critical properties. This result shows that digital evolution can be used to aid in the discovery of the viable target systems of a DAS.","PeriodicalId":354701,"journal":{"name":"International Workshop on Software Engineering for Adaptive and Self-Managing Systems (SEAMS '07)","volume":"266 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2007-05-20","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"132613662","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Pub Date : 2007-05-20DOI: 10.1109/ICSECOMPANION.2007.64
B. Cheng, R. Lemos, S. Fickas, D. Garlan, Marin Litoiu, J. Magee, H. Müller, R. Taylor
The objective of the SEAMS (Software Engineering for Adaptive and Self-managing Systems) workshops is to consolidate the interest in the software engineering community on autonomic, self-managing, self-healing, self-optimizing, self-configuring, and self-adaptive systems. SEAMS provides a forum for researchers to share new results, raise awareness, and promote collaboration within the community. The SEAMS 2007 workshop builds on the great success of SEAMS 2006 at ICSE in Shanghai to assess progress and identify challenges in this area.
{"title":"SEAMS 2007: Software Engineering for Adaptive and Self-Managing Systems","authors":"B. Cheng, R. Lemos, S. Fickas, D. Garlan, Marin Litoiu, J. Magee, H. Müller, R. Taylor","doi":"10.1109/ICSECOMPANION.2007.64","DOIUrl":"https://doi.org/10.1109/ICSECOMPANION.2007.64","url":null,"abstract":"The objective of the SEAMS (Software Engineering for Adaptive and Self-managing Systems) workshops is to consolidate the interest in the software engineering community on autonomic, self-managing, self-healing, self-optimizing, self-configuring, and self-adaptive systems. SEAMS provides a forum for researchers to share new results, raise awareness, and promote collaboration within the community. The SEAMS 2007 workshop builds on the great success of SEAMS 2006 at ICSE in Shanghai to assess progress and identify challenges in this area.","PeriodicalId":354701,"journal":{"name":"International Workshop on Software Engineering for Adaptive and Self-Managing Systems (SEAMS '07)","volume":"83 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2007-05-20","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"132861557","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
The processes enacting cross-organizational collaboration continually evolve to adapt to changing business environments. These processes may evolve at any time during collaboration when collaborative organizations should respond timely to critical environment changes. Atomicity is an important requirement for maintaining application consistency. The satisfaction of this requirement at the commencement of collaboration may no longer be held after process evolution. This paper analyzes three basic scenarios of process evolution in cross- organizational collaboration, and proposes a collection of guidelines to govern atomicity-preserving evolution during collaboration.
{"title":"Process Evolution with Atomicity Consistency","authors":"Chunyang Ye, S. Cheung, W. Chan","doi":"10.1109/SEAMS.2007.14","DOIUrl":"https://doi.org/10.1109/SEAMS.2007.14","url":null,"abstract":"The processes enacting cross-organizational collaboration continually evolve to adapt to changing business environments. These processes may evolve at any time during collaboration when collaborative organizations should respond timely to critical environment changes. Atomicity is an important requirement for maintaining application consistency. The satisfaction of this requirement at the commencement of collaboration may no longer be held after process evolution. This paper analyzes three basic scenarios of process evolution in cross- organizational collaboration, and proposes a collection of guidelines to govern atomicity-preserving evolution during collaboration.","PeriodicalId":354701,"journal":{"name":"International Workshop on Software Engineering for Adaptive and Self-Managing Systems (SEAMS '07)","volume":"12 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2007-05-20","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"124883280","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
We present a framework for designing run-time fault- tolerance using dynamic program updates triggered by faults. This is an important problem in the design of autonomous systems as it is often the case that a running program needs to be upgraded to its fault-tolerant version once faults occur. We formally state fault-triggered program updates as a design problem. We then present a sound and complete algorithm that automates the design of fault- triggered updates for replacing a program that does not tolerate faults with a fault-tolerant version thereof at run-time. We also define three classes of fault-triggered dynamic updates that tolerate faults during the update. We demonstrate our approach in the context of a fault-triggered update for the gate controller of a parking lot.
{"title":"Designing Run-Time Fault-Tolerance Using Dynamic Updates","authors":"Ali Ebnenasir","doi":"10.1109/SEAMS.2007.5","DOIUrl":"https://doi.org/10.1109/SEAMS.2007.5","url":null,"abstract":"We present a framework for designing run-time fault- tolerance using dynamic program updates triggered by faults. This is an important problem in the design of autonomous systems as it is often the case that a running program needs to be upgraded to its fault-tolerant version once faults occur. We formally state fault-triggered program updates as a design problem. We then present a sound and complete algorithm that automates the design of fault- triggered updates for replacing a program that does not tolerate faults with a fault-tolerant version thereof at run-time. We also define three classes of fault-triggered dynamic updates that tolerate faults during the update. We demonstrate our approach in the context of a fault-triggered update for the gate controller of a parking lot.","PeriodicalId":354701,"journal":{"name":"International Workshop on Software Engineering for Adaptive and Self-Managing Systems (SEAMS '07)","volume":"83 2 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2007-05-20","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"116361777","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
This paper describes a modeling approach to software design and adaptation, in particular the design of evolutionary and dynamically reconfigurable software architectures. The different versions of an evolutionary system are considered a software product line, with each version of the system a product line member. After implementation, the model co-exists with the system and evolves with it. The software architecture is built out of architectural patterns. For each software architectural pattern, there is a corresponding software reconfiguration pattern, which describes how the software architecture can be dynamically adapted.
{"title":"Model-Based Software Design and Adaptation","authors":"H. Gomaa, M. Hussein","doi":"10.1109/SEAMS.2007.13","DOIUrl":"https://doi.org/10.1109/SEAMS.2007.13","url":null,"abstract":"This paper describes a modeling approach to software design and adaptation, in particular the design of evolutionary and dynamically reconfigurable software architectures. The different versions of an evolutionary system are considered a software product line, with each version of the system a product line member. After implementation, the model co-exists with the system and evolves with it. The software architecture is built out of architectural patterns. For each software architectural pattern, there is a corresponding software reconfiguration pattern, which describes how the software architecture can be dynamically adapted.","PeriodicalId":354701,"journal":{"name":"International Workshop on Software Engineering for Adaptive and Self-Managing Systems (SEAMS '07)","volume":"169 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2007-05-20","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"132499465","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Autonomic computing aims to embed automation in IT management software such that it can adapt to changes in the configuration, provisioning, protection, and resource utilization variations of the IT infrastructure at run time. It is, therefore, almost natural to consider this control software framework as being designed with control principles in mind. One of the research trends considers autonomic computing as a control system that resolves constraints related to the optimal usage of resources based on external requests made by users or processes in a reactive way. In this paper, a real-time reference architecture is introduced in which components implementing functions of realtime system elements or blocks such as transducers, controllers, and actuators are designed. The architecture of the autonomic computing software also contains components that implement functionalities specific to real-time systems. The transducers, controllers, and actuators are thus connected via realtime pattern components such as concurrency, priority, and reliability patterns.
{"title":"Towards a Real-Time Reference Architecture for Autonomic Systems","authors":"B. Solomon, D. Ionescu, Marin Litoiu, M. Mihaescu","doi":"10.1109/SEAMS.2007.20","DOIUrl":"https://doi.org/10.1109/SEAMS.2007.20","url":null,"abstract":"Autonomic computing aims to embed automation in IT management software such that it can adapt to changes in the configuration, provisioning, protection, and resource utilization variations of the IT infrastructure at run time. It is, therefore, almost natural to consider this control software framework as being designed with control principles in mind. One of the research trends considers autonomic computing as a control system that resolves constraints related to the optimal usage of resources based on external requests made by users or processes in a reactive way. In this paper, a real-time reference architecture is introduced in which components implementing functions of realtime system elements or blocks such as transducers, controllers, and actuators are designed. The architecture of the autonomic computing software also contains components that implement functionalities specific to real-time systems. The transducers, controllers, and actuators are thus connected via realtime pattern components such as concurrency, priority, and reliability patterns.","PeriodicalId":354701,"journal":{"name":"International Workshop on Software Engineering for Adaptive and Self-Managing Systems (SEAMS '07)","volume":"46 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2007-05-20","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"121544442","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
The ability to move components from one hierarchical model to another becomes necessary to support arbitrary changes in software topologies. Mobility allows the access to the hidden interface of a hierarchical component without breaking encapsulation, keeping the architecture modular. Mobility permits also the introduction of new functionally in the application without requiring changes in the architecture, enabling its adaptation to dynamic requirements. To illustrate hierarchical mobility we employ the connecton software architecture (CSA). CSA combines a modular and hierarchical software construction with the object- oriented architectural style to achieve an innovative software architecture that eliminates the limitations of the classical object-oriented technology in supporting modular components. The simulation of a queuing system whose clients are represented by mobile components is provided.
{"title":"Representing Hierarchical Mobility in Software Architectures","authors":"F. Barros","doi":"10.1109/SEAMS.2007.16","DOIUrl":"https://doi.org/10.1109/SEAMS.2007.16","url":null,"abstract":"The ability to move components from one hierarchical model to another becomes necessary to support arbitrary changes in software topologies. Mobility allows the access to the hidden interface of a hierarchical component without breaking encapsulation, keeping the architecture modular. Mobility permits also the introduction of new functionally in the application without requiring changes in the architecture, enabling its adaptation to dynamic requirements. To illustrate hierarchical mobility we employ the connecton software architecture (CSA). CSA combines a modular and hierarchical software construction with the object- oriented architectural style to achieve an innovative software architecture that eliminates the limitations of the classical object-oriented technology in supporting modular components. The simulation of a queuing system whose clients are represented by mobile components is provided.","PeriodicalId":354701,"journal":{"name":"International Workshop on Software Engineering for Adaptive and Self-Managing Systems (SEAMS '07)","volume":"6 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2007-05-20","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"116851010","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Self-adaptation is the ability of a software system to adapt to dynamic and changing operating conditions autonomously. In this paper, we present an architectural strategy for self-adapting systems. An architectural strategy embodies architectural knowledge about a particular solution approach. The architectural strategy for self-adapting systems structures the software into a number of interacting autonomous entities (agents) that are situated in an environment. It integrates a set of architectural patterns that have proved to be valuable in the design of various self-adapting applications. The self-adapting properties of the approach are based on the agents' abilities to adapt their behavior to dynamic and changing circumstances. The architectural strategy provides an asset base architects can draw from when developing new self-adapting applications that share its common base.
{"title":"An Architectural Strategy for Self-Adapting Systems","authors":"Danny Weyns, T. Holvoet","doi":"10.1109/SEAMS.2007.3","DOIUrl":"https://doi.org/10.1109/SEAMS.2007.3","url":null,"abstract":"Self-adaptation is the ability of a software system to adapt to dynamic and changing operating conditions autonomously. In this paper, we present an architectural strategy for self-adapting systems. An architectural strategy embodies architectural knowledge about a particular solution approach. The architectural strategy for self-adapting systems structures the software into a number of interacting autonomous entities (agents) that are situated in an environment. It integrates a set of architectural patterns that have proved to be valuable in the design of various self-adapting applications. The self-adapting properties of the approach are based on the agents' abilities to adapt their behavior to dynamic and changing circumstances. The architectural strategy provides an asset base architects can draw from when developing new self-adapting applications that share its common base.","PeriodicalId":354701,"journal":{"name":"International Workshop on Software Engineering for Adaptive and Self-Managing Systems (SEAMS '07)","volume":"81 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2007-05-20","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"121862949","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}