Learning Enterprise Integration with Spring

March 12th, 2010 No comments

With SpringSource being part of VMware family, getting a Spring training is certainly a lot easier than before. For one thing, my boss doesn’t need to pay for it.:-)

I just finished my 4-day training starting from this Tuesday. It’s been pretty exhausting given that I had to get up before 7AM to match the central time. But what’s learnt worth the effort.

The coverage of the training includes:

Categories: Software Development Tags: ,

Clojure, Ruby, Scala, and Go: When to Use Which?

March 11th, 2010 No comments

Just came back from a SDForum meeting organized by its emerging technology SIG. The topic was about the 4 languages in the title. It’s not much about any emerging technology per se, but pretty controversial among the developers.

The organizers invited four panelists and one moderator:

  • Clojure advocate – Amit Rathore, author of the forthcoming “Clojure In Action”
  • Go advocate – Robert Griesemer, Google, co-author of Go
  • Scala advocate – David Pollak, lead author of Lift
  • Ruby advocate – Evan Phoenix, lead developer of Rubinius, a high performance Ruby VM
  • Moderator – Steve Mezak, co-chair of the SDForum Software Architecture and Modeling SIG, author of Software without Borders

Each of the panelists had 10 minutes of introduction of the language in the first part. Then, they all answered questions ranging from language strength/weakness, library/tool/IDE support, application framework, advice on migrating existing codebase, to how these languages compare to each other.

Here are introductions from the languages’ homepages. See if you can map them to the languages.

Attention Java Developers: Spring on VMware Promotion

March 10th, 2010 No comments

VMware announced today ”Spring on VMware” promotion in which you may get free licenses of the tc Server in a news release.

To help you get started, VMware is pleased to announce the “Spring on VMware Promotion”. Under this promotion, all customer orders fulfilled  between March 8th 2010 and May 8th 2010 that include products (license only) from the vSphere, vCenter, View or ThinApp product family will receive 2 perpetual, production-use CPU licenses of tc Server Spring Edition 2.0 and 60 days of Evaluation Support for SpringSource (collectively referred to as the “Spring on VMware Bundle”).

Categories: News & Events Tags: ,

SimDK – A VMware vSphere Simulator

March 9th, 2010 5 comments

Just got the following email from Andrew Kutz (@sakutz) who wrote the famous VMware Infrastructure (VI) plug-ins whitepaper and created several other great projects like VMM.

David Marshall, Dave McCrory and I, as well as everyone else at Hyper9, are extraordinarily proud to announce SimDK – a VMware vSphere4 simulator which provides vSphere4 API-compatibility for official vSphere4 clients and other applications built using the vSphere4 SDK.. SimDK is an open source project available at http://simdk.sourceforge.net/. You can read more about this exciting announcement at http://akutz.wordpress.com/2010/03/09/simdk.

Categories: vSphere API Tags: ,

Vote for vSphere Java API at VMware Labs

March 9th, 2010 2 comments

Several smart bloggers (Eric Sloof, Justin EmersonIan Koenig, Alessandro Perilli) discovered the VMware Labs web site over the weekend. As many pointed out, it’s absolutely cool.

I actually knew it was going to be online this past weekend, but would like to get official announcement from the company before blogging it. The reason I knew the site to go live is because the vSphere Java API I created is one of the first 10 projects.

Categories: vSphere API Tags:

VMwareExpress Truck: First Hand Experience

March 8th, 2010 No comments

VMwareExpress truck came to VMware headquarter before noon today, parking between the gym and office buildings. I went to check it out this afternoon, also enjoyed ice cream in front of the truck.

The following is a picture of the truck. I could use others, but think this one is better because it has the cloud as background. :-)

Categories: News & Events Tags:

Lightweight Caching Framework in vSphere Java API 2.0

March 7th, 2010 4 comments

In vSphere Java API 2.0, I wrote a lightweight caching framework. It’s still experimental but has a great potential to greatly simplify your development work. Commercial companies already use it in their products.

The motivation behind this framework is simple – instead of keep polling the changes from the server side, you keep a local cache that is made as fresh as possible. The View in the vSphere Perl toolkit is one way to do. It caches all properties of a managed object despite the fact that you don’t need that many at all.

The caching framework in vSphere Java API takes another approach. You tells it what managed objects and what properties you want to be cached. After that, the caching framework does its best to read the properties and keep them as fresh as possible.

Architecturally the caching framework is totally separated from the core of the API. You can take it away without any impact on the rest of the API. This is quite different from other toolkit.

Have enough introduction? Let’s take a look at sample code:

Categories: vSphere API Tags: ,

Who is Hyping Cloud Computing? You Will be Surprised!

March 7th, 2010 2 comments

I came across a blog “5 things VMware must do to fend off Microsoft.” The author Jon Brodkin listed the following musts: cut prices, improve Security, win the desktop war, simplify management, don’t overhype the cloud. Here is a response to the article by Steve Kaplan.

Because I am working on cloud related projects, especially I am the creator of the vSphere Java API that manages the “cloud operating system,” I am curious to know whether VMware is overhyping the cloud computing.

Instead of expressing my opinions, I decided to do a simple research using Google and Wikipedia. To my surprise, the “cloud computing” page does not include VMware in “Cloud computing logical diagram.” The companies listed are Microsoft, Google, Saleforce, Amazon, Yahoo, Rackspace, Zoho. Well, that is good for me to do the next step.

Then, I used Google to search each company’s name and “cloud computing.” I wasn’t testing the performance, but to see how many web pages are there including these keywords. Strictly speaking, the number of hits is not an index of hyping cloud computing, but you can get a good sense on how much marketing effort each company invest into “cloud computing.”

To save you time, I captured the screenshots of each search, and list the most important parts we are interested as follows.

Categories: Cloud Computing Tags:

2 Easy Steps to Add Source Code into Your Blog

March 6th, 2010 3 comments

WordPress is a great blogging software. I am very happy with it except that it does not have nice built-in support to include source code, which an absolutely needed feature for me.

Given the rich set of plug-ins WordPress has, I know there must be some plug-in there already. Today I spent a little time on research. After trying several plug-ins, I decided to use Google Syntax Highlighter for WordPress. You can check out how it looks like as follows.

Building Trusted Datacenters in the Cloud

March 6th, 2010 No comments

RSA just had its annual conference at San Francisco this past week. Intel, VMware and RSA demoed how to build up layers of trust in data centers in the conference.

Using vSphere Java API in Jython and Other JVM languages

March 5th, 2010 No comments

As a by-product, the vSphere Java API makes Jython programming a lot easier. The following is a very simple sample written in Jython to print out the name of the first virtual machine in inventory.

    from java.net import *
    from com.vmware.vim25.mo import *

    si= ServiceInstance(URL(“https://sjin-dev1/sdk”),\
    “root”, “password”, True)
    rootFolder = si.getRootFolder()
    vms = InventoryNavigator(rootFolder) \
    .searchManagedEntities(“VirtualMachine”)
    print “Hello ” + vms[0].getName()
    si.getServerConnection().logout()

As you can see, it really brings in the benefit of VI Java API into Python community at almost no extra cost.

Categories: vSphere API Tags: ,

5 Easy Steps Using vSphere Java API

March 4th, 2010 No comments

In my previous blogs, I have introduced the vSphere API object model, vSphere Java API architecture. I assume you’ve run through the 5 minute Getting Started Tutorials with HelloWorld sample.

Now, let’s take a look on how to use the API in general.

1. Always starts with a ServiceInstance with URL/username/password, or URL/sessionID. For example,

ServiceInstance si = new ServiceInstance(new URL(urlStr), username, password, true);

2. From the ServiceInstance object, you can:

Categories: vSphere API Tags: ,

vSphere Java API Architecture Deep Dive

March 3rd, 2010 2 comments

In my previous blog, I talked about the object model of the vSphere API. Many people like the UML diagram that illustrates how the managed objects are inherited from each other.

Following that blog, I will introduce the object model of the open source Java API that is built on top of the Web Services, as well as some key design decisions I made while designing the API.

The following UML diagram is extracted from the overall model but adds much more details with properties and methods. If you can understand this diagram, you can then easily understand all other managed object types.

Trying Self Paced Lab without Going to PEX 2010

March 2nd, 2010 No comments

I mentioned the vSphere API self paced lab at PEX in my previous blog. Not all the people who are interested in learning the API made it to PEX last month. A reader asked me when it can be online in his comment.

Here is the VI Java API part in the tutorial. We had the environment set up all together for you in the PEX lab including the Eclipse and all the related jar files. So it’s very easy to get started there. Without going to PEX, you need to do something extra by yourself. But that is not too hard at all. I promise it won’t take you much time at all. To get the basic one done, you probably need 5 to 30 minutes depending on your familiarity with Java.

Ready to learn?

Two Books Every Top Software Architect Should Read

March 1st, 2010 No comments

When asked what books to read, I always recommend the following two books:

Are Your Lights On?: How to Figure Out What the Problem Really Is by Donald C. Gause; Gerald M. Weinberg

The Design of Everyday Things by Donald A. Norman

“But, they seem nothing to do with software!” You say.

You are right. But remember the blog title has a keyword “top.” If you want to stand out in any profession, some of the extra skills may well be outside your typical set as others expect.

The same is true for software profession. I assume you already know the basics of software programming, process, design patterns, etc., so another programming book doesn’t help you much to the top technically.

Let me explain why and how these two books help you.

Top 5 Myths about VMware vSphere API

February 28th, 2010 10 comments

If you have trouble to understand vSphere API when you first use it, you are definitely not alone. I had the same trouble when I first used it a while back.

Some of the troubles come from the disconnect between conventional programming model and that of vSphere API. In this blog, I summarize the top 5 myths about vSphere API based on my experience and the questions I see in the VMware community forum and vSphere Java API forum:

  1. Non-existing Managed Objects
  2. Pervasive PropertyCollector
  3. Short-Lived Task Object
  4. “Weak” HostSystem
  5. “Un-documented” View

Let’s examine each of them one by one.

Object Model of VMware vSphere API: A Big Picture in 2 Minutes

February 27th, 2010 22 comments

When I start to use a new API/SDK, I always look for the object model diagram before digging into the API Reference. With that, I can have a good overview of the API, from the concepts to the structure. This can save a lot of time.

Unfortunately, we don’t find such a object model diagram in any official document. The following is the UML diagram from my book VMware VI and vSphere SDK.

VQL – A Domain Specific Language for Virtualization

February 26th, 2010 No comments

Last summer, Reflex VP engineering Aaron Bawcom visited VMware campus. He is one of the authors of Virtualization For Security: Including Sandboxing, Disaster Recovery, High Availability, Forensic Analysis, And Honeypotting.

During our talk, Aaron told me a secret project called VQL. Because it’s a secret, I didn’t talk about it to anyone. Just before the PEX 2010, we exchanged emails about the VQL. Aaron told me it’s already shipped. So it’s time to broadcast it.

VQL is a DSL that looks like SQL, easy to understand and easy to use. Unlike SQL on data, it’s on virtual resources in vSphere environment. The following is a quick sample. It gets back the VMs installed with SQL servers with verions newer than 9.2 and they are running 10 minutes ago.

SQL Server and VersionMajor >= 9 and VersionMinor >= 2 project vm at 10 minutes ago

Categories: vSphere API Tags: , ,

Why Should ISVs Care About Virtual Appliances? A Personal Testimonial

February 25th, 2010 No comments

Several years ago, I tried to install SAP NetWeaver. It took me more than a day, and N installations plus N-1 removals before I finally got it right. I searched with several search engines and read many forum postings on SDN. Hinted by one post, I renamed the 13 character machine name to 9 characters, then the magic happened all of sudden.

The result wasn’t too bad but one day of time wasted. Many things could be improved to avoid the pain there. The foremost is the installer – why didn’t it check the hostname and alert me of the limitation?

At that time, I didn’t know VMware. After joining VMware, I knew more about virtualization and realized that a virtual appliance (VA) could have been a big time saver for me had the NetWeaver been packaged as a VA.

The pain as such can easily push potential customers away. It would be a different story if you have somewhat dominance in the market like SAP in enterprise ERP – you can charge big bucks for consulting and training services. Most other ISVs are not in such a position. Even for SAP, it faces strong competitions from others like Oracle.

As a side note, SAP has a virtualized NetWeaver evaluation edition. More info can be found about the SAP-VMware partnership.

In general, ISVs can leverage virtual appliances in two different ways:

Categories: Software Development Tags: , ,

3 Easy Ways Connecting to Your VM in Private Cloud

February 24th, 2010 24 comments

Several folks asked me about how to use vSphere(VI) Java API to connect to a VM running on vSphere. The quick answer is vSphere Java API is not designed for this. You will need VMware Remote Console, browser plug-in, remote desktop/VNC, SSH client etc. However, it can help you to get the information required by the console or plug-in. Tal Altman from CISCO suggested that it be a topic for doublecloud.org. Here it is.

There are 3 ways to connect to the VM from your client side outside the vSphere and Web Access which have built-in support for console access.

  1. Using VMware Remote Console which is a standalone application
  2. Using browser plug-in to either IE or Firefox (Note: this is NOT supported by VMware. Please don’t call the company tech support for this.)
  3. Using Remote Desktop, VNC or SSH

The first two connect to the ESX host, and work even there is no guest OS installed on the VM. The last one assumes you have guest OS installed, and have IP network and server components in place already.

Note that these 3 ways work for the VMs in the public cloud as well if the related ports are open in your firewall. It is, however, not the case for most enterprises, therefore I particularly say it’s for VMs in private cloud. If you don’t have firewall issue, feel free to give it a try with public cloud as well.

Let’s go over one by one in details and see how vSphere Java API helps.