API Design & Management

Artificial Intelligence (AI)

Big Data


Business Technology

Cloud Computing




Digital Transformation

Internet of Things (IoT)

Machine Learning


Robotic Process Automation (RPA)

Service Governance

Service Security

Service-Oriented Architecture (SOA)

Spanish Courses & Exams

Arcitura Patterns Site

Arcitura on YouTube

Arcitura on LinkedIn

Arcitura on Facebook

Arcitura on Twitter

Community Home

Arcitura Books Published by Pearson Education

Partner Program

Onsite / Online Exams

Onsite / Online Training

Trainer Development

Home Study Solutions

Contact Arcitura


Workshop Scheduler

Download Catalog (PDF)




Artificial Intelligence Specialist

Big Data Architect

Big Data Consultant

Big Data Engineer

Big Data Governance Specialist

Big Data Professional

Big Data Science Professional

Big Data Scientist

Blockchain Architect

Business Technology Professional

Cloud Architect

Cloud Governance Specialist

Cloud Professional

Cloud Security Specialist

Cloud Storage Specialist

Cloud Technology Professional

Cloud Virtualization Specialist

Containerization Architect

Cybersecurity Specialist

DevOps Specialist

Digital Transformation Data Science Professional

Digital Transformation Data Scientist

Digital Transformation Intelligent Automation Professional

Digital Transformation Intelligent Automation Specialist

Digital Transformation Security Professional

Digital Transformation Security Specialist

Digital Transformation Specialist

Digital Transformation Technology Architect

Digital Transformation Technology Professional

IoT Architect

Machine Learning Specialist

Microservice Architect

RPA Specialist

Service API Specialist

Service Governance Specialist

Service Security Specialist

Service Technology Consultant

SOA Analyst

SOA Architect

SOA Professional

Acclaim/Credly Badges

Pearson Vue Exams


The Pearson Digital Enterprise Series From Thomas Erl

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

Chapter 1: Introduction

1.1 About this Book
1.2 Objectives of this Book
1.3 Who this Book if For
1.4 What this Book Does Not Cover
1.5 Prerequisite Reading
1.6 How this Book is Organized
Part I: Fundamentals
Part II: Services and Service Composition
Part III: Infrastructure and Architecture
Part IV: Appendices
1.7 How Principles and Patterns are Used in this Book
1.8 Symbols, Figures, and Style Conventions.

Chapter 2: Case Study Background

2.1 How Case Study Examples are Used
2.2 Case Study Background #1: Standard Mold
Technical Infrastructure
Business Goals and Obstacles
2.2 Case Study Background #2: Superior Stamping
History and Culture
Technical Infrastructure
Business Goals and Obstacles

Part I: Fundamentals
Chapter 3: SOA Fundamentals

3.1 Basic SOA Terminology
Service-Oriented Computing
Service-Oriented Architecture (SOA)
Services as Components
Services as Web Services
Services as REST Services
Service Models
Agnostic Logic and Non-Agnostic Logic
Service Composition
Service Inventory
Service-Oriented Analysis
Service Candidate
Service-Oriented Design
Service Contract
Service-Related Granularity
SOA Design Patterns
3.2 Service-Oriented Computing Goals
Increased Intrinsic Interoperability
Increased Federation
Increased Vendor Diversification Options
Increased Business and Technology Domain Alignment
3.3 Further Reading

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

4.1 Distributed Computing 101
Distributed Architecture
Service-Oriented Architecture
4.2 .NET Enterprise Services
It All Began with COM (and DCOM)
COM+ Services
.NET Assemblies
Distributed Transaction Coordinator
.NET Enterprise Services and Service-Orientation
4.3 .NET Remoting
.NET Remoting Architecture
Serializable Classes
Remotable Classes
Ordinary Classes
Hosting .NET Remoting Components
Windows Service
IIS Hosting Under ASP.NET
Hosting a .NET Remoting Component in a Console Application
.NET COM+ Services
.NET Remoting Configurations
Activation Types
Message Formats
Communication Protocols
Object Lifetime Management
.NET Remoting and Service-Orientation
4.4 Microsoft Messaging Queue (MSMQ)
The Queues
Sending and Receiving Messages
MSMQ and Service-Orientation
4.5 System.Transactions
Distributed Resource Transactions
Explicit and Implicit Programming Models
Ambient Transactions
4.6 Web Services (ASMX and WSE)
XML Web Services (ASMX)
The WebService Attribute
The WebMethod Attribute
Web Service Enhancements (WSE)
4.7 REST Service Processing with IHttpHandler

Chapter 5: WCF Services

5.1 Overview
5.2 Service Contracts with WCF
WCF Terminology
WCF Service Contract
Interface Contract
Operation Contract
Data Contract
Message Contract
Service Endpoint
The ServiceContract and OperationContract Attributes
Data Models and the DataContract Attribute
Messaging and the MessageContract Attribute
Service Endpoints and the endpoint Element
REST Service Classes and Attributes
The WebGet Attribute
The WebInvoke Attribute
WCF UriTemplate Attribute
Faults and the FaultContract Attribute
MEX Endpoints
Versioning Considerations
5.3 Service Implementation with WCF
A Sample Implementation
5.4 Service Hosting with WCF
Self-Hosted Services
Managed Windows Services
IIS Process Boundary
Windows Activation Services (WAS)
Hosting REST Services
5.5 Service Consumers with WCF
Using the Service Metadata Tool
Writing the Proxy Class for a Service
Using the ChannelFactory Class

Chapter 6: WCF Extensions

6.1 WCF Security
Security Modes
Federated Identity
6.2 WCF Transactions
Operation Attributes for Transactions
Service Attributes for Transactions
Durable Services
6.3 WCF Router
The RoutingService Class
Routing Contracts
Routing Configuration
Step 1: Define Endpoints
Step 2: Configure Service Behavior
Step 3: Enumerate Target Endpoints
Step 4: Define Message Filters
Step 5: Create a Filter Table
Fault Tolerance
6.4 WCF Discovery
Discovery Modes
Locating a Service Ad Hoc
Sending and Receiving Service Announcements
Discovery Proxies for Managed Discovery
Discovering from a Discovery Proxy
Implicit Service Discovery
6.5 WCF Extensibility
WCF Layers
Layered Extensibility
Channel Layer Extensibility
6.6 WCF Management Tools
Logging Messages

Chapter 7: .NET Enterprise Services

7.1 SQL Server
Native XML Web Services Support
Service Broker (SSB)
Query Notification
XML Support in SQL Server
7.2 Windows Workflow Foundation (WF)
WF Architecture
Sequential Workflows
State Machine Workflows
Workflow Designer
Workflow Persistence (with WF)
Communicating with the Host Container.
Workflow Runtime Environment.
WF Programming Model
Passing Parameters into a Workflow Instance
Returning Parameters from a Workflow Instance
Workflow-Enabled Services.
Versioning Orchestrations
WF Extensibility
Business Rules
7.3 Application Blocks and Software Factories
Application Blocks
Software Factories
Guidance Toolkits
Web Services Software Factory
7.4 Windows Server AppFabric
Configurable Hosting Environment
Workflow Persistence (with AppFabric)
In-Memory Application Cache Platform
Manageability Extensions
Application Server Event Collector
7.5 BizTalk Server
BizTalk Server Architecture
Pipeline Components
Ports and Locations
Context Properties
Unified Exception Management

Chapter 8: Cloud Services with Windows Azure

8.1 Cloud Computing 101
Cloud Deployment Models
Public Cloud
Private Cloud
Community Cloud
Other Deployment Models
The Intercloud (Cloud of Clouds)
Deployment Models and Windows Azure
Service Delivery Models
Infrastructure-as-a-Service (IaaS)
Platform-as-a-Service (PaaS)
Software-as-a-Service (SaaS)
Other Delivery Models
IaaS vsPaaS
8.2 Windows Azure Platform Overview
Windows Azure (Application Container)
SQL Azure
Windows Azure Platform AppFabric
8.3 Windows Azure Roles
Web Roles and Worker Roles
Virtual Machines
Input Endpoints
Inter-Role Communication
8.4 Hello World in Windows Azure
1. Create a Cloud Service Project
2. Choose an ASP.NET Web Role
3. Create the Solution
4. Instantiate the Service
8.5 A Web Service in Windows Azure
1. Create a Host Service and Storage Service
2. Create and Deploy a Service Package
3. Promote the Service to Production
8.6 A REST Service in Windows Azure
REST Service Addressing
Creating a Windows Azure REST Service
8.7 Windows Azure Storage
Entities and Properties
Data Access
Block Blobs
Page Blobs
Windows Azure Drive

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

9.1 Standardized Service Contract
1. Create or Reuse Data Contract
2. Create Message Contract
3. Create Interface Contract
Standardized Service Contract and Patterns
9.2 Canonical Schema
Creating Schemas with Visual Studio
Generating .NET Types
Using the DataContract Library
9.3 Data Model Transformation
XSLT Transformation
9.4 Canonical Protocol
Web Service
REST Service
Another WCF Option: Named Pipes
Dual Protocols with WCF
9.5 Canonical Expression
Service Naming Conventions
Service Capability Naming Conventions

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

10.1 Service Loose Coupling
Service Loose Coupling and Patterns
10.2 Decoupled Contract
Generating Service Code Using Svcutil
Generating WCF Service Code Using
Generating ASMX Service Code Using WSCF.classic
10.3 Service Façade
10.4 Concurrent Contracts
10.5 Service Loose Coupling and Service Capability Granularity
10.6 Service Abstraction
10.7 Validation Abstraction
10.8 Exception Shielding
10.9 Service Discoverability
In-line Documentation
REST and Hypermedia
Service Profiles
10.10 Metadata Centralization

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

11.1 Service Reusability and the Separation of Concerns
Functional Decomposition
Service Encapsulation
Agnostic Context
Agnostic Capability
Utility Abstraction
Entity Abstraction
The Inventory Analysis Cycle
Additional Design Considerations
11.2 Case Study Example: Utility Abstraction with a .NET Web Service
11.3 Case Study Example: Entity Abstraction with a .NET REST Service

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

12.1 Service Composition 101
Service-Orientation and Service Composition
Service Composability (PSD)
Capability Composition and Capability Recomposition
Capability Composition
Capability Recomposition
Composition Roles
Service Layers
Non-Agnostic Context
Process Abstraction and Task Services
12.2 Orchestration
Process Abstraction, Process Centralization, and Orchestrated Task Services
Process Centralizationand Tools
Process Abstraction and WS-BPEL
State Repository and Compensating Service Transaction
State Repository with .NET
Compensating Service Transaction
Other Patterns
Microsoft Orchestration Platforms: WF and BizTalk Server

Chapter 13: Orchestration Patterns with WF

13.1 Process Abstraction and Orchestrated Task Services
A Brief History of WF Service Contract Support
Publishing WF Workflows as Web Services and Activities
Workflows Published as ASMX Services
Workflows Published via WCF 3.5 Activities
Workflows Published via WCF 4.0 Activities
Workflows Published via ExternalDataExchange Services
WS-I BasicProfile Support
Publishing WF Workflows as REST Services
JSON Encoding
Send and Receive Activity Configuration
Orchestrated Task Services with REST and WF 4.0
13.2 Process Centralization
Centralized Process Maintenance
WS-BPEL Support
13.3 State Repository
SQL Persistence Service and Scaling Out in WF 3.0
SQL Persistence Service and Scaling Out in WF 4
13.4 Compensating Service Transaction
Creating Compensations
Triggering Compensations
13.5 Case Study Example

Chapter 14: Orchestration Patterns with BizTalk Server

14.1 Process Abstraction and Orchestrated Task Services
Orchestrated Task Service Contracts
WS-* Support
Case Study Example
14.2 Process Centralization
Centralized Process Maintenance
WS-BPEL Support
Exporting BizTalk Orchestrations to WS-BPEL
Importing WS-BPEL Processes into BizTalk
14.3 State Repository
14.4 Compensating Service Transaction
Case Study Example

Part III: Infrastructure and Architecture
Chapter 15: Enterprise Service Bus with BizTalk Server and Windows Azure

15.1 Microsoft and the ESB
15.2 Integration with BizTalk
Application Integration 101
The BizTalk Hub-Bus Model
15.3 The ESB Toolkit
Itineraries Types
The Itinerary Lifecycle
Adapter Providers
WCF-Custom and REST
15.4 Distributed and Scalable ESB Architecture
Configuring for High-Availability
Techniques for Scaling
Distributed ESBs
15.5 Cloud-Enabling the ESB with Windows Azure
Receiving Messages from Azure’s AppFabric Service Bus
Sending Messages to Azure’s AppFabric Service Bus
15.6 Governance Considerations
SLA Enforcement
Preparing Project Teams
15.7 Mapping the Microsoft Platform to the Enterprise Service Bus Pattern

Chapter 16: Windows Azure Platform AppFabric Service Bus

16.1 Introducing the Service Bus
Connectivity Fabric
Message Buffers
Service Registry
16.2 Service Bus and REST
REST-Based Service Design
REST-Based Service Consumer Design
Message Buffers and REST
16.3 Service Bus Connectivity Models
Service Remoting
16.4 Working with Windows Azure Platform AppFabric Service Bus
Setting up the AppFabric Service Bus
Defining a REST-Based Service Bus Contract
Creating the Service Bus Message Buffer

Chapter 17: SOA Security with .NET and Windows Azure

17.1 Authentication and Authorization with WCF
Direct and Brokered Authentication
Direct Authentication
Brokered Authentication
Authentication Patterns in WCF
Role-Based Authorization
Authorization Roles in WCF
Authorizing Operations with Roles
Claims-Based Authorization
Claims Processing in WCF
Implementing Claims-Based Authorization
Access Control in Windows Azure
Designing Custom Claims
Case Study Example
17.2 Windows Identity Foundation (WIF)
Digital Identity
The Identity Metasystem
Windows Cardspace
Active Directory Federation Services (ADFS)
WIF Programming Model
WCF Integration
Programming Windows Cardspace
Developing a Relying Party
Developing an Identity Provider
17.3 Windows Azure Security
Cloud Computing Security 101
Cross-Domain Access Control
Hybrid Cloud Security
Inter-Organization Service Composition Security
External Identity Providers
Claims-Based Access Control, As-A-Service
Windows Azure Platform AppFabric Access Control Overview
Access Control Step-by-Step
Access Control and REST
Access Control Service Authorization Scenarios
Hybrid Cloud Authorization Model
Public Cloud Authorization Model
Cloud-to-Cloud Authorization Model
Case Study Example

Chapter 18: Service-Oriented Presentation Layers with .NET

18.1 Windows Presentation Foundation and the Prism Library
View Discovery versus View Injection
Shared Services
18.2 Design Patterns for Presentation Logic
User Interface Patterns
Composite View [CJP]
Command [DP]
UI Mediator
Separated Presentation
Modularity Patterns
Separated Interface [PEA]
Plug-In [PEA]
Event Aggregator [PEA]
Inversion of Control [DP]
Dependency Injection [PEA]
Service Locator [CJP]
18.3 A Simple Service-Oriented User Interface
Creating the Project
Dynamically Loading Modules

Chapter 19: Service Performance Optimization

19.1 Overview
Optimization Areas
Service Implementation Processing
Service Framework Processing
Wire Transmission Processing
19.2 Service Performance Optimization Techniques
Caching to Avoid Costly Processing
Service Container
Service Proxy
Caching Utility Service
Comparing Caching Techniques
Cache Implementation Technologies
Computing Cache Keys
Case Study Example
Method 1
Method 2
Caching REST Responses
Monitoring Cache Efficiency
Reducing Resource Contention
Request Throttling
Throttling With WCF
Case Study Example
Request Throttling with BizTalk Server
Coarse-Grained Service Contracts
Case Study Example
Selecting Application Containers
Performance Policies
Case Study Example
REST Service Message Sizes
Hardware Encryption
Transport Encryption
Message Encryption
Custom Encryption Solution
High Performance Transport
Case Study Example
MTOM Encoding
Case Study Example
Performance Considerations for Service Contract Design
Case Study Example
Impact on Service-Orientation Principles
19.3 Service Composition Performance Optimization Techniques
Transformation Avoidance and Caching
Asynchronous Interactions
Parallelize Where Possible
Parallel Activity in WF
Parallel Execution in BizTalk Server
Replicator Activity in WF
Consider Co-Hosting When Necessary
Compose High Performance Services
Impact on Service-Orientation Principles

Chapter 20: SOA Metrics with BAM

20.1 SOA Metric Types
20.2 Introducing BizTalk BAM
BizTalk and BAM
BAM Solution Architecture
The BAM Management Utility
The Tracking Profile Editor (TPE)
Real-Time vs Scheduled Aggregations
20.3 Activities and Views
Roles-based Views for Service Governance
Creating Views
20.4 BAM APIs
Event Streams
DirectEventStream (DES)
BufferedEventStream (BES)
OrchestrationEventStream (OES)
IPipelineContext Interface
Abstracted APIs for Service Metrics
Metrics for Service Compositions
WCF and WF Interceptors
Rapid Prototyping
20.5 Managing BAM
Database Outages
Scripting Deployment
Case Study Example

Part IV: Appendices
Appendix A: Case Study Conclusion
Appendix B: Industry Standards Reference
Appendix C: Service-Orientation Principles Reference
Appendix D: SOA Design Patterns Reference
Appendix E: The Annotated SOA Manifesto

The Annotated SOA Manifesto

Appendix F: Additional Resources

Consuming Services with WCF
Cleaning Up Resources
The Proper Disposal and Closing of an ICommunicationObject
The ICommunicationObject.Close() Method
The ICommunicationObject.Abort() Method
Abort() versus Close()
IDisposable for Cleaning Up Resources
IDisposable and Its Relation to ClientBase and ChannelFactory
Cleaning Up Resources with the Using Block
Cleaning Up Resources with the Try-Catch-Finally-Abort Pattern
Handling Exceptions and Cleaning Up Resources with the Try-Close-Catch-Abort Pattern
Cleaning Up Resources in a Convenient Way
How to Handle Connections when Consuming Services Using WCF