Arquitetura Orientada a Serviços. As palavras "Arquitetura" e "Serviço" são muito genéricas. Podem ser usadas para denotar uma infinidade de coisas.
Eu explorei a semântica de "Arquitetura" em SOA anteriormente. Mas o que são os "Servíços" de SOA?
Acho que uma boa definição é: "Um serviço responde por requisições através de interfaces bem definidas, padronizadas e publicadas." Uma outra: "É um componente auto-contido que implementa funcionalidades de negócio com um conjunto extenso de aspectos não funcionais".
Um diagrama exibe melhor a questão:

Como comentado anteriormente, a especificação lógica (ou requerimento) funcional de um serviço de negócio deve ser conduzida por analistas de negócios. São eles que conhecem mais profunda e amplamente as necessidades da empresa e são deles que partem as demandas por novos serviços.
Por outro lado, mesmo tendo a sua complexidade, a funcionalidade de um serviço não é nada comparada com os requerimentos não funcionais do mesmo. Alguns deles:
- Performance: garantir o número de mensagens processadas em um período de tempo
- Tempo de vida
- Bilhetagem sobre o uso
- Monitoração: Métricas, Relatórios, etc.
- Segurança: autenticação e autorização
- Tempo de recuperação em caso de falha
- “Compliance” e regulamentações
A coleção destas especificações funcionais e não funcionais é chamada de metadados dos serviços. Um "contrato" onde são definidos como o serviço deveria funcionar e como o serviço deveria se comportar.
Um parêntese para a tecnologia hoje disponível para os "contratos": o padrão WSDL ("Web Services Description Language") é comumente invocado. Entretanto é insuficiente para declararmos todos os aspectos do contrato. Normalmente há o uso em conjunto do WSDL com XML Schema para definição de formato de mensagens e WS-Policy para definição de capacidades do serviços.
Nenhum comentário:
Postar um comentário