Newsletter sign-up
View all newsletters

Enterprise Java Newsletter
Stay up to date on the latest tutorials and Java community news posted on JavaWorld

Building cloud-ready, multicore-friendly applications, Part 2: Mechanics of the cloud

Orient yourself and your applications in the cloud

  • Digg
  • Reddit
  • SlashDot
  • Stumble
  • del.icio.us
  • Technorati
  • dzone

In the first half of this article you learned the four attributes that your code must have to take advantage of multicore computers and cloud service platforms. But once deployed to the cloud, what makes your applications soar? Appistry's Guerry Semones brings the cloud down to earth with this overview of the mechanics of scalability, reliability, load balancing, and more, in cloud computing's distributed environments.

In the first half of this article you learned about four important attributes your code needs in order to run most effectively on multicore computers, or in multi-computer environments like the cloud:

  • Atomicity
  • Statelessness
  • Idempotence
  • Parallelism

But how exactly do these features help you take advantage of cloud platforms? Applications in the cloud inherit capabilities from the underlying cloud architecture -- capabilities like scaling out horizontally, scaling up across multiple cores, availability, reliability, manageability, load balancing, and command and control. I touched on these benefits in my previous article; in this one, I'll explain how cloud platforms deliver these benefits to your code.

First, let's make sure we have a shared understanding of what exactly is meant by a cloud platform; then we'll be able to talk about the benefits of cloud computing to architects and developers.

What is a cloud platform?

First, you need to orient yourself in the cloud. Figure 1 categorizes different cloud technologies into simple architectural layers. The breakdown is not perfect, as some products may touch more than one layer, but it's a fine starting point.

Layers of a cloud platform

Figure 1. Layers of a cloud platform

The infrastructure-as-a-service cloud

Infrastructure-oriented cloud architectures, including infrastructure-as-a-service (IAAS) offerings, provide access to virtualized, on-demand computing resources. Amazon EC2 is a well-known example of this approach. The user can request that Linux and Windows virtual machine instances be created on the fly and billed based on actual usage. The cloud infrastructure allows the user to manage virtual machines (and associated resources, like IP addresses) and their configurations. With EC2, clients do not know where the machines are physically located or what kind of hardware is being used. This is what makes the service cloud-like.

Cloud platforms vs. platform-as-a-service (PAAS)

Platform-oriented approaches to the cloud, including platform-as-a-service (PAAS) and cloud application platforms, run atop an underlying cloud infrastructure. Cloud platforms abstract applications away from the cloud infrastructure and provide supporting services and functionality to those applications. The distinction between cloud infrastructure and cloud platforms is a critical one for architects and developers to understand.

Salesforce's Force.com and Google's App Engine (GAE) both typify the PAAS approach. Google App Engine users are solely concerned about the application they are creating to run on the platform. To deliver an application, they simply package it and deploy it to GAE The deployment happens in a single step and the end user does not know whether the application is being run on one virtual machine or 10 at any particular moment. In addition, the application can take advantage of special services provided by the GAE platform, such as authentication or data access.

  • Digg
  • Reddit
  • SlashDot
  • Stumble
  • del.icio.us
  • Technorati
  • dzone
Comments (8)
Login
Forgot your account info?

Much better PaaS modelBy Anonymous on February 22, 2010, 8:18 pmCheck the simplest applications developed by A2Zapps.com at http://marketplace.a2zapps.com on truly PaaS infrastructure.

Reply | Read entire comment

very comprehensiveBy Choiyex on January 29, 2010, 2:19 amthanks a lot for this

Reply | Read entire comment

Informative, but useless in mostBy Anonymous on January 6, 2010, 2:18 amA lot of these information are common sense if you spent 1+ hour on cloud computing in general. The author basically touches the basics, and do not offer any code...

Reply | Read entire comment

Nice on By Anonymous on December 11, 2009, 7:44 amReally a very nice article . Thanks

Reply | Read entire comment

ExcellentBy Anonymous on October 25, 2009, 11:12 amNice article....

Reply | Read entire comment

View all comments

Add comment
Anonymous comments subject to approval. Register here for member benefits.
Have a JavaWorld account? Log in here. Register now for a free account.
Resources

More from JavaWorld