•Brent Stineman delivers his promised Azure Storage – Hands on with Queues, Part 2 post of 4/26/2009 with the details of how to get a list of queues, put a message into a queue, and read/peek at messages with RESTful HTTP Request and Response messages. (Brent doesn’t use the StorageClient class library.)

• Ryan Dunn says “Azure Issue Tracker is temp[orarily] broken with March changes to .NET Services ACS API. Will be fixed soon-ish (crosses fingers)...” in a 4/25/2009 tweet. I should have re-read his Windows Azure and Geneva post of 4/2/2009, which says:

I don't like to basically re-blog what others have written, but I will make a minor exception today, as it is important enough to repeat. My friend and colleague, Vittorio [Bertocci] has explained the current status of the Geneva framework running on Windows Azure today.

The short and sweet is that we know it is not working 100% today and we are working on a solution. This is actually the main reason that you do not see a Windows Azure version of Azure Issue Tracker today.

"I want to enable single sign on and allow enterprises that have their own STS to integrate with us. For companies that don’t have any identity infrastructure in place we want to allow them to login with an ubiqu[it]ous credential like Windows LiveID. How do we do that without spending three months with a security guru?"

The level of hype on cloud computing is heavy, though not surprising if you have any memory for industry trends. MRP, the paperless office, TQM, client-server computing, object-oriented programming, supply chain management, ERP, the Internet — all have been technical advances during whose introductions vendors queued to prove themselves on the leading edge. All eventually became important tools for corporate computing, but none offered the polished silver bullet they promised. Right now, cloud computing is thoroughly in the introductory stage.

“The first guy in gets to establish the space,” says Lynda Stadtmueller, a senior research analyst at Stratecast, a division of Frost & Sullivan. “That’s been the assumption.”

and then concludes with this quote:

“[Cloud computing] is part of our language today,” Stadtmueller says. “You’d better stick the word in somewhere or you’re going to be at a competitive disadvantage.”

They call Windows Azure a cloud example, and not Azure Services Platform. This confusion is consistent with customers and press/blogger sentiment that I am seeing. Windows Azure is a piece of the overall Microsoft cloud play. It’s an application hosting environment, which serves as the foundation, though not required, layer for other code execution paths in the Azure Services Platform. One can build applications that live completely on-premises without using Windows Azure, but utilize other pieces of the Azure Services Platform.

[A]ny company not fully understanding cloud computing economics and not having cloud computing as a tool to deploy where it makes sense is giving up a very valuable competitive edge. No matter how large the IT group, if I led the team, I would be experimenting with cloud computing and deploying where it make sense. I would want my team to know it well and to be deploying to the cloud when the work done is not differentiated or when the capital was better leveraged elsewhere

IT is complex and a single glib answer is almost always wrong. My recommendation is to start testing and learning about cloud services, to take a closer look at your current IT costs, and to compare the advantages of using a cloud service offering with both internal hosting and mixed hosting models.

• IEEE Computer Socity announced on 4/25/2009 the IEEE 2009 International Conference on Cloud Computing(CLOUD-II 2009) to be held September 21-25, 2009 in Bangalore, India. The conference’s theme is “Changes we can lead” (whatever that means) and here’s the promo paragraph:

CLOUD 2009 is the identified hot-topic conference by the 2009 World Congress on Services (SERVICES 2009). The two well-established theme conferences identified by SERVICES 2009 are the 2009 IEEE International Conference on Web Services (ICWS 2009) in July 2009 in USA and the 2009 IEEE International Conference on Services Computing (SCC 2009) in September 2009 in India.

Every RSA Conference has a popular buzzword or phrase. This year it was "the cloud."

In one way or another, vendors were pushing their answer to handling security in the cloud. Cisco unveiled a number of tools and services in the cloud April 21, even though a day later Cisco CEO John Chambers described the idea of securing a virtual cloud network as “a security nightmare.”

A bonus speaker will be Ian Knox, director of product management at Skytap, a Seattle-based cloud computing and virtual lab startup. Knox will talk about using cloud computing for Windows applications and lowering IT lab costs, among other things. All in all, it’s essential stuff for anyone interested in shaping the future of the cloud.

António Costa quotes David Carrera, director of the Cloud Computing (CC) research team at Spain’s Universitat Politecnica de Catalunya (UPC) in his Cloud computing: changing the way we work post of 4/21/2009.

“are ready to run in Amazon EC2 with Novell SuSE Linux and the associated IBM products” at rates ranging from US$0.38/hour for a Standard Small (default) instance type for DB2 Express edition to US$24.35/hour for High CPU Extra Large instances Running IBM WebSphere Portal Server and IBM Web Content Management Server Standard Edition.

Earlier today I spoke with Simon Wardley of Canonical (the commercial organisation that sells support and consultancy for Ubuntu) to hear a little more about what those downloading Ubuntu will get… and what it might mean for the rapidly shifting Cloud landscape.

Primarily this is a defensive (meaning not very creative) move by Oracle (ORCL). IBM would have been a measurably stronger competitor for Oracle with Java and MySQL added to their formidable software stack. So the real value for Oracle is more in IBM not having Sun rather than direct benefits for Oracle. All their statements to the contrary are only corporate posturing. That fact is not going to be good news for Sun employees, who can expect Oracle to make the Sun acquisition highly profitable by dramatically eliminating costs, shutting down initiatives and exiting businesses.

and concludes that Oracle / Sun is better for Microsoft than IBM / Sun.

Today, Oracle announced plans to acquire Sun Microsystems. Gartner is in the process of generating an official position on what this means. You’re going to want to see what we have to say since there will be multiple pieces dissecting this acquisition announcement.

Microsoft’s Identity Lab (Identity Protocols Security Token Service, ipsts) is a set of hosted security token services to support testing of Identity Protocols. The goal of the lab is to provide a set of custom test endpoints to evaluate the interoperability of Identity Protocols amongst multiple partners and vendors. Microsoft promotes its CardSpace credentials as an industry-standard, SAML v1.1-compliant source of identity information.

There are no help buttons on the pages for creating a CardSpace credential, so I captured the following page views to help readers of Chapter 9, “Authenticating Users with .NET Access Control Services” add a CardSpace credential to their computer.

Browse to the Microsoft Identity Lab’s Microsoft Identity Interop Sts Logon page and click the Sign Up button to open the Registration page. Type a fictitious name in the UserName text box, a password in the Password and Confirm Password text boxes, and mark the Accept Terms of Use check box:

Click Submit to open the Claims Configuration page. Accept the default (marked) setting for the By Default, Release the Following Claims to Any Relying Party check box. These are the minimum claims required by most relying parties. Type fictitious names in the First Name and LastName text boxes, accept the referring party’s Email Address (UserName@ipsts.federatedidentity.net).

Click Continue to open the Edit Profile Information/Manage Relying Party Policies page (see Figure 9-09.) The Edit Profile Information link opens a page that lets you add to and edit the information you entered previously; the Manage Relying Party Policies page enables selecting the profile information you release to relying parties:

Click the Edit Profile Information Link to open an expanded version of the Claims Configuration page. Complete the entries with fictitious information and enable their selection for your profile by marking the associated check box:

Click Submit to return to the Edit Profile Information/Manage Relying Party Policies page, click Save to return to the Manage Relying Party Policies and click the Manage Relying Party Policies link to open the Relying Parties page which contains Edit/View buttons for HTTPS and HTTP policies.

Click the EditView button for the https://relyingparty.federatedidentity.net party to open the Edit a Policy page. Mark the check boxes for the profile items you want to release and select the public key file (CertName.cer) for your localhost or other certificate you created for authenticating users:

Click the Download Your Username/Password card button to open the File Download dialog for the InformationCard.crd file, and click Yes when asked if you want to save the card with Windows CardSpace “Geneva” on your local computer. This will add the CardSpace credential to the Windows CardSpace “Geneva” Beta Control Panel applet (Control Panel –> Windows Cardspace “Geneva” in Vista):

Friday, April 24, 2009

Additional diagrams of Steve Marx’s fix for extreme polling bandwidth requirements (Thumbnails2.sln) and the final version with the GridView and thumbnail deletion features (PhotoGallery.sln) will be added as I draw them.

Wednesday, April 22, 2009

The Thumbnails sample project from the Windows Azure SDK (March 2009 CTP)’s Samples.zip file illustrates combining Web and Worker Roles to upload graphics files from the user’s local file system into Azure Blobs and display thumbnail images from these in a bound ListView control. An AJAX UpdatePanel contains the ListView to minimize UI flashing on postbacks. A Worker Role handles the thumbnail generation process asynchronously by polling the ‘thumbnailmaker’ queue at one-second intervals.

Update 4/21/2009: Comment added by Microsoft’s Steve Marx, who wrote the original Thumbnails.sln sample project; details on the method causing the problem; and hourly network usage data from Windows Azure Metrics. See end of this post.

Modifications include the addition of a GridView control to display five attributes of the PhotoGallery blobs having a ‘thumbnails/’ prefix. (The ContentEncoding and ContentLanguage attributes aren’t populated) Another important feature is the ability to delete all but three thumbnails and their source blobs.

Increasing the polling interval from 1 to 10 seconds would reduce the cost to US$ 927.31 /month but might cause unacceptable latency.

Estimated Data Storage Charges Based on Amazon Web Services S3

The average size of the *.png images is ~400 KB and of the thumbnails ~4 KB for a total of 15 * 404 KB = 6.060 MB/user * 1,000 users = 6.06 GB average. AWS charges $0.15/GB*month for S3 storage, so the monthly storage cost would be $0.91/month, which is not significant with 1,000 users.

I’ll run the enhanced version for 24 hours or so and report in an update the stats from the Azure Analytics data for Hosted Services and Storage Accounts.

[T]his has nothing to do with Windows Azure; it's just a question of how best to use AJAX to make a responsive UI. The same optimizations would apply if you're hosting somewhere other than Windows Azure.

My point is that most Web developers don’t write polling apps very often and that Azure Queues with poorly designed code can lead to serious performance and cost problems. Microsoft has been taking a lot of heat lately for sample ASP.NET code and architectural recommendations that don’t meet the .NET Developer community’s definitions of best practices. This is another example.

block where GlobalClass.refreshData boolean variable is set true by the gvBlobs.RowDeleting() event handler and the WorkerRole’s GetMessage() loop and is set false after invoking the DataBind() method.

This updates the page immediately after deleting a thumbnail but, due to timing problems, doesn’t solve the problem with displaying additions immediately. In fact, added thumbnails never appear unless you close and reopen the service connection.

Following are the Hourly Network Usage metrics for 18 hours of continuous operation with (presumably) a single user connected to the oakleaf5 host:

The average for AJAX polling postbacks for the 18 hours is about 30 MB/hour * 24 = 720 MB per day, which is off by a factor of about 2.4 from the previously calculated 848.880 GB/day egress and (19.073 * 60 * 60 * 24)/1000 = 1647.9 GB/day ingress for 1,000 users = 2496.8 MB/day for a single user. Thus, I’m taking a second look at my calculations. Watch for an update later today.

Updates 4/22-24/2009

To make Steve Marx’s alternate polling approach work without throwing a JavaScript exception when adding a thumbnail, add EnablePageMethods=”true” to the ScriptManager declaration:

The 2.4x overcalculation of data ingress and egress load appears to be due to the actual average polling rate being 2.4 seconds, not the expected 1.0 seconds. More investigation as to the reason follows, but it’s probably due to the slow upstream speed of my AT&T DSL connection to the data center.

The dual Web role application has been running in Microsoft's South Central US (San Antonio) data center since September 2009. I believe it is the oldest continuously running Windows Azure application.

About Me

I'm a Windows Azure Insider, a retired Windows Azure MVP, the principal developer for OakLeaf Systems and the author of 30+ books on Microsoft software. The books have more than 1.25 million English copies in print and have been translated into 20+ languages.

Full disclosure: I make part of my livelihood by writing about Microsoft products in books and for magazines. I regularly receive free evaluation software from Microsoft and press credentials for Microsoft Tech•Ed and PDC. I'm also a member of the Microsoft Partner Network.