Book Image

SOA Patterns with BizTalk Server 2009

By : Richard Seroter
Book Image

SOA Patterns with BizTalk Server 2009

By: Richard Seroter

Overview of this book

SOA is about architecture, not products and SOA enables you to create better business processes faster than ever. While BizTalk Server 2009 is a powerful tool, by itself it cannot deliver long-lasting, agile solutions unless we actively apply tried and tested service-oriented principles. The current BizTalk Server books are all for the 2006 version and none of them specifically looks at how to map service-oriented principles and patterns to the BizTalk product. That's where this book fits in. In this book, we specifically investigate how to design and build service-oriented solutions using BizTalk Server 2009 as the host platform. This book extends your existing BizTalk knowledge to apply service-oriented thinking to classic BizTalk scenarios. We look at how to build the most reusable, flexible, and loosely-coupled solutions possible in the BizTalk environment. Along the way, we dive deeply into BizTalk Server's integration with Windows Communication Foundation, and see how to take advantage of the latest updates to the Microsoft platform. Chock full of dozens of demonstrations, this book walks through design considerations, development options, and strategies for maintaining production solutions.
Table of Contents (18 chapters)
SOA Patterns with BizTalk Server 2009
Credits
About the author
About the reviewers
Preface
Index

Using dynamic service ports


In all the BizTalk solutions we've built so far in this book, the focus was on static ports with URIs set immediately after the code was deployed. However, there exist a number of legitimate cases where BizTalk does not know where to distribute a message until additional runtime-only context is provided. For example, when you configure a send port with an SMTP adapter in BizTalk Server, you are required to explicitly provide the recipient's email address. Any time this port is invoked, that particular email address is applied. But what if the corresponding message could be emailed to any of a number of addresses? You could choose to set up a series of static send ports and summon each one individually based on decision logic from the orchestration. However, this is not a particularly flexible mechanism as it requires changes to the orchestration whenever an email target is added or removed. A better strategy is to apply dynamic ports and perform a runtime query...