[figure] Technology landscape

Service Oriented Architectures

A visão Oracle

[figura] Telefone futurista com o mundo em perspectiva

A arquitetura orientada a serviços (SOA) é uma abordagem arquitetural para construir aplicações software como coleções de serviços de negócio reusáveis.

Construir uma típica aplicação SOA envolve as seguintes atividades:

  • Criar os serviços: pode significar transformar em serviços as funcionalidades de aplicações já existentes por meio de adaptadores específicos ou escrever novas lógicas de negócio.
  • Habilitar a comunicação entre serviços: os serviços devem poder comunicar-se de forma confiável e com eventuais aplicações de Back-End. Funcionalidades como messaging, transformação de dados e roteamento das mensagens são funções chave de uma arquitetura orientada aos serviços.
  • Interligar serviços em fluxos de negócios: os processos de negócios devem ser implementados orquestrando serviços por meio de linguagens de alto nível como, por exemplo, a BPEL e a XML.
  • Serviços de segurança: em um ambiente SOA é necessário poder manusear os serviços de forma consistente e segura, podendo aplicar diferentes políticas e restrições dependendo da entidade que requisita o serviço. É necessário poder alterar tais políticas e privilégios sem ter que alterar os serviços.
  • Otimizar serviços: Um ambiente SOA deveria fornecer a capacidade de monitorar dinamicamente serviços e eventos ao longo da execução por meio de dashboards visuais ajudando os usuários a tomar decisões informadas.
[logotipo] Oracle SOA Suite

Oracle SOA Suite é a plataforma mais madura e completa do mercado fornecendo suporte em todas as 5 áreas aqui citadas com os seguintes componentes:

  1. Oracle JDeveloper para criar services ou expor como serviços aplicações já existentes.
  2. Oracle ESB para gestão e roteamento das mensagens.
  3. Oracle BPEL Process Manager: este módulo, adquirido da Collaxa, inclui o motor BPEL, a console de gestão e uma interface gráfica de orquestração dos serviços para implementar os processos de negócio.
  4. Oracle Web Services Manager: adquirido da Oblix, este componente permite definir e implementar regras de segurança e políticas operacionais para os serviços sem que o desenvolvedor necessite lidar com isso. Assim como Oracle BPEL, também este componente suporta varias plataformas de web services e modelos de messaging.
  5. Oracle BAM: este componente permite veicular informações para o usuário dinamicamente, fornecendo visibilidade em tempo real sobre os processos de negócios, as necessidades das pessoas e dos sistemas. Oracle BAM tem a capacidade de coletar estas informações de diversas aplicações e padrões industriais como: JMS, JCA, Web Services, MQs (IBM, Microsoft, Sonic), TIBICO, Bea Logic, entre outros.
  6. Oracle Application Server/Fusion Middleware: de Java EE onde a intera infra-estrutura deve ser desenvolvida.
[figura] Efeito de luzes correndo em alta velocidade.

Todos os componentes baseiam-se em padrões estabelecidos e podem ser utilizados de forma independente, substituindo, por exemplo, JDev com Eclipse o OAS com outros application server J2EE compliant, assim como Oracle Web Services Manager pode fornecer a infra-estrutura de segurança para os serviços que rodam em BEA o IBM, preservando eventuais investimentos. Por outro lado, ter uma plataforma completa da Oracle garante grande facilidade na gestão e rapidez na integração.