Geeks With Blogs
Martin Abbott not just .net
I pre-ordered this book by Richard Seroter and eagerly awaited its delivery, but due to work commitments I have not really been able to give it the time it needed.
Things are a bit quieter now so I thought I’d bite the bullet and work my way through it.
I have to say I rather like the book; it is a good mixture of BizTalk Server 101 and BizTalk Server arcana.
For me the book is split in to 3 distinct parts, with Part 1 covering Chapters 1 – 4 and what I would call “Introduction and Background”, Part 2 covering Chapters 5 – 8 being the meat of the “patterns” of the title and Part 3 covering Chapters 9 – 12 which I would title “New and Next”.
A list of chapter titles is:
  1. Building BizTalk Server 2009 Applications
  2. Windows Communication Foundation Primer
  3. Using WCF Services in BizTalk Server 2009
  4. Planning Service-Oriented BizTalk Solutions
  5. Schema and Endpoint Patterns
  6. Asynchronous Communication Patterns
  7. Orchestration Patterns
  8. Versioning Patterns
  9. New SOA Capabilities in BizTalk Server 2009: WCF SQL Server Adapter
  10. New SOA Capabilities in BizTalk Server 2009: UDDI Services
  11. New SOA Capabilities in BizTalk Server 2009: ESB Guidance 2.0
  12. What’s Next
For those who are not entirely familiar with BizTalk Server, Chapter 1 provides some basic information and enough background to understand the language of BizTalk, whilst Chapter 2 does a similar job for WCF.
Chapter 3 provides a good understanding of how to use WCF within BizTalk Server that would be particularly useful to those who have not played with BizTalk Server 2006 R2 or BizTalk Server 2009.
I have included Chapter 4 in my list of introduction chapters because I think it provides a good discussion on SOA, what it represents and how BizTalk Server applies to it. SOA is a much used and much misunderstood term and the presentation of the subject in the chapter gives a very good summary and by adding the BizTalk slant to it helps balance the chapter in the context of the book and gives a good starting point for having that SOA and BizTalk Server discussion with your CIO/CTO.
From that perspective I think the introduction chapters can almost stand on their own as a thesis on the use of Microsoft technologies for delivery real world services. If you’re comfortable with the technologies, then you could miss out Chapters 1 – 3 I expect, although they are certainly worth a look, but I would recommend not skipping Chapter 4.
From that point on we’re in to the meat of the book and the discussion of “patterns”. I’m not sure I’m entirely comfortable with the use of the word pattern here but that is really just a personal choice of mine as I am more used to the word pattern in a slightly different context, for example Enterprise Integration Patterns.
I’ll not go in to great levels of detail on what each chapter covers, you should go ahead and buy the book for that, but the chapters can be read from beginning to end without any problems. There is a definite flow to the chapters and I don’t think I would recommend just jumping in to the chapter of interest without firstly reviewing the previous chapters.
The basis of Chapter 5 is building knowledge of XSD and ensuring interoperability of data contracts. This forms the bulk of the chapter which closes with a short discussion on endpoint patterns and making sure that you don’t restrict your solution to a tightly coupled receive or receive/response approach.
Chapter 6 covers the use of asynchronous services. There is a discussion on the WCF approach followed by the BizTalk Server approach. Whilst I personally appreciated the WCF discussion I could understand that those people who are very familiar with the WCF stack and the IsOneWay attribute may want to just skip this bit and get on to the BizTalk Server approach. On that note, I wonder if maybe this initial part could actually be trimmed to just text and discussion with references without resorting to examples as perhaps it is really more a WCF subject. The BizTalk Server discussion is comprehensive however. I do find it a shame that the whole WCF implementation in BizTalk Server doesn’t properly support the IsOneWay approach, as that definitely detracts from any true asynchronous discussion. This comes across in the text as well, but the chapter does indicate how you can deliver this without this support. There is good coverage of callbacks and how to get them working in the absence of direct support for WsDualHttpBinding, and the chapter closes out with a favourite of mine queueing. I actually found this chapter the hardest to get through out of the entire book. I didn’t look at the sample code at all whilst reading through the book, instead relying on experience to see me through. This is one of the only chapters where I think I could have done with reviewing the sample code at the same time.
The discussion on Orchestration Patterns in Chapter 7 is on the whole excellent and does a fantastic job of describing approaches you can take to make your BizTalk Server orchestrations more agile and loosely coupled. The only real negative for me is the discussion on the Complex Event Processing (CEP) solution. The section essentially opens by saying you’d probably not want to do CEP in BizTalk Server and pretty much closes out with a Pitfall section on things to avoid doing, so I would probably question why include it in the first place if it is not a great idea. I do not really have much experience in delivery of CEP, but it strikes me that there are far better tools than BizTalk Server to deliver it so including a discussion on it I think just stretches BizTalk Server in to an area that I don’t think it comfortably fits in. That said, the section does clearly indicate that it is not a natural place for BizTalk Server to sit whilst showing how it can be at least in part achieved, so…
The Versioning Patterns discussion in Chapter 8 is very good at delivering a very important SOA message. It does this by concentrating on BizTalk Server versioning approaches obviously, but the discussion itself could be summarised quite easily to be generally applicable.
The “New and Next” chapters (Chapters 9 – 12) cover the functionality that is available in BizTalk Server 2009 for helping deliver SOA capabilities.
In Chapter 9, the WCF SQL Server Adapter is picked out of all the adapters in the BizTalk Adapter Pack 2.0, and this makes perfect sense since it will no doubt be the one most people run in to at least when having a play. It does a great job of going beyond just the basic functionality and presents a couple of examples of how to get behaviour that is not really covered in the documentation.
UDDI Services are covered in Chapter 10. Whilst I guess not strictly specific to BizTalk Server, they have been moved to the BizTalk Server 2009 installation. The chapter covers both the standard UDDI functionality as well as building a solution that “listens” for UDDI changes.
The final main chapter of the book, Chapter 11, discusses the new ESB Guidance 2.0. This is another chapter where I think it helps to have an instance installed and available to help work through the chapter as the subject is quite dry and benefits from a hands-on approach, at least for me. Interestingly, Richard has since pointed out on his blog that the guidance is changing its name to ESB Toolkit 2.0.
Chapter 12 covers some of the next stuff that is coming along from Microsoft, and gives a good starting point for the reader to do more research.
There are perhaps 20 or 30 typos throughout the book but none are major enough to pass any kind of editorial judgement on it.
I think overall the book achieves two things:
  1. It provides a great view of SOA from a BizTalk Server perspective with plenty of examples on how to construct BizTalk Server solutions that adhere to the fundamental tenets of a SOA.
  2. It provides a great overview of SOA itself. I found the way that SOA is discussed with BizTalk Server in mind actually helps to introduce SOA concepts anyway and by the end of the book I felt I was better placed to have a SOA discussion and to certainly make an argument for adoption with BizTalk Server as an important component.
So from this perspective if you’re looking for a book on BizTalk’s approach to SOA you also get a good SOA discussion thrown in. Two books for the price of one!
Overall I really enjoyed the book, it is well written in language that is not too dry and is easy to read, even if some of the subjects are a little dry. I would happily recommend this book and also recommend you take a walk over to Richard’s blog which has a wealth of knowledge and information from a very experienced BizTalk Server MVP.
You can get the source code for the book from here. I’d recommend going through this with the book though as you’ll miss a great deal of context otherwise.
Posted on Friday, June 26, 2009 10:29 AM BizTalk , WCF , SOA | Back to top

Comments on this post: SOA Patterns with BizTalk Server 2009 - Book Review

No comments posted yet.
Your comment:
 (will show your gravatar)

Copyright © martinabbott | Powered by: