Escrito por Ricardo de Castro Barbosa    Qui, 30 de Setembro de 2010 22:54    PDF Imprimir E-mail
Padrões de Design SOA

Partindo de uma ótica conceitual, podemos dizer que uma série de características (atributos/qualidades) formam Princípios, que juntos formam um Paradigma. Pelo lado da prática, nossas experiências, que podem ser materializadas sob forma de templates, formam Modelos (Patterns), que juntos definem uma Linguagem Padrão. Os Padrões de Design, objetos deste artigo, são originados dos Princípios (conceitual) e dos Modelos (prático), conforme o diagrama abaixo:          

Um Padrão de Design SOA fornece uma solução comprovada para problemas que normalmente surgem quando construímos um Serviço. Padrões não são regras, porém considerar sua utilização pode economizar muito tempo e recursos, uma vez que as soluções representadas pelos padrões, já estão testadas e comprovadas. Os Padrões de Design SOA podem ser agrupados em:

  • Padrões de Serviços
  • Padrões de Inventário de Serviços
  • Padrões de Composições de Serviços
  • Padrões ESB-Enterprise Service Bus
  • Padrões de Orquestração

São muitos os padrões já disponíveis. Citarei apenas um exemplo de cada um dos grupos listados acima.

Iniciando com o grupo “Serviços” podemos citar como exemplo o “Service Façade”, que introduz componentes de “fachada” de modo a abstrair partes da arquitetura do Serviços preservando sua lógica principal evitando acoplamentos indesejados. A aplicação deste padrão “isola” a lógica principal da lógica que pode estar acoplada ao contrato ou a recursos de implementação. Desta forma uma modificação nos recursos que implementam o Serviço não alterará o contrato, preservando as composições existentes.

No grupo “Inventário de Serviços”, um dos mais importantes é o “Schema Centralization” que evita redundância na representação de dados. Isto requer um esforço maior na etapa de Análise, porém permite centralizar schemas proporcionando oportunidade de reuso de schemas, além de  evitar o uso do XSLT, que normalmente  resulta em perda de performance.

No grupo “Composição de Serviços”, um dos mais utilizados é o “Service Agent” que são agentes capazes de processar rotinas (normalmente de natureza utilitária) a partir da interceptação de mensagens. Seu uso mais comum se dá em rotinas de Autenticação, Balanceamento de Carga, Validação, Encriptação, dentre outras. Seu uso pode reduzir o tamanho de Composições, embora a complexidade total não seja reduzida. Muitos destes “Agentes” são proprietários, e seu uso deve ser cuidadosamente analisado de modo a não criar uma dependência com um determinado fornecedor de tecnologia.

O padrão “Asynchronous Queuing”, do grupo “ESB-Enterprise Service Bus” é bastante importante, uma vez que ele resolve o problema de latência, que pode ocorrer quando um Serviço Provedor  não se encontra disponível para atender a uma chamada de um Serviço Consumidor. Neste caso a troca de mensagens se dá através de um buffer intermediário, controlado pelo ESB, evitando desta forma a criação de várias instâncias do Serviço, ao mesmo tempo evitando diversas chamadas desnecessárias sobrecarregando o tráfego de mensagens.

Dentre os padrões de “Orquestração” podemos citar o “State Repository” que trata de persistir dados referentes a Informações de Estado por longos períodos, sem consumir recursos dos Serviços.

Ainda existe o mito de que uma aplicação que utiliza Webservices é SOA. Espero que tenha ficado claro que SOA depende muito mais da forma com que os serviços são construídos e implementados do que a tecnologia utilizada para construí-los. A aplicação dos Padrões de Design SOA  nos assegura que os 8 (oito) Princípios de Design SOA sejam atingidos, desta forma trazendo para a empresa os ganhos esperados com a adoção desta arquitetura.

Ricardo de Castro Barbosa é diretor da Soa Master Educação e Consultoria Ltda.

Bibliografia:SOA-Principles of Service Design – Thomas Erl; SOA-Design Patterns – Thomas Erl

Última atualização ( Sex, 26 de Julho de 2013 16:19 )
 

Endereço

Avenida Sagitário, 138, Torre 1, Sala 301 - Alphaville Conde II 

Barueri – São Paulo  CEP 06473-073

(11) 4191-6051 / (11) 4191-3970

Fotos dos Cursos         

Your are currently browsing this site with Internet Explorer 6 (IE6).

Your current web browser must be updated to version 7 of Internet Explorer (IE7) to take advantage of all of template's capabilities.

Why should I upgrade to Internet Explorer 7? Microsoft has redesigned Internet Explorer from the ground up, with better security, new capabilities, and a whole new interface. Many changes resulted from the feedback of millions of users who tested prerelease versions of the new browser. The most compelling reason to upgrade is the improved security. The Internet of today is not the Internet of five years ago. There are dangers that simply didn't exist back in 2001, when Internet Explorer 6 was released to the world. Internet Explorer 7 makes surfing the web fundamentally safer by offering greater protection against viruses, spyware, and other online risks.

Get free downloads for Internet Explorer 7, including recommended updates as they become available. To download Internet Explorer 7 in the language of your choice, please visit the Internet Explorer 7 worldwide page.