20 research outputs found
Guess Who\u2019s Coming: Runtime Inclusion of Participants in Choreographies
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
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
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
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
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 -calculus (for functions) and the
-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
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
“Regions are back in town” Un approccio strategico e transcalare alla governance dei confini nella Città Metropolitana di Firenze
On Interference Aware Power Adjustment and Scheduling in Femtocell Networks
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
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