CYAN YELLOW MAGENTA BLACK PANTONE 123 CV BOOKS FOR PROFESSIONALS BY PROFESSIONALS® THE EXPERT’S VOICE® IN.NET Companion eBook Available Expert Service-Oriented Architecture Expert in C# 2005, SECOND EDITION S Dear Reader, e r Service-oriented architecture (SOA) is a new, evolving model for building distrib- v uted applications. SOA is built on loosely coupled components that exchange i Expert c SOAP/XML messages. Web services are a key component in SOA because they e exchange messages. Until recently, XML Web services built in ASP.NET have been Jeffrey Hasan - unable to support business-critical systems because they lacked important O Performance Tuning and service guarantees: security, reliability, and performance. This has now Optimizing ASP.NET r Service-Oriented changed with the release of Web Services Enhancements 3.0 (WSE). Applications i WSE 3.0 is a powerful complement to ASP.NET that allows you to build the e Professional .NET next generation of Web services. WSE 3.0 implements industry-standard Web n Framework service specifications, including WS-Security and WS-Addressing, for building t e ADO.NET Programmer’s truly interoperable Web services that are not tied to a single vendor. WSE 3.0 Reference d integrates with the ASP.NET processing pipeline to provide advanced support Professional VB6 Web for secure, reliable XML messages. In addition, WSE 3.0 provides an intuitive, A Architecture C# 2005 Programming flexible application programming interface that automatically generates the r in SOAP message attributes for secure, reliable messages. c h We wrote this book because we are passionate about SOA and Web services development. Our book teaches you the concepts behind SOA and shows you it in very practical terms how to build business-critical Web services using e ASP.NET and WSE 3.0. Our book will show you how to take your Web services c development to the next level using the best of today’s technology. t u Prepare to be informed, and prepare to be inspired! r e Jeffrey Hasan, M.Sc., MCSD, and Mauricio Duran, MCP i Defining Web services development with ASP.NET and WSE 3.0 n C # 2 Join online discussions: 0 Companion eBook SOURCECODEONLINE forums.apress.com 0 SECOND EDITION FOR PROFESSIONALS BY PROFESSIONALS™ 5 www.apress.com SECOND See last page for details EDITION on $10 eBook version Jeffrey Hasan ISBN 1-59059-701-X 53999 DH ua rs with Mauricio Duran aa nn US $39.99 , Shelve in .NET 6 89253 59701 9 9 781590 597019 User level: Advanced this print for content only—size & color not accurate spine = 0.638" 272 page count 701xFM.qxd 7/14/06 5:43 PM Page i Expert Service-Oriented Architecture in C# 2005 Second Edition Jeffrey Hasan with Mauricio Duran 701xFM.qxd 7/14/06 5:43 PM Page ii Expert Service-Oriented Architecture in C# 2005,Second Edition Copyright © 2006 by Jeffrey Hasan,Mauricio Duran All rights reserved. No part of this work may be reproduced or transmitted in any form or by any means, electronic or mechanical, including photocopying, recording, or by any information storage or retrieval system, without the prior written permission of the copyright owner and the publisher. ISBN-13 (pbk): 978-1-59059-701-9 ISBN-10 (pbk): 1-59059-701-X Printed and bound in the United States of America 9 8 7 6 5 4 3 2 1 Trademarked names may appear in this book. Rather than use a trademark symbol with every occurrence of a trademarked name, we use the names only in an editorial fashion and to the benefit of the trademark owner, with no intention of infringement of the trademark. Lead Editor: Jonathan Hassell Technical Reviewers: Mathew Upchurch, Omar Del Rio Editorial Board: Steve Anglin, Dan Appleman, Ewan Buckingham, Gary Cornell, Jason Gilmore, Jonathan Hassell, James Huddleston, Chris Mills, Matthew Moodie, Dominic Shakeshaft, Jim Sumser, Matt Wade Project Manager: Richard Dal Porto Copy Edit Manager: Nicole LeClerc Copy Editors: Jennifer Whipple, Ami Knox Assistant Production Director: Kari Brooks-Copony Production Editor: Ellie Fountain Compositor: Dina Quan Proofreader: Liz Welch Indexer: Michael Brinkman Artist: Kinetic Publishing Services, LLC Cover Designer: Kurt Krames Manufacturing Director: Tom Debolski Distributed to the book trade worldwide by Springer-Verlag New York, Inc., 233 Spring Street, 6th Floor, New York, NY 10013. Phone 1-800-SPRINGER, fax 201-348-4505, e-mail [email protected], or visit http://www.springeronline.com. For information on translations, please contact Apress directly at 2560 Ninth Street, Suite 219, Berkeley, CA 94710. Phone 510-549-5930, fax 510-549-5939, e-mail [email protected], or visit http://www.apress.com. The information in this book is distributed on an “as is” basis, without warranty. Although every precaution has been taken in the preparation of this work, neither the author(s) nor Apress shall have any liability toany person or entity with respect to any loss or damage caused or alleged to be caused directly or indirectly by the information contained in this work. The source code for this book is available to readers at http://www.apress.comin the Source Code section. 701xFM.qxd 7/14/06 5:43 PM Page iii Contents at a Glance About the Authors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xi About the Technical Reviewers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xiii Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xv Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xvii ■ CHAPTER 1 Introducing Service-Oriented Architecture . . . . . . . . . . . . . . . . . . . . . . 1 ■ CHAPTER 2 The Web Services Description Language . . . . . . . . . . . . . . . . . . . . . . . 15 ■ CHAPTER 3 Design Patterns for Building Message-Oriented Web Services . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 ■ CHAPTER 4 Design Patterns for Building Service-Oriented WebServices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 ■ CHAPTER 5 Web Services Enhancements 3.0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83 ■ CHAPTER 6 Secure Web Services with WS-Security . . . . . . . . . . . . . . . . . . . . . . . 107 ■ CHAPTER 7 Extended Web Services Security with WS-Security and WS-Secure Conversation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133 ■ CHAPTER 8 SOAP Messages:Addressing,Messaging,and Routing . . . . . . . . . 169 ■ CHAPTER 9 Beyond WSE 3.0:Looking Ahead to Windows Communication Foundation (WCF) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205 ■ APPENDIX References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225 ■ INDEX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235 iii 701xFM.qxd 7/14/06 5:43 PM Page iv 701xFM.qxd 7/14/06 5:43 PM Page v Contents About the Authors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xi About the Technical Reviewers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xiii Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xv Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xvii ■ CHAPTER 1 Introducing Service-Oriented Architecture . . . . . . . . . . . . . . . . 1 Overview of Service-Oriented Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . 1 What Are Web Services,Really? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 Components of Web Service Architecture . . . . . . . . . . . . . . . . . . . . . . 6 WS-I Basic Profile,WS- Specifications,and Web Services Enhancements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 Introducing the WS-I Basic Profile . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 Introducing the WS- Specifications . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 Introducing Web Services Enhancements . . . . . . . . . . . . . . . . . . . . . 13 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 ■ CHAPTER 2 The Web Services Description Language . . . . . . . . . . . . . . . . . 15 Elements of the WSDL Document . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 The <types> Element . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 The <message> Element . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 The <operation> Element . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 The <portType> Element . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 The <binding> Element . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 The <port> Element . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 The <service> Element . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 The WSDL 1.1 Specification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 Working with WSDL Documents . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 How to Generate a WSDL Document . . . . . . . . . . . . . . . . . . . . . . . . . . 27 What to Do with the WSDL Document . . . . . . . . . . . . . . . . . . . . . . . . . 28 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 v 701xFM.qxd 7/14/06 5:43 PM Page vi vi ■ CONTENTS ■ CHAPTER 3 Design Patterns for Building Message-Oriented Web Services . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 How to Build a Message-Oriented Web Service . . . . . . . . . . . . . . . . . . . . . 31 Step 1:Design the Messages and the Data Types . . . . . . . . . . . . . . 31 Step 2:Build the XSD Schema File for the Data Types . . . . . . . . . . . 32 Step 3:Create a Class File of Interface Definitions for the Messages and Data Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 Optional Step 3A:Generate the WSDL Document Manually . . . . . . 32 Step 4:Implement the Interface in the Web Service Code-Behind File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 Step 5:Generate a Proxy Class File for Clients Based on the WSDL Document . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 Step 6:Implement a Web Service Client Using a Proxy Class File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 Next Steps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 Design and Build a Message-Oriented Web Service . . . . . . . . . . . . . . . . . 34 The Role of XML Messages and XSD Schemas . . . . . . . . . . . . . . . . . 34 The Role of the Interface Definition Class File . . . . . . . . . . . . . . . . . . 40 Messages vs.Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 Consume the Web Service . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 Build the Web Service Consumer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 ■ CHAPTER 4 Design Patterns for Building Service-Oriented Web Services . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 How to Build Service-Oriented Web Services . . . . . . . . . . . . . . . . . . . . . . . 57 Step 1:Create a Dedicated Type Definition Assembly . . . . . . . . . . . 61 Step 2:Create a Dedicated Business Assembly . . . . . . . . . . . . . . . . 61 Step 3:Create the Web Service Based on the Type Definition Assembly . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62 Step 4:Implement the Business Interface in the Web Service . . . . 62 Step 5:Generate a Web Service Proxy Class File Based on the WSDL Document . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 Step 6:Create a Web Service Client . . . . . . . . . . . . . . . . . . . . . . . . . . 63 Design and Build a Service-Oriented Web Service . . . . . . . . . . . . . . . . . . . 63 Create the Definition Assembly (Step 1) . . . . . . . . . . . . . . . . . . . . . . . 64 Create the Business Assembly (Step 2) . . . . . . . . . . . . . . . . . . . . . . . 66 Create the Web Service (Steps 3–5) . . . . . . . . . . . . . . . . . . . . . . . . . . 68 Create the Web Service Client (Step 6) . . . . . . . . . . . . . . . . . . . . . . . . 70 701xFM.qxd 7/14/06 5:43 PM Page vii ■ CONTENTS vii Design and Build a Service Agent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75 Implement the StockTrader SOA Application Using a Service Agent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 The External Web Service (StockQuoteExternalService) . . . . . . . . . 78 The Service Agent (StockTraderServiceAgent) . . . . . . . . . . . . . . . . . 78 The Business Assembly (StockTraderBusiness) . . . . . . . . . . . . . . . . 80 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81 ■ CHAPTER 5 Web Services Enhancements 3.0 . . . . . . . . . . . . . . . . . . . . . . . . . . 83 Overview of the WS- Specifications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83 Business Significance of the WS- Specifications . . . . . . . . . . . . . . . 84 Introducing the WS- Specifications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86 Interoperability . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86 Composability . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86 Security . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86 Description and Discovery . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87 Messaging and Delivery . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87 Transactions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87 The WS- Specifications Covered in This Book . . . . . . . . . . . . . . . . . . . . . . . 87 Introducing Web Services Enhancements 3.0 . . . . . . . . . . . . . . . . . . . . . . . 89 How the WSE Processing Infrastructure Works . . . . . . . . . . . . . . . . . 89 How WSE Works with ASP.NET . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91 Install and Configure WSE 3.0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96 X.509 Certificate Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100 X.509 Certificates Explained . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100 Installing the X.509 Test Certificates . . . . . . . . . . . . . . . . . . . . . . . . . 101 Set ASP.NET Permissions to Use the X.509 Certificates . . . . . . . . . 103 Final Thoughts on WSE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106 ■ CHAPTER 6 Secure Web Services with WS-Security . . . . . . . . . . . . . . . . . 107 The WS-Security Specification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107 Secure Web Services in an SOA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111 Implement WS-Security Using the WSE 3.0 Toolkit . . . . . . . . . . . . . . . . . 112 WSE 3.0 Security Policies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115 Turnkey Security Assertions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117 Securing the StockTrader Application Using WSE 3.0 . . . . . . . . . . 118 Authorization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132 701xFM.qxd 7/14/06 5:43 PM Page viii viii ■ CONTENTS ■ CHAPTER 7 Extended Web Services Security with WS-Security and WS-Secure Conversation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133 Authentication Models . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133 Direct Authentication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133 Brokered Authentication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135 Implementing Brokered Authentication . . . . . . . . . . . . . . . . . . . . . . . . . . . 137 Brokered Authentication Using Mutual Certificates . . . . . . . . . . . . 137 Brokered Authentication Using Kerberos . . . . . . . . . . . . . . . . . . . . . 146 Prevent Replay Attacks Using Time Stamps,Digital Signatures,and Message Correlation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159 Use Time Stamps for Message Verification . . . . . . . . . . . . . . . . . . . 159 Use Username Token Nonce Values for Message Verification . . . . 160 Use Message Correlation and Sequence Numbers for Message Verification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161 Establish Trusted Communication with WS-Secure Conversation . . . . . 162 Overview of Secure Conversation . . . . . . . . . . . . . . . . . . . . . . . . . . . 163 How to Implement Secure Conversation Using WSE 3.0 . . . . . . . . 166 Final Thoughts on Secure Conversation . . . . . . . . . . . . . . . . . . . . . . 166 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167 ■ CHAPTER 8 SOAP Messages: Addressing,Messaging, and Routing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169 Communication Models for Web Services . . . . . . . . . . . . . . . . . . . . . . . . . 170 Overview of WS-Addressing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172 Overview of the WS-Addressing Constructs . . . . . . . . . . . . . . . . . . 173 WSE 3.0 Implementation for WS-Addressing . . . . . . . . . . . . . . . . . . 175 Security Considerations for WS-Addressing . . . . . . . . . . . . . . . . . . 177 Overview of Messaging . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178 Comparing Messaging with the HTTP and TCP Protocols . . . . . . . 178 Representing SOAP Messages in the WSE 3.0 Messaging Framework . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179 SOAP Senders and SOAP Receivers . . . . . . . . . . . . . . . . . . . . . . . . . 181 Traditional XML Web Services vs.SOAP Messaging over HTTP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187 Properties of Message-Enabled Web Services . . . . . . . . . . . . . . . . 188 701xFM.qxd 7/14/06 5:43 PM Page ix ■ CONTENTS ix Overview of Routing and Referral . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189 Build a SOAP Router for the Load Balancing Routing Model . . . . . 190 Overview of the SOAPSender . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191 Overview of the SOAPService . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192 Overview of the SOAPRouter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193 Send a Stock Quote Request Using the SOAPSender . . . . . . . . . . . 195 Routing vs.WS-Referral . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195 Routing and Security . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196 Routing vs.WS-Addressing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196 Integrate Web Services and MSMQ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197 Use MSMQ for Reliable Messaging . . . . . . . . . . . . . . . . . . . . . . . . . . 197 Create a Message Queue Trigger . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198 Create a Web Service That Uses MSMQ . . . . . . . . . . . . . . . . . . . . . . 199 Implement the Web Service Client . . . . . . . . . . . . . . . . . . . . . . . . . . . 202 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203 ■ CHAPTER 9 Beyond WSE 3.0: Looking Ahead to Windows Communication Foundation (WCF) . . . . . . . . . . . . . . . . . . . . . . . 205 Overview of WCF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206 The WCF Service Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207 The WCF Connector . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211 Hosting Environments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211 Messaging Services . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212 System Services . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212 Understanding WCF Web Services . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213 What Is a WCF Web Service? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213 Understanding WCF Applications and Infrastructure . . . . . . . . . . . . . . . . 214 The WCF Service Layer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214 Ports . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215 Typed Channels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217 Service Manager . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217 Transports and Formatters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 218 How to Get Ready for WCF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219 WSE 3.0 and WCF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223
Description: