32 research outputs found

    Support for Evolving Software Architectures in the ArchWare ADL

    Get PDF
    Software that cannot evolve is condemned to atrophy: it cannot accommodate the constant revision and re-negotiation of its business goals nor intercept the potential of new technology. To accommodate change in software systems we have defined an active software architecture to be: dynamic in that the structure and cardinality of the components and interactions are changeable during execution; updatable in that components can be replaced; decomposable in that an executing system may be (partially) stopped and split up into its components and interactions; and reflective in that the specification of components and interactions may be evolved during execution. Here we describe the facilities of the ArchWare architecture description language (ADL) for specifying active architectures. The contribution of the work is the unique combination of concepts including: a {\pi}-calculus based communication and expression language for specifying executable architectures; hyper-code as an underlying representation of system execution that can be used for introspection; a decomposition operator to incrementally break up executing systems; and structural reflection for creating new components and binding them into running systems.Comment: 4th Working IEEE/IFIP Conference on Software Architecture (WICSA'04) pp.69-78, IEEE Computer Society, 200

    An active-architecture approach to COTS integration

    Get PDF
    Commercial off-the-shelf (COTS) software products are increasingly used as standard components within integrated information systems. This creates challenges since both their developers and source code are not usually available, and the ongoing development of COTS cannot be predicted. The ArchWare Framework approach recognises COTS products as part of the ambient environment of an information system and therefore an important part of development is incorporating COTS as effective system components. This integration of COTS components, and the composition of components, is captured by an active architecture model which changes as the system evolves. Indeed the architecture modelling language used enables it to express the monitoring and evolution of a system. This active architecture model is structured using control system principles. By modelling both integration and evolution it can guide the system’s response to both predicted and emergent changes that arise from the use of COTS products.Publisher PDFPeer reviewe

    A meta-programming framework for software evolution

    Get PDF

    A Middleware Framework for Constraint-Based Deployment and Autonomic Management of Distributed Applications

    Get PDF
    We propose a middleware framework for deployment and subsequent autonomic management of component-based distributed applications. An initial deployment goal is specified using a declarative constraint language, expressing constraints over aspects such as component-host mappings and component interconnection topology. A constraint solver is used to find a configuration that satisfies the goal, and the configuration is deployed automatically. The deployed application is instrumented to allow subsequent autonomic management. If, during execution, the manager detects that the original goal is no longer being met, the satisfy/deploy process can be repeated automatically in order to generate a revised deployment that does meet the goal.Comment: Submitted to Middleware 0

    A Framework for Constraint-Based Deployment and Autonomic Management of Distributed Applications

    Get PDF
    We propose a framework for deployment and subsequent autonomic management of component-based distributed applications. An initial deployment goal is specified using a declarative constraint language, expressing constraints over aspects such as component-host mappings and component interconnection topology. A constraint solver is used to find a configuration that satisfies the goal, and the configuration is deployed automatically. The deployed application is instrumented to allow subsequent autonomic management. If, during execution, the manager detects that the original goal is no longer being met, the satisfy/deploy process can be repeated automatically in order to generate a revised deployment that does meet the goal.Comment: Submitted to ICAC-0

    FormĂĄlnĂ­ komponentovĂœ model pro mobilnĂ­ architektury

    Get PDF
    DisertačnĂ­ prĂĄce se zabĂœvĂĄ modelovĂĄnĂ­m komponentovĂœch systĂ©mĆŻ a formĂĄlnĂ­m popisem jejich chovĂĄnĂ­. ƘeĆĄenĂ­ je zaloĆŸeno na vlastnĂ­m komponentovĂ©m modelu, kterĂœ je popsĂĄn meta-modelem, z logickĂ©ho pohledu, a popisem v pi-kalkulu, z procesnĂ­ho pohledu. Je ukĂĄzĂĄno, ĆŸe komponentovĂœ model pokrĂœvĂĄ dynamickĂ© aspekty softwarovĂœch architektur včetně mobility jejich komponent. DĂĄle je popsĂĄn zpĆŻsob modelovĂĄnĂ­ chovĂĄnĂ­ v architekturĂĄch orientovanĂœch na sluĆŸby a pƙechod ke komponentovĂœm systĂ©mĆŻm. ChovĂĄnĂ­ konkrĂ©tnĂ­ architektury orientovanĂ© na sluĆŸby lze pak vyjĂĄdƙit jako jedinĂœ proces v pi-kalkulu. V zĂĄvěru prĂĄce je navrĆŸenĂ© ƙeĆĄenĂ­ ověƙeno na pƙípadovĂ© studii prostƙedĂ­ pro testovĂĄnĂ­ kritickĂœch aplikacĂ­. Pƙínosem disertačnĂ­ prĂĄce je zejmĂ©na zmĂ­něnĂĄ podpora dynamickĂœch architektur a integrace s architekturami orientovanĂœmi na sluĆŸby.In the thesis, we propose an approach to modelling of component-based systems and formal description of their behaviour. The approach is based on a novel component model defined by a metamodel in a logical view and by description in the pi-calculus in a process view. We show that the component model addresses the dynamic aspects of software architectures including the component mobility. Furthermore, we propose a method of behavioural modelling of service-oriented architectures to pass smoothly from service level to component level and to describe behaviour of a whole system, services and components, as a single pi-calculus process. Finally, we illustrate an application of our approach on a case study of an environment for functional testing of complex safety-critical systems. The support of dynamic architecture and the integration with service-oriented architecture compromise the main advantages of our approach.Katedra softwarovĂ©ho inĆŸenĂœrstvĂ­Department of Software EngineeringFaculty of Mathematics and PhysicsMatematicko-fyzikĂĄlnĂ­ fakult

    Leveraging Self-Adaptive Dynamic Software Architecture

    Get PDF
    Software systems are growing complex due to the technological innovations and integration of businesses. There is ever increasing need for changes in the software systems. However, incorporating changes is time consuming and costly. Self-adaptation is therefore is the desirable feature of any software that can have ability to adapt to changes without the need for manual reengineering and software update. To state it differently robust, self adaptive dynamic software architecture is the need of the hour. Unfortunately, the existing solutions available for self-adaptation need human intervention and have limitations. The architecture like Rainbow achieved self-adaptation. However, it needs to be improves in terms of quality of service analysis and mining knowledge and reusing it for making well informed decisions in choosing adaptation strategies. In this paper we proposed and implemented Enhanced Self-Adaptive Dynamic Software Architecture (ESADSA) which provides automatic self-adaptation based on the runtime requirements of the system. It decouples self-adaptation from target system with loosely coupled approach while preserves cohesion of the target system. We built a prototype application that runs in distributed environment for proof of concept. The empirical results reveal significance leap forward in improving dynamic self-adaptive software architecture
    corecore