Pro BizTalk 2006 by George Dunphy ; Ahmed Metwally

Pro BizTalk 2006

by George Dunphy ; Ahmed Metwally

Price: £36.99

Discount: 6%
RRP: 39.49

More Details

Description

Pro BizTalk 2006 is a high-end resource that is based on real feedback from BizTalk developers. Authors George Dunphy and Ahmed Metwally are well known within the BizTalk community, and here they cover topics not discussed in other books, like performance tuning, scalability, and administration. This book also features examples of specific, real-world implementations.

CONTENTS:

Contents
Foreword . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xv
About the Authors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xix
About the Technical Reviewers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxi
Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxiii
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxv

PART 1 - Readme.1st
CHAPTER 1 BizTalk in the Enterprise . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
What Is in the Toolkit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
Common Enterprise Usage. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
New BizTalk Solution Checklist. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
What Are the Teams' Current Core Skill Sets? What Skill Sets Will the Team Need to Attain? . . . . . . . . . . . . . . . 10
What Are the Project Timelines? Will the Team Be Using BizTalk Exclusively to Decrease Development Time? . . . . . . . . . 12
Is There Enough in the Budget to Implement BizTalk? . . . . . . . . . . . 12
How Many Servers Are Required to Implement a BizTalk Solution? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
How Much Custom Code Are You and Your Team Willing to Create? Would You Rather Use Completely Out-of-the-Box Functionality? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
Is BizTalk Suited for the Application in Question? . . . . . . . . . . . . . . . 18
Will Every Transaction in the System Need Monitoring? Will the Tracked Data Need Saving for Archiving Purposes? . . . 19

CHAPTER 2 Starting a New BizTalk Project. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
Starting Preliminary Design . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
Creating Your Development Environment . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
Isolated Development Configuration. . . . . . . . . . . . . . . . . . . . . . . . . . . 28
Using Virtual Machines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
Organizing Visual SourceSafe Source Control. . . . . . . . . . . . . . . . . . . 30
Structuring and Integrating with Visual Studio . . . . . . . . . . . . . . . . . . . . . . . 31
Single Visual Studio Solution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
Multiple Visual Studio Solutions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
Developer-Independent Solutions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
Organizing Artifacts in BizTalk 2006 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
BizTalk Applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
Using BizTalk Explorer to Manage Applications . . . . . . . . . . . . . . . . . 38
BizTalk's Administration Console . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
Creating a Build-and-Integration Environment. . . . . . . . . . . . . . . . . . . . . . . 40
Five-Step Build Process . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
Using Test-Driven Development . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
Creating a BizTalk Installation Package. . . . . . . . . . . . . . . . . . . . . . . . 46
BizTalk Assembly Naming and Versioning . . . . . . . . . . . . . . . . . . . . . . . . . . 48
Side-by-Side Deployments. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
Side-by-Side Deployment Strategies . . . . . . . . . . . . . . . . . . . . . . . . . . 50
BizTalk Naming Conventions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
BizTalk Artifact Namespaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58

PART 2 - BizTalk Revealed
CHAPTER 3 Thinking Inside the Box . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
Understanding the Message Bus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
The Messagebox . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
Messaging Components . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
Using XML Namespaces. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
Understanding Property Promotions. . . . . . . . . . . . . . . . . . . . . . . . . . . 76
Using Port Filters and Content-Based Routing . . . . . . . . . . . . . . . . . . 79
Using System Property Schemas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
Tracking and Message Management. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
Handling Failed Messages and Errors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
The BizTalk Management Database. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95

CHAPTER 4 Pipelining and Components . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
Getting Started with Pipeline Development . . . . . . . . . . . . . . . . . . . . . . . . 107
Pipeline Stages. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
Understanding Pipeline Execution. . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
Understanding Interchanges . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
Overview of Recoverable Interchange Handling. . . . . . . . . . . . . . . . 112
Configuring Recoverable Interchanges . . . . . . . . . . . . . . . . . . . . . . . 114
Using the Default Pipelines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
Routing Binary Data. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
Using BizTalk Framework 2.0 Reliable Messaging . . . . . . . . . . . . . . . . . . 118
BizTalk Framework Assembler and Disassembler Pipeline Components . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
Working with BizTalk Framework Properties Within Orchestrations. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
Acknowledgement Verification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
Custom Components. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
Component Categories . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122
Component Interfaces. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123
Key BizTalk API Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123
Writing Your First Pipeline Component . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128
Creating More Complex Pipeline Components . . . . . . . . . . . . . . . . . . . . . . 128
Dynamically Promoting Properties and Manipulating the Message Context . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129
Schema Selection in VS .NET Designer . . . . . . . . . . . . . . . . . . . . . . . 132
Validating and Storing Properties in the Designer . . . . . . . . . . . . . . 135
Custom Disassemblers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139

CHAPTER 5 Pipeline Component Best Practices and Examples . . . . . . 145
Creating New Documents . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145
Using BizTalk Streams . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147
VirtualStream . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148
SeekableReadOnlyStream . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148
XPathReader . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148
Pipeline Component Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152
Dealing with Extremely Large Messages . . . . . . . . . . . . . . . . . . . . . . . . . . 152
Caveats and Gotchas. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154
Large Message Decoding Component (Receive Side) . . . . . . . . . . . 155
Large Message Encoding Component (Send Side) . . . . . . . . . . . . . 161
Dealing with Compressed Files. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166
Sending Simple Zipped Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167
Sending Multiple Zipped Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174
Receiving Zipped Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174
Using PGP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179
PGP Encode Component . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180
PGP Decode Component. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186
The Databased Disassembler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192

CHAPTER 6 BizTalk Design Patterns and Practices . . . . . . . . . . . . . . . . . . . 197
Implementing Dynamic Parallel Orchestrations . . . . . . . . . . . . . . . . . . . . . 197
Broker Implementation Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199
Handling Ordered Delivery . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204
Building a Resequencer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204
Building a Resequencing Aggregator. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211
Solution 1: Status Quo Messages Received As Independent Interchanges . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212
Solution 2: Not So Status Quo Messages Received As a Batch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213
Editing and Resubmitting Suspended Messages. . . . . . . . . . . . . . . . . . . . 214
Strategy for Edit and Resubmit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214
Pulling Data from the Suspended Queue. . . . . . . . . . . . . . . . . . . . . . 214
Canonical Format. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215
Clients for Editing the Message. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215
Additional Workflow. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215
Moving Correct Data Back into BizTalk . . . . . . . . . . . . . . . . . . . . . . . 215
Sample Flows for Edit and Resubmit . . . . . . . . . . . . . . . . . . . . . . . . . 216
Pseudo-Walkthrough to Perform Edits and Resubmits . . . . . . . . . . 218
Managing Exceptions in Orchestrations . . . . . . . . . . . . . . . . . . . . . . . . . . . 225
The Exception Management Challenge . . . . . . . . . . . . . . . . . . . . . . . 228
BizTalk Server 2006 Failed Message Routing As a Blueprint . . . . 231
Failed Orchestration Routing API for BizTalk 2006 . . . . . . . . . . . . . 233
Running the EAIProcess . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 240
Processing and Retrieving Messages and Exceptions
from the Fault Message. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243
Beyond the Next Horizon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 249

CHAPTER 7 What the Maestro Needs to Know: Advanced Orchestration Concepts. . . . . . . . . . . . . . . . . . . . . . . . 251
What an Orchestration Is . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 251
What the Orchestration Engine Provides . . . . . . . . . . . . . . . . . . . . . . . . . . . 252
Do You Really Need an Orchestration? . . . . . . . . . . . . . . . . . . . . . . . . . . . . 254
Know Your Instruments (Shapes) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 256
What Transactions Mean and Cost. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 261
Atomic Transactions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 261
Long-Running Transactions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 263
Threading and Persistence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 264
Dehydration. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 264
The Dehydration Algorithm and Thresholds . . . . . . . . . . . . . . . . . . . 266
The Cost of Parallel Shapes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 267
Correlation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 270
What Is Correlation? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 270
Convoys: Serial vs. Parallel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 271
Pitfalls of Orchestration Development . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 272
Batch Processing and Legacy Systems . . . . . . . . . . . . . . . . . . . . . . . 272
Interactive Orchestrations (The Request/Response Approach) . . . 273
Calling an Assembly or Sending a Message to a Web Service . . . 273
Error Handling and Suspended Instances . . . . . . . . . . . . . . . . . . . . . 274
Orchestration Engine Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . 275

CHAPTER 8 Playing By the Rules? Use the Business Rule Engine. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 283
What Is a Business Rule Engine? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 283
What Are Business Rules? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 285
When to Use the BRE? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 286
What Are the Artifacts That Constitute a Business Rule? . . . . . . . . . . . . . 287
Facts and Vocabularies. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 288
Conditions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 295
Actions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 295
Rules and Priorities . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 297
The Business Rule Composer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 298
Creating Vocabularies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 299
Creating Rules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 301
How Does the BRE Work? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 301
Testing Business Rules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 305
Going to Production. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 309
Executing Business Rules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 312
Calling the Engine from Within an Orchestration . . . . . . . . . . . . . . . 313
Referencing a .NET Class from a Policy That Is Being Called from an Orchestration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 314
Returning a Value from the BRE to the Calling Orchestration . . . . 315
Calling the Engine from a .NET Application. . . . . . . . . . . . . . . . . . . . 316
Policy Chaining. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 318

PART 3 - You Mean You Aren't a Developer?
CHAPTER 9 BizTalk Server 2006 Operations. . . . . . . . . . . . . . . . . . . . . . . . . . . 323
Configuration and Management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 324
Administration Tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 324
Application Concept. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 327
BizTalk Server Administration Console . . . . . . . . . . . . . . . . . . . . . . . 327
Scalability and High Availability . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 331
Scalability . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 332
High Availability . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 334
Maintaining the BizTalk Group . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 336
SQL Agent Job Configuration. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 338
Backup Procedures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 343
Restore Procedures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 353
Disaster Recovery . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 361
How Does BizTalk Log Shipping Work? . . . . . . . . . . . . . . . . . . . . . . . 362
Configuring the Destination System for Log Shipping. . . . . . . . . . . 364
BizTalk Group Disaster Recovery Procedures. . . . . . . . . . . . . . . . . . 368
BizTalk Runtime Server Disaster Recovery Procedures . . . . . . . . . 369
Restore Procedures for BAS Site and Database . . . . . . . . . . . . . . . . 371
Restore Procedures for BAM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 372
Restore Procedures for the Base EDI Adapter . . . . . . . . . . . . . . . . . 372
Other Disaster Recovery Tasks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 373
Related Non-BizTalk Application Disaster
Recovery Procedures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 375

CHAPTER 10 Deploying and Managing BizTalk Applications . . . . . . . . . . 377
BizTalk Applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 377
Important Deployment Artifacts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 380
Binding Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 380
Processing Scripts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 381
Deploying a BizTalk Solution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 384
Steps in Deploying a BizTalk Application. . . . . . . . . . . . . . . . . . . . . . 384
MSI Export/Import/Install . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 389
Typical Deployment Cycle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 398
Administrative Tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 399
BizTalk Administration Console . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 402
BTSTask . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 404
BTSDeploy. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 405
WMI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 405
ExplorerOM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 409

CHAPTER 11 To Tune or Not to Tune? Nobody Should Ask That Question.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 421
What You Should Do First . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 421
Gather Metrics on Expected Loads . . . . . . . . . . . . . . . . . . . . . . . . . . . 421
Prepare the Proper Environment and Gather Performance Metrics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 422
Where You Start. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 424
What to Keep in Mind When Tuning . . . . . . . . . . . . . . . . . . . . . . . . . . 424
What to Keep in Mind About Your Code . . . . . . . . . . . . . . . . . . . . . . . 428
How to Tune Each Subsystem. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 438
ASP.NET, SOAP, and HTTP. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 438
CLR Tuning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 444
File Tuning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 445
Latency . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 447
Throttling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 448

APPENDIX Bibliography. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 457
INDEX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 459
Published

20 Oct 2006

Publisher

APRESS

ISBN

9781590596999

Pages

492

Static Book Details Index Page - Click Here to go to Computer Manuals Website