Interoperability Using Windows Communication Foundation (WCF)

written by: Blerick Tawman; article published: year 2007, month 11;



In: Categories » Internet » Web services » Interoperability Using Windows Communication Foundation (WCF)

The Windows Communication Foundation (WCF), formerly known as Indigo, is the long-term solution from Microsoft for connected systems. It provides APIs that subsume Web services, remoting, messaging and all other connectivities. It is built around Web services architecture and is designed to provide secure, reliable, and transacted messaging along with interoperabilitybased on open standards. It is intended to span across multiple transports, security systems, messaging patterns, encodings, network topologies, and hosting models. It will be at the core of the upcoming Windows Vista (formerly Longhorn) series as well as have backward support for Windows XP and Windows Server 2003. Due for release in 2006, WCF is intended to interoperate cleanly with all systems (including Java EE systems), but as it evolves it is worth monitoring over time to prove out its adherence to standards before the decision is made to use or deploy it in a diverse system.

WCF is Microsoft's next generation "unified" programming platform as well as runtime environment that supersedes various technologies including ASP.NET Web services (ASMX) with WSE extensions, Microsoft Message Queue (MSMQ), the Enterprise Services / COM+ runtime environment and .NET Remoting. It addresses the limitation of RPC-based or synchronous Web services, where RPC-based Web services are invoked over HTTP/S (with limited support of transport protocol bindings) and is limited to the request-reply communication model (limited invocation mechanism).

To build a service in WCF, developers need to know the service address (for example, where the service is), the service binding (the data transport protocol such as SOAP over HTTP), and the service contract (for example, what kind of data should be passed). Developers can use an IDE (such as Visual Studio 2005) to build and test their application codes. In addition, they need to define the services (for example, type of services or service endpoints), behaviors (for example, how the service should interact under particular circumstances) and bindings (and binding types) in the file called web.config before the service can be created and deployed. Developers can also use svcutil.exe, an import and export tool for converting between service meta-data and application codes, to create proxy codes for the client.

WCF does not just add new programming APIs or new functionality. It provides different programming approaches to build services, but not necessarily Web services.

  • Declarative Programming In declarative programming, developers define specific attributes and interfaces, which are the key "data contract" between service requesters and service providers. In WCF, "service contracts" are used to specify session requirements and service operation direction using parameters.

  • Imperative Programming Using data object models derived from the application programming interfaces provided by WCF, developers can use object-oriented programming to create and access services or extend existing services easily. In WCF, developers can also define "channels" to support a different transport or protocol. WCF channels connect the service model layer with the actual data on the wire. There are two different types of WCF channels: transport channels (responsible for sending and receiving data) and protocol channels (that implement specific message exchange protocols). This provides flexibility and extensibility for WCF applications to integrate and interoperate with different platforms (such as Java EE applications) that use different messaging protocols.

  • Configuration-Based Programming Developers can specify part of an application's behavior (such as addresses, bindings, security details, or service behavior) in configuration files. This allows the runtime to make deploy-time decisions about services without rewriting the application codes.

WCF is fairly complex and is still evolving before the final release. It is much more powerful in its interoperability features than WSE or other .NET technologies. For example, WCF supports MTOM, Metadata Exchange or MEX, and SAML 1.1. These are fairly significant interoperability features. From an interoperability perspective, it is important to understand that it provides flexible programming approaches to build services and interacts (and interoperates) with Web services implemented in different protocols and technologies. The table below ummarizes the .NET interoperability capabilities of ASMX, WSE, and WCF

Interoperability Capabilities by .NET Technologies
Category Protocol/Technology ASMX 1.x ASMX 2.0 WSE 2.0 WSE 3.0 WCF
Core WSI Basic Profile 1.1 Yes Yes Yes Yes Yes
  SOAP 1.1 Yes Yes Yes Yes Yes
  SOAP 1.2   Yes   Yes Yes
Opaque WS-Addressing     Yes Yes Yes
Data DIME     Yes  
Transfer MTOM       Yes Yes
Other TCP     Yes Yes Yes
Transports UDP        
and HTTP Yes Yes Yes Yes Yes
Encodings MSMQ         Yes
  Named pipes         Yes
  Text-XML Yes Yes Yes Yes Yes
  Binary-encoded XML         Yes
  Binary serialization     Yes Yes  
Security WS-Security 1.0     Yes Yes Yes
  WS-Security 1.1       Yes Yes
  WS-SecureConversation     Yes Yes Yes
  WS-Trust     Yes Yes Yes
  WSI Basic Security Profile 1.0     Yes Yes Yes
  SAML1.1         Yes
Reliability WS-ReliableMessaging         Yes
Transactions WS-Coordination         Yes
  WS-AtomicTransaction         Yes
Metadata, WS-MetadataExchange         Yes
Policy and or MEX          
  WSDL 1.1 Yes Yes Yes Yes Yes
  WS-Policy         Yes
  WS-PolicyAttachment         Yes
  WS-SecurityPolicy         Yes
  WS-ReliabilityPolicy         Yes

legal disclaimer

1) Our website is not responsible for the information contained by this article as well for any and all copyright infringements by authors and writers. E-articles is a free information resource. If you suspect this article for any copyright infringements, please read the Terms of service and contact us to investigate the problem.
2) The E-articles directory team is not responsible for inaccuracies, falsehoods, or any other types of misinformation this tutorial may contain and will not be liable for any loss or damage suffered by a user through the user's reliance on the information gained here. Please read the Terms of service

Useful tools and features

Translate this article to...    Send this article to you or to a friend

Link to this article from your page   
If you like this article (tutorial), please link to it from your web page using the information above. Linking to this page, this is the only way to help us improve our service, the same time providing your visitors with a way to improve their online experience.

related articles

1. Why You Should Use Web Services
There are two main reasons to use web services, both remarkably straightforward: someone else has information you require, or you have information you wish to provide to others. When planning a new web service, remember that servers can either provide or accept information. Remember that web services can provide any level of security, from a completely open service open to all who request it, to a private service with transfers happening over SSL and client-side certificates to validate identities. Convincing the Boss...

2. How to Obtain Your SSL Certificate
To complete your SSL certificate enrollment, please visit one of many sites, for example: http://www.verisign.com/products/site. There, you will be instructed to complete the following steps. Generate Certificate Signing Request: Follow the instructions in your server software manual, or online at http://digitalid.verisign.com/server/enrollStep3.htm, to create a Certificate Signing Request (CSR) and a key pair. After the server software creates the two files, make backup copies of them o...

3. What are Web Services and How are they used
Web services are a collection of protocols that are used to exchange data between disparate applications or systems. The essence of web services is the open standards on which they are built, by leveraging public and common protocols like HTTP, along with the XML document model. Web services are easy to implement with existing technologies. Not only are you (as a PHP developer) already familiar with many aspects of web services and the tools required, but you already have the facilities required to deploy them. Why They Are U...

4. How Digital Certificates (SSL) Work
In physical transactions, the challenges of identification, authentication, and privacy are solved with physical marks, such as seals or signatures. In electronic transactions, the equivalent of a seal must be coded into the information itself. By checking that the electronic “seal” is present and has not been broken, the recipient can confirm the identity of the message sender and ensure that the message content was not altered in transit. To create an electronic equivalent of physical security, some vendors use adva...

5. External Blogging Personality Types
Instead of providing a dry list of the top ways you can use blogs, I’ve decided to look at blogging in a different way. I have taken the top seven types of business blogs and personified them as different characters, or locations, within a city. Let’s take a tour of this virtual city and visit some people and places your business may want to work with as it discovers, experiments with, and eventually embraces blogging: • The Barber Barbers can prove to be prominent citizens— they know the right...

6. What You Can Learn from Log Analysis: The Basics
Any software you might use to make sense of your Web site is likely to find its way onto a list of log analysis tools. There are a lot of tools and many more become available every day. The last time I looked, there were nineteen of them at this Yahoo! category: http://dir.yahoo.com/Computers_and_Internet/Software/Internet/World_Wide_Web/Servers/L og_Analysis_Tools/. But there were another forty-three at this site: http://dir.yahoo.com/Business_and_Economy/Business_to_Business/Communications_and_N etwork...

7. A Wealth of Measurement Methods on the Web
There's no end to the things you can measure. Studies can correlate employee punctuality to manufacturing output, press release flamboyance to investor turnover, and frequency of atdesk massages (remember those?) to grammatical errors per email. So let's start simple and start with the Four R's: ROI, ROA, ROE, and ORI. Return on Investment (ROI) I first heard the words return on investment when I opened an account at Palo Alto Savings with a $25 birthday fortune received from my grandmother. I'd ne...

8. What is bandwidth related to Web Hosting
In terms of web hosting the bandwidth is a measure of the data that sent to web surfer computer from web hosting company. If you have a big site that offer downloadable large files or thousands of visitors visit your website daily than you probably need more bandwidth. Web hosting companies offer variety of plans with different bandwidth option. Many web hosting company offer unlimited bandwidth feature but they will charge you higher. So, best is that if you go thro each features and plan and compare it with your web site req...

9. Affordable and Reliable Web Hosting provider in India
Saitech Infosoft Pvt. Ltd. has the ability to provide reliable web hosting solutions through VIPPowernet.com based in USA. The websites will be hosted in USA. This is done through strategic partnership with Tier 1 providers like Verio & Cogent, which use state-of-the-art hardware. Saitech's registration hardware is located in USA with its own sophisticated premises with highly redundant connectivity, climate controlled space, class circuit surveillance, uninterrup...

10. Why server logs are important
This article tries to explain why use server log files for traffic report instead of popular statistics counters. While everyone will agree that traffic report, visitor information and their query is extremely important for websites to run. For example what exactly users are looking for can be found more precisely. In case if you use service like overture and wordtracker then they may not display result specific to your site. Statistics counters Counter seems to be easy to use just create an account copy and paste ...