Best Practices for Testing, Deploying and Managing WCF Solutions in the Big Enterprise
Jesus RodriguezChief Architect, Tellago, Tellago Studios, Inc
About Me..…Chief Architect Tellago and Tellago Studios, IncMicrosoft Architect AdvisorMicrosoft MVPOracle SOA ACESpeaker, authorLead architect SO-Awarehttp://weblogs.asp.net/gsusx
Agenda
Exploring WCF Challenges in real world SO solutionsPatterns, Techniques and Tools to enhance WCF-based solutionsDemo, Demo, Demo, Demo…..Q&A
What to expect
400 level sessionLots of codeReal world best practicesContinuous dialog
If you hate code….
Real World Challenges, Real World Solutions
Sample Scenario
Account Service
ContactsService
CRM System
Client
Things that will drive you insane in SO solutions
Service VersioningRemove Endpoint-Coupling Between Services and ClientsManaging WCF ConfigurationWCF Services AvailabilityMonitoring ServicesSecurity && Identity Management
There are solutions
Service Versioning
ChallengesVersioning services imposes large degrees of changes on the clientsMultiple versions of the same services might need to be running side by side
Solution: Use WCF Routing Service to abstract the communication across different service versions
Service v1
Routing ServiceClient
Service v2
demo
Implementing Intelligently Available WCF Services Using WS-Discovery
Remove Endpoint-Coupling Between Services and Clients
ChallengesClients are dependent on WCF endpoint changesHigh availability requires the deployment of expensive hardware solutions
Solution: Use WS-Discovery to adapt to endpoint changes
Service
ServiceClient
WS-Discovery Probe, Match
WS-Discovery Probe, MatchX
demo
Implementing Intelligently Available WCF Services Using WS-Discovery
WCF Configuration Management
ChallengesComplexityEnforcing reusability and consistency across services, clients and environments
Solution: Centralize WCF configuration
Service
Configuration Repository
Client
GET service/configGET client/config
demo
Centralizing WCF Configuration
WCF Service Availability
Challenges
Identifying when a service is availableAvoiding the need for executing service logic
Solution: Implement a Ping Operation Invoker
ServiceClient
Ping
Ping Operation Invoker
Ping Response
demo
Pinging WCF Services
Service Activity Monitoring
ChallengesInstrument the message exchange between client and servicesCollect near real time metrics about the service runtime behaviorTrack the data exchange between clients and services
Solution: Enable and extend service tracking using the Windows Server AppFabric
Service
Client
Tracking DB
AppFabric
Message Tracking Inspector
Tracking Data Service
demo
Monitoring WCF Services
Other things that might drive you crazy Security Identity managementService dependency modelingInteroperability GovernanceTesting
SummaryAdopting WCF in big SO solutions can introduce some interesting challengesThe extensibility of the WCF programming model together with well established patterns, tools and techniques that can help to address those challengesStart small, iterate, adopt what makes sense for your organization
Thanks!!!
[email protected]://tellago.comhttp://tellagostudios.comhttp://weblogs.asp.net/gsusx
Track Resources
Windows Azure Platform Training Kit
Windows Server AppFabric Training Kit
BizTalk 2010 Developer Training Kit
Windows Azure AppFabric on MSDN
Windows Server AppFabric on MSDN
AppFabric Team Blog
Resources
www.microsoft.com/teched
Sessions On-Demand & Community Microsoft Certification & Training Resources
Resources for IT Professionals Resources for Developers
www.microsoft.com/learning
http://microsoft.com/technet http://microsoft.com/msdn
Learning
http://northamerica.msteched.com
Connect. Share. Discuss.
Complete an evaluation on CommNet and enter to win!
Scan the Tag to evaluate this session now on myTech•Ed Mobile
© 2011 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries.The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to
be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS
PRESENTATION.