32 research outputs found
Support for Evolving Software Architectures in the ArchWare ADL
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
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
An Architecture-Centric Approach for Information System Architecture Modeling, Enactement and Evolution
International audienc
A Middleware Framework for Constraint-Based Deployment and Autonomic Management of Distributed Applications
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
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
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
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