Using Microsoft Cloud Services - Using Platforms - Cloud Computing Bible (2011)

Cloud Computing Bible (2011)

Part II: Using Platforms

Chapter 10: Using Microsoft Cloud Services

IN THIS CHAPTER

Understanding Microsoft's developing cloud computing strategy

Learning about the Windows Azure hosting service

Exploring application development using the Windows Azure Platform

Viewing the applications and services that are part of Windows Live

Microsoft has a very extensive cloud computing portfolio under active development. Efforts to extend Microsoft products and third-party applications into the cloud are centered around adding more capabilities to existing Microsoft tools. Microsoft's approach is to view cloud applications as software plus service. In this model, the cloud is another platform and applications can run locally and access cloud services or run entirely in the cloud and be accessed by browsers using standard Service Oriented Architecture (SOA) protocols.

Microsoft calls their cloud operating system the Windows Azure Platform. You can think of Azure as a combination of virtualized infrastructure to which the .NET Framework has been added as a set of .NET Services. The Windows Azure service itself is a hosted environment of virtual machines enabled by a fabric called Windows Azure AppFabric. You can host your application on Azure and provision it with storage, growing it as you need it. Windows Azure service is an Infrastructure as a Service offering.

A number of services interoperate with Windows Azure, including SQL Azure (a version of SQL Server), SharePoint Services, Azure Dynamic CRM, and many of Windows Live Services comprising what is the Windows Azure Platform, which is a Platform as a Service cloud computing model. Eventually, many more services will be added, encompassing the whole range of Microsoft's offerings. This architecture positions Microsoft to either extend its product into the Web or to license its products, whichever way the cloud computing marketplace develops. From Microsoft's position and that of its developers, Windows Azure has lots of advantages.

Windows Live Services is a collection of applications and services that run on the Web. Some of these applications called Windows Live Essentials are add-ons to Windows and downloadable as applications. Other Windows Live Services are standalone Web applications viewable in a browser. An important subset of these Windows Live Services is available to Windows Azure applications through the Windows Live Messenger Connect API. A set of Windows Live for Mobile applications also exists. These applications and services are more fully described in this chapter.

Exploring Microsoft Cloud Services

Microsoft CEO Steve Balmer recently said at a University of Washington speech that Microsoft was “betting our company” on the cloud. Balmer also claimed that about 70 percent of Microsoft employees were currently working on cloud-related projects and that the number was expected to rise to about 90 percent within a year. Plans to integrate cloud-based applications and services into the Microsoft product portfolio dominates the thinking at Microsoft and is playing a central role in the company's ongoing product development. The starting place for Microsoft's cloud computing efforts may be found at Microsoft.com/cloud, shown in Figure 10.1.

Microsoft has a vast array of cloud computing products and initiatives, and a number of industry-leading Web applications. Although services like America Online Instant Messenger (AIM) may garner mindshare in the United States, surprisingly Microsoft Messenger is the market leader in many other countries. Product by product in any category you can name—calendars, event managers, photo galleries, image editors, movie making, and so on—Microsoft has a Web application for it. Some of these products are also-rans, some are good, some are category leaders, and a few of them are really unique. What is also true is that Web apps are under very active development. Microsoft sees its on-line application portfolio as a way of extending its desktop applications to make the company pervasive and to extend its products' lives well into the future.

Going forward, Microsoft sees its future as providing the best Web experience for any type of device, which means that it structures its development environment so the application alters its behavior depending upon the device. For a mobile device, that would mean adjusting the user interface to accommodate the small screen, while for a PC the Web application would take advantage of the PC hardware to accelerate the application and add richer graphics and other features. That means Microsoft is pushing cloud development in terms of applications serving as both a service and an application. This duality—like light, both a particle and a wave—manifests itself in the way Microsoft is currently structuring its Windows Live Web products. Eventually, the company intends to create a Microsoft app store to sell cloud applications to users.

Microsoft Live is only one part of the Microsoft cloud strategy. The second part of the strategy is the extension of the .NET Framework and related development tools to the cloud. To enable .NET developers to extend their applications into the cloud, or to build .NET style applications that run completely in the cloud, Microsoft has created a set of .NET services, which it now refers to as the Windows Azure Platform. .NET Services itself had as its origin the work Microsoft did to create its BizTalk products.

FIGURE 10.1

Microsoft maintains a home page for cloud computing at http://www.microsoft.com/cloud.

9780470903568-fg1001.tif

Azure and its related services were built to allow developers to extend their applications into the cloud. Azure is a virtualized infrastructure to which a set of additional enterprise services has been layered on top, including:

• A virtualization service called Azure AppFabric that creates an application hosting environment. AppFabric (formerly .NET Services) is a cloud-enabled version of the .NET Framework.

• A high capacity non-relational storage facility called Storage.

• A set of virtual machine instances called Compute.

• A cloud-enabled version of SQL Server called SQL Azure Database.

• A database marketplace based on SQL Azure Database code-named “Dallas.”

• An xRM (Anything Relations Management) service called Dynamics CRM based on Microsoft Dynamics.

• A document and collaboration service based on SharePoint called SharePoint Services.

• Windows Live Services, a collection of services that runs on Windows Live, which can be used in applications that run in the Azure cloud.

Eventually the entire Microsoft server portfolio will be available as a cloud-based application or service, including Exchange. So the Windows Azure Platform can be viewed in a sense as the next Microsoft operating system, the first one that is a cloud OS. The Microsoft vision for the Windows Azure Platform is shown in Figure 10.2, where the company sees applications developed in Visual Studio or through PHP and other languages deployed to the cloud, existing local (on-premises) applications interacting with Azure with standard SOA protocols (SOAP, REST, and XML), all running on the Windows Azure virtualized infrastructure.

The end result is pervasive computing available to users on the device of their choice. Just how Microsoft intends to integrate all these technologies into a unified offering is the story of this chapter.

FIGURE 10.2

The integrated vision for application development and deployment with Azure is illustrated in this overview page of the Azure platform (http://www.microsoft.com/windowsazure/products/).

9780470903568-fg1002.tif

Defining the Windows Azure Platform

Azure is Microsoft's Infrastructure as a Service (IaaS) Web hosting service. Azure is a deep blue color, the color of the clear sky onto which you can paint clouds. Taken together as a unit, Windows Azure Platform becomes a Platform as a Service (PaaS) offering. Hence, you may run into some people calling Azure an infrastructure service and others calling it a platform; in context, both are correct. Compared to Amazon's and Google's cloud services, Azure (the service) is a competitor to AWS. Windows Azure Platform is a competitor to Google's App Engine.

Figure 10.3 shows the home page of the Windows Azure Platform found at http://www.microsoft.com/windowsazure.

A developer creates an Azure application by first logging onto the Azure portal from the Sign up now button shown in Figure 10.3, supplying a Windows Live ID, creating a hosted account, and provisioning a storage account. The completed application can then be made available to users as a hosted application or service.

FIGURE 10.3

Window Azure Platform's home page may be found at http://www.microsoft.com/windowsazure, and is shown in this figure.

9780470903568-fg1003.tif

The software plus services approach

Microsoft has a very different vision for cloud services than either Amazon or Google does. In Amazon's case, AWS is a pure infrastructure play. AWS essentially rents you a (virtual) computer on which to run your application. An Amazon Machine Image can be provisioned with an operating system, an enterprise application, or application stack, but that provisioning is not a prerequisite. An AMI is your machine, and you can configure it as you choose. AWS is a deployment enabler.

Google's approach with its Google App Engine (GAE) is to offer a cloud-based development platform on which you can add your program, provided that the program speaks the Google App Engine API and uses objects and properties from the App Engine framework. Google makes it possible to program in a number of languages, but you must write your applications to conform to Google's infrastructure. Google Apps lets you create a saleable cloud-based application, but that application can only work within the Google infrastructure, and the application is not easily ported to other environments.

Microsoft sees the cloud as being a complimentary platform to its other platforms. The company envisages a scenario where a Microsoft developer with an investment in an application wants to extend that application's availability to the cloud. Perhaps the application runs on a server, desktop, or mobile device running some form of Windows. Microsoft calls this approach software plus services.

The Windows Azure Platform allows a developer to modify his application so it can run in the cloud on virtual machines hosted in Microsoft datacenters. Windows Azure serves as a cloud operating system, and the suitably modified application can be hosted on Azure as a runtime application where it can make use of the various Azure Services. Additionally, local applications running on a server, desktop, or mobile device can access Windows Azure Services through the Windows Services Platform API.

Given that Microsoft owns the Office application market as well as the desktop OS market, this approach makes lots of sense. It is also quite possible that a hybrid application that can reside either locally or in the cloud will have lots of appeal not only to developers but to users who would prefer more control over their data and more security than the cloud might offer.

The Azure Platform

With Azure's architecture (shown in Figure 10.4), an application can run locally, run in the cloud, or some combination of both. Applications on Azure can be run as applications, as background processes or services, or as both. The Windows Azure service itself is shown as the oval in Figure 10.4 and is a cloud-based operating system with a fabric infrastructure of virtual machines hosted in Microsoft datacenters.

The Azure Windows Services Platform API uses the industry standard REST, HTTP, and XML protocols that are part of any Service Oriented Architecture cloud infrastructure to allow applications to talk to Azure. Developers can install a client-side managed class library that contains functions that can make calls to the Azure Windows Services Platform API as part of their applications. These API functions have been added to Microsoft Visual Studio as part of Microsoft's Integrated Development Environment (IDE). There are plans to add IPsec connectivity to Azure in the near future. IPsec refers to the Internet Protocol Security protocol suite for creating a secure Internet connection between two endpoints. IPsec provides for authenticated communication using session-based negotiation and the exchange of cryptographic keys to enable encrypted communication to be sent and decrypted. IPsec is an IETF standard that is in wide use.

The Azure Service Platform hosts runtime versions of .NET Framework applications written in any of the languages in common use, such as Visual Basic, C++, C#, Java, and any application that has been compiled for .NET's Common Language Runtime (CLR). Azure also can deploy Web-based applications built with ASP.NET, the Windows Communication Foundation (WCF), and PHP, and it supports Microsoft's automated deployment technologies. Microsoft also has released SDKs for both Java and Ruby to allow applications written in those languages to place calls to the Azure Service Platform API to the AppFabric Service.

The Windows Azure service

Windows Azure is a virtualized Windows infrastructure run by Microsoft on a set of datacenters around the world. In Figure 10.4, the dashed oval encloses the portion of the Windows Azure Platform that is Azure itself—that is, the portion of the platform that is the IaaS part, which is shown in more detail in Figure 10.5.

Six main elements are part of Windows Azure:

Application: This is the runtime of the application that is running in the cloud.

Compute: This is the load-balanced Windows server computation and policy engine that allows you to create and manage virtual machines that serve either in a Web role and a Worker role.

A Web role is a virtual machine instance running Microsoft IIS Web server that can accept and respond to HTTP or HTTPS requests. A Worker role can accept and respond to requests, but doesn't run IIS in that virtual machine. Worker roles can communicate with Azure Storage or through direct connections to clients.

Storage: This is a non-relational storage system for large-scale storage.

Azure Storage Service lets you create drives, manage queues, and store BLOBs (Binary Large Objects). You manipulate content in Azure Storage using the REST API, which is based on standard HTTP requests and is therefore platform-independent. Stored data can be read using GETs, written with PUTs, modified with POSTs, and removed with DELETE requests.

Azure Storage plays the same role in Azure that Amazon Simple Storage Service (S3) plays in Amazon Web Services. For relational database services, SQL Azure may be used.

Fabric: This is the Windows Azure Hypervisor, which is a version of Hyper-V that runs on Windows Server 2008.

Config: This is a management service.

Virtual machines: These are instances of Windows that run the applications and services that are part of a particular deployment.

FIGURE 10.4

The Windows Azure Platform extends applications running on other platforms to the cloud using Microsoft infrastructure and a set of enterprise services.

9780470903568-fg1004.eps

FIGURE 10.5

Windows Azure is a virtualized infrastructure that provides configurable virtual machines, independent storage, and a configuration interface.

9780470903568-fg1005.eps

Table 10.1 shows the different Virtual Machine sizes available on Windows Azure.

TABLE 10.1

Windows Azure Virtual Machine Sizes

VM Size1

CPU Cores

Memory (GB)

Disk Space for Local Storage Resources (GB)

Small

1

1.7

250

Medium

2

3.5

500

Large

4

7

1000

ExtraLarge

8

14

2000

1. Microsoft has not released information that would allow you to match VM sizes to physical systems based on real CPUs.

The portion of the Azure environment that creates and manages a virtual resource pool is called the Fabric Controller. Applications that run on Azure are memory-managed, load-balanced, replicated, and backed up through snapshots automatically by the Fabric Controller.

Windows Azure AppFabric

Azure AppFabric (http://msdn.microsoft.com/en-us/windowsazure/netservices.aspx) is a Service Bus and Access Control facility based on .NET technology for client requests to Web services on Azure. Previously, these services were called Microsoft .NET Services. Azure AppFabric supports the standard Service Oriented Architecture (SOA) protocols such as REST and SOAP and the WS- protocols.

The function of a service bus in an SOA is to expose distributed services as an endpoint with a specific URI that clients can request services from, as shown in Figure 10.6. A particular set of endpoints and its associated Access Control rules for an application is referred to as the service namespace. Each namespace is assigned a management key that is part of the security mechanism. The Service Bus service registry makes endpoints discoverable, if so configured.

Azure AppFabric manages requests by locating the service, communicating the request, and making the necessary connection possible by performing network address translation, opening appropriate ports in any intervening firewalls. AppFabric manages the transaction to ensure that it is completed and that a response is sent to the client. A service bus also can serve to negotiate the exchange of information between a client and the service.

Azure AppFabric acts as an SOA service bus, as shown in Figure 10.6. AppFabric can provide a negotiated traversal of services through firewalls and NATs as a relay service using the Service Bus' rendezvous address. A rendezvous address not only includes the service URI, but also includes the namespace of the service bus. Alternatively, if both applications comply to .NET Services a direct connection between the applications can be used instead with the required NAT traversal information for the direct connection provided by the relay service of the Service Bus. NAT (Network Address Traversal) is a system for creating and maintaining Internet connections for TCP or UDP traffic where the connection point is hidden behind a router or a firewall and routing is performed by one of several possible mechanisms.

Cross-Ref

In Chapter 13, “Understanding Service Oriented Architecture,” the role of a service bus in a Service Oriented Architecture is more fully explored.

The Access Control portion of Azure AppFabric is a claims access control system that provides a token-based trust mechanism for identity management. An application or user, as shown on the right of Figure 10.7, presents a claim for a service from an application on the left. The Access Control examines the request, and if it finds it to be valid, it grants a security token to the client.

FIGURE 10.6

Azure AppFabric service pathways

9780470903568-fg1006.eps

These steps are associated with Access Control:

1. The client requests authentication from Access Control.

2. Access Control creates a token based on the stored rules for server application.

3. A token is signed and returned to the client application.

4. The client presents the token to the service application.

5. The server application verifies the signature and uses the token to decide what the client application is allowed to do.

Access Control allows one application to trust the identity of another application. This mechanism can federate with identity providers such as Active Directory Federation Services (ADFS v2) to create distributed systems based on SOA.

Note

“AppFabric” is also used by Microsoft for the name of its local server deployment technology called Windows Server AppFabric (http://msdn.microsoft.com/en-us/windowsserver/ee695849.aspx). Windows Server AppFabric enables Web data caching for application data and provides managed services using WindowsWorkflow Foundation and the Windows Communication Foundation. There are plans to integrate Windows Server AppFabric into the Azure platform AppFabic.

FIGURE 10.7

Azure AppFabric Access Control enables secure application requests through a token mechanism.

9780470903568-fg1007.eps

Microsoft likes to refer to the Azure AppFabric as an “Internet Service Bus” to differentiate it from the standard Enterprise Service Bus (ESB) that you find in SOA architectures. AppFabric has all the same components of an ESB, namely service orchestration, federated identity, access control, a namespace, service registry, and a messaging fabric, but it locates these components in the cloud. Often ESBs are located on LANs. According to Microsoft, this approach abstracts away from application developers the challenges related to NAT traversal, DDNS (Dynamic DNS), and UPnP. ESBs are described in Chapter 13; please refer to that chapter for further discussion on this topic.

Azure Content Delivery Network

The Windows Azure Content Delivery Network (CDN) is a worldwide content caching and delivery system for Windows Azure blob content. Currently, more than 18 Microsoft datacenters are hosting this service in Australia, Asia, Europe, South America, and the United States, referred to as endpoints. CDN is an edge network service that lowers latency and maximizes bandwidth by delivering content to users who are nearby.

Any storage account can be enabled for CDN. In order to share information stored in an Azure blob, you need to place the blob in a public blob container that is accessible to anyone using an anonymous sign-in. The Azure portal lists the domain name of the blob container in the form http://<guid>.vo.msecnd.net/. You also can register a custom domain name for a Windows Azure CDN endpoint.

For content in a public container named “Box” in the storage account named “MyAccount,” a user would access the content with one of the following URLs:

• Windows Azure Blob services URL: http://<MyAccount>.blob.core.windows.net/<Box>/

• Windows Azure CDN URL: http://<guid>.vo.msecnd.net/<Box>/

When the Blob service URL is used, the request is redirected to the closest CDN endpoint to the client. The CDN service searches that location and serves the content; if the content isn't found, the CDN retrieves the Blob from the Blob service, caches the content, and then serves it to the user. Parameters can be set that determine how long content is cached (Time-To-Live, TTL), with the default being 72 hours.

SQL Azure

SQL Azure is a cloud-based relational database service that is based on Microsoft SQL Server. Initially, this service was called SQL Server Data Service. An application that uses SQL Azure Database can run locally on a server, PC, or mobile device, in a datacenter, or on Windows Azure. Data stored in an SQL Azure database is accessed using the Tabular Data Stream (TDS) protocol, the same protocol used for a local SQL Server database. SQL Azure Database supports Transact-SQL statements.

Azure data is replicated three times for data protection and writes are checked for consistency. SQL Azure eventually will support the Microsoft Sync Framework providing a facility for SQL Azure Databases to synchronize their data with local databases.

There is a current limit of 10GB for each SQL Azure Database. Queries against a single database are unified. However, if the storage size exceeds the limit, then data must be partitioned into logical sets and queries need to be structured to account for this partitioning. For example, names in a database might have to be partitioned A-K, L-R, and S-Z. SQL Azure Database is a shared database environment, and limitations are placed on how long a query can run or how many resources a query can use.

Note

Microsoft hopes to create a cloud-based global data marketplace using SQL Azure for stored information, a project that it has codenamed “Dallas.” Applications will then be able to access both private and public domain data such as imagery, census data, statistical data, and other premium content using REST protocols. You can read about Microsoft's plans for Dallas at http://www.microsoft.com/windowsazure/dallas/.

From the standpoint of any application, an SQL Azure Database looks like and behaves like a local database with a few exceptions. The current exceptions are that the SQL Common Language Runtime (CLR) and support for spatial data were not included, although support will be added later for them. The biggest difference is that because SQL Azure is managed in the cloud, there are no administrative controls over the SQL engine. You can't shut the system down, nor can you directly interact with the SQL Servers.

Windows Azure pricing

Prices for working with the Windows Azure Platform are based either on a “consumption” (pay-as-you-go) model or through various contracts for levels of monthly service that Microsoft calls “commitments.” When you exceed the subscription level of your commitment, the additional usage is charged on the consumption model.

Current pricing for Windows Azure is as follows:

• Compute: $0.12 / hour

• Storage: $0.15 / GB stored / month

• Storage transactions: $0.01 / 10K

• Data transfers (excluding CDN): $0.10 in / $0.15 out / GB ($0.30 in / $0.45 out / GB in Asia)

• CDN data transfers: $0.15 GB for North America and Europe ($0.20 GB elsewhere)

• CDN transactions: $0.01 / 10K

A transaction is an application request.

In the Windows Azure Service Level Agreement, Microsoft states that it guarantees an external connectivity between two or more role instances that are located in different Azure domains of at least 99.95 percent uptime. The connection between storage and Microsoft's Content Delivery Network (CDN, described below) is stated to be at least 99.9 percent uptime.

SQL Azure charges are based on two different programs:

• Web Editions: Up to 1GB database = $9.99 / month; up to 5GB database = $49.95 / month

• Business Edition: Up to 10GB database = $99.99 / month; up to 20GB database = $199.98 / month; up to 30GB database = $299.97 / month; up to 40GB database = $399.96 / month; up to 50GB database = $499.95 / month

• Data transfers: $0.10 in / $0.15 out / GB ($0.30 in / $0.45 out / GB in Asia)

Note

The various consumption and subscription offers for the Windows Azure platform are summarized on the Pricing page at http://www.microsoft.com/windowsazure/pricing/.

These are the charges for Windows Azure Platform AppFabric:

• Access Control transactions of $1.99 / 100K transactions

• Service Bus connections: $3.99 per connection on a “pay-as-you-go” basis, $9.95 for a pack of 5 connections, $49.75 for a pack of 25 connections, $199 for a pack of 100 connections, and $995 for a pack of 500 connections

• Data transfers: $0.10 in / $0.15 out / GB ($0.30 in / $0.45 out / GB in Asia)

Given that Windows Azure is a relatively new service and that IaaS likely will become a very competitive market, pricing is sure to change over time. You should definitely check the pricing page for current pricing if you are thinking of deploying on Azure.

Microsoft offers a TCO calculator for the Windows Azure Platform that you may find useful in determining your costs and savings. To access the calculator use the following link: http://www.microsoft.com/windowsazure/economics/#tcoCompare-LB. The calculator was described in brief in Chapter 2, “Computing the Total Cost of Ownership.”

Windows Live services

Windows Live is a collection of cloud-based applications and services, some of which can be used inside applications that run on Windows Azure Platform. Some Windows Live applications run as standalone applications and are available to users directly through a browser. Others are services that add capabilities to the Windows Azure Platform as part of Microsoft's software plus services strategy.

Microsoft has rolled out Windows Live in sets of releases they describe as four waves. The first wave was a rebranding of several Microsoft MSN applications and services in late 2005. More applications including Windows Mail, Windows Photo Gallery, and Windows Movie Maker were unbundled from Vista and rolled into a downloadable software suite called Windows Live Essentials. There has been continuous development, branding, marketing, and rebranding of the Windows Live portfolio that has had many people scratching their heads. Many Windows Live applications have been rolled into other services or discontinued entirely.

Here's what I believe the current situation is with Windows Live. If an application is bundled as part of an additional download for desktop users, it is part of the Windows Live Essentials package. Some applications that are part of Windows Live are standalone products, while others are extensions of existing Microsoft commercial software. An example of a standalone product would be Windows Live Calendar. An example of a cloud-based line extension is Windows Live Office, described more fully in Chapter 16.

Some parts of the Windows Live portfolio are shared applications and services that are accessible to developers, and those services are the Windows Live Services that are one component of the Windows Azure Platform. Developers access the services for Windows Live Services through a collection of APIs and controls called Windows Live Messenger Connect (previously called Live Services and Windows Live Dev). Using these APIs and controls, developers can add Windows Live Services capabilities and data to their application.

Note

To learn more about Windows Live Messenger Connect, visit the MSDN site's documentation found at http://msdn.microsoft.com/en-us/library/ff749458.aspx.

Messenger Connect was released as part of the Windows Live Wave 4 at the end of June 2010, and it unites APIs such as Windows Live ID, Windows Live Contacts, and Windows Live Messenger Web Toolkit into a single API. Messenger Connect works with ASP.NET, Windows Presentation Foundation (WPF), Java, Adobe Flash, PHP, and Microsoft's Silverlight graphics rendering technology through four different methods:

• Messenger Connect REST API Service

• Messenger Connect .NET and Silverlight Libraries

• Messenger Connection JavaScript Libraries and Controls

• Web activity feeds, either RSS 2.0 or ATOM

Table 10.2 lists the current services that can be used by Windows Live Messenger Connect in applications and Web sites.

TABLE 10.2

Windows Live Services

Service Name

URL

Microsoft Description

Admin Center

Windows Live Admin Center SDK

A management utility for a domain using SOAP and RPC.

Alerts

Windows Live Alerts for RSS Feeds

Enables Windows Live Alerts from an RSS feed.

Alerts

Windows Live Alerts SDK

Allows developers to add Windows Live Alerts notification service to an application using SOAP.

Contacts

Windows Live Contacts API

Allows developers to use REST to query the Windows Live People Address Book, as well as to adjust permission to contact data based on the Windows Live ID Delegated Authentication protocol.

FeedSync

FeedSync

Synchronizes information obtained from RSS and ATOM sources.

Live Framework

Live Framework SDK

An API for building Live Mesh application based on Windows Live Services.

Live Framework

Live Framework Tools for Visual Studio

Includes the Live Mesh tools from Visual Studio 2008 and Visual Web Developer Express Edition 2008.

Messenger

Web Toolkit

UI controls for building Web applications using Windows Live Messenger.

Messenger

IM Control

A set of controls that can enable instant messaging in an application.

Messenger

Presence API

An API that can be used to indicate a Windows Live Messenger's presence and control instant messages to that person's browser using a set of HTTP commands.

Photo Gallery

Windows Live Photo Gallery SDK

Allows for the creation and editing of photos and videos using the Publishing Plug-in Platform of Windows Live Photo Gallery inside applications.

Spaces

Windows Live Spaces MetaWeblog API

An API that can use XML-RPC calls to get and send Weblog data.

Spaces

Windows Live Spaces API and Feeds

An API that integrates Windows Live Spaces, Windows Live Events, Windows Live Photos, and Windows Live Profile into applications.

Web Gadgets

Gadgets SDK

Lightweight, single-purpose applets that can run on Windows Live Personalized Experience and Windows Live Spaces.

Windows Live ID

Web Authentication

Used to integrate Windows Live ID authentication into a Web site.

Windows Live ID

Delegated Authentication

Allows an application to access data for an authenticated Windows Live ID user from Web services and sites that accept that authentication.

Windows Live ID

Client Authentication

An API for Windows Live ID sign-in from a desktop application.

Writer

Windows Live Writer SDK

Allows applications to incorporate the features of the Windows Live Writer in their application. Additional capabilities include features for creating and managing blogs, adding more content, and customizing the Windows Live Writer user interface.

Reference: Based on http://en.wikipedia.org/wiki/Windows_Live_Messenger_Connect. An API for Bing and the toolbar is also available as a service.

Using Windows Live

Windows Live includes several popular cloud-based services. The two best known and most widely used are Windows Live Hotmail and Windows Live Messenger, with more than 300 million users worldwide. Windows Live is based around five core services:

• E-mail

• Instant Messaging

• Photos

• Social Networking

• Online Storage

A user or application can consume Windows Live in a number of ways. Some Windows Live applications are entirely cloud-based Web services, so users can use these applications from within any browser. The Office Live applications described more fully in Chapter 16, “Microsoft Office Web Apps,” is an example of this sort of service. Some of these services are aimed at mobile devices and are referred to as Windows Live for Mobile (described below), and they are consumed on conforming mobile devices. Some of these applications are client-side applications that you download from Windows Live for use on your desktop, of which Windows Live Essentials is the primary example.

You can access Windows Live services in one of the following ways:

• By navigating to the service from the command on the navigation bar at the top of Windows Live

• By directly entering the URL of the service

• By selecting the application from the Windows Live Essentials folder on the Start menu

If you haven't signed into Windows Live during your session, Windows Live requests that you do so before allowing you to proceed.

Table 10.3 lists the current offerings of Windows Live Services.

TABLE 10.3

Windows Live Services Offerings

Service Name

URL

Description

Windows Live Account

http://account.live.com/

Management service for Windows Live ID and relationships.

Windows Live Admin Center

http://admin.live.com/

E-mail hosting for Web site owners.

Windows Live Alerts

http://alerts.live.com/

Generates alerts sent to e-mail, mobile device, or Windows Messenger.

Windows Live Calendar

http://calendar.live.com/

Calendar service with appointments, meetings, and events; can be shared with others.

Windows Live Contacts

http://contacts.live.com/

Address book service with synchronization feature.

Windows Live Devices

http://devices.live.com/

Synchronization and remote access service for files stored on PCs and mobile devices.

Windows Live Essentials

http://essentials.live.com/

Downloadable applications that supplement Microsoft Windows.

Windows Live Family Safety

http://fss.live.com/

Allows you to manage and monitor your children's Internet activity so they can surf the Web more safely.

Windows Live FrameIt

http://frameit.live.com/

Adds an RSS feed to digital photo frame devices.

Windows Live Gallery

http://gallery.live.com/

A collection of developer add-ons for Windows Live products.

Windows Live Groups

http://groups.live.com/

A group discussion, collaboration, sharing, and coordination tool.

Windows Live Home

http://home.live.com/

A personalization Web page and tool for Windows Live with status information and navigation features.

Windows Live Hotmail

http://hotmail.com/

A Web-based free e-mail service with contacts and calendar.

Windows Live ID

http://login.live.com/

A sign-on service shared by Windows Live applications.

Windows Live Mail

http://mail.live.com

Desktop e-mail client with RSS; replaces Outlook Express and Windows Mail. You can use Live Mail to manage Gmail or Yahoo! Plus Mail accounts, as well as your POP e-mail services.

Windows Live Messenger

http://messenger.live.com/

Allows you to chat instantly with friends and family on your desktop, on the Web, and on your mobile phone.

Windows Live Messenger Companion

http://essentials.live.com/

Windows Live Essentials add-on for Internet Explorer; shares link to a page on the site you're visiting. You can see the page and add a comment.

Windows Live Movie Maker

http://essentials.live.com/

Allows you to create beautiful, memorable movies and then publish to the Web in a few clicks.

Windows Live Office

http://office.live.com/

Contains document creation and editing tools based on Office, Excel, PowerPoint, and OneNote with Windows Live SkyDrive storage.

Windows Live OneCare Safety Scanner

http://safety.live.com/

Consists of a PC scanner for viruses, spyware, and other malware. Features include disk cleaner, defragmenter, port scanner, and registry cleaner.

Windows Live Photo Gallery

http://photogallery.live.com/

Allows you to edit, organize, tag, and share your photos.

Windows Live Photos

http://photos.live.com/

Photo storage and sharing service. You can use the service to publish photos to third-party photo services.

Windows Live Profile

http://profile.live.com/

Profile information management service for user information.

Windows Live SkyDrive

http://skydrive.live.com/

Online file storage system service.

Windows Live Spaces

http://spaces.live.com/

Social networking, blogging, and photo-sharing site.

Windows Live Sync

http://sync.live.com/

File synchronization and sharing site based on Live Mesh; originally called folder share.

Windows Live Writer

http://writer.live.com/

Allows you to compose a blog post, add your photos and links to your videos, and then publish to the Web. You can post the blogs from Writer to Blogger, WordPress, and other services.

The following Windows Live services have been discontinued or rebranded:

• Windows Live Agent

• Windows Live Barcode

• Windows Live Call (now part of Windows Live Messenger)

• Windows Live Events

• Windows Live Expo

• Windows Live Favorites (now Part of Windows Live SkyDrive)

• Windows Live Help Community

• Windows Live Hotspot Locator (now MSN WiFi Hotspots)

• Windows Live OneCare (now Microsoft Security Essentials)

• Windows Live Personalized Experience

• Windows Live QnA (now MSN QnA)

• Windows Live Search Center (now Windows Search 4)

• Windows Live Shopping (now Bing Shopping)

• Windows Live Toolbar

• Windows Live TV

• Windows Live Video Messages

• Windows Live Web Messenger (now part of Windows Live Web services)

• Windows Live WiFi Center

Windows Live Essentials

Windows Live Essentials applications are a collection of client-side applications that must be downloaded and installed on a desktop. Some of these applications were once part of Windows and have been unbundled from the operating system; others are entirely new. Live Essentials rely on cloud-based services for their data storage and retrieval, and in some cases for their processing.

Windows Live Essentials currently includes the following:

• Family Safety

• Windows Live Messenger

• Photo Gallery

• Mail

• Movie Maker

The download page for Windows Live Essentials (http://essentials.live.com/) is shown in Figure 10.8. All the Windows Essentials are downloaded as a single file. This page also has links to download related software such as the Bing bar (which replaces the Windows Live Toolbar), Microsoft Office Outlook Connection, Office Live Add-in, and Microsoft Silverlight. When you install Windows Live Essentials, shortcuts for these programs are placed on the Windows Start menu.

Windows Live Essentials help alleviate a long-standing problem of Microsoft with Windows by allowing Microsoft to unbundle some of its add-on applications for the operating system so they don't compete with other vendors' products unfairly. Live Essentials moves these applications partially onto the cloud, while making them available easily as a download and a service. Shown in Figure 10.9 is Windows Live Family Safety, which is a Web filter and activity reporting tool for Windows accounts on a per-machine basis.

FIGURE 10.8

The Windows Live Essentials home page (http://essentials.live.com/) provides links to the downloads of Microsoft's cloud-based client-side applications, the application's own page, as well as links to download related software.

9780470903568-fg1008.tif

FIGURE 10.9

Windows Live Essentials is available from the Start menu as a set of commands.

9780470903568-fg1009.tif

Windows Live Home

Windows Live Home is the central access page or portal for the Windows Live suite. An example is shown in Figure 10.10. The page provides navigation, lists activities, provides access to e-mail, shows your RSS feeds, and lists your account name and some related information. What you see on this page is customizable and depends on the services to which you are subscribed. The page can be themed, which changes the color, fonts, and look of the page.

These are the most commonly used features on Windows Live Home:

• Launching other Windows Live services

• Viewing e-mail headers from Hotmail and private messages from other users

• Viewing activity of people you follow

• Displaying weather information and RSS feed updates

• Managing calendars and events

• Viewing photos

• Modifying profile and relationships

FIGURE 10.10

Your personalized home page for Windows Live (http://live.microsoft.com/home) contains content and ads.

9780470903568-fg1010.tif

Windows Live for Mobile

Microsoft has a number of Windows Live services that are specifically meant to be run on mobile devices or cell phones that it calls Windows Live for Mobile (http://mobile.live.com). Some of these services run on the Windows Mobile platform, some are Web-based applications that conform to the lightweight Wireless Application Protocol (WAP) or on GPRS (General Packet Radio Service) browser, and some support SMS (Simple Message Service) systems. The current list of these services includes the following:

• Live Mesh Mobile

• Windows Live Calendar Mobile

• Windows Live Contacts Mobile

• Windows Live Groups Mobile

• Windows Live Home Mobile

• Windows Live Messenger Mobile

• Windows Live Office Mobile

• Windows Live Profile Mobile

• Windows Live SkyDrive Mobile

• Windows Live Spaces Mobile

To download these client applications on supported devices, go to http://gowindowslive.com/mobile and select the download.

Summary

In this chapter, I described Microsoft cloud computing strategy. Microsoft seeks to extend its products into the cloud using a software plus service approach. In this model, the cloud is yet another platform, and applications can run locally and access cloud services, run in the cloud and be made available through SOA standard protocols, or some combination of both.

Microsoft's cloud operating system is called Windows Azure. Windows Azure is a hosted environment of virtualized systems tied together in a fabric using a service called AppFabric. This is offered to developers in the form of an Infrastructure as a Service model similar to Amazon Web Services. To Windows Azure is added a cloud-enabled version of the .NET Framework originally called .NET Services, which are now part of Azure AppFabric. This approach lets developers extend their applications into the cloud using development tools that they already possess with the minimum amount of reconfiguration. Microsoft has added a number of additional services and the entire offering is now a Platform as a Service cloud model that Microsoft calls the Windows Azure Platform.

The other major component of Microsoft's cloud computing strategy is a collection of user applications and related services called Windows Live. Some Windows Live applications are client-side applications, many others are Web-based applications, some are mobile apps, and an important subset of these services is available to developers through the Windows Live Messenger Connect APIs. The various offering in Windows Live were discussed in this chapter.

In Chapter 11, “Managing the Cloud,” you learn about some of the management tools used to work with cloud applications and methods used for application deployment.