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 -Uat the root of the project
Help -> Install New Software -> Add- Fill the field
NamewithCyprIoT - Paste in the
Locationfield this URL :https://www.atlanmod.org/updates/cypriot/snapshot/then hitAdd - Choose
CyprIoT Featurethen hitNextand 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 cleanthenMaven install
- Open Notepad++
Language -> Define your language... -> Import, then select the filecypriot-notepad++.xmlprovided in this repository- Open any file with
.cyextension to have syntax highlighting for CyprIoT
- Right-Click on
org.atlanmod.cypriotpackage - Hit
Run As -> Eclipse Application - Create or open a
.cyfile, 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 -> RefreshorRight-Click -> Maven -> Update Project... -> OK - If the
.pomfile shows an error on<packaging>eclipse-plugin</packaging>, hover the error then click onDiscover new m2e connectors -> Auto Selectthen 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

