Communications with the Service
Layer
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.
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.
A best practice is to
limit your Java service to dispatching requests from the
vSphere Client
,
without passing on requests to other services. You can implement extensive or
resource-intensive logic on your own external server.