Friday, October 22, 2010

Introduction to vCloud API

As many of you, who are keeping track of cloud space and in particular Vmware offering, are aware that Vmware released vCloud API. Vmware vCloud Director implements the version 1.0 of the vCloud API. Since the release Vmware has also released SDK in Java, C# and PHP. Since I am involved with the API and SDK for some time let’s take our first steps for embracing the vCloud API.

Instead of writing the programming guide which available here along with few others documents
vCloud API is REST based API. The three main tenets of any API are the Object Mode, Interfaces and the Protocol.  As you know the API being REST based presents the Object Model as the REST resources which carry small set of fixed methods. The REST lends its personality of ‘Many nouns and few verbs’ to this API as well.  In this posts let me just introduce you the Object or resource model in using UML.

Basically the vCloud API has 3 parts: User API, Admin API and Extension API
User API is focused on the self provisioning for the end user and exposes the pure virtual resources such as vApp, vApp Templates, Catalogs, Organization and so forth. Although it allows access to objects such Organization, vDC it does not allow any administrative functions on these objects to create or delete them. This is left to the Admin API which is geared more towards the System or Organization administrators. Finally the Extension API is based on the extensibility framework of the vCloud API that allows access to different system mainly for the purpose of the administration.
 

vCloud Director 1.0 provides Admin API extensions that provides information about the underlying vSphere platform entities(Not all of them but the significant ones of the interest of the cloud administrator) .


Following UML diagram shows the resources participating in User API. The resources marked in colored boxes cannot be modified using the User API.



The following UML diagram shows the resources participating in the Admin API. Note that a user logging in with Administrative privileges always gets enhanced view of the resource such as Organization, vDC etc. The actual type they get back is AdminOrg, AdminVdc and so forth.

















The Extension API uses the extensibility framework to extend the vCloud API capability to let access the objects from underlying vShpere infrastructure. This is implemented in vCloud Director Product. Any vendor implementing the vCloud API on platform other than vSphere can chose to expose the data model of the underlying platform or integrated systems using these Admin API. We will focus on the extension API available in vCloud Director and the following UML shows how it crosses the boundaries to relate to the vShpere objects.


In subsequent blogs we will address the other two tenets of the API namely interfaces and the protocol.

1 comment:

  1. Migrate your existing application into the Cloud quickly and easily.We are using hybrid cloud environment in our technology.

    ReplyDelete