29 research outputs found

    Architectural support for ubiquitous access to multimedia content

    Get PDF
    Tese de doutoramento. Engenharia Electrotécnica e de Computadores (Telecomunicações). Faculdade de Engenharia. Universidade do Porto. 200

    Model-driven and Compositional Service Creation in the Internet of Services

    Get PDF
    Doktorgradsavhandling i informasjons- og kommunikasjonsteknologi, Universitetet i Agder, Grimstad, 2012In the Future Internet, billions of devices will be connected to the Internet. Devices at any levels of hierarchy provide software functionality that can be used by others. We can call the device’s functionality a service, which in turn, introduces the concept of the Internet of Services. From the software developer perspectives, a new service can be created by utilizing services in the Internet of Services. An important issue of the creation of such service-based application is regarding their deployment method on personalized and embedded devices. For each device with different capability and configuration, different tailored code is required. For this, a flexible method and tools that support an automatic code generation for a device with a specific capability and configuration are mandatory. This thesis proposes PMG-pro (Present, Model, Generate and provide), a language- independent, bottom-up and model-driven method for the service creation in the Internet of Services. With this method, a service is created by providing the new functionality of a service-based application as a service. By using existing service frameworks and APIs, from a service description, PMG-pro generates an abstract graphical service representation (service model) and source code implementing for service invocations. Depending on the target modeling languages, different graphical notations can be used to represent services. Similarly, different programming languages can also be used to implement the service invocations. We call these pairs (i.e., the service model and the source code) platform-specific models. With these platform models, service composers use the graphical service representation to model new service-based applications, while the machine (i.e., computer system) uses the source code to generate code from the service-based application model. This thesis contributes to the service engineering method that applies a modeldriven development approach. Three main contributions are a model-driven method for service creation, an automatic service presentation of pre-made services, and a new method of handling device capability and configuration. With these, service creation in the Internet of Services can be done in a rapid and automatic manner. Service designers can create a new service by defining a model of service-based applications using pre-made service models, while code for a specific device can be generated automatically from the model. The PMG-pro method has been partly prototyped and validated on various case studies in the domain of smart homes that have produced encouraging results. The method promotes a rapid, language-independent, and unified process of software service development

    Model-driven and Compositional Service Creation in the Internet of Services

    Get PDF
    Doktorgradsavhandling i informasjons- og kommunikasjonsteknologi, Universitetet i Agder, Grimstad, 2012In the Future Internet, billions of devices will be connected to the Internet. Devices at any levels of hierarchy provide software functionality that can be used by others. We can call the device’s functionality a service, which in turn, introduces the concept of the Internet of Services. From the software developer perspectives, a new service can be created by utilizing services in the Internet of Services. An important issue of the creation of such service-based application is regarding their deployment method on personalized and embedded devices. For each device with different capability and configuration, different tailored code is required. For this, a flexible method and tools that support an automatic code generation for a device with a specific capability and configuration are mandatory. This thesis proposes PMG-pro (Present, Model, Generate and provide), a language- independent, bottom-up and model-driven method for the service creation in the Internet of Services. With this method, a service is created by providing the new functionality of a service-based application as a service. By using existing service frameworks and APIs, from a service description, PMG-pro generates an abstract graphical service representation (service model) and source code implementing for service invocations. Depending on the target modeling languages, different graphical notations can be used to represent services. Similarly, different programming languages can also be used to implement the service invocations. We call these pairs (i.e., the service model and the source code) platform-specific models. With these platform models, service composers use the graphical service representation to model new service-based applications, while the machine (i.e., computer system) uses the source code to generate code from the service-based application model. This thesis contributes to the service engineering method that applies a modeldriven development approach. Three main contributions are a model-driven method for service creation, an automatic service presentation of pre-made services, and a new method of handling device capability and configuration. With these, service creation in the Internet of Services can be done in a rapid and automatic manner. Service designers can create a new service by defining a model of service-based applications using pre-made service models, while code for a specific device can be generated automatically from the model. The PMG-pro method has been partly prototyped and validated on various case studies in the domain of smart homes that have produced encouraging results. The method promotes a rapid, language-independent, and unified process of software service development

    An Exploratory Data Analysis Approach for Land Use-Transportation Interaction: The Design and Implementation of Transland Spatio-Temporal Data Model

    Get PDF
    Land use and transportation interaction is a complex and dynamic process. Many models have been used to study this interaction during the last several decades. Empirical studies suggest that land use and transportation patterns can be highly variable between geographic areas and at different spatial and temporal scales. Identifying these changes presents a major challenge. When we recognize that long-term changes could be affected by other factors such as population growth, economic development, and policy decisions, the challenge becomes even more overwhelming. Most existing land use and transportation interaction models are based on some prior theories and use mathematical or simulation approaches to study the problem. However, the literature also suggests that little consensus regarding the conclusions can be drawn from empirical studies that apply these models. There is a clear research need to develop alternative methods that will allow us to examine the land use and transportation patterns in more flexible ways and to help us identify potential improvements to the existing models. This dissertation presents a spatio-temporal data model that offers exploratory data analysis capabilities to interactively examine the land use and transportation interaction at use-specified spatial and temporal scales. The spatio-temporal patterns and the summary statistics derived from this interactive exploratory analysis process can be used to help us evaluate the hypotheses and modify the structures used in the existing models. The results also can suggest additional analyses for a better understanding of land use and transportation interaction. This dissertation first introduces a conceptual framework for the spatio-temporal data model. Then, based on a systematic method for explorations of various data sets relevant to land use and transportation interaction, this dissertation details procedures of designing and implementing the spatio-temporal data model. Finally, the dissertation describes procedures of creating tools for generating the proposed spatio-temporal data model from existing snapshot GIS data sets and illustrate its use by means of exploratory data analysis. Use of the spatio-temporal data model in this dissertation study makes it feasible to analyze spatio-temporal interaction patterns in a more effective and efficient way than the conventional snapshot GIS approach. Extending Sinton’s measurement framework into a spatio-temporal conceptual interaction framework, on the other hand, provides a systematic means of exploring land use and transportation interaction. Preliminary experiments of data collected for Dade County (Miami), Florida suggest that the spatio-temporal exploratory data analysis implemented for this dissertation can help transportation planners identify and visualize interaction patterns of land use and transportation by controlling the spatial, attribute, and temporal components. Although the identified interaction patterns do not necessarily lead to rules that can be applied to different areas, they do provide useful information for transportation modelers to re-evaluate the current model structure to validate the existing model parameter

    Advances in component-oriented programming

    Get PDF
    WCOP 2006 is the eleventh event in a series of highly successful workshops, which took place in conjunction with every ECOOP since 1996. Component oriented programming (COP) has been described as the natural extension of object-oriented programming to the realm of independently extensible systems. Several important approaches have emerged over the recent years, including component technology standards, such as CORBA/CCM, COM/COM+, J2EE/EJB, and .NET, but also the increasing appreciation of software architecture for component-based systems, and the consequent effects on organizational processes and structures as well as the software development business as a whole. COP aims at producing software components for a component market and for late composition. Composers are third parties, possibly the end users, who are not able or willing to change components. This requires standards to allow independently created components to interoperate, and specifications that put the composer into the position to decide what can be composed under which conditions. On these grounds, WCOP\u2796 led to the following definition: "A component is a unit of composition with contractually specified interfaces and explicit context dependencies only. Components can be deployed independently and are subject to composition by third parties." After WCOP\u2796 focused on the fundamental terminology of COP, the subsequent workshops expanded into the many related facets of component software. WCOP 2006 emphasizes reasons for using components beyond reuse. While considering software components as a technical means to increase software reuse, other reasons for investing into component technology tend to be overseen. For example, components play an important role in frameworks and product-lines to enable configurability (even if no component is reused). Another role of components beyond reuse is to increase the predictability of the properties of a system. The use of components as contractually specified building blocks restricts the degrees of freedom during software development compared to classic line-by-line programming. This restriction is beneficial for the predictability of system properties. For an engineering approach to software design, it is important to understand the implications of design decisions on a system\u27s properties. Therefore, approaches to evaluate and predict properties of systems by analyzing its components and its architecture are of high interest. To strengthen the relation between architectural descriptions of systems and components, a comprehensible mapping to component-oriented middleware platforms is important. Model-driven development with its use of generators can provide a suitable link between architectural views and technical component execution platforms. WCOP 2006 accepted 13 papers, which are organised according to the program below. The organisers are looking forward to an inspiring and thought provoking workshop. The organisers thank Jens Happe and Michael Kuperberg for preparing the proceedings volume

    Theoretical aspects of the syntax and semantics of the Java language.

    Get PDF
    This thesis investigates two theoretical aspects of the formal definition of programming languages, using case studies in Java. First, we define modular grammars which can be used to decompose large grammars. Modular grammars allow the modular definition of formal languages. They provide concepts of component and architecture for grammars and languages. We show that this modular method can be used to define a modem practical language like Java. Second, we describe recent general work on the definition of interfaces and interface definition languages (IDLs). In Rees, Stephenson and Tucker [2003], there is an analysis of the idea of interfaces and an algebraic model of a general IDL. We apply these ideas to analyzing aspects of interfaces in Java. The thesis is comprised of five chapters together with an appendix. Chapter 1 consists of an introduction to the thesis. The second chapter reports on object-oriented programming and the Java programming language with particular emphasis on a mathematical theory of its definition. Chapter 3 deals with a modular decomposition of Java syntax and grammars. In Chapter 4, we expound a theory of the modular definitions of interfaces within any programming language. One important feature of the general account is the process of flattening the hierarchical structure produced by modularity. In Chapter 5, we attempt to implement the results of research into the Interface Definition Language discussed in Chapter 4. We define 'Little Java', a subset of the programming language Java, and endeavour to provide a series of translations from 'Little Java'' to an abstract object-oriented interface definition language OO-IDL and thence to an interface definition language AS-IDL for abstract data types. In the Appendix, we review the history of the Java language

    Workshop on real-time for multimedia (RTMM), Catania, Italy, June 29, 2004

    Get PDF

    Une approche intégrée pour la validation et la génération de systèmes critiques par raffinement incrémental de modèles architecturaux

    Get PDF
    The increasing complexity of distributed realtime and embedded (DRE) systems and their implication in various domains imply new design and development methods. In safety- criticial domains such as space, aeronautical, transport or medicine, their failure could result in the failure of the mission, or in dramatic damages such as human losses. This particular class of systems comes with strong requirements to satisfy safety, reliability and security properties. The Model-driven Engineering (MDE) introduces the concept of «model» - an abstract description of the system and a set of tools (editor, transformation engine, code generator) to simplify and automatize the design, the validation and the implementation of the system. Thus, various abstractions are realized using different domain-specific modeling languages in order to assess one particular aspect of the system and to re-use model-based analysis tools and generative technologies. These various representations may share some commonalities but the consistency between them is hard to validate (for example : Is the analyzed system the same as the generated one ?).This PhD thesis leverages MDE concepts and mechanisms, to enhance the reliability of the model-based development process of DRE systems. Our approach is based on the definition of the architectural and behavioral modeling language AADLHI Ravenscar, a restriction of AADL (Architecture Analysis & Design Language) and its behavioral annex. This subset of AADL constructs, comes up with a semantic close to the one of an imperative programming language, to drive both the analysis and the code generation of the application components and its relying execution platform (middleware) components...L’augmentation de la complexité des systèmes temps-réel répartis embarqués (TR2E) et leur implication dans de nombreux domaines de notre quotidien imposent de nouvelles mé thodes de réalisation. Dans les domaines dits critiques (transport, médecine...) ces systèmes doivent satisfaire des contraintes dures pour garantir leur bon fonctionnement et éviter toutes défaillances qui engendreraient des conséquences financières ou humaines dramatiques. L’Ingénierie Dirigée par les Modèles (IDM) introduit le “modèle” - i.e. une description abstraite du système - et un ensemble d’outils (édition, transformation...) permettant la simplification et l’automatisation des étapes de conception, de validation et de génération du système. Ainsi, différentes abstractions du système sont élaborées dans des formalismes spécifiques de manière à couvrir un aspect du système et à permettre la réutilisation des outils d’analyse et de génération existants. Cependant, ces multiples représentations évoluent à des niveaux d’abstractions différents et il n’est pas toujours évident de mettre en corrélation système analysé et système généré. Ce travail de thèse exploite les concepts et les mécanismes offerts par l’IDM pour améliorer la fiabilité du processus de réalisation des systèmes critiques basé sur les modèles. L’approche que nous avons définie repose sur la définition du langage de modélisation architecturale et comportementale AADL-HI Ravenscar - un sous-ensemble du langage AADL (Architecture Analysis & Design Language) et de son annexe comportementale - contraint pour permettre conjointement l’analyse et la génération de l’ensemble des composants de l’application y compris de son exécutif, avec une sémantique proche d’un langage de programmation impératif..

    On Run-Time Configuration Engineering

    Get PDF
    De nos jours, les utilisateurs changent le comportement de leur logiciel et l’adaptent à différentes situations et contexts, sans avoir besoin d’aucune modifications du code source ou recompilation du logiciel. En effet, les utilisateurs utilisent le mécanisme de configuration qui offre un ensemble d’options modifiables par les utilisateurs. D’après plusieurs études, des mauvaises valeurs des options de configuration causent des erreurs difficiles à déboguer. Plusieurs compagnies importantes, comme Facebook, Google et Amazon ont rencontré des pannes et erreurs sérieuses à cause de la configuration et qui sont considérées parmi les plus pires pannes dans ces compagnies. En plus, plusieurs études ont trouvé que le mécanisme de configuration augmente la complexité des logiciels et les rend plus difficile à utiliser. Ces problèmes ont un sérieux impact sur plusieurs facteurs de qualité, comme la sécurité, l’exactitude, la disponibilité, la compréhensibilité, la maintenabilité, et la performance des logiciels. Plusieurs études ont été élaborées dans des aspects spécifiques dans l’ingénierie des configurations, dont la majorité se concentrent sur le débogage des défaillances de configuration et les tests de la configuration des logiciels, tandis que peu de recherches traitent les autres aspects de l’ingénierie des configurations de logiciel, comme la création et la maintenance des options de configuration. Par contre, nous pensons que la configuration des logiciels n’a pas seulement un impact sur l’exactitude d’un logiciel, mais peut avoir un impact sur d’autres métriques de qualité comme la compréhensibilité et la maintenabilité. Dans cette thèse, nous faisons d’abord un pas en arrière pour mieux comprendre les activités principales liées du processus de l’ingénierie des configurations, avant d’évaluer l’impact d’un catalogue de bonnes pratiques sur l’exactitude et la performance du processus de la configuration des logiciels. Pour ces raisons, nous avons conduit un ensemble d’études empiriques qualitatives et quantitatives sur des grands projets libres. On a conduit une étude qualitative en premier lieu, dans laquelle nous avons essayé de comprendre le processus de l’ingénierie de configuration, les enjeux et problèmes que les développeurs rencontrent durant ce processus, et qu’est ce que les développeurs et chercheurs proposent pour aider les développeurs à améliorer la qualité de l’ingénierie de la configuration logiciel. En réalisant 14 entrevues semi structurées, un sondage et une revue systématique de littérature, nous avons défini un processus de l’ingénierie de configuration invoquant 9 activités, un ensemble de 22 challenges rencontrés en pratique et 24 recommandations des experts.----------ABSTRACT: Modern software applications allow users to change the behavior of a software application and adapt it to different situations and contexts, without requiring any source code modifications or recompilations. To this end, applications leverage a wide range of mechanisms of software configuration that provide a set of options that can be changed by users. According to several studies, incorrect values of software configuration options cause severe errors that are hard-to-debug. Major companies such as Facebook, Google, and Amazon faced serious outages and failures due to configuration, which are considered as some of the worst outages in these companies. In addition, several studies found that the mechanism of software configuration increases the complexity of a software system and makes it hard to use. Such problems have a serious impact on different quality factors, such as security, correctness, availability, comprehensibility, maintainability, and performance of software systems. Several studies have been conducted on specific aspects of configuration engineering, with most of them focusing on debugging configuration failures and testing software configurations, while only few research efforts focused on other aspects of configuration engineering, such as the creation and maintenance of configuration options. However, we think that software configuration can not only have a negative impact on the correctness of a software system, but also on other quality metrics, such as its comprehensibility and maintainability. In this thesis, we first take a step back to better understand the main activities involved in the process of run-time configuration engineering, before evaluating the impact of a catalog of best practices on the correctness and performance of the configuration engineering process. For these purposes, we conducted several qualitative and quantitative empirical studies on large repositories and open source projects. We first conducted a qualitative study, in which we tried to understand the configuration engineering process, the challenges and problems developers face during this process, and what practitioners and researchers recommend to help developers to improve their software configuration engineering quality. By conducting 14 semi-structured interviews, a large survey, and a systematic literature review, we identified a process of configuration engineering involving 9 activities, a set of 22 challenges faced in practice, and a set of 24 recommendations by experts
    corecore