25 Dec 2008 @ 11:51 AM 

To understand the Internet Service Bus Application Pattern we must first understand the concepts of an Enterprise Service Bus (ESB). An ESB is essentially a brokering service that facilitates communication between entities (usually services). Imagine a situation where there is a service that only communicates via TCP on port 1000 and a client that can only make requests over HTTP due to a corporate firewall. An ESB can broker such communication.

For an ESB to be successful it must be flexible. It needs to support many different protocols, be able to communicate synchronously and asynchronously, manage security, translate messages between services, and be programming language agnostic. For more information on what an Enterprise Service Bus is, refer to the Wikipedia article for a detailed description.

So what happens if we want to take these concepts and make them available on the Internet? How would one design an Internet Service Bus (ISB)?

Taking an existing ESB and simply "Internet enabling" it is one such approach, but this doesn’t make it much different from an ESB. One of the key differences is that some of the services need to be hosted in the ISB. That is, users can move some of their service applications into the cloud. Another consideration is security: authentication to use the ISB itself, but also end-to-end security around the brokered communications.

Microsoft have implemented an ISB as a part of their Azure offering, and this naturally manifests itself in the Microsoft .NET Services platform. The ISB is a critical piece of infrastructure in brokering communication and managing workflow. Microsoft has established some important concepts as part of the high level pattern for its own ISB (BizTalk Services):

  • Service Registry
  • Naming
  • Identity and Access Control
  • Connectivity

Service Registry
This is a common registry for storing services hosted by the ISB. This helps mediate the brokering process.

Naming
Applying human readable naming conventions such as a URI to easily identify a particular service

Identity and Access Control
This helps identify what kinds of security mechanisms will be available (for example, Active Directory, Live ID, OpenID, etc) and how to manage the authentication and authorization of various services.

Connectivity
The ISB needs to provide brokering services, but also needs to be able to step out of the picture once a connection is established. Or sometimes having all communications going through the relay can help optimize performance.

Each of the above areas is a blog post unto itself, but the most complicated and detailed aspects of the Microsoft ISB definitely lie in Identity and Connectivity. For example, to create a connection between 2 services, the relay within the ISB must be employed to make that connection. But after this we can control how the connection continues: via the relay or via a direct connection. Sometimes maintaining a relay is important because of services that sit behind firewalls. There are now a whole bunch of new protocols for Windows Communication Foundation (WCF) that support connecting via the ISB.

For more information about the Microsoft ISB, please check these articles/videos:

The Internet Service Bus
InternetServiceBus.org
Architecture of the .NET Services – PDC2008 Video

I recommend the 3rd link above which is a video from PDC which describes the ISB extremely well with practical examples in .NET.

Tags Tags: , , , , , , ,
Categories: Azure
Posted By: Steven Nagy
Last Edit: 25 Dec 2008 @ 11 56 AM

E-mailPermalinkComments (1)
 24 Dec 2008 @ 1:52 AM 

Welcome to my new blog, ‘Above The Cloud’ where I will be exploring “the cloud” as it relates to the development community, with a particular focus (but not limited to) the new Azure Services offering by Microsoft.

At PDC08 Microsoft announced www.azure.com and in their own words:

The Azure Services platform provides a wide range of internet services that can be consumed from both on-premises environments or the internet.

Currently the Azure Services Platform is available on an invitation basis only, however you can apply for an invitation token via the Microsoft Connect program which is their community connection point and a place where you can register for all sorts of trials, alphas, etc. I suggest you sign up to Connect today, have a browse of any previews you might be interested in and apply.

What happens next is that eventually (could be a day, could be a month) Microsoft would widen their invitation base on a particular product, and you will receive an email with an invitation token. Once you receive your Azure token, you can connect to the Azure Services Platform.

Please note that there are a number of different services you can apply for in the Azure space. The 3 primary ones are:

  • Azure Services Platform
  • Microsoft .Net Services
  • Microsoft Sql Services

The first focuses on high availability of web sites and services through load balancing and dynamic allocation of resources. At the click of a button you can take your website from a 3 node cluster to 4. The second is the platform for developing .Net applications in the Azure space. There is an SDK available from here that lets you simulate “the cloud” on your desktop. Finally, Microsoft Sql Services is the cloud-based database offering that will let you store data in the cloud.

All 3 services are available for you to play with now! And this blog will be dedicated to helping you explore all these services, the SDK’s and much more. So go check out www.azure.com now and signup so you can join me as we uncover the mysteries of the cloud.

Tags Tags: , , , , ,
Categories: Azure
Posted By: admin
Last Edit: 24 Dec 2008 @ 02 28 PM

E-mailPermalinkComments (0)
\/ More Options ...
Change Theme...
  • Users » 76
  • Posts/Pages » 61
  • Comments » 96
Change Theme...
  • VoidVoid
  • LifeLife
  • EarthEarth
  • WindWind « Default
  • WaterWater
  • FireFire
  • LiteLight
  • No Child Pages.