Review: Applied Architecture Patterns on the Microsoft Platform

15 November 2010

 

Recently the book ‘Applied Architecture Patterns on the Microsoft Platform’ was released. The book is written by Richard Seroter, Stephen Thomas, Ewan Fairweather, Mike Sexton and Rama Ramani. Yossi Dahan is the technical reviewer. The book is published by Packt Publishing.

Shortly before the book was released, an event was held in Stockholm, Sweden. I was lucky enough to be able to attend. Three of the authors (Richard, Stephen and Ewan) did two long days of presentations. In the humorous and spirited presentations the chapters in the book were discussed accompanied by nice live demos.

I was already interested in this book because these authors are respected and known worldwide as BizTalk and Microsoft experts. After attending the event I was even more interested in reading the book.

A couple of weeks after the event I was contacted by the publisher. They asked me to read the book and write a review on my blog site. Below is my review:

During the last few years the Microsoft platform has evolved in two directions. Extension and enhancement of existing technologies and products has of course continued. A couple of new technologies and products including Windows AppFabric, Windows Azure AppFabric, and StreamInsight have been added to the stack. Architects have the important task of picking the right technology for their specific problem at hand from the broad landscape of technologies and products. Picking the right technology for a new project can be very challenging due to the number of architectural decisions that must be made. Wrong choices in this area can lead to big problems and high costs for companies.

How to pick the right technology or product from the Microsoft stack is exactly what this book is about. It must be said that the book does not try to be the ultimate reference guide with the right pointer for each possible scenario. Instead it equips the reader with the knowledge to decide which technical architecture is most appropriate.

The book can be roughly divided into three parts. The first part (chapter 1) creates an architectural decision framework. The decision framework is one of the tools used in the process of translating requirements into technical solutions.

The second part (chapters 2 through chapter 6) compromises the technology primers. The primers are an introduction to technologies and products used in the book. For each primer, typical use cases are described. There is also a sample solution included for each primer.

The third and final part (chapter 7 to chapter 19) contains the elaboration of a couple of fictitious cases. First, a company with a specific IT problem is introduced. Next, the decision framework from the first chapter is used to determine the best fitting architecture for the IT problem. Finally, the case is implemented in a downloadable sample solution.

In my view, books about architecture tend to be boring and hard to read. This book is absolutely not the case; I really enjoyed reading it. This book fills a gap in the Microsoft architecture guidance.

My favorite things about the book are:

· It provides a broad overview of the Microsoft product and technology stack. Newer technologies like Windows AppFabric and StreamInsight are included.

· The decision framework provides a useful tool for real world scenarios and helps in the design process of translating requirements into software.

· The extensive set of cases (12 chapters) is the main part of the book. It provides architectural information and reusable code that can be used as a starting point for real world scenarios.

This book is a must have for every Microsoft architect and developer.


Monitor BizTalk Server Job in BizTalk 2010

19 October 2010

When looking a the new features of BizTalk 2010 I noticed that the set of SQL Server Agent jobs has been extended. There is new job called ‘Monitor BizTalk Server’.

new sql job

This job is especially good news for those of us responsible for keeping BizTalk Server running and healthy.

The general idea behind the job is to check for errors and report that those errors exist in one of the message box databases, the management or the tracking database. A zombie message is an example of an error that will be detected. For a complete list of all the issues see the BizTalk 2010 help on this topic

The job consists of two steps. The first step is responsible for collecting error data from the different message box databases, the management database and the tracking database. The second step checks the collected data and raises an error if there is an issue in of the databases.

job steps

If any inconsistencies are found the job will fail and will write an error to the application event log. You can easily extend this by configuring other notifications for the job like e-mail, etc.

job notification

The job does not fix any issues it is just provides an alert mechanism. You can other tools like the BizTalk administration Console to fix any issues found.

When running the job on a healthy BizTalk server environment, the job succeeds:

job success

Now I use the following non uniform sequential convoy orchestration to generate a zombie message:

orchestration

I can easily do this by throwing in message 2 (destination receive shape 2) multiple times. The orchestration is only expecting one instance of message 2 which will lead to a zombie message. In the admin console this looks like this:

admin console error

When running the job the second time I now see the following result:

job outcome error

The job history gives me more detailed information of what is wrong:

error job history

This information is also in the event log:

eventlog error

Some final considerations:

  1. By default the job is scheduled to run once a week. You can of course change this schedule if you like.
  2. This seems to be a heavy job in terms of SQL resource usage. Microsoft recommends to run the job during low traffic.
  3. The will not detect if issues have already been reported. When the job runs for the second time and the issues have not been fixed they will be reported again.

I think this is a useful new feature in BizTalk Server 2010. I have seen many clients where issues in the BizTalk databases where not noticed for a long time.


Replacing functoids in BizTalk 2009

19 October 2010

A BizTalk developer recently learned me a great trick to replace funtoids in a map. It looks like a lot of BizTalkers, like me, are unaware of this handy feature.

When you accidentally used the wrong functoid in a map you can replace it by just dragging another functoid on top of it. The old functoid is replaced with the new one. The great part is that all the input and output parameters of the functoid are preserved.

The following video shows how to do this in BizTalk 2009:

BizTalk 2009 Mapper replacing functoids

I haven’t tried but this should also work in BizTalk 2006 (R2). I don’t know about BizTalk 2004.

When trying in BizTalk 2010 I was a little bit surprised to find out that this does not work. See video below:

BizTalk 2010 Mapper replacing functoids does not work

Fortunately there are many other productivity enhancements in the BizTalk 2010 mapper so I think I can live without this replace feature Smile.


BizTalk version number table updated for BizTalk 2010

5 October 2010

The BizTalk version number table has been updated with the latest BizTalk release.

Thanks to Imre Zolnai for triggering me to update it.


BizTalk 2010 RTM

23 September 2010

It is there!

For more information see this link and this link.

There is also a FREE developer edition now, which is great news!


Follow

Get every new post delivered to your Inbox.