|
![]() |
|||
|
||||
Overview“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 Full Product DetailsAuthor: Thomas Erl , David Chou , John deVadoss , Nitin GandhiPublisher: Pearson Education (US) Imprint: Prentice Hall Dimensions: Width: 10.00cm , Height: 10.00cm , Length: 10.00cm Weight: 0.100kg ISBN: 9780131582316ISBN 10: 0131582313 Pages: 912 Publication Date: 10 June 2010 Audience: College/higher education , Tertiary & Higher Education Format: Hardback Publisher's Status: Out of Print Availability: In Print ![]() Limited stock is available. It will be ordered for you and shipped pending supplier's limited stock. Table of ContentsForeword 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 833ReviewsExplaining 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 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 Author InformationDavid Chou David Chou is a technical architect at Microsoft and is based in Los Angeles. His focus is on collaborating with enterprises and organizations in such areas as cloud computing, SOA, Web, distributed systems, and security. His involvement supports decision makers in helping them to define the appropriate evolutionary strategies in their architecture development. Drawing from his extensive experience at previously held positions with Sun Microsystems and Accenture, David enjoys helping his clients and customers create value by using objective and pragmatic approaches to create definitive IT strategies, roadmaps, and solution architectures. Find David and his blog at blogs.msdn.com/dachou. John deVadoss John deVadoss leads the Patterns & Practices team at Microsoft and is based in Redmond, WA. Patterns & Practices is the trusted source for guidance on the Microsoft platform; John and his team are chartered with creating, collating, and disseminating proven practices to enable productive, predictable development on the Microsoft .NET platform. John’s experience spans 15 years in the software industry. 10+ years have been with Microsoft--all of it in the enterprise space as a consultant, a program manager in the distributed applications platform division, an architect working with some of Microsoft’s key partners, a director of architecture strategy and, most recently, as the leading technical strategist for the all-up application platform. Prior to Microsoft, John spent a number of years as a technology consultant in Silicon Valley working on largescale middleware and distributed systems design and development. His areas of interest are broadly in distributed application architectures, data and metadata, systems management and currently on edge architectures (both service/cloud and experience), but most of all in creating business value from technology investments. John holds a BE in Computer Engineering, and an MS in Computer Science. Both degrees were awarded by the University of Massachusetts at Amherst where he also did graduate work towards a PhD in Computer Science. Thomas Erl Thomas Erl is the world’s top-selling SOA author, series editor of the Prentice Hall Service-Oriented Computing Series from Thomas Erl (www.soabooks.com), and editor of the SOA Magazine (www.soamag.com). With more than 120,000 copies in print worldwide, his books have become international bestsellers and have been formally endorsed by senior members of major software organizations, such as IBM, Microsoft, Oracle, Sun, Intel, SAP, CISCO, and HP. Two of his five books, SOA Design Patterns and SOA Principles of Service Design, were authored in collaboration with the IT community and have contributed to the definition of the service-oriented architectural model and service orientation as a distinct paradigm. In cooperation with SOASchool.com, Thomas has helped develop the curriculum for the internationally recognized SOA Certified Professional accreditation program (www.soaschool.com), which has established a series of formal, vendor-neutral certifications in the areas of service-oriented computing. Thomas is also the founder of SOA Systems Inc. (www.soasystems.com), the founding member of the SOA Manifesto Working Group (www.soa-manifesto.org), a member of the SOA Education Committee (www.soacommittee.org), and oversees the SOAPatterns.org initiative, a community site dedicated to the on-going development of a master pattern catalog for SOA. Thomas has toured more than 20 countries as a speaker and instructor for public and private events, and regularly participates in events, such as the SOA Symposium (www.soasymposium.com) and Gartner conferences. More than 100 articles and interviews by Thomas have been published in numerous publications, including the Wall Street Journal and CIO Magazine. For more information, visit www.thomaserl.com. Nitin Gandhi Nitin Gandhi is an enterprise architect and an independent software consultant, based in Vancouver, BC. His extensive background in service-oriented architecture (SOA), SOA Governance, Enterprise Service Bus (ESB), and message-oriented middleware (MOM) has seen him work on server products and technologies including, .NET, Windows Communication Foundation (WCF), Microsoft BizTalk Server, SQL Server,Workflow Foundation (WF), Service Virtualization technologies, J2EE/JMS, Oracle, and TIBCO products. He has completed several large projects in insurance, utilities, financial-services, government and healthcare. Nitin is an author, book reviewer and member of several architecture groups. He holds a Bachelor’s of Engineering in Electronics (with honors) and a Post Graduate diploma in Management. Find Nitin at ngandhi@shaw.ca. Hanu Kommalapati Hanu Kommalapati is a Principal Platform Strategy Advisor for a Microsoft Developer and Platform Evangelism team based in North America. His current focus is working with Microsoft’s top enterprise customers in North America in evangelizing software + services and Cloud Computing. Hanu received his M.S. in Engineering from the Indian Institute of Technology--a top engineering school in India--and has 18 years experience in the IT Industry working with PriceWaterHouseCoopers and Microsoft. His career began as a software engineer at Hindustan Aeronautics Ltd., a fighter jet manufacturer solely owned by the Indian Defense Department; he also programmed on HP Apollo workstations, Unix mini computers and IBM mainframes. Hanu frequently speaks at customer and industry events, writes articles in technology magazines and has written papers for internal consumption on various industry trends, including Service Oriented Architecture and Cloud Computing. Brian Loesgen Brian Loesgen is a Principal SOA Architect with Microsoft, based in San Diego. His extensive experience includes building sophisticated enterprise, ESB and SOA solutions. Brian is a 6-time Microsoft MVP for BizTalk Server, and has been involved with BizTalk since before the release of BizTalk Server 2000 beta; he was a key architect/developer of the “Microsoft ESB Guidance,” initially released by Microsoft in Oct. 2006. A speaker at numerous major technical conferences worldwide, Brian is a co-founder and past-President of the International .NET Association (ineta.org), and past-President of the San Diego .NET user group, where he continues to lead the Connected Systems SIG, and is a member of the Editorial Board for the .NET Developer’s Journal. Brian was also a member of the Microsoft Connected Systems Division Virtual Technical Specialist Team pilot, and is part of Microsoft’s Connected Systems Advisory Board. Brian has authored technical white papers for Intel, Microsoft and others; is a co-author of the SOA Manifesto, as well as the co-author of 7 books, including this one, and is the lead author on the upcoming BizTalk Server 2009 R2 Unleashed title. Find Brian and his blog at: blog.BrianLoesgen.com. Christoph Schittko Christoph Schittko is an architect for Microsoft, based in Texas. His focus is to work with customers to build innovative solutions that combine software + services for cutting edge user experiences and the leveraging of service-oriented architecture (SOA) solutions. Prior to joining Microsoft, Christoph assisted companies with the adoption of service orientation and the delivering of Software-as-a-Service (SaaS) solutions. Christoph holds an advanced degree in Electrical Engineering from the Friedrich-Alexander University Erlangen-Nürnberg. His extensive experience in developing and architecting software solutions in a wide variety of industries allows him to write and to speak at various conferences on Web services and XML. Herbjörn Wilhelmsen Herbjörn Wilhelmsen is a consultant at Forefront Consulting Group, based in Stockholm, Sweden. His main areas of focus are Service-Oriented Architecture, Cloud Computing and Business Architecture. Herbjörn has many years of industry experience working as a developer, development manager, architect and teacher and has worked with customers in several fields of operations such as telecommunications, marketing, payment industry, healthcare and public services. Herbjörn is the acting chair of the SOA Patterns Review Committee (www.soapatterns.org) and also leads the Business 2 IT group within the Swedish chapter of the IASA. Mickey Williams Mickey Williams leads the Technology Platform Group at Neudesic, based in Laguna Hills, CA. As a member of that team, he oversees technical leadership, strategy, and enablement across all of Neudesic’s practice areas, and manages a team of architects that have a national role at Neudesic. Mickey has extensive experience building missioncritical applications on a wide variety of platforms, ranging from large telecommunication networks to desktop clients, and his work with .NET extends back to the earliest public release. Mickey’s academic interests revolve around ensuring the reliability of high-performance distributed systems. Mickey is a Microsoft MVP, has written numerous books on Windows development, and is a frequent speaker at conferences and other events. Scott Golightly Scott Golightly is currently an Enterprise Solution Strategist with Advaiya, Inc; he is also a Microsoft Regional Director with more than 15 years of experience helping clients to create solutions to business problems with various technologies. Scott is an experienced speaker and trainer. He has taught classes around the globe on various technical and business related topics. Scott has presented at numerous code camps, Tech Ed break out sessions, and Tech Ready. Scott holds many certifications, including: Certified Power-Builder Developer, Certified Sybase Instructor, MCP, MCSD, and MCT. Darryl Hogan Darryl Hogan is an architect with more than 15 years experience in the IT industry. Darryl has gained significant practical experience during his career as a consultant, technical evangelist and architect. During an 11-year tenure with Microsoft, Darryl delivered presentations to many large local Microsoft technology events and internal technical readiness conferences. Darryl currently works as an architect with a major marketing company where he is responsible for product architecture and emerging technology adoption. Kris Horrocks As a Senior Technical Product Manager at Microsoft, Kris works with customers, partners, and industry analysts to ensure the next generation of Microsoft technology meets customers’ requirements for building distributed, service-oriented solutions. Currently, that work centers around several middleware technologies including BizTalk Server, Windows Server AppFabric, and Windows Azure AppFabric. Prior to joining Microsoft, Kris was an independent consultant focused on distributed systems development, B2B integration, and web services interoperability. Jeff King Jeff King has been working with the Windows Azure platform since its first announcement at PDC 2008 and works with Windows Azure early adopter customers in the Windows Azure TAP. Within the Microsoft community, Jeff is a worldwide Windows Azure subject matter expert who continues to mentor in ongoing Windows Azure training programs. Jeff currently consults for Microsoft Services. He has expert knowledge in designing and implementing large-scale integration and SOA solutions by leveraging Microsoft technologies and products (.NET, WCF, BizTalk Server, ESB Toolkit, etc.). He also helped develop the first publicly available version of the Enterprise Service Bus Toolkit (then, it was called the ESB Guidance), particularly the Exception Management Framework. Scott Seely Scott Seely is co-founder of Tech in the Middle, www.techinthemiddle.com, and president of Friseton, LLC, www.friseton.com. He is an active member of the .NET community in the Chicago area, helping organize the Lake County .NET Users’ Group, organize Code Camps, and speaking at user groups throughout the region. Tab Content 6Author Website:Countries AvailableAll regions |