WCF Architecture

WCF has a layered architecture.

It has application layer,Contracts, messaging and activation and hosting layer.


Contracts and Descriptions:

Contracts defines the  various service operations.

The data exchanged by a service with Client is defined by a data contract. Both the client and the service has to be in agreement with the data contract.

The message parameters are defined by XML Schema definition language (XSD) documents. The message contract defines message parts using SOAP protocols. A data contract is controlled by message contract.

The service contract specifies the actual method signatures of the service.

Policies and bindings defines the conditions required to communicate with a service.

Service Runtime
The service runtime layer contains the runtime behaviors of actual operation of the service.

Throttling controls how many messages are processed.

An error behavior specifies what occurs when an internal error occurs on the service,

Metadata behavior governs how and whether metadata is made available to the outside world.

Instance behavior specifies how many instances of the service can be run

Transaction behavior enables the rollback of transacted operations if a failure occurs.

Dispatch behavior is the control of how a message is processed by the WCF infrastructure.

Extensibility enables customization of runtime processes.

parameter filtering enables preset actions to occur based on filters acting on message headers.

The messaging layer is composed of channels.

A channel is a component that processes a message in some way . A set of channels is also known as a channel stack. Channels operate on messages and message headers.

There are two types of channels: transport channels and protocol channels.

Transport channels read and write messages from the network (or some other communication point with the outside world).

Examples of transports are HTTP, named pipes, TCP, and MSMQ. Examples of encodings are XML and optimized binary.

Protocol channels implement message processing protocols, often by reading or writing additional headers to the message. Examples of such protocols include WS-Security and WS-Reliability.

The messaging layer supports the possible formats and exchange patterns of the data.

WS-Security is an implementation of the WS-Security specification enabling security at the message layer.

The WS-Reliable Messaging channel enables the guarantee of message delivery.

The encoders present a variety of encodings that can be used to suit the needs of the message.

The HTTP channel specifies that the HyperText Transport Protocol is used for message delivery.

The TCP channel similarly specifies the TCP protocol. The Transaction Flow channel governs transacted message patterns.

The Named Pipe channel enables interprocess communication.

The MSMQ channel enables interoperation with MSMQ applications.

Hosting and Activation
A service must be run in an executable. This is known as a self-hosted service.

Services can also be hosted, or run in an executable managed by an external agent, such as IIS or Windows Activation Service (WAS).

WAS enables WCF applications to be activated automatically when deployed on a computer running WAS.

Services can also be manually run as executables (.exe files).

A service can also be run automatically as a Windows service.

COM+ components can also be hosted as WCF services


© 2015, www.techkatak.com. All rights reserved.