| By Thomas Abraham | Article Rating: |
|
| August 19, 2008 10:15 AM EDT | Reads: |
4,789 |
Services are all the rage these days, but there's a lot more to building a service than just slapping an interface on top of some business and data access logic. Robust services need to take into account usage patterns, security, reliability, scalability, monitoring, and more. Covering all of those areas is not a simple task, which is why you should consider building your services using Microsoft BizTalk Server 2006 R2. BizTalk is an extensive development and runtime platform that includes workflow, monitoring, service hosting, message tracking, management tools, centralized configuration, a rules engine and more. In other words, it includes a vast amount of code that you don't need to write the next time you create a service!
This article will walk you through the process of designing and building a service using a contract-first design approach on top of BizTalk's infrastructure and its integration with Windows Communication Foundation (WCF). This article is neither a comprehensive introduction to BizTalk nor to WCF, so it will help to have some existing experience with these technologies.
First of all, let's talk briefly about services. The goal behind creating a service is simply to encapsulate some useful functionality behind one or more structured interfaces, or "contracts." We all know that we can browse a fast-food menu, make a selection, pay for it, and get food in return. It is not important to us how the food was created, where the money was stored, who decides what ingredients need to be reordered and when, and so on. This real-world example of abstraction and encapsulation is exactly what we are striving to accomplish with our own services.
Before we move on, let's establish that "service" does not equate to Web Service. True, a service may be exposed as a Web Service, but it may also be an endpoint of a message queue, a TCP endpoint, a Distributed COM server and so on. Whether we walk up to a fast-food restaurant counter or use the drive-in window, the transaction is the same. Windows Communication Foundation (WCF) is the framework that we can use to expose our services to these various transports, and BizTalk Server 2006 R2 includes built-in support for both creating and consuming WCF services. In the remainder of this article we'll be focused on creating services with WCF in combination with BizTalk.
A common method for designing service interfaces today is called "contract-first" design. A "contract" specifically defines the way that clients will interact with a service and what data passes from client to service and back. The typical and interoperable format for data contracts in a service is XML Schema (XSD), and here we will define our service's data structures and messages entirely in XSD. Visual Studio does not provide any visual tools that are specific to contract-first design. BizTalk, on the other hand, natively works with XML Schemas, so contract-first design is very straightforward. For more background on contract-first design, please check out a couple of Aaron Skonnard's "Service Station" columns in MSDN Magazine (http://msdn2.microsoft.com/en-us/magazine/cc163850.aspx, http://msdn2.microsoft.com/en-us/magazine/cc163800.aspx).
Published August 19, 2008 Reads 4,789
Copyright © 2008 SYS-CON Media, Inc. — All Rights Reserved.
Syndicated stories and blog feeds, all rights reserved by the author.
More Stories By Thomas Abraham
Thomas Abraham, MCPD, MCT, is an Enterprise Consultant with Minneapolis, MN-based management and technology consulting firm Digineer (www.digineer.com). Thomas maintains a blog at http://blogs.digineer.com/blogs/tabraham.
- Kindle 2 vs Nook
- Wave on Ulitzer: Confessions of a Google Wave Fanboy
- Confessions of a Ulitzer Addict
- Cloud Computing Best Practices
- IBM Hardware Chief, Intel VC Exec Arrested in Insider Trading Scam
- Tactical Cloud Computing Panel at 1st Annual GovIT Expo
- Ulitzer.com Named Exclusive "New Media" Sponsor of Cloud Computing Conference & Expo
- Infrastructure-as-a-Service Will Mature in 2010: Microsoft's David Chou
- Social Media on Ulitzer - Strategy Nets New AUM for RIA
- Windows 7 – Microsoft’s First Step to the Cloud
- GITEX TECHNOLOGY WEEK 2009 Exhibitor Profiles
- Cloud Computing & Federal IT - What Does the Future Hold?
- Kindle 2 vs Nook
- Practical Approaches for Optimizing Website Performance
- The Difference Between Web Hosting and Cloud Computing
- Ajax in RichFaces 3.3, JSF 2 and RichFaces 4
- Contrary Opinion: Why Silverlight is Good for Adobe
- Wave on Ulitzer: Confessions of a Google Wave Fanboy
- Confessions of a Ulitzer Addict
- Cloud Computing Best Practices
- IBM Hardware Chief, Intel VC Exec Arrested in Insider Trading Scam
- Tactical Cloud Computing Panel at 1st Annual GovIT Expo
- Ulitzer.com Named Exclusive "New Media" Sponsor of Cloud Computing Conference & Expo
- WPF Controls by DevExpress
- Google Maps and ASP.NET
- Crystal Reports XI & How It Has Changed
- Converting VB6 to VB.NET, Part I
- Creating Controls for.NET Compact Framework in Visual Studio 2005
- Where Are RIA Technologies Headed in 2008?
- How to Write High-Performance C# Code
- AJAX World RIA Conference & Expo Kicks Off in New York City
- Implementing Tab Navigation with ASP.NET 2.0
- i-Technology Photo Exclusive: Bill Gates & Steve Jobs In "Nerds"
- .NET Archives: Getting Reacquainted with the Father of C#
- i-Technology Viewpoint: "SOA Sucks"
- Programmatically Posting Data to ASP .NET Web Applications




































