11 research outputs found

    Implementing Infopipes: The SIP/XIP Experiment

    Get PDF
    We describe an implementation of the Infopipe abstraction for information flow applications. We have implemented software tools that translate the SIP/XIP variant of Infopipe specification into executable code. These tools are evaluated through the rewriting of two realistic applications using Infopipes: a multimedia streaming program and a web source combination application. Measurements show that Infopipe-generated code has the same execution overhead as the manually written original version. Source code of Infopipe version is reduced by 36% to 85% compared to the original

    A Communication Model to Integrate the Request-Response and the Publish-Subscribe Paradigms into Ubiquitous Systems

    Get PDF
    The Request-Response (RR) paradigm is widely used in ubiquitous systems to exchange information in a secure, reliable and timely manner. Nonetheless, there is also an emerging need for adopting the Publish-Subscribe (PubSub) paradigm in this kind of systems, due to the advantages that this paradigm offers in supporting mobility by means of asynchronous, non-blocking and one-to-many message distribution semantics for event notification. This paper analyzes the strengths and weaknesses of both the RR and PubSub paradigms to support communications in ubiquitous systems and proposes an abstract communication model in order to enable their seamless integration. Thus, developers will be focused on communication semantics and the required quality properties, rather than be concerned about specific communication mechanisms. The aim is to provide developers with abstractions intended to decrease the complexity of integrating different communication paradigms commonly needed in ubiquitous systems. The proposal has been applied to implement a middleware and a real home automation system to show its applicability and benefits.This research work is funded by the Project P10-TIC-6600 granted by the Andalusian Regional Government, and the Project 20F2/36 granted by CEI-BioTIC Granada. This work has also been partially supported by the “Contrato-Programa, Facultad de Educacin y Humanidades de Ceuta 2010-2012” of the University of Granada

    Towards Bridging the Gap Between Programming Languages and Partial Evaluation

    Get PDF
    International audiencePartial evaluation is a program-transformation technique that automatically specializes a program with respect to user-supplied invariants. Despite successful applications in areas such as graphics, operating systems, and software engineering, partial evaluators have yet to achieve widespread use. One reason is the difficulty of adequately describing specialization opportunities. Indeed, under-specialization or over-specialization often occurs, without any direct feedback to the user as to the source of the problem. We have developed a high-level, module-based language allowing the programmer to guide the choice of both the code to specialize and the invariants to exploit during the specialization process. To ease the use of partial evaluation, the syntax of this language is similar to the declaration syntax of the target language of the partial evaluator. To provide feedback to the programmer, declarations are checked throughout the analyses performed by partial evaluation. The language has been successfully used by a signal-processing expert in the design of a specializable Forward Error Correction component

    Fast, Optimized Sun RPC Using Automatic Program Specialization

    Get PDF
    Fast remote procedure call (RPC) is a major concern for distributed systems. Many studies aimed at efficient RPC consist of either new implementations of the RPC paradigm or manual optimization of critical sections of the code. This paper presents an experiment that achieves automatic optimization of an existing, commercial RPC implementation, namely the Sun RPC. The optimized Sun RPC is obtained by using an automatic program specializer. It runs up to 1.5 times faster than the original Sun RPC. Close examination of the specialized code does not reveal further optimization opportunities which would lead to significant improvements without major manual restructuring. The contributions of this work are: (1) the optimized code is safely produced by an automatic tool and thus does not entail any additional maintenance; (2) to the best of our knowledge this is the first successful specialization of mature, commercial, representative system code; and (3) the optimized Sun RPC runs significa..

    Optimisations de compilateur optimistes pour les systèmes réseaux

    Get PDF
    Cette thèse présente un ensemble de techniques qui permettent l’optimisation des performances des sysèmes réseaux modernes. Ces techniques reposent sur l’analyse et la transformation des programmes impliqués dans la mise en ´oeuvre des protocoles réseaux. La première de ces techniques fait appel à la spécialisation de programmes pour optimiser des piles de protocoles r´eseaux. La deuxième, que nous avons nomm´ee sp´ecialisation distante, permet à des systèmes embarqu´es limit´es en ressources de b´en´eficier de la sp´ecialisation de programmes en d´eportant à travers le r´eseau les op´erations de sp´ecialisation à une machine distante moins limit´ee. La troisième propose un nouvel allocateur de m´emoire qui optimise l’utilisation des caches mat´eriels faite par un serveur r´eseau. Enfin, la quatrième technique utilise l’analyse de programmes statiques pour int´egrer l’allocateur propos´e dans un serveur réseau existant. On appelle ces techniques optimisations compilateur parce qu’elles opèrent sur le flot des donn´ees et du controle dans des programmes en les transformant pour qu’ils fonctionnent plus efficacement.This dissertation describes techniques that can optimize the performance of modernday network systems. They are applied through the analysis and transformation of programs that implement network protocols. The first of these techniques involves the use of Program Specialization, a well-established code-optimization approach, to optimize network protocol stacks. The second, Remote Specialization makes specialization amenable to resource-limited embedded systems by deferring it over the network to a more capable system. The third technique revolves around a novel memory manager introduced in this thesis and optimizes a network server’s use of the underlying hardware caches. Finally, the fourth technique uses static analysis to integrate the proposed memory manager with an existing network server. All four techniques are implemented in a set of tools that can be used to automatically optimize network applications, and are referred to as compiler optimizations as they are based on program analysis and transformation
    corecore