Home > Store

SOA with .NET and Windows Azure: Realizing Service-Orientation with the Microsoft Platform

Register your product to gain access to bonus material or receive a coupon.

SOA with .NET and Windows Azure: Realizing Service-Orientation with the Microsoft Platform

eBook (Watermarked)

  • Your Price: $52.99
  • Includes EPUB and PDF
  • About eBook Formats
  • This eBook includes the following formats, accessible from your Account page after purchase:

    ePub EPUB The open industry format known for its reflowable content and usability on supported mobile devices.

    Adobe Reader PDF The popular standard, used most often with the free Acrobat® Reader® software.

    This eBook requires no passwords or activation to read. We customize your eBook by discreetly watermarking it with your name, making it uniquely yours.

Not for Sale

Description

  • Copyright 2010
  • Pages: 912
  • Edition: 1st
  • eBook (Watermarked)
  • ISBN-10: 0-13-263947-5
  • ISBN-13: 978-0-13-263947-7

“Explaining the intersection of these two worlds--service-orientation and .NET technologies--is exactly what this book does. Its team of specialist authors provides a concrete, usable guide to this combination, ranging from the fundamentals of service-orientation to the more rarified air of .NET services in the cloud and beyond. If you’re creating service-oriented software on the Microsoft platform--that is, if you’re a serious .NET developer--mastering these ideas is a must.”

--From the Foreword by David Chappell, Chappell & Associates

“Microsoft’s diverse product line has long supported the service-oriented enterprise, but putting it all together into a cohesive whole can be daunting. From more established products, like Windows Communication Foundation, Windows Workflow Foundation, Microsoft Office SharePoint Server, and BizTalk Server, to newer offerings like Windows Azure and AppFabric, the experts assembled here expose the sweet spots for each technology, talk through the high-level trade-offs, and offer a roadmap to a unified Microsoft SOA story.”

--Kevin P. Davis, Ph.D., Software Architect

“This book excels in giving hands-on and in-depth expertise on the SOA architecture style with the .NET framework and the Azure cloud platform. It’s a practical guide for developers, architects, and SOA implementers. A must read!”

--Ricardo P. Schluter, ICT Architect, Parnassia Bavo Group

“While the industry overall may have hyped ‘the cloud’ to the level it often seems to cure world hunger, SOA with .NET and Windows Azure helps cut through the questions and hype and more clearly discusses the benefits and practical techniques for putting it to work in the real world. This book helps you understand the benefits associated with SOA and cloud computing, and also the techniques for connecting your current IT assets with new composite applications and data running in the cloud. This book will help you understand modern middleware technologies and harness the benefits of the cloud both on and off premises.”

--Burley Kawasaki, Director of Product Management, Microsoft

“The authors have a combined SOA and .NET experience of several decades—which becomes obvious when reading this book. They don’t just lead you down one path with a single descriptive solution. Instead, the sometimes nasty trade-offs that architects face in their design decisions are addressed. These are then mapped to the Microsoft .NET platform with clear code examples. A very refreshing look at this major contender in the SOA space and a definite must for the .NET SOA practitioner!”

--Dr. Thomas Rischbeck, IT Architect, Innovation Process Technology

“In order to evolve as a software craftsman one must read excellent books that will help you grow and evolve in your profession. One of those books that every software craftsmen interested in good design and best practices should read is SOA with .NET and Windows Azure. With this book, you will learn which design patterns will provide the best solution for the kinds of software design problems you, as a developer or designer, face every day. This book has everything that software architects, software designers, and programmers need to know when building great quality software with Microsoft technologies.

“This will undoubtedly be one of those books that you reference repeatedly when starting new SOA projects. There is plenty of information that even those not working with typical service-oriented architecture will find very useful. With plenty of real-life examples (code, design, and modeling), readers see in a practical manner how they could use SOA patterns to solve everyday software problems and be more productive. SOA with .NET and Windows Azure will fit in my top three books and will definitely be one of those that I will use in my everyday work.”

--Arman Kurtagic, Consultant at Omegapoint AB

The Authoritative Guide to Building Service-Oriented Solutions with Microsoft .NET Technologies and the Windows Azure Cloud Computing Platform

In SOA with .NET and Windows Azure, top Microsoft technology experts team up with Thomas Erl to explore service-oriented computing with Microsoft’s latest .NET service technologies and Windows Azure innovations.

The authors provide comprehensive documentation of on-premise and cloud-based modern service technology advancements within the Microsoft platform and further show how these technologies have increased the potential for applying and realizing service-orientation practices and goals.

Specifically, the book delves into Microsoft enterprise technologies, such as:

  • Windows Communication Foundation (WCF)
  • Windows Azure
  • Windows Workflow Foundation (WF)
  • Windows Azure AppFabric
  • BizTalk Server
  • Windows Presentation Foundation (WPF)

...as well as industry service mediums, including WS-* and REST, and many related service industry standards and technologies.

The book steps through common SOA design patterns and service-orientation principles, along with numerous code-level examples that further detail various technology architectures and implementations.

Topic Areas

This book covers the following primary topics:

  • Microsoft Service Technologies
  • Microsoft Enterprise Technologies
  • On-Premise & Cloud-Based Service Topics
  • Industry Service Technologies & Mediums
  • Service-Oriented Technology Architectural Models
  • Service-Orientation Design Paradigm
  • Service-Orientation Design Principles
  • SOA Design Patterns

About the Web Sites

This book series is further supported by a series of resources sites, including:

  • www.soabooks.com
  • www.soaspecs.com
  • www.soamag.com
  • www.serviceorientation.com 
  • www.soapatterns.org
  • www.soaprinciples.com
  • www.whatissoa.com

Sample Content

Table of Contents

Foreword by S. Somasegar     xxxi

Foreword by David Chappell     xxxiii

Acknowledgments     xxxv

CHAPTER 1: Introduction     1

1.1 About this Book     2

1.2 Objectives of this Book     3

1.3 Who this Book is For     4

1.4 What this Book Does Not Cover     4

1.5 Prerequisite Reading     4

1.6 How this Book is Organized     6

Part I: Fundamentals     7

Chapter 3: SOA Fundamentals     7

Chapter 4: A Brief History of Legacy .NET Distributed Technologies     7

Chapter 5: WCF Services     7

Chapter 6: WCF Extensions     7

Chapter 7: .NET Enterprise Services Technologies     7

Chapter 8: Cloud Services with Windows Azure     8

Part II: Services and Service Composition     8

Chapter 9: Service-Orientation with .NET Part I: Service Contracts and Interoperability     8

Chapter 10: Service-Orientation with .NET Part II: Coupling, Abstraction, and Discoverability     8

Chapter 11: Service-Orientation with .NET Part III: Reusability and Agnostic Service Models     8

Chapter 12: Service-Orientation with .NET Part IV: Service Composition and Orchestration Basics     9

Chapter 13: Orchestration Patterns with WF     9

Chapter 14: Orchestration Patterns with BizTalk Server     9

Part III: Infrastructure and Architecture     9

Chapter 15: Enterprise Service Bus with BizTalk Server and Windows Azure     9

Chapter 16: Windows Azure Platform AppFabric Service Bus     10

Chapter 17: SOA Security with .NET and Windows Azure     10

Chapter 18: Service-Oriented Presentation Layers with .NET     10

Chapter 19: Service Performance Optimization     10

Chapter 20: SOA Metrics with BAM     10

Part IV: Appendices     10

Appendix A: Case Study Conclusion     10

Appendix B: Industry Standards Reference     11

Appendix C: Service-Orientation Principles Reference     11

Appendix D: SOA Design Patterns Reference     11

Appendix E: The Annotated SOA Manifesto     11

Appendix F: Additional Resources     11

1.7 How Principles and Patterns are Used in this Book     11

Sources     11

Reference Notation     12

1.8 Symbols, Figures, and Style Conventions     13

Symbol Legend     13

How Color is Used     13

Additional Information     13

Updates, Errata, and Resources (www.soabooks.com)     13

Master Glossary (www.soaglossary.com)     13

Referenced Specifications (www.soaspecs.com)     13

SOASchool.com™ SOA Certified Professional (SOACP)     14

The SOA Magazine (www.soamag.com)     14

Notification Service     14

CHAPTER 2: Case Study Background     15

2.1 How Case Studies Are Used     16

2.2 Case Study Background #1: Standard Mold     16

History     16

Technical Infrastructure     16

Business Goals and Obstacles     17

2.3 Case Study Background #2: Superior Stamping     18

History     18

Technical Infrastructure     18

Business Goals and Obstacles     19

PART I: FUNDAMENTALS

CHAPTER 3: SOA Fundamentals     23

3.1 Basic SOA Terminology     24

Service-Oriented Computing     25

Service-Orientation     25

Service-Oriented Architecture (SOA)     27

Services     28

Services as Components     29

Services as Web Services     30

Services as REST Services     31

Service Models     31

Agnostic Logic and Non-Agnostic Logic     32

Service Composition     33

Service Inventory     34

Service-Oriented Analysis     34

Service Candidate     35

Service-Oriented Design     35

Service Contract     36

Service-Related Granularity     37

SOA Design Patterns     38

3.2 Service-Oriented Computing Goals     40

Increased Intrinsic Interoperability     40

Increased Federation     40

Increased Vendor Diversification Options     40

Increased Business and Technology Domain Alignment     41

3.3 Further Reading     41

CHAPTER 4: A Brief History of Legacy .NET Distributed Technologies     43

4.1 Distributed Computing 101     44

Client-Server     44

Distributed Architecture     45

Service-Oriented Architecture     47

4.2 .NET Enterprise Services     48

It All Began with COM (and DCOM)     48

COM+ Services     49

.NET Assemblies     51

Distributed Transaction Coordinator     51

.NET Enterprise Services and Service-Orientation     53

4.3 .NET Remoting     54

.NET Remoting Architecture     54

Serializable Classes     56

Remotable Classes     56

Ordinary Classes     56

Hosting .NET Remoting Components     56

Windows Service     56

IIS Hosting Under ASP.NET     57

Hosting a .NET Remoting Component in a Console Application     57

.NET COM+ Services     57

.NET Remoting Configurations     57

Activation Types     58

Message Formats     60

Communication Protocols     60

Object Lifetime Management     61

.NET Remoting and Service-Orientation     61

4.4 Microsoft Messaging Queue (MSMQ)     63

The Queues     64

Sending and Receiving Messages     65

MSMQ and Service-Orientation     66

4.5 System.Transactions     67

Distributed Resource Transactions     67

Explicit and Implicit Programming Models     68

Ambient Transactions     69

4.6 Web Services (ASMX and WSE)     70

XML Web Services (ASMX)     71

The WebService Attribute     71

The WebMethod Attribute     72

Web Service Enhancements (WSE)     73

4.7 REST Service Processing with IHttpHandler     74

CHAPTER 5: WCF Services     75

5.1 Overview     76

5.2 Service Contracts with WCF     78

WCF Terminology     78

WCF Service Contract     78

Interface Contract     78

Operation Contract     78

Data Contract     78

Message Contract     79

Service Endpoint     79

The ServiceContract and OperationContract Attributes     79

Data Models and the DataContract Attribute     82

Messaging and the MessageContract Attribute     83

Service Endpoints and the endpoint Element     86

Address     88

Bindings     89

Contract     92

REST Service Classes and Attributes     92

The WebGet Attribute     93

The WebInvoke Attribute     95

WCF UriTemplate Attribute     96

Faults and the FaultContract Attribute     98

MEX Endpoints     100

Versioning Considerations     102

5.3 Service Implementation with WCF     104

Behaviors     104

Instancing     105

A Sample Implementation     106

5.4 Service Hosting with WCF     108

Self-Hosted Services     110

Managed Windows Services     112

IIS Process Boundary     113

Windows Activation Services (WAS)     114

Hosting REST Services     115

5.5 Service Consumers with WCF     116

Using the Service Metadata Tool     117

Writing the Proxy Class for a Service     118

Using the ChannelFactory Class     119

CHAPTER 6: WCF Extensions     121

6.1 WCF Security     122

Security Modes     123

Authorization     125

Federated Identity     126

6.2 WCF Transactions     127

Operation Attributes for Transactions     127

TransactionScopeRequired     128

TransactionAutoComplete     128

TransactionFlow     128

Service Attributes for Transactions     129

TransactionIsolationLevel     129

TransactionAutoCompleteOnSessionClose     130

TransactionTimeout     130

Durable Services     131

6.3 WCF Router     132

The RoutingService Class     133

Routing Contracts     134

Routing Configuration     135

Step 1: Define Endpoints     135

Step 2: Configure Service Behavior     136

Step 3: Enumerate Target Endpoints     136

Step 4: Define Message Filters     137

Step 5: Create a Filter Table     138

Fault Tolerance     139

6.4 WCF Discovery     140

Discovery Modes     141

Locating a Service Ad Hoc     143

Sending and Receiving Service Announcements     144

Discovery Proxies for Managed Discovery     146

Discovering from a Discovery Proxy     146

Implicit Service Discovery     147

6.5 WCF Extensibility     148

WCF Layers     149

Layered Extensibility     149

Channel Layer Extensibility     150

6.6 WCF Management Tools     151

Administration     151

Troubleshooting     151

Logging Messages     153

CHAPTER 7: .NET Enterprise Services Technologies     155

7.1 SQL Server     156

Native XML Web Services Support     157

Service Broker (SSB)     160

Query Notification     165

XML Support in SQL Server     165

7.2 Windows Workflow Foundation (WF)     166

WF Architecture     167

Workflows     168

Sequential Workflows     169

State Machine Workflows     169

Workflow Designer     169

Workflow Persistence (with WF)     170

Communicating with the Host Container     171

Activities     172

Workflow Runtime Environment     175

WF Programming Model     176

Passing Parameters into a Workflow Instance     178

Returning Parameters from a Workflow Instance     178

Workflow-Enabled Services     179

Versioning Orchestrations     180

WF Extensibility     180

Business Rules     180

7.3 Application Blocks and Software Factories     181

Application Blocks     182

Software Factories     184

Guidance Toolkits     184

Web Services Software Factory     184

7.4 Windows Server AppFabric     187

Configurable Hosting Environment     188

Workflow Persistence (with AppFabric)     189

In-Memory Application Cache Platform     190

Manageability Extensions     192

Application Server Event Collector     192

7.5 BizTalk Server     193

BizTalk Server Architecture     194

Messaging     196

Pipelines     197

Pipeline Components     198

Ports and Locations     199

Adapters     199

Context Properties     200

Itineraries     201

Unified Exception Management     202

CHAPTER 8: Cloud Services with Windows Azure     205

8.1 Cloud Computing 101     206

Cloud Deployment Models     208

Public Cloud     208

Private Cloud     208

Community Cloud     209

Other Deployment Models     209

The Intercloud (Cloud of Clouds)     209

Deployment Models and Windows Azure     210

Service Delivery Models     210

Infrastructure-as-a-Service (IaaS)     210

Platform-as-a-Service (PaaS)     211

Software-as-a-Service (SaaS)     211

Other Delivery Models     211

IaaS vs. PaaS     211

8.2 Windows Azure Platform Overview     213

Windows Azure (Application Container)     216

SQL Azure     217

Windows Azure Platform AppFabric     218

8.3 Windows Azure Roles     219

Web Roles and Worker Roles     220

Virtual Machines     220

Input Endpoints     221

Inter-Role Communication     222

8.4 Hello World in Windows Azure     223

1. Create a Cloud Service Project     224

2. Choose an ASP.NET Web Role     224

3. Create the Solution     225

4. Instantiate the Service     226

8.5 A Web Service in Windows Azure     227

1. Create a Host Service and Storage Service     233

2. Create and Deploy a Service Package     233

3. Promote the Service to Production     234

8.6 A REST Service in Windows Azure     235

REST Service Addressing     235

Creating a Windows Azure REST Service     236

8.7 Windows Azure Storage     239

Tables     240

Entities and Properties     240

Data Access     241

Queues     241

Blobs     242

Block BlobsPage Blobs     243

Windows Azure Drive     243

PART II: SERVICES AND SERVICE COMPOSITION

CHAPTER 9: Service-Orientation with .NET Part I: Service Contracts and Interoperability     247

9.1 Standardized Service Contract     250

Contract-First     250

1. Create or Reuse Data Contract     251

2. Create Message Contract     251

3. Create Interface Contract     252

Standardized Service Contract and Patterns     252

9.2 Canonical Schema     253

Creating Schemas with Visual Studio     254

Generating .NET Types     258

Using the DataContract Library     264

9.3 Data Model Transformation     267

Object-to-Object     269

LINQ-to-XML     271

XSLT Transformation     272

9.4 Canonical Protocol     274

Web Service     275

REST Service     277

Component     278

Another WCF Option: Named Pipes     279

Dual Protocols with WCF     279

9.5 Canonical Expression     280

Service Naming Conventions     280

Service Capability Naming Conventions     281

CHAPTER 10: Service-Orientation with .NET Part II: Coupling, Abstraction, and Discoverability     283

10.1 Service Loose Coupling     285

Service Loose Coupling and Patterns     286

10.2 Decoupled Contract     288

WSDL-First     289

Generating Service Code Using Svcutil     294

Generating WCF Service Code Using WSCF.blue     297

Generating ASMX Service Code Using WSCF.classic     302

10.3 Service Façade     304

10.4 Concurrent Contracts     307

10.5 Service Loose Coupling and Service Capability Granularity     308

10.6 Service Abstraction     313

10.7 Validation Abstraction     315

10.8 Exception Shielding     319

10.9 Service Discoverability     321

In-line Documentation     322

REST and Hypermedia     323

Service Profiles     323

10.10 Metadata Centralization     325

CHAPTER 11: Service-Orientation with .NET Part III: Reusability and Agnostic Service Models     327

11.1 Service Reusability and the Separation of Concerns     329

Functional Decomposition     330

Service Encapsulation     332

Agnostic Context     332

Agnostic Capability     334

Utility Abstraction     335

Entity Abstraction     336

The Inventory Analysis Cycle     337

Additional Design Considerations     339

11.2 Case Study Example: Utility Abstraction with a .NET Web Service     339

11.3 Case Study Example: Entity Abstraction with a .NET REST Service     351

CHAPTER 12: Service-Orientation with .NET Part IV: Service Composition and Orchestration Basics     369

12.1 Service Composition 101     371

Service-Orientation and Service Composition     371

Service Composability (PSD)     373

Capability Composition and Capability Recomposition     374

Capability Composition     375

Capability Recomposition     375

Composition Roles     377

Service Layers     377

Non-Agnostic Context     379

Process Abstraction and Task Services     380

12.2 Orchestration     382

Process Abstraction, Process Centralization, and Orchestrated Task Services     382

Process Centralization and Tools     384

Process Abstraction and WS-BPEL     385

State Repository and Compensating Service Transaction     385

State Repository with .NET     386

Compensating Service Transaction     387

Other Patterns     388

Microsoft Orchestration Platforms: WF and BizTalk Server     388

CHAPTER 13: Orchestration Patterns with WF     393

13.1 Process Abstraction and Orchestrated Task Services     397

A Brief History of WF Service Contract Support     397

Publishing WF Workflows as Web Services and Activities     399

Workflows Published as ASMX Services     399

Workflows Published via WCF 3.5 Activities     408

Workflows Published via WCF 4.0 Activities     410

Workflows Published via ExternalDataExchange Services     413

WS-I BasicProfile Support     417

Publishing WF Workflows as REST Services     419

JSON Encoding     421

Send and Receive Activity Configuration     422

Orchestrated Task Services with REST and WF 4.0     423

13.2 Process Centralization     425

Centralized Process Maintenance     425

WS-BPEL Support     426

13.3 State Repository     426

SQL Persistence Service and Scaling Out in WF 3.0     429

SQL Persistence Service and Scaling Out in WF 4     431

13.4 Compensating Service Transaction     434

Creating Compensations     434

Triggering Compensations     435

13.5 Case Study Example     436

CHAPTER 14: Orchestration Patterns with BizTalk Server     441

14.1 Process Abstraction and Orchestrated Task Services     443

Orchestrated Task Service Contracts     445

WS-* Support     447

Case Study Example     448

14.2 Process Centralization     450

Centralized Process Maintenance     450

WS-BPEL Support     451

Exporting BizTalk Orchestrations to WS-BPEL     451

Importing WS-BPEL Processes into BizTalk     454

14.3 State Repository     455

14.4 Compensating Service Transaction     456

Case Study Example     459

PART III: INFRASTRUCTURE AND ARCHITECTURE

CHAPTER 15: Enterprise Service Bus with BizTalk Server and Windows Azure     465

15.1 Microsoft and the ESB     466

15.2 Integration with BizTalk     467

Application Integration 101     467

The BizTalk Hub-Bus Model     469

15.3 The ESB Toolkit     470

Itineraries     472

Itineraries Types     474

The Itinerary Lifecycle     475

Resolvers     476

Adapter Providers     478

WCF-Custom and REST Services     479

15.4 Distributed and Scalable ESB Architecture     480

Configuring for High-Availability     480

Techniques for Scaling     481

Distributed ESBs     482

15.5 Cloud-Enabling the ESB with Windows Azure     483

Receiving Messages from Azure’s AppFabric Service Bus     484

Sending Messages to Azure’s AppFabric Service Bus     485

15.6 Governance Considerations     487

SLA Enforcement     488

Monitoring     488

Preparing Project Teams     489

15.7 Mapping the Microsoft Platform to the Enterprise Service Bus Pattern     490

CHAPTER 16: Windows Azure Platform AppFabric Service Bus     493

16.1 Introducing the Service Bus     494

Connectivity Fabric     494

Message Buffers     496

Service Registry     497

16.2 Service Bus and REST     498

REST-Based Service Design     498

REST-Based Service Consumer Design     499

Message Buffers and REST     499

16.3 Service Bus Connectivity Models     499

Eventing     500

Service Remoting     501

Tunneling     501

16.4 Working with Windows Azure Platform AppFabric Service Bus     503

Setting up the AppFabric Service Bus     504

Defining a REST-Based Service Bus Contract     513

Creating the Service Bus Message Buffer     514

CHAPTER 17: SOA Security with .NET and Windows Azure     517

17.1 Authentication and Authorization with WCF     518

Direct and Brokered Authentication     518

Direct Authentication     518

Brokered Authentication     519

Authentication Patterns in WCF     520

Role-Based Authorization     520

Authorization Roles in WCF     521

Authorizing Operations with Roles     523

Claims-Based Authorization     524

Claims Processing in WCF     526

Implementing Claims-Based Authorization     527

Access Control in Windows Azure     528

Designing Custom Claims     529

Case Study Example     530

17.2 Windows Identity Foundation (WIF)     533

Digital Identity     534

The Identity Metasystem     534

Windows Cardspace     536

Active Directory Federation Services (ADFS)     539

WIF Programming Model     540

WCF Integration     540

Programming Windows Cardspace     540

Developing a Relying Party     541

Developing an Identity Provider     542

17.3 Windows Azure Security     543

Cloud Computing Security 101     543

Cross-Domain Access Control     544

Hybrid Cloud Security     545

Inter-Organization Service Composition Security     545

External Identity Providers     546

Claims-Based Access Control, As-A-Service     546

Windows Azure Platform AppFabric Access Control Overview     548

Access Control Step-by-Step     550

Access Control and REST     552

Access Control Service Authorization Scenarios     553

Hybrid Cloud Authorization Model     553

Public Cloud Authorization Model     554

Cloud-to-Cloud Authorization Model     554

Case Study Example     555

CHAPTER 18: Service-Oriented Presentation Layers with .NET     557

18.1 Windows Presentation Foundation and the Prism Library     559

Shell     561

Views     562

View Discovery versus View Injection     563

Regions     563

Modules     565

Shared Services     566

18.2 Design Patterns for Presentation Logic     567

User Interface Patterns     567

Composite View [CJP]     568

Command [DP]     568

UI Mediator     568

Separated Presentation     568

Modularity Patterns     569

Separated Interface [PEA]     570

Plug-In [PEA]     570

Event Aggregator [PEA]     570

Inversion of Control [DP]     570

Dependency Injection [PEA]     570

Service Locator [CJP]     571

18.3 A Simple Service-Oriented User Interface     571

Creating the Project     571

Dynamically Loading Modules     579

CHAPTER 19: Service Performance Optimization     583

19.1 Overview     584

Optimization Areas     585

Service Implementation Processing     585

Service Framework Processing     586

Wire Transmission Processing     586

19.2 Service Performance Optimization Techniques     586

Caching to Avoid Costly Processing     587

Intermediary     589

Service Container     589

Service Proxy     590

Caching Utility Service     590

Comparing Caching Techniques     591

Cache Implementation Technologies     592

Computing Cache Keys     593

Case Study Example     594

Method 1     597

Method 2     598

Caching REST Responses     599

Monitoring Cache Efficiency     601

Reducing Resource Contention     603

Request Throttling     604

Throttling With WCF     605

Case Study Example     606

Request Throttling with BizTalk Server     607

Coarse-Grained Service Contracts     608

Case Study Example     609

Selecting Application Containers     610

Performance Policies     612

Case Study Example     620

REST Service Message Sizes     621

Hardware Encryption      622

Transport Encryption     622

Message Encryption     623

Custom Encryption Solution     623

High Performance Transport     625

Case Study Example     626

MTOM Encoding     627

Case Study Example     628

Performance Considerations for Service Contract Design     630

Case Study Example     631

Impact on Service-Orientation Principles     633

19.3 Service Composition Performance Optimization Techniques     637

Transformation Avoidance and Caching     637

Asynchronous Interactions     639

Parallelize Where Possible     641

Parallel Activity in WF     641

Parallel Execution in BizTalk Server     643

Replicator Activity in WF     644

Consider Co-Hosting When Necessary     645

Compose High Performance Services     648

Impact on Service-Orientation Principles     648

CHAPTER 20: SOA Metrics with BAM     653

20.1 SOA Metric Types     654

20.2 Introducing BizTalk BAM     655

BizTalk and BAM     655

BAM Solution Architecture     656

The BAM Management Utility     659

The Tracking Profile Editor (TPE)     659

Real-Time vs Scheduled Aggregations     660

20.3 Activities and Views     661

Roles-based Views for Service Governance     662

Creating Views     663

20.4 BAM APIs     665

Event Streams     665

DirectEventStream (DES)     665

BufferedEventStream (BES)     665

OrchestrationEventStream (OES)     666

IPipelineContext Interface     666

Abstracted APIs for Service Metrics     666

Metrics for Service Compositions     669

WCF and WF Interceptors     670

Notifications     670

Rapid Prototyping     671

20.5 Managing BAM     672

Database Outages     672

Security     672

Scripting Deployment     673

Reporting     676

Case Study Example     677

PART IV: APPENDICES

APPENDIX A: Case Study Conclusion     685

APPENDIX B: Industry Standards Reference     687

APPENDIX C: Service-Orientation Principles Reference     691

APPENDIX D: SOA Design Patterns Reference     707

APPENDIX E: The Annotated SOA Manifesto     795

The Annotated SOA Manifesto     796

APPENDIX F: Additional Resources     809

Consuming Services with WCF     811

Introduction     811

Cleaning Up Resources     812

The Proper Disposal and Closing of an ICommunicationObject     812

The ICommunicationObject.Close() Method     812

The ICommunicationObject.Abort() Method     814

Abort() versus Close()     814

IDisposable for Cleaning Up Resources     814

IDisposable and Its Relation to ClientBase and ChannelFactory     815

Cleaning Up Resources with the Using Block     816

Cleaning Up Resources with the Try-Catch-Finally-Abort Pattern     817

Handling Exceptions and Cleaning Up Resources with the Try-Close-Catch-Abort Pattern     818

Cleaning Up Resources in a Convenient Way     819

How to Handle Connections when Consuming Services Using WCF     822

Conclusion     823

About the Authors     825

About the Contributors     829

About the Foreword Contributors     831

Index     833

Updates

Submit Errata

More Information

InformIT Promotional Mailings & Special Offers

I would like to receive exclusive offers and hear about products from InformIT and its family of brands. I can unsubscribe at any time.

Overview


Pearson Education, Inc., 221 River Street, Hoboken, New Jersey 07030, (Pearson) presents this site to provide information about products and services that can be purchased through this site.

This privacy notice provides an overview of our commitment to privacy and describes how we collect, protect, use and share personal information collected through this site. Please note that other Pearson websites and online products and services have their own separate privacy policies.

Collection and Use of Information


To conduct business and deliver products and services, Pearson collects and uses personal information in several ways in connection with this site, including:

Questions and Inquiries

For inquiries and questions, we collect the inquiry or question, together with name, contact details (email address, phone number and mailing address) and any other additional information voluntarily submitted to us through a Contact Us form or an email. We use this information to address the inquiry and respond to the question.

Online Store

For orders and purchases placed through our online store on this site, we collect order details, name, institution name and address (if applicable), email address, phone number, shipping and billing addresses, credit/debit card information, shipping options and any instructions. We use this information to complete transactions, fulfill orders, communicate with individuals placing orders or visiting the online store, and for related purposes.

Surveys

Pearson may offer opportunities to provide feedback or participate in surveys, including surveys evaluating Pearson products, services or sites. Participation is voluntary. Pearson collects information requested in the survey questions and uses the information to evaluate, support, maintain and improve products, services or sites, develop new products and services, conduct educational research and for other purposes specified in the survey.

Contests and Drawings

Occasionally, we may sponsor a contest or drawing. Participation is optional. Pearson collects name, contact information and other information specified on the entry form for the contest or drawing to conduct the contest or drawing. Pearson may collect additional personal information from the winners of a contest or drawing in order to award the prize and for tax reporting purposes, as required by law.

Newsletters

If you have elected to receive email newsletters or promotional mailings and special offers but want to unsubscribe, simply email information@informit.com.

Service Announcements

On rare occasions it is necessary to send out a strictly service related announcement. For instance, if our service is temporarily suspended for maintenance we might send users an email. Generally, users may not opt-out of these communications, though they can deactivate their account information. However, these communications are not promotional in nature.

Customer Service

We communicate with users on a regular basis to provide requested services and in regard to issues relating to their account we reply via email or phone in accordance with the users' wishes when a user submits their information through our Contact Us form.

Other Collection and Use of Information


Application and System Logs

Pearson automatically collects log data to help ensure the delivery, availability and security of this site. Log data may include technical information about how a user or visitor connected to this site, such as browser type, type of computer/device, operating system, internet service provider and IP address. We use this information for support purposes and to monitor the health of the site, identify problems, improve service, detect unauthorized access and fraudulent activity, prevent and respond to security incidents and appropriately scale computing resources.

Web Analytics

Pearson may use third party web trend analytical services, including Google Analytics, to collect visitor information, such as IP addresses, browser types, referring pages, pages visited and time spent on a particular site. While these analytical services collect and report information on an anonymous basis, they may use cookies to gather web trend information. The information gathered may enable Pearson (but not the third party web trend services) to link information with application and system log data. Pearson uses this information for system administration and to identify problems, improve service, detect unauthorized access and fraudulent activity, prevent and respond to security incidents, appropriately scale computing resources and otherwise support and deliver this site and its services.

Cookies and Related Technologies

This site uses cookies and similar technologies to personalize content, measure traffic patterns, control security, track use and access of information on this site, and provide interest-based messages and advertising. Users can manage and block the use of cookies through their browser. Disabling or blocking certain cookies may limit the functionality of this site.

Do Not Track

This site currently does not respond to Do Not Track signals.

Security


Pearson uses appropriate physical, administrative and technical security measures to protect personal information from unauthorized access, use and disclosure.

Children


This site is not directed to children under the age of 13.

Marketing


Pearson may send or direct marketing communications to users, provided that

  • Pearson will not use personal information collected or processed as a K-12 school service provider for the purpose of directed or targeted advertising.
  • Such marketing is consistent with applicable law and Pearson's legal obligations.
  • Pearson will not knowingly direct or send marketing communications to an individual who has expressed a preference not to receive marketing.
  • Where required by applicable law, express or implied consent to marketing exists and has not been withdrawn.

Pearson may provide personal information to a third party service provider on a restricted basis to provide marketing solely on behalf of Pearson or an affiliate or customer for whom Pearson is a service provider. Marketing preferences may be changed at any time.

Correcting/Updating Personal Information


If a user's personally identifiable information changes (such as your postal address or email address), we provide a way to correct or update that user's personal data provided to us. This can be done on the Account page. If a user no longer desires our service and desires to delete his or her account, please contact us at customer-service@informit.com and we will process the deletion of a user's account.

Choice/Opt-out


Users can always make an informed choice as to whether they should proceed with certain services offered by InformIT. If you choose to remove yourself from our mailing list(s) simply visit the following page and uncheck any communication you no longer want to receive: www.informit.com/u.aspx.

Sale of Personal Information


Pearson does not rent or sell personal information in exchange for any payment of money.

While Pearson does not sell personal information, as defined in Nevada law, Nevada residents may email a request for no sale of their personal information to NevadaDesignatedRequest@pearson.com.

Supplemental Privacy Statement for California Residents


California residents should read our Supplemental privacy statement for California residents in conjunction with this Privacy Notice. The Supplemental privacy statement for California residents explains Pearson's commitment to comply with California law and applies to personal information of California residents collected in connection with this site and the Services.

Sharing and Disclosure


Pearson may disclose personal information, as follows:

  • As required by law.
  • With the consent of the individual (or their parent, if the individual is a minor)
  • In response to a subpoena, court order or legal process, to the extent permitted or required by law
  • To protect the security and safety of individuals, data, assets and systems, consistent with applicable law
  • In connection the sale, joint venture or other transfer of some or all of its company or assets, subject to the provisions of this Privacy Notice
  • To investigate or address actual or suspected fraud or other illegal activities
  • To exercise its legal rights, including enforcement of the Terms of Use for this site or another contract
  • To affiliated Pearson companies and other companies and organizations who perform work for Pearson and are obligated to protect the privacy of personal information consistent with this Privacy Notice
  • To a school, organization, company or government agency, where Pearson collects or processes the personal information in a school setting or on behalf of such organization, company or government agency.

Links


This web site contains links to other sites. Please be aware that we are not responsible for the privacy practices of such other sites. We encourage our users to be aware when they leave our site and to read the privacy statements of each and every web site that collects Personal Information. This privacy statement applies solely to information collected by this web site.

Requests and Contact


Please contact us about this Privacy Notice or if you have any requests or questions relating to the privacy of your personal information.

Changes to this Privacy Notice


We may revise this Privacy Notice through an updated posting. We will identify the effective date of the revision in the posting. Often, updates are made to provide greater clarity or to comply with changes in regulatory requirements. If the updates involve material changes to the collection, protection, use or disclosure of Personal Information, Pearson will provide notice of the change through a conspicuous notice on this site or other appropriate way. Continued use of the site after the effective date of a posted revision evidences acceptance. Please contact us if you have questions or concerns about the Privacy Notice or any objection to any revisions.

Last Update: November 17, 2020