A vSphere solution must register with vCenter Server as an extension. If you register a solution with vCenter Server, you can mark virtual machines as belonging to that solution, and integrate it with Solutions Manager and with ESX Agent Manager.

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.

An extension can define events, tasks, faults, and privileges for performing operations on the objects that the solution exposes to vCenter Server, or on existing vCenter Server objects.

Events inform users about occurrences in the solution.

Tasks are operations that the extension performs.

Faults signal errors in the extension to the end users.

Privileges define which users or user groups can access the objects in the extension and perform tasks on them.

Solutions typically include Web pages that appear in Solutions Manager as tabs that are specific to the solution. You can use the features on the tabs to configure the solution and to manage the objects that the solution exposes in Solutions Manager.

An extension is typically a Web application that runs in an application server or a script that vCenter Server accesses through a URL. You can implement the Web server features by using any of the following programming languages.

Java Servlets or Java Server Pages (JSP)

Microsoft Active Server Pages (ASP.NET)

Common Gateway Interface (CGI) scripting

Static or dynamic HTML pages

For example, the EAM Sample Solution uses Java, the Spring Framework, and WSDL to implement its Web application, that it exposes by using the vFabric tc Server.

An extension performs the following types of tasks:

Establishes the connection to vCenter Server.

Registers the extension with ExtensionManager.

Deploys virtual machines or vApps by using Open Virtualization Format (OVF).

Deploys VMkernel modules or ESX applications as vSphere Installation Bundles (VIB).

Exposes the functions of the product that the extension integrates into vCenter Server.

Provides a user interface to access, configure, and use the extension.

To integrate an extension as a solution with Solutions Manager, the solution must be a valid extension and it must implement the Extension.shownInSolutionsManager property. The solution can also provide information about itself to vCenter Server in the ExtSolutionManagerInfo object.

The requirements for integrating a solution with ESX Agent Manager are slightly more restrictive than for integrating with Solutions Manager. For information about requirements, see Integrating Solutions with vSphere ESX Agent Manager.

For information about how to develop vSphere client extensions, see the VMware vSphere Client Plugins Documentation at https://www.vmware.com/support/developer/vc-sdk/vcplugin/.

For information about developing vSphere applications, see the vSphere Web Services SDK Programming Guide and the VMware vSphere API Reference in the vSphere SDK Documentation Center at https://www.vmware.com/support/developer/vc-sdk/.

The vSphere API contains objects that are key for developing extensions and for integrating the extensions with Solutions Manager.