Thursday, December 20, 2007

Windows Communication Foundation

WCF is Microsoft's unified programming model and runtime for building Web services applications with managed code. It extends the .NET Framework with functionality to build secure, reliable, and transacted Web services that interoperate across platforms.
WCF is built from the ground-up to combine and extend the capabilities of existing Microsoft distributed systems technologies, including Enterprise Services, System.Messaging, .NET Remoting, ASMX, and WSE, to deliver a unified development experience based on Web services.
WCF supports the WS-* architecture, enabling the development of interoperable Web services that incorporate end-to-end security, reliability and transaction support:

Messaging: XML, SOAP, WS-Addressing, and MTOM
WCF supports both Representational State Transfer (REST) and SOAP-based Web services. WCF also supports WS-Addressing, which defines additions to the SOAP header for addressing SOAP messages. This frees SOAP from relying on the underlying transport protocol for addressing information. MTOM defines an optimized transmission format for attachments in SOAP messages based on the XML-binary Optimized Packaging (XOP) specification.

Metadata: WSDL, WS-MetadataExchange, WS-Policy, and WS-SecurityPolicy
WCF supports the Web Services Description Language (WSDL), which defines a standard language for specifying services and various aspects of how those services can be used. WCF also supports WS-Policy and WS-SecurityPolicy to describe more dynamic aspects of a service's behavior that cannot be expressed in WSDL, such as a preferred security option. Lastly, WCF's support for WS-MetadataExchange means that clients can request service metadata, such as the WSDL and policies for a service, via SOAP.

Security: WS-Security, WS-Trust, and WS-SecureConversation
WCF supports both transport-level security via SSL and message-level security, by implementing WS-Security, WS-Trust, and WS-SecureConversation. These specifications define additions to SOAP for message-level protection, integrity, authentication, and identity

federation. Message-level security is not limited to a single type of credential and gives developers more granular control over which message parts should be secured.

Reliability: WS-ReliableMessaging

WCF supports WS-ReliableMessaging, which defines additions to the SOAP header that
enable
reliable end-to-end communication, even when multiple SOAP intermediaries are traversed. WS-ReliableMessaging can guarantee that a message arrives, that it arrives exactly once and that it arrives in order.

Transactions: WS-Coordination, WS-AtomicTransaction

WCF supports WS-Coordination and WS-AtomicTransaction, enabling two-phase commit

transactions over SOAP-based exchanges.

In addition to implementing the WS-* architecture, WCF also provides opportunities for new messaging scenarios with support for TCP, named pipes, P2P and custom transports. More flexibility is also available around hosting Web services. Windows Forms applications, Windows Presentation Foundation applications, ASP.NET applications, console applications, Windows services and COM+ services can all easily host Web services endpoints over different transports. WCF also has many options for digitally signing and encrypting messages, including the following token support: Kerberos, X.509, Username, and Security Assertion Markup Language (SAML).

Windows Workflow Foundation
Another new feature in the .NET Framework 3.0 used for the development of Web services is WF. WF is the programming model, engine, and tools for quickly building workflow-enabled applications on Windows. It provides a common framework for building workflows into Windows applications, whether those workflows coordinate interactions among software, people, or both.
WCF and WF are complementary building blocks for distributed application development. Workflows can drive the business process for a given service. Similarly, workflows in turn often need to interact with services to carry out a business process. As such, WCF and WF can be used to create workflow-enabled services and service-enabled workflows.
WF ships with a base activity library that includes activities for consuming and exposing services. This means that developers can create service-enabled workflows directly from within the workflow designer. Because WF provides native support for hosting and consuming services, developers can easily create composite applications that invoke other business logic.

No comments: