The vSphere SDK provides a set of APIs that you can use to register extensions with vCenter Server. To develop vSphere extensions, the most important object in the vSphere Extension API is the ExtensionManager managed object.
Use the ExtensionManager managed object in your vCenter Server instance to register a new extension. Extensions can add new objects to the vCenter inventory. Extensions define tasks, events, and faults that relate to actions that the solution performs on the objects, the events that occur in the extension, and the problems that the objects encounter. You can also use ExtensionManager to add user interface elements to the vSphere Client to allow users to interact with the objects that your extension provides to vCenter Server.
vCenter Server extensions can have both a client and a server component, or they can consist of just a client component or just a server component. Each instance of an extension is represented by an Extension data object.
You can indicate that an extension manages the virtual machines or vApps that it creates by setting the managedBy property in the ManagedEntityInfo data object for that virtual machine or vApp. When you register an extension with vCenter Server, you can define an icon that represents the virtual machines that the extension manages. Virtual machines that an extension manages display the icon that you define in the inventory of virtual machines in the vSphere Client. The vCenter Server shows a warning if users try to perform manual operations on a virtual machine or vApp that the extension manages.
ExtensionManager adds data objects to the vSphere Extension APIs that integrate extensions as vCenter solutions that you can manage.
For information about how to develop vSphere Client extensions, see the Developing Remote Plug-ins with the vSphere Client SDK documentation.
For information about developing vSphere applications, see the vSphere Web Services SDK Programming Guide and the VMware vSphere API Reference documentation.