Nicht aus der Schweiz? Besuchen Sie lehmanns.de
Für diesen Artikel ist leider kein Bild verfügbar.

SOA with .NET and Windows Azure

Realizing Service-Orientation with the Microsoft Platform

Pearson (Hersteller)
978-0-13-263947-7 (ISBN)
CHF 47,10 inkl. MwSt
  • Keine Verlagsinformationen verfügbar
  • Artikel merken
"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

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-Nurnberg. 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. Herbjoern Wilhelmsen Herbjoern 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. Herbjoern 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. Herbjoern 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 (TM) 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 Facade 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

Sprache englisch
Gewicht 1 g
Themenwelt Mathematik / Informatik Informatik Netzwerke
ISBN-10 0-13-263947-5 / 0132639475
ISBN-13 978-0-13-263947-7 / 9780132639477
Zustand Neuware
Haben Sie eine Frage zum Produkt?