maandag 16 maart 2009

Windows Azure Introduction

My intention is to write blog posts on a regular basis about Windows Azure. This first blog post is an introduction of Windows Azure. The next blog posts will dig deeper into the components of the Windows Azure Services Platform and will be informing you about developing Azure Services .

At the PDC 2008 in October, Microsoft presented his new operating system for cloud computing: Windows Azure. In this way Microsoft will compete against Amazon, Salesforce.com and Rackspace. What is cloud computing? The cloud is nothing but a collection of servers linked together. Across the world there are thousands of servers. Microsoft has greatly invested in data centers and filled them with servers. The servers are interconnected so that developers can install and run applications and store and retreive their data. The traditional way of deploying an application to a local server is abandoned. The application will now be deployed in the cloud. This provides a number of advantages. I.e. If you use a "normal" server, there is a lot of attention to that server. Which operating system is running on the server? Are the patches installed? What is the license model look like? You don’t have these concerns anymore.





Microsoft Azure Services Platform is a group of cloud technologies, each in turn a specific set of services offering to the developer. As you can see in the picture, the Azure Services Platform are used by applications that run in the cloud, but also by applications that run locally. The components of Azure Services Platform can be used by local applications, for example, running on Windows Server, Windows Vista, Windows Mobile, etc.
The components are:

  • Windows Azure: Windows environment where applications can run and where data can be stored on servers in Microsoft datacenters.
  • . NET Services offers distributed infrastructure services to cloud-based and local applications.
  • SQL Services offers SQL Server-based data services in the cloud.
  • Live Services: The Live Framework provides access to the data of Live applications and others with the Live Framework, you can also synchronize data between desktops, laptops and devices control.

Steve Balmer has announced that Windows Azure relaesed at the PDC 2009. See http://oakleafblog.blogspot.com/2009/02/ballmer-says-azure-will-release-at-pdc.html .


A good starting point to learn about Windows Azure Windows Azure is the Home page Windows Azure and the white paper Introducing the Azure Services of David Chappel. If you want to quickly develop a Windows Azure Service, then take a look at MSDN Virtual Labs .

Other interesting links are:
Windows Azure MSDN
ISV Innovation training: Azure Services for Developers
Microsoft Professional Developers Conference 2008 Virtual Pressroom
PDC Sessions
MSDN Azure Forum

Or read articles (in Dutch):
• TechNet december 2008, page. 36, Microsoft in de cloud met Windows Azure
• .NET Magazine december 2008, page 48, PDC 2008: Azure Services Platform door Bram Veenhof, Web Platform Architect DPE Microsoft Nederland.

vrijdag 6 maart 2009

Hands on Labs TechEd 2006

On Charles Sterling's Weblog, you can find more than 100 Hands OnLabs on Workflow, BizTalk, SQL Server etc.

See http://blogs.msdn.com/charles_sterling/archive/2006/09/05/740899.aspx

maandag 2 maart 2009

Strange way to activate Windows 2008

The activation of Windows 2008 Enterprise (MSDN) is not intuitive.

At this moment I am preparing a presentation about Windows Azure, the new operating system for cloud cumputing from Microsoft. I ‘ve made a VMWare image for developing Windows Azure applications. The base of the development environment is Windows 2008 Enterprise.

Last week, when I started the development environment, a message appeared that the Windows environment has to be activated within 9 days.

OK. Let’s activate. With Start - Control - Panel - System, I got the following screen:



However, after choosing the link 9 day(s) to activate. Activate Windows now the following message appeared:



And after clicking "More information the message DNS name does not exist appeared.



Why?

How to activate then? For Windows 2008 you must activate by clicking the link "Change Product Key" on the "System" screen. Then you fill in the product key (which also is required when installing) and then the activation is complete.

So, you have to fill in the product key,both when installing and when activating Windows 2008. A bit strange.

vrijdag 20 februari 2009

BizTalk HTTP Adapters and GET

The BizTalk HTTP adapter is used for the exchange of information between Microsoft BizTalk Server and applications through the HTTP protocol. Applications can send messages to a server with HTTP POST or HTTP GET. The HTTP adapter receives the HTTP requests and sends it to the BizTalk Server for further processing. And BizTalk Server can send messages to the outside by sending HTTP POST request.

For example, configure the location of the HTTP Receive Adapter as http://servername/vroot/BTSHTTPReceive.dll . When calling http://servername/vroot/BTSHTTPReceive.dll?LocationID=1&MyParam=My% 20Value% 20, the “Inbound Transport Location” property of the message will be / vroot / BTSHTTPReceive.dll and the body of the message will be LocationID = 1 & myparam = My% 20Value% 20. You would expect the HTTP Adapter assembles automatically a nice XML message. But that is not the case. The message can be transformed into XML by using a pipeline. Such a pipeline is easy made by using the flat file schema wizard. The XML can then be picked up by an orchestration.

Now the way back. Imagine shooting a message with location www.destination.com and in the body LocationID = 1 & myparam = My% 20Value% 20 into the HTTP Send Adapter, you would expect that the body would be put behind the location. And that www.destination.com? LocationID = 1 & myparam = My% 20Value% 20 is invoked. This is not the case! The message body will not be put behind the location. Because we were running out of time, we solved this quickly by creating a webservice that translates the location and the get-parameters to a url and invokes it. A more nice solution is developing a custom HTTP Send Adapter that supports GET.

So, the HTTP Receive Adapter supports partially GET. The GET-parameters will be put flat in the body of the message, no XML is made. And the HTTP Send Adapter does not support GET!