Programa Conhecendo Padrões Abertos para Interoperabilidade. Oficina I: Curso de Web Services. Profrª Everlin Marques Profrª Cinara Menegazzo

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

Introdução a Web Services

Web Services. Sistemas Distribuídos Marcos Costa

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

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.

Desenvolvimento de Aplicações Distribuídas

Engenharia de Software Orientada a Serviços

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

STD29006 Sistemas Distribuídos

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

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 DO MARANHÃO CENTRO DE CIÊNCIAS EXATAS E TECNOLOGIA CURSO DE CIÊNCIA DA COMPUTAÇÃO DIEGO RABELO MACIEL

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

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

Serviços Web: Arquitetura

PMR3507 Fábrica digital

Engenharia de Software Orientada a Serviços

Sistemas Distribuídos

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

Introdução a Web Services

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

Web Services. (Introdução)

Programação Cliente em Sistemas Web

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

Arquitetura da World Wide Web. WWW: Histórico. WWW: Usos. WWW: Histórico. WWW Tecnologias Fundamentais. Comércio Eletrônico na WWW

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

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

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

Sistemas Distribuídos

Service Oriented Architectures (SOA)

UNIVERSIDADE. Sistemas Distribuídos

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

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

Sérgio Koch Van-Dall

Sistemas Operacionais II

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

Principais conceitos de CORBA

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

O Processo da Descoberta de um Serviço: Discovery

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

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

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

Web Services SOAP. Introdução

Service Oriented Architecture SOA

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

UFG - Instituto de Informática

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

Desenvolvendo um Protótipo do UDDI

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

SEGURANÇA EM WEB SERVICES COM JAVA

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

Prof. Samuel Henrique Bucke Brito

Common Object Request Broker Architecture

Metamodelos para Banco de Dados. Carlos Julian Menezes Araújo Prof. Dr. Robson do Nascimento Fidalgo

Sistemas Operacionais II

FUNDAMENTOS DE REDES DE COMPUTADORES Unidade 5 Camada de Transporte e Aplicação. Luiz Leão

A Estrutura de um Web Service

Sistemas Especializados

Arquitetura de Rede. Universidade Católica de Pelotas Curso de Engenharia da Computação Disciplina: Redes de Computadores I

Programação para Web

INTRODUÇÃO À INTERNET E À WORLD WIDE WEB

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

SOA (Service-Oriented Architecture) Conceitos e Aplicação. Daniel Macêdo Batista IME/USP Março

Rede de computadores Cliente- servidor. Professor Carlos Muniz

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

3 Serviços na Web (Web services)

Serviços para a Web Semântica

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

Construção de Sites. Introdução ao Universo Web. Prof. Nícolas Trigo

Desenvolvimento de Aplicações Distribuídas

Sistemas Distribuídos: Conceitos e Projeto RPC e RMI

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

Sistemas Distribuídos. Plano de Curso. Plano de Curso 04/03/12 ! EMENTA:

Introdução à Computação

Redes de Computadores

Sistemas Distribuídos

Sistemas Distribuídos. Visão Geral Expandida

SOLUÇÃO DE INTEGRAÇÃO PARA O SISPORTOS

Plataformas de Distribuição de Objetos

3 Implementações Vinci

Webservices LEANDRO MENDES FERREIRA

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

Sistemas Distribuídos

Protocolo HTTP. Eduardo Ferreira dos Santos. Fevereiro, Ciência da Computação Centro Universitário de Brasília UniCEUB 1 / 22

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

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

Sistemas Distribuídos. Web Services. Edeyson Andrade Gomes.

Sistemas distribuídos. Prof. Emiliano Monteiro

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

Aula 23: Web Services (I)

XML. Prof. Júlio Machado

Arquiteturas de Protocolos. Aplicação. Redes. Aplicações cliente-servidor. Aplicações peer-to-peer

REDES DE COMPUTADORES Prof. Ricardo Rodrigues Barcelar

PROVIDING DEPENDABILITY FOR WEB SERVICES

Redes de Computadores e Aplicações Camada de aplicação IGOR ALVES

DESENVOLVIMENTO DE SISTEMAS DISTRIBUIDOS. Prof. Marcelo de Sá Barbosa

Transcrição:

Programa Conhecendo Padrões Abertos para Interoperabilidade Oficina I: Curso de Web Services Profrª Everlin Marques Profrª Cinara Menegazzo

Web Service - Sumário SOA; Tecnologias SOA; WS; Conceitos; Funcionamento; Arquitetura; Componentes; SOAP; XML; WSDL; UDDI; Exemplos de projetos; Vantagens e Problemas (tecnologias relacionadas); Exemplos Práticos; Referências Bibliográficas 2

Web Service (WS) Interoperabilidade Interoperabilidade: capacidade de comunicar, de maneira transparente, o usuário com qualquer software,hardware ou SO, de qualquer fabricante, em uma mesma rede. Serviço: Blocos de construções independentes que unidos representam um ambiente de aplicação Aplicação: ambiente de execução de seqüências de instruções para execução de uma atividade. São protocolos da camada sete OSI-ISO(HTTP, SMTP, FTP) 3

Web Service Arquitetura SOA SOA (Service Oriented Arquitecture) Arquitetura para construir aplicações que encapsula seus processos e comunica seus componentes de forma independente. (ERL, 2004) 4

Web Service Arquitetura SOA Requisitos Componentes independentes, multiplataforma, em rede e com alta disponibilidade. Conseqüência Comunicação mais lenta e menos segura do que apenas a invocação de código e compartilhamento de memória (local). 5

Web Service Arquitetura SOA- Características SOA é uma forma de arquitetura de sistema distribuído caracterizado por (W3C,2007): Visão lógica: o serviço é uma abstração( visão lógica do processo de negócio,banco de dados, programas); Orientado a mensagem o serviço é definido em termos de mensagem, não interessa a implementação do agente provedor ou requisitor; Orientado a descrição o serviço é descrito por metadados que são publicados naturalmente pela SOA, esta descrição deve conter uma referência semântica do serviço 6

Web Service Arquitetura SOA- Características Granularidade o serviço tende a usar um pequeno número de operações relativamente grandes e com mensagens complexas; Orientado a rede o serviço tende a ser usado através da rede, mas não obrigado; Plataforma neutra as mensagens são enviadas por plataformas neutras com formatação padrão determinadas pelas interfaces, XML é a mais utilizada. SOA Sistemas distribuídos 7

Web Service Arquitetura SOA Os sistemas distribuídos tem seus problemas, como: Uso simultâneo de recursos; Latência no transporte; Compartilhamento de memória; Falhas parciais, dentre outros. 8

Web Service Arquitetura SOA Programa Cliente Stub Camada de comunicação de interface, dedicada Programa servidor Estrutura Figura 1 Arquitetura Cliente Servidor stub/estrutura (RPC) 9

Web Service Arquitetura SOA 1) A conexão HTTP envia requisições de dados e quaisquer parâmetros Aplicação Cliente Servidor Web 2) O serviço envia resposta como dados XML ou HTML Dados recebidos pelo cliente, conexão fechada Figura 2 Processo de transação HTTP 10

Web Service Arquitetura SOA Soluções com tecnologias baseados em SOA como: EDI (Eletronic Document Interchange) CORBA (Common Object Request Broker Architecture) DCOM(Distributed Common Object Model) (M$) JavaRMI Baseadas em stub/estrutura (RPC) RPC (Remote Procedure Call) Servlets,JSP,ASP, PHP transacionais (HTTP) Web Services (Ụ) 11

Web Service Arquitetura SOA Por que uma tecnologia alternativa: Uso simultâneo de recursos; Necessidade de protocolos específicos; Plataformas proprietárias; Mensagens em padrões específicos; Dependentes de fornecedores; Implementação complexa; Disponibilidade; Independência dos componentes; Problemas com firewall. 12

Web Service - Evolução Um consórcio de empresas (M$, IBM, Xerox e Sun) hoje chamado de WS-I (Web Services Interoperability Organization) para atender as necessidades de interoperabilidade entre aplicações, utilizou-se das características da SOA para propor uma estrutura de websites, alterando o foco de disponibilidade de informações para disponibilidade de dados. Website+SOA+disponibilidade de dados = WS 13

Web Service - Evolução 2000 W3C aceita a submissão do SOAP (Simple Object Access Protocol); 2001 W3C publica a especificação WSDL (Webservices Description Language) (nova implementação do XML fornece uma linguagem para descrever a interface dos WS); UDDI ( Universal Description, Discovery and Integration) mecanismo padrão para descoberta dinâmica de descrições de serviços. 14

Service Características(vantagens) Interoperabilidade; Reaproveitamento de sistemas legados; Encapsulamento de processos; Modular; Independência de plataforma. 15

Web Service Conceitos (1/2) Arquitetura para criar interoperabilidade de aplicações de forma estruturada (Coulouris et al., 2003) É um sistema planejado para suportar interoperabilidade na interação entre aplicações sobre uma rede (Erl,2004) 16

Web Service Conceitos (2/2) Uma aplicação de software identificada por uma URI (Uniform Resource Identifier), cuja interface e ligação são capazes de serem definidas, descritas e descobertas por artefatos do XML suportando interações diretas com outras aplicações de software utilizando mensagens baseadas em XML via protocolos baseados na Internet. (W3C,2007) 17

Web Service - Estabelecimento Figura 3 - Estabelecimento da primeira plataforma WS, (Erl,2004) 18

Web Service Componentes Interface (Web Services Description Language-WSDL) - descrição abstrata, contendo todas as propriedades de um WS; Mensagem (Simple Object Access Protocol- SOAP) formalização de documentos em XML usado para troca de informações entre aplicações que usam qualquer padrão web; Registro (Universal Description Discovery and Intregration- UDDI) permite a publicação de WS por provedores e a localização por consumidores. 19

Web Service Componentes Figura 4 Protocolos de Comunicação de Web Services(Zavalik, et.al., 2004) 20

Web Service Componentes Figura 5 Processo geral de um WS (W3C,2007) 21

Web Services Componentes SOA Figura 7 -Modelo Teórico da SOA para WS (Erl,2004) 22

Web Services Componentes Tecnológicos WS-I Fundação de especificações e padrões diferentes mas cooperantes. As especificações de software que compõe o WS são: HTTP/1.1; RFC 2965: HTTP State Management Mechanism(cookies); XML 1.0 (segunda edição); XML Schemas; SOAP 1.1 e 1.2 ; WSDL 1.1 e 2.0; UDDI 2.0 e 3.0. 23

Web Services Interações entre Componentes WS de correção de CEP Documento WSDL Registro UDDI da Microsoft Registra Requisição SOAP Apache Axis Chamada de função Apache Tomcat Resposta SOAP Corpo SOAP Dispatcher MSG Duplicação UDDI Pacote SOAP Baixa o WSDL Resposta SOAP em HTTP Registro UDDI da IBM Consulta Descobre Computador Cliente Parser SOAP Programa em PHP GUI Sistema de correção CEP (Java) Retorno de função 24

Web Service - Arquitetura Figura 6 Arquitetura dos Web Services (Dall Oglio, 2003) 25

Web Service Controle das Especificações W3C Responde pelas especificações do SOAP, WSDL,XML, XML Schema e HTTP e, o documento WS- Architecture; OASIS Controla as especificações de UDDI, WS- Security; WS-I licenciada para promover interoperabilidade de WS com plataformas, SO e linguagens de programação. 26

Web Services Fundamentos de comunicação Os WS se comunicam utilizando a pilha de protocolos TCP/IP, fazendo um handshake HTTP; Qualquer protocolo de aplicação poderia ser usado para comunicação entres as aplicações (HTTP,SMTP,FTP); 27

Web Services SOAP Conceito Descreve um padrão de especificação de mensagens em XML; É um formato de mensagem que permite que, um documento com dados ou com chamadas de métodos, sejam enviadas, em um formato XML, de um computador para outro. (W3C,2007) 28

Web Services SOAP Funcionamento Programa cliente A Camada do documento SOAP-Processador SOAP Camada do documento XML-Parser Camada do documento de caractere-apache Camada HTTP - Internet Programa do provedor de serviço - B Camada do doc. SOAP-Processador Camada do documento XML-Parser Camada do documento de caractere Apache Figura 9 - Funcionamento do SOAP 29

Web Services SOAP Gramática Envelope SOAP Cabeçalho SOAP Corpo SOAP Figura 10 - Gramática SOAP 30

Web Services SOAP Gramática <SOAP-ENV:envelope> <! Elemento raiz do SOAP e define que essa é uma mensagem SOAP--> <SOAP-ENV:header> <! Descreve informações especificas como autenticação (opcional)--> </SOAP-ENV:header> <SOAP-ENV:body> <! O elemento BODY contém o corpo da mensagem--> <SOAP-ENV:fault> <! O elemento FAULT contém os erros que podem ocorrer--> </SOAP-ENV:fault> </SOAP-ENV:body> </SOAP-ENV:envelope> 31

Web Services SOAP Gramática -ENV <SOAP-ENV:Envelope xmlns:soap- ENV= http://schemas.xmlsoap.org/soap/envelope/ <!--Versão do SOAP!> SOAP-ENV:encodingStyle= http://schemas.xmlsoap.org/soap/encoding/ > <! Como as informações devem ser codificadas!> <xsd:schema xmlns:xsd= http://wwm.w3.org/2001/xmlschema xmlns:xsi= http://www.w3.org/2001/xmlschema-instance > </SOAP-ENV:Envelope> 32

Web Services SOAP Gramática - Corpo <SOAP-ENV:Body> <!--Payload da mensagem!> <checkaccountbalance> <!--método a ser chamado(rpc)!> <accountnumber xsi:type= xsd:int >123456780</accountNumber> <!-- parâmetro enviado com o método!> </checkaccountbalance> <SOAP-ENV:faultstring> <! faultcode faultactor detail!> <! Este código será gerado no servidor como faultstring!> </SOAP-ENV:faultstring> </SOAP-ENV:Body> Equivalente em java : int balance = checkaccountbalance(123456780) Equivalente em php: $balance=checkaccountbalance(123456780) Fault:presente apenas nas respostas e 1x por msg. 33

Web Services SOAP Gramática - Header <SOAP-ENV:Header> <myns:authentication xmlns:myns= http://www.stevepotts.com/auth SOAP-ENV:mustUndestand= 1 > <SOAP-ENV:actor= http://www.stevepotts.com/auth > <loginid> admin </loginid> <password>rover</password> </SOAP-ENV:actor> </myns:authentication> </SOAP-ENV:Header> myns: authentication = sem significado padrão mustundestand= 1 gera erro se o parceiro não processa campos no header Actor:especifica quem deve processar o cabeçalho Header não suporta sessão, transação ou autenticação. 34

Web Services-WSDL(Webservices Description Language) Especificação em nível abstrato para uma infra-estrutura de computação distribuída baseada em XML.(ERL,2004) Proporciona um fácil entendimento, por ser metadados; Possibilita que se descubra qual serviço está sendo disponibilizado pelo WS (esquema), assim como, se o WS satisfaz um cliente; Descreve a interface do requisitor e do requerente e a localização dos serviços disponíveis; Descreve a instância de dados na resposta SOAP; 35

Web Services - WSDL WSDL basicamente é usado para localizar, vincular e publicar o ws (operações básicas do wsdl). Diretório de ws WSDL via SOAP Provedor de ws WSDL via SOAP WSDL via SOAP Consumidor de ws (cliente) Figura 11 USO do WSDL 36

Web Services WSDL Divisão lógica Descrições abstratas (funcionais) são elementos orientados a descrever as capacidades do ws (funcionalidades). Abstrata Servidor=funcionalidades do WS Descrições concretas(físicas) são elementos que vinculam, fisicamente, o cliente ao serviço (conexão física); Concreta=Cliente Servidor 37

Web Services WSDL-Elementos XML Abstratos <wsdl:types> declaração de tipos do wsdl <wsdl:operation> chamada de método/função/sub-rotina <wsdl:message> comunicação simplex(request/replay) <wsdl:porttype> porta de contato do ws para clientes 38

Web Services WSDL-Elementos XML Abstratos Instância de Customer <customer> <customerid>1001</customer> <nome>cinara</nome> <sobrenome>menegazzo</sobrenome> <endereco>avelino Marcante </endereco> <numero>joinville</numero> <cidade>joinville</cidade> <pais>brazil</pais> </customer> 39

Web Services WSDL-Elementos XML Abstratos <wsdl types> <wsdl:part name= endereco type= xsd:string /> <wsdl:part name= numero type= xsd:int /> </wsdl types> 40

Web Services wsdl:operation (1/3) Uma operação pode ter apenas três mensagens e uma mensagem pode ter apenas uma entrada e uma saída; Mensagem de entrada (input) define os dados que o WS/cliente espera receber; Mensagem de saída (output) define os dados que o WS/cliente espera enviar em resposta; Mensagem de falha (fault) Define as mensagens de erro que podem ser retornadas pelo WS; Semelhante à: Método em Java ou sub-rotina em Visual Basic ou função em 41 PHP

Web Services wsdl:operation (2/3) Tipos de operações que podem ser declaradas em um documento WSDL: Requisição Resposta cliente WS Solicitação Resposta WS cliente Sentido único um cliente envia uma mensagem ao WS mas não espera uma resposta. Notificação o servidor WS envia uma notificação ao cliente 42

Web Services wsdl:operation (3/3) Requisição/Resposta <wsdl: operation name= createnewcustomer > <wsdl:input message= addcustomer > <wsdl:output message= confirmation > <wsdl:fault message= exceptionmessage > <wsdl:/operation> 43

Web Services WSDL-Elementos XML Abstratos Mensagem do cliente WS <wsdl: message name= addcustomer > <wsdl: part name= customerinfo element= tns:customer /> <wsdl:/message> Mensagem do WS cliente (sucesso) <wsdl: message name= confirmation > <wsdl: part name= response element= xsd:integer /> <wsdl:/message> Mensagem do WS cliente (falha) <wsdl: message name= exceptionmessage > <wsdl: part name= badresult element= xsd:integer /> <wsdl:/message> 44

Web Services WSDL-Elementos XML Abstratos <wsdl:porttype> agrupamento de operações (conteiner) que o ws disponibiliza <wsdl:porttype name= newcustomerporttype > <wsdl: operation name= createnewcustomer > <wsdl:input message= addcustomer > <wsdl:output message= confirmation > <wsdl:fault message= exceptionmessage > <wsdl:/operation> </wsdl:porttype> 45

Web Services - WSDL-Elementos XML concretos <wsdl:binding> <wsdl:port> Vínculo entre abstrato e concreto Contêiner de informações (protocolo (http) e estilo da requisição(rpc) ) Localização da informação <wsdl:service> Contêiner para todas as portas 46

Web Services - WSDL-Elementos XML concretos <wsdl:binding> O elemento binding mapeia os elementos operation em um elemento porttype, para um protocolo especifico. Ele associa o elemento porttype ao protocolo SOAP, utilizando-se de um elemento de extensão SOAP chamado <wsdlsoap:binding>, através de dois parâmentos: protocolo de transporte e o estilo da requisição (rpc ou document). 47

Web Services - WSDL-Elementos XML concretos <binding name= newcustomerbinding" type= newcostumerporttype"> <! type= tns: newcostumerporttype!> <soap:binding style="rpc" <! style= document!> transport="http://schemas.xmlsoap.org/soap/http" /> <wsdl:porttype name= newcustomerporttype > <wsdl: operation name= createnewcustomer > <wsdl:input message= addcustomer > <wsdl:output message= confirmation > <wsdl:fault message= exceptionmessage > <wsdl:/operation> </wsdl:porttype> </binding> 48

Web Services - WSDL-Elementos XML concretos <wsdl:port> - localização do serviço (IP, porta) <wsdl:port binding= newcustomerbinding name= newcustomerport"> <wsdl:soap:address location="http://localhost/imasters2/nusoap/server2. php" /> </wsdl:port> 49

Web Services - WSDL-Elementos XML concretos <wsdl:service> - contêiner de portas do ws físico <wsdl:service name= newcustomerservice > <wsdl:port binding= newcustomerbinding name= newcustomerport"> <wsdl:soap:address location="http://localhost/imasters2/nusoap/server2. php" /> </wsdl:port>... <wsdl:port> </wsdl:port> </wsdl:service> 50

Web Services - WSDL-Elementos XML <wsdl:definitions> - elemento raiz do wsdl (especifica ns) <definitions xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/xmlschema" xmlns:xsi="http://www.w3.org/ 2001/XMLSchema-instance" xmlns:soap- ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:tns="urn:meuserver.hello" xmlns:soap="http://schemas.xmlsoap.org/wsdl/ soap/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns="http://schemas.xmlsoap.org/wsdl/" targetnamespace="urn:meuserver.hello"> <types> <! São declarações!> xsd:schema targetnamespace="urn:meuserver.hello"> <xsd:import namespace="http://schemas.xmlsoap.org/soap/encoding/" /> <xsd:import namespace="http://schemas.xmlsoap.org/wsdl/" /> </xsd:schema> </types> <! Aqui viria os outros elementos!> </definitions> 51

Web Services - WSDL-Elementos XML Figura 12 - Elementos WSDL (Erl,2004) 52

Web Services - UDDI Registro universal de serviços na web que permite publicar e obter serviços; Caixeiro viajante X Banco de dados de serviço X Google. UDDI=Propaganda complexa; 53

Web Services - UDDI Mecanismo padronizado e transparente para descrever serviços; Descreve métodos simples para solicitar serviços; Especifica um registro central dos serviços acessível; Uma coleção duplicada de WS; 54

Web Services UDDI - Arquitetura Páginas brancas contém informações sobre o fornecedor, como nome e telefone, legíveis à humanos. Páginas amarelas classificações taxonômicas como categorização interna (projeto,serviço) ou externa (comparações de entradas com listas de entradas válidas); Páginas verdes- como programar para um solicitante se transformar em um cliente do serviço (dicionário de dados do serviço); 55

Web Services UDDI - Arquitetura UBR - UDDI Business Registry Figura 14 Diagrama de integração dos registros UDDI v 3.0 (Reckziegel,2006) 56

Web Services - UDDI Registro UDDI <businessentity> <bussinessservice> <bindingtemplate> TModel Figura 13-Estrutura de publicação UDDI (Adaptado de Schoroeder,2004) 57

Web Services UDDI - Exemplo <businessentity businesskey= uddi:c0e6d5a8-c446-4f01-99da-70e212685a40 operator= http:www.ibm.comauthorizedname= John DOE > <name>cia do Oi</name> <description>descriçao do WS</description> <contacts> <contact usetype= general info > <description> Informações gerais de contato,categoria e serviços oferecidos</ description> <personname>cinara</personname> <fone>0123-45-67</fone> <email>cinara@udesc.br</email> </contact </contacts> <businessservice servicekey= uddi:f580e6aba8-25ae- EEDD1-558A-340E212546B96 businesskey= uddi:c0e6d5a8- C446-4f01-99DA-70E212685A40 <name>sirvo para descrever o servico</name> <description>indico as categorias de serviço deste ws</description> <identifierbag> <keyedreference TModelKey="UUID:8609D82E-FE1F- 4E5B-B203"name="D-U-N-S" value="123456"/> </identifierbag> <categorybag> <keyedreference TModelKey="UUID:C0C9FEF3-173F-414D- 8A2B-5BB2 name="naics" value="112343" /> 58 </categorybag>

Web Services UDDI- Exemplo continuação <bindingtemplates servicekey=uddi: F580E6ABA8-25AE- EEDD1-558A-340E212546B96 businesskey= uddi:125cc7-0.c446-4f01-99da-70e212685a40 bindingkey=uddi:1425aac0-256ª-4455-78ff-1452ac45200 > <description> Detalhes técnicos do serviço, interface ou API</description> <accesspoint URLType= http://localhost:8080</accesspoint> <tmodelinstancedetails> <TModelInstanceInfo TModelKey= uddi:eb1b645f-cf2f- 4868705F5904 > <instancedetails> <overviewdoc> <description>descrição abstrata do WS, como categoria, serviço</description> </overviewdoc> </instancedetails> </TModelInstanceInfo </TModelInstanceDetails> </bindingtemplate> </businessservice> 59

Web Services - UDDI A pesquisa pode ser por serviço ou fornecedor; Comunicação via SOAP; Após localizado o serviço são obtidas informações como: URI, nome dos métodos e tipos de argumentos 60

Web Services UDDI Tipos de Descoberta Descoberta em tempo de projeto Mais programação, quase manual; Descoberta em tempo de execução Automatizado, através de uma especificação de GUI; Descoberta= bindingtemplate + tmodel 61

Web Service Exemplos de Projetos Sistema de relatórios de conglomerado Empresa XYZ Site de comércio eletrônico Cameras.com 62

Web Service Exemplo XYZ Análise básica O volume de dados é relativamente pequeno; A distância geográfica torna a Internet atraente; Cada empresa usa uma arquitetura de desenvolvimento de sistemas; Para casos de novas aquisições de empresas há a necessidade de integração rápida; HTTP no firewall é contornável; 63

Web Service Exemplo XYZ Projetando logicamente a solução, sem formalismos (WS- Architecture) Definir o servidor e os clientes; Decidir sobre primitivas de transmissão; Requisição/resposta = cliente servidor Solicitação/resposta = servidor cliente Sentido único = cliente servidor (no wait) W S D L Começar a transmissão por quem deseja os resultados 1:N Servidor:Cliente 64

Web Service Exemplo XYZ Projetando logicamente a solução Planejando as mensagens; Se o servidor está na matriz Então solicitação/reposta»então servidor cliente W S D L Mensagens Servidor O relatório está pronto para ser enviado? Por favor, envie-o. Cliente Sim/Não. Aqui está ele. 65

Web Service Exemplo XYZ Criando o projeto (programação) Escrever o documento WSDL/software servidor(manual ou autom.); WSDL deve ser conhecido por todos os clientes (guia); Testar o cliente respondendo ao servidor; Testar os dados enviados por todos os clientes. 66

Web Service Exemplo XYZ Servidor de WS Corporativo Cliente de Web service da empresa A Cliente de Web service da empresa A Cliente de Web service da empresa A Cliente de Web service da empresa A Sistema de contabilidade da Empresa A Sistema de contabilidade da Empresa Sistema Ade contabilidade da Empresa Sistema Ade contabilidade da Empresa A Relatório em nível da corporação Nível Gerencial da Corporação 67

Web Service Exemplo Cameras.com Análise básica Vários nós: Site da Cameras.com trabalha com cartão de crédito; Usa um servidor de cartão de crédito; Poderão haver centenas de sites de atacadistas com seus estoques publicados como WS; Envolve descoberta e a interconexão de clientes a WS ou de WS a WS, sem intervenção humana; Relacionamento comercial de partes desconhecidas; As plataformas de desenvolvimento das partes são desconhecidas; Posições geográficas desconhecidas; HTTP no firewall é contornável. 68

Web Service Exemplo Cameras.com Projeto lógico da solução Definir servidores e clientes; Se atacadistas de câmeras tem seus WS Então os servidores já existem Se cameras.com tem seu site Então cameras.com será cliente Decidir sobre primitivas de transmissão; Cameras.com deseja os resultados Então requisição/resposta (c s) Site web (cliente) WS dos atacadistas (servidores) Começar a transmissão por quem deseja os resultados 69

Web Service Exemplo Cameras.com Projetando logicamente a solução Planejando as mensagens; Se site web é o cliente Então mensagens serão enviadas aos atacadistas Mensagens Cliente requisita ao WS atacadista W S D L Quantas câmeras do modelo XXX estão disponíveis? Qual o preço da câmera de modelo número XXX? Por favor envie um câmera do modelo XXX para o endereço YYY. Por favor, envie a lista de preços atual. 70

Web Service Exemplo Cameras.com Projetando logicamente a solução W S D L Servidor atacadista responde Nós temos n câmeras do modelo número XXX. A câmera de modelo XXX custa ZZZ. Confirmação de que n câmeras do modelo XXX foram enviadas ao endereço YYY Aqui está a lista de preços atuais Mensagem de erro indicando fim de estoque para a câmera XXX 71

Web Service Exemplo Cameras.com Projetando logicamente a solução W S D L Cliente requisita ao WS da operadora cartão Uma compra de $$$$ no cartão de crédito número 112233 é aprovada? Servidor da operadora responde Uma compra de $$$$ no cartão de crédito número 112233 está aprovada/não está aprovada. O cartão de crédito 112233 é desconhecido. 72

Web Service Exemplo Cameras.com Criando o projeto (programação) Descobrir atacadistas com capacidade de WS (UDDI); Encontrando o WS encontra-se seu WSDL que deve ser armazenado; Escrever o software do site cliente para ser um cliente dos WS atacadistas para: obter preços e enviar pedidos; Descoberta dinâmica e configuração de novos atacadistas no site da Cameras.com (+ complicado); Escrever o software capaz de ser cliente do WS da operadora; Escrever as telas do site web(site cliente) (jsp,asp,html,php); Testar o sistema quando tudo finalizado. Vantagem criação de sites mais dinâmicso 73

Web Service Peculiaridades de Projeto Ao se projetar um WS deve-se considerar: Desempenho considerar a latência da Internet;sistemas que o tempo é vital não são bons candidatos Rollback não existente; Execução do processo comercial inexistência de lógica if... then...else; Segurança sofisticada SSL, UDDI 3.0 (WS-S) Sobrecarga para tratamento de documentos XML; Tratamento de transações; 74

Web Service Vantagens Integrar sistemas legados; Diminuir custos operacionais Diminuir custos de desenvolvimento de software; Diminuir distâncias geográficas; Desenvolver sistemas rapidamente; Agir como interface com os consumidores; Cada cliente pode utilizar sua plataforma de desenvolvimento; Qualquer cliente pode, conhecendo o WSDL comunicar-se; Integrar-se com parceiros comerciais externos; Gerar novos rendimentos; Suportar novos modelos empresariais. 75

Web Services Diferenças das Tecnologia Integrar aplicações; (não é a primeira tentativa) Foco na disponibilidade dos dados e não das informações; Suporte a transações síncronas(rpc) e assíncronas; Uso de esquemas XML para transação; São essencialmente interoperáveis; Cooperação entre todos os fornecedores de software; Qualquer um pode controlar a direção da tecnologia. 76

Referências Bibliográficas ERL, Thomas. Service-Oriented Architecture. A Field Guide to Integrating XML and Web Services. Prentice Hall. New Jersey, 2004. MINISTÉRIO DO PLANEJAMENTO, ORÇAMENTO E GESTÃO.e-PING: Padrões de Interoperabilidade de Governo Eletrônico.Disponível em:www.eping.e.gov.br Acesso em 9 de dezembro de 2007. NEWCOMER, E., LOMOW,G.. Understanding SAO with Web Services. Addison Wesley Professional.December, 2004. TIDWELL, D.,SNELL,J., KULCHENKO, P.. Programming Web Services with SOAP. O Reilly. First Edition.December,2001. XML, artigos (Copyright OASIS Open 2005) Disponível em :http://www.xml.org Acesso em dezembro de 2007. Web Services W3C (Copyright 1996-2003 W3C ) Disponível em http://www.w3c.org/xml. Acesso em novembro de 2006. W3C. World Wide Web Consortium. Disponível em: <http://www.w3.org/>. Acesso em: 01/09/2007. WS-I. Web Services Interoperability Organization. Disponível em: <http://www.ws-1.org>. Acesso em: 01/09/2007 77