The service layer contains several providers from VMware and you can extend it with custom providers that you create in Java. Custom providers collect and package data used either by custom user interface components or by existing user interface components.

Flex components in the user interface layer can use a Flex library called the Data Access Manager to communicate with the Data Service in the service layer. The Data Access Manager library is included with the vSphere Web Client SDK. See Creating Data View Extensions.

HTML components in the vSphere Client user interface layer communicate with a controller service in the service layer by using REST APIs. The controller service can use the Data Service or the vSphere Web Services API to access data about vSphere objects, or extend the Data Service to access objects outside vSphere. The controller service can also use other custom or third-party services to access objects outside vSphere.

You can extend the Data Service to process queries for new data sources. The new data can come from other sources inside the vSphere environment, such as specific ESXi hosts, or from external data sources. When you extend the Data Service, your extensions in the user interface layer can communicate with new data sources by using the existing methods and libraries, such as the Data Access Manager.

You extend the Data Service by creating a Java service called a Data Service Adapter. A Data Service Adapter can either retrieve new properties for existing vSphere objects, or it can retrieve information from new custom objects. You must create different types of Data Service Adapters, depending on whether your environment adds new data to existing vSphere objects, or adds custom objects to the virtual infrastructure.

You can create custom Java services to work with your UI components. These custom Java services are typically used for performing action operations that make changes to the vSphere environment. Custom Java services are generally used as pass-throughs to back-end processes or external data sources.

Note

A best practice is to limit your Java service to dispatching requests from the vSphere Web Client and the vSphere Client, without passing on requests to other services. You can implement extensive or resource-intensive logic on your own external server.