9. Service Versioning
Remove Endpoint-Coupling Between Services and
Clients
Managing WCF Configuration
WCF Services Availability
Monitoring Services
Security && Identity Management
10.
11.
12. 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
Client Routing Service
Service v2
13.
14.
15. 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
WS-Discovery Probe, Match
Service
Client
WS-Discovery Probe, Match
Service
16.
17.
18. Complexity
Enforcing reusability and consistency across services, clients and
environments
Solution: Centralize WCF configuration
Configuration Repository
GET client/config GET service/config
Client Service
19.
20.
21. Identifying when a service is available
Avoiding the need for executing service logic
Solution: Implement a Ping Operation Invoker
Ping
Client Service
Ping Response
Ping Operation Invoker
22.
23.
24. 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 services
Solution: Enable and extend service tracking using the Windows
Server AppFabric
Client
Service
27. 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