This is the master repository for the CloudOpting platform orchestrator
This is a Spring Boot application subdivided into different modules
The following tables explains the modules and the subdivision
component | codename | scope | interface documentation |
---|---|---|---|
bpmn-component | This component contains the BPMN engine, the processes and the related classes of the Activiti BPMN engine | ||
cloud-component | This component contains the classes that interact with the cloud environment and use the JClouds library | ||
database-component | This component contains the classes to save entities on the database, that will be PostgreSQL | ||
docker-component | This component contains the classes to talk REST to the python component that interact with docker (NOTE: the docker python component will be in a separate repository from this one) | ||
rest-component | This component contains the Spring Boot REST entrypoint for all the platform features | ||
storage-component | This component contains the jackrabbit classes to help manage the storage of files | ||
tosca-component | This component contains the TOSCA parser thsat manages all the interactions with the TOSCA world | ||
wordpress-component | This component contains the code necessary to interact through API with wordpress for the public view of the catalogue |
The following description helps setting up a CentOS 7 development environment.
Java 1.8 is needed (OpenJDK can work for the moment, no quirks have discovered to require SUN java)
yum install java-1.8.0-openjdk-devel
In this way you get JDK and not only JRE.
Is adviced to start from Sprint Tool Suite environment, but if preferred also a simple eclipse environment can do the job (you have to install the STS plugin yourselves: Here is a list of useful plugin is adviced to have installed in the Eclipse environment:
With Eclipse you will than import the GitHub repository:
Now is time to import the project using maven import
Prepare the run configuration as in the image below, this this configuration you will build the whole project to be able to check the working of the modifiers done
Requires docker and docker-compose.
Build the war file (in the Dockerfile folder):
./build-war.sh
To deploy the development environment:
docker-compose -f prod-compose.yml up
To deploy the production environment:
docker-compose -f dev-compose.yml up
The workflow that a Service Provider has to follow to publish a Service in the platform is represented in BPMN notation in the following picture
The workflow below explains the deployment process the is run by the Activiti engine
The overall architecture of the system is defined in the diagram below
As can be seen there is a core component represente by the CloudOpting manager that is the element implemented in this repository.
This application is coded in java.
The framework used is Spring and in particular Sprint-boot since it is a headless application.
It has a BPMN engine embedded, and the project opted for Activiti
Other libraries used are: