Web Services SOAP. Introdução

Documentos relacionados
Sistemas Distribuídos

Introdução a Web Services

LEIC/LERC 2008/09 Primeiro Teste de Sistemas Distribuídos. Grupo I [7,2 valores]

Web Services. Tópicos. Introdução (1/3) CONTEXTO HISTÓRICO WEB SERVICES Conclusões

Web Services - Definição. Web Services - Introdução. Universidade Federal de Santa Catarina. DSOOII Web Services

contidos na descrição do serviço para localizar, contactar e chamar o serviço. A figura mostra os componentes e a interação entre eles.

LEIC/LERC 2011/12, 1º

Roteiro. Por que Web Services? Computação Distribuída - DCOM e CORBA. Visão Geral XML. João Gustavo Gazolla Borges, Maverson Eduardo Schulze Rosa SOAP

Universidade Federal Fluminense Mestrado em Sistemas de Telecomunicações. Disciplina: Fundamentos de Sistemas Multimídia.

GERENCIAMENTO BASEADO NA WEB. Baseado em slides gentilmente cedidos pelo Prof. João Henrique Kleinschmidt da UFABC.

PMR3507 Fábrica digital

Serviços Web: Arquitetura

STD29006 Sistemas Distribuídos

INFORMÁTICA. Instruções: Para responder às questões de números 71 e 72, considere o texto a seguir:

Sistemas Operacionais II

Sistemas Distribuídos

Desenvolvimento de Aplicações Distribuídas

Monitorização de Processos Multimédia

O que se espera para o futuro dos Web Services? As tecnologias são respectivamente JSON e REST.

Invocação Remota. Prof. Leonardo Barreto Campos. 1/29

Engenharia de Software Orientada a Serviços

Aula 12 -QS -Engenharia de SW Orientada a Serviço

Desenvolvimento de Aplicações Corporativas Avançadas. Web Services

Web Services utilizando JAX-WS

Prof. Me. Sérgio Carlos Portari Júnior

Web Services. Sistemas Distribuídos Marcos Costa

INTRODUÇÃO. RPC x RMI

Web Services. Professor: Ricardo Luis dos Santos IFSUL Campus Sapucaia do Sul

Principais conceitos de CORBA

SERVIÇO CONTRATO Especificação das operações de Serviço

Introdução a Web Services

Sistemas Distribuídos

Programando sistemas distribuídos com objetos distribuídos na rede TCP/IP. Prof. Me. Sérgio Carlos Portari Júnior

Common Object Request Broker Architecture

Engenharia de Software Orientada a Serviços

Desenvolvendo um protótipo do UDDI. Luís Fernando Jordan. 1. Introdução. 1.1 Apresentação.

Sistemas Distribuídos

UNIVERSIDADE. Sistemas Distribuídos

APIs Java para Web Services

SERVIÇOS WEB. Frankley Gustavo F. Mesquita, Tamiris Souza Fonseca. 27 de junho de 2016

UNIVERSIADE FEDERAL DE SANTA CATARINA. SCRG Sistema de Coleta de Recursos em Grids Utilizando o Globus Toolkit 4

Grupo I [5,5v] Considere o seguinte código que ilustra uma componente programática de um sistema de RPC, neste caso do SUN-RPC.

LEIC/LERC 2007/08 Exame de Época Especial de Sistemas Distribuídos

Programação Cliente em Sistemas Web

Desenvolvimento Web II

Número: Nome: Página 1 de 7. Duração da prova: 1h30m. Grupo I [7] Considere o seguinte excerto (incompleto) de um programa cliente em SUN RPC:

Aula 23: Web Services (I)

Manual de Integração Consulta Automática de NFS-e

DESENVOLVIMENTO DE SISTEMAS SENSÍVEIS

UNIVERSIDADE FEDERAL DO MARANHÃO CENTRO DE CIÊNCIAS EXATAS E TECNOLOGIA CURSO DE CIÊNCIA DA COMPUTAÇÃO DIEGO RABELO MACIEL

Web Services. Tópicos. Motivação. Tecnologias Web Service. Passo a passo Business Web Conclusão. Integração de aplicações SOAP, WSDL, UDDI, WSFL

Grupo I [7v] b) [0,3] Em que componente do sistema de RPC será utilizado o campo identificador de operação?

Sistemas Distribuídos. Visão Geral Expandida

Aula de hoje: Web Services (Serviços Web) Processamento Paralelo Web Services. Tecnologias básicas da Web. Aplicações na Internet

2ª edição. Daniel Adorno Gomes. Novatec

Ricardo Couto Antunes da Rocha 2005 Ricardo Couto Antunes da Rocha

UNIVERSIDADE. Sistemas Distribuídos

UFG - Instituto de Informática

Modelo de Componentes CORBA

Webservices LEANDRO MENDES FERREIRA

PROTÓTIPO DE UM SISTEMA DE IMPORTAÇÃO PARA UMA AGÊNCIA DE TRANSPORTES INTERNACIONAIS

www/~cagf/sdgrad Serviço de Nomes CORBA e Interoperabilidade de ORBs

Projeto. Observatório Nacional de Clima e Saúde

XM X L M L WE W B E B Se S r e vices e 0

Sistemas de Objetos Distribuídos

Manual de Integração. Tecnologia: WebServices SOAP XML. Área: CDC. Produto: CDC Simplificada (Juridica) Versão: 1.0. Autor: Angelo Bestetti Junior

Web Services REST. Sistemas Distribuídos. Mauro Lopes Carvalho Silva. Professor EBTT DAI Departamento de Informática Campus Monte Castelo

O Processo da Descoberta de um Serviço: Discovery

5 Everyware: Uma Arquitetura para Aplicações baseadas em serviços utilizando a Web Semântica

Web Services. (Introdução)

Encapsulamento e Métodos (Construtores e Estáticos) João Paulo Q. dos Santos

WSDL e UDDI. Pedro Miguel Martins Nunes WSDL. WSDL Exemplo prático Resumo UDDI. Serviço UDDI Estruturas de dados UDDI e WSDL API Resumo

Conteúdo da Aula de Hoje. Web Services. Avaliação da Disciplina. O que é um web service? O que é um web service? Vantagens

Teste-Tipo de Sistemas Distribuídos RPC, RMI, Web Services Guia de resolução

Web services. Web services. Web services. Web services. Web services. Web services. Web services. Ângelo Vimeney. Rafael Martinelli.

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

Gerenciamento e Interoperabilidade de Redes

Web Services REST JAX-RS

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

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

UNIVERSIDADE FEDERAL DE GOIÁS INSTITUTO DE INFORMÁTICA. Sistemas Distribuídos

Java RMI. RMI Remote Method Invocation. Chamadas Remotas de Procedimentos (RPC) RPC - Implementação

Arquitetura Orientada a Serviços A Evolução de Estruturas Complexas a partir de Estruturas Simples. Neil Paiva Tizzo GEINFO

Sistemas distribuídos. Prof. Emiliano Monteiro

XML. Prof. Júlio Machado

Sistemas Distribuídos

MADALENA PEREIRA DA SILVA SLA Sociedade Lageana de Educação DCET Departamento de Ciências Exatas e Tecnológica

Sistemas de Objetos DistribuídosPrimeira Aplicação Java ORB p.1/21

Computação Orientada a Serviços

15/4/15. Processamento Paralelo Middleware Orientado a Objetos. Sistema operacional é a única infraestrutura para interação. Middleware é adicionado

Campus Capivari Análise e Desenvolvimento de Sistemas (ADS) Prof. André Luís Belini /

Sistemas Operacionais II

Comentários: Desenvolvimento de Sistemas Rogério Araújo

LEIC/LERC 2009/10 Primeiro Teste de Sistemas Distribuídos. Grupo I [6 v]

Protótipo de Protocolo de Aplicação para Troca de Documentos da Área Extra Judicial. Acadêmico: Fabrício Bento Orientador: Paulo Fernando da Silva

Service Oriented Architecture SOA

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

Transcrição:

Web Services SOAP Introdução 1

Cenários Problemáticos Soluções para aplicações corporativas avançadas Cenário 1: Portal de Turismo Cenário 2: Compra Automática Cenário 3: Supply Chain Management Cenário 4: Pesquisa Google via Programa 2

Cenário 1: Portal de Turismo Implementar um portal realmente automático em que: O cliente lista seus desejos via HTML O portal pesquisa alternativas escolhe as melhores faz todas as reservas fatura o cartão de crédito do cliente efetua todos os pagamentos... automaticamente, sem intervenção humana Ou seja, queremos que programas naveguem na Web, não só humanos 3

Cenário 2: Compra automática Implementar uma aplicação para um distribuidor regional de remédios que: Automaticamente detecte estoque baixo Procure o melhor lugar no mundo para comprar os produtos Preço, prazo de entrega, etc. Emita a ordem de compra eletronicamente 4

Cenário 3: Supply Chain Management Implementar aplicações de SCM que integrem sistemas de várias empresas (fornecedores, parceiros, clientes,...) 5

Cenário 4: Pesquisa Google via Programa Escrever um programa que recupere as primeiras 10 ocorrências de web services retornadas pelo Google 6

Características comuns aos cenários Todos são sistemas distribuídos Todos funcionam na Internet Vários envolvem achar (navegar) o que se quer antes de usar Todos envolvem domínios administrativos diferentes (empresas diferentes) Não temos controle sobre a plataforma, linguagem, etc. do outro lado O outro lado é essencialmente um sistema legado no qual não podemos mexer 7

Problemas técnicos resultantes 1. Como trocar informação em ambiente heterogêneo para que ambos os lados entendam? 2. Como acessar a funcionalidade remota? 3. Como achar o outro lado? 4. Como driblar firewalls na comunicação? 8

Uma Solução Web Services Modelo de dados que representa um conjunto de conceitos de um domínio e os relacionamentos entre estes. Usada para realizar inferência sobre os objetos do domínio. 1. Como trocar informação em ambiente heterogêneo para que ambos os lados entendam? Usar XML para toda a comunicação Usar SOAP fazer RPC 2. Como saber que métodos podem ser chamados e com que parâmetros? Usar uma arquitetura orientada a serviços Descrever o serviço remoto usando WSDL Definir ontologias 3. Como achar o outro lado? Usar UDDI para localizar serviços 4. Como driblar firewalls na comunicação? Usar binding de SOAP para HTTP 9

Uma imagem vale 1000 palavras 10

Vamos descrever melhor a solução... 11

Usar uma arquitetura orientada a serviços Serviço oferece uma API na Internet 12

Usar XML para toda a comunicação Extended Markup Language (XML) Oferece um formato ASCII para trocar qualquer tipo de informação estruturada Usa o estilo HTML de markup com tags <pessoa nome= João > <frutasfavoritas> <fruta>manga</fruta> <fruta>maçã</fruta> <fruta>uva</fruta> </frutasfavoritas> </pessoa> Os tags podem ser definidos para criar uma Aplicação XML ou Linguagem XML 13

Usar SOAP fazer RPC SOAP é uma forma de fazer Remote Procedure Call (RPC) usando documentos XML 14

Descrever o serviço remoto usando WSDL WSDL = Web Services Description Language Pronunciado wisdle É uma linguagem XML que contém informação sobre a interface, a semântica, e outros detalhes de chamadas a um Web Service 15

Descrição WSDL inclui Descrição/formato de mensagens que podem ser passadas Elementos <types>, <message> Semântica da passagem de mensagens (Request-only, request-response, response-only) Dentro do elemento <porttype> Uma codificação usando um transporte particular Elemento <binding> O endpoint do serviço (uma URL) Dentro do elemento <service> Veremos um exemplo logo 16

Definir ontologias Precisamos saber o que as coisas significam Exemplo: como mandar uma ordem de serviço se não sei o que cada campo deve conter? Várias organizações definem e padronizam ontologias ebxml Oasis 17

Usar UDDI para localizar serviços UDDI = Universal Description, Discovery, and Integration Permite cadastrar serviços e localizá-los Não é necessário usar UDDI se o cliente já tiver o documento WSDL Não usaremos UDDI no exemplo que segue 18

Usar binding de SOAP para HTTP O binding sobre HTTP, SMTP, etc. permite driblar firewalls com mais facilidade Qualquer outro protocolo de transporte pode ser usado 19

Finalmente... O que é um Web Service? Um Web Service é um ponto de acesso a funcionalidade que pode ser Localizado dinamicamente Ter sua interface descoberta automaticamente, porque o serviço sabe se descrever Ser chamado na Web 20

21

Situações de uso de SOAP Processamento e chamadas assíncronos: aplicação precisa de um nível garantido de confiabilidade e segurança para a troca de mensagens; Contratos formais: ambos os lados (fornecedor e consumidor) têm que concordar com o formato de intercambio de dados, onde SOAP fornece especificações rígidas para esses tipo de interação; Operações stateful: a aplicação precisa de informação contextual e gerenciamento de estado com coordenação e segurança 22

Web Service SOAP

Tecnologias Relacionadas Web Services SOAP (Simple Object Access Protocol) HTTP (HyperText Markup Language) UDDI (Universal Description, Discovery and Integration) XML (extensible Markup Language) XSD (XML Schema Documents)

SOAP Protocolo elaborado para facilitar a chamada remota de funções via Internet, permitindo que dois programas se comuniquem de uma maneira tecnicamente muito semelhante à invocação de páginas Web. 25

SOAP Vantagens sobre outras maneiras de chamar funções remotamente como DCOM, CORBA ou diretamente no TCP/IP: simples de implementar, testar e usar padrão da indústria Usa mesmos padrões da Web : comunicação via HTTP; mesmos protocolos de autenticação e encriptação; manutenção de estado da mesma forma; normalmente implementado pelo próprio servidor Web. 26

SOAP Vantagens sobre outras maneiras de chamar funções remotamente como DCOM, CORBA ou diretamente no TCP/IP: Atravessa firewalls e roteadores, que pensam que é uma comunicação HTTP. Tanto os dados como as funções são descritas em XML, o que torna o protocolo não apenas fácil de usar como também muito robusto. É independente do sistema operacional e CPU. Pode ser usado tanto de forma anônima como com autenticação (nome/senha). 27

Pedidos SOAP Os pedidos SOAP podem ser feitos em três padrões: GET, POST e SOAP. GET e POST idênticos aos pedidos feitos por navegadores Internet. SOAP padrão semelhante ao POST, mas com pedidos em XML que permitem recursos mais sofisticados como passar estruturas e arrays. As respostas são sempre em XML. O XML descreve perfeitamente os dados em tempo de execução e evita problemas causados por mudanças nas funções, já que os objetos chamados têm a possibilidade de sempre validar os argumentos das funções, tornando o protocolo muito robusto. 28

WSDL Web Services Definition Language 29

WSDL Uma definição: A WSDL é uma especificação que permite descrever Web Services segundo um formato XML.

Descrição dos Serviços Através da descrição do Web Services o provedor de serviços publica as especificações necessárias para o cliente invocar um serviço.

Independência de plataforma O cliente não precisa saber qual a linguagem do programação ou plataforma de execução em que o provedor de serviços está baseado. A descrição do serviço em conjunto com a infra-estrutura SOAP adjacente encapsula detalhes tanto no lado do cliente quanto no lado do provedor.

Em suma... Um documento WSDL é um documento XML que descreve Web Services como um conjunto de pontos de serviço (endpoints) que operam baseados em trocas de mensagens. As operações e mensagens relativas a um serviço são descritas de forma abstrata e em seguida ligados a protocolos de rede e formatos de mensagens concretos como o objetivo de definir um ponto de serviço.

WSDL é extensível WSDL é uma linguagem extensível e permite a descrição de pontos de serviço e suas mensagens independentemente de que formato de mensagens ou protocolo de rede é utilizado na comunicação.

Linguagem para definição de web service - WSDL Descreve perfeitamente os objetos e métodos disponíveis, através de páginas XML acessíveis através da Web. Quem publicar um serviço, cria também estas páginas. Quem quiser chamar o serviço, pode usar estas páginas como documentação de chamada e também usadas antes de chamar as funções para verificar se alguma coisa mudou. 35

WSDL Web Services Definition Language A camada de integração introduzida pela estrutura de web services estabelece um padrão, reconhecido e com interface programática suportada. WSDL permite a comunicação entre essas camadas ao fornecer descrições padronizadas. 36

WSDL definiçao de serviços Uma definição de serviço, tal como é expressa pelo construtor definitions 37

Arquitetura WS Camadas Descoberta Publicação (UDDI /direta) Descrição dos serviços (WSDL) Troca de Mensagens baseadas em XML (SOAP) Rede (HTTP, SMTP, FTP)

Interface e Implementação O uso de WSDL na arquitetura de Web Services é em geral dividido em duas partes: interface do serviço implementação do serviço. Cada parte pode ser definida de maneira independente e conseqüentemente reutilizada por outras aplicações.

Interface de Serviço Especificação de interface de serviço é uma descrição de serviço reutilizável que pode ser instanciada e implementada por diferentes implementações de serviços. Semelhante a IDL (CORBA).

Elementos da Interface de Serviço Tipos (types) Definem os tipos de dados que são utilizados para descrever as mensagens. Para melhor interoperabilidade e independência de plataforma indica-se o uso de XSD (XML Schema Documents) <types> <schema targetnamespace="http://example.com/stockquote.xsd xmlns="http://www.w3.org/2000/10/xmlschema"> <element name="tradepricerequest"> <complextype> <all> <element name="tickersymbol" type="string"/> </all> </complextype> </element> <element name="tradeprice">... </element> </schema> </types>

Elementos da Interface de Serviço Mensagens (message) Representam uma definição abstrata dos dados que serão transmitidos. Uma mensagem é composta por diferentes partes lógicas que estão associadas com uma definição contida em um sistema de tipos. <message name= iteminformation > <part name= theelement element= aliarforitem /> </message>

Elementos da Interface de Serviço Tipos de portas (porttype) São conjuntos de operações abstratas, cada uma contendo mensagens de entrada e saída.... > <porttype name="stockquoteporttype"> <operation name="getlasttradeprice"> <input message="tns:getlasttradepriceinput"/> <output message="tns:getlasttradepriceoutput"/> </operation> </porttype>...

Elementos da Interface de Serviço Operações (operation) Definição abstrata de uma ação que um serviço pode executar... > <porttype name="stockquoteporttype"> <operation name="getlasttradeprice"> <input message="tns:getlasttradepriceinput"/> <output message="tns:getlasttradepriceoutput"/> </operation> </porttype>...

Elementos da Interface de Serviço Ligações (binding) Especificam protocolos concretos além de especificações de formatação de dados para as operações e mensagens definidas em um tipo de porta particular. <binding name="stockquotesoapbinding type="tns:stockquoteporttype"> <soap:binding style="document transport="http://schemas.xmlsoap.org/soap/http"/> <operation name="getlasttradeprice"> <soap:operation soapaction="http://example.com/getlasttradeprice"/> <input> <soap:body use="literal"/> </input> <output> <soap:body use="literal"/> </output> </operation> </binding>

Implementação do Serviço A implementação de serviço é um documento WSDL que descreve como uma interface particular é implementada por um determinado provedor de serviços. Os elementos que fazem parte da implementação do serviço são ports e services.

Implementação do Serviço Porta (port) Especifica um endereço para uma ligação, definindo então um endpoint único. <port name="stockquoteport binding="tns:stockquotebinding"> <soap:address location="http://example.com/stockquote"/> </port>

Implementação do Serviço Serviço (service) Modela um Web Service agregando um conjunto de portas relacionados entre si. <wsdl:definitions... > <wsdl:service name="nmtoken"> <wsdl:port... /> </wsdl:service> </wsdl:definitions>

WSDL As definições de interface e implementação de serviços podem fazer parte de um mesmo documento WSDL. Um documento WSDL contém elementos que possuem significado para um Web Service.

Elementos da WSDL para seu XSD definitions documentation message porttype input output fault operation service binding port

Estrutura de um Documento WSDL Um documento WSDL é um conjunto de definições. Há um elemento definitions na raiz e outras definições no interior

This example uses a fixed XML format instead of the SOAP encoding Example 1 SOAP 1.1 Request/Response via HTTP [2] Definitions: Define a raiz do documento WSDL <?xml version="1.0"?> <definitions name="stockquote" targetnamespace="http://example.com/stockquote.wsdl types: xmlns:tns="http://example.com/stockquote.wsdl Define os tipos de dados xmlns:xsd1="http://example.com/stockquote.xsd que serão utilizados para xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/ trocar mensagens xmlns="http://schemas.xmlsoap.org/wsdl/"> <types> <schema targetnamespace="http://example.com/stockquote.xsd xmlns="http://www.w3.org/2000/10/xmlschema"> <element name="tradepricerequest"> <complextype> <all> <element name="tickersymbol" type="string"/> </all> </complextype> </element> <element name="tradeprice"> types: Indica-se o padrão XSD

Cont. message: <element name="tradeprice"> <complextype> Definição abstrata <all> dos dados enviados <element e recebidos name="price" type="float"/> </all> </complextype> </element> </schema> porttype: </types> Define um conjunto de <message name="getlasttradepriceinput"> operações disponíveis em <part name="body" operation: element="xsd1:tradepricerequest"/> uma determinada porta </message> Nomeia as operações de <message name="getlasttradepriceoutput"> entrada e saída e ainda <part name="body" fault: podem descrever element="xsd1:tradeprice"/> erros </message> Leyout de retorno (fault) <porttype de name="stockquoteporttype"> qualquer falha <operation name="getlasttradeprice"> <input message="tns:getlasttradepriceinput"/> <fault name=... /> <output message="tns:getlasttradepriceoutput"/> </operation> </porttype>

Cont. <binding name="stockquotesoapbinding type="tns:stockquoteporttype"> <soap:binding style="document Input/output: binding: Especifica o protocolo e o formato de dados para operações e mensagens definidas por uma porttype transport="http://schemas.xmlsoap.org/soap/http"/> Descreve os elementos que <operation name="getlasttradeprice"> uma operação usa como <soap:operation soapaction="http://example.com/getlasttradeprice"/> parâmetros de entrada e <input> saída <soap:body use="literal"/> </input> service: <output> Modela um Web Services <soap:body use="literal"/> documentation: agregando port: um conjunto de Textos ou elementos </output> Especifica portas o relacionadas </operation> adicionais, informativos, endereço de um </binding> utilizados para documentação <service name="stockquoteservice"> binding <documentation>my first service </documentation> <port name="stockquoteport" binding="tns:stockquotebinding"> <soap:address location="http://example.com/stockquote"/> </port> </service> </definitions>

Referências [1] Seely, Scott. SOAP: Cross Platform, Web Services Development, Using XML. New York: Prentice Hall, 2002. [2] W3C. Web Services Description Language (WSDL) 1.1, [online], 05/06/2002, http://www.w3.org/tr/2001/note=wsdl-20010315.

Criando um Web Service SOAP 56

Criando Web Services em SOAP Serviços Web são definidos por classes. Um Web Service pode oferecer várias operações, cada uma representada por um método de classe. Uma prática importante: dividir a interface de um serviço da sua implementação. interface de um serviço: SEI (Service Endpoint Interface) e a implementação: SIB (Service Implementation Bean).

Criando o Web Service ALO Crie a interface do serviço @WebService @SOAPBinding(style = SOAPBinding.Style.RPC) public interface Alo { @WebMethod public String alo (@WebParam(name = "nome") String txt); } @Webservice: avisa ao compilador Java que o arquivo atual corresponde à definição SEI de um serviço Web @WebMethod indica que um determinado método corresponde a uma operação de serviço e assim pode ser invocado por um cliente @SOAPBinding indica que o serviço utilizará a abordagem SOAP

Criando a Implementação do Serviço ALO Criar a implementação da interface: a SEI onde serão implementados os métodos definidos anteriormente @WebService(endpointInterface = "alo.alo") public class AloServer implements Alo{ public String alo (@WebParam(name = "nome") String txt) { return "Olá " + txt + "!"; } }

Publicando o Serviço public class AloPublish { public static void main(string[] args) { Endpoint.publish("http://localhost:9875/alo", new AloServer()); } } Endpoint : permite publicar um serviço em um servidor. Parâmetros: o endereço do servidor e a instância do SIB do serviço a ser publicado. O serviço é publicado na porta 9875.

Usando o serviço public class AloClient { public static void main(string args[]) throws Exception { URL url = new URL("http://127.0.0.1:9875/alo?wsdl"); QName qname1 = new QName("http://alo/", "AloServerService"); Service ws1 = Service.create(url, qname1); Alo cs = ws1.getport(alo.class); System.out.println("Resultado " + cs.alo("macacada")); } } indicando o WSDL onde o serviço poderá ser encontrado

Usando o serviço public class AloClient { public static void main(string args[]) throws Exception { URL url = new URL("http://127.0.0.1:9875/alo?wsdl"); QName qname1 = new QName("http://alo/", "AloServerService"); Service ws1 = Service.create(url, qname1); Alo cs = ws1.getport(alo.class); System.out.println("Resultado " + cs.alo("macacada")); } } Nome qualificado em XML para QName. Indica uma URI (namespace) e o nome do serviço. Namespace: fornecido pela WSDL do serviço, e Nome local: classe SIB acrescida da palavra Service. O nome local aparece na última seção do documento WSDL (seção service).

Usando o serviço public class AloClient { public static void main(string args[]) throws Exception { URL url = new URL("http://127.0.0.1:9875/alo?wsdl"); QName qname1 = new QName("http://alo/", "AloServerService"); Service ws1 = Service.create(url, qname1); Alo cs = ws1.getport(alo.class); System.out.println("Resultado " + cs.alo("macacada")); } } retorna uma referência a um objeto que pode invocar as operações oferecidas pelo serviço

Usando o serviço public class AloClient { public static void main(string args[]) throws Exception { URL url = new URL("http://127.0.0.1:9875/alo?wsdl"); QName qname1 = new QName("http://alo/", "AloServerService"); Service ws1 = Service.create(url, qname1); Alo cs = ws1.getport(alo.class); System.out.println("Resultado " + cs.alo("macacada")); } } Acesso a interface de ponto final (endpoint) tipo SEI do serviço, sendo capaz de acessar seus métodos. O cliente poderia ter sido implementado em qualquer linguagem de programação como C, C++, PERL...

65

Exercício: Calculadora www.linhadecodigo.com.br Desenvolvendo e usando web services em java 66

Exemplo: Calculadora @WebService @SOAPBinding(style = Style.RPC) public interface CalculadoraS { @WebMethod float soma(float num1, float num2); @WebMethod float subtracao(float num1, float num2); @WebMethod float multiplicacao(float num1, float num2); } @WebMethod float divisao(float num1, float num2);

Exemplo: Calculadora @WebService(endpointInterface = "calc.calculadoras") public class CalculadoraSImpl implements CalculadoraS { public float soma(float num1, float num2) { return num1 + num2; } public float subtracao(float num1, float num2) { return num1 - num2; } public float multiplicacao(float num1, float num2) { return num1 * num2; } public float divisao(float num1, float num2) { return num1 / num2; } }

Exemplo: Calculadora public class CalculadoraSPublish { public static void main(string[] args) { Endpoint.publish("http://localhost:9876/calc", new CalculadoraSImpl()); } }

Exemplo: Calculadora class CalculadoraClient { public static void main(string args[]) throws Exception { URL url = new URL("http://127.0.0.1:9876/calc?wsdl"); QName qname = new QName("http://calc/","CalculadoraSImplService"); Service ws = Service.create(url, qname); CalculadoraS calc = ws.getport(calculadoras.class); } } System.out.println("Soma (5+1): " + calc.soma(5,1)); System.out.println("Subtracao (5-1): " + calc.subtracao(5,1)); System.out.println("Multiplicacao (5*1): " + calc.multiplicacao(5,1)); System.out.println("Divisao (5/1): " + calc.divisao(5,1));