Windows AzureAnd DataRepresentationFarhad IdreesMuhammad AhsanMuhammad Sarfaraz
Contents An Overview of Windows Azure & Cloud Computing Windows Azure Components o The Compute Service o The Storage Service o The Fabric Conclusion
OverviewCloud computing is here. Running applications on machines in anInternet-accessible data center can bring plenty of advantages. Yetwherever they run, applications are built on some kind of platform. Foron-premises applications, this platform usually includes an operatingsystem, some way to store data, and perhaps more. Applicationsrunning in the cloud need a similar foundation.
The goal of Microsoft’s Windows Azure is to providethis. Part of the larger Azure Services Platform,Windows Azure is a platform for running Windowsapplications and storing data in the cloud. Figure 1illustrates this idea.
As the figure shows, Windows Azure runs on machines inMicrosoft data centers. Rather than providingsoftware that Microsoft customers can install and runthemselves on their own computers, WindowsAzure is a service: Customers use it to run applications andstore data on Internet-accessible machinesowned by Microsoft. Those applications might provideservices to businesses, to consumers, or both.
For Example: An independent software vendor (ISV) could create an application that targets business users, an approach that’s often referred to as Software as a Service (SaaS). An ISV might create a SaaS application that targets consumers. Enterprises might use Windows Azure to build and run applications that are used by their own employees. 1/26/2012
ComponentsWindows Azure has three main parts: the Compute service the Storage service the Fabric.
As their names suggest, the Compute service runsapplications while the Storage service stores data. Thethird component, the Windows Azure Fabric, provides acommon way to manage and monitor applications that usethis cloud platform. Figure 2
THE COMPUTE SERVICE The Windows Azure Compute service can run many different kinds of applications. A primary goal of this platform, however, is to support applications that have a very large number of simultaneous users.Windows Azure is designed to support applications that scale out, running multiple copies of the same code across many commodity servers.
To allow this, a Windows Azure application canhave multiple instances, each executing in its ownvirtual machine (VM). These VMs run 64-bitWindows Server 2008.To run an application, adeveloper accesses the Windows Azure portalthrough her Web browser, signing in with aWindows Live ID. specifying how many instancesthe application needs. Windows Azure then createsthe necessary VMs and runs the application.
different instance types are available for developers touse:Web role instances and Worker role instances. Figure 4illustrates this idea. As its name suggests, a Web role instancecan accept incoming HTTP or HTTPS requests. To allow this, itruns in a VM that includes Internet Information Services (IIS)7.Worker role instances aren’t quite the same as their Web rolecousins. For example, they can’t accept requests from theoutside world. Their VMs don’t run IIS,A developer can use only Web role instances, only Worker roleinstances, or a combination of the two to create a WindowsAzure application
If the application’s load increases, he can use the WindowsAzure portal to request more Web role instances, moreWorker role instances, or more of both for his application. Ifthe load decreases, he can reduce the number of runninginstances. To shut down the application completely, thedeveloper can shut down all of the application’s Web role andWorker role instances.
THE STORAGE SERVICE Applications work with data in many different ways. Accordingly, the Windows Azure Storage service provides several options. Figure 4 shows Figure 6
Blobs The simplest way to store data in Windows Azure storage is to use blobs. A blob contains binary data,A storage account can have one or more containers, each of which holds one or more blobs. Blobs can be big—up to 50 gigabytes each—and they can also have associated metadata, such as information about where a JPEG photograph was taken or who the singer is for an MP3 file.
Blobs are just right for some situations, but they’re toounstructured for others. To let applications workwith data in a more fine-grained way, Windows Azure storageprovides tables. Don’t be misled by the name: These aren’trelational tables.
Tables even though they’re called “tables”, the data they hold is actually stored in a simple hierarchy of entities that contain properties. And rather than using SQL, an application accesses a table’s data using the conventions defined by ADO.NET Data Services. a single Windows Azure table can contain billions of entities holding terabytes of data.
Queues Blobs and tables are both focused on storing and accessing data. The third option in Windows Azure storage, queues, has a quite different purpose. A primary function of queues is to provide a way for Web role instances to communicate with Worker role instances.
Regardless of how data is stored—in blobs, tables, orqueues—all information held in Windows Azureis replicated three times.This replication allows fault tolerance, since losing a copyisn’t fatal. The system provides strong consistency, however,so an application that immediately reads data it has justwritten is guaranteed to get back what it just wrote.
Windows Azure storage can be accessed by a Windows Azureapplication, by an application running on premiseswithin some organization, or by an application running at ahoster. In all of these cases, all three Windows Azure storagestyles use the conventions of REST to identify and exposedata.In other words, blobs, tables, and queues are all namedusing URIs and accessed via standardHTTP operations. A .NET client might use the ADO.NET DataServices libraries to do this, but it’s not required—anapplication can also make raw HTTP calls.
Rest REST or “representational state transfer” is a style of software architecture for distributed systems, such as an LMS and other client systems. REST includes a set of guiding principles for how these systems should talk to each other. The goals of REST are to simplify communication between systems, improve scalability of connections and standardize the interface between systems.
REST is not a standard. REST is just an architectural style.While REST is not a standard, it does use standards:HTTPURLXML/HTML/GIF/JPEG/etc (Resource Representations)text/xml, text/html, image/gif, image/jpeg, etc (MIME Types)
As the figure shows, the Windows Azure Fabric consists of a(large) group of machines, all of which are managed by softwarecalled the fabric controller. The fabric controller is replicatedacross a group of five to seven machines, and it owns all of theresources in the fabric: computers, switches, load balancers, andmore. Because it can communicate with a fabric agent on everycomputer, it’s also aware of every Windows Azure application inthis fabric. (Interestingly, the fabric controller sees WindowsAzure Storage as just another application, and so the details ofdata management and replication aren’t visible to the controller.)
This broad knowledge lets the fabric controller do manyuseful things. It monitors all running applications,for example, giving it an up-to-the-minute picture of what’shappening in the fabric. It manages operatingsystems, taking care of things like patching the version ofWindows Server 2008 that runs in WindowsAzure VMs. It also decides where new applications shouldrun, choosing physical servers to optimizehardware utilization.
To do this, the fabric controller depends on a configurationfile that is uploaded with each Windows Azure application.This file provides an XML-based description of what theapplication needs: how many Web role instances, how manyWorker role instances, and more. When the fabric controllerreceives this new application, it uses this configuration file todetermine how many Web role and Worker role VMs to create.
Once it’s created these VMs, the fabric controller thenmonitors each of them. If an application requires five Webrole instances and one of them dies, for example, the fabriccontroller will automatically restart a new one. Similarly, ifthe machine a VM is running on dies, the fabric controller willstart a new instance of the Web or Worker role in a new VMon another machine, resetting the load balancer as necessaryto point to this new machine.
While this might change over time, the fabric controller in theWindows Azure CTP maintains a one-to-one relationshipbetween a VM and a physical processor core. Because of this,performance is predictable each application instance has itsown dedicated processor core. It also means that there’s noarbitrary limit on how long an application instance canexecute. A Web role instance, for example, can take as longas it needs to handle a request from a user, while a Workerrole instance can compute the value of pi to a million digits ifnecessary. Developers are free to do what they think is best.
CONCLUSIONSRunning applications and storing data in the cloud is the rightchoice for many situations. Windows Azure’s three parts—theCompute service, the Storage service, and the Fabric—worktogether to make this possible. Together with the Windows Azuredevelopment environment, they provide a bridge for Windowsdevelopers moving into this new world.Today, cloud platforms are an exotic option for most organizations.As all of us build experience with Windows Azure and other cloudplatforms, however, this new approach will begin to feel lessstrange.Over time, we should expect cloud-based applications—and the cloud platforms they run on—to play an increasinglyimportant role in the software world.
SourcesAzure Home Pagehttp://www.microsoft.com/azureIntroducing the Azure Services Platform, David Chappellhttp://download.microsoft.com/download/e/4/3/e43bb484-3b52-4fa8-a9f9-ec60a32954bc/Azure_Services_Platform.pdfWindows Azure Blobs: Programming Blob Storagehttp://download.microsoft.com/download/D/6/E/D6E0290E-8919-4672-B3F7-56001BDC6BFA/Windows%20Azure%20Blob%20-%20Dec%202008.docxWindows Azure Tables: Programming Table Storagehttp://download.microsoft.com/download/3/B/1/3B170FF4-2354-4B2D-B4DC-8FED5F838F6A/Windows%20Azure%20Table%20-%20Dec%202008.docxWindows Azure Queues: Programming Queue Storagehttp://download.microsoft.com/download/5/2/D/52D36345-BB08-4518-A024-0AA24D47BD12/Windows%20Azure%20Queue%20-%20Dec%202008.docx