vSphere Web Services SDK 简介
VMware vSphere® Web Services SDK 包含了与VMware vSphere API一起工作所需的所有组件,如 WSDL files、sample code 和 相关 libraries。
该 SDK 方便了使用VMware vSphere API 进行客户端应用的开发。
通过vSphere Web Services SDK,可以开发出管理、监控、维护VMware vSphere 的客户端应用,就像部署在VMware vSphere ESX、ESXi和VMware vCenter服务器系统上一样。
这个主题包括以下内容
-
使用vSphere Web Services SDK 应具备的知识
-
vSphere Web Services SDK 支持的编程语言
-
通过该 SDK 可以 build 的应用类型
-
vSphere Web Services SDK 包内容
-
SDK Versions 和 VMware vSphere 产品兼容性
使用 vSphere Web Services SDK 应具备的知识
使用vSphere Web Services SDK 开发应用需要了解Java、C# 或其他编程语言相关知识。同时,需要了解以下Web Services编程概念:
-
Web Services 在客户端应用程序的上下文(context)中提供各种操作,即方法,通过 vSphere Web Services SDK 结合所选择的编程语言,你可以开发出调用这些方法去执行服务器端所有的管理和监控任务的客户端应用。
-
Web services API 在 WSDL (Web Services Description Language,Web Services 描述语言) 文件中定义,客户端web服务实用程序使用 WSDL 文件来创建客户端应用程序与服务器交互的代理代码(存根)。
-
客户端应用通过调用代理接口来调用这些方法,并将方法调用编码到一个SOAP消息中,并将其发送到服务器。其中SOAP(Simple Object Access Protocol,简单对象访问协议)是一种xml格式的编程语言,SOAP 消息传输对于开发者是透明的。
-
客户端和服务器的通信建立在 HTTP 或者 HTTPS 协议上。HTTPS 是一种安全的HTTP形式,它使用 SSL 来对客户机-服务器通信进行加密。默认情况下是用 HTTPS,但是可以配置 VMware vSphere Web 服务器以支持 HTTP 方式。(请参阅HTTP的端点配置)
vSphere Web Services SDK 支持的编程语言
vSphere API 是基于 Web services 的,所以你可以使用任何提供了从 Web-services WSDL 文件生成客户端存根工具的编程语言或脚本。
vSphere Web Services SDK package 包含用 Java 和 C#开发的客户端应用案例,SOAP 工具包适用于这两种编程语言。
请查阅 vSphere Web Services SDK Package Contents,以了解更多打包细节,以及关于Java示例、针对JDK的特定版本要求、XML Web 服务库的Java API和 JAX-WS 库的一些说明。
客户机应用程序开发的语言和工具
通过该 SDK 可以 build 的应用类型
可以使用 vSphere Web Services SDK 开发VMware vSphere系统的系统管理、配置和监视应用程序。
VMware vSphere 客户端应用程序和VMware vSphere Web Access 是使用 vSphere API 开发的两个客户端应用程序案例。
vSphere Client 是一个传统的Windows客户端应用程序。
Web Access 是一个浏览器插件,可以通过 ESX、ESXi 和 vCenter Server 系统上的Web服务器端口进行访问。
使用 vSphere Web Services SDK,你可以创建与虚拟基础设施管理和操作相关的自动化管理、配置或监控任务任务的客户端应用。
下面的示例可以使用 vSphere Web Services API 实现自动化的操作任务:
-
明确地创建、配置、开断电源或虚拟机挂起,或使用概要文件或模板,以促进虚拟机更快的启用
-
创建、配置、管理虚拟设备,如虚拟 CD-DVD 驱动器、虚拟网络接口卡、虚拟交换机和其他组件
-
连接、开断电源、断开ESX和ESXi主机系统
-
捕获虚拟机的状态作为快照,并从快照中恢复虚拟机的状态,例如在一个备份应用中
-
收集主机系统和虚拟机性能的统计信息
-
管理由服务器生成的事件,如针对特定阈值设置的警报所创建的事件
-
在主机间自动迁移虚拟机
-
通过分布式资源调度(VMware DRS)和高可用性(VMware HA)子系统来管理负载均衡和失效备援。VMware DRS 和VMware HA 都需要 vCenter 服务器。
这一列表并非涵盖所有自动化任务。另外,一些操作与整个服务有关,而不是特定的主机或虚拟机。例如,负载均衡是一个服务范围的操作,而不是一个主机或虚拟机的操作。
vSphere Web Services SDK Package 的内容
vSphere Web Services SDK 是一个包含以下项目的包:
-
定义了 VMware vSphere 服务器(ESX、ESXi 和 vCenter 服务器) Web服务上可用的API 的WSDL文件。
-
从WSDL生成的预编译客户端库(vim.jar、vim25.jar)可用于测试目的,vSphere Web Services API 被打包在 vim25.jar中。在 SDK\vsphere-ws\wsdl\vim25子目录中可以找到。
-
示例代码展示了与管理虚拟基础设施相关的常见用例。示例代码包括编译后及可运行的Java类文件,以及 Java 和 C# 源代码文件。(对于 C# 开发者来说,Microsoft Visual Studio 工程文件(.sln)包括在内)。
注:预编译的Java示例(samples.jar)是用JDK 1.7从Java API为J2SE 7.0中的XML Web服务(jax-ws)库生成的存根编译的,并且只工作于这些特定版本的Java和jax-ws。要使用不同版本的Java或不同的客户端Web服务库,需要用脚本重新编译示例代码。
-
批处理文件和shell脚本(build.bat 和 build.sh)为Java和cclient应用程序自动构建过程。
-
批处理文件和shell脚本(run.bat 和 run.sh)便于从Windows命令提示符中运行Java示例。
-
vSphere API 引用提供了关于 VMware vSphere API 和对象模型的语言无关的描述信息,例如对象类型定义、属性和方法签名。
SDK 版本和 VMware vSphere 产品兼容性
VMware 发布了SDK产品以支持 VMware vSphere 产品家族各种版本。你可以使用VMware vSphere Web Services SDK 6.5 和
VMware vSphere servers 之前的各版本及其前身 VMware 基础架构,包括:
■ ESX/ESXi 6.0, 5.5, 5.1, and 5.0
■ ESX/ESXi 4.1 and 4.0
■ ESX/ESXi 3.5 Update 5
■ vCenter Server 6.0, 5.5, 5.1, 5.0, 4.1, 4.0
■ VirtualCenter Server 2.5 Update 5
使用适当的 WSDL 文件可支持所有的版本,如下:
■ SDK\vsphere-ws\wsdl\vim25 包含 和 ESXi 5、ESX/ESXi 4、 vCenter Server 5、vCenter Server 4、ESX 3.5及Virtual Center 2.5系统一起使用的 WSDL 文件 。在vSphere 4.1中,vSphere API WSDL定义被分成几个文件。支持向后兼容是因为两个WSDL配置(vim25和vim目录)都使用一个名称相同的(vimservice.WSDL)顶级文件。
VMware vSphere API 是一个运行在 VMware vSphere 服务器上的Web服务,包括ESX、ESXi和vCenter Server。
在所有产品中暴露的API都是相同的。但是,vCenter服务器提供以下的功能通过ESX或ESXi Web服务是无法提供的 :
■ 收集历史性能数据
■ 优化资源,包括分布式资源管理
■ 利用 VMware vMotion 跨主机迁移
■ 提供分布式资源管理,包括恢复,跨其控制下的所有主机系统
如果你试着在ESX或ESXi系统上调用一个仅vCenter Server上支持的操作,服务器将返回“没实现的”或“不支持的”错误,该错误表示没有实现或不支持。
例如,ExtensionManager API仅在VirtualCenter Server 2.5 和vCenter Server 的后续版本中可用。如果试着向ESX系统注册一个扩展,会返回一个“不支持”错误。
原文:
VMware vSphere 6.5 Documentation Center:About the vSphere Web Services SDK