Notes from WCF & SOA Talk @ SoCal.NET Architecture Group

Last week I spoke to Southern California .NET Architecture Group regarding implementation of Service Oriented Design Patterns with Windows Communication Foundation. The talk was an architectural overview of so called SOA tenants and how to implement these best practices using WCF. Being technologists, we tend to focus more on underlying technologies and have tendency to avoid topics like BPM, enterprise decision management, business rules engine, ESB, event stream processing, registry and discovery, component and composites, orchestration and mediation to name a few. Trying to avoid abstractions and TLA's (three letter acronyms), the focus of the talk was towards explaining the key-components of a generic, platform agnostic service oriented architecture and how WCF fulfills one part of this larger puzzle. In real-world SOA implementations, aside from usual Service ABC's (Address, Binding, Contracts) which are essential parts of service components and composites, there is lot of attention paid to tracking and monitoring the artifacts in a SOA, enforcing and ensuring compliance with the policies associated with the artifacts and measuring the outcomes related to their use. Following are some of the salient features of a comprehensive service oriented design.

  • BPM - Business process management solution
  • EDM - Enterprise decision management
  • ESB - Enterprise Service Bus
  • ESP - Event Stream Processing
  • Service Orchestration
  • Service components and composites
  • web service mediation (Protocol mediation, Traffic management,Version rationalization, Runtime governance)

After introducing these fundamental entities as part of a comprehensive SOA platform, I spoke further about how component oriented architecture has evolved into SOA, the definition and  importance of boundaries (machine, network, datacenter) and the connection between SOA and cloud. While answering a question about why WCF != SOA, I found the following geek & poke comic very useful.


As handbook of cloud computing notes,

Web Services and Service Oriented Architecture (SOA) are not new concepts; however they represent the base technologies for cloud computing. Cloud services are typically designed as Web services, which follow industry standards including WSDL, SOAP, and UDDI. A Service Oriented Architecture organizes and manages Web services inside clouds (Vouk, 2008). A SOA also includes a set of cloud services, which are available on various distributed platforms.

Therefore, it is fair to describe an SOA environment as enabler for cloud computing. This lead us to the SOA concepts and how it maps to WCF.

  • SOA Entity corresponds to WCF DataContract
  • SOA Message corresponds to  WCF MessageContract
  • SOA Interface corresponds to  WCF ServiceContract
  • SOA Transport corresponds to  WCF Binding
  • SOA Endpoint corresponds to WCF deployment model (service endpoint)

Next logical step was premier to a simple WCF service, wcf service library, client utility, metadata endpoint and what's new in WCF 4 to help leverage service oriented architecture. Don Box's infamous (and controversial) SOA tenants were discussed in context with the service oriented design.

  •  Boundaries are Explicit
  •  Services are Autonomous
  • Services share schema and contract, not class
  • Service compatibility is based upon policy

At this point, attendees were introduced to WCF 4 hands-on-lab and it's individual exercises on Simplified Configuration, Service Behavior, Protocol Mapping, Service Discovery, Metadata Extensions, Discovery Announcements, Discovery Proxy, Routing/Service Routing and Content Based Routing.

There’s a lot more to discuss including design of contracts, versioning, governance, Forward and backward compatibility, trade-offs associated with various deployment options, Integration and regression testing, Security (authentication, authorization, privacy), Reuse, High Availability, anti-Patterns, AppFabric's role in monitoring, caching and hosting etc but we had to conclude the talk in the interest of time.

Thank you Mike Vincent and David Wells for the invite.

References & Download Links:

Whats New In WCF4 (WCF 4 Lab document and Source) and a nice concluding comic from beloved Geek & Poke.

Enterprise Software Architecture and Design: Entities, Services, and Resources By Dominic Duggan

Web Service Contract Design and Versioning for SOA

SOA Design Patterns (The Prentice Hall Service-Oriented Computing Series from Thomas Erl)

Service Design Patterns: Fundamental Design Solutions for SOAP/WSDL and RESTful Web Services

RESTful Web Services

and a Future title really looking forward to

SOA with REST: Principles, Patterns & Constraints for Building RESTful Enterprise Solutions (Prentice Hall Service-Oriented Computing Series from Thomas Erl)