Translate

Translate

Translate

Senin, 31 Oktober 2011

A SHORT INTRODUCTION TO CLOUD PLATFORMS

 DEFINING TERMS: WHAT IS A CLOUD PLATFORM?

          The coming shift to cloud computing is a major change in our industry. One of the most important parts of that shift is the advent of cloud platforms. As its name suggests, this kind of platform lets developers write applications that run in the cloud, or use services provided from the cloud, or both. Different names are used for this kind of platform today, including on-demand platform and platform as a service (PaaS). Whatever it’s called, this new way of supporting applications has great potential.
            
             To see why, think about how application platforms are used today. When a development team creates an on-premises application (i.e., one that will run within an organization), much of what that application needs already exists. An operating system provides basic support for executing the application, interacting with storage, and more, while other computers in the environment offer services such as remote storage. If the creators of every on-premises application first had to build all of these basics, we’d have many fewer applications today.

             Similarly, if every development team that wishes to create a cloud application must first build its own cloud platform, we won’t see many cloud applications. Fortunately, vendors are rising to this challenge, and a number of cloud platform technologies are available today. The goal of this overview is to categorize and briefly describe those technologies as they’re seen by someone who creates enterprise applications.

CLOUD PLATFORMS IN CONTEXT: THREE KINDS OF CLOUD SERVICES


  1. Software as a service (SaaS): A SaaS application runs entirely in the cloud (that is, on servers at an Internet-accessible service provider). The on-premises client is typically a browser or some other simple client. The most well-known example of a SaaS application today is probably Salesforce.com, but many, many others are also available.
  2. Attached services: Every on-premises application provides useful functions on its own. An application can sometimes enhance these by accessing application-specific services provided in the cloud. Because these services are usable only by this particular application, they can be thought of as attached to it. One popular consumer example of this is Apple’s iTunes: The desktop application is useful for playing music and more, while an attached service allows buying new audio and video content. Microsoft’s Exchange Hosted Services provides an enterprise example, adding cloud-based spam filtering, archiving, and other services to an on-premises Exchange server.
  3. Cloud platforms: A cloud platform provides cloud-based services for creating applications. Rather than building their own custom foundation, for example, the creators of a new SaaS application could instead build on a cloud platform. As Figure 1 shows, the direct users of a cloud platform are developers, not end users. Understanding cloud platforms requires some agreement on what the word 
  4. platform” means in this context. One broad way to think about it is to view a platform as any software that provides developer accessible services for creating applications. The next section looks at this idea in a bit more detail.
A GENERAL MODEL FOR APPLICATION PLATFORMS
        Our experience with application platforms today comes mostly from on-premises platforms. A useful way to think about cloud platforms is to see how the services an application developer relies on in the on premises environment translate to the cloud. To help do this, Figure 2 shows a general model that can be applied to both worlds.




Whether it’s on-premises or in the cloud, an application platform can be thought of as comprising three parts:

  •   A foundation: Nearly every application uses some platform software on the machine it runs on. This typically includes various support functions, such as standard libraries and storage, and a base operating system.
  •     A group of infrastructure services: In a modern distributed environment, applications frequently use basic services provided on other computers. It’s common to provide remote storage, for example, integration services, an identity service, and more.
  •      A set of application services: As more and more applications become service-oriented, the functions they offer become accessible to new applications. Even though these applications exist primarily to provide services to end users, this also makes them part of the application platform. (It might seem odd to think of other applications as part of the platform, but in a service-oriented world, they certainly are.)
And while they’re not shown in Figure 2, development tools are another important part of this story.
Modern tools can help developers build applications using all three parts of an application platform.

To make this abstract model more concrete, think about how it fits with today’s most popular on premises platforms. The on-premises foundation looks like this:
 Operating system: The dominant choices are Windows, Linux, and other versions of Unix. Local support: Different technologies are used depending on the style of application. The .NET Framework and Java EE application servers provide general support for Web applications and more, for instance, while other technologies target specific kinds of applications. For example, Microsoft’s Dynamics CRM product includes a platform designed for creating a particular type of business application. Similarly, different kinds of storage are used for different purposes. Raw byte storage is provided by the file systems in Windows, Linux, and other operating systems, while more structured storage is provided by a range of database technologies, including the Oracle DBMS, MySQL, Microsoft SQL Server, and IBM DB2. For on-premises infrastructure services, typical examples include the following:
  Storage: Like storage in the foundation, infrastructure storage comes in various styles. A remote file system might provide simple byte-oriented storage, while a Microsoft SharePoint document library provides a more structured remote storage service. Applications can also access a database system remotely, allowing access to another kind of structured storage.
  Integration: Connecting applications within an organization usually depends on a remote service provided by some integration product. A message queue is a simple example of this, while more complex scenarios use products such as IBM’s WebSphere Process Server, Microsoft’s BizTalk Server, and others.
 Identity: Providing identity information is a fundamental requirement for most distributed applications. Common on-premises technologies that address this include Microsoft’s Active Directory and other LDAP servers. 

FROM ON-PREMISES PLATFORMS TO CLOUD PLATFORMS
      Along with describing on-premises platforms, the general model just described can also be used to think about cloud platforms. And since on-premises and cloud platforms can be used together, it’s important to understand how the two work in concert. Figure 3 illustrates this new world.
As the figure shows, a cloud application can be built on a cloud foundation, just as an on-premise
application is built on an on-premises foundation. Both kinds of applications can access infrastructure and 
application services provided on-premises and in the cloud. Just as on-premises platforms support today’s
applications, cloud platforms provide services for the applications we’re likely to build tomorrow.



By: R_Diani