A programmatic approach to VMware solutions: Part 1

This is the first of a series of planned blogs pertaining to the use of the VMware SDK APIs to seamlessly exploit VMware ESX Server services programmatically.
This is the result of the experience that I have gained by working on a live project to provide VMware support to an existing Java-based enterprise software product.
An early disclaimer is highly in order: All these examples are idiomatic and do not relate to the actual code used in the aformentioned product. Phew! Now that we have got that out of our chest, let’s proceed onto the meat of the matter directly.

The roadmap of this tutorials series is roughly sketched out as follows:

Part 1Introduction to VMware and definition of the scope of the tutorial.

Part 2The VMware ESX server service exposed as a web-service, brief discussion of the WSDL file, generation of the required JAR files for the Java client.

Part 3Introductory code samples – logging on to the VMware ESX server, connecting and verification of session.

Part 4 In depth discussion of Raw LUNs and VMFS disks and their applications in industry. Technical differences and varied approach in code.

Part 5 In depth discussion of the VMware ESX Server SDK.

Part 6 Continued discussion on the VMware ESX Server SDK.

Part 7 Concluding session on the VMware ESX Server SDK.

Part 8Operations on the Virtual Machine -code samples.

Part 9 Operations on the ESX Server (Host) – code samples.

Part 10Operations using the VMware SDK APIs specifically for the Storage domain – code samples.

Part 11Threading, concurrency and gotchas while using integrating the VMware programs with existing products.

Alright, so that is pretty much the road ahead. More sessions can be charted out based on feedback. Any specific operations can be discussed in-depth in future blogs.

Introduction to VMware:

VMware is a virtualization software which basically comes in two flavors – desktop and enterprise. In this tutorial series, I will be dealing with the enterprise server solution – VMware ESX Server and how to write programs to access the services provided by the server, which can be integrated with enterprise solutions. I will be using Java as the client language throughout this tutorial. This is not a series where the internal details/ performance statistics et cetera will be discussed, as also the relative merits of VMware with respect to other virtualization software. Those topics will be, at best, touched upon and skimmed through. Now there are enough resources to implement client programs to avail of the services exposed by the VMware ESX server but not nearly enough resources which show how to actually go beyond writing mere scripts and actually create enterprise ready VMware solutions. More details can be availed on the VMware site or better still, on Wikipedia.

As I have mentioned already, I will not be delving too deeply in the specifications of the ESX Server. Such information is widely available (though the VMware site documentation, in my most humble opinion, sucks!) on the Internet.

That’s all for part 1. The next session is shortly forthcoming. Till then, peace!

A programmatic approach to VMware solutions: Part 1