Windows Communication Foundation: Steroids for your Enterprise Service-Oriented Architecture (Part I)
page 4 of 5
by Tom Fuller
Feedback
Average Rating: This article has not yet been rated.
Views (Total / Last 10 Days): 46163/ 84

The Significance of a Binding

Bindings describe exactly how a service will be communicated with. Binding definitions specify transport method, encoding, security, and other service feature capabilities. A binding provides a large portion of the information required to define the policy a consumer needs to adhere to if it wants to exchange messages with that service. Depending on the actual binding, different features are either enabled or disabled. Different bindings will also mean different levels of interoperability.

 

Exactly what does the binding tell us?

Bindings are capable of answering a number of questions about how a client and a service will communicate. Here are the key questions that are answered.

  1. What level of interoperability does this service have?

Answer: The binding will specify if communication can take place only in a .NET to .NET scenario, if it is usable by any consumer, or if it can be used by a consumer that adheres to the WS* specifications.

  1. What type of encoding is used?

Answer: The binding will specify what encodings are supported. Options include Text, Message Transmission Optimization Mechanism (MTOM), and Binary.

  1. What type of transports can be used?

Answer: The binding will limit the transport options. This can include TCP, HTTP, Named Pipe, and MSMQ.

  1. What type of messaging patterns can be used?

Answer: We discussed earlier the use of simplex, duplex, and request-reply. Depending on the binding, only a subset of those techniques may be available.

  1. What are the location limitations?

Answer: In the case of some bindings, the call cannot go outside of the machine (ex. Named Pipes).

  1. What type of security is supported?

Answer: Options include windows security, WS-Security, and transport level security.

  1. Is transaction flow supported? Are reliable sessions supported?

Answer: The binding will specify whether or not these features are supported.

 

Standard Bindings Delivered in the Service Model

When developing WCF services, the flexibility exists to define custom bindings that can answer the questions above based on the features available in the underlying channels. In most cases, the standard bindings delivered with the service model will satisfy your needs. The following is a list of the standard bindings available and their support for varying WCF features and underlying transports.

Binding

Interop

Encoding

Transport

Messaging

Security

Transaction

Reliable

BasicProfile

Basic

Text

HTTP, HTTPS

Request-reply, Simplex

Transport

No

No

WSProfile

WS*

Text, MTOM

HTTP, HTTPS

Request-reply, Simplex

Transport, WS-Security

Yes

Yes

WSProfileDualHTTP

WS*

Text, MTOM

HTTP

Request-reply, Simplex, Duplex

WS-Security

Yes

Yes

NETProfileTcp

.NET

Binary

TCP

Request-reply, Simplex

Transport, WS-Security

Yes

Yes

NetProfileDualTcp

.NET

Binary

TCP

Request-reply, Simplex, Duplex

WS-Security

Yes

Yes

NetProfileNamedPipe

.NET

Binary

Named pipe

Request-reply, Simplex, Duplex

Transport

Yes

No

NetProfileMsmq

.NET

Binary

MSMQ

Simplex

Transport, WS-Security

Yes

No

MsmqIntegration

MSMQ

Text

MSMQ

Simplex

-

Yes

Yes

Intermediary

-

-

HTTP, TCP, named pipe

-

-

-

-

This listing is not a comprehensive definition of each of the standard bindings, but it will illustrate some of the limitations introduced. If you want more information on these bindings, you should look at the WCF documentation.

 

Does This Really Help Me Deliver Services?

The bindings in WCF help to make our communications with a consumer more explicit and truly policy based. This reinforces two of the service-oriented (SO) tenets. What Microsoft has done by enforcing these binding definitions is require consumers to agree to communicate in a specific way. At the same time, the construction of an endpoint allows for the flexibility to use multiple bindings to access a centralized service. You will see later how clients specify the information necessary to use the binding exposed by the service endpoint. At this point, we have become explicit at both ends of our communication.


View Entire Article

User Comments

Title: All i need to create a contact page like this one   
Name: Moutlou
Date: 2011-10-03 5:20:27 PM
Comment:
I am looking for a resource to learn and create a contact us page for my sl4 web project please help me! thanks.
Title: SOA in WCF   
Name: Seshu Babu Barma
Date: 2009-08-26 3:10:20 AM
Comment:
Excellent article, this has given a light on WCF with SOA
Title: WCF Delights from an Informed Technologist   
Name: Manpret Singh
Date: 2009-01-15 5:52:30 AM
Comment:
Definitely worth the time spent on your article and to inspire me towards WCF.

Heading off straight to part 2. Cheers.
Title: Have Sufficient information   
Name: Senthil Valavan
Date: 2008-09-09 4:13:33 AM
Comment:
We can feel WCF as an overhelming technology
Title: Excellent   
Name: Thomas K Augustin
Date: 2008-04-29 5:46:44 AM
Comment:
Very informative.
Title: Good Overview   
Name: Ravindra K Dewangan
Date: 2008-03-20 2:37:27 PM
Comment:
Short and sweet overview.
Title: Fantastic   
Name: Irzana
Date: 2008-02-25 1:43:47 PM
Comment:
very much usesful content
Title: Very good   
Name: Rujith Anand
Date: 2005-11-25 4:52:56 AM
Comment:
Fantastic article..
Very useful for starters like me..
..waiting for the 'Part 2'.






Community Advice: ASP | SQL | XML | Regular Expressions | Windows


©Copyright 1998-2019 ASPAlliance.com  |  Page Processed at 2019-06-19 7:32:40 AM  AspAlliance Recent Articles RSS Feed
About ASPAlliance | Newsgroups | Advertise | Authors | Email Lists | Feedback | Link To Us | Privacy | Search