mOSAIC is a European project supported by the European union [Dan10]. The target of the project was to build a unified Application programing interface (API) for Cloud services that is not only available in Java but also for other languages. mOSAIC is platform and language agnostic. It supports a large number of platforms for this approach. The mOSAIC framework itself is a middleware that runs on top of each cloud provider and abstracts provider specifics. The platform then exposes it’s own API to clients.
The mOSAIC project is built in a layered architecture. On the lowest level, there is the native API or protocol. This is either a ReST, SOAP, RPC or a language-specific library. On the next level, a driver API is found. This API can now be exchanged easily with different platforms such as Amazon’s S3. On top of that is an interoperability-API that allows programming language interoperability. Cloud resources can be access via the connector API. This is also the entry-point for developers, as they access specific models and resources from that API. On top of the connector API is a cloudlet that provides a cloud compliant programming methodology.
Frascati-based Multi PaaS Solution
Frascati is an infrastructure solution that runs on 11 different cloud solutions: Amazon EC2, Amazon Elastic Beanstalk, BitNami, CloudBees, Cloud Foundry, Dot-Cloud, Google App Engine, Heroku, InstaCompute, Jelastic, and OpenShift [Par12].
Frascati follows 3 core principles: An open service model, a configurable Multi-PaaS infrastructure and several infrastructure services. The open service model is an assembly of loosely coupled services based on a Service oriented Architecture. The configurable federated Multi-PaaS Infrastructure is a configurable kernel. Infrastructure services take care of the node provisioning, the deployment of the PaaS service, the deployment of the SaaS service and a federation management service. The Frascati services are installed on top of existing IaaS-services. To work with these services, it is necessary to have access to virtual machines (either Linux or Windows).