0% found this document useful (0 votes)
10 views31 pages

Understanding Windows Communication Foundation

This document discusses Windows Communication Foundation (WCF) and provides references for additional reading. WCF provides software services on machines, networks, and across the internet with a unified programming model. It is natively supported on Windows Vista and requires installation on Windows XP. Key components of WCF include contracts, endpoints, implementations, configurations, and hosting. Channels are used to transport messages and determine interoperability. Services can be self-hosted or hosted in IIS.

Uploaded by

psundarau
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
10 views31 pages

Understanding Windows Communication Foundation

This document discusses Windows Communication Foundation (WCF) and provides references for additional reading. WCF provides software services on machines, networks, and across the internet with a unified programming model. It is natively supported on Windows Vista and requires installation on Windows XP. Key components of WCF include contracts, endpoints, implementations, configurations, and hosting. Channels are used to transport messages and determine interoperability. Services can be self-hosted or hosted in IIS.

Uploaded by

psundarau
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd

Windows Communication

Foundation

Jim Fawcett
CSE681 – SW Modeling & Analysis
Summer 2008
References
• Programming “INDIGO”, David Pallmann, Microsoft Press, 2005
• Windows Communication Foundation Unleashed, McMurtry, Mercuri,
Watling, Winkler, SAMS, 2007
• Pro WCF, Peiris and Mulder, apress, 2007
• MSDN WCF Root Page
• WCF Feature Details
• Distributed .NET Learn ABCs Of Programming WCF
• Service Station Serialization in Windows Communication Foundation
• Service Station WCF Messaging Fundamentals
• Windows Communication Foundation Glossary
• Windows Communication Foundation Tools

2
References – Activation & Channels
• How to Access WCF Services with One-Way and Request-Reply Contracts
• How to Access Services with a Duplex Contract
• Sessions, Instancing, and Concurrency
• WCF Essentials Instance Management
• WCF Essentials One-Way Calls, Callbacks, Events
References – Web Model
• How to Create a Basic Web-Style Service
• WCF Web Programming Model Overview
• Web Programming Model
• WCF Web Programming Object Model
• WCF Syndication HTTP Programming with WCF and the .NET Framework 3.
5
• Creating WCF AJAX Services without [Link]
• Creating WCF Services for [Link] AJAX
References – Odds and Ends
• Accessing Services Using a Client
• Clients
• Client Architecture
• Client Configuration
• Call WCF Service Operations Asynchronously
• A Performance Comparison
• Security in WCF
What is WCF?
• Provides software services on machines, networks,
and across the internet
• Unified programming model for all of these
• Supported natively on Windows Vista
– Requires installation on XP
• Not available on other platforms
– Mono?
– DotGnu?
– Mac OSX ?

6
Integration into .Net 3
• One model for distributed systems decomposes into
presentation layer, application logic layer, and data
layer, all bound together with communication.

• Presentation: WPF, Silverlight with [Link]


• Data: LINQ - binds views to storage
• Communic: WCF – local, network, internet
• Applic. Logic: Custom designs

7
WCF Design Principles
• Boundaries are explicit
– No attempt to hide communication
• Services are autonomous
– Deployed, managed, and versioned independently
• Services share contracts and schemas, not types
– Contracts define behavior, schemas define data
• Compatibility is policy-based
– Policy supports separation of behavior from access
constraints

8
Essential Pieces of WCF
• Contracts for services, data, and messages
– A contract is simply an interface declaration
• Service, Data, and Message definitions
– Class implementations
• Configurations defined programmatically or
declaratively
– config files.
• A host process (can be self hosted)
– IIS, Windows Executable, Windows Service, or WAS
• .Net Framework (3.5) Classes provide support for all
of the above.
9
Look and Feel of WCF
• Convergence of programming models
– Just like web services
– Similar to .Net Remoting
– Sockets on steriods
– Hosting for local, network, and web
• Communication models
– Remote Procedure Call (RPC) with optional data models
– Message passing
– One way, request and wait for reply, asynchronous full
duplex

10
WCF Architecture

11
ServiceModel Namespace
• Bindings, Channels, Endpoints, Messages,
Serialization
• Activation, Concurrency, Hosting, Security,
Sessions
• Queuing, Transactions
• Exceptions

12
Principle Parts of a WCF Service
• Contract
– An interface defining services rendered
– Service, Data, Message
• Endpoints
– Address: [Link]
– Binding: wsHttpBinding
– Contract: ICalculator
• Implementation
– One or more classes that implement the contract
interfaces. May also include hosting code.
13
WCF Service Files
• [Link]
– Interface(s) that define a service, data, or message
contract
• [Link]
– Implement the service’s functionality
• [Link]
– Markup file (with one line) used for services hosted in IIS
• Configuration files that declare service attributes,
endpoints, and policy
– [Link] (self hosted) contains service model markup
– [Link] (hosted in IIS) has web server policy markup
plus service model markup, as in [Link]

14
Service serviceModel Markup
• <[Link]>
<services>
<service name=“mySvcName” behaviorConfiguration=“…”>
<endpoint address=“” binding=“wsHttpBinding”
contract=“[Link]” />
<!-- can expose additional endpoints here -->
<endpoint address=“mex” binding=“mexHttpBinding”
contract=“IMetadataExchange” />
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior name=“[Link]”>
<serviceMetaData httpGetEnabled=“true” />
<serviceDebug includeExceptionDetailInFaults=“false” />
</behavior>
</serviceBehaviors>
</behaviors>
</[Link]>

15
Channels
• Channels are the vehicles that transport
messages. They provide:
– Transport protocols via bindings
• Http, wsHttp, Tcp, MSMQ, named pipes
– Encoding and Encryption
– Reliable sessions
– Communication modes
• Simplex, duplex, send and wait
– Security modes
16
WCF Bindings

17
Interoperability
• Channel protocols determine interoperability with
other platforms:
– BasicHttpBinding  universal interoperability
– wsHttpBinding  platforms that use ws extensions
– netTcpBinding  .Net on both ends
– MSMQ  WCF to pre WCF windows platforms

18
Hosting
• Self Host
– Service has a Main entry point, runs in its own
process.
• Internet Information Server (IIS)
– BasicHttpBinding provides a web service.
– wsHttpBinding provides web service with ws*
extensions.
• Windows Activation Service (WAS)
– Uses virtual directory, like web service.
19
Service Behaviors
• Instancing:
– Singleton: one instance for all clients
– Per call: one instance per service call
– Private session: one instance per client session
– Shared session: one instance per session shared between
clients
• Concurrency models for instances:
– Single: one thread at a time accesses instance
– Multiple: more than one thread may enter instance
– Reentrant: threads make recursive calls without deadlock

20
Other Service Behaviors
• Throttling:
– Limits on number of messages, instances, and threads a service can
process simultaneously
• Error handling:
– Options to handle, let framework handle, and report to client
• Metadata:
– Services can be self-describing, providing MEX endpoints
• Lifetime:
– Can specify session duration, service operations to initiate sessions
and others to terminate sessions
• Security:
– Can specify message confidentiality, integrity, authentication,
authorization, auditing, and replay detection.

21
Structuring Service Code
Service Class Attribute
Service contract interface [ServiceContract]
Service operation method [OperationContract]
Implementation class [ServiceBehavior]
Derive from contract interface
Implementation method [OperationBehavior]
Data Contract class [DataContract] class
[DataMember] member
Message Contract interface [MessageContract] interface
[MessageHeader] member
[MessageBody] member

22
Building Clients
• Build proxy with svcutil
– Visual Studio will do that if you add a service or
web reference
– Proxy code is in a subdirectory under the project.
• Add proxy code to project
• Add “using [Link]” to client
code
• Build and run

23
Generating Proxies
• [Link] generates code:
– from a mex endpoint:
svcutil [Link]
– from WSDL or XSD files:
svcutil [Link]
• [Link] generates WSDL and XSD files from
a service library:
– svcutil [Link]

24
Channel Model
• You can create a channel programmatically
– In this case you access the channel directly
without the need of a proxy.
• All of the configuration normally done with a
[Link] or [Link] can also be done
programmatically.

25
Types of WCF Contracts
• WCF supports:
– Service contracts
• Supports RPCs with native data types
– Data contracts
• Data contracts provide definitions of user defined data
structures for transmission through RPCs
– Message contracts
• Message contracts support message passing
• Instead of calling functions send and receive messages

26
27
WCF Samples
• Microsoft has provided a large set of very interesting
samples:
– WCF Samples home:
[Link]
– Setup instructions here:
[Link]
– Download here: [Link]
FamilyID=0043041F-95D6-4EB7-966A-C21A737E193A&displaylang=en
– Note:
• Samples use a single virtual directory, created by the setup process
• Builds clear the virtual directory and copy built sample files
• Initial setup installs developer certificate, required to run SSL
• In Vista, must Run Visual Studio as administrator

28
White Papers
• The following two white papers, by David
Chappell plus the Microsoft samples are a
great help learning WCF.
– [Link]/articles/white_papers/
Introducing_WCF_in_.Net_Framework_3.5_v1.[Link]
– [Link]/articles/white_papers/
WCF_Diversity_v1.[Link]

29
End of Presentation

30
Thank you

31

You might also like