Meus próximos postes serão estudos continuados sobre a tecnologia WCF (Windows Communication Foundation)
que por acaso é minha especialidade. :o)

Conceitos básicos do WCF
Um Service do WCF é um programa que expõe uma coleção de Endpoint. Cada Endpoint é um portal para se comunicar com o mundo.
Um Client é um programa que troca mensagens com um ou mais Endpoints. Um Client também pode expor um Endpoint para receber Messages de um Service em um padrão de troca de mensagens.
As seguintes seções conceituarão palavras chaves que serão utilizadas no decorrer do estudo sobre WPF.
Endpoints
Um Service Endpoint tem um Address, uma Binding e um Contract.
O Address do Endpoint é um endereço de rede no qual reside o Endpoint. A classe EndpointAddress representa um Address do Endpoint do WCF.
A Binding do Endpoint especifica como o Endpoint se comunica com o mundo, incluindo protocolo de transporte (por exemplo, TCP, HTTP), codificação (por exemplo, texto, binário) e requisitos de segurança (por exemplo, SSL, segurança de mensagens SOAP). A classe Binding representa uma Binding do WCF.
O Contract do Endpoint especifica o que o Endpoint comunica e é essencialmente uma coleção de mensagens organizadas em operações que têm MEPs (Message Exchange Patterns) que podem ser unidirecional, duplex e solicitação/resposta. A classe ContractDescription representa um Contract do WCF.
A classe ServiceEndpoint representa um Endpoint e tem um EndpointAddress, uma Binding e uma ContractDescription correspondente ao Address do Endpoint, à Binding e ao Contract respectivamente .
EndpointAddress
Um EndpointAddress é basicamente um URI, uma Identity e uma coleção de cabeçalhos.
A identidade de segurança de Endpoint normalmente é seu URI. Entretanto, em cenários avançados, a identidade pode ser definida explicitamente independente do URI usando a propriedade de endereço Identity.
Os cabeçalhos opcionais são usados para fornecer informações adicionais de endereçamento além do URI do Endpoint. Por exemplo, os cabeçalhos de endereço são úteis para diferenciar entre vários Endpoints que compartilham o mesmo URI de endereço
Bindings
Uma Binding tem um nome, um namespace e uma coleção de elementos de ligação compostos. O nome e o namespace da Binding a identificam exclusivamente nos metadados do serviço. Cada elemento de ligação descreve um aspecto de como o Endpoint se comunica com o mundo.
Contracts
Um Contract do WCF é uma coleção de Operações que especifica o que o Endpoint comunica para o mundo exterior. Cada operação é uma troca simples de mensagens, por exemplo, unidirecional ou solicitação/resposta.
A classe ContractDescription é usada para descrever os Contracts do WCF e suas operações. Dentro de uma ContractDescription, cada operação de Contract tem uma OperationDescription correspondente que descreve os aspectos da operação, como a operação é unidirecional ou solicitação/resposta. Cada OperationDescription também descreve as mensagens que formam a operação usando uma coleção de MessageDescriptions.
Uma ContractDescription em geral é criada de uma interface ou classe que define o Contract usando o modelo de programação do WCF. Esse tipo é anotado com ServiceContractAttribute e seus métodos que correspondem às operações do Endpoint são anotados com OperationContractAttribute. Também é possível criar uma ContractDescription manualmente sem ser iniciada com um tipo de CLR anotado com atributos.
Assim como as Bindings, cada Contract tem um Name e um Namespace que o identifica de forma exclusiva nos metadados do Service.
Cada Contract também tem uma coleção de ContractBehaviors que são módulos que modificam ou estendem o comportamento do contrato. Os próximos posts abordarão os comportamentos com mais detalhes.
Message
A Message do WCF é a unidade de troca de dados entre um Client e um Endpoint. Uma Message essencialmente é uma representação na memória de InfoSet de mensagem SOAP. Observe que a Message não está vinculada a texto XML. Em vez disso, dependendo de qual mecanismo de codificação é usado, uma Message pode ser serializada usando o formato binário do WCF, texto XML ou qualquer outro formato personalizado.
Channels
Os Channels são a abstração central para o envio e recebimento de Messages para/de um Endpoint. De forma ampla, existem duas categorias de Channels: os Transport Channels tratam do envio ou recebimento de fluxos de octetos opacos usando alguma forma de protocolo de transporte, como TCP, UDP ou MSMQ. Os Protocol Channels, por outro lado, implementam um protocolo com base em SOAP processando e possivelmente modificando mensagens. Por exemplo, o Channel de segurança adiciona e processa cabeçalhos de mensagem SOAP e muitos modificam o corpo da mensagem, criptografando-a. Os Channels podem ser compostos de forma que um Channel pode ser colocado em camadas sobre outro Channel que, por sua vez, é colocado em camadas sobre um terceiro Channel.
EndpointListener
Um EndpointListener é o equivalente no tempo de execução a um ServiceEndpoint. O EndpointAddress, Contract e Binding do ServiceEndpoint (representando onde, o que e como), correspondem ao endereço de escuta do EndpointListener, filtragem e despacho de mensagens e pilha de canal respectivamente. O EndpointListener contém a pilha Channel que é responsável pelo envio e recebimento de mensagens.
ServiceHost e ChannelFactory
O tempo de execução do Service do WCF em geral é criado nos bastidores chamando ServiceHost.Open. ServiceHost orienta a criação de uma ServiceDescription do tipo Service e preenche a coleção ServiceEndpoint da ServiceDescription com Endpoints definidos na configuração, no código ou em ambos. Em seguida, ServiceHost utiliza a ServiceDescription para criar a pilha de canal na forma de um objeto EndpointListener para cada ServiceEndpoint na ServiceDescription.