Book Image

Applied Architecture Patterns on the Microsoft Platform

Book Image

Applied Architecture Patterns on the Microsoft Platform

Overview of this book

Every day, architects and developers are asked to solve specific business problems in the most efficient way possible using a broad range of technologies. Packed with real-world examples of how to use the latest Microsoft technologies, this book tackles over a dozen specific use case patterns and provides an applied implementation with supporting code downloads for every chapter. In this book, we guide you through thirteen architectural patterns and provide detailed code samples for the following technologies: Windows Server AppFabric, Windows Azure Platform AppFabric, SQL Server (including Integration Services, Service Broker, and StreamInsight), BizTalk Server, Windows Communication Foundation (WCF), and Windows Workflow Foundation (WF). This book brings together – and simplifies – the information and methodology you need to make the right architectural decisions and use a broad range of the Microsoft platform to meet your requirements. Throughout the book, we will follow a consistent architectural decision framework which considers key business, organizational, and technology factors. The book is broken up into four sections. First, we define the techniques and methodologies used to make architectural decisions throughout the book. In Part I, we provide a set of primers designed to get you up to speed with each of the technologies demonstrated in the book. Part II looks at messaging patterns and includes use cases which highlight content-based routing, workflow, publish/subscribe, and distributed messaging. Part III digs into data processing patterns and looks at bulk data processing, complex events, multi-master synchronization, and more. Finally, Part IV covers performance-related patterns including low latency, failover to the cloud, and reference data caching.
Table of Contents (26 chapters)
Applied Architecture Patterns on the Microsoft Platform
Credits
Foreword
About the Authors
About the Reviewer
Preface

Deciding upon your architecture strategy


Once the core requirements are set forth, we as architects can begin to craft the major patterns that make up the solution architecture. It would be a grave mistake to jump directly from requirements gathering to a product selection. You would never say "BizTalk is the choice for all our solutions", unless you were clinically insane or ate paint chips as a child. Likewise, it would be foolish to jump immediately to a custom solution unless you had evaluated and eliminated packaged applications as a viable choice. Your architecture strategy should be driven by a full assessment of the architecture quality attributes required by your solution.

Turning requirements into patterns is beyond the scope of this book. That said, there are key aspects you need to decide upon before choosing a particular product for implementation. These areas of focus may include:

  • How is data shared? In real time or via batch processing? Is data copied between systems or should we use a shared database?

  • Does the system do most work synchronously or asynchronously?

  • How do users interact with the system? Via services, mobile devices, command line?

  • Is a centralized workflow needed to span the applications that comprise the system, or is distributed logic with queue-based transport the best choice?

  • Should the application be deployed in one location, multiple locations, or in the cloud?

  • Does the solution require a single security domain or is identity federation needed?

  • What types of service level agreements (SLAs) are expected by the client and can I capture relevant measurement data?

The framework described next can help you capture the data points necessary to answer these questions and choose the right product to solve your business problem.