In the Cloud4E project a platform was developed that allows the provisioning of simulation tools in form of services over the cloud. As usual in cloud environments, the simulations are running in virtual machines (VMs) and the end user has no access to the physical resources of the cloud. For the deployment and control of services the open standards OCCI (Open Cloud Computing Interface) and AMQP (Advanced Message Queuing Protocol) are used. This ensures the portability of the platform and the services developed for it, avoids vendor lock-ins and enables the usage of federated clouds. AMQP and OCCI is used in the Cloud4E for the communication between clients and services as well as for the communication among services. An overview over the Cloud4E platform can be seen in the following figure.
In the platform the rOCCI-Server is used as OCCI server together with its correspondig client library. An OCCI Service Adapter, developed in the project, provides an OCCI interface to a simulation software in form of OCCI actions and OCCI attributes. In a Ruby class, called Service Connector, the actions and attributes of the interface are defined in a domain-specific language and the actions are implemented in form of conventional Ruby methods. With help of a library provided by the OCCI Service Adapter, a client can query an description of the interface from the rOCCI server and can control the service over the actions and attributes of the interface. In the project a generic graphical client, as it can be seen in the following screenshot, was implemented.
The in- and output data of the simulations are stored encrypted in an object store, which is accessible over the interface CDSTAR. Inside of virtual machines the data can be shared over a file system like SSHFS. Additionally an encrypted file system like EncFS can be employed to ensure that the data is not stored unencrypted inside of VMs.
For the logging AMQP is used. The services can send log messages over AMQP with help of the OCCI Service Adapters’s API. The messages can be received by multiple consumers. For the receipt, the processing, storage and analysis of the messages the open source tool Logstash can be used.
The following figure shows the complete workflow of a simulation in the cloud from the view of the end user: