Pragmatic Services Communication with WCF
fallacies of distributed computing
1 - network is reliable
2 - latency is zero
3 - bandwidth is infinite
4 - the network is secure
5 - topology doesn't change
6 - there is one administrator
7 - transport cost is zero
8 - the network is homogeneous
9 - location is irrelevant
OO approach to distributed computing (like DCOM or .NET Remoting) pretends everything happens as if it were local
distribution means communication
Service Orientation
service is a conceptual means to model functionality
abstraction on top of objects and components
better for encapsulation of functionality and decoupling from other parts of architecture
service design methodologies
Operation-oriented - model service with explicit interface
Resource-oriented - aligns with ideas and concepts of the web, HHTP & hypertext, model as an explicitly exposed & visible state machine that will be accessed and triggered via a universal interface
WCF Basics
Address - address of endpoint
Binding - binding of communications contract to the underlying physical communication environment along with protocols
Contract - agreement on how data, messages and message exchange patterns will look
Behaviors - used to inject local functionality into an endpoint or entire service
Less Is More
rule of success for WCF is "less is often really more"
WCF has many features
complexity suggests the tool is being used incorrectly