InfoQ

News

Windows Communication Foundation: Application Deployment Scenarios

Posted by Boris Lublinsky on May 25, 2008 05:15 PM

Community
Architecture,
.NET,
SOA
Topics
Web 2.0,
Web Services,
Design,
.NET Framework
Tags
Best Practices,
Web 2.0,
Microsoft,
Windows Workflow Foundation,
WCF

In November of 2006 .NET 3.0 has introduced a new Web Service implementation platform (WCF) simplifying the design, implementation and deployment of services with essential plumbing for scalability, performance, security, reliable message delivery, transactions, multithreading, asynchronous messaging and much more. In November 2007, release of .NET 3.5 introduced additional WCF features, including support for web programming models such as Plain Old XML (POX), Representational State Transfer (REST), JavaScript Object Notation (JSON) and syndication feeds such as Really Simple Syndication (RSS) and ATOM; Support durable, long running services; Seamless integration between WCF and Windows Workflows (WF) allowing for services to be written as workflows and workflows to invoke services, etc.

With this multiplicity of choices, many .NET developers often do not know which features to choose for their implementations what are the best implementation/deployment practices should be followed in each case. An excellent whitepaper by Michele Leroux Bustamante from IDesign provides an excellent summary on these multiple options. It is build around 5 common scenarios:

  • Enterprise Web Services
  • Web 2.0 services
  • Intranet Applications
  • Queued Messages
  • Workflow Service

The whitepaper summarizes WCF features usage and implementation characteristics of each scenario, a summary of important development considerations, and answers to typical questions related to each scenario.

For the case of Enterprise Web Services whitepaper describes support for web services based on SOAP protocol and additional WS* standards. It includes extensive discussion on security implementations and such new features as Secure sessions, Reliable Sessions and Transactions. It also describes when these advance features should be used along with protocol and deployment options for them.

Web 2.0 services section starts with the detailed description of messaging protocols, prevalent in Web 2.0 implementations, including POX, REST, JSON, RSS and Atom and their support in WCF. It then describes deployment options, security support and client programming models for these protocols.

For the classic client-server applications and distribution of services behind the firewall a whitepaper discusses details of WCF support of binary SOAP messaging over TCP/IP and Named Pipes. Similar to the previous section this one provides a wealth of information on security and deployment option for client-server applications, using WCF.

Asynchronous messaging section describes WCF usage for implementation of guaranteed message delivery, asynchronous calls, disconnected calls and publish and subscribe patterns implementation. It includes recommendations on usage of the binary SOAP over Microsoft’s MSMQ transport, discusses recommended queues topology and security and deployment options for MSMQ transport.

Finally, Workflow section describes usage of WF for coordinating service calls using WF runtime and exposing a workflow as a higher level service. A whitepaper also introduces a notion of WF persistence as a way for implementation of long running (durable) stateful services.

The whitepaper is a very useful reference for everyone who is trying to navigate in an extremely rich and powerful WCF framework and is seeking a practical advice on a WCF usage for solving their specific problems.

2 comments

Reply

Proofreading? by Andrew Badera Posted May 26, 2008 4:45 AM
cross-platform, cross-language integration with .NET WCF by alexis richardson Posted May 26, 2008 6:19 PM
  1. Back to top

    Proofreading?

    May 26, 2008 4:45 AM by Andrew Badera

    That's something that happens PRIOR to publishing, right?

  2. Back to top

    cross-platform, cross-language integration with .NET WCF

    May 26, 2008 6:19 PM by alexis richardson

    Apologies for the advert, but we have found WCF a good environment to work with for queued applications and other integration scenarios - but using RabbitMQ instead of MSMQ. RabbitMQ is a commercially supported open source messaging product that works across multiple programming languages using AMQP wire level integration. You can download code, and read about user scenarios in the PDF documentation here. Cheers, alexis.

Exclusive Content

Using Ruby Fibers for Async I/O: NeverBlock and Revactor

Ruby 1.9's Fibers and non-blocking I/O are getting more attention - we talked to Mohammad A. Ali of the NeverBlock project and Tony Arcieri of the Revactor project.

Agile and Beyond - The Power of Aspirational Teams

Tim Mackinnon talks about the aspirations behind the Agile principles and practices, the desire to become efficient, to write quality code which does not end up being thrown away.

Concurrency: Past and Present

Brian Goetz discusses the difficulties of creating multithreaded programs correctly, incorrect synchronization, race conditions, deadlock, STM, concurrency, alternatives to threads, Erlang, Scala.

ActionScript 3 for Java Programmers

Often the hardest part of changing technologies is language syntax differences. This new article provides Java developers with a transition guide to Actionscript which forms the foundation of Flex.

Neal Ford On Programming Languages and Platforms

Neal Ford talks about having multiple languages running on one of the two major platforms: Java and .NET. He also presents the advantages offered by Ruby compared to static languages like Java or C#.

Future Directions for Agile

David Anderson talks about the history of Agile, the current status of it and his vision for the future. The role of Agile consists in finding ways to implement its principles.

Nick Sieger on JRuby

Nick Sieger talks about the future of JRuby, Java Integration, and his work on JEE deployment tools for Ruby on Rails like Warbler.

Rustan Leino and Mike Barnett on Spec#

Rustan Leino and Mike Barnett of Microsoft Research discuss the technology in Spec# and its futures.