A suitable application programming interface (API) is another enabler for the cloud computing services delivery model (see Figure 1 ). APIs empower users by enabling features such as self-provisioning and programmatic control of cloud services and resources. Depending on the type of cloud services delivery model (SPI), an API can manifest in different forms, ranging from simple URL manipulations to advanced SOA-like programming models. APIs also help to exploit the full potential of cloud computing and mask the complexity involved in extending existing IT management processes and practices to cloud services.
For example, Sun's cloud specification of the Sun Cloud API includes:
- Common behaviors that apply across all requests and responses
- Resource models, which describe the JSON data structures used in requests and responses
- Requests that may be sent to resources, and the responses expected
All *aas developers need to become familiar with specific APIs to deploy and manage software modules to the *aas platform. Saas services typically do not offer APIs other than for basic export and import functionality using browsers or scripts that use HTTP(S) and web URI manipulation methods.
Today, one of the key challenges that cloud customers face is the fact that each CSP has a unique API. As a result, cloud applications are not portable across clouds, and it is very difficult to achieve interoperability among applications running across clouds (including your private cloud). Since APIs are unique to a cloud service, architects, developers, and data center staff members must become familiar with platform-specific features.
Although there is no cloud API standard, standardization efforts are mushrooming and are driven by vendor as well as user communities. One such effort is Universal Cloud Interface (UCI), an attempt to create an open and standardized cloud interface for the unification of various cloud APIs.
It is also important to realize that market incentives for CSPs are geared toward locking their customers into their cloud offerings. This may make easy interoperability difficult to achieve.