Giter Site home page Giter Site logo

msl's Introduction

MSL: MAPE Specification Language

Introduction

In architecture-based self-adaptation, the adaptation logic is usually structured in terms of MAPE-K (Monitor-Analyze-Plan-Execute over a shared Knowledge) loops dealing with the adaptation concerns of the managed system. In case of large, complex and decentralized systems, multiple interacting MAPE loops are introduced. Some common design patterns of interactive MAPE loops have been proposed in the literature.

MAPE Specification Language (MSL) allows to describe MAPE patterns in a precise and unambiguous way.

The MSL language's semantics is formally defined trough a semantic mapping that transforms MSL models of MAPE pattern instances into formal executable descriptions based on the framework of self-adaptive Abstract State Machines (see related paper). The model generator MSL2ASM implements such a mapping, i.e., it transforms an MSL model into a self-adaptive ASM model (written in the textual notation AsmetaL) automatically. The produced ASM model can be used for formal analysis using the ASMETA framework.

The framework also provides a translator (MSL2OpenHAB) from MSL models to Open Home Automation Bus (OpenHAB), which is an open source runtime platform for home automation, to synthesize control home automation processes from MAPE loop models of smart home gateways. Typical and complex control home automation processes of smart home gateways can be designed in terms of structured MAPE-K feedback loops in MSL. The MAPE components of a MAPE-K feedback loop in MSL are mapped into Event-Condition-Actions rules of the OpenHAB automation rule engine. These rules share a common execution context (i.e., they can access and exchange variables with each other) and trigger each other according to the underlying execution order of the feedback loop and the component interactions as established by the MAPE pattern. The Action block of these rules can be then further refined to add application-specific control logic (any kind of task, e.g., ''send a command to home devices'', ''do mathematical calculations'', ''start timers'', etc.).

Documents

MSL Xtext grammar (syntax graph)

Library of MAPE patterns

Eclipse update site of MSL editor, ASM generator, and OpenHAB generator: https://raw.githubusercontent.com/fmselab/msl/master/org.xtext.msl.repository/

Smart heating case study for ECSA 2018 (MAPE concretization, generated ASM, and refined ASM)

Papers

P. Arcaini, R. Mirandola, E. Riccobene, P. Scandurra. A DSL for MAPE Patterns Representation in Self-adapting Systems. In Software Architecture. ECSA 2018. Lecture Notes in Computer Science, vol 11048. Springer, Cham [doi]

P. Arcaini, R. Mirandola, E. Riccobene, P. Scandurra. MSL: A pattern language for engineering self-adaptive systems. In Journal of Systems and Software, Volume 164, 2020 [doi]

P. Arcaini, R. Mirandola, E. Riccobene, P. Scandurra. A Pattern-oriented Design Framework for Self-adaptive Software Systems. In ICSA 2019 Companion Proceedings. [doi]

msl's People

Contributors

federixender avatar parcaini avatar scandurra avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.