Tom Fuller recently (ok – about a month ago, sorry Tom for not commenting sooner) posted an article titled “Windows Communication Foundation: Steroids for your Enterprise Service Oriented Architecture (Part I)” on ASP Alliance.
Tom does a great job defining WCF and articulating the benefits of WCF from a practical/matter of fact perspective. I especially liked the Service Types section in which he explains three types of services.
Quote from article:
The following are the three types of services that can be written with WCF.
- Typed Services: These services use precise parameterization when invoking a service method call and respond with a well-defined type. Services of this type most often resemble remote components and have limited flexibility when it comes to versioning.
- Un-Typed Services: An un-typed service will use XML to transport the input parameters and the response output. These services are the most flexible, but provide very little value back to the consumer. Un-Typed services require a consumer to parse XML in order to understand what it is that a service is returning. This type of service does not adhere to the service boundaries are explicit tenet.
- Typed Message Services: This approach for designing services is more message-oriented. In this approach, a custom type is identified that will contain all of the required input parameters and yet another type that will wrap the output parameters. This approach is often referred to as RequestObj / ResponseObj, as these are the types of objects that are often a result of these types of services.
At work we’ve been experimenting with Typed Message Services. BTW, Typed Message Services are extremely easy to do using BizTalk Server. WCF and BizTalk Server combined make for a very flexible service-oriented solution. I first heard of Typed Message Services from an article by Rocky Lhotka (http://www.theserverside.net/articles/showarticle.tss?id=SOAVersioningCovenant). Rocky didn’t use the term Typed Message Services. Instead he explains the concept of using a Covenant for versioning services.
Tom – I’m not sure what you have in mind for future WCF articles but I’d like to see a focus on how the WCF addresses security especially in a heterogeneous environment.
Doh!! I can see I’m really behind on my reading, Part II has already been posted.