SOA with .NET and Windows Azure
Prentice Hall (Verlag)
978-0-13-158231-6 (ISBN)
- Titel ist leider vergriffen;
keine Neuauflage - Artikel merken
--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
David 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.
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
Erscheint lt. Verlag | 10.6.2010 |
---|---|
Zusatzinfo | Illustrations |
Verlagsort | Upper Saddle River |
Sprache | englisch |
Maße | 100 x 100 mm |
Gewicht | 100 g |
Themenwelt | Informatik ► Betriebssysteme / Server ► Windows |
Mathematik / Informatik ► Informatik ► Netzwerke | |
Informatik ► Programmiersprachen / -werkzeuge ► NET Programmierung | |
Mathematik / Informatik ► Informatik ► Software Entwicklung | |
Mathematik / Informatik ► Informatik ► Web / Internet | |
Mathematik / Informatik ► Mathematik ► Finanz- / Wirtschaftsmathematik | |
ISBN-10 | 0-13-158231-3 / 0131582313 |
ISBN-13 | 978-0-13-158231-6 / 9780131582316 |
Zustand | Neuware |
Haben Sie eine Frage zum Produkt? |
aus dem Bereich