making wcf simple

26
Making WCF simple: best practices for testing, deploying and managing WCF solutions in the big enterprise Jesus Rodriguez CEO, Co-Founder Tellago, Inc CEO, Co-Founder Tellago Studios, Inc

Upload: jesusmrv

Post on 18-Dec-2014

3.523 views

Category:

Technology


0 download

DESCRIPTION

 

TRANSCRIPT

Page 1: Making WCF Simple

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

Page 2: Making WCF Simple

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

Page 3: Making WCF Simple

Agenda

• Exploring WCF Challenges in real world SO solutions

• Patterns, Techniques and Tools to enhance WCF-based solutions

• Demo, Demo, Demo, Demo…..• Q&A

Page 4: Making WCF Simple

What to expect

• 400 level session• Lots of code• Real world best practices• Continuous dialog

Page 5: Making WCF Simple

Real World Challenges, Real World Solutions

Page 6: Making WCF Simple

Sample Scenario

Account Service

Contacts

Service

CRM System

Client

Page 7: Making WCF Simple

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

Page 8: Making WCF Simple

There are solutions

Page 9: Making WCF Simple

Service Versioning

Page 10: Making WCF Simple

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

Page 11: Making WCF Simple

DEMO: Implementing Intelligently Available WCF Services Using WS-

Discovery

Page 12: Making WCF Simple

Remove Endpoint-Coupling Between Services and Clients

Page 13: Making WCF Simple

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

Page 14: Making WCF Simple

DEMO: Implementing Intelligently Available WCF Services Using WS-

Discovery

Page 15: Making WCF Simple

WCF Configuration Management

Page 16: Making WCF Simple

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

Page 17: Making WCF Simple

DEMO: Centralizing WCF Configuration

Page 18: Making WCF Simple

WCF Service Availability

Page 19: Making WCF Simple

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

Page 20: Making WCF Simple

DEMO: Pinging WCF Services

Page 21: Making WCF Simple

Service Activity Monitoring

Page 22: Making WCF Simple

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

Page 23: Making WCF Simple

DEMO: Monitoring WCF Services

Page 24: Making WCF Simple

Other things that might drive you crazy

• Security • Identity management• Service dependency modeling• Interoperability • Governance• Testing

Page 25: Making WCF Simple

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