Service Oriented Architectures
A visão Oracle
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.
Oracle SOA Suite é a plataforma mais madura e completa do mercado fornecendo suporte em todas as 5 áreas aqui citadas com os seguintes componentes:
- Oracle JDeveloper para criar services ou expor como serviços aplicações já existentes.
- Oracle ESB para gestão e roteamento das mensagens.
- 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.
- 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.
- 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.
- Oracle Application Server/Fusion Middleware: de Java EE onde a intera infra-estrutura deve ser desenvolvida.
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.
![[logotipo] Iride](/images/logos/iride_gray.gif)