CyprIoT is a tool to compose a network of things using Model-Driven engineering techniques. It consists of a Domain-Specific language (DSL) that enables designing the network, and a code generator to produce the deployable code of your network.
- Model a network of heterogeneous devices using a DSL, formalized using Xtext here
- Generate working code of the network from the model
- Specify and enforce a policy into the network
language
: Provides the langugage grammargenerator
: Code generatorexamples
: Few examples
- Device modeling has to be done using ThingML. The configuration should have one external port. The latter will be overriden by the protocol specified in the network configuration.
- Maven 3.5+
- Eclipse Modeling Tools Oxygen or newer
- Xtext 2.14+
- Maven integration for Eclipse 1.5+
- ThingML for Eclipse
- Clone the project
git clone https://github.com/atlanmod/CyprIoT.git
- Run
mvn clean install -U
at the root of the project
Help -> Install New Software -> Add
- Fill the field
Name
withCyprIoT
- Paste in the
Location
field this URL :https://www.atlanmod.org/updates/cypriot/snapshot/
then hitAdd
- Choose
CyprIoT Feature
then hitNext
and complete the installation procedure
- Import as a maven project in Eclipse
File -> Import -> Maven -> Existing Maven Projects -> Choose the cloned repository
, if you have already cloned the repo OR File -> Import -> Git -> Projects from Git -> Clone URI
, then complete the procedure- At the root of the project
Right-Click -> Run As -> Maven clean
thenMaven install
- Open Notepad++
Language -> Define your language... -> Import
, then select the filecypriot-notepad++.xml
provided in this repository- Open any file with
.cy
extension to have syntax highlighting for CyprIoT
- Right-Click on
org.atlanmod.cypriot
package - Hit
Run As -> Eclipse Application
- Create or open a
.cy
file, enjoy network modeling !
To run some examples of the language :
- Import the folder
examples
- To be continued
- If you still see errors after the import, try
Right-Click -> Refresh
orRight-Click -> Maven -> Update Project... -> OK
- If the
.pom
file shows an error on<packaging>eclipse-plugin</packaging>
, hover the error then click onDiscover new m2e connectors -> Auto Select
then install the required connectors and restart
-
A Model-Driven Approach to Unravel the Interoperability Problem of the Internet of Things. Berrouyne I, Adda M, Mottu JM, Royer JC, Tisi M. InProceedings of Advanced Information Networking and Applications 2020 Apr 15, Springer
-
CyprIoT: framework for modelling and controlling network-based IoT applications. Berrouyne I, Adda M, Mottu JM, Royer JC, Tisi M. InProceedings of the 34th ACM/SIGAPP Symposium on Applied Computing 2019 Apr 8 (pp. 832-841). ACM.
-
Towards Model-Based Communication Control for the Internet of Things. Berrouyne I, Adda M, Mottu JM, Royer JC, Tisi M. InFederation of International Conferences on Software Technologies: Applications and Foundations 2018 Jun 25 (pp. 644-655). Springer, Cham.
- imberium