----------------------------------------------------------------------------------------------------------------------------
VMWare 为开发者提供了各种 SDK 以方便定制化管理 vSphere。这些 SDK 包括 vSphere Web Servicess SDK、vSphere Storage management SDK、CIM(Common Information Model)SDK、vSphere SDK for Perl、PowerCLI 等等。其中 vSphere Web Servicess SDK 是最常用的,它提供了针对 ESX/ESXi 以及 vCenter 的管理接口。目前最新的 vSphere Web Servicess SDK 版本为 6.0,可以向下兼容。vSphere Web Servicess SDK 提供了 Web Servicess 的 stub 文件,而且还包含了 Java 和 C# 的程序用例和很详细的 API 说明文档。所有的 SDK 相关材料均可从 VMWare官方网站上免费下载。 1.理解 vSphere API
vSphere API 以标准 Web Services 方式实现,遵守 Web Servicess Interoperability Organization (WS-I) Basic Profile 1.0 标准,即支持 XML schema 1.0、SOAP 1.1 以及 WSDL1.1。用户可以像调用普通 Web Services 那样调用 vSphere API 来访问位于 ESX/ESXi 以及 vCenter 中的组件和服务。vSphere API 提供了几乎所有的针对 ESX/ESXi 以及 vCenter 的管理接口,比如生命周期管理、虚拟机以及网络和存储等资源的管理和监控功能等。
使用 vSphere API 开发的客户端同 vSphere 服务器端组成了一个分布式的系统,它们之间使用异步通信方式进行同步。为了理解这个客户端 - 服务器端的结构,必须清楚以下三个概念:
- Managed Object(MO,被管对象 ) 存在于服务器端(即 ESX/ESXi 以及 vCenter 中),代表了 vSphere 的服务(services)和组件(components)。服务包括 PropertyCollector, SearchIndex、PerformanceManager 和 ViewManager 等,组件包括 VirtualMachine、Datastore 和 Folder 等。
- Managed Object Reference(MOR,被管对象引用 ) 存在于客户端,每一个 MOR 都指向服务器端的 MO。客户端程序可以引用 MOR 来调用服务器端 MO 的方法。在每一个 MO 的生命周期中,其 MOR 都是唯一的并且是持久化(persistent)的,这意味着其 MOR 在生命周期中都是不变的,比如即使重新启动 server,其 MOR 仍然不变。
- Data Objects(数据对象)封装了 MO 的数据信息。客户端通过 Data Object 发送请求给服务器端,又从服务器端接受 Data Object 来得到 MO 的状态等。
图 2. vSphere Server and Client