Web Services A Web service is a software system designed to support interoperable machine-to-machine interaction over a network. It has an interface described.

Slides:



Advertisements
Apresentações semelhantes
Desenvolvimento de Sistemas Distribuídos Web Services
Advertisements

Web Services aplicado à Computação em Grade
Novas Arquitecturas baseadas em Web Services
Sistemas Distribuídos Baseados na Web
Segurança na .NET Framework
Vamos contar D U De 10 até 69 Professor Vaz Nunes 1999 (Ovar-Portugal). Nenhuns direitos reservados, excepto para fins comerciais. Por favor, não coloque.
Introdução à Arquitectura de aplicações para a Web
Tipos de Sites Web gerados pelo VS2005
Criar uma Aplicação Web em ASP.NET v Tipos de Sites Web gerados pelo VS2005 File-system Web sites Ficheiros armazenados num directório local É utilizado.
Web Services Um Web Service é um bloco de software que pode ser acedido pela Internet e usado remotamente por outras aplicações Infra-estrutura para a.
Operadores e Funções do LINGO
Consumindo e Criando Web Services SOAP em .Net
Web Services 1º Semestre 2010 > PUCPR > BSI Bruno C. de Paula.
BD em.NET: Passo a passo conexão com SQL Server 1º Semestre 2010 > PUCPR > BSI Bruno C. de Paula.
Copyright (c) 2003 by Valery Sklyarov and Iouliia Skliarova: DETUA, IEETA, Aveiro University, Portugal.
1 INQUÉRITOS PEDAGÓGICOS 2º Semestre 2003/2004 ANÁLISE GERAL DOS RESULTADOS OBTIDOS 1.Nº de RESPOSTAS ao inquérito 2003/2004 = (42,8%) 2.Comparação.
Sistemas Distribuídos Web Services
RMI-IIOP.
Introdução aos Serviços Web
Universal Description, Discovery and Integration (UDDI)
Web Services Erika Hmeljevski Estefania Borm Leonardo Malagoli
1 MODELAGEM COM A UML (UNIFIED MODELING LANGUAGE) BREVE HISTÓRICO CARACTERÍSTICAS CONCEITOS DE PROGRAMAÇÃO ORIENTADA A OBJETOS MODELAGEM DE ANÁLISE E DE.
April 05 Prof. Ismael H. F. Santos - 1 Modulo II CheckStyle Professor Ismael H F Santos –
April 05 Prof. Ismael H. F. Santos - 1 Módulo II XML Processing: XSLT, SAX e DOM Prof. Ismael H F Santos.
SOA e Web Services Aluno: Thiago Caproni Tavares
1 Comunicação Inter-Processos -> RMI -> RPC -> TCP -> UDP (Abstração de passagem de mensagem)
1 Arquitetura CORBA Repositório de Implementação Repositório de Interface cliente programa cliente proxy ORB Core ou invocação dinâmica servidor ORB Core.
Área de Desenvolvimento de Sistemas
DAS Sistemas Distribuídos para Automação Industrial
PROGRAMAÇÃO DISTRIBUÍDA EM JAVA Verão/2001
Aula 4 Nomes, Vinculações, Tipos e Escopos
Aldo Carvalho e Marcos Lubas
Classes e objetos P. O. O. Prof. Grace.
Provas de Concursos Anteriores
Sistemas Distribuídos
Rodrigo Cristiano Silva
SOA - Arquitetura Orientada a Serviços
Introdução a Arquitetura Orientada a serviços
Tópicos de Sistemas de Informação A
Desenvolvimento de Projetos e Aplicações Web
Introdução ao Desenvolvimento Web
Minicurso PHP – Parte 2 João Paulo Ribeiro jpribeiro.com
Arquitetura e Configuração do Windows Server AppFabric
Arquitecturas de extensão do servidor HTTP CGI | ISAPI : ASP, ASP.NET Programação na Internet Secção de Programação ISEL-DEETC-LEIC Luis Falcão -
Tópicos de Sistemas de Informação A
Web Services Uninorte Semana de Tecnologia da Informação
Web Services Desmistificando o pré-conceito.
Conceitos de J2EE para a WEB
RESTful Webservices Lucas Batistussi –
T. D. S. I. PARA WEB Prof. Emmanuel Nolêto. Java RMI.
Máquina de Turing Universal
Arquiteturas de Gerenciamento
Da Introdução à Prática
IIS Web Server.
RPC and Web Service André Pereira.
Gerenciamento baseado na Web
Web Services Equipe: Cláudia Brito Lyra Nunes da Silva
.NET com C#.  Conceitos e Características  Vantagens do SOAP  Descrição do WebService  Gerenciamento de Estados  UDDI  Novidades do Framework 2.0.
Integrando sistemas através de HTTP + XML. * Muitos processos manuais começam a ser realizados online. * Ferramentas desenvolvidas precisavam ser interoperáveis.
Web Services: Conceitos e Transações
Desenvolvimento de Aplicações para WEB Para inserir o logotipo da empresa neste slide No menu 'Inserir' Selecione 'Figura' Localize o arquivo com o logotipo.
WSDL Web Services Description Language. Tecnologias Relacionadas Web Services SOAP (Simple Object Access Protocol) HTTP (HyperText Markup Language) UDDI.
Web Services Marden Menezes Sharp Shooters.NET User’s Group Recife-PE11/11/2002.
1 Web Services Uma Introdução Jacques P. Sauvé DSC/UFCG 2003.
Redes de computadores: Aplicações Prof. Dr. Amine BERQIA
Pesquisa sobre o uso de Web Service Alunos:Felipe Silveira Israel Andreis Programação Distribuída e Paralela Prof. Dr. Cláudio F. R. Geyer.
YOUR LOGO Tópicos Avançados em Internet Prof. Lincoln Ferreira Dantas Sistemas de Informação UNIESP – Presidente Epitácio.
Web Services / SOA. O cenário de TI nas corporações Novas tendências batiam à porta das corporações Migraram o foco do “gerenciamento de dados” para o.
Web Services Conceitos e Tecnologias Amanda Modesto Suzanna Sandes.
Web Services Conceitos e Tecnologias Amanda Modesto Suzanna Sandes.
Transcrição da apresentação:

XML WEB Services Arquitectura de Sistemas DEI-ISEP Introdução à Orientação aos Objectos XML WEB Services Arquitectura de Sistemas DEI-ISEP (C) Paulo Sousa

Web Services A Web service is a software system designed to support interoperable machine-to-machine interaction over a network. It has an interface described in a machine-processable format (specifically WSDL). Other systems interact with the Web service in a manner prescribed by its description using SOAP messages, typically conveyed using HTTP with an XML serialization in conjunction with other Web-related standards. Fonte:http://www.w3.org/TR/2004/NOTE-ws-arch-20040211

Web Services Um cenário de utilização

Um cenário de utilização

Web Services Um Web Service é um bloco de software que pode ser acedido pela Internet e usado remotamente por outras aplicações Infra-estrutura para a comunicação entre aplicações

Web Services Antecedentes DCOM – Distributed Component Object Model CORBA -Common Object Request Broker Architecture Java RMI – Remote Method Invocation Problemas de interoperabilbidade Orientados à ligação Dependentes da plataforma

Web Services Características de um Web Service Introdução à Orientação aos Objectos Web Services Características de um Web Service Expõe funcionalidades de programação na Web - serviço São acedidos usando protocolos standard - HTTP Comunicam por meio de mensagens Usam XML para codificar as mensagens Estruturam as mensagens usando o protocolo SOAP São auto-descritivos permitindo a um cliente facilmente comunicar com o serviço - WSDL São serviços que podem ser registados e facilmente descobertos – UDDI Simple Object Access Protocol Web Services Description Language Universal Description, Discovery and Integration Independentes de plataformas, linguagens de programação e sistemas operativos (C) Paulo Sousa

Arquitectura de um Web Service Service-Oriented Architecture + Web = Web Services Fornecedor do serviço - Implementa o serviço, define as funcionalidades a desenvolver e disponibiliza o serviço na Internet. Cliente do serviço - Qualquer aplicação que usa o serviço. Faz chamada remota ao fornecedor do serviço criando uma conexão e enviando um pedido Registo do serviço - é um directório de serviços logicamente centralizado. Fornece um lugar para registar os serviços e definir mecanismo simples de publicação/descoberta desses serviços.

Web Services Arquitectura baseada em SOAP, WSDL e UDDI Fonte:Introduction to Web Services by Philippe Le Hégaret – w3c.org

Camadas de Protocolos Serviço de transporte - é responsável pelo transporte das mensagens entre aplicações. HTTP, SMTP, FTP  Mensagens XML - responsável pela codificação das mensagens num formato XML, de modo a serem facilmente interpretadas pelas aplicações. XML-RPC e SOAP   Descrição do serviço - é responsável pela descrição da interface publica do serviço, implementada através do protocolo WSDL   Descoberta do Serviço - é responsável pela centralização dos serviços, simplificando a sua publicação/descoberta - UDDI

Camadas de Protocolos

SOAP Simple Object Access Protocol

SOAP SOAP Version 1.2 (SOAP) is a lightweight protocol intended for exchanging structured information in a decentralized, distributed environment. It uses XML technologies to define an extensible messaging framework providing a message construct that can be exchanged over a variety of underlying protocols. The framework has been designed to be independent of any particular programming model and other implementation specific semantics. [SOAP Version 1.2 Part 1: Messaging Framework ] http://www.w3.org/TR/2003/REC-soap12-part1-20030624/

SOAP SOAP é um protocolo, baseado em XML, para troca de mensagens entre aplicações Define: A estrutura das mensagens Um modelo de processamento que descreve como as mensagens devem ser processadas pelo serviço.

SOAP Template de uma mensagem SOAP: <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> <soap:Header> <!-- optional --> <!-- header blocks go here... --> </soap:Header> <soap:Body> <!-- payload or Fault element goes here... --> </soap:Body> </soap:Envelope>  

SOAP <soap:Envelope> <soap:Fault> Elemento raiz de uma mensagem SOAP. Contém um Header opcional e um Body obrigatório <soap:Header> usado para codificar informação adicional da mensagem – header blocks <soap:Body> contém o conteúdo principal da mensagem a enviar e deve ser um documento XML válido. <soap:Fault> trata os erros de um modo centralizado, permitindo ao servidor comunicar ao cliente os erros encontrados no processamento da mensagem

Mensagem SOAP .Net Codificação da chamada Add(3,5) [WebMethod ] public int Add(int x, int y) {return x+y;} Codificação da chamada Add(3,5) <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> <soap:Body> <Add xmlns="http://w2kslosaw/DemoService/"> <x>3</x> <y>5</y> </Add> </soap:Body> </soap:Envelope>

Mensagem SOAP .Net Codificação da Resposta <soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> <soap:Body> <AddResponse xmlns="http://w2kslosaw/helloworld/"> <AddResult> 8 </AddResult> </AddResponse> </soap:Body> </soap:Envelope>

SOAP – Protocol Binding Para além da codificação da mensagem em SOAP é necessário definir como a mensagem será enviada. Uma da grandes vantagens do SOAP é que não está ligado a nenhum protocolo particular. As mensagens SOAP podem ser enviadas por qualquer protocolo que possa transmitir XML A especificação SOAP define apenas um “protocol binding” – enviar mensagens SOAP via HTTP POST

SOAP – Protocol Binding Exemplo de um pedido HTTP com uma mensagem SOAP: POST /losaw/dir1/demoservice.asmx HTTP/1.1 Host: w2ks Content-Type: text/xml; charset=utf-8 Content-Length: 312 SOAPAction: "http://w2kslosaw/helloworld/Add" <?xml version="1.0" encoding="utf-8"?> <soap:Envelope … xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> <soap:Body> <Add xmlns="http://w2kslosaw/helloworld/"> <x>3</x> <y>5</y> </Add> </soap:Body> </soap:Envelope> Request

SOAP – Protocol Binding Exemplo de resposta HTTP com mensagem SOAP:   HTTP/1.1 200 OK Content-Type: text/xml; charset=utf-8 Content-Length: 100  <?xml version="1.0" encoding="utf-8"?> <soap:Envelope … xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> <soap:Body> <AddResponse xmlns="http://w2kslosaw/helloworld/"> <AddResult>8</AddResult> </AddResponse> </soap:Body> </soap:Envelope> Response

Camadas de Protocolos

WSDL Web Service Description Language

WSDL WSDL is an XML format for describing network services as a set of endpoints operating on messages containing either document-oriented or procedure-oriented information. The operations and messages are described abstractly, and then bound to a concrete network protocol and message format to define an endpoint. Related concrete endpoints are combined into abstract endpoints (services). WSDL is extensible to allow description of endpoints and their messages regardless of what message formats or network protocols are used to communicate. [Web Services Description Language (WSDL) 1.1 ] http://www.w3.org/TR/2001/NOTE-wsdl-20010315

WSDL - Web Service Description Language WSDL é uma especificação para descrever um Web Service num vocabulário XML WSDL é um documento XML para descrever: A interface pública descrevendo todas as funções disponibilizadas pelo serviço A informação dos tipos de dados para as mensagens de chamada/resposta dos serviços A informação sobre o protocolo de transporte a usar A informação sobre a localização do serviço WSDL representa um contracto entre o cliente do serviço e o fornecedor do serviço

WSDL - Web Service Description Language Estrutura de um documento WSDL <definitions> é o elemento raíz do documento WSDL <types> especifica o tipo de dados usados no serviço, que serão referenciados pelas mensagens <message> especifica as mensagens do serviço <portType> especifica as <operation>( interface) do serviço <binding> especifica o formato das mensagens e um protocolo de transporte <service> especifica a localização para invocar o serviço <port> <types> Que dados? <message> Que mensagens? <portType> Que operações? <binding> Que formato e transporte? <service> Onde está o serviço? <definitions> Root

WSDL - Web Service Description Language Definitions É o elemento raíz de um documento WSDL. O atributo targetNamespace permite definir um namespace e o atributo xmlns permite referenciar outos namespaces <definitions xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:s="http://www.w3.org/2001/XMLSchema" xmlns:s0="http://w2kslosaw/addservice/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:tm="http://microsoft.com/wsdl/mime/textMatching/" xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" targetNamespace="http://w2kslosaw/addservice/" xmlns="http://schemas.xmlsoap.org/wsdl/">

WSDL - Web Service Description Language <types>  Contém declarações de tipos de dados referenciadas pelas mensagens É um Schema embebido no documento. element – Add (Chamada do serviço) <types> <s:schema elementFormDefault="qualified" targetNamespace="http://w2kslosaw/addservice/"> <s:element name="Add"> <s:complexType> <s:sequence>   <s:element minOccurs="1" maxOccurs="1" name="x" type="s:int" /> <s:element minOccurs="1" maxOccurs="1" name="y" type="s:int" />   </s:sequence>  </s:complexType>  </s:element> [WebMethod ] public int Add(int x, int y) {return x+y;} Add

WSDL <types> element – AddResponse – (tipo de dados da resposta) <s:element name="AddResponse"> <s:complexType> <s:sequence>   <s:element minOccurs="1" maxOccurs="1" name="AddResult" type="s:int" />   </s:sequence>   </s:complexType>   </s:element>

WSDL - Web Service Description Language <message> Uma descrição abstracta das mensagens entre o cliente e o servidor. Cada mensagem contém uma ou mais <part> que descrevem um item a ser enviado ou recebido Um element part tem um atributo element ou type <message name="AddSoapIn">  <part name="parameters" element="s0:Add" /> </message> <message name="AddSoapOut"> <part name="parameters" element="s0:AddResponse" /> Input Referência a types Output

WSDL - Web Service Description Language <message name="AddSoapIn">  <part name="parameters" element="s0:Add" /> </message> <types>… <s:element name="Add"> … <s:element minOccurs="1" maxOccurs="1" name="x" type="s:int" /> <s:element minOccurs="1" maxOccurs="1" name="y" type="s:int" />   </s:sequence>  </s:complexType>  </s:element> <soap:Body> <Add xmlns="http://w2kslosaw/DemoService/"> <x>3</x> <y>5</y> </Add> </soap:Body> Request

<message name="AddSoapOut"> <part name="parameters" element="s0:AddResponse" /> </message> <s:element name="AddResponse"> <s:complexType> <s:sequence>   <s:element minOccurs="1" maxOccurs="1" name="AddResult“ type="s:int" />   </s:sequence>   </s:complexType>   </s:element> <soap:Body> <AddResponse xmlns="http://tempuri.org/"> <AddResult>int</AddResult> </AddResponse> </soap:Body> Response

WSDL - Web Service Description Language <portType> (Interfaces) Define um grupo de <operation> relacionadas, isto é uma interface para o serviço. Cada operação é constituída por combinações de elementos input e output (e fault opcional) dependendo do padrão da mensagem (Message Exchange Pattern) <portType name="DemoServiceSoap"> <operation name="Add">   <input message="s0:AddSoapIn" /> <output message="s0:AddSoapOut" />   </operation> </portType> <message name="AddSoapIn">  <part name="parameters" element="s0:Add" /> </message>

WSDL - Web Service Description Language Message Exchange pattern

WSDL - Web Service Description Language <binding>  Descreve os detalhes concretos da utilização de um determinado portType, com um dado protocolo. Define o formato das mensagens e os detalhes do protocolo. Especifica como criar um envelope SOAP para uma operation <binding name="DemoServiceSoap“ type="s0:DemoServiceSoap">   <soap:binding style="document" transport=http://schemas.xmlsoap.org/soap/http” /> <operation name="Add">   <soap:operation style="document" soapAction="http://w2kslosaw/addservice/Add" /> <input> <soap:body use="literal" /> </input> <output> <soap:body use="literal" /> </output>  </operation>  </binding> Referência ao portType

WSDL - Web Service Description Language <soap:binding> binding através de SOAP transport define o protocolo de transporte transport=http://schemas.xmlsoap.org/soap/http

WSDL - Web Service Description Language <soap:binding> <soap:operation style="document" soapAction="http://w2kslosaw/addservice/Add" /> <input> <soap:body use="literal" /> </input> <output> <soap:body use="literal" /> </output>  </operation>  <soap:operation> define a forma como é feito o binding de determinada operação <soapAction> define cabeçalho http SOAPACTION <soap:body> - define a codificação da mensagem no body do SOAP use="literal"

WSDL - Web Service Description Language O elemento service define um ou mais elementos port ( ponto de acesso). Um elemento <port> é usado para especificar um endereço do Web Service com referência a um determinado binding. <service name="DemoService"> <port name="DemoServiceSoap" binding="s0:DemoServiceSoap"> <soap:address location="http://w2ks/losaw/dir1/demoservice.asmx" /> </port> </service> Referência ao binding

Universal Description, Discovery and Integration Web Services Universal Description, Discovery and Integration

UDDI Um registo de serviços UDDI Business registry Um local para descobrir serviços e informação detalhado sobre o serviço , p.e WSDL Classificar, catalogar e gerir Web services Selecção dinâmica da implementação de um serviço em Runtime Criado inicialmente por Microsoft, IBM e Ariba

UDDI Repositórios UDDi de teste http://test.uddi.microsoft.com/ https://uddi.ibm.com/testregistry/registry.html http://udditest.sap.com Replicação da informação nos repositórios Registo da informação White pages – identificação da empresa Yellow pages – classificação do serviço Green pages – informação técnica sobre o serviço

UDDI UDDI Programmers APIs Implementações Inquiry API Set Publication API Set Security Policy API Set Subscription API Set Value Set API Set Implementações Microsoft UDDI SDK IBM UDDI4J Java API for XML Registry – JAXR WASP UDDI

Exemplos ASP.NET Web Services 1 – Criar Web Service .Net básico 2 – Criar Cliente do serviço 3 – Criar cliente para o serviço na máquina dot http://dot.dei.isep.ipp.pt/losa/aula7/WebServiceSomar.asmx 4 – criar cliente do serviço

ASP.NET Web Services Criar Serviço New Web Site -> ASP.NET Web Service Serviço criado na máquina dot http://dot.dei.isep.ipp.pt/losa/WS1/WebServiceSomar.asmx

ASP.NET Web Services Código do serviço WebServiceSomar.cs [WebService(Namespace = "http://tempuri.org/")] [WebServiceBinding(ConformsTo =WsiProfiles.BasicProfile1_1)] public class WebServiceSomar :System.Web.Services.WebService{ public WebServiceSomar() {} [WebMethod] // método do serviço public int Somar(int x, int y) { return x + y; } Atributo [WebMethod] expõe o método público como método do serviço

ASP.NET Web Services Teste do serviço http://dot.dei.isep.ipp.pt/losa/WS1/WebServiceSomar.asmx

ASP.NET Web Services Criar cliente do serviço O cliente pode ser qualquer tipo de aplicação: Windows, Console Application, Web Exemplo com Web Application Add Web Reference no projecto

ASP.NET Web Services Namespace e Ficheiros gerados

ASP.NET Web Services Código do cliente do serviço int x = 5; int y = 7; //criar objecto proxy para chamar o serviço WebServiceSomar proxy = new WebServiceSomar(); // chamar o método do serviço int result=proxy.Somar( x, y); A classe proxy WebServiceSomaré criada através da descrição do serviço no ficheiro: WebServiceSomar.wsdl

ASP.NET Web Services Classe WebServiceSomar(proxy) no cliente é responsável pela chamada do serviço Acrescentando ao projecto um class diagram permite ver o código da classe, gerada pela framework. Class View para ver o código

ASP.NET Web Services Class WebServiceSomar no cliente (proxy) public partial class WebServiceSomar : System.Web.Services.Protocols.SoapHttpClientProtocol{ private System.Threading.SendOrPostCallback. SomarOperationCompleted; /// <remarks/> public WebServiceSomar() { string urlSetting = System.Configuration.ConfigurationManager. AppSettings["pt.ipp.isep.dei.dot.WebServiceSomar"]; if ((urlSetting != null)) { this.Url = urlSetting; } else { this.Url = "http://dot.dei.isep.ipp.pt/losa/WS1/WebServiceSomar.asmx"; }}

Método Somar no cliente [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/Somar", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)] public int Somar(int x, int y) { object[] results = this.Invoke("Somar", new object[] { x, y}); return ((int)(results[0])) } Método Invoque chama o serviço, passando um array com os parâmetros

Web Services .Net Framework .Net para Web Service Fonte: Anatomy of an XML Web Service Lifetime - .NET Framework Developer's Guide

Web Services .Net O cliente chama um método do serviço A plataforma no cliente serialize os argumentos do método numa mensagem SOAP e envia a mensagem através da rede usando o protocolo HTTP para o computador onde reside o serviço Web O serviço Web recebe a mensagem SOAP e deserialize o XML recebido. Cria uma instância da classe que implementa o serviço e invoca o método do serviço. O serviço executa o código e serialize o resultado enviando uma mensagem de resposta para o cliente O cliente deserialize a mensagem ...

Web Services .Net Link Custo de envio de encomendas pelos CTT Walkthrough: Creating and Using an ASP.NET Web Service in Visual Web Developer  http://msdn.microsoft.com/en-us/library/8wbhsy70(VS.80).aspx#Mtps_DropDownFilterText WSDL do Global Weather Service http://www.webservicex.net/globalweather.asmx Custo de envio de encomendas pelos CTT http://webservices.tekever.eu/ctt/index.php Sites com Web Services http://www.xmethods.net/ve2/index.po