A service-oriented application (SOA) aggregates services into a single logical application similar to the way a component-oriented application aggregates components or an object-oriented application aggregates objects and Service-orientation (SO) is an abstract set of principles and best practices for building SO applications .
The services can be local or remote, developed by multiple parties using any technology, versioned independently, and even execute on different timelines. Inside a service, you will find concepts such as languages, technologies, platforms, versions, and frameworks, yet between services, only prescribed communication patterns are allowed.
The client of a service is merely the party consuming its functionality. The client can be literally anythinga Windows Forms class, an ASP.NET page, or another service.
Clients and services interact by sending and receiving messages. Messages may transfer directly from client to service or via an intermediary. With WCF, all messages are SOAP messages.
The messages are independent of transport protocolsunlike Web services, WCF services may communicate over a variety of transports, not just HTTP. WCF clients may interoperate with non-WCF services, and WCF services can interact with non-WCF clients.
Services' Execution Boundaries:
With WCF, the client never interacts with the service directly, even when dealing with a local, in-memory service. The client always uses a proxy to forward the call to the service. The proxy exposes the same operations as the service, plus some proxy-management methods. WCF allows the client to communicate with the service across all execution boundaries.