The abstraction layers could also make interoperability between providers from the view of users and enables opportunities for creating optimization (substituting, brokering) for users/consumers.
Technically, we implement high-level abstraction layers between developers/users and clouds with operating support for managing resources from the cloud systems.
The purposes of the abstraction layers are as follows:
Interoperability: Applications and user' scripts developed in the abstraction layers will work for different cloud middleware from different providers;
Optimization: The abstraction layers will allow optimization mechanisms like brokering, substitutions, load balancing and so on.
The abstraction layers rely on object-oriented approach to abstract computing resources.
Based on object-oriented approach, the basic instance layer allows inheritance in order to help developers create new abstraction layers upon it.
The developers also can go further in the use of abstraction layers to deploy appliances that are linked to the available database (e.
Besides simplifying the process of developing, deploying and using services, through abstraction layers, developers also are welcome to design complex systems such as cluster, HadoopCluster, PBSCluster etc.
The abstraction layers are independently developed, not require support from underlying infrastructures.