1.2 - Comunicação Específica entre os Componentes da Arquitetura
Quando um aplicativo é dividido em um conjunto de componentes, torna-se necessário pensar sobre como esses componentes irão se comunicar. Os componentes em uma aplicação podem existir no mesmo endereço, e se comunicar através de chamadas de método simples. Eles podem ser executados em diferentes segmentos ou processos, e se comunicar através de mecanismos de sincronização. Ou múltiplos componentes podem precisar ser simultaneamente informados quando ocorre uma ação no ambiente da aplicação. Existem diferentes possibilidades.
Cada padrão tem características que o tornam adequado para usar em tipos particulares satisfazendo-se certos requisitos de arquitetura.
Por exemplo, o padrão conhecido como cliente-servidor tem várias características úteis, tais como servidores que suportam um ou mais clientes através de uma interface publicada e uma comunicação síncrona de solicitação e resposta entre os clientes e o servidor. Opcionalmente, os clientes podem estabelecer sessões com servidores, o que pode manter o estado sobre os seus clientes conectados. Arquiteturas cliente-servidor também devem fornecer um mecanismo para que os clientes localizem servidores, tratem erros e, opcionalmente, ofereçam segurança no acesso ao servidor.