vSphere Client-Server
Architecture
VMware vSphere client applications
participate in a distributed architecture that uses an asynchronous
communications model. This architecture is based on server-side managed
objects, client-side managed object references, and data objects.
- Managed objects exist on a vSphere server (ESXi or vCenter Server systems). They represent vSphere services and components. Services includePropertyCollector,SearchIndex,PerformanceManager, andViewManager. Components include inventory objects such asVirtualMachine,Datastore, andFolder.
- Managed object references are client application references to server-side managed objects. Your client application usesManagedObjectReferenceobjects when it invokes operations on a server. AManagedObjectReferenceis guaranteed to be unique and persistent during an object's lifetime. The reference persists after an object has moved within the inventory, across sessions, and across server restarts. If you remove an object, for example, a virtual machine, from the inventory, and then put it back, the reference changes.
- Data objects contain information about managed objects. Your client application sends data objects to and receives data objects from a vSphere server. Examples are the different specification and capability objects such asVirtualMachineConfigSpecandHostCapability.
Figure 1
shows a vSphere server and client application. The client has a managed object
reference to a virtual machine on the server, and a copy of the
GuestInfo
data object for the
virtual machine. A client must maintain its copy of a data object because,
depending on the type of client request, a vSphere server might send property
data for a data object as a set of name-value pairs associated with a managed
object reference. See the description of the
ObjectContent
data object in the
vSphere API Reference
.
vSphere Server and Client

The VMware vSphere application model uses an asynchronous client-server
communication model in most cases. Methods are nonblocking and return a reference to a
Task
managed object. For more information
about this managed object, see Tasks and Scheduled Tasks.