Semantic Web Service Composition with WS-BPEL and OWL-S
Semantic Web Service Composition with WS-BPEL and OWL-S
Semantic Web Service Composition with WS-BPEL and OWL-S
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
Tutorial: Serviços web e suas composições<br />
Objetivo:<br />
Este tutorial tem como objetivo apresentar o desenvolvimento de serviços web através do<br />
framework Axis2. Além disso, realizar uma composição através do <strong>WS</strong>-<strong>BPEL</strong> e por fim uma<br />
composição semântica através do <strong>OWL</strong>-S. Iremos programar dois serviços. O primeiro fará a<br />
conversão de uma dada temperatura em Celsius para Kelvin (ConversorA) e o segundo de Kelvin<br />
para Farenheit (ConversorB). O tutorial foi reproduzido na plataforma Windows 7, mas pode ser<br />
facilmente adaptado para outras plataformas.<br />
Programas necessários:<br />
1. Java SE Development Kit 7u7 – Download<br />
2. Eclipse IDE for Java EE Developers Juno 4.2 – Download<br />
3. Apache Tomcat 7.0.29 – Download<br />
4. Axis2 1.6.2 – Download<br />
5. Apache ODE 1.3.5 – Download<br />
6. <strong>OWL</strong>-S API 3.0 – Download<br />
Instal<strong>and</strong>o o Java SE Development Kit:<br />
1. Execute o arquivo jdk-7u7-windows-i586.exe<br />
2. Sigas as orientações na tela, será basicamente Next-Next-Finish<br />
3. Abra o Painel de Controle > Sistema > Configurações Avançadas do Sistema > Variáveis de<br />
Ambiente<br />
4. Crie a variável JAVA_HOME = C:\Program Files\Java\jdk1.7.0_07<br />
5. Edite a variável Path = outros_caminos;C:\Program Files\Java\jdk1.7.0_07\bin<br />
Instal<strong>and</strong>o e configur<strong>and</strong>o o Eclipse, Apache Tomcat e Axis2<br />
1. Descompacte o arquivo eclipse-jee-juno-SR1-win32.zip para a pasta C:\Program Files\<br />
2. Teremos C:\Program Files\eclipse\<br />
3. Descompacte o arquivo apache-tomcat-7.0.29.zip para a pasta C:\Program Files\eclipse\<br />
4. Teremos C:\Program Files\eclipse\apache-tomcat-7.0.29\<br />
5. Descompacte o arquivo axis2-1.6.2-bin.zip para a pasta C:\Program Files\eclipse\<br />
6. Teremos C:\Program Files\eclipse\axis2-1.6.2\<br />
7. Ao final, teremos a seguinte árvore de diretórios:
8. Execute o arquivo C:\Program Files\eclipse\eclipse.exe<br />
9. Ao iniciar, o Eclipse solicitará um local para workspace. Defina-o e clique em OK. Exemplo:<br />
10. Com Eclipse aberto, navegue até o menu Window > Preferences<br />
11. Na janela Preferences navegue até o menu Server > Runtime Environments<br />
12. Clique em Add... para adicionar um novo servidor e siga conforme as telas:
13. Ainda na janela Preferences, navegue até o menu <strong>Web</strong> <strong>Service</strong>s > Axis2 Preferences<br />
14. Defina a localização do Axis2 e clique em Apply. Exemplo:<br />
15. Ainda na janela Preferences, navegue até o menu <strong>Web</strong> <strong>Service</strong>s > Server <strong>and</strong> Runtime<br />
16. Modifique os valores e clique em Apply, em seguida OK. Siga conforme a tela:
17. Na aba Servers, clique 2x com o botão esquerdo no servidor Tomcat v7.0<br />
18. Na janela de configuração, modifique os valores, salve e feche. Siga conforme a tela:<br />
Cri<strong>and</strong>o um Serviço <strong>Web</strong> através do Axis2<br />
1. No Eclipse, navegue até File > New > Project... e siga conforme as telas:
2. Crie um pacote e dentro dele crie uma classe. Siga conforme as telas:
3. Edite o a classe com o código a seguir:<br />
4. Na aba Project Explorer, clique o com botão direito em cima do ConversorA.java e navegue até<br />
<strong>Web</strong> <strong>Service</strong>s > Create <strong>Web</strong> <strong>Service</strong>s.e siga conforme as telas:
Test<strong>and</strong>o o Serviço <strong>Web</strong><br />
1. Com o Tomcat v7.0 iniciado, abra um navegador web e acesse<br />
http://localhost:8080/TemperaturaA<br />
2. Clique em <strong>Service</strong>s > ConversorA e em seguida copie o endereço do <strong>WS</strong>DL<br />
http://localhost:8080/TemperaturaA/services/ConversorA?wsdl<br />
3. No Eclipse, navegue até Run > Launch the <strong>Web</strong> <strong>Service</strong>s Explorer e siga conforme as telas:
4. Até o momento, já temos o primeiro serviço. Precisamos criar o segundo serviço que irá<br />
converter uma temperatura kelvin para farenheit. Para isso repita o processo de criação mud<strong>and</strong>o<br />
apenas alguns dados:<br />
Nome do projeto = TemperaturaB<br />
Pacote = wsB<br />
Classe = ConversorB<br />
Método = kelvin2Farenheit<br />
Veja a seguir a estrutura do projeto:
5. Edite o a classe ConversorB.java com o código a seguir:<br />
6. Assim, terminamos a primeira parte do tutorial que se refere à criação de Serviços <strong>Web</strong> através<br />
do framework Axis2. Partiremos agora para a criação de uma composição através do <strong>WS</strong>-<strong>BPEL</strong>.<br />
Antes de prosseguir, pare o servidor Tomcat.v7.0<br />
Instal<strong>and</strong>o e configur<strong>and</strong>o o plugin <strong>BPEL</strong> Designer e o Apache ODE<br />
1. No Eclipse, navegue até Window > Preferences<br />
2. Na janela Preferences navegue até > Install/Update > Available Software Site<br />
3. Clique em Add... para adicionar uma nova fonte e siga conforme a tela:<br />
4. Clique em OK para fechar a janela Preferences<br />
5. Navegue até Help > Install New Software e selecione o <strong>BPEL</strong> Designer no campo Work <strong>with</strong><br />
6. Marque a caixa Eclipse <strong>BPEL</strong> Designer e siga conforme as telas:
7. Descompacte o arquivo apache-ode-war-1.3.5.zip<br />
8. Na pasta criada, descompacte o arquivo \apache-ode-war-1.3.5\ode.war<br />
9. Copie a pasta \apache-ode-war-1.3.5\ode\ para a pasta C:\Program Files\eclipse\apachetomcat-7.0.29\webapps\<br />
10. No Eclipse, navegue até Windows > Preferences<br />
11. Na janela Preferences, navegue até Server > Runtime Environment<br />
12. Clique em Add... para adicionar um novo servidor e siga conforme as telas:
13. Clique em OK para fechar a janela Preferences<br />
14. Na aba Servers, clique 2x com o botão esquerdo no servidor Ode v1.x<br />
18. Na janela de configuração, clique em Open launch configuration<br />
19. Na janela Edit Configuration, clique na aba Classpath<br />
20. Clique em User Entries, em seguida clique em Add External JARs...<br />
21. Localize o arquivo C:\Program Files\eclipse\apache-tomcat-7.0.29\bin\tomcat-juli.jar<br />
22. Siga conforme a tela e em seguida salve e feche a janela de configuração
Cri<strong>and</strong>o uma composição através do <strong>BPEL</strong> Designer<br />
1. No Eclipse, navegue até File > New > Project... e siga conforme as telas:
2. No Eclipse, navegue até File > New > <strong>BPEL</strong> Process File... e siga conforme as telas:
3. Um novo fluxo será aberto conforme a tela:<br />
4. Para montar o fluxo basta arrastar os itens da aba Palette e encaixar no processo.<br />
Basicamente vamos utilizar 2 x Invoke e 3 x Assign. Monte o fluxo conforme a tela:<br />
5. Precisamos importar os arquivos <strong>WS</strong>DL dos nossos serviços ConversorA e ConversorB para o<br />
projeto. Para isso é necessário que o servidor Ode v1.x seja iniciado<br />
6. Copie o XML do endereço http://localhost:8080/TemperaturaA/services/ConversorA?wsdl e<br />
salve em um arquivo com o nome ConversorA.wsdl
7. Copie o XML do endereço http://localhost:8080/TemperaturaB/services/ConversorB?wsdl e<br />
salve em um arquivo com o nome ConversorB.wsdl<br />
8. Navegue até File > Import... e siga conforme as telas:
9. Repita o mesmo procedimento para o arquivo ConversorB.wsdl<br />
10. Selecione a Invoke celsius2Kelvin e navegue até a aba Properties > Details<br />
11. No campo Partner Link selecione Create Global Partner Link e siga conforme as telas:
12. Repita o mesmo procedimento para a Invoke kelvin2Farenheit, mas use os seguintes valores:<br />
<strong>WS</strong>DL = ConversorB.wsdl<br />
Partner Link Name = kelvin2FarenheitPL<br />
Partner Link Type = kelvin2FarenheitPLT<br />
Partner Link Role = kelvin2FarenheitPLRole<br />
13. Ao final do procedimento teremos a seguinte tela:<br />
14. Selecione a Assign celsius e navegue até a aba Properties > Details<br />
15. Clique em New e preencha conforme as telas:
16. Repita o mesmo procedimento para os dois Assign, conforme as telas:<br />
17. Salve e feche o arquivo Conversor<strong>BPEL</strong>.bpel<br />
18. Abra o arquivo Conversor<strong>BPEL</strong>Artifacts.wdsl e siga conforme a tela:
19. Salve e feche o arquivo Conversor<strong>BPEL</strong>Artifacts.wsdl<br />
20. Navegue até File > New > <strong>BPEL</strong> Deployment Descriptor e siga conforme a tela:
21. Clique com o botão direito no arquivo deploy.xml e selecione Open With > ODE Deployment<br />
Descriptor Editor e preencha conforme a tela:
22. Salve e feche o arquivo deploy.xml<br />
23. Na aba Servers, pare o servidor Ode v1.x . Clique com o botão direito no servidor Ode v1.x e<br />
em seguida Add <strong>and</strong> Remove Projects e siga conforme a tela:<br />
24. Inicie o servidor Ode v1.x e verifique a mensagem que indica sucesso:<br />
Test<strong>and</strong>o a composição dos Serviços <strong>Web</strong><br />
1. Clique com o botão direito no arquivo Conversor<strong>BPEL</strong>Artifacts.wsdl, em seguida navegue até<br />
<strong>Web</strong> <strong>Service</strong>s > Test <strong>with</strong> <strong>Web</strong> <strong>Service</strong>s Explorer e siga conforme a tela:
Instal<strong>and</strong>o o <strong>OWL</strong>-S API<br />
1. Não é necessária uma configuração do <strong>OWL</strong>-S API no eclipse. Basta que os arquivos .jar<br />
sejam importados para o projeto.<br />
2. Vis<strong>and</strong>o uma melhor organização das ferramentas de desenvolvimento, descompacte o arquivo<br />
owls-api-3.0-bin.zip para a pasta C:\Program Files\eclipse\<br />
3. Teremos C:\Program Files\eclipse\owls-api-3.0\<br />
4. Cria uma pasta chamada owl-s em C:\Program Files\eclipse\apache-tomcat-7.0.29\webapps\<br />
5. Teremos C:\Program Files\eclipse\apache-tomcat-7.0.29\webapps\owl-s\<br />
Cri<strong>and</strong>o uma composição semântica através do <strong>OWL</strong>-S API<br />
1. Devemos converter nossos serviços ConversorA e ConversorB para serviços semânticos. Para<br />
isso, a própria API traz um gerador que realiza essa tarefa.<br />
2. No Eclipse, inicie o servidor Tomcat v7.0<br />
3. Abra um prompt de com<strong>and</strong>o e siga conforme as telas:
4. Repita o procedimento para o ConversorB conforme a tela:
5. Clique em Close para fechar o <strong>WS</strong>DL2<strong>OWL</strong>-S Converter<br />
6. O processo de composição dos serviços atômicos ConversorA.owl e ConversorB.owl é feito<br />
manualmente, portanto abra um editor de texto e cole o código a seguir:
7. No Eclipse, navegue até File > New > Project e siga conforme as telas:
8. Crie um pacote e dentro dele crie uma classe. Siga conforme as telas:
9. Edite a classe com o código a seguir:
10. Navegue até Run > Run<br />
11. Siga conforme a tela:
12. Verifique a execução passo-a-passo da composição no console:
Conclusão<br />
Chegamos ao fim do nosso tutorial. Tentei ao máximo utilizar figuras para facilitar o entendimento.<br />
Espero que ele possa esclarecer as dúvidas e ser um guia inicial para o trabalho com serviços<br />
web. Estarei sempre à disposição para esclarecer quaisquer dúvidas através do e-mail:<br />
yurilobao@gmail.com. Obrigado!<br />
Salvador 4 de Outubro de 2012.<br />
Att.<br />
Yuri Petit Lobão Ferreira Tourinho<br />
Daniela Barreiro Claro