3.2 - Os serviços são autônomos

Serviços são aplicações independentes autônomas, não podem ser classes ou componentes que estão fortemente ligadas a aplicativos. Os serviços destinam-se a serem implantados em uma rede, possivelmente a Internet, onde podem ser facilmente integrados em qualquer aplicação que os achem úteis.

Os serviços não necessitam saber nada sobre aplicações de clientes, e podem aceitar solicitações de serviço recebidas a partir de qualquer lugar, contanto que as mensagens de solicitação estejam formatadas corretamente e atendam aos requisitos de segurança especificados.

Os serviços podem ser implantados e gerenciados de forma totalmente independente de outros serviços e quaisquer aplicações de clientes possíveis, e os proprietários destes serviços podem alterar as suas definições, implementações ou requisitos a qualquer momento. A compatibilidade de versão é um problema de longa data com todos sistemas e tecnologias distribuídas, e é agravado pela natureza aberta de serviços. Como evoluir um serviço quando você tem um grande número de clientes (possivelmente desconhecidos) que dependem dele? Veja um exemplo.

Parte da resposta para este problema reside na simplicidade deliberada e extensibilidade do modelo de serviços. Tudo o que os clientes sabem sobre um serviço é quais mensagens ele irá aceitar e retornar, e esta é a única dependência que existe entre um cliente e um serviço. Os proprietários de serviços podem alterar a implementação de um serviço à vontade, contanto que as mensagens válidas não sejam alteradas.

Veja aqui uma solução para o exemplo dado.

Como os serviços são autônomos, eles também são responsáveis pela sua própria segurança e têm de se proteger contra possíveis chamados maliciosos. Os sistemas implantados inteiramente num único sistema ou sobre uma rede fechada podem ser capazes de ignorar em grande medida a segurança ou simplesmente confiar nos firewalls. No entanto, serviços acessíveis através da Internet aberta têm que levar a segurança muito mais a sério.
Copyright © 2016 AIEC.