4 research outputs found

    Structured and flexible gray-box composition: Application to task rescheduling for grid benchmarking

    Get PDF
    International audienceThe evolution of complex distributed software systems often requires intricate composition operations in order to adapt or add functionalities, react to unanticipated changes to security policies, or do performance improvements, which cannot be modularized in terms of existing services or components. They often need controlled access to selected parts of the implementation, e.g., to manage exceptional situations and crosscutting within services and their compositions. However, existing composition techniques typically support only interface-level (black-box) composition or arbitrary access to the implementation (gray-box or white-box composition). In this paper, we present a more structured approach to the composition of complex software systems that require invasive accesses. Concretely, we provide two contributions, we (i) present a small kernel composition language for structured gray-box composition with explicit control mechanisms and a corresponding aspect-based implementation; (ii) present and compare evolutions using this approach to gray-box composition in the context of two real-world software systems: benchmarking of grid algorithms with NASGrid and transactional replication with JBoss Cache

    Structured and flexible gray-box composition using invasive distributed patterns

    Get PDF
    ISBN = {ISSN: 1646-3692}International audienceThe evolution of complex distributed software systems often requires intricate composition operations in order to adapt or add functionalities, to react to unanticipated changes, or to apply performance improvements that cannot be modularized in terms of existing services and components. These evolutions often need controlled access to selected parts of the implementation, e.g., to manage exceptional situations and crosscutting within services and their compositions. However, existing composition techniques typically support only interface-level (black-box) composition or arbitrary access to the implementation (gray-box or white-box composition). In this paper, we present a structured approach to the composition of complex software systems that require invasive modifications. Concretely, we provide three contributions: (i) we present a small kernel composition language for structured gray-box composition using invasive distributed patterns; (ii) we motivate that gray-box composition approaches should be defined and evaluated in terms of the flexibility and control they provide, a notion of degrees of invasiveness is introduced to help assess this trade-off; (iii) we apply our approach to a new case study of evolution and evaluate it in the context of two previous studies involving two real-world software systems: benchmarking of grid algorithms with NASGrid and transactional replication with JBoss Cache. As a main result, we show that gray-box composition using invasive distributed patterns allows the declarative and modular definition of evolutions of real-world applications that need moderate to high degrees of invasive modifications

    Improving Reuse and Maintainability of Communication Software With Conversation-Aware Aspects

    Get PDF
    Inter-process communications (IPC) are ubiquitous in today’s software systems, yet they are rarely treated as first-class programming concepts. Implementing crosscutting concerns for message-based IPC are difficult, even using aspect-oriented programming languages (AOPL) such as AspectJ. Many of these challenges are because the context of a communication-related crosscutting concern is often a conversation consisting of message sends and receives. Hence, developers typically have to implement communication protocols manually using primitive operations, such as connect, send, receive, and close. This dissertation describes an extension to AspectJ, called CommJ, with which developers can implement communication-related concerns in cohesive and loosely coupled aspects. It then presents preliminary, but encouraging results from a subsequent study that begin by defining a reuse and maintenance quality model. Subsequently the results show seven different ways in which CommJ can improve the reusability and maintainability of applications requiring network communications

    Invasive patterns for distributed programs

    No full text
    Abstract. Software patterns have evolved into a commonly used means to design and implement software systems. Programming patterns, architecture and design patterns have been quite successful in the context of sequential as well as (massively) parallel applications but much less so in the context of distributed applications over irregular communication topologies and heterogeneous synchronization requirements. In this paper, we propose a solution for one of the main issues in this context: the need to complement distributed patterns with access to execution state on which it depends but that is frequently not directly available at the sites where the patterns are to be applied. To this end we introduce invasive patterns that couple well-known computation and communication patterns like pipelining and farming out computations with facilities to access non-local state. We present the following contributions: (i) a motivation for such invasive patterns in the context of a real-world application: the JBoss Cache framework for transactional replicated caching, (ii) a proposal of language support for such invasive patterns, (iii) a prototypical implementation of this pattern language using AWED, an aspect language for distributed programming, and (iv) an evaluation of our proposal for refactoring of JBoss Cache.
    corecore