65 research outputs found
Systematic aid for developing middleware architectures
International audienceThe use of middleware is the current practice for developing distributed systems. Developers compose reusable services provided by standard middleware infrastructures, e.g., CORBA 1, DCOM2, Java RMI & re- lated services3, etc., to deal with problems like distribution, security, transactional processing, fault tolerance, etc.. The development process gets even easier after the evolution of the originally proposed Object-Oriented middleware paradigm, towards nowadays component-based middleware paradigm, e.g., CCM1, MTS2, EJB3. Developers do not have to burden with the, sometimes considerably complex, composition of different middleware services. Instead they build their middleware components and deploy them within of-the-shelf middleware containers realizing a customizable composition of middleware services. However, things are not as simple as they seem. Middleware vendors have to design and implement complex architectures combining available middleware services into a flexible/customizable way. Different ways of composing middleware services into a middleware architecture that satisfies application requirements are possible. The resulting compositions should be supported by the configurable middleware architecture that is provided by vendors to customers. Moreover, of-the-shelf middleware architectures should come along with a quality assessment of the different possible compositions they support. This shall give customers clues for selecting the most suitable middleware compositions for their particular systems. In this paper we address the above issues. More specifically, we present a developer-oriented environment that facilitates the design and quality analysis of flexible/configurable middleware architectures. The environment provides support for modelling middleware architectures. It further comprises a repository that is populated by a middleware vendor with basic middleware architectural patterns describing the use of individual services provided by the vendor's infrastructure. The environment further provides a tool which constructs all possible valid compositions of a set of basic middleware architectural patterns. Finally, the environment includes tool support for the automated generation of traditional quality models for the performance and reliability analysis of the different valid compositions of middleware architectural patterns. Those models serve as input to existing performance and reliability analysis tools, which are integrated into the environment
A model-based approach for multiple QoS in scheduling: from models to implementation
Meeting multiple Quality of Service (QoS) requirements is an important factor in the success of complex software systems. This paper presents an automated, model-based scheduler synthesis approach for scheduling application software tasks to meet multiple QoS requirements. As a first step, it shows how designers can meet deadlock-freedom and timeliness requirements, in a manner that (i) does not over-provision resources, (ii) does not require architectural changes to the system, and that (iii) leaves enough degrees of freedom to pursue further properties. A major benefit of our synthesis methodology is that it increases traceability, by linking each scheduling constraint with a specific pair of QoS property and underlying platform execution model, so as to facilitate the validation of the scheduling constraints and the understanding of the overall system behaviour, required to meet further QoS properties.
The paper shows how the methodology is applied in practice and also presents a prototype implementation infrastructure for executing an application on top of common operating systems, without requiring modifications of the latter
Composition of Software Architectures
Computer systems are becoming more and more complex and need to provide an ever increasing number of non-functional properties, such as reliability, availability, security, etc.. Such non-functional properties are usually provided to a system by general mechanisms called middleware. They are thus called, to illustrate that they are supposed to be used between the hardware (and operating system) and the application software levels, masking therefore the differences of the particular underlying system and allowing applications to be used with different underlying infrastructures. However, as the need for more non-functional properties increases, system architects are soon faced with the case where there is no available middleware that will provide all the required non-functional properties. Then, they either have to develop the needed middleware infrastructure from scratch or try to reuse multiple existing middleware infrastructures, where each one provides some of the required properties. In this thesis, we present a method for automatically composing middleware architectures, in order to obtain an architecture which provides certain properties. To arrive at the automation of composition, we first show how one can reformulate this problem into a model-checking problem. This reformulation gives a formal definition to the composition problem and allows us to reuse the methods and tools which have been developed for model-checking. Then, we present subsequent refinements to our basic method, used for avoiding the state-explosion problem for architectures of a larger size. To avoid stateexplosion, we show how it is possible to retrieve the structural information, present in the initial middleware architectures we wish to compose, and exploit it for constraining the search-space we have to investigate. Additional information present in the initial architectures constrains even further the search-space, thus allowing us to obtain a method for composing middleware architectures which can be used in practise. In this way, we facilitate the systematic study and analysis of the different compositions and provide a method for constructing quality systems.Les systèmes informatiques deviennent de plus en plus complexes et doivent offrir un nombre croissant de propriétés non fonctionnelles, comme la fiabilité, la disponibilité, la sécurité, etc.. De telles propriétés sont habituellement fournies au moyen d'un intergiciel qui se situe entre le matériel (et le système d'exploitation) et le niveau applicatif, masquant ainsi les spécificités du système sous-jacent et permettant à des applications d'être utilisées avec différentes infrastructures. Cependant, à mesure que les exigences de propriétés non fonctionnelles augmentent, les architectes système se trouvent confrontés au cas où aucun intergiciel disponible ne fournit toutes les propriétés non fonctionnelles visées. Ils doivent alors développer l'infrastructure intergicielle nécessaire à partir de rien, voire essayer de réutiliser les multiples infrastructures intergicielles existantes, où chacune fournit certaines des propriétés exigées. Dans cette thèse, nous présentons une méthode pour composer automatiquement des architectures d'intergiciels, afin d'obtenir une architecture qui fournit les propriétés non fonctionnelles visées. Pour arriver à l'automatisation de la composition, nous montrons d'abord comment on peut reformuler ce problème sous la forme d'un problème de model-checking. Cette reformulation donne une définition formelle au problème de la composition et nous permet de réutiliser les méthodes et outils qui ont été développés pour le model-checking. Nous présentons ensuite des améliorations à notre méthode de base, utilisées pour éviter le problème d'explosion d'états dans le cas de la composition d'architectures de grande taille. Nous montrons comment il est possible d'exploiter l'information structurelle, présente dans les architectures d'intergiciels que nous souhaitons composer, afin de réduire l'espace de recherche analysé. Ceci nous permet d'obtenir une méthode pour composer les architectures d'intergiciels qui peut être automatisée et donc utilisée en pratique. Nous proposons ainsi une solution à l'analyse systématique de différentes compositions et offrons un outil pour aider la construction de systèmes de qualité
Composition of Software Architectures
Computer systems are becoming more and more complex and need to provide an ever increasing number of non-functional properties, such as reliability, availability, security, etc.. Such non-functional properties are usually provided to a system by general mechanisms called middleware. They are thus called, to illustrate that they are supposed to be used between the hardware (and operating system) and the application software levels, masking therefore the differences of the particular underlying system and allowing applications to be used with different underlying infrastructures. However, as the need for more non-functional properties increases, system architects are soon faced with the case where there is no available middleware that will provide all the required non-functional properties. Then, they either have to develop the needed middleware infrastructure from scratch or try to reuse multiple existing middleware infrastructures, where each one provides some of the required properties. In this thesis, we present a method for automatically composing middleware architectures, in order to obtain an architecture which provides certain properties. To arrive at the automation of composition, we first show how one can reformulate this problem into a model-checking problem. This reformulation gives a formal definition to the composition problem and allows us to reuse the methods and tools which have been developed for model-checking. Then, we present subsequent refinements to our basic method, used for avoiding the state-explosion problem for architectures of a larger size. To avoid stateexplosion, we show how it is possible to retrieve the structural information, present in the initial middleware architectures we wish to compose, and exploit it for constraining the search-space we have to investigate. Additional information present in the initial architectures constrains even further the search-space, thus allowing us to obtain a method for composing middleware architectures which can be used in practise. In this way, we facilitate the systematic study and analysis of the different compositions and provide a method for constructing quality systems.Les systèmes informatiques deviennent de plus en plus complexes et doivent offrir un nombre croissant de propriétés non fonctionnelles, comme la fiabilité, la disponibilité, la sécurité, etc.. De telles propriétés sont habituellement fournies au moyen d'un intergiciel qui se situe entre le matériel (et le système d'exploitation) et le niveau applicatif, masquant ainsi les spécificités du système sous-jacent et permettant à des applications d'être utilisées avec différentes infrastructures. Cependant, à mesure que les exigences de propriétés non fonctionnelles augmentent, les architectes système se trouvent confrontés au cas où aucun intergiciel disponible ne fournit toutes les propriétés non fonctionnelles visées. Ils doivent alors développer l'infrastructure intergicielle nécessaire à partir de rien, voire essayer de réutiliser les multiples infrastructures intergicielles existantes, où chacune fournit certaines des propriétés exigées. Dans cette thèse, nous présentons une méthode pour composer automatiquement des architectures d'intergiciels, afin d'obtenir une architecture qui fournit les propriétés non fonctionnelles visées. Pour arriver à l'automatisation de la composition, nous montrons d'abord comment on peut reformuler ce problème sous la forme d'un problème de model-checking. Cette reformulation donne une définition formelle au problème de la composition et nous permet de réutiliser les méthodes et outils qui ont été développés pour le model-checking. Nous présentons ensuite des améliorations à notre méthode de base, utilisées pour éviter le problème d'explosion d'états dans le cas de la composition d'architectures de grande taille. Nous montrons comment il est possible d'exploiter l'information structurelle, présente dans les architectures d'intergiciels que nous souhaitons composer, afin de réduire l'espace de recherche analysé. Ceci nous permet d'obtenir une méthode pour composer les architectures d'intergiciels qui peut être automatisée et donc utilisée en pratique. Nous proposons ainsi une solution à l'analyse systématique de différentes compositions et offrons un outil pour aider la construction de systèmes de qualité
Title: Synthesis of Safe, QoS Extendible, Application Specific Schedulers for Heterogeneous Real-Time Systems
Safety and mission-critical systems need to be of extremely high quality, due to the great dangers and the high cost of their potential failure. For this reason, when they are multi-threaded they must be guaranteed to be free of deadlocks and all threads must be guaranteed to meet their deadlines under all circumstances. The current practice for avoiding deadlocks is to use the immediate priority ceiling protocol (IPCP) for the sharing of non-preemptable resources. This approach has a certain number of disadvantages though. Besides, the methods currently used do not allow designers to easily extend them for incorporating QoS to the scheduler decisions. In this paper, we present a method for synthesising QoS extendible and safe schedulers following the controller synthesis paradigm We have designed a new scheduler architecture, which permits adding QoS policies to the scheduling decisions. We have also developed a new scheduling synthesis method which allows a designer to obtain a safe scheduler for a particular application. Our scheduler architecture and scheduler synthesis method can be used for heterogeneous applications where the tasks communicate through various synchronisation primitives. We discuss a prototype implementation of this scheduler architecture and related mechanisms on top of an opensource OS for embedded systems
- …