One of the goals of cloud computing is to allow developers to reduce the complexity of understanding and managing the hardware and software infrastructure so that they can focus on the functionality of the application. This goal has been achieved to varying degrees through the infrastructure, the service (IaaS) cloud and Peace Platform (PaaS) cloud. The IaaS cloud provides hardware and allows you to carry your own software. The PaaS Cloud also provides additional software that typically allows you to focus on building and deploying applications, representing you in the deployment of infrastructure and middleware. This article briefly investigates some of the PaaS and IaaS options for running Java in the cloud, and then delves into what IBM has to offer you through IBM application pattern for Java.
Java applications in the cloud
Most cloud vendors allow or support the use of Java technology in their cloud products. An example of this is Amazon EC2, which is actually an IaaS cloud. You can deploy the Amazon Machine Images (AMI), which Amazon describes as "a special type of preset operating system and virtual application software for creating virtual machines in Amazon elastic Compute Cloud (EC2)." That is, you need to deploy a custom build image or a pre-built image that contains the software you need, and you can include a Java runtime.
Another example that follows is Microsoft Azure and Salesforce.com Heroku. Both are PAAs clouds that provide a software environment and allow Java applications to run. However, only the Heroku provides the Java runtime by enabling OpenJDK 6. For Azure, you must provide your own Java runtime.
Google App Engine and Amazon elastic Beanstalk provide most of the product applications. You don't have to worry about installing virtual machines and software; just provide your own application. However, you can run only web-based applications, and both services impose restrictions on the functionality of your application.
Deploy to the IBM cloud
Free trial version of IBM SmartCloud application Services
IBM SmartCloud Application Services delivers a 90-day free trial with DeveloperWorks, deploying up to 5 virtual machines and using up to 30GB of storage. This beta provides you with access to IBM application patterns for Java and Web application, transactional Database, and Data Mart modes. This means that you can immediately start deploying your own applications to the IBM cloud, or just try one of the sample application templates.
IBM's approach is to provide a complete set of IaaS and PaaS types of functional technology. An example of an IaaS type is the ability to deploy a virtual device. A virtual device is a prepackaged software stack in an image that uses the standard distributed Management Task Force (DMTF) Open virtualization Format (OVF) specification, including operating systems, software applications, middleware , applications, and additional libraries, as well as metadata for configuring and enabling the software stack. It also supports the use of scripts to reconfigure the software stacks contained in this device.
The more PaaS-like functionality is provided by two types of workload patterns, namely virtual system mode and virtual Application mode:
Virtual system mode is a topology-centric deployment definition. Pattern Editor enables you to define a topology by defining some virtual machine images, installing software components on these virtual machine images, and configuring the script packages (metadata) needed to configure the virtual machine image. To do this, you can use a manually created virtual machine, an imported virtual machine, or some IBM Hypervisor Edition image. Once you create a virtual system pattern for the recurring topology and the configuration script that you use to install the application, you can reuse it as a standard platform.
Virtual Application Mode is an application-centric deployment definition. Virtual application Builder enables you to configure the application itself, the resource definitions needed to use components (including database connections, message queues, and so on), and policies including scalability, service level agreements (SLAs), and so on.
Figure 1 shows the three mechanisms deployed to the IBM cloud:
Figure 1. Mechanisms for deploying to the IBM cloud