What is a Spring Container?
If you are a virtualization administrator type and heard about VMware's acquisition of Spring Source and therefore control of the Spring Framework (including the Spring Container) you might be wondering why you should really care or what this has to do with virtualization to begin with. Hopefully at the end of this blog entry you will have some of your own thoughts and opinions on where this all may be going.

A Spring Container isn't something that you put into a mattress or in your car's suspension, it is a way of looking at dependencies of an application (specifically libraries, etc. in Java). Wikipedia lists the Spring Framework as a collection of modules including an IoC (Inversion of Control) based container that allows Dependency Injection. What does that mean in english (to a non-developer type)? It means that Spring manages the integration and requirements that one component of a developer's code has with other components that it depends on and that depend on it. This process used to be something that was manually done and when applications were small wasn't very difficult. As Java applications grew larger and more complex, so did their dependencies. As the applications grew, they also began to change more rapidly, users made more requests for more functionality, requiring more changes, more capabilities, and even more dependencies. From this complex mess, a solution came about in a way to abstract away this complexity.
The complexity problem that was solved through abstraction of the dependencies mirrors the complexity problem that has been found in data centers and where virtualization has become the answer. IaaS based Cloud Computing is only viable because of virtualization and the abstraction of the complexities in provisioning and managing infrastructure.

Why do developers use it?
There are a select number of IoC based frameworks and VMware is focused on Spring, which is a Java centric framework. There are several Java centric IoCs as well as several .Net based IoCs (Spring.NET is Spring's .NET based framework (although not as popular as their Java based IoC). This entry's focus is on Spring and Java based IoCs. Developers often want to integrate different components together quickly and in a uniform way and want to have reusable code. Spring is the largest and most popular Java IoC and has the largest Java enterprise developer base. This developer base translates to a large number of reusable pre-written integrations for nearly all of the popular libraries and applications that an enterprise Java developer might need or want.

Possible motivations behind VMware acquiring Spring Source
As the market progresses and matures, several things are becoming apparent. The first being that the hypervisor is becoming more commoditized. The second is that the cloud is going to become more important, however VMware has been a virtualization company and their competitors are more than virtualization companies. Look at Microsoft and their broad portfolio of Operating Systems, Applications, Technologies, and now a growing number of Cloud offerings under Azure. Microsoft doesn't make money off of Hyper-V itself and makes little money off of the basic management tools for Hyper-V, they do however make a great deal of money off of their applications and hope to make money off of Azure. In essence, Microsoft has an entire ecosystem behind them. On a different cloud approach, look at Google who arguably has a giant set of offerings in the cloud from Google Apps to their App Engine. There are millions of web developers that have created and continue to create applications that leverage Google's web services and APIs. So what has VMware been missing? The answer: An ecosystem beyond virtualization and management.

Where VMware may be heading
So where does this leave VMware? VMware needs to put together a strategy that creates a full ecosystem and that is what they are attempting to do. In acquiring Spring Source they have gotten a large active community of Enterprise Java Developers. They also gained a significant amount of mindshare around leading Java projects including Spring's CloudFoundry (which was a Spring Acquisition), Spring's Groovy and Grails (which Spring Acquired from G2One), and Hyperic's instrumentation and monitoring (yet another acquisition). With this broad user base and now VMware's acquisition of Zimbra, it is becoming obvious that VMware wants to be a premier player in the Java Developer and Cloud ecosystem (by cloud ecosystem this means Cloud Computing from the perspective of all three platforms SaaS, PaaS, and IaaS). This would allow them to compete head to head with the likes of Microsoft and Google on both a platform and technology level as well as a cloud and application level. There are many questions that remain unanswered as to if all this is going to successfully come together and if so, how long will it take. The key will be to keep the development community happy and growing as this will likely prove to be the greatest long term potential for VMware to continue its growth.
For Reference:
Additional IoC Containers (For those interested in additional IoCs):