Tecnologia para Web
WebServices
Enrique Pimentel Leite de Oliveira
[email protected]
Web Services
Introdução
SOAP
WSDL e UDDI
Serialização
Atributos
WebService
WebMethods
Ciclo de vida dos Web Services
2
Web Services
Construindo Web Service
Integração com ADO.NET
Exercício Prático
3
Web Services
Introdução
SOAP
WSDL e UDDI
Serialização
Atributos
WebService
WebMethods
Ciclo de vida dos Web Services
4
Introdução
Definição
Considerados um evolução no projeto e
implementação de sistemas distribuídos, os
Web Services são aplicações capazes de
fornecerem dados e serviços através da Web;
Tecnologia de chamada remota de objetos,
que permite a infra-estrutura para criação de
aplicações distribuídas (Web ou não);
Baseado em protocolos e padrões aberto e
largamente utilizados pelo mercado;
5
Introdução
Podem ser utilizados em ambientes com
firewalls;
Tecnologia de padrão aberto (definida pelo
W3C), utilizada por empresas como a SUN,
Microsoft, IBM, HP etc
Alto grau de abstração em relação a
linguagens de programação e plataformas de
hardware / software
Permitem a criação de pequenos módulos de
código reutilizáveis e disponibilizados para
construção de aplicações
6
Introdução
O que é WS-I?
É o consórcio que garante a
interoperabilidade entre os Webservices (
http://www.ws-i.org/ ) para garantir sempre
que Web services em diferentes plataforma
possam comunicar-se entre si.
7
Web Services
Introdução
SOAP
WSDL e UDDI
Serialização
Atributos
WebService
WebMethods
Ciclo de vida dos Web Services
8
SOAP
O protocolo SOAP (Simple Object Access
Protocol) é um protocolo simples e leve
para troca de informação em um ambiente
distribuído e descentralizado, como é o
ambiente Web;
Protocolo de padrão aberto adotados por
grande empresas;
9
SOAP
Principais características
Definido pelo consórcio W3C
Baseado em XML para intercambio de
informações
Padrão utilizado para acessar Web Services
Utiliza HTTP como protocolo de transporte
Interoperabilidade entre sistemas utilizando
linguagens e protocolos padronizados
largamente difundidos como XML e HTTP
10
SOAP
Principais características
Permite a comunicação entre sistemas
protegidos por firewalls, sem precisar abrir
portas adicionais e possivelmente não
seguras. Utiliza (na maioria dos servidores) a
porta 80;
SOAP descreve completamente cada
elemento na mensagem, facilitando o
entendimento e a proteção contra erros.
11
SOAP
Elementos da mensagem SOAP
Elemento
Descrição
Envelope
É o elemento principal do XML que representa a mensagem.
Cabeçalho
É um mecanismo genérico de adição de características à
mensagem SOAP em maneira descentralizada sem acordo
anterior entre as partes comunicantes
Corpo
Contém a codificação atual de uma chamada a um método e
todos os argumentos de entrada ou uma resposta codificada
que contém o resultado de uma chamada a um método.
12
SOAP
Exemplo de comunicação entre um cliente
e um Web Service
Requisição
Requisição
Internet
Resposta
Resposta
13
SOAP
Exemplo de requisição SOAP
POST /MyWebService/Service.asmx HTTP/1.1
Host: www.wrox.com
Content-Type: text/xml; charset=utf-8
Content-Length: 19
SOAPAction: “http://tempuri.org/HelloWorld”
<?xml version=”1.0” encoding=”utf-8”?>
<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>
<HelloWorld xmlns=”http://tempuri.org/” />
</soap:Body>
</soap:Envelope>
14
SOAP
Exemplo de resposta SOAP
HTTP/1.1 200 OK
Content-Type: text/xml; charset=utf-8
Content-Length: 14
<?xml version=”1.0” encoding=”utf-8”?>
<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>
<HelloWorldResponse xmlns=”http://tempuri.org/”>
<HelloWorldResult>Hello World</HelloWorldResult>
</HelloWorldResponse>
</soap:Body>
</soap:Envelope>
15
Web Services
Introdução
SOAP
WSDL e UDDI
Serialização
Atributos
WebService
WebMethods
Ciclo de vida dos Web Services
16
WSDL e UDDI
Web Service Description Language
(WSDL) é um documento XML que
descreve os métodos que podem ser
utilizados para acessar o Web Service
(contrato);
Universal Definition, Discovery Interface
(UDDI) é considerado as páginas
amarelas dos Web Services
17
WSDL e UDDI
Processo de comunicação completo entre
um cliente e um Web Service:
UDDI
Diretório
Descoberta
DISCO
Requisição do documento de Descoberta
Resposta do Documento de Descoberta (XML)
Descrição
WSDL
Requisição do serviço de Descrição
Resposta do serviço de Descrição (XML)
Comunicação
SOAP
Web Service
Cliente Web Service
Link para o documento de descoberta (discovery)
UDDI
http://www.uddi.org
Locate a Service
Requisição do Método
Resposta do Método (XML)
18
Web Services
Introdução
SOAP
WSDL e UDDI
Serialização
Atributos
WebService
WebMethods
Ciclo de vida dos Web Services
19
Serialização
Serialização é o nome dado para o
armazenamento e recuperação de um
objeto, seja em um arquivo, memória ou
qualquer outro lugar.
Quando serializados, todos os dados da
instância persistem no meio de
armazenagem e, quando desserializados,
o objeto é montado novamente de forma
idêntica a sua instância original.
20
Serialização
Uma das formas de serializar objetos e
.Net é através das classes do Namespace
System.Runtime.Serialization, as quais
permitem trabalhar com serialização em
dois formatos: Binário e XML/SOAP
Para isso utiliza-se o atributo Serializable nas
classes indicando que todo conteúdo da de
um objeto instanciado poderá ser serializado
Caso seja necessário evitar que um atributo
da classe seja serializado, deve-se utilizar o
atributo NonSerializable
21
Serialização
Exemplo de serialização de um objeto:
[Serializable()]public class Pedido
{
private int _id;
private DateTime _data;
[NonSerialized]private string _obs;
private Cliente _cliente;
public Pedido(int id, DateTime data, string obs, Cliente cli)
{
_id = id; _data = data; _obs = obs; _cliente = cli;
}
public
public
public
public
int id {
get{return _id;}
}
DateTime data {
get{return _data;}
string obs {
get{return _obs;}
}
Cliente cliente {
get{return _cliente;}
}
}
}
22
Serialização
Classe que será serializada junto com a
Pedido, por ser um atributo da mesma.
[Serializable()]public class Cliente
{
private int _id;
private string _nome;
[NonSerialized]private double _limiteCredito;
public Cliente(int id, string nome, double limite)
{
_id = id;
_nome = nome;
_limiteCredito = limite;
}
public double limiteCredito { get{return _limiteCredito;} }
}
23
Serialização
Código utilizado para serializar o objeto
using System.Runtime.Serialization;
using System.Runtime.Serialization.Formatters.Soap;
using System.IO;
...
IFormatter formato = new SoapFormatter();
Stream file = new FileStream("Pedido.xml",
FileMode.Create,FileAccess.Write, FileShare.None);
Pedido ped = new Pedido(10,
DateTime.Now, “Falta de produtos na entrega",
new Cliente(10, "Linha de Código", 15));
//agora sim, vamos serializar o objeto
formato.Serialize(file, ped);
//Stream fechado
file.Close();
24
Serialização
O Processo de Desserialização é
exatamente o inverso da serialização:
// Definindo o formato e criando uma instância da classe
SoapFormatter IFormatter formato = new SoapFormatter();
//Definindo o Stream de onde será lido o arquivo .xml
Stream file = new FileStream("Pedido.xml",
FileMode.Open ,FileAccess.Read , FileShare.Read );
//criando uma variável do tipo Pedido (vazia)
Pedido ped;
//Desserializando o objeto
ped = (Pedido)formato.Deserialize(file);
//Stream fechado
file.Close();
25
Web Services
Introdução
SOAP
WSDL e UDDI
Serialização
Atributos
WebService
WebMethods
Ciclo de vida dos Web Services
26
Atributos
Atributos
Um atributo é uma informação declarativa
associada a um elemento da linguagem de
programação. Isto significa que um atributo é
composto essencialmente de dados, não de
código. O atributo pode ser associado aos
seguintes elementos:
Assembly (.exe ou .dll); Campo; Evento; Método;
Parâmetros; Propriedades; Valor de returno; Tipo.
27
Atributos
Os atributos são colocados antes do elemento
a que se referem. Em C# eles aparecem entre
colchetes, como por exemplo no atributo
WebMethod usado para indicar que um
determinado método pode ser chamado via
HTTP:
[WebMethod]
public string HelloWorld()
{
return “Hello World”;
}
28
Web Services
Introdução
SOAP
WSDL e UDDI
Serialização
Atributos
WebService
WebMethods
Ciclo de vida dos Web Services
29
WebService
Todos os Web Services são encapsulados
dentro de uma classe, que é definida
como Web Service pela adição do atributo
WebService antes da declaração da
classe
[WebService (Namespace = “http://tempuri.org”)]
30
WebService
O atributo WebService pode conter as
seguinte propriedades:
Nome
Descrição
Description
Mensagem descritiva do Web Service
Name
Retorna ou atribui o nome do Web service
Namespace
Retorna ou atribui o XML Namespace padrão utilizado pelo Web
Service. O Padrão é: http://tempuri.org/
TypeId
Quando implementado em uma classe derivada, retorna o
identificador único para esse atributo (herdado de Attribute.)
31
Web Services
Introdução
SOAP
WSDL e UDDI
Serialização
Atributos
WebService
WebMethods
Ciclo de vida dos Web Services
32
WebMethod
Um Web Service é um conjunto de
métodos (WebMethods) logicamente
associados invocados remotamente
através de mensagens SOAP
A diferença entre um WebMethod e um
método comum é a presença de um
atributo WebMethod, uma espécie de
diretiva de compilação que determina que
o método será acessível remotamente
33
WebMethod
O atributo WebMethod pode conter as
seguinte propriedades:
Nome
Descrição
BufferResponse
Quando definido com o valor True, a resposta do Web Service é
armazenada em memória e envidada como um pacote completo.
Caso seja definido como False (valor padrão), a resposta é
enviado ao cliente conforme é construída no sservidor
CacheDuration
Especifica o número de segundos que a resposta deverá ser
armazenada no cache do sistema. O padrão é 0, significando que
o cache está desabilitado
Description
Texto descritivo do WebMethod que aparece na página de teste do
Web Service.
EnableSession
Quando atribuído o valor True habilita a utilização de sessão no
método. O padrão é False
MessageName
Aplica um nome único ao WebMethod.
TransactOption
Especifica suporte transacional ao WebMethod. O padrão é
Disabled. Outros valores possíveis são: NotSupported,
Supported, Required, RequiresNew
34
Web Services
Introdução
SOAP
WSDL e UDDI
Serialização
Atributos
WebService
WebMethods
Ciclo de vida dos Web Services
35
Ciclo de Vida dos Web Services
Processo de comunicação entre aplicação
cliente e Web Service (desenvolvido na
plataforma .Net utilizando ASP.NET)
36
Web Services
Construindo Web Service
Integração com ADO.NET
Exercício Prático
37
Construindo Web Service
Criação de um Web Service
38
Web Services
Construindo Web Service
Integração com ADO.NET
Exercício Prático
39
Integração com o ADO.NET
Todos os conceitos visto durante o
desenvolvimento de aplicações com
ADO.NET poderá ser utilizado com Web
Service
Criar um Web Service que retorne um
DataSet tipado.
40
Download

Web Services - Objetivo Sorocaba