Desenvolvimento - Java

Service-Oriented Architecture (SOA)

Segundo estimativas do Gartner Group, até 2006, o desenvolvimento orientado a serviços mudará a forma de se construir, empacotar e vender sistemas, em mais de 80 % das empresas de software e, até 2007, serviços serão os mecanismos de componentização usados em três de cada cinco soluções de software.

por André Nogueira Carreri



Infelizmente ainda não temos muito material sobre SOA em português. No final do artigo indiquei um link (em inglês) que na minha opinião é uma das melhores referencias sobre SOA, traz uma análise bem detalhada e clara.

O que é o SOA? Trata-se do mais recente conceito de desenvolvimento que explora uma Orientação a Serviços, agregando uma nova visão aos já conhecidos: “Desenvolvimento Orientado a Objetos” e “baseado em Componentes”.

Podemos dizer que o conceito do SOA, de integração, já existe há muito tempo, mas agora ele veio à tona devido à necessidade emergencial de integração de tecnologias que temos atualmente. Na verdade, o SOA é uma metodologia que visa maximizar a reutilização de serviços existentes e a integração com novos serviços para aumentar a eficiência e produtividade de uma empresa.

Mas projetar componentes reutilizáveis não é algo tão simples quanto alguns imaginam. É preciso realizar um estudo cuidadoso do projeto para assegurar o uso eficiente de recursos de rede e minimizar as dependências entre os serviços e as aplicações que os usam.

Entre os principais benefícios do SOA está a total interoperabilidade entre todos os padrões do mercado. Isso significa que agora os usuários não precisarão mais se preocupar com a falta de integração entre tecnologias distintas e podem utilizar livremente padrões Java (EJB, J2EE), Corba ou COM+, por exemplo.

Utilizando o conceito de serviço, o SOA tem por objetivo modelar a corporação como uma coleção de serviços que ficarão disponíveis para uso de toda a companhia. Uma vez montada essa arquitetura não é mais necessário construir novas aplicações desde o início, que passam a ser montadas a partir de serviços publicados (internos ou externos). Um exemplo são as aplicações do tipo ERP que são “dissolvidas” em um grande número de serviços auto-contidos que executam funções de negócio específicas.

Dentro do SOA, Serviço é um conjunto de funcionalidades oferecido por um componente, apresentando características como:

  • Invocação somente através da interface;
  • Interface endereçável em uma rede (independente de localização);
  • É interoperável (independente da plataforma);
  • Pode ser dinamicamente encontrado e usado.

Entre os benefícios do SOA destacam-se:

  • Mobilidade do código;
  • Papéis de desenvolvimento especializados;
  • Segurança;
  • Testes;
  • Suporte a múltiplos tipos de clientes;
  • Service assembly;
  • Mantenibilidade;
  • Reuso;
  • Paralelismo no desenvolvimento;
  • Escalabilidade;
  • Disponibilidade.

Segundo estimativas do Gartner Group, até 2006, o desenvolvimento orientado a serviços mudará a forma de se construir, empacotar e vender sistemas, em mais de 80 % das empresas de software e, até 2007, serviços serão os mecanismos de componentização usados em três de cada cinco soluções de software.

Segue abaixo um link muito interessante sobre o SOA (em inglês):
http://dev2dev.bea.com/technologies/soa/index.jsp

André Nogueira Carreri
Analista de Sistemas
Especialista .NET
ancarreri@hotmail.com

André Nogueira Carreri

André Nogueira Carreri - Analista de Sistemas
Especialista .NET