I'm pleased to announce that all of the content for my book is now complete! As of two weeks ago we've now entered the reviewing/copyedit phase which should last until the end of the year keeping us on track for a March publication. Woo Hoo!
Words cannot express my relief! The last few months have been hell with pretty much every evening and weekend focused on churning the remaining chapters out. However, after now having time to reflect and review the content end-to-end it's been well worth it, the content for the book is amazing and on the whole isn't available anywhere else (books, internet or documentation).
The key focus of the book remains on best practice, distilling all of the experience and techniques used on some of the largest BizTalk deployments. Failure to follow much of this best practice leads typically leads to problems which this book should hopefully address.
Here's a run-down of the chapter content to whet your appetites yet further!
Chapter 1: Technical Primer (Darren Jefford)
This chapter primes the reader on some key technologies which each developer should have a basic understanding of, otherwise they will run into problems during development and testing. I cover XML Schemas, Namespaces, XPath and Serializable classes.
Chapter 2: BizTalk Architecture (Darren Jefford)
This chapter is the only chapter that really deals with explaining the basic BizTalk principles, I position what value BizTalk brings to solutions and to counter the regular discussion I cover what it would take to write a solution without BizTalk and compare to a BizTalk solution. I then run through all the key architectural peices of BizTalk and explain what they do and how they work.
Chapter 3: Adapters (Darren Jefford)
In this chapter we cover the key Adapter concepts, Ports, Retries, Tracking, etc. and then drill into each Adapter supplied with BizTalk to explain what the adapter does, what context properties it promotes and where appropriate and relevant a walk-through to show how to use the Adapter.
We detail the new R2 adapters at a high-level and in-time for publication we'll add downloadable content to demonstrate how to write an adapter using the new WCF Adapter framework shipped with BizTalk Server 2006 R2 (not available at the time of writing sadly).
Chapter 4: Pipelines (Kevin Smith)
In this chapter we cover the core principles of pipelines, IBaseMessage, Pipeline Architecture, Transactions, Stages, Failures, etc. We then provide a full example of how to write a pipeline highlighting the core tenants you must follow to write a great pipeline component, sadly many pipeline components don't follow such best practice and can be the prime culprit in performance problems.
Chapter 5: Orchestrations (Darren Jefford)
In this chapter we cover what Orchestrations look like under the covers, how subscriptions work, Persistence Points (in great detail), Ports, Multi-part messages, Shapes (including how the Parallel shape REALLY works), Promotions, Correlation, Convoys, calling .NET components, Exceptions, etc.
Chapter 6: Business Activity Monitoring (Darren Jefford)
In this chapter we cover all of the BAM concepts (Activities, Continuation, Relationships) and detail how BAM can be used to instrument your solution and in fact your entire enterprise. We then demonstrate in great length how a fictional solution can be instrumented and how the BAM Portal or a custom portal can be created to view this data.
Chapter 7: Rules Engine (Darren Jefford)
In this chapter we cover the Rules Engine principles, explain the rete algorithm theory and show how the rules engine actually executes rules and generally demystify the rules engine. We then explain Policies, Rules, Facts, Data sources, Vocabularies, how to test and critical techniques such as long term fact retrievers.
Chapter 8: Testing (Kevin Smith)
In this chapter we cover what types of testing that you must apply to your BizTalk solution (Unit Testing, Functional Testing, Integration Testing, Performance Testing and tuning, Stress Testing, Overload Testing, User Acceptance Testing, DR Testing and Production Support testing.
We detail in great depth how BizUnit can be used to automate your testing, how you can perform code coverage of your BizTalk solution, how LoadGen can be used to generate load, how you can profile your solution using the Visual Studio profiler, etc.
Chapter 9: Performance and Scalability (Darren Jefford)
In this chapter we cover all of the things you must have in place before beginning any performance testing, such as suitable disk array, SQL Database growth disabled, MaxConnection settings ,etc. Forgetting these often lead to bad performance results.
We then move to explain how to monitor BizTalk, SQL and IIS, explaining all of the relevant performance counters and what they actually mean and also provide a complete reference on what BizTalk throttling is and how it works including explaining all of the various throttling states.
The final section of the chapter is where we cover a number of Common Symptoms, these are problems that I've seen customers run into regularly. Things like High CPU usage, Orchestrations completed/sec drops off suddenly, Low Throughput and explain what the common reasons for this are and things to check to identify the underlying problem.
Chapter 10: Low Latency (Kevin Smith)
In this chapter we cover what Low Latency means to BizTalk solutions and how you can measure it. We then drill into a variety of techniques that you can employ to reduce latency for your solution.
We cover how low latency can be reduced by adjusting configuration settings, calling Send Ports directly from Orchestrations and the implications that you must consider when doing this and how you can call Web Services directly from Orchestrations and how you manage thread issues with this approach.
Chapter 11: Administration (Ewan Fairweather)
In this chapter we cover everything required to administer BizTalk effectively, it's a great resource for Administrators as well as developers. The chapter covers the key administration tools, tasks that you need to undertake and highlights areas that are often overlooked such as SSO maintenance, suspended instances subscriptions, etc.
The chapter also covers in great detail how the SQL Server used by BizTalk needs to be looked after including backup, log shipping and how you can monitor the performance of the SQL Server. The chapter also covers MOM and how it can in conjunction with the BizTalk Management pack greatly simplify management.
Chapter 12: End to End Scenarios (Darren Jefford)
In this chapter I highlight all of the End to End Scenarios that were shipped as part of BizTalk 2006, these are often overlooked but provide full working solutions of real-world customer scenarios that have been fully tested and demonstrate best practice.
Each scenario is supplied with complete source code and provides implementations that you can use within your own solution. I cover each scenario and highlight key deliverables in each scenario such as the code required to use the SSO store for configuration data, an adapter to enable messages to be sent for "manual repair", in-line pipeline invocation, etc.
Chapter 13: BizTalk Best Practices (Darren Jefford)
In this chapter we cover a number of best practices and techniques that have been used in a number of projects, these include Orchestration Message Debatching, handling large messages, storing configuration data, subscribing to failure messages, message controller pattern, never have suspended messages or orchestrations, instrumenting your solution, etc.
Chapter 14: Windows Workflow and BizTalk (Darren Jefford)
In this chapter we position cover the key concepts of Windows Workflow and how it fits with BizTalk Server, demonstrate how the BAM Interceptor for Windows Workflow works which is delivered as part of BizTalk Server 2006 R2 and position how BizTalk, WF and Sharepoint can be used together to provide compelling solutions.