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.