making wcf simple
DESCRIPTION
TRANSCRIPT
Making WCF simple: best practices for testing, deploying and
managing WCF solutions in the big enterpriseJesus Rodriguez
CEO, Co-Founder Tellago, IncCEO, Co-Founder Tellago Studios, Inc
About me….
• Hackerpreneur• Co-Founder Tellago, Tellago Studios, Inc• Microsoft Architect Advisor• Microsoft MVP• Oracle ACE• Speaker, Author• http://weblogs.asp.net/gsusx • http://jrodthoughts.com • http://moesion.com
Agenda
• Exploring WCF Challenges in real world SO solutions
• Patterns, Techniques and Tools to enhance WCF-based solutions
• Demo, Demo, Demo, Demo…..• Q&A
What to expect
• 400 level session• Lots of code• Real world best practices• Continuous dialog
Real World Challenges, Real World Solutions
Sample Scenario
Account Service
Contacts
Service
CRM System
Client
Things that will drive you insane in SO solutions
• Service Versioning• Remove Endpoint-Coupling
Between Services and Clients• Managing WCF Configuration• WCF Services Availability• Monitoring Services• Security && Identity Management
There are solutions
Service Versioning
Challenges
• Versioning services imposes large degrees of changes on the clients
• Multiple 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 ServiceClientService
v2
DEMO: Implementing Intelligently Available WCF Services Using WS-
Discovery
Remove Endpoint-Coupling Between Services and Clients
Challenges
• Clients are dependent on WCF endpoint changes• High 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, Match
X
DEMO: Implementing Intelligently Available WCF Services Using WS-
Discovery
WCF Configuration Management
Challenges
• Complexity• Enforcing reusability and consistency across services,
clients and environments
Solution: Centralize WCF configuration
Service
Configuration Repository
Client
GET service/config
GET client/config
DEMO: Centralizing WCF Configuration
WCF Service Availability
Challenges
• Identifying when a service is available• Avoiding 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
Challenges
• Instrument the message exchange between client and services
• Collect near real time metrics about the service runtime behavior
• Track the data exchange between clients and servicesSolution: Enable and extend service tracking
using the Windows Server AppFabric
ServiceClient
Tracking DB
AppFabric
Message Tracking Inspector
Tracking Data
Service
DEMO: Monitoring WCF Services
Other things that might drive you crazy
• Security • Identity management• Service dependency modeling• Interoperability • Governance• Testing
Summary
• Adopting WCF in big SO solutions can introduce some interesting challenges
• The extensibility of the WCF programming model together with well established patterns, tools and techniques that can help to address those challenges
• Start small, iterate, adopt what makes sense for your organization
http://www.tellago.com http://weblogs.asp.net/gsusx
http://jrodthoughts.com http://twitter.com/#!/jrodthoughts