Tuesday, May 24, 2011

Open Source Frameworks

A software framework is a reusable set of programming methods and program libraries that will produce a standard structure for coding an application. A software framework will produce applications that run in a specified environment.
A specialized version of frameworks is the Web application framework.  This can be applied for the development of websites, web applications, and web services. Web application frameworks are becoming the dominant method for delivering computing services.
Programmers find easier to create code when using a standard framework, since this defines how the underlying code structure is organized. Applications can inherit code from pre-existing classes in the framework.
The most widely adopted framework is the Microsoft Framework that has contributed to the widespread adoption of Windows applications. A variety of frameworks are also available from Apple, Oracle (Application Development Framework), Mozilla and Linux. The limitation of these frameworks is their proprietary characteristic. The proliferation of existing frameworks reinforces the writing of code that reinforces a customer’s adherence to vendor-specific solutions.
The most recent innovation is the availability of “open source” frameworks. These make it possible to redeploy code, such as Java, to run code for applications that run on a wide range of platforms. (see http://pstrassmann.blogspot.com/2011/05/springsource-development-framework-for.html)
Cloud Foundry is an open platform service from VMware. It can support multiple frameworks, multiple cloud providers, and multiple application services all on a single cloud platform. It is an open Platform-as-a-Service (PaaS) offering. It provides a method for building, deploying, and running cloud apps using the following open source developer frameworks:  Spring for Java applications; Rails and Sinatra for Ruby applications and Node.js as well as other JVM for Grails applications. Cloud Foundry also offers MySQL, Redis, and MongoDB data services. This is only the initial list of open source frameworks. Other frameworks are expected to offer different tools or templates.
Cloud Foundry takes an open approach to connecting with a variety of cloud offerings. Most PaaS offerings restrict a developer to proprietary choices of frameworks and infrastructure services. The open and extensible nature of Cloud Foundry means that developers will not be locked into a proprietary framework or a proprietary cloud such as, for instance, Microsoft Azure or Amazon EC2.
VMware believes that in the cloud era this maps to flexibility and community participation. With this fundamental belief, VMware is open sourcing the Cloud Foundry application execution engine, application services interfaces and cloud provider interfaces.
 Cloud Foundry offers an application platform, which includes a self-service application library, an automation engine for application deployment and lifecycle management, a scriptable command line interface (CLI), integration with development tools to ease development and deployment processes. It offers an open architecture for quick development framework integration, application services interface and cloud provider interface.
Cloud Foundry is ideal for any developer interested in reducing the cost and the complexity of configuring programs as well as runtime applications. Developers can then deploy applications that have been built with the aid of open source frameworks without requiring modification to their code when applying their code to different cloud environments.
Cloud Foundry allows developers to focus on applications, and not on hardware or on middleware. Traditional application deployments require developers to configure and patch systems, maintain middleware and worry about network connections. Cloud Foundry allows developers to concentrate on the business logic of applications. Consequently applications can be tested and deployed instantly.
VMware now operates an open-source community site, CloudFoundry.org, where developers can collaborate and then contribute to individual Cloud Foundry projects.
The Open Source Cloud Foundry is a dramatic innovation. It is based on the concept that in cloud computing there must be complete separation between the underlying hardware, the intervening software (which includes Operating Systems) and the application logic. Applications should be able to run on any hardware, regardless of vendor origin. Applications must function regardless of the platform such as desktops, laptops or cell phones.  Applications must be accepted by any operating system or any middleware regardless of the way it has been configured.
The objective of the Cloud Foundry is to deliver open source frameworks that will make it possible to run universally accessible Platform-as-a-Service clouds. In the future there will be a large variety of PaaS vendors who will distinguish themselves by offering different service level agreements.
If DoD wishes to reduce its cost by adopting cloud services it will have to re-examine how software is generated, tested and then deployed. DoD will have to adopt open source frameworks for developing applications.  


  1. Im surprised at the level of trust you give to a company that has never had a history of Open Source (VMware) vs writing about a company that has (Red Hat, Sun, etc.)

  2. Over the years VMware has continued to provide top tier support for Linux in its products, and has added support for FreeBSD, and a wide variety of Linux distributions. Currently, VMware supports over 60 versions of Linux and other open source based OSs across its product line, from a wide variety of vendors including Ubuntu, SuSE, Novell, Red Hat, and Mandriva.

    In December 2005 VMware introduced the VMware Player, a free virtualization product targeted at end users. There have been over 1 million downloads of the Linux version of the VMware Player since then. The Linux version of VMware's entry level server virtualization offering, VMware Server, has had approximately 750,000 downloads to date.

    Virtual Appliance Marketplace has grown to become the preferred channel for distribution of Linux based virtual appliances and hosts over 550 Linux virtual appliances. The ability to easily configure and modify Linux OSs, coupled with the lack of restrictions around redistribution make Linux the preferred platform for development of virtual appliances. Today over 95% of the virtual appliances hosted on the Virtual Appliance Marketplace are Linux based.

    The release of the VMware ACE Management Server in April 2007 as a JeOS based virtual appliance marked another milestone in the evolution of virtual appliances. The JeOS, or Just Enough OS, consists of a stripped down Debian Sarge system from which unnecessary applications, services, and libraries have been removed, and is less than 1/3 the size of the smallest Debian standard installation.

    The VMI interface was proposed in 2005, and this was followed up by the release of an open specification for VMI in 2006. Subsequently VMware worked with the Linux kernel community, IBM, Red Hat, and others, to develop a source level paravirtualization interface called paravirt-ops which would allow Linux to support multiple hypervisor specific paravirtualization ABIs (in VMware's case VMI).

    Here is the current list of VMware Open Source projects:
    Dr. Memory
    Virtual USB Analyzer
    VMware SVGA Device Developer Kit
    Operating System Specific Packages (OSPs)
    VMware Infrastructure Java API
    Open VM Tools
    VMware Infrastructure Perl Toolkit
    XOrg Video and Mouse Drivers

    and many others.


For comments please e-mail paul@strassmann.com