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:
and a Future title really looking forward to