wsdl e uddi

49
WDSL/UDDI Universidade Federal do Pará Instituto de Ciências Exatas e Naturais Faculdade de Computação Disciplina: Sistemas Distribuídos Equipe: Alexandre Monassa Anderson Bandeira Raphael Brito

Upload: alexandre-monassa-moreira

Post on 19-Jun-2015

643 views

Category:

Technology


1 download

DESCRIPTION

Sobre webServices e demais serviços relacionados

TRANSCRIPT

  • 1. WDSL/UDDI Universidade Federal do Par Instituto de Cincias Exatas e Naturais Faculdade de Computao Disciplina: Sistemas Distribudos Equipe: Alexandre Monassa Anderson Bandeira Raphael Brito

2. Agenda Viso geral de WebServices WSDL UDDI 3. Introduo a Web Services Web Service uma soluo utilizada na integrao de sistemas e na comunicao entre aplicaes diferentes. Os Web Services so componentes que permitem s aplicaes enviar e receber dados em formato XML. Cada aplicao pode ter a sua prpria "linguagem", que traduzida para uma linguagem universal, o formato XML. (Wikipdia) 4. Introduo a Web Services Descreve uma coleo de operaces; So acessados Remotamente; Usa padro de mensagens XML; Ele descreve todos os detalhes para interagir com o servio: Mensagens formatadas; Protocolo de transporte e local; Independncia de hardware ou software; Independncia de linguagens de programao; 5. Lingaguem Universal, de Marcao WSDL Web Services Definition Language; Baseado na linguagem XML para descrever uma interface de servio web; Usa tambm SOAP para prover Web Services na internet; Atualmente est na verso 2.0; Apresentaremos somente a verso 2.0; Responde a todas as requisies HTTP (GET e POST); O WSDL define os servios como uma coleo de ns (endpoints) de rede capazes de trocar mensagens; Protocolo de troca de informaes estruturadas em um Web Service 6. Introduo a Web Services Outras propriedades que os Web Services podem ter: Um web service pode ser auto-descrito. Seu servio inclui documentao capaz de ser lida por humanos e facilmente integravel a outros servios. A Gramtica XML pode ser usada para identificar todos os mtodos pblicos, argumentos de mtodos, e valores de retorno; Um web service pode ser descoberto. Quanto um Web Service criado ele pode ser publicado, e mecanismos de pesquisa podem localiz-lo e descobrir sua interface pblica. 7. Exemplo de Web Service na internet A Amazon.com possui um web Service com outros parceiros como empresas de entrega; Um cliente que comprou um item sabe o Status do produto (se j saiu ou est em que parte do transporte); Assim quando um parceiro publica uma informao atualizada contendo a mensagem Em transporte, cidade So Paulo, tempo at Belm 2 dias, o cliente pode receber esta informao diretamente do Amazon.com; 8. WSDL Defini mensagens e portas abstratas; Implementa essas mensagens e portas; A definio abstrata de mensagens e portas esto separadas de suas implementaes (semelhante ao IDL do Corba); Uma porta um endereo de rede com um nome qualificador reusvel pelo Web Service; Uma coleao de portas define o servio; 9. WSDL Mensagens so descries abstratas dos dados que sero trocados; O reuso de portas feito pelas especificaes de dados e os protocolos concretos; As portas e as mensagens so ligadas a um determinado protocolo e formato de mensagens; Dessa forma o WSDL descreve a interface pblica do Web Service; 10. WSDL Assim um Cliente que se conecta ao Web Service poder enxergar as operaes que esto disponveis no servidor; Os tipos de dados no WSDL esto no formato XML; O Cliente faz as chamadas para as operaes atravs do SOAP; 11. Ilustrao do WSDL 12. WSDL Fonte: http://en.wikipedia.org/wiki/Web_Services_Description_Language Binding se refere ao processo de associar um protocolo ou formato de dado com uma entidade abstrata (mensagem, operao ou portType); 13. Elementos do WSDL espao de nomes de destino estilo de documento abstrato estilo requisio- resposta como ond e types message interface bindings services definitions concreto (Coulouris, 2007) 14. WSDL O WSDL Contm os seguintes elementos de marcao: Type portType; Message; Operation; Bind; Service; Port; 15. Elementos do WSDL Types: Descreve dados que so usados para descrever mensagens; ... Port: Endereo ou ponto de conexo do web Service 16. Message: Uma mensagem corresponde a uma operao. A mensagem contm a informao necessria para a performance da operao. portType:Define um webService, a operao que ser utilizada e as mensagens que sero usadas para rodar a operao; ... ... Operaes: So mtodos ou chamadas de funes assim como em Orientao a objetos; Elementos do WSDL 17. Binding: Define a interface de transporte e estilo, assim como as operaes; Port : Especifica um endereo para uma ligao, definindo ento um endpoint nico. Parte concreta do WSDL Service: Container de um conjunto de funes. Parte concreta do WSDL; Elementos do WSDL 18. Estrutura Estrutura principal do documento WSDL definio de tipos........ definio de mensagens.... definio de porta definiao de binding (associao entre nome/endereo).... 19. Tipos de operao Tipo Definio One-Way A operao pode receber uma mensagem mas no retornar uma resposta Request-response A operao pode receber uma requisio e retornar uma resposta Solicit-response A operao pode enviar uma requisio e esperar por uma resposta Notification A operao pode enviar uma mensagem mas no esperar por uma resposta 20. Operao One-Way Exemplo: A porta glossaryterms define uma operao one-way chamada setTerm; SetTerm permite somente entrada de um novo termo de glossario , usando a mensagem newTermValue 21. Operao Request-Response Exemplo A Porta GlossaryTerms define uma operao Request-Response chamada getTerm; A operao getTerm requer um entrada chamada getTermRequest com o parmetro chamado term, e retornar, uma sada chamada getResponseTermResponse com o parmetro chamado valor 22. Operao Solicit-Reponse Exemplo * * A sada e a entrada esto invertidos como aparece no Request-response; 23. Operao Notification Exemplo * O elemento output significa que somente uma notificao ser enviada ao cliente; 24. Padres Troca de Mensagem para Operaes WSDL (Coulouris, 2007) 25. Exemplo de cdigo Tag de definio que diz que esta um framework wsdl, o targetnamespace aponta para a URI do servio; A tag message, representa uma definio abstrata do dado sendo transmitido. Uma mensagem consiste de partes lgicas, cada uma associada com uma definio. A tag part define a lgica abstrata do contedo da mensagem. A tag portType defini um conjunto abstrato de operaes. Cada operao refere-se a uma mensagem de entrada e uma mensagem de sada. 26. Exemplo de cdigo Operao request-response (input/output); A tag binding define um protocol concreto e uma especificao de formato de dados para a operaes e mensagens definidas por um portType. Neste caso, a tag type refere-se servico 27. Exemplo de cdigo A tag Service define um conjunto de portas usadas A Tag define um endereo para o servio; 28. Exemplo Prtico Escolhemos o servidor Web Apache verso 5.5 para windows O Web Service Apache Axis Para suportar os webservices A pasta de publicao no windows a webapps/axis Existem dois cdigos o Servidor e o cliente; O servidor executa as operaes de soma, multificao, diviso, subtrao; O Cliente envia a requisio com o pedido de clculo contendo os parametros do servidor (nmeros e a operao em si). 29. Exemplo Prtico Servidor : public class Servico { public int soma(int valor1, int valor2) { return valor1 + valor2; } public int subtracao(int valor1, int valor2) { return valor1-valor2; } public int multiplicacao(int valor1, int valor2) { return valor1*valor2; } public float divisao(int valor1, int valor2) { return valor1/valor2; } }//fim de classe 30. Cliente import org.apache.axis.client.Service; import org.apache.axis.client.Call; public class Cliente { public static void main(String[] args) throws Exception { // Endereo, local onde encontra-se o Web Service String local = "http://localhost:8080/axis/Servico.jws"; // Criando e configurando o servio Call call = (Call) new Service().createCall(); // Configurando o endereo. call.setTargetEndpointAddress(local); // Marcando o mtodo a ser chamado. call.setOperationName("soma"); // Parmetros da funo. Object[] param = new Object[]{new Integer(2),new Integer(4)}; // Retorno da Funo int ret = (Integer)call.invoke(param); // Imprime o resultado: . System.out.println("Resultado soma : " + ret); Uso da Biblioteca apache.axis 31. Cliente call.setOperationName("subtracao"); // Parmetros da funo. param = new Object[]{new Integer(2),new Integer(4)}; // Retorno da Funo ret = (Integer)call.invoke(param); // Imprime o resultado: . System.out.println("Resultado subtracao: " + ret); call.setOperationName("multiplicacao" ); param = new Object[]{new Integer(2),new Integer(4)}; // Retorno da Funo ret = (Integer)call.invoke(param); // Imprime o resultado: . System.out.println("Resultado multiplicao: " + ret); } } 32. Resultado 33. UDDI "Um componente importante da arquitetura de servios Web formado por um servio de diretrio que armazena descries de servios. Esse servio obedece ao padro integrao, descoberta e descrio universal (Universal Description, Discovery and Integration - UDDI). Como seu nome sugere, o UDDI prescreve o layout de um banco de dados que contm descries de servios. Estas permitiro a clientes de servios Web procurar servios relevantes." (Tanenbaum, 2007) 34. UDDI Universal Description, Discovery and Integration Atualmente est na verso 2; um protocolo que especifica um mtodo para publicar e descobrir diretrios de servios em uma arquitetura orientada a servios (SOA). Um servio de registro UDDI um WebService que gerencia informao sobre provedores, implementaes e metadados de servios. Provedores de servios podem utilizar UDDI para publicar os servios que eles oferecem. Usurios de servios podem usar UDDI para descobrir servios que lhes interessem e obter os metadados necessrios para utilizar esses servios. 35. UDDI A especificao UDDI define: APIs SOAP utilizadas para publicar e obter informaes de um registro UDDI Esquemas XML do modelo de dados do registro e do formato das mensagens SOAP Definies WSDL; 36. UDDI Trs componentes de Registro: Yellon Pages, White Pages, Green pages. Pginas Brancas: Incluem informao geral sobre uma empresa especfica, como por exemplo, nome de um negcio, descrio do negcio, informao de contato, endereo, nmeros de telefone, fax, ou mesmo incluir identificadores de negcios (business identifiers). Por exemplo, 7371 representa Servios de Programao de Computadores e 2621 representa Paper Mills. Pginas Amarelas: Essas incluem dados de classificao geral para qualquer empresa ou servio oferecido. Por exemplo, esses dados podem incluir a indstria, o produto, ou cdigos geogrficos 37. UDDI Pginas Verdes: so usadas para indicar os servios oferecidos por cada negcio, incluindo todas as informaes tcnicas envolvidas na interao com o servio. explica como fazer a comunicao com eles. Geralmente, essa informao inclui um apontador (ponteiro) para uma especificao externa e um endereo para invocar o servio. UDDI no restrito a descobrir servios baseados em SOAP. Ao contrrio, pode ser usado tambm, para descrever qualquer servio, desde uma nica pgina Web ou endereos de email, at servios CORBA, Java RMI, ou mesmo, servios EJB 38. UDDI Clientes podem usar as pginas amarelas para procurar uma categoria particular de servios tais como agncias de viagens e livrarias; Ou eles podem usar as pginas brancas para procurar um servio com referncia para a organizao que prov ele; 39. Arquitetura UDDI UDDI Data Model: Um Esquema XML para descrio de negcios e servios web. UDDI API: uma API baseada em SOAP para pesquisa e publicao de dados UDDI. UDDI cloud services: uma implementao operacional completa da especificao UDDI. Tal parte habilita qualquer um a buscar dados UDDI existentes, e tambm, a qualquer empresa registrar-se a si prpria e seus respectivos servios 40. Estrutura de dados (data Models) bussinessEntity Informaes de alto nvel, capazes de serem lidas por seres humanos sobre o publicador bussinessService s Informaes de alto nvel, capazes de serem lidas por seres humanos sobre a famlia de servios bindingTemplate Informaes sobre a interface de servio tModel Descrio do servio UR L 41. Estrutura de dados bussinessEntity: Descreve a organizao que fornece os servios, mostrando nome, endereo e atividades; BussinessServices: Armazena informaes sobre um conjunto de instncias e referncias para descrio de servios; BindingTemplate: Armazena os endereos dos webservices e as referencias para as descries do servio; tModel: Mantm descrio de servios, geralmente documentos WSDL, localizados for a da base de dados e acessados via URLs; 42. Processo de Descoberta (Discovery) O processo de localizar servios na Web atravs de registries. Registries de servios na Web so repositrios contendo documentos que descrevem dados de negcios. Registries, tambm, proporcionam caractersticas tais como, capacidade de busca e acesso programtico para aplicaes remotas 43. Discovery Usando um registry, uma organizao que deseja utilizar, um servio para processar pagamentos de tickets de alimentao, pode localizar todos os servios disponveis publicamente, que proporcionam a necessria funcionalidade; A organizao pode comparar servios e ento tomar a deciso, de qual servio, melhor se ajusta s necessidades da organizao. 44. Discovery Discovery pode ser caracterizado em Discovery direto ou Discovery indireto Discovery direto o processo de obter dados a partir de um registry mantido por um provedor de servio. Dados obtidos por Discovery direto so mais precisos e, portanto, confiveis, visto que a organizao que prov a informao tambm opera o servio na Web. Com discovery indireto, uma organizao obtm dados atravs de uma terceiro registry, cujos dados podem no ser precisos, porque provedores de servio poderiam no atualizar informao nesse registry to freqentemente. 45. UDDI API API para publicao e pesquisa de dados; Para pesquisas h dois tipos de classificao: API find e API get; A API find usado para reter uma lista de referencias para dados UDDI usando uma critrio de busca; A API get usada para retornar o atual contedo da entidade de dado; 46. UDDI API A tabela a seguir resume os mtodos de pesquisa UDDIFind API Get API find_binding: localiza um binding dentro de um registro bussinessService get_bindingDetail: retorna a informcaao de bindingTemplate find_business: Localiza informao sobre um ou mais negcios. get_businessDetail: Retorna a informao da businessEntity para uma ou mais negcios ou organizaes. find_service: localiza um servio especfico dentro de um registro bussinessEntity get_businessDetailExt: Retorna a informao extendida de businessEntity. find_tModel: retorna informao completa do bussinessEntity; get_serviceDetail: Retorna o detalhes completo para um dado conjunto de registros de dados do businessService data. 47. Publicao UDDI fornece uma interface para publicar e atualizar informaes sobre servios; Na primeira vez que o servio publicado no servidor UDDI, Uma chave usada para identific-lo; Pode-se criar, atualizar e deletar os registros UDDI j publicados ; Assim a qualquer momento as entradas businessEntity, businessService, bindingTemplate, tModel, podem ser alteradas. 48. Bibliografia COULOURIS, G. , DOLLIMORE, J., KINDBERG, T. Sistemas Distribudos - Conceitos e Projeto. 4 ed - So Paulo: Bookman, 2007. TANENBAUM, Andrew S. Sistemas Distribudos: princpios e paradigmas. 2 ed - So Paulo: Pearson Prentice Hall, 2007. 334p. http://www.w3.org/TR/wsd Building Web Services with Java; Web Services Essential; http://pt.wikipedia.org/wiki/Web_service http://uddi.org/pubs/ProgrammersAPI-V2. 04-Published-20020719.htm 49. OBRIGADO!!