{slideshare}[slideshare id=9642966&doc=webservices-111011061322-phpapp01]{/slideshare}
Web services – Transcrição da apresentação
2
Web Services
Um cenário de utilização
3
Web Services
Um Web Service é um bloco de software que pode ser acedido pela Internet e usado remotamente por outras aplicações
4
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
5
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
6
Independentes de plataformas, linguagens de programação e sistemas operativos
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.
7
Web Services
Arquitectura baseada em SOAP,WSDL e UDDI
Fonte:Introduction to Web Services by Philippe Le Hégaret– w3c.org
8
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
9
Camadas de Protocolos
10
Web Services
11
SOAP
Simple Object Access Protocol
http://www.w3.org/TR/2003/REC-soap12-part1-20030624/
13
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.
14
SOAP
Template de uma mensagem SOAP:
15
SOAP
trata os erros de um modo centralizado, permitindo ao servidor comunicar ao cliente os erros encontrados no processamento da mensagem
16
Mensagem SOAP .Net
17
Mensagem SOAP .Net
18
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
19
SOAP – Protocol Binding
20
Request
SOAP – Protocol Binding
21
Response
Camadas de Protocolos
22
WSDL
Web Service Description Language
http://www.w3.org/TR/2001/NOTE-wsdl-20010315
24
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
{loadposition adsense728}
25
WSDL representa um contrato entre o cliente do serviço e o fornecedor do serviço
WSDL – Web Service Description Language
26
WSDL – Web Service Description Language
Definitions
27
WSDL – Web Service Description Language
<types>
Contém declarações de tipos de dados referenciadas pelas mensagens
É um Schema embebido no documento.
28
WebMethod
29
Referência a types
<…>