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