This article helps to explain the architecture of WCF and the components that make WCF what it is.
Introduction
Windows Communication Foundation (WCF) is a platform or a framework for creating and distributing connected applications. Built on top of the 2.0 .NET Framework CLR, the WCF is a set of classes that allows developers to build service-oriented applications.
Getting Started
At the heart of WCF is a layered architecture that supports a lot of the distributed application development styles. There are four major layers that provide developers a new service-oriented programming model. The following image shows the various layers and their components.
Layer 1: Contracts
WCF contracts are much like a contract that you and I would sign in real life. This contract or WCF contract contains information such as what a service does and the type of information it will make available. A WCF Contract is a collection of Operations that specifies what the Endpoint communicates to the outside world. There are four types of contracts.
- Data contract explicitly stipulates the data that will be exchanged by the service.
- Message contract controls the SOAP messages sent and received by the service.
- Service contract is what informs the clients and the rest of the outside world what the endpoint has to offer and communicate.
- Policy and Binding contracts specify important information such as security, protocol and other information.
Layer 2: Service Runtime
This layer specifies and manages the behaviors of the service that occur during service operation.
List of various behaviors managed by Service Runtime layer:
- Throttling Behavior determines the number of processed messages.
- Error Behavior specifies what action will be taken if an error occurs during service runtime.
- Metadata Behavior controls whether or not metadata is exposed to the outside world.
- Instance Behavior drives how many instances of the service will be available to process messages.
- Message Inspection gives the service the ability to inspect all or parts of a message.
- Transaction Behavior has the ability to rollback the transaction, if a process fails during the service runtime.
- Dispatch Behavior service determines how the message is to be handled and processed.
- Concurrency Behavior determines how each service, or instance of the service, handles threading.
- Parameter Filtering filters the message headers and executes preset actions based on the filter of the message headers.
Layer 3: Messaging
This layer defines what formats and data exchange patterns can be used during service communication.
Following lists the channels and components that the Messaging layer is composed of:
- WS Security Channel implements the WS-Security specification, which enables message security.
- WS Reliable Messaging Channel which provides guaranteed message delivery.
- Encoders let you pick from a number of encodings for the message.
- HTTP Channel tells the service that message delivery will take place via the HTTP protocol.
- TCP Channel tells the service that message delivery will take place via the TCP protocol.
- Transaction Flow Channel governs transacted message patterns.
- NamedPipe Channel enables inter-process communication.
- MSMQ Channel helps to use MSMQ.
Layer 4: Activation and Hosting
This layer provides various options in which a service can be started as well as hosted. Services can be hosted within the context of another application, or they can be self-hosted. The following list details the hosting and activation options provided by this layer:
- Windows Activation Service enables WCF applications to be automatically started when running on a computer that is running the Windows Activation Service.
- .EXE, WCF allows services to be run as executables.
- Windows Services, WCF allows services to be run as Windows service.
- COM+, WCF allows services to be run as COM+ application.
Reference
Professional WCF Programming Book by Scott Klein.
Conclusion
Hope this article helps you to understand WCF Architecture. Please post your comments.
Read more: