1            ENGENHEIRO DE COMPUTAÇÃO – CLESIO JUNIOR –                      CLESIOJUNIOR@GMAIL.COM - 23/02/2011     INTER...
2            ENGENHEIRO DE COMPUTAÇÃO – CLESIO JUNIOR –                     CLESIOJUNIOR@GMAIL.COM - 23/02/2011      Mais ...
3            ENGENHEIRO DE COMPUTAÇÃO – CLESIO JUNIOR –                       CLESIOJUNIOR@GMAIL.COM - 23/02/2011Escolha A...
4            ENGENHEIRO DE COMPUTAÇÃO – CLESIO JUNIOR –                         CLESIOJUNIOR@GMAIL.COM - 23/02/2011Em Cami...
5             ENGENHEIRO DE COMPUTAÇÃO – CLESIO JUNIOR –                      CLESIOJUNIOR@GMAIL.COM - 23/02/2011Feito iss...
6            ENGENHEIRO DE COMPUTAÇÃO – CLESIO JUNIOR –                      CLESIOJUNIOR@GMAIL.COM - 23/02/2011Digite os ...
7           ENGENHEIRO DE COMPUTAÇÃO – CLESIO JUNIOR –                    CLESIOJUNIOR@GMAIL.COM - 23/02/2011Classe criada...
8            ENGENHEIRO DE COMPUTAÇÃO – CLESIO JUNIOR –                     CLESIOJUNIOR@GMAIL.COM - 23/02/2011Essa é a cl...
9            ENGENHEIRO DE COMPUTAÇÃO – CLESIO JUNIOR –                     CLESIOJUNIOR@GMAIL.COM - 23/02/2011A seguinte ...
10            ENGENHEIRO DE COMPUTAÇÃO – CLESIO JUNIOR –                     CLESIOJUNIOR@GMAIL.COM - 23/02/2011OK, Web Se...
11            ENGENHEIRO DE COMPUTAÇÃO – CLESIO JUNIOR –                     CLESIOJUNIOR@GMAIL.COM - 23/02/2011Essa será ...
12           ENGENHEIRO DE COMPUTAÇÃO – CLESIO JUNIOR –                    CLESIOJUNIOR@GMAIL.COM - 23/02/2011Parte da cla...
13            ENGENHEIRO DE COMPUTAÇÃO – CLESIO JUNIOR –                     CLESIOJUNIOR@GMAIL.COM - 23/02/2011Essa é a c...
14            ENGENHEIRO DE COMPUTAÇÃO – CLESIO JUNIOR –                      CLESIOJUNIOR@GMAIL.COM - 23/02/2011Web Servi...
15           ENGENHEIRO DE COMPUTAÇÃO – CLESIO JUNIOR –                    CLESIOJUNIOR@GMAIL.COM - 23/02/2011            ...
16            ENGENHEIRO DE COMPUTAÇÃO – CLESIO JUNIOR –                      CLESIOJUNIOR@GMAIL.COM - 23/02/2011Siga a fi...
17            ENGENHEIRO DE COMPUTAÇÃO – CLESIO JUNIOR –                     CLESIOJUNIOR@GMAIL.COM - 23/02/2011OK, agora ...
18            ENGENHEIRO DE COMPUTAÇÃO – CLESIO JUNIOR –                     CLESIOJUNIOR@GMAIL.COM - 23/02/2011index.php ...
19            ENGENHEIRO DE COMPUTAÇÃO – CLESIO JUNIOR –                     CLESIOJUNIOR@GMAIL.COM - 23/02/2011Faça o mes...
20            ENGENHEIRO DE COMPUTAÇÃO – CLESIO JUNIOR –                     CLESIOJUNIOR@GMAIL.COM - 23/02/2011Quando o m...
21            ENGENHEIRO DE COMPUTAÇÃO – CLESIO JUNIOR –                   CLESIOJUNIOR@GMAIL.COM - 23/02/2011Produto DNom...
22           ENGENHEIRO DE COMPUTAÇÃO – CLESIO JUNIOR –                    CLESIOJUNIOR@GMAIL.COM - 23/02/2011      Conclu...
Próximos SlideShares
Carregando em…5
×

INTEROPERABILIDADE ENTRE SISTEMAS DE INFORMAÇÃO HETEROGÊNEOS NA PRÁTICA – NO CASO ENTRE JAVA E PHP

2.612 visualizações

Publicada em

0 comentários
0 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Sem downloads
Visualizações
Visualizações totais
2.612
No SlideShare
0
A partir de incorporações
0
Número de incorporações
24
Ações
Compartilhamentos
0
Downloads
57
Comentários
0
Gostaram
0
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

INTEROPERABILIDADE ENTRE SISTEMAS DE INFORMAÇÃO HETEROGÊNEOS NA PRÁTICA – NO CASO ENTRE JAVA E PHP

  1. 1. 1 ENGENHEIRO DE COMPUTAÇÃO – CLESIO JUNIOR – CLESIOJUNIOR@GMAIL.COM - 23/02/2011 INTEROPERABILIDADE ENTRE SISTEMAS DE INFORMAÇÃO HETEROGÊNEOS NA PRÁTICA – NO CASO ENTRE JAVA E PHP. A utilização de Web Service para integrar sistemas tem sido um assuntomuito discutido e falado, linhas e mais linhas são gastas esboçandoteoricamente o tema e tentando provar a sua real utilidade. Neste artigo veremos na pratica a real utilidade de um Web Service. Umserviço será oferecido para outros sistemas que possam acessar a WEB.Preferencialmente as tecnologias Java e PHP foram escolhidas, o Java iráoferecer o serviço e o PHP será um exemplo de cliente. Quando comecei a fuçar a tecnologia – sistemas distribuídos (WebService), achei muito interessante a ideia de poder integrar sistemas diferentesconstruídos até mesmo em diferentes tecnologias, como no caso: o Java e oPHP. Com o sucesso do PHP – cobrado no ultimo concurso do STM (SuperiorTribunal Militar) no inicio de 2011, resolvi utilizá-lo, como cliente do WebService, para mostrar como se integrar sistemas, independente de suatecnologia, o que na pratica é a principal função de um Web Service. A IDE (Integrated Development Environment), um ambiente integradopara desenvolvimento de software, escolhida será o NetBeans 6.9.1, muitoprática, gratuita e com recursos tanto para o Java com para o PHP. Link parabaixar em (http://netbeans.org/downloads/index.html). Serão utilizados dois servidores de aplicação, um para o Java e outropara o PHP, para o Java será utilizado o GlassFish(http://glassfish.java.net/public/downloadsindex.html#top) e para o PHP será oApache (http://www.apache.org/dyn/closer.cgi). Para maiores detalhes sobreos servidores, que não é foco deste artigo, por favor, verificar os sites dosfabricantes. Link’s: GlassFish em(http://glassfish.java.net/downloads/quickstart/index_pt.html) e Apache em(http://www.apache.org/). Essa abordagem é importante para mostrar querealmente os sistemas serão independentes um dos outros. Mais sobre o PHP e APACHE pode ser obtido em(http://www.pinceladasdaweb.com.br/blog/2010/02/22/instalar-apache-php-mysql-no-windows-7-vista-xp/) Não é necessário baixar cada servidor de aplicação em separado oGlassFish vem com o NetBeans e o Apache vem com o pacote EasyPHP,baixe a última versão do EasyPHP em(http://www.easyphp.org/download.php) , é uma ótima escolha para se criar umambiente completo de desenvolvimento para PHP, detalhes em(http://www.easyphp.org/) . Verifique questões sobre as portas utilizadas, já queos servidores de aplicação utilizarão o mesmo sistema operacional, por padrãonão é necessário modificá-las.
  2. 2. 2 ENGENHEIRO DE COMPUTAÇÃO – CLESIO JUNIOR – CLESIOJUNIOR@GMAIL.COM - 23/02/2011 Mais um detalhe! Será necessário, para utilizar SOAP com o PHP, baixar um conjunto declasses denominado “NuSoap”, disponível em(http://sourceforge.net/projects/nusoap). Basta baixar o arquivo “zipado” eutilizar a pasta “/lib” que ficará no diretório do sistema cliente em PHP. Então vamos lá, mãos à obra! Atenção: esse sistema é uma mera ilustração, um exemplo simples dese entender. Imaginemos um sistema que necessite consultar o preço de umdeterminado produto dado o seu código. Cada sistema será deresponsabilidade de uma filial, isto quer dizer que, cada filial irá desenvolverseu sistema em diferentes tecnologias – PHP, .NET, COBOL, VISUAL BASIC,JEE, JSE, JME, dentre outras. Esse sistema deverá realizar a consulta – buscapelo preço – em uma unidade central, a unidade central que será a responsávelpor definir e atualizar os preços de todos os produtos e as filiais devemobedecer não ultrapassado os preços obrigatórios. O acesso a unidade central será feita pela internet, sendo assim todasas filiais deverão ter conexão com a WEB. Não é necessária uma redeparticular entre essas unidades. O SISTEMA EM JAVA – MÓDULO SERVIDOR.Vamos criar um novo projeto em JAVA, utilizando o NetBeans.Escolha Novo Projeto.
  3. 3. 3 ENGENHEIRO DE COMPUTAÇÃO – CLESIO JUNIOR – CLESIOJUNIOR@GMAIL.COM - 23/02/2011Escolha Aplicação Web, clique em “Próximo”.Digite o nome do projeto, exemplo: “UNIDADECENTRAL”.Esse projeto será o servidor do processo de consulta de preços.Crie uma pasta separada para seus projetos JAVA.Clique em “Próximo”.
  4. 4. 4 ENGENHEIRO DE COMPUTAÇÃO – CLESIO JUNIOR – CLESIOJUNIOR@GMAIL.COM - 23/02/2011Em Caminho do contexto, digite: “UNIDADECENTRAL”. Esse é o contexto doprojeto WEB.Clique em “Próximo”.Não marque nenhum Framework.Clique em “Finalizar”.
  5. 5. 5 ENGENHEIRO DE COMPUTAÇÃO – CLESIO JUNIOR – CLESIOJUNIOR@GMAIL.COM - 23/02/2011Feito isso teste a aplicação.Botão direito do mouse sobre o nome do projeto, clique em “Limpar econstruir”.Botão direito do mouse clique em “Depurar”.Vai abrir no seu navegado padrão a tela de “Hello World”.Criaremos agora o nosso Web Service – modulo servidor.Botão direito do mouse no nome do projeto, clique em “Novo”, escolha“Novo...”.Escolha “Serviços Web”, clique em “Serviço Web” e clique no botão próximo.
  6. 6. 6 ENGENHEIRO DE COMPUTAÇÃO – CLESIO JUNIOR – CLESIOJUNIOR@GMAIL.COM - 23/02/2011Digite os nomes conforme a figura acima: nome do serviço e nome do pacote.Clique no botão “Finalizar”.Será criado uma classe com o nome que você colocou como nome do serviço,“UnidadeCentralWS” com a anotação @WebService. As bibliotecas utilizadasforam da do JDK 1.6 e do próprio GlassFish.
  7. 7. 7 ENGENHEIRO DE COMPUTAÇÃO – CLESIO JUNIOR – CLESIOJUNIOR@GMAIL.COM - 23/02/2011Classe criada, agora vamos adicionar o método de consulta:“consultaPrecoProduto”.Basta clicar com o botão direito do mouse no meio da classe:“UnidadeCentralWS”.Escolha a opção “Inserir código...” e escolher “Adicionar operação deserviço...”.Faça conforme a figura acima. Nome do método será: “consultaPrecoProduto”que vai receber como parâmetro o “codigoProduto” do tipo String. Clique em“OK”.
  8. 8. 8 ENGENHEIRO DE COMPUTAÇÃO – CLESIO JUNIOR – CLESIOJUNIOR@GMAIL.COM - 23/02/2011Essa é a classe mais importante do módulo servidor. Ela será alterada!O NetBeans cria o método “consultaPrecoProduto” que irá retornar uma String,com as anotações @WebMethod e @WebParam. Com a utilização deanotações não é necessário configurar arquivos de configuração “.xml”, comoera feito antigamente.O Web Service já está implementado, agora é questão de regras de negócio earquitetura do software.Atenção: em outros artigos iremos utilizar esses passos para integrar com oHibernate ou com um EJB.Vamos testar mais uma vez nosso projeto. Depurando-o. Antes digite o seunome para retorno no método criado. Você visualizará a mesma tela de “HelloWorld!”, já vista.Agora selecione no seu projeto a pasta: “Serviços Web”, abaixo de “Bibliotecasde testes”. Escolha “UnidadeCentralWS”.Vamos testar nosso Web Service.Clique com o botão direito do mouse sobre “UnidadeCentralWS” e escolha“Testar serviço Web”.
  9. 9. 9 ENGENHEIRO DE COMPUTAÇÃO – CLESIO JUNIOR – CLESIOJUNIOR@GMAIL.COM - 23/02/2011A seguinte página será aberta:Digite qualquer coisa e clique no botão “consultaPrecoProduto”.Obterá o seguinte resultado, com o seu nome, caso você tenha digitado seunome como retorno do método.
  10. 10. 10 ENGENHEIRO DE COMPUTAÇÃO – CLESIO JUNIOR – CLESIOJUNIOR@GMAIL.COM - 23/02/2011OK, Web Service testado e funcionando.Vamos incrementar o projeto.Atenção: as classes estarão disponíveis para download no blog(www.clesiojunior.blogspot.com)Vamos criar uma arquitetura de software recomendada, adicionaremos 3pacotes novos: “ws.modelo”, “ws.negocio” e “ws.fachada”. Futurasimplementações com novos serviços seguirão o padrão informado.Dentro de cada pacote teremos que adicionar as seguintes classesrespectivamente: “Produto” (representa a entidade no banco de dados),“ProdutoBO” (classe responsável pelas regras de negócio), “ProdutoFachada”(fachada que será instanciada em camadas superiores) .Em “Produto” adicione as propriedades (String): “nome”, “codigo”, “preço”. Comos seus respectivos getter’s e setter’s. Em outros artigos essa parte seráimportante, só que teremos que pular agora.
  11. 11. 11 ENGENHEIRO DE COMPUTAÇÃO – CLESIO JUNIOR – CLESIOJUNIOR@GMAIL.COM - 23/02/2011Essa será a classe Produto.
  12. 12. 12 ENGENHEIRO DE COMPUTAÇÃO – CLESIO JUNIOR – CLESIOJUNIOR@GMAIL.COM - 23/02/2011Parte da classe ProdutoBO. Não vemos na figura a implementação do métodoprivado “getProdutoPorCoddigo”, você pode criar sua própria implementaçãoou realizar o download no blog (www.clesiojunior.blogspot.com).
  13. 13. 13 ENGENHEIRO DE COMPUTAÇÃO – CLESIO JUNIOR – CLESIOJUNIOR@GMAIL.COM - 23/02/2011Essa é a classe fachada. A mais simples.Atualize a classe “UnidadeCentralWS”.
  14. 14. 14 ENGENHEIRO DE COMPUTAÇÃO – CLESIO JUNIOR – CLESIOJUNIOR@GMAIL.COM - 23/02/2011Web Serviçe pronto – módulo servidor.Agora vamos implantar o módulo no GlassFish.Você pode fazer isso utilizando a própria IDE NetBeans. Ou você podeimplantar manualmente depois de gerar o arquivo “.war”:“UNIDADECENTRALdistUNIDADECENTRAL.war”.Clique com o botão direito do mouse no nome do projeto“UNIDADECENTRAL”. Escolha a opção “Limpar e construir” depois escolha“Implantar”.Sem utilizar o NetBeans, você deve antes iniciar o servidor e entrar emhttp://localhost:4848/, isto é, se o seu servidor estiver na sua própria máquina.Para executar o GlassFish, independente do NetBeans, vai a dica. Entre napasta do seu servidor: “glassfish-3.0.1glassfishbin”, e execute o arquivo“asadmin.bat”, na linha de comando digite: “start-domain domain1” parainiciar o servidor, para para-lo deve-se digitar “stop-domain domain1”.Atenção: para realizar a implantação (deployment) independente do NetBeans.Não se esqueça de configurar o JAVA_HOME em seu sistema operacional.Sobre o GlassFish: http://glassfish.java.net/downloads/quickstart/index_pt.html(Tudo sobre) Ou: http://www.web4u.eti.br/2007/09/12/servidor-de-aplicacao-glassfish/
  15. 15. 15 ENGENHEIRO DE COMPUTAÇÃO – CLESIO JUNIOR – CLESIOJUNIOR@GMAIL.COM - 23/02/2011 O SISTEMA EM PHP – MÓDULO CLIENTE.Para criar o sistema em PHP do zero no NetBeans:Abra o NetBeans, pressione CTRL+SHIFT+N.Digite o nome do projeto e escolha em “Pasta de códigos-fonte:” o “/www” dapasta do EasyPHP programa que você já instalou. Esse é o diretório deimplantação do servidor Apache.
  16. 16. 16 ENGENHEIRO DE COMPUTAÇÃO – CLESIO JUNIOR – CLESIOJUNIOR@GMAIL.COM - 23/02/2011Siga a figura abaixo. Defina a porta conforme o seu servidor de aplicação.Padrão do Apache é esse: 8888.Agora só clique em “Finalizar”.
  17. 17. 17 ENGENHEIRO DE COMPUTAÇÃO – CLESIO JUNIOR – CLESIOJUNIOR@GMAIL.COM - 23/02/2011OK, agora você já está pronto para começar o sistema em PHP – cliente WebService.Agora temos que copiar o “lib” do “NuSoap” que você já baixou para o diretórioraiz do seu projeto: “EasyPHP-5.3.5.0wwwFILIAL_01”. O que você acabou deconstruir. Ficará assim: “EasyPHP-5.3.5.0wwwFILIAL_01lib”. Pronto.Será necessário criar dois arquivosindex.phpresultado.php
  18. 18. 18 ENGENHEIRO DE COMPUTAÇÃO – CLESIO JUNIOR – CLESIOJUNIOR@GMAIL.COM - 23/02/2011index.php é um exemplo de um simples formulário que chama a páginaresultado.php.O arquivo resultado.php faz uso do nusoap.php, esse deve ser baixado,conforme já foi falado.Arquivos estarão disponíveis para download no blog(www.clesiojunior.blogspot.com)Para criar utilizando o NetBeans. Crie uma página PHP vazia. Botão direito domouse em “Arquivos de código-fontes”, escolha “Novo” e “Página da Web doPHP...”.Digite o nome da página como “index”. Clique em “Finalizar”.
  19. 19. 19 ENGENHEIRO DE COMPUTAÇÃO – CLESIO JUNIOR – CLESIOJUNIOR@GMAIL.COM - 23/02/2011Faça o mesmo para a página “resultado.php”.Em index.php terá um formulário que irá chamar resultado.php.Assim: <form action="resultado.php" method="post">Execute o sistema no NetBeans. Isto é, depois de iniciar o seu servidor deaplicação Apache, manualmente. Para isso, execute o arquivo “apache.exe” nodiretório “EasyPHP-5.3.5.0apachebin”, no Windows.Para executar o GlassFish, independente do NetBeans, vai a dica. Entre napasta do seu servidor: “glassfish-3.0.1glassfishbin”, e execute o arquivo“asadmin.bat”, na linha de comando digite: “start-domain domain1” para iniciaro servidor, para parar deve-se digitar “stop-domain domain1”.Essa é a tela que deve ser apresentada.
  20. 20. 20 ENGENHEIRO DE COMPUTAÇÃO – CLESIO JUNIOR – CLESIOJUNIOR@GMAIL.COM - 23/02/2011Quando o módulo servidor estiver em execução no GlassFish, pode-se testar aaplicação completa, digitando algum código válido e clicando no botão “OK”.Códigos válidos e seus respectivos produtos cadastrados:Produto ANome: CERVEJACódigo: 123Preço: 1.19Produto BNome: CARVÃOCódigo: 456Preço: 4.50Produto CNome: PICANHACódigo: 789Preço: 19.80
  21. 21. 21 ENGENHEIRO DE COMPUTAÇÃO – CLESIO JUNIOR – CLESIOJUNIOR@GMAIL.COM - 23/02/2011Produto DNome: GELOCódigo: 159Preço: 4.40O servidor Apache retornou vários “Warning’s”. Essa opção deve serdesabilitada. Fica como pesquisa.
  22. 22. 22 ENGENHEIRO DE COMPUTAÇÃO – CLESIO JUNIOR – CLESIOJUNIOR@GMAIL.COM - 23/02/2011 Conclusão Primeiramente, tentei ser o mais simples e prático possível.Mesmo assim, muitas são as dúvidas que surgem durante o desenvolvimentode Web Service, no entanto, eles são bem mais simples que pensamos. Oleitor esperto deve se atentar as teorias, não é escopo desse artigo fazerapologia ao desmerecimento das teorias, é que na verdade muitas vezesentendemos melhor com uma situação prática. Na Engenharia é assim, muitasmatérias chatas que não entendemos só compreendemos de verdade com aprática, com o “troço” funcionando. Agradeço a todos pela atenção.

×