OSB,  OTN

Expondo um Serviço no Oracle Service Bus (OSB) – Publicado na OTN

Para ver este artigo direto pelo site da Oracle consulte o link:

http://www.oracle.com/technetwork/pt/articles/soa/expondo-servico-oracle-service-bus-2507899-ptb.html

Ou apenas acompanhe o artigo conforme abaixo:

Oracle Service Bus ou simplesmente OSB, um erro muito comum com relação ao OSB é dizer que ele “implementa” SOA ou que o fato de utilizar um OSB em sua arquitetura já a transforma em uma arquitetura orientada a serviços. Na verdade, o OSB é responsável por boa parte das funcionalidades que SOA prega, mas não todas.

Entretanto, não vou neste Post falar de todas as funcionalidades do OSB pois certamente seriam vários Posts para isso já que sua gama de funcionalidades e possibilidades seriam imensamente extensas, mas você pode ter uma idéia visitando este link da própria Oracle http://docs.oracle.com/cd/E11036_01/alsb30/userguide/intro.html

Neste artigo iremos abordar os principais componentes do OSB que são:

OSB STUDIO

O ambiente para desenvolvimento de componentes OSB, é suportado através do Eclipse e de um plugin específico para o OSB.

OSB PROXY SERVICE

Proxy do serviço que está sendo desacoplado do cliente, podendo ser gerado em diferentes tipos de protocolo.

OSB BUSINESS SERVICE

serviço que está sendo acoplado ao barramento e/ou participando de uma integração.

Neste exemplo vamos expor no OSB  nosso serviço construído no BPEL conforme meu Post: Selecionando Dados usando o Database Adapter Bpel (DbAdapter) Oracle SOA Suite 11g

Estou utilizando a Versão: 3.6.2 conforme abaixo:

Imagem Blog UansCarvalho

Partindo do principio de que você e eu não temos nenhum projeto e acabou de fazer a instalação do OSB vamos abrir o OSB STUDIO que nada mais é do que um Eclipse com muitos plugins da Oracle, e colocar o caminho de onde ficará nossa workspace que será onde ficará nosso projeto.

No meu caso que estou usando Linux: /home/uans/workspace_osb_blogUans

Imagem Blog UansCarvalho

Após clicar em OK essa será a tela de apresentação:

Clique em Workbech

Imagem Blog UansCarvalho

No menu, clique em File >> New >> Other..

Aparecerá a tela abaixo, então vá até a pasta Oracle Service Bus e escolha a opção Oracle Service Bus Configuration Project e clique em Next

Imagem Blog UansCarvalho

Na próxima tela clique em Finish

Imagem Blog UansCarvalho

Na tela abaixo clique em Yes:

Imagem Blog UansCarvalho

Agora temos a seguinte tela:

Imagem Blog UansCarvalho

Clique novamente em File >> New >> Project..

Aparecerá a tela abaixo, então vá até a pasta Oracle Service Bus e escolha a opção Oracle Service Bus Project e clique em Next

Imagem Blog UansCarvalho

Na tela abaixo estará como OSB Project 1, então renomeie para OSBProject pois nesta configuração do Projeto não podem haver espaço para não termos problemas futuros na hora de mapear os XSDs e WSDLs, então clique em Finish

Imagem Blog UansCarvalho

Com o Botão direito clique em OSBProject e selecione New >> Folder

Crie a seguinte estrutura de pastas:

  • Business
  • Proxy
  • WSDL
  • XSD

Imagem Blog UansCarvalho

Pronto, temos agora nossa configuração e estrutura de nosso Projeto, vamos agora trazer para o OSB nosso Projeto do BPEL, para isso vamos ao EnterpriseManager (EM) do BPEL:

No seu Browser vá no endereço http://localhost:10000/em

Obs: A porta 10000 é o numero que escolhi ao criar o meu Domínio do BPEL

Faça o Login:

Imagem Blog UansCarvalho

Clique no seu projeto: SelectDBAdapter[1.0]

Imagem Blog UansCarvalho

Clique em Test

Imagem Blog UansCarvalho

Este será o seu WSDL que deveremos exportar para o OSB:

Imagem Blog UansCarvalho

Mas para isso, copie e cole no seu Browser a URL:

Imagem Blog UansCarvalho

Desta tela vamos extrair o nosso WSDL e nosso XSD:

Nesta tela selecione, copie a parte do XSD conforme abaixo:

Imagem Blog UansCarvalho

Que deverá ficar assim:

Imagem Blog UansCarvalho

Agora, na tela clique com o botão direito e escolha View Page Source (Ver codigo fonte)

Então devemos ver a tela assim:

Imagem Blog UansCarvalho

Copie o conteúdo desta tela e volte ao OSB

Obs: Caso no seu WSDL tenha mais XSDs então também devemos copia-los para o OSB, e repare que este é o mesmo XSD que estará no seu projeto BPEL.

Clique sobre a pasta XSD:

Imagem Blog UansCarvalho

Clique agora no Menu e selecione File >> New >> File

Em File Name: Coloque SelectDbAdapterBPEL.xsd e clique em Finish

Imagem Blog UansCarvalho

Clique em Source e cole o conteúdo do xsd que você selecionou acima:

E deveremos ter a seguinte tela:

Imagem Blog UansCarvalho

Agora na tela onde você colou o WSDL:

Imagem Blog UansCarvalho

Clique com o botão direito e escolha View Page Source (Ver codigo fonte)

Imagem Blog UansCarvalho

Copie o conteúdo desta tela e volte ao OSB

Clique sobre a pasta WSDL:

Imagem Blog UansCarvalho

Clique agora no Menu e selecione File >> New >> File

Em File Name: Coloque SelectDbAdapterBPELContract.wsdl e clique em Finish

Imagem Blog UansCarvalho

Teremos um WSDL vazio:

Imagem Blog UansCarvalho

Agora cole o conteúdo da tela do WSDL que copiamos anteriormente e ficará assim:

Imagem Blog UansCarvalho

Mas repare que nosso WSDL está com problemas pois esta com alguns “X” conforme abaixo:

Imagem Blog UansCarvalho

O problema aqui é apenas porque ele não esta achando a referencia ao nosso XSD, ou seja, existe uma dependência do XSD que não está sendo achada conforme é mostrado na guia Problems do nosso OSB:

Imagem Blog UansCarvalho

No nosso WSDL localize a parte abaixo:

Imagem Blog UansCarvalho

Na linha schemaLocation, deixe apenas assim:

schemaLocation=”../../OSBProject/XSD/SelectDbAdapterBPEL.xsd”/>

Pois essa é o local onde esta o XSD em nosso projeto

Imagem Blog UansCarvalho

Salve o arquivo e veja que não há mais problemas em nosso projeto:

Imagem Blog UansCarvalho

Vamos agora criar o nosso Business Service:

Clique sobre a pasta Business

Imagem Blog UansCarvalho

Clique agora no Menu e selecione File >> New >> Business Service e em File Name: coloque SelectDbAdapterBPELBusiness e clique em Finish

Imagem Blog UansCarvalho

Na tela abaixo selecione a opção WSDL Web Service e clique em Browse para localizar o nosso WSDL:

Imagem Blog UansCarvalho

Na tela seguinte selecione a opção: selectDBAdapterBPELProcess_pt(port) e clique em OK

Imagem Blog UansCarvalho

Nesta tela clique em Yes para confirmar as alterações

Imagem Blog UansCarvalho

Salve agora as alterações:

Imagem Blog UansCarvalho

Tudo OK, vamos agora criar o nosso Proxy Service

Clique sobre a pasta Proxy

Imagem Blog UansCarvalho

Clique agora no Menu e selecione File >> New >> Proxy Service (cuidado, não é Proxy Server pois existe as duas opções) e em File Name: coloque SelectDbAdapterBPELProxy e clique em Finish

Imagem Blog UansCarvalho

Na tela abaixo, novamente selecione a opção WSDL Web Service e clique em Browse para localizar o nosso WSDL:

Imagem Blog UansCarvalho

Nesta tela clique em Yes para confirmar as alterações

Imagem Blog UansCarvalho

Salve agora as alterações:

Imagem Blog UansCarvalho

Agora clique abaixo na guia Message Flow

Imagem Blog UansCarvalho

Ao seu lado direito na guia Oracle Service Bus Message Flow e arraste o componente Route para que fique abaixo do seu SelectDbAdapterBPELProxy, e solte conforme abaixo:

Imagem Blog UansCarvalho

Agora ao seu lado direito na guia Route Actions, escolha o componente Routing e arraste para dentro do seu RouteNode1 que deverá ficar assim:

Imagem Blog UansCarvalho

Clique agora no nome Routing e abaixo na guia Properties

Imagem Blog UansCarvalho

Clique em Browse e selecione SelectDbAdapterBPELBusiness.biz conforme abaixo e clique em OK.

Imagem Blog UansCarvalho

Agora na guia Properties escolha a opção process em invoking:

Imagem Blog UansCarvalho

Clique em Salvar, e na guia Servers faça o Publish do seu projeto conforme imagem abaixo:

Imagem Blog UansCarvalho

Obs: Caso você não tenha o seu Server configurado faça o seguinte:

Clique com o botão direito do mouse na guia Server que deverá estar vazio conforma abaixo:

Imagem Blog UansCarvalho

Selecione New >> Server

Aparecerá a caixa abaixo, então na pasta Oracle, selecione a opção Oracle WebLogic Server 11gR1 PatchSet 4 e clique em Next:

Imagem Blog UansCarvalho

Conforme abaixo, na guia Configuration, em Domain diretory coloque onde está o seu domínio e clique em Next:

Imagem Blog UansCarvalho

Na imagem abaixo selecione OSB Configuration 1 e clique no botão Add > para que ele vá para o seu lado direito da tela na guia Configured e clique em Next

Imagem Blog UansCarvalho

Na tela abaixo você já pode clicar em Finish

Imagem Blog UansCarvalho

Feito isso, caso não tenha feito ainda, você já pode fazer o Publish:

Imagem Blog UansCarvalho

Certifique-se de que seu Publish foi executado com sucesso, pois deverá ficar conforme abaixo (Started, Synchronized)

Imagem Blog UansCarvalho

Vamos fazer o teste para ter certeza que tudo funcionou perfeitamente.

No seu Browser vá no endereço http://localhost:9000/sbconsole

Obs: A porta 9000 é o numero que escolhi ao criar o meu Domínio do OSB

Faça o Login:

Imagem Blog UansCarvalho

Clique em Resource Browser e ao lado direito deverá aparecer o nosso Proxy SelectDbAdapterBPELProxy

Imagem Blog UansCarvalho

Ao lado direito na guia Actions clique no ícone que parece uma “baratinha verde“:

Imagem Blog UansCarvalho

Será apresentada a tela abaixo, e em idCliente coloquei o valor 7839 que é um idCliente que existe em minha base e em seguida clique em Execute:

Imagem Blog UansCarvalho

Veja em Response Document a resposta do nosso Serviço:

Imagem Blog UansCarvalho

 

Duvidas ? Deixe seu comentário e faça download deste Projeto 🙂

 

Abraços e até a Próxima

/:-D

 

 

Criei este Blog destinado a desenvolvedores e interessados na Tecnologia Oracle SOA Suite, minha idéia é que no futuro ele sirva de referência para Analistas e Desenvolvedores desde aprendizes a especialistas. Já existem alguns Posts interessantes que abordam um pouco do meu dia a dia, no passar do tempo irei alimentar este Blog com o máximo de informações possíveis, por isso peço por gentileza aos interessados e afins que caso tenham alguma dúvida, sugestão ou crítica que me digam para que eu possa da melhor forma suprir as expectativas e na medida do possível sanar todas as duvidas que vierem a surgir ou até mesmo criar novos Posts abordando algum tópico que venha a ser relevante para todos os interessados. Obrigado Uans Carvalho

Leave a Reply

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *