Giter Club home page Giter Club logo

montithings's Introduction

MontiThings Core Project

Ubuntu workflow Windows workflow macOS workflow

© https://github.com/MontiCore/monticore; Contact: Christian Kirchhof

The MontiThings Core repository contains everything related to the common basis of the MontiThings architecture description, a MontiArc-based architecture description language for rapid prototyping of Internet of Things applications.

In MontiArc, architectures are described as component and connector systems in which autonomously acting components perform computations. Communication between components is regulated by connectors between the components’ interfaces, which are stable and build up by typed, directed ports. Components are either atomic or composed of connected subcomponents. Atomic components yield behavior descriptions in the form of embedded time-synchronous port automata, or via integration of handcrafted code. For composed components the behavior emerges from the behavior of their subcomponents.

While MontiArc generates code for simulations, MontiThings generates code to be executed on real devices.

drawing

MontiThings takes models and handwritten code from its users together with a control script. MontiThings uses these elements to generate a C++ project including various scripts, e.g., for building the project, or packaging it in Docker images.

Installation

This section describes some of the many possible ways to use MontiThings. For the purpose of this tutorial, you can choose between the following options:

  1. a native installation on your machine (install instructions)
  2. an installation in a virtual machine of the Microsoft Azure Cloud (install instructions)
  3. using MontiThings' Docker containers to avoid an installation (install instructions)
  4. using an online IDE by clicking this button (you will need to sign in with your GitHub account to Gitpod):
    Open in Gitpod

Building and Running Your First Application

This sections guides you through building and executing your first application. We will use the example under applications/basic-input-output. It consists of only three components, with the main purpose of showcasing the MontiThings build process. The Example component contains two subcomponents. The Source component produces values, the Sink component consumes these values and displays them on the terminal.

drawing

We support four ways of building an application:

  1. Using the command line (instructions)
  2. Using the CLion IDE (instructions)
  3. Using Docker (instructions)
  4. Using MontiThings' command line tool (instructions)

FAQs

Here you can find answers to the most frequently asked questions building and using MontiThings.

Reference

Please cite MontiThings using it's publication in the Journal of Systems and Software (Free Preprint Link).

Jörg Christian Kirchhof, Bernhard Rumpe, David Schmalzing, Andreas Wortmann, MontiThings: Model-Driven Development and Deployment of Reliable IoT Applications, In: W.K. Chan, editor, Journal of Systems and Software (JSS), Volume 183, January 2022, 111087, Elsevier, https://doi.org/10.1016/j.jss.2021.111087.

@article{KRS+22,
  key       = {KRS+22},
  title     = {{MontiThings: Model-driven Development and Deployment of Reliable IoT Applications}},
  author    = {Kirchhof, J\"{o}rg Christian and Rumpe, Bernhard and Schmalzing, David and Wortmann, Andreas},
  editor    = {Chan, Wing-Kwong},
  year      = 2022,
  month     = {January},
  journal   = {{Journal of Systems and Software}},
  publisher = {Elsevier},
  volume    = 183,
  pages     = 111087,
  doi       = {https://doi.org/10.1016/j.jss.2021.111087},
  issn      = {0164-1212},
  url       = {http://www.se-rwth.de/publications/MontiThings-Model-driven-Development-and-Deployment-of-Reliable-IoT-Applications.pdf},
  keywords  = {Internet of Things, Model-driven engineering, Architecture modeling, Code generation, Deployment}
}

License

© https://github.com/MontiCore/monticore

For details on the MontiCore 3-Level License model, visit https://github.com/MontiCore/monticore/blob/dev/00.org/Licenses/LICENSE-MONTICORE-3-LEVEL.md

Further Information

montithings's People

Contributors

kirchhof avatar jeromepfeiffer avatar luigima avatar tretum avatar jfuerste avatar akleiss avatar awortmann avatar jjkhub avatar manuelpuetzer avatar ironmaya avatar codeguhl avatar heimrobert avatar julius-gummersbach avatar schmalzing avatar stocc avatar butting avatar alexanderlipatov avatar kirchhof-test avatar danielvonmirbach avatar hoelldobler avatar rumpe avatar ahellwig avatar kasumigaokautaha avatar se-cibuild avatar lazyseals avatar n-jansen avatar dienstknecht 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.