Pages

Web Services? WCF!

I'm back to learning more Windows Communication Foundation (WCF) today.  We have a number of distributed applications at work and I feel behind in understanding how the glue between them all functions.  That's not to say that we have used much WCF.  We haven't.  It exists in limited portions of only one application that I support.  However, if I'm building distributed web solutions in .NET, it's the technology to learn right now.  Maybe it will be time to update some things around the shop when I have a more firm grasp on the subject.

I've worked through the introductions to WCF that Microsoft provides out on MSDN.  That was a good starting point, but I did some shopping on Amazon in order to dig deeper.  I'll be working through some of the exercises in these two books:


So what is WCF?  John Sharp provides a fairly detailed history in his book.  I'll summarize it quickly:  The World Wide Web was popularized while Microsoft was completing their work on Component Object Model (COM).  First the web was just static pages. The second generation provided components could be downloaded to a local browser so that developers could create richer sites with more a layer of programmability.  The third generation was based on Web Services.  A Web Service is an application that runs on the computer hosting the webpage, not on the user's local machine.  Web Services made it possible to receive information from applications running on the user machine, do some processing on the host machine, and then return a response to the user's local application.  There was a need for developers on various platforms to have their applications communicate with one another.  This lead to XML becoming the current common data format.

Developers still needed an agreed upon protocol for sending and receiving messages across the web.  SOAP was the result.  SOAP defines a number of things including:
  • The format of a SOAP message
  • How data should be encoded
  • How to send messages
  • How to handle replies to these messages
A web service can optionally have a Web Services Description Language (WSDL) document.  This is XML that describes the messages that can be accepted by the Web Service, and the structure of the response back.  Applications use the WSDL to determine how to communicate with the Web Service.

So where does WCF finally come in?  It provides the framework for developers to create services that conform to all these web standards.  It also supports Microsoft technologies like Enterprise Services.  A developer can use WCF to create solutions that are independent from all the things under the hood that are connecting these web technologies together.  

Windows Azure is a cloud based platform that can be used to host applications that will invoke a developer's  services.  It is optimized to leverage the features of WCF.  I've been getting more and more email from Microsoft encouraging me to move some of my test applications over to Azure.  I'm going to check it out this weekend. 

No comments:

Post a Comment