20 research outputs found

    Guess Who\u2019s Coming: Runtime Inclusion of Participants in Choreographies

    Get PDF
    In Choreographic Programming, a choreography specifies in a single artefact the expected behaviour of all the participants in a distributed system. The choreography is used to synthesise correct-by-construction programs for each participant. In previous work, we defined Dynamic Choreographies to support the update of distributed systems at runtime. In this work, we extend Dynamic Choreographies to include new participants at runtime, capturing those use cases where the system might be updated to interact with new, unforeseen stakeholders. We formalise our extension, prove its correctness, and present an implementation in the AIOCJ choreographic framework

    Programming adaptive microservice applications: An AIOCJ tutorial

    Get PDF
    This tutorial describes AIOCJ, which stands for Adaptive Interaction Oriented Choreographies in Jolie, a choreographic language for programming microservice-based applications which can be updated at runtime. The compilation of a single AIOCJ program generates the whole set of distributed microservices that compose the application. Adaptation is performed using adaptation rules. Abstractly, each rule replaces a pre-delimited part of the program with the new code contained in the rule itself. Concretely, at runtime, the application of a rule updates part of the microservices that compose the application so to match the behavior specified by the updated program. Thanks to the properties of choreographies, the adaptive application is free from communication deadlocks and message races even after adaptation

    Addressing the Long-Term Influence of Neurotrauma on Self-Concept and Self-Identity Development: A Pilot Study

    Get PDF
    Background: Numerous neurotrauma survivors face lifelong disability post injury as a result of an event, yet there are limited specialized continued care services to support future outcomes, specifically self-concept, self-identity, and quality of life. To reduce health care barriers and support health promotion post injury, student researchers explored the influence of a community-based occupational therapy (OT) program for the neurotrauma population. Methods: Four participants, 37 to 58 years of age, with a history of neurotrauma, participated in a mixed methods study composed of a 6-week community-based educational OT program. Outcome measures included Activity Card Sort, Lawton Brody Scale, Pre and Post Surveys, and Semi-Structured Interviewing. Results: Data from the study support implementation of a community-based program, such as the one used in this study. This study highlighted the need for a program addressing self-concept, self-identity, and post-injury quality of life in addition to occupational engagement at a community level. Conclusion: The findings from the current study reinforce participation in a community-based OT program as an effective approach to address long-term outcomes post neurotrauma, specifically self-concept, self-identity, and quality of life. Program efficacy is supported by both quantitative and qualitative findings; however, further research is required to generalize the findings to the neurotrauma population as a whole

    Microservice Transition and its Granularity Problem: A Systematic Mapping Study

    Get PDF
    Microservices have gained wide recognition and acceptance in software industries as an emerging architectural style for autonomic, scalable, and more reliable computing. The transition to microservices has been highly motivated by the need for better alignment of technical design decisions with improving value potentials of architectures. Despite microservices' popularity, research still lacks disciplined understanding of transition and consensus on the principles and activities underlying "micro-ing" architectures. In this paper, we report on a systematic mapping study that consolidates various views, approaches and activities that commonly assist in the transition to microservices. The study aims to provide a better understanding of the transition; it also contributes a working definition of the transition and technical activities underlying it. We term the transition and technical activities leading to microservice architectures as microservitization. We then shed light on a fundamental problem of microservitization: microservice granularity and reasoning about its adaptation as first-class entities. This study reviews state-of-the-art and -practice related to reasoning about microservice granularity; it reviews modelling approaches, aspects considered, guidelines and processes used to reason about microservice granularity. This study identifies opportunities for future research and development related to reasoning about microservice granularity.Comment: 36 pages including references, 6 figures, and 3 table

    No more, no less - A formal model for serverless computing

    Get PDF
    Serverless computing, also known as Functions-as-a-Service, is a recent paradigm aimed at simplifying the programming of cloud applications. The idea is that developers design applications in terms of functions, which are then deployed on a cloud infrastructure. The infrastructure takes care of executing the functions whenever requested by remote clients, dealing automatically with distribution and scaling with respect to inbound traffic. While vendors already support a variety of programming languages for serverless computing (e.g. Go, Java, Javascript, Python), as far as we know there is no reference model yet to formally reason on this paradigm. In this paper, we propose the first formal programming model for serverless computing, which combines ideas from both the λ\lambda-calculus (for functions) and the π\pi-calculus (for communication). To illustrate our proposal, we model a real-world serverless system. Thanks to our model, we are also able to capture and pinpoint the limitations of current vendor technologies, proposing possible amendments

    No More, No Less - A Formal Model for Serverless Computing

    Get PDF
    Part 3: Exploring New FrontiersInternational audienceServerless computing, also known as Functions-as-a-Service, is a recent paradigm aimed at simplifying the programming of cloud applications. The idea is that developers design applications in terms of functions, which are then deployed on a cloud infrastructure. The infrastructure takes care of executing the functions whenever requested by remote clients, dealing automatically with distribution and scaling with respect to inbound traffic.While vendors already support a variety of programming languages for serverless computing (e.g. Go, Java, Javascript, Python), as far as we know there is no reference model yet to formally reason on this paradigm. In this paper, we propose the first core formal programming model for serverless computing, which combines ideas from both the lambda-calculus (for functions) and the pi-calculus (for communication). To illustrate our proposal, we model a real-world serverless system. Thanks to our model, we capture limitations of current vendors and formalise possible amendments

    On Interference Aware Power Adjustment and Scheduling in Femtocell Networks

    No full text
    Densely-deployed femtocell networks are used to enhance wireless coverage in public spaces such as office buildings, subways, and academic buildings. These networks can increase user throughput, but edge users can suffer from co-channel interference and service outages. This paper introduces a distributed algorithm for network configuration, called Radius Reduction and Scheduling (RRS), to improve the performance and fairness of the network. RRS works by jointly adapting femtocell transmission power, allocating user to femtocells, and scheduling resource blocks so as to increase fairness and reduce outage probability in dense femtocell networks. RRS produces a network configuration that guarantees either user or area coverage depending on the management needs. A prototype implementation confirms the benefits of RRS in a real environment. Furthermore, extensive simulations show that RRS reduces the outage probability of up to 50%, and provides better fairness, with an increase in Jain's index of 190%, with respect to a baseline algorithm which works with fixed power and best-effort scheduling and to a previous approach to resource management in femtocell networks

    Jolie and LEMMA: Model-Driven Engineering and Programming Languages Meet on Microservices

    No full text
    In microservices, Model-Driven Engineering (MDE) has emerged as a powerful methodology for architectural design. Independently, the community of programming languages has investigated new linguistic abstractions for effective microservice development. Here, we present the first preliminary study of how the two approaches can cross-pollinate, taking the LEMMA framework and the Jolie programming language as respective representatives. We establish a common ground for comparing the two technologies in terms of metamodels, discuss practical enhancements that can be derived from the comparison, and present some directions for future work that arise from our new viewpoint
    corecore