Criando Web Services. Palestrante: Daniel Destro do Carmo

Documentos relacionados
Kassius Vargas Prestes

Prática da Disciplina de Sistemas Distribuídos Serviços Web IFMA DAI Professor Mauro Lopes C. Silva

Universidade Federal de Juiz de Fora Ciência da Computação Sistemas Distribuídos Professor Ciro Barbosa

UNIVERSIDADE. Sistemas Distribuídos

Web Services. Autor: Rômulo Rosa Furtado

Introdução a Web Services

SCE-557. Técnicas de Programação para WEB. Rodrigo Fernandes de Mello

Integração de sistemas utilizando Web Services do tipo REST

Programação Cliente em Sistemas Web

Serviços Web: Arquitetura

UFG - Instituto de Informática

3 Serviços na Web (Web services)

PROGRAMAÇÃO SERVIDOR WEBSERVICES EM SISTEMAS WEB. Prof. Dr. Daniel Caetano

Web Services. (Introdução)

Serviços Web: Introdução

Web services. Um web service é qualquer software que está disponível através da Internet através de uma interface XML.

Service Oriented Architecture SOA

Web Services e SOAP. Alexandre Zua CaldeiraTecnologias de Middleware 2006/ Faculdade de Ciências da Universidade de Lisboa

SCC Técnicas de Programação para WEB. Rodrigo Fernandes de Mello

Introdução Serviços Web WSDL SOAP UDDI Ferramentas. Serviços Web. (Web Services) Emerson Ribeiro de Mello

ANEXO V Edital nº 03508/2008

Sistemas Distribuídos

Estudo comparativo das API s JAX-RPC e JAXM na construção de Web Services

Manual de instalação, configuração e utilização do Enviador XML

INTRODUÇÃO À TECNOLOGIA SERVLETS

Web Services. Integração de aplicações na Web. Sistemas Distribuídos

Cobrança Bancária. Contas / Manutenção.

SCPIWeb. SCPIWebDespRec Aplicação Web para Consulta de Despesas e Receitas ( Lei Complementar nº 131 de 27 Maio de 2009 )

Projeto: Plataforma de Integração. Data: 01/08/2014

Primeiros passos das Planilhas de Obra v2.6

Manual de Utilizador. Caderno. Recursos da Unidade Curricular. Gabinete de Ensino à Distância do IPP.

Tutorial: Serviços web e suas composições

MINISTÉRIO DA SAÚDE. Secretária de Gestão Estratégica e Participativa da Saúde SGEP. Coordenação de Desenvolvimento dos Sistemas de Saúde - CDESS

PROGRAMA DE MBA em Gestão e Engenharia do Produto. O Produto Internet e suas Aplicações

Microsoft.NET. Desenvolvimento Baseado em Componentes

Tutorial RMI (Remote Method Invocation) por Alabê Duarte

MANUAL DO ANIMAIL Terti Software

Sistemas Distribuídos Métodos de Invocação Remota II. Prof. MSc. Hugo Souza

Adriano Reine Bueno Rafael Barros Silva

SOA na Prática Ricardo Limonta

SOA Introdução. SOA Visão Departamental das Organizações

Introdução ao Android

Núcleo de Relacionamento com o Cliente. de Relacionamento com o Cliente GUIA PRÁTICO DE USO. Produtos

MINISTÉRIO DO PLANEJAMENTO ORÇAMENTO E GESTÃO SECRETARIA DE LOGÍSTICA E TECNOLOGIA DA INFORMAÇÃO DEPARTAMENTO DE LOGÍSTICA E SERVIÇOS GERAIS

AJAX no GASweb. Mas e afinal, para que usamos o AJAX?

Sistemas Distribuídos Métodos de Invocação Remota IV. Prof. MSc. Hugo Souza

18/04/2006 Micropagamento F2b Web Services Web rev 00

Criação de Aplicativos de redes sociais para Autenticação

UNICE Ensino Superior Linguagem de Programação Ambiente Cliente Servidor.

Criação de um novo projeto no Eclipse utilizando Maven

Descompacte o arquivo site zip que foi baixado dentro da pasta do eclipse.

Manual Rápido de Registro e Configuração do DJPDV

Manual de Utilização do PDV Klavix

DWR DIRECTED WEB REMOTING

Tutorial Moodle ESDM - professores

Sistemas Distribuídos na WEB (Plataformas para Aplicações Distribuídas) Sumário. Java 2 Enterprise Edition. J2EE (Java 2 Enterprise Edition)

Conectar diferentes pesquisas na internet por um menu

MOODLE NA PRÁTICA PEDAGÓGICA

MANUAL DE UTILIZAÇÃO. Produtos: Saúde Pró Faturamento Saúde Pró Upload. Versão:

Webservices. O que é um web service? Características. Por que web services? Tipos de web services

Para fazer a INSTALAÇÃO do Sistema ColREP, leia com atenção os Passos a seguir:

Integração de Sistemas de Informação Universitários via Web Services

Esse manual é um conjunto de perguntas e respostas para usuários(as) do Joomla! 1.5.

Tutorial de Integração PHP

Web Design Aula 11: Site na Web

Programação Web. Professor: Diego Oliveira. Conteúdo 02: JSP e Servlets

Portal do Projeto Tempo de Ser

INSTALAÇÃO OASIS + WAMP SERVER NO AMBIENTE WINDOWS

Criando & Consumindo um WebService com ASP.NET 2.0 Publicado em: 25 de Agosto de 2007 Por Herman Ferdinando Arais

paradigma WBC Public - compra direta Guia do Fornecedor paradigma WBC Public v6.0 g1.0

MANUAL MÓDULO CIELO QUERY COMMERCE (VERSÃO 1.6.1) QUERY COMMERCE

ROTEIRO PARA EMISSÃO DE CERTIFICADO DIGITAL A1

DIRETORIA DE TECNOLOGIA DA INFORMAÇÃO SETOR DE ESTÚDIO E SUPORTE MANUAL DE UTILIZAÇÃO DO WEBMAIL DA FTC EAD

Programação para Web

Portal de Aprendizado Tutorial do Aluno

Java Enterprise Edition. by Antonio Rodrigues Carvalho Neto

Tutorial de Integração PYTHON

TUTORIAL PARA PROFESSORES

1. Explicando Roteamento um exemplo prático. Através da análise de uns exemplos simples será possível compreender como o roteamento funciona.

Programação para Internet Avançada. 4. Web Services. Nuno Miguel Gil Fonseca

Internet. Gabriela Trevisan Bacharel em Sistemas de Infomação

Secretaria de Tecnologia da Informação Coordenadoria de Suporte Técnico aos Usuários

Boletim Técnico. A construção do relatório dentro do RM, acessando os dados do Protheus está descrita no documento fornecido pela RM.

Facebook Instruções de integração com PayPal

PREFEITURA MUNICIPAL DE JARDINÓPOLIS - SÃO PAULO. Departamento de Licitações. Introdução

Programação Web Prof. Wladimir

Integração Orientada a Serviços

Transcrição:

Criando Web Services com Apache Axis Palestrante: Daniel Destro do Carmo

Tópicos do Tutorial Introdução O que são Web Services? Padrões Web Services SOAP WSDL Web Services com Java O que é Apache Axis? Desenvolvendo Web Services com Axis Server side Client side

Introdução

A Internet A internet revolucionou a maneira de se fazer negócios. Sites e aplicações são facilmente acessados. O HTML e o protocolo HTTP são o padrão de troca de informações. Os navegadores web tornaram essa comunicação simples e possível. Diversas tecnologias foram criadas para o desenvolvimento web. clientes web internet Java PHP ASP C++ etc... Web server

A Evolução Com o grande sucesso, os negócios na internet evoluíram. A necessidade de novas soluções aumentaram. Transações e trocas de informações comerciais tornaram-se cruciais para os negócios. A automatização era fundamental. solicitar crédito fazer pedido de compra acompanhar o pedido confirmar envio dos produtos Empresa ABC Fornecedor XYZ

O Grande Problema Diferentes empresas tendem a utilizar diferentes tecnologias e soluções. Grande problema para integrar todas essas soluções, de forma automatizada. Algumas tecnologias não são interoperacionais. Uma solução para cada tecnologia tornaria isso inviável e caro. Mudança de provedor de serviços pede nova implementação. ASP.NET PHP Empresa ABC Corba XML DCOM Solução proprietária Sockets RMI Fornecedor XYZ Java Delphi

Web Services

Web Services Solução para o grande problema de integração visto anteriormente. Independe de tecnologia, sistema operacional e plataforma. Qualquer aplicação pode chamar os serviços de outra aplicação. Web Services usam protocolos e padrões abertos, baseados em XML. Constante processo de padronização pelo W3C e OASIS. ASP.NET PHP Empresa ABC WEB SERVICES Fornecedor XYZ Java Delphi

Web Services Desenhada para ter um baixo acoplamento entre as partes. Para se ter um baixo acoplamento, as partes devem concordar em: Utilizar um formato de troca de mensagens em comum (SOAP) Utilizar um protocolo em comum (HTTP) Web Service é uma arquitetura orientada a serviços. A interface é crucial é o contrato entre o provedor e o cliente. Web Services têm dois participantes: provedor do serviço e o requisitante do serviço. O requisitante (cliente ou consumidor) acessa o Web Service. arquitetura básica O provedor oferece a interface e a implementação do serviço.

Padrões Web Services

Padrões Web Services Web Service é uma tecnologia baseado em padrões abertos. HTTP XML SOAP WSDL UDDI Outros... Estes nomes de padrões são constantemente mencionados quando se fala de Web Service.

Padrões Web Services SOAP O SOAP (Simple Object Access Protocol) é um protocolo de comunicação, baseado em XML, trafegando, geralmente sobre HTTP. Utilizado para comunicação e troca de dados entre aplicações distintas. Inicialmente criada pela Microsoft e IBM. Agora é padronizada pelo W3C. SOAP é um simples documento XML que contém os elementos: Envelope, que identifica a mensagem SOAP; Header, opcional, que contém informação de cabeçalho; Body, que contém as informações da chamada e resposta; Fault, opcional, que contém informações sobre erros.

Padrões Web Services SOAP SOAP pode seguir o modelo RPC e o modelo de Documentos. SOAP também suporta attchments (anexos). Exemplo de documento SOAP <?xml version="1.0"?> <soap:envelopexmlns:soap="http://www.w3.org/2001/12/soap-envelope" soap:encodingstyle="http://www.w3.org/2001/12/soap-encoding"> <soap:header>... </soap:header> <soap:body>... <soap:fault>... </soap:fault> </soap:body> </soap:envelope>

Padrões Web Services WSDL WSDL (Web Services Description Language) é um documento XML que descreve os Web Services de uma maneira estruturada. WSDL descreve um ou mais serviços, como um conjunto de endpoints. Ele informa a interface de acesso, os tipos de dados usados e a localização do serviço. Os WSDLs são fornecidos pelos provedores de aplicativos de Web Services. A partir do WSDL fornecido geraremos os clientes dos Web Services.

Padrões Web Services UDDI UDDI (Universal Description, Discovery and Integration) é um serviço que possibilita uma forma padrão, rápida e fácil de se encontrarem Web Services, de acordo com seu interesse. É uma espécie de lista de Web Services públicos fornecidos. Hoje, várias empresas mantêm o serviço de registro e busca do UDDI. UDDI Org Microsoft IBM SAP entre outras

Padrões Web Services Conclusão Imagine-se com fome. Você procura no Google (UDDI) por um restaurante. No restaurante você lê o cardápio (WSDL), para saber o que pedir. Em seguida, você faz o pedido ao garçom (SOAP), que leva o pedido até a cozinha (HTTP). O cozinheiro prepara sua comida (Classe que implementa o serviço). Depois de pronta, o garçom traz de volta sua comida (SOAP de resposta). É, basicamente, assim que funcionam os Web Services.

Web Services com Java

Web Services com Java A plataforma J2EE oferece APIs e ferramentas para trabalhar com os Web Services. Criar serviços e seus clientes. A tecnologia Java oferece as seguintes APIs: Java Web Services Developer Pack (Java WSDP) Java API for XML-Based RPC (JAX-RPC) Java API for XML Registries (JAXR) Java API for XML Processing (JAXP) Java Architecture for XML Binding (JAXB) SOAP with Attachments API for Java (SAAJ) Com estas APIs você não precisa saber como criar o SOAP. Você só precisa saber utilizar as classes da API para criar e acessar os Web Services. Porém...

Web Services com Java Desvantagens O desenvolvimento de Web Services com estas APIs não é tão simples. A curva de aprendizado é grande. Você deve conhecer várias classes, e saber como utilizá-las. Então, como desenvolver Web Services mais facilmente???

Web Services com Apache Axis

W.S. com Apache Axis Apache Axis é um framework para se construir processadores SOAP. Com Axis é possível criarmos os serviços web e os clientes desses serviços. Axis fornece as ferramentas necessárias para trabalharmos com os Web Services de forma fácil e simplificada. Axis pode ser muito facilmente integrado à sua aplicação web, independente do container (Tomcat, JBoss, outros). Axis usa a API JAX-RPC internamente para trabalhar com SOAP. O projeto Apache Axis é a terceira geração do Apache SOAP. Atualmente está na versão 1.1 versão 1.2 com melhorias em breve.

W.S. com Apache Axis Instalando o Apache Axis Vá até o site do Apache Axis: http://ws.apache.org/axis/ Faça o download da última versão (1.1) arquivo zip. Descompacte o zip no seu disco. Crie a variável de ambiente %AXIS_HOME%. Coloque todos os jars do diretório AXIS_HOME/lib no CLASSPATH. * Certifique-se que você tenha o JAVA_HOME configurado. Pronto! Agora podemos trabalhar com os Web Services.

W.S. com Apache Axis Server Os Web Services são publicados através de servidores web. O Apache Axis pode rodar em qualquer Web Container Java. Usaremos o container Apache Tomcat. Copie o diretório axis localizado em AXIS_HOME/webapps/ para o diretório webapps do seu Tomcat. Com isso temos o Axis instalado no Tomcat. Fácil! Este diretório já contém as configurações básicas do Axis. Inicie o Tomcat e valide a instalação, clicando nos links disponíveis. http://127.0.0.1:8080/axis/

W.S. com Apache Axis Server - JWS Como nosso primeiro Web Service, vamos disponibilizar um serviço simples de soma, implementado pela classe abaixo: public class Calculadora { } public int somar( int a, int b ) { return a + b; } Esta classe pode ser publicada como um Web Service facilmente como um endpoint JWS. Para isto, basta renomear o arquivo.java para.jws e copiá-lo para a pasta axis do webapps do seu Tomcat.

W.S. com Apache Axis Server - JWS Ao publicarmos o nosso JWS, iniciamos o Tomcat e vamos testá-lo. Para acessar o Web Service da Calculador, aponte o navegador para: http://127.0.0.1:8080/axis/calculadora.jws Aparecerá um link para visualizarmos o WSDL que é gerado automaticamente pelo Axis. É a partir deste WSDL que criaremos nosso cliente de acesso ao Web Service da Calculadora. Com estes passos bem simples temos nosso primeiro Web Service publicado.

W.S. com Apache Axis Server - JWS Para classes de serviços bem simples, o JWS é suficiente, porém ele tem algumas desvantagens: Sempre precisamos ter o fonte Java disponível. A classe não pode fazer parte de nenhum pacote. Não pode utilizar outros tipos, senão os básicos do Java (primitivos, wrappers e String).

W.S. com Apache Axis Server Avançado O Axis nos permite disponibilizar nossas classes como serviços web, de forma mais completa e com maior flexibilidade, através de suas ferramentas. Para isso devemos nos familiarizar com o WSDD (Web Service Deployment Descriptor) do Axis. O WSDD contém informações do que você deseja publicar na sua aplicação Axis. Geralmente teremos um arquivo chamado deploy.wsdd e um outro chamado undeploy.wsdd, para fazer e desfazermos o deploy de nossos Web Services. O Axis nos fornece as ferramentas necessárias para podermos criar todos estes arquivos de configuração, além de fazer o deploy de nosso Web Service.

W.S. com Apache Axis Server Avançado Para iniciar, definimos a interface do nosso Web Service: package bovespa; public interface IStockQuote { public String gethigherstock(); public double getstockquote( String stock ); } A partir desta interface, vamos gerar as classes do Web Service do lado servidor e também os arquivos de configurações WSDL e WSDD.

W.S. com Apache Axis Server Avançado Primeiro criamos o descritor do serviço (WSDL ) utilizamos a ferramenta Java2WSDL: java -cp org.apache.axis.wsdl.java2wsdl -o StockQuote.wsdl -l"http://127.0.0.1:8080/axis/services/stockquote" -n "urn:stockquote" -p"bovespa.ws" "urn:stockquote" bovespa.istockquote Em seguida, criamos as classes do servidor e os WSDD com a ferramente WSDL2Java: java org.apache.axis.wsdl.wsdl2java -o./src -s -S true -Nurn:StockQuote bovespa.ws StockQuote.wsdl Agora já temos todas as classes e arquivos gerados pelo Axis.

W.S. com Apache Axis Server Avançado A ferramenta do Axis gerou as classes Stub e Skeleton baseada na nossa interface IStockQuoteWS. Os Stubs são as classes que ficam no lado cliente e que invocam o Web Service. O Skeleton é a classe que é invocada no lado servidor quando o Web Service é solicitado. Uma classe de implementação do nosso Web Service também é criada. Nesta classe podemos delegar a chamada aos métodos para a nossa classe que realmente implementa a funcionalidade.

W.S. com Apache Axis Server Avançado Agora vamos disponibilizar o nosso Web Service. Primeiro, copiamos os binários (.class) para o diretório classes da nossa aplicação no Tomcat (ou no lib sob a forma de um jar). Reiniciamos o Tomcat. Em seguida, executamos o comando do Axis para, de fato, fazer o deploy: java org.apache.axis.client.adminclient./ src/bovespa/ws/deploy.wsdd O programa AdminClient faz o deploy baseado no WSDD informado.

W.S. com Apache Axis Após feito o deploy do nosso Web Service, podemos acessá-lo, via browser, para fins de teste, da seguinte maneira: Apontar o navegador para: http://127.0.0.1:8080/axis/ Clicar sobre o link: View all deployed services. E então escolher o serviços disponível.

W.S. com Apache Axis Client Os clientes do nosso Web Service poderão gerar os clientes de acesso a partir do WSDL que é fornecido pelo Axis, como o que vimos pelo próprio navegador web. Portanto, não necessitamos fornecer nenhum tipo de código para os interessados em acessar nosso serviço. Mas, e se quisermos acessar algum Web Service por aí, ou mesmo um Web Service que nós publicamos. A ferramenta WSDL2Java, que já vimos, gera as classes de Stub pra nós.

W.S. com Apache Axis Client Imagine que queremos acessar o nosso primeiro Web Service de Calculadora. Vamos então gerar as classes Stub para o cliente acessar o Web Service. Primeiro acessamos o WSDL do Web Service e o salvamos em disco. Em seguida utilizamos a ferramenta para gerar o cliente: java org.apache.axis.wsdl.wsdl2java Calculadora.wsdl -o src

W.S. com Apache Axis Client Utilizando as classes geradas, vamos fazer um teste de acesso ao Web Service: CalculadoraServiceLocator loc = new CalculadoraServiceLocator(); Calculadora calc = loc.getcalculadora(); int result = calc.somar( 1, 2 ); System.out.println( result );

Para finalizar Com isso podemos ter uma idéia do que é possível fazer com o Apache Axis, podendo irmos além do que foi apresentado. O Apache Axis ainda pode ser mais produtivo trabalhando com a ferramenta Ant, que oferece tasks das ferramentas do Axis. Para maiores informações: Apache Axis: http://ws.apache.org/axis/ Web Services e SOAP http://www.w3c.org

Fim OBRIGADO! Daniel Destro do Carmo danieldestro@uol.com.br