215 research outputs found

    DĂ©ploiement continue des applications pervasives en milieux dynamiques

    Get PDF
    Driven by the emergence of new computing environments, dynamically evolving software systems makes it impossible for developers to deploy software with human-centric processes. Instead, there is an increasing need for automation tools that continuously deploy software into execution, in order to push updates or adapt existing software regarding contextual and business changes. Existing solutions fall short on providing fault-tolerant, reproducible deployments that would scale on heterogeneous environments. This thesis focuses especially on enabling continuous deployment solutions for dynamic execution platforms, such as would be found in Pervasive Computing environments. It adopts an approach based on a transactional, idempotent process for coordinating deployment actions. The thesis proposes a set of deployment tools, including a deployment manager capable of conducting deployments and continuously adapting applications according to the changes in the current state of the target platform. The implementation of these tools, Rondo, also allows developers and administrators to code application deployments thanks to a deployment descriptor DSL. Using the implementation of Rondo, the propositions of this thesis are validated in several industrial and academic projects by provisioning frameworks as well as on installing application and continuous reconfigurations.L'Ă©mergence des nouveaux types d'environnements informatiques amplifie le besoin pour des systĂšmes logiciels d'ĂȘtre capables d'Ă©voluer dynamiquement. Cependant, ces systĂšmes rendent trĂšs difficile le dĂ©ploiement de logiciels en utilisant des processus humains. Il y a donc un besoin croissant d'outils d'automatisation qui permettent de dĂ©ployer et reconfigurer des systĂšmes logiciels sans en interrompre l'exĂ©cution. Le processus de dĂ©ploiement continu et automatisĂ© permet de mettre Ă  jour ou d'adapter un logiciel en exĂ©cution en fonction des changements contextuels et des exigences opĂ©rationnelles. Les solutions existantes ne permettent pas des dĂ©ploiements reproductibles et tolĂ©rant aux pannes dans des environnements fluctuants, et donc requĂ©rant une adaptation continue. Cette thĂšse se concentre en particulier sur des solutions de dĂ©ploiement continu pour les plates-formes d'exĂ©cution dynamiques, tels que celle utilisĂ© dans les environnements ubiquitaires. Elle adopte une approche basĂ©e sur un processus transactionnel et idempotent pour coordonner les actions de dĂ©ploiement. La thĂšse propose, Ă©galement, un ensemble d'outils, y compris un gestionnaire de dĂ©ploiement capable de mener des dĂ©ploiements discret, mais Ă©galement d'adapter les applications continuellement en fonction des changements contextuels. La mise en Ɠuvre de ces outils, permet notamment aux dĂ©veloppeurs et aux administrateurs de dĂ©velopper des dĂ©ploiements d'applications grĂące Ă  un langage spĂ©cifique suivant les principes de l‘infrastructure-as-code. En utilisant l'implantation de Rondo, les propositions de cette thĂšse sont validĂ©es dans plusieurs projets industriels et acadĂ©miques Ă  la fois pour l'administration de plates-formes ubiquitaires ainsi que pour l'installation d'applications et leurs reconfigurations continues

    Software engineering perspectives on physiological computing

    Get PDF
    Physiological computing is an interesting and promising concept to widen the communication channel between the (human) users and computers, thus allowing an increase of software systems' contextual awareness and rendering software systems smarter than they are today. Using physiological inputs in pervasive computing systems allows re-balancing the information asymmetry between the human user and the computer system: while pervasive computing systems are well able to flood the user with information and sensory input (such as sounds, lights, and visual animations), users only have a very narrow input channel to computing systems; most of the time, restricted to keyboards, mouse, touchscreens, accelerometers and GPS receivers (through smartphone usage, e.g.). Interestingly, this information asymmetry often forces the user to subdue to the quirks of the computing system to achieve his goals -- for example, users may have to provide information the software system demands through a narrow, time-consuming input mode that the system could sense implicitly from the human body. Physiological computing is a way to circumvent these limitations; however, systematic means for developing and moulding physiological computing applications into software are still unknown. This thesis proposes a methodological approach to the creation of physiological computing applications that makes use of component-based software engineering. Components help imposing a clear structure on software systems in general, and can thus be used for physiological computing systems as well. As an additional bonus, using components allow physiological computing systems to leverage reconfigurations as a means to control and adapt their own behaviours. This adaptation can be used to adjust the behaviour both to the human and to the available computing environment in terms of resources and available devices - an activity that is crucial for complex physiological computing systems. With the help of components and reconfigurations, it is possible to structure the functionality of physiological computing applications in a way that makes them manageable and extensible, thus allowing a stepwise and systematic extension of a system's intelligence. Using reconfigurations entails a larger issue, however. Understanding and fully capturing the behaviour of a system under reconfiguration is challenging, as the system may change its structure in ways that are difficult to fully predict. Therefore, this thesis also introduces a means for formal verification of reconfigurations based on assume-guarantee contracts. With the proposed assume-guarantee contract framework, it is possible to prove that a given system design (including component behaviours and reconfiguration specifications) is satisfying real-time properties expressed as assume-guarantee contracts using a variant of real-time linear temporal logic introduced in this thesis - metric interval temporal logic for reconfigurable systems. Finally, this thesis embeds both the practical approach to the realisation of physiological computing systems and formal verification of reconfigurations into Scrum, a modern and agile software development methodology. The surrounding methodological approach is intended to provide a frame for the systematic development of physiological computing systems from first psychological findings to a working software system with both satisfactory functionality and software quality aspects. By integrating practical and theoretical aspects of software engineering into a self-contained development methodology, this thesis proposes a roadmap and guidelines for the creation of new physiological computing applications.Physiologisches Rechnen ist ein interessantes und vielversprechendes Konzept zur Erweiterung des Kommunikationskanals zwischen (menschlichen) Nutzern und Rechnern, und dadurch die BerĂŒcksichtigung des Nutzerkontexts in Software-Systemen zu verbessern und damit Software-Systeme intelligenter zu gestalten, als sie es heute sind. Physiologische Eingangssignale in ubiquitĂ€ren Rechensystemen zu verwenden, ermöglicht eine Neujustierung der Informationsasymmetrie, die heute zwischen Menschen und Rechensystemen existiert: WĂ€hrend ubiquitĂ€re Rechensysteme sehr wohl in der Lage sind, den Menschen mit Informationen und sensorischen Reizen zu ĂŒberfluten (z.B. durch Töne, Licht und visuelle Animationen), hat der Mensch nur sehr begrenzte Einflussmöglichkeiten zu Rechensystemen. Meistens stehen nur Tastaturen, die Maus, berĂŒhrungsempfindliche Bildschirme, Beschleunigungsmesser und GPS-EmpfĂ€nger (zum Beispiel durch Mobiltelefone oder digitale Assistenten) zur VerfĂŒgung. Diese Informationsasymmetrie zwingt die Benutzer zur Unterwerfung unter die Usancen der Rechensysteme, um ihre Ziele zu erreichen - zum Beispiel mĂŒssen Nutzer Daten manuell eingeben, die auch aus Sensordaten des menschlichen Körpers auf unauffĂ€llige weise erhoben werden können. Physiologisches Rechnen ist eine Möglichkeit, diese BeschrĂ€nkung zu umgehen. Allerdings fehlt eine systematische Methodik fĂŒr die Entwicklung physiologischer Rechensysteme bis zu fertiger Software. Diese Dissertation prĂ€sentiert einen methodischen Ansatz zur Entwicklung physiologischer Rechenanwendungen, der auf der komponentenbasierten Softwareentwicklung aufbaut. Der komponentenbasierte Ansatz hilft im Allgemeinen dabei, eine klare Architektur des Software-Systems zu definieren, und kann deshalb auch fĂŒr physiologische Rechensysteme angewendet werden. Als zusĂ€tzlichen Vorteil erlaubt die Komponentenorientierung in physiologischen Rechensystemen, Rekonfigurationen als Mittel zur Kontrolle und Anpassung des Verhaltens von physiologischen Rechensystemen zu verwenden. Diese Adaptionstechnik kann genutzt werden um das Verhalten von physiologischen Rechensystemen an den Benutzer anzupassen, sowie an die verfĂŒgbare Recheninfrastruktur im Sinne von Systemressourcen und GerĂ€ten - eine Maßnahme, die in komplexen physiologischen Rechensystemen entscheidend ist. Mit Hilfe der Komponentenorientierung und von Rekonfigurationen wird es möglich, die FunktionalitĂ€t von physiologischen Rechensystemen so zu strukturieren, dass das System wartbar und erweiterbar bleibt. Dadurch wird eine schrittweise und systematische Erweiterung der FunktionalitĂ€t des Systems möglich. Die Verwendung von Rekonfigurationen birgt allerdings Probleme. Das Systemverhalten eines Software-Systems, das Rekonfigurationen unterworfen ist zu verstehen und vollstĂ€ndig einzufangen ist herausfordernd, da das System seine Struktur auf schwer vorhersehbare Weise verĂ€ndern kann. Aus diesem Grund fĂŒhrt diese Arbeit eine Methode zur formalen Verifikation von Rekonfigurationen auf Grundlage von Annahme-Zusicherungs-VertrĂ€gen ein. Mit dem vorgeschlagenen Annahme-Zusicherungs-Vertragssystem ist es möglich zu beweisen, dass ein gegebener Systementwurf (mitsamt Komponentenverhalten und Spezifikation des Rekonfigurationsverhaltens) eine als Annahme-Zusicherungs-Vertrag spezifizierte Echtzeiteigenschaft erfĂŒllt. FĂŒr die Spezifikation von Echtzeiteigenschaften kann eine Variante von linearer Temporallogik fĂŒr Echtzeit verwendet werden, die in dieser Arbeit eingefĂŒhrt wird: Die metrische Intervall-Temporallogik fĂŒr rekonfigurierbare Systeme. Schließlich wird in dieser Arbeit sowohl ein praktischer Ansatz zur Realisierung von physiologischen Rechensystemen als auch die formale Verifikation von Rekonfigurationen in Scrum eingebettet, einer modernen und agilen Softwareentwicklungsmethodik. Der methodische Ansatz bietet einen Rahmen fĂŒr die systematische Entwicklung physiologischer Rechensysteme von Erkenntnissen zur menschlichen Physiologie hin zu funktionierenden physiologischen Softwaresystemen mit zufriedenstellenden funktionalen und qualitativen Eigenschaften. Durch die Integration sowohl von praktischen wie auch theoretischen Aspekten der Softwaretechnik in eine vollstĂ€ndige Entwicklungsmethodik bietet diese Arbeit einen Fahrplan und Richtlinien fĂŒr die Erstellung neuer physiologischer Rechenanwendungen

    Exploiting Semantic Technologies in Smart Environments and Grids: Emerging Roles and Case Studies

    Get PDF
    Semantic technologies are currently spreading across several application domains as a reliable and consistent mean to address challenges related to organization, manipulation, visualization and exchange of data and knowledge. Different roles are actually played by these techniques depending on the application domain, on the timing constraints, on the distributed nature of applications, and so on. This paper provides an overview of the roles played by semantic technologies in the domain of smart grids and smart environments, with a particular focus on changes brought by such technologies in the adopted architectures, programming techniques and tools. Motivations driving the adoption of semantics in these different, but strictly intertwined, fields are introduced using a strong application-driven perspective. Two real-world case studies in smart grids and smart environments are presented to exemplify the roles covered by such technologies and the changes they fostered in software engineering processes. Learned lessons are then distilled and future adoption scenarios discussed

    Reasoning about and Harmonizing the Interaction Behavior of Networked Systems at Application- and Middleware- Layer

    Get PDF
    The CONNECT Integrated Project aims at enabling continuous composition of networked systems to respond to the evolution of functionalities provided to and required from the networked environment. CONNECT aims at dropping the interoperability barrier by adopting a revolutionary approach to the seamless networking of digital systems, that is, synthesizing on-the-fly the connectors via which networked systems communicate. The resulting emergent connectors are effectively synthesized according to the behavioral semantics of application- down to middleware-layer protocols run by the interacting parties. The role of work package WP3 is to devise automated and compositional approaches to connector synthesis, which can be performed at run-time. Given the respective interaction behavior of networked systems, we want to synthesize the behavior of the connector(s) needed for them to interact. These connectors serve as mediators of the networked systems' interaction at both application and middleware layers. During the project's first year, the work of WP3 led us to achieve the following preliminary results: the formalization of matching and mapping relationships for application-layer interaction protocols; the definition of the corresponding mediator generation algorithm; the analysis of the interoperability problems, and related solutions, that can occur at middleware-layer; and a model-driven approach to the automated elicitation of application-layer protocols from software implementations. All these achievements have been reported in Deliverable D3.1: "Modeling of application- and middleware-layer interaction protocols". In this deliverable, we go a step forward with respect to some of the previous achievements by delivering a unified process, and related artefacts, for the automated synthesis of mediators at both application and middleware layers, code-generation techniques to generate the actual code that implements a synthesized mediator, and a preliminary integration of QoS management in the synthesis process. During year 2, all the work has been validated through its application to several scenarios, in particular as part of WP1 and WP6. By selecting one of them as common scenario, in this deliverable, we also show the different methods/techniques at work on the scenario. All the steps of the devised synthesis process are described in detail and applied to the selected common scenario

    Dynamic process fragment injection in a service orchestration engine

    Get PDF
    The EU Project Allow Ensembles aims to develop a new design principle for large-scale collective systems (CAS) based on the concepts of cells and ensembles, where cells represent a concrete functionality in a system, and the ensembles are collections of cells which collaborate in order to fulfill a certain goal in a given context. Adaptive Pervasive Flows (APF) are based on workflow technology and utilized in pervasive environments to model the cell's behavior. During runtime, APF instances must be able to adapt their behavior, e.g. due to failures or changes in their environment, in order to be able to fulfill a certain goal. For this purpose, APFs may contain a particular type of activities, known as abstract activities. Abstract activities partially specify the flow behavior, which must then be resolved during runtime into one or multiple concrete activities, which in turn must be injected into the running flow. In the scope of this thesis, APFs are specified using an extension of the WS-BPEL language. The WS-BPEL language, provide the necessary mechanisms for extending the language for modeling custom process activities and specifying their behavior. In this thesis we focus on the WS-BPEL language and on an extended version of the Apache ODE orchestration engine, for business process modeling and execution respectively. With respect to the injection of pervasive process fragments, which contain one or multiple activities and properties, the language and execution engine requirements and constraints are investigated. For this purpose, a State-of-the-Art analysis on generic process fragment injection approaches is first driven. Once the constraints are detected, we present the formalization of the required language extension based on WS-BPEL language, and conduct a specification of requirements and architectural design of the final prototype based on the Apache Orchestration Director Engine (Apache ODE). For integration purposes in the overall required execution environment, the Enterprise Service Bus Apache ServiceMix 4.3 is used

    A MDD Strategy for developing Context-Aware Pervasive Systems

    Full text link
    This master thesis proposes a methodological approach to develop context-aware pervasive systems based on ontologies and the Model-Driven Development (MDD) guidelines.Serral Asensio, E. (2008). A MDD Strategy for developing Context-Aware Pervasive Systems. http://hdl.handle.net/10251/12446Archivo delegad

    Component-based software engineering: a quantitative approach

    Get PDF
    Dissertação apresentada para a obtenção do Grau de Doutor em InformĂĄtica pela Universidade Nova de Lisboa, Faculdade de CiĂȘncias e TecnologiaBackground: Often, claims in Component-Based Development (CBD) are only supported by qualitative expert opinion, rather than by quantitative data. This contrasts with the normal practice in other sciences, where a sound experimental validation of claims is standard practice. Experimental Software Engineering (ESE) aims to bridge this gap. Unfortunately, it is common to find experimental validation efforts that are hard to replicate and compare, to build up the body of knowledge in CBD. Objectives: In this dissertation our goals are (i) to contribute to evolution of ESE, in what concerns the replicability and comparability of experimental work, and (ii) to apply our proposals to CBD, thus contributing to its deeper and sounder understanding. Techniques: We propose a process model for ESE, aligned with current experimental best practices, and combine this model with a measurement technique called Ontology-Driven Measurement (ODM). ODM is aimed at improving the state of practice in metrics definition and collection, by making metrics definitions formal and executable,without sacrificing their usability. ODM uses standard technologies that can be well adapted to current integrated development environments. Results: Our contributions include the definition and preliminary validation of a process model for ESE and the proposal of ODM for supporting metrics definition and collection in the context of CBD. We use both the process model and ODM to perform a series experimental works in CBD, including the cross-validation of a component metrics set for JavaBeans, a case study on the influence of practitioners expertise in a sub-process of component development (component code inspections), and an observational study on reusability patterns of pluggable components (Eclipse plug-ins). These experimental works implied proposing, adapting, or selecting adequate ontologies, as well as the formal definition of metrics upon each of those ontologies. Limitations: Although our experimental work covers a variety of component models and, orthogonally, both process and product, the plethora of opportunities for using our quantitative approach to CBD is far from exhausted. Conclusions: The main contribution of this dissertation is the illustration, through practical examples, of how we can combine our experimental process model with ODM to support the experimental validation of claims in the context of CBD, in a repeatable and comparable way. In addition, the techniques proposed in this dissertation are generic and can be applied to other software development paradigms.Departamento de InformĂĄtica of the Faculdade de CiĂȘncias e Tecnologia, Universidade Nova de Lisboa (FCT/UNL); Centro de InformĂĄtica e Tecnologias da Informação of the FCT/UNL; Fundação para a CiĂȘncia e Tecnologia through the STACOS project(POSI/CHS/48875/2002); The Experimental Software Engineering Network (ESERNET);Association Internationale pour les Technologies Objets (AITO); Association forComputing Machinery (ACM
    • 

    corecore