Oracle SOA Suite 12c – novidades desta nova versão

A mais nova versão lançada pelo Oracle do SOA Suite, a 12c, apresenta muitas novidades e promete melhorias em desempenho e interface. Neste artigo apresentamos uma visão geral das novidades apresentadas pela Oracle, baseada no documento disponibilizado pela empresa nomeado “What’s New in Oracle SOA Suite 12c”.

Introdução

O aumento inevitável da complexidade das integrações e novos desafios apresentados pelo mundo atual, como a integração com as aplicações na nuvem, com os dispositivos móveis e a Internet das Coisas (“Internet of Things”, IoT), foram os pilares para o desenvolvimento desta nova versão. O Oacle SOA Suite 12c foi desenvolvido com foco na simplificação das integrações destes desafios em uma única plataforma baseada em padrões de mercado.

Integração com a nuvem

O recentemente lançado Oracle Cloud Adapters simplifica a integração das aplicações na nuvem com a infraestrutura já existente, oferecendo, além de conectividade baseada em padrões, bases para auditorias, conformidade, segurança e governança.

Eles permitem que o desenvolvedor não precise desenvolver lógicas específicas para gerenciar as conexões, focando na lógica de negócio. Para a criação dos adapters, são oferecidos assistentes com opções e configurações.

Em resumo, a maioria das nuances da integração com as aplicações na nuvem, tais como gerenciamento de sessão, tratamento de arquivos WSDL complexos e segurança são tratadas pelo próprio adapter, reduzindo a possibilidade de erros, o ciclo de desenvolvimento e o custo de manutenção.

Também foi disponibilizado o Cloud Adapter SDK, onde é possível criar o seu próprio adapter utilizando a mesma ferramenta usada pela Oracle. Ela oferece um conjunto de APIs, tanto para situações em tempo de projeto quanto em tempo de execução.

Dispositivos móveis

Atualmente os usuários exigem a possibilidade de utilizar seus smartphones e tablets para acessar os dados corporativos e aplicativos de negócio, onde e quando quiserem. Para ajudar nesta mudança de paradigma, o Representational State Transfer (REST) e o JavaScript Object Notation (JSON) surgiram como padrões dominantes para expor serviços e APIs para dispositivos móveis.

O Oracle SOA Suite 12c incluiu o REST bindind no JDeveloper para simplificar a exposição das implementações tradicionais do SOA Suite para dispositivos móveis. Ele está disponível para os composites SOA e para os serviços do Service Bus, permitindo expor interfaces e invocar serviços REST externamente.

Internet das Coisas (IoT)

Os dispositivos e aparelhos estão se tornando cada vez mais conectados, e a internet das coisas está se fazendo muito presente. Neste cenário, o Middleware atua como uma ponte entre os dispositivos e as aplicações corporativas.

Processamento de eventos é parte integrante desse tipo de plataforma, pois grande quantidade de dados são enviados dos dispositivos e é essencial distinguir que dados são importantes e quais não são.

O Oracle Event Processing (OEP) vem com a promessa de análise em tempo real e dados em alta velocidade, se tornando uma solução para construir aplicações IoT para filtrar, correlacionar e processar os eventos. Nesta nova versão, a Oracle integrou mais fortemente a plataforma OEP com o Oracle Service Bus (OSB) e com o Oracle SOA Suite Event Delivery Network (EDN).

Managed File Transfer

O Oracle Managed File Transfer (Oracle MFT) é um produto novo desta versão, que permite trocas de arquivo seguras, gerenciamento entre departamentos internos e parceiros externos e facilidade de uso, especialmente por pessoal não técnico. As suas capacidades de relatório permitem obter um status da transferência do arquivo e o seu reenvio, se necessário.

B2B

O Oracle B2B 12c foi integrado mais fortemente com o Oracle SOA Suite e Oracle Managed File Transfer. Os usuários do B2B podem enviar e receber mensagens no Oracle B2B utilizando o Managed File Transfer, além da possibilidade da transmissão de documentos grandes. Para melhoria de gerenciamento e monitoramento, o B2B foi integrado com o SOA Error Hospital, comentado posteriormente. Para simplificar a experiência dos usuários que utilizam Web Services no B2B, foi adicionado o suporte ao Local Policy Attachment para configuração de segurança de Web Services.

Melhoramentos para produtividade

  • Instalação rápida: o processo foi simplificado, e para ambientes de desenvolvimento oferece uma base onde todos os componentes do SOA Suite são instalados, além do JDeveloper com o servidor WebLogic integrado e todas extensões .
  • Interface unificada de desenvolvimento: foi dado um passo para integrar os componentes do Oracle SOA Suite, Oracle Service Bus (OSB) e o Oracle Event Processing (OEP). Foram criadas interfaces e editores no JDeveloper para o desenvolvimento de projetos do OSB e OEP integrados e compartilhando recursos já presentes anteriormente.
  • Templates: novos recursos que ampliam a possibilidade de compartilhamento e reuso de serviços e componentes, permitindo a customização de modelos de projetos, de componentes, de grupos de atividades em um processo BPEL e pipeline do OSB.
  • Subprocessos BPEL: promovem o reuso e compartilhamento de fragmentos da lógica de negócio, que podem ser inline (dentro de um processo BPEL) ou standalone (externo).
  • Melhoramentos no depurador: foi incluído no JDeveloper um depurador visual, como um depurador java, que permite definir pontos de parada nos composites SOA, processos BPEL e pipeline do OSB.
  • Melhoramentos nos testes: o SOA Suite test framework foi aprimorado, onde as entradas e saídas podem ser geradas automaticamente ou carregadas de um arquivo, mensagens podem ser verificadas, serviços externos e falhas podem ser emuladas e os testes podem ser rodados diretamente do JDeveloper, mostrando relatórios detalhados de cada rodada de testes.
  • Novos adapters: novos adapters de aplicação e tecnologia estão disponíveis nesta nova versão. Eles são o Oracle Adapter for SAP R/3, Oracle Adapter for JD Edwards World, Coherence Adapter, Oracle Adapter for MSMQ, Oracle Adapter for LDAP e o melhorado UMS Adapter.
  • Novas funcionalidades nos adapters: foi ampliado o suporte ao SOA Suite, Service Bus e projetos BPM, ativação e desativação agendada, integração com o depurador, monitoramento e diagnóstico no Enterprise Manager Fusion Middleware Control (EM).
  • Tradução e transformação de dados: foi estendida a habilidade de tradução do native XSD (nXSD) para os processos BPEL, Service Bus e Mediador. Inclui também um novo editor para XQuery, fornecendo uma visão bidirecional para a construção de módulos e bibliotecas XQuery 1.0. Houve também aprimoramentos no XSLT Mapper, permitindo o uso do Design View para lógicas maiores e mais complexas, a introdução de duas novas visões (Map View e XSLT View), entre outros melhoramentos.

 Melhoramentos de gerenciamento

  • Gerenciamento dos projetos OSB: todas as operações e tarefas de gerenciamento do OSB foram movidas para o Enterprise Manager Fusion Middleware Control, porém as configurações dos serviços continuam disponíveis no Service Bus Console juntamente com o JDeveloper.
  • Melhoramentos no Enterprise Fusion Middleware Controlforam implementadas mudanças para melhorar a responsividade e simplificar a administração e o tratamento de problemas diários. Entre as mudanças estão o redesenho do dashboard SOA principal, o melhoramento das pesquisas, a prevenção ao carregamento inicial de dados excessivos e o melhoramento no rastreamento das instâncias (incluindo Service Bus, B2B e Managed File Transfer). Também foi criado o Error Hospital para agregar as instâncias que geraram falhas, baseado em vários critérios, permitindo assim realizar ações corretivas coletivamente.
  • Alertas de notificação de falhas: alertas de falha podem ser enviados aos administradores automaticamente, ou por agendamento, por vários canais de comunicação como e-mail e SMS.
  • Melhoramentos para desempenho: esta nova versão utiliza os gerenciadores de trabalho do servidor WebLogic. Isto simplifica a configuração e permite ao SOA efetivamente utilizar os recursos disponíveis. Esta versão também fornece perfis de banco de dados pré-ajustados para automaticamente habilitar características de desempenho apropriadas, baseadas no tamanho esperado dos dados.
  • Enterprise Scheduler Service: novo componente que permite agendar a execução de componentes SOA ou serviços. Também pode ser utilizado para ativar ou desativar adapters que estão realizando pooling em horários específicos.
  • Integração contínua: esta versão fornece um plugin Maven que permite os times de desenvolvimento criar, construir, empacotar e realizar deploy de projetos SOA. Através do Maven, um servidor de integração contínua pode ser utilizado para gerenciar os projetos SOA.

 Melhoramentos adicionais

  • Criptografia de informações pessoais: devido ao Enterprise Manager Fusion Middleware Control expor as mensagens aos administradores, foi adicionada a possibilidade de realizar a criptografia de campos específicos da mensagem.
  • Fault Policy Editor no BPEL: nesta versão as politicas de falhas podem ser configuradas utilizando a interface visual Fault Policy Editor.
  • SOA Design-Time Meta Data Services Repository: foi criado um repositório MDS baseado em arquivos para ser usado em tempo de desenvolvimento. Ele é automaticamente configurado quando a aplicação SOA é criada.
  • Aceleração da inicialização: novos perfis modulares permitem iniciar a plataforma SOA em subconjuntos de funcionalidades, reduzindo o tempo médio de inicialização da plataforma. Outra novidade quanto a isso é a possibilidade de realizar o carregamento dos composites apenas quando utilizados.
  • Re-sequencer no Service Bus: este recurso permite que o Service Bus ordene as mensagens baseado em uma informação sequencial ou cronológica.

 

Estudo de caso: Boas práticas no uso de gateways em BPMN

BPMN é a melhor notação para representar a lógica da execução de um processo de negócio, mas um processo bem mapeado na notação passa pela escolha certa no uso dos elementos da notação. Muitas vezes, não há uma forma única de representar um processo, mas com certeza o contexto do processo poderá nos ajudar a definir a forma de criar o diagrama de forma mais clara.

As ferramentas de mapeamento aderentes à notação BPMN nos ajudam a nos certificar se o diagrama que criamos está correto, mas ele consegue apenas validar se os elementos estão conectados da forma correta.

Por exemplo, no processo abaixo, inspirado no caso de um leitor que recentemente nos encaminhou esta dúvida:

No processo, a lógica que estamos tentando mapear é de que, depois da tarefa "Verificar documentos", pode ou não necessitar "Digitalizar documentos" e pode ou não necessitar "Confirmar se documentos são válidos". Ou seja, há casos em que realiza só uma dessas tarefas, as duas, ou em algumas situações nenhuma, indo direto para "Analisar documentação".

Você identificou algum problema no uso da notação? Mas tem, e a ferramenta (no caso o Bizagi) avisou:

Mensagem de erro na validação de diagrama do Bizagi: "Um gateway deve ser usado para dividir em fluxos distintos ou unificá-los em um único; os dois comportamentos no mesmo gateway não é suportado."

Olhe novamente. O gateway exclusivo “Precisa verificar a autenticiade?” tem duas entradas e duas saídas. Pela notação BPMN, o gateway exclusivo pode ser de divisão (split) ou de unificação (merge) do fluxo. Usar um mesmo gateway para representar as duas coisas pode gerar confusão tanto na interpretação humana quanto se o processo for ser automatizado.

A solução para isso seria separá-lo em dois – um para unificar os fluxos que vêm do gateway anterior e outro para verificar a condição para dar seguimento ao fluxo, assim:

Desta forma, garantimos que a lógica do processo esteja íntegra na sua representação. Entretanto, isso faz com que o processo tenha três gateways encadeados, o que não é muito legal. Neste caso, o que podemos recomendar?

Se a lógica implica em uma combinação de execução de atividades “e-ou”, podemos usar o gateway inclusivo. Este tipo de gateway tem o propósito de gerenciar a divisão/unificação do fluxo de acordo com uma combinação de possibilidades. Como resultado, teríamos o processo modelado assim:

O gateway "Providências especiais" identifica se o processo precisa ser digitalizado, se precisa de verificação de autenticidade, de ambas as tarefas ou de nenhuma delas.

Veja que algumas boas práticas foram agregadas para dar ainda mais legibilidade ao processo:

  • Nomear os conectores que saem do gateway de acordo com a condição que leva àquela transição: Por exemplo, a seta de cima implica na necessidade de digitalização, e a de baixo na verificação de autenticidade. Evite usar verbos no infinitivo pois as setas não representam uma ação a ser realizada, e sim uma condição que deve existir para que o fluxo siga aquele caminho.
  • Transformar a transição do meio em “default” (ou padrão), que tem uma linha cruzada na origem do conector. Esta é a forma de se dizer em BPMN que, se o gateway não identificar nenhuma condição, então ele segue pela default.
Para entender mais sobre os diferentes tipos de gateways básicos da notação BPMN, confira também este artigo:
http://blog.iprocess.com.br/2012/11/um-guia-para-iniciar-estudos-em-bpmn-ii-gateways/