Extend Kevoree to deploy code for a new platform
HEADS is not specific to any runtime platform. The platform expert is responsible for adding support to deploy code to a new platform.
Kevoree currently supports 2 platforms:
- JVM-based
ThingML can generate Java code and automatically wrap it into components that can be managed by Kevoree - JavaScript-based
See here how you can create your own component, built it and deploy it
The following are the guidelines on how to integrate a new target platform for Kevoree.
Introduction
As you know Kevoree is a multiplatform distributed model tool.
Two platforms are currently maintained :
One is currently in development :
Each of those platforms are based on the same concepts and are split in the same way.
In the rest of this chapter we will detail the architecture of an implentation of the Kevoree runtime. It aims to be useful if you want to write Kevoree in another language (python, haskell, ruby, erlang, you name it) but will be based on our experience with Java, JavaScript and C#.
Global architecture
This picture shows the different parts involved in a Kevoree platfom:
Components
- Generalities: A few cross platform advices
- Kevoree Model: How to port Kevoree's data model to your platform
- Remote code loader: How to load remote code in your runtime
- Kevoree Model generation: How to quickly obtain a kevoree model code base
- Core: The Model@Runtime conductor
- Generate instances of the Kevoree Metamodel: How to quickly obtain a kevoree model code base
- Registry client: A simple REST client for the registry
- Code generator: How to generate a Component project from a Type Definition.
- KevScript tool: Reading kevscript, generating valid kevscript...
- Runtime: A Bootstrap is a runtime tool dedicated to the startup of a node instance
- Kevoree's components:
- Useful development tools:
- Local kevoree registry:
- Java project : https://github.com/kevoree/kevoree-registry
- Docker container : https://github.com/kevoree/docker-image-registry-replica (clone the official registry by default)
- Local kevoree editor:
- Node project : https://github.com/kevoree/kevoree-web-editor
- Docker container : https://github.com/kevoree/docker-image-editor
- Local kevoree registry: