Pages

Fundamental Windows Communication Foundation Concepts

WCF
programming model consists of a runtime and a set of APIs
and is used for creating systems that communicate (sends and receives
messages) between clients and services.

Messaging
and Endpoints

The
main concept of WCF is Message–Based Communication. In the
programming model anything that can can be modeled as a message (an
HTTP request, a Message Queuing – MSMQ, etc), can be represented in
a uniform way. This concept enables a unified API across contrasting
transport mechanisms.

A
client is an application which initiates a
communication, while a service is an application which
responds to the client's request. However, the client and the service
may not be necessarily different applications, a single
application may in fact act both as a client and a service (Duplex
Services and Peer–to– Peer Networking).

As
Endpoints are points or spots for message exchange,
they define all the information required to facilitate message
exchange. A WCF service can expose single or multiple endpoints
(application endpoints or infrastructure endpoints or both). The
client generated endpoint should be compatible with one of the
service's endpoints.

Endpoints
describe the address (location of the endpoint where
the messages should be send), binding (how a client can
communicate with the endpoint by sending messages), contracts
(form of the message) and behaviors (local
implementation details of the endpoint). This information can be
exposed by the service as metadata, that can be processed to generate
appropriate WCF clients and communication stacks.

Communication
Protocols

The
two elements required in the communication stack is given below:

Transport
protocol – Messages can be exchanged over the internet using
common protocols such as HTTP and TCP. Protocols that
support communication with Message Queuing applications and nodes on
a Peer Networking mesh are also included.

Encoding
mechanisms – Encoding mechanisms specify the format of a
message. Following encoding mechanisms are provided by WCF:

a)Text encoding – this is an interoperable encoding.

b)Message Transmission Optimization Mechanism (MTOM) encoding – this
is an interoperable way for efficiently sending unstructured binary
data to and from a service.

c)Binary encoding – this is implemented for efficient transfer.

Note:
Even more encoding mechanisms (for example, a compression
encoding) can be added using the built-in extension points of WCF.

Message
Patterns

Amongst
the several messaging patterns supported by WCF, the most common
Message Exchange Patterns include Request–Reply,
One–Way, and Duplex. The variety of
interactions supported by different protocols depends on the fact
that they support different Message Exchange Patterns (MEX).

The
messages exchanged in WCF is secure and reliable (a feature of WCF
APIs and runtime).