Geeks With Blogs

News
Charles Young
Earlier this year, Microsoft released a CTP version of a new technology stack called 'BizTalk Services'.   In July, they updated this with a new release.    It is only now, at long last, that I've got around to playing with BizTalk Services.   I did have an abortive attempt some months ago, but gave up.   My colleague, Andy James (CTO at SolidSoft), has been dropping hints (er..., providing technology-focussed direction) to the consulting team for ages that we should put some effort into exploring this emerging suite of services, but he also reported difficulties in trying to get it to work, and as a consequence, I wasn't too keen to put much time into it.
Last Monday morning, he cornered me and 'suggested' I spend some bench time getting the whole thing working.   I couldn’t really say no any longer.   The task proved really difficult, though, and I only finally succeeded about 10:00 pm Monday evening at home (I had almost succeeded at the office, but firewall issues meant that I couldn't pass messages).    I've now largely worked through the SDK samples, and I must say that I am very pleased that Andy applied some pressure.   This is a really interesting development in the BizTalk world, and having now had a chance to stub my toe against the tyres (I'll leave the full-blown kicking until a future date), I feel something akin to excitement.   Although still at a very early stage of development, it all looks really rather good (NB. please allow for classic British understatement - is US-speak this translates roughly to terms like 'awesome', 'cool', 'it rocks' etc).
My problems in getting the SDK working were varied, and I have posted some notes on the various issues at http://geekswithblogs.net/cyoung/archive/2007/10/09/115942.aspx. This information, of course, is likely to age very quickly as new versions are released.    The most important point here is that you must create an undocumented environment variable in order to select the correct URIs and certificates for the environment you wish to use.   The Environment variable is called RELAYENV, and should be set to either ‘LIVE’ or ‘PPE’.   PPE is the ‘pre-production’ environment, and will sometimes contain a more recent version of the services than the live environment.
So, back to the technology.    You may not, at this stage, have any idea about what BizTalk Services are, so let me explain.   First, you should understand that the technology is only loosely associated with BizTalk Server. Microsoft’s Connected Services Division is increasingly using the term 'BizTalk' as a brand name for anything to do with message routing, EAI, BPM, etc.   BizTalk Services are not tied in any way to the current version of BizTalk Server.   They are not a replacement for BizTalk Server or an attempt to replicate existing BizTalk Server functionality in the cloud, although they may offer services which have some similarity with those offered by BizTalk Server
BizTalk Services are a first step to implementing what Microsoft calls an Internet Service Bus (ISB) in order to support SaaS (Software as a Service) and S+S (Software and Services) models.   The fabric of the ISB is built on Windows Communication Foundation (WCF).   WCF, itself, is a platform-level messaging framework, and part of the .NET Framework.   It is not a product, and is not really a service bus, but it is a (very rich and flexible) foundation on which service buses can be built.   ISB is a service bus built on that foundation.   Interestingly, the main functionality for the ISB provided by the BizTalk Services SDK is packaged in an assembly called System.ServiceBus.dll, which makes it sound like a future extension to the.NET framework libraries.
You may wonder if there is a distinction between SaaS and S+S.   Having listened to Microsoft presentations on this subject, my understanding is that they use these terms broadly as follows.   SaaS, of course, refers to a software delivery model centred on hosted services and the management of multi-tenancy.   Users access services over the Internet and pay for use of those services, rather than licensing software for installation on-premise.   S+S is a broader term.   It refers to the use of SaaS within the context of broader composite applications and 'mash-ups'.    S+S, therefore, is about the exploitation of SaaS in conjunction with on-premise software.
SaaS is a fascinating subject which raises a number of challenging architectural issues.   For example, what are the best design patterns for handling multi-tenancy issues?   Each client must be able to use the service as if they were the only user, and their data and state must be sufficiently isolated.   There are various approaches to handling this, each with its own strengths and weaknesses.   Things get more complex when a single service must support per-user contract customisation, and where different clients have widely different service-level and non-functional requirements.   SaaS is a rapidly emerging field, and we will doubtless see a great deal of evolution of platforms and tools in future years to meet the challenges of implementing this model.
For BizTalk Server developers, the concept of composite applications is familiar territory, especially in regard to the composition of services.   One of the chief reasons for selecting BizTalk Server into an enterprise platform is to exploit its rich support for orchestration of multiple services in conjunction with its EAI features.   BizTalk Server 2006 has a strong concept of 'applications' at the administrative level, and a typical BizTalk application may involve many different interactions with a wide range of external systems and services.   We use BizTalk Server today to build sophisticated applications built around service composition.   In a similar way, Windows SharePoint Services, built on ASP.NET 2.0, provides Microsoft's platform for bringing together disparate data from many different sources within a single presentation tier.   The capabilities of this platform are further extended through Ajax to provide a rich environment for creating mashups and fronting composite applications.   S+S, then, is not exactly a new paradigm.   The term represents the natural evolution of today’s tools and platforms to embrace, more fully, the emerging world of SaaS and the emphasis on composite applications.
BizTalk Services is an enabling technology that broadens the reach and appeal of Microsoft's platform.   It is not an on-line replacement for BizTalk Server, but a natural companion that makes it easier to build composite applications that exploit widely distributed services across the Internet.   Because it is built on WCF, it should be easy to exploit the ISB using the new WCF adapter library in BizTalk Server 2006 R2. I haven't yet proved this, but it should be possible, for example, to use the WCF-Custom adapter to handle authentication against Identity Services via an endpoint behaviour and to pass messages securely via the Connectivity (Relay) Service. There is a lot of emphasis on the use of CardSpace for authentication within BizTalk Services.   However, CardSpace and information cards are not obligatory when using Identity Services, and the SDK supports alternative approaches.   CardSpace, which requires interaction with a user, is clearly not a viable option in the world of BizTalk Server.
I intend to blog further about BizTalk Services over the coming weeks and months.   I have started with an article describing the Identity Services and access control features currently on offer.   You can find this article at http://geekswithblogs.net/cyoung/archive/2007/10/09/115943.aspx.
Posted on Tuesday, October 9, 2007 12:59 PM | Back to top

Related Posts on Geeks With Blogs Matching Categories

Comments on this post: BizTalk Services: An overview

# re: BizTalk Services: An overview
Requesting Gravatar...
Excellent Introductory Article on BizTalk Services
Left by Vinayak on Oct 16, 2008 4:05 PM

Your comment:
 (will show your gravatar)


Copyright © Charles Young | Powered by: GeeksWithBlogs.net