terça-feira, 24 de maio de 2011

SOA Essentials, part 2

Dando sequencia a série de post SOA Essentials, vamos continuar nosso overview sobre SOA conceituando os componentes básicos da arquitetura.

Componentes básicos de SOA

* Service provider: cria o serviço e publica as interfaces para acesso. O provedor de serviços é livre para decidir quais serviços serão disponibilizados, esta avaliação leva em conta aspectos de negócio da empresa;

* Service registry: responsável por implementar o acesso as interfaces oferecidas;

* Service consumer: localiza e consume os serviços das empresas.


Podemos observar que nessa abordagem os componentes do sistema são provedores e/ou usuários de serviços. Esses serviços, por sua vez, são definidos como unidades lógicas de negócio, ou seja, uma funcionalidade do processo de negócio encapsulada como um componente de software.

No que diz respeito ao design dos componens, podemos destacar como características mais importantes:

* Baixo acoplamento e alta coesão: diminui custos de manutenção e impactos em mudanças do processo de negócio e reduz a dependência entre as aplicações;

* Encapsulamento: o acesso a serviços e dados deve ser feito por meio de uma interface bem definida, de forma a deixar transparente todas as manipulações de dados e complexidades de implementação que são irrelevantes ao service customer;

* Neutralidade de tecnologia: consumidores devem acessar os serviços a partir de qualquer tecnologia;

* Serviços stateless: visa diminuir o custo computacional dos componentes de negócio e aumentar o desempenho e disponibilidade dos serviços;

* Reuso: o sucesso na adesão de SOA depende (entre outros fatores) do entendimento dos conceitos de reuso e da criação de componentes reutilizáveis.

Camadas de abstração do modelo SOA

Para melhor compreender, organizar e dividir as necessidades em um ambiente SOA, podemos dividir o modelo de uma arquitetura orientada a serviço em cinco camadas, quais sejam:


1. Camada de aplicação: esta camada identifica e documenta os processos de negócio chave da empresa, os quais são essenciais para sua vantagem competitiva, e que, portanto devem ser acompanhados e monitorados de perto. O modelo mapeia também os processos de suporte, que podem ser delegados ou compartilhados com parceiros e clientes;

2. Camada de Processos: esta camada identifica e documenta os processos de negócio chave da empresa, os quais são essenciais para sua vantagem competitiva, e que, portanto devem ser acompanhados e monitorados de perto. O modelo mapeia também os processos de suporte, que podem ser delegados ou compartilhados com parceiros e clientes;

3. Camada de Serviços: responsável por mapear e expor os serviços que provêem as funcionalidades que dão suporte aos processos de negócio;

4. Camada de Componentes: mapeia os componentes que são utilizados pela camada de serviço. Componentes são os blocos de construção de serviços na arquitetura SOA e embora vários sejam construídos com esta finalidade, a maioria será reaproveitada a partir de aplicações já existentes, através de técnicas de encapsulamento. Grande parte desses componentes tem potencial para se transformarem em serviços;

5. Camada de sistema: onde os recursos como banco de dados, sistemas gerenciadores de filas ou (Manage Queue) estão alocados. Nesta camada, também podemos encontrar aplicações legadas e classes de objetos representando alguns modelos de dados.

Boas práticas de arquitetura

Em seu artigo Enterprise SOA adoption strategies, Steve Jones propõe algumas questionamentos a serem observadas na hora de definir os serviços.

* O quê: definir qual a função que o serviço realmente irá exercer e o escopo definir desse serviço;

* Quem: quem são os consumidores que utilizarão o serviço ou quais são os relacionamentos com outros serviços;

* Porquê: identificar o motivo pelo qual um serviço interage com outro e porque agentes externos interagem com esse serviço;

* Como: os detalhes sobre o processo que coordenará o serviço e também os pormenores sobre o modo como um serviço em si será implementado.

Nos próximos irei aprofundar sobre outros conceitos fundamentais da arquitetura SOA e aprofundar na discussão de boas práticas relacionadas ao SOA.

0/

Nenhum comentário:

Postar um comentário