Anda di halaman 1dari 15

Windows

Communication
Foundation (WCF)
Jim Fawcett
CSE775 Distributed Objects
Spring 2007

References

Introducing WCF, David Chappell,


www.davidchappell.com/IntroducingWCFv1.2.
1.pdf
Using three diagrams from this reference

Programming Indigo, David Pallmann,


Microsoft Press, 2005
Pro WCF, Peiris and Mulder, Apress, 2007

What is WCF?

Integration of several Microsoft


Technologies:

Web services (ASMX)


Web service extensions (WSE)

WS-Security
WS-Reliability
WS-Addressing

.Net Remoting
MSMQ messaging
COM+ Transactions

Chappell, ibid, pg 14

Channel Model

WCF supports three types of


channel activity:
Asysnchronous one-way
Request, wait for reply
Full duplex two-way

Structure

Service

Contract

Service contract RPC Interface


Data contract Type serialization
Message contract Soap message

Binding

Transport HTTP, TCP, MSMQ,


Channel type one-way, duplex, request-reply
Encoding XML, binary, MTOM (msg trans optim mech)
WS-* protocols WS-Security,

Address

http://someURI
net.tcp://someOtherURI
net.msmq://stillAnotherURI

Chappell, ibid, pg
25

Channel Interfaces

public interface IOutputChannel : IChannel


{ void Send(Message msg); }

public interface IInputChannel : IChannel


{ Message Receive(); }

public interface IDuplexChannel :


IOutputChannel, IInputChannel {}

public interface IRequestChannel : IChannel


{ Message Request(Message msg); }

public interface IReplyChannel : IChannel


{ IRequestContext ReceiveRequest(); }

public interface IRequestContext : Idisposable


{ Message RequestMessage { get; }
void Reply(Message msg); }

Service Contract

<%@ ServiceHost Language=C#


Service=MyService %>
[ServiceContract]
public interface IMyService
{
[OperationContract]
string Hello( string name);
}
public class MyService : IMyService
{
public string Hello(string name)
{ return Hello + name; }
}

Hosts

WCF Services can be hosted in:


Internet Information Services (IIS)

Very similar to web services

Windows services

Exposing windows service in style of WS

Console and Winform applications

New style for socket like functionality

Monitoring Services

Message Logging
WCF Performance counters

Calls, CallsOutsantding, CallsErrored,


SecurityCallsNotAuthenticated,
TxCommitted, TxAborted,
RMSessionsStarted, RMSessionsFaulted,

Windows Management Instrumentation


(WMI), a COM technology

Other Topics

WCF Security

Credentials and claims (evidence)


Transport-level security
Message-level security
Federated security model
Authorization
Auditing

Reliable Messaging

ReliableSession enabled
Implemented at the SOAP level not TCP packet
Very similar to TCP functionality
Messages not sent are held in a Transfer
Window cache
Will have problems with large messages

MSMQ Binding
Needs microsoft platforms on both ends
Supports store and forward

Other Features

WCF Supports transactions


ACID properties

Atomicity

composite operations treated as a unit

Consistency

Operations succeed or the system is returned to


prior state

Isolation

Each transaction is independent and isolated


from other transactions

Durability

If an operation succeeds it becomes durable, e.g.,


committed to a database or other persistant store

Conclusion

Convergence of programming
models
Desktop Application
Web Application
Windows Services

Flexible hosting options


Flexible abstractions

Anda mungkin juga menyukai