Friday, July 20, 2007

SOA and WCF - Introduction

Hi SOA people,

I have been reading up on SOA using various resources and I thought I will start with this introduction.

Long time ago
Long time ago there were COM+ applications, MSMQ - the reliable applications. Then there were asmx, WSE ones - the cross platform, soap based communications across networks. And of course Remoting - object communication between applications anywhere on your network. We have worked with these technologies leveraging them as clients i.e. calling other services or as sevices who service clients. More on this service, client bit as we move along. Of course now we have WCF, which is perhaps more native communications i.e. at a message level.

SOA Priniciples
What basically defines or qualifies as a service? It needs to satisfy some principles.
A) Explicit bondaries: The Servicc emust be able to cross explicit/formal applicationa nd network boundaries.
B) Autonomous: Changes in one service in a distributed scenario should not affect other services i.e. each Service has a self containing and a self describing functionality.
C) Policy: Policy Expressions are machine readable stuff which assist in checking out the communication info and basically is checked out by other services trying to communivcate with our service.
D) Schemas and Contracts: These are basically data and Behaviour respectively. Services pass around contracts - the message structure; they don't pass classes and types.

That's great we are doing good. But hang on, we know at a high level what SOA is all about; where does WCF fit in?

WCF - What's it all about?
WCF is nothing more than a Framework sitting on top of .NET 2.o runtime allowing creation of distributed, loosely coupled service oriented applications which are reliable, secure and transaction capable.

WCF Features - Only some of them here!
  1. Interoperability - Operating system, platforms and environment interoperability is all cool for WCF. One WCF Service will happily work with number of platforms and OSs.
  2. Hosting - Windows Activation Services, NT Services, Win Forms, IIS, Console Apps are some of the hosting options. Is that cool or is that cool?
  3. Security
  4. Queuing - leveraging MSMQ transport.
  5. Transactions.

WCF Components - what is it intrinsically i.e.what is behind this box WCF?

  1. Contracts - refer to structure of the message and is of several types: Data - this refers to the return types and the parameters, Message - Format of the Message parameters, Service - Description of data types, Policy - Security, Protocol and how to communicate with a service.
  2. Service Runtime - This refers to the behaviour of the service during runtime or service operation. Some examples are 'Throttling' - No: of processed messages, 'Transactions' etc etc.
  3. Messaging - Refers to Message format and data exchange patterns during service communication. It also refers to Channels like WS channel, MSMQ Channel, HTTP, TCP etc.
  4. Activation and Hosting - These are the options where the service can be started and hosted. e.g. Windows Activation Service (WCF Services can be auto started if WAS is on the computer), as an exe, Windows Service and s a COM+ application.

That's all for this blog entry but more will come on the ins and outs of WCF before we turn to actually addressing each component of WCF in detail like Channels, Services etc.

Cheers.

Thursday, July 12, 2007

Purpose

Hi There,

Every blog needs a purpose and this one sure has one! All About Software messaging and communications - you know what I am talking about asmx, WSE2.0, WSE 3.0, MTOM and now WCF. Yup it is for programmers, but you may find some technical docos on and off which are conceptual in nature.

Happy posting and feedback - the good, the bad and the ugly, always welcome.

Cheers.