Академический Документы
Профессиональный Документы
Культура Документы
Em meu artigo VB .NET - Criando WebServices dei uma introdução básica sobre WebServices , e , como já faz um bom tempo , é
sempre bom relembrar alguns dos conceitos básicos que estão relacionados com os web services.
A primeira coisa que você deve saber é que WebServices não estão vinculados a uma plataforma , pelo contrário a idéia é justamente a
oferecer uma funcionalidade que não dependa de uma plataforma específica. Como estou usando a plataforma .NET ela oferece recursos
para que possamos criar web services , Apache oferece este recurso , Java faz a mesma coisa e isto já existia em CORBA.
O protocolo que um Web Service usa é o protocolo SOAP (Simple Object Access Protocol) que é um padrão aberto criado por um pool de
empresas como Microsoft, IBM/Lotus, Don Box, Dave Winer (0lha ai a Microsoft e a IBM juntas na fotografia...) e proposto a IETF
(organização que publica padrões para internet como TCP,FTP, etc.) e ao W3 (World Wide Web Consortium).
O protocolo SOAP é baseado em tecnologias já existentes como HTTP, SMTP e XML e utiliza mensagens no formato XML não definindo um
modelo de troca para mensagens. A idéia por trás disto é ser independente da linguagem e independente da plataforma e também ter acesso
transparente aos firewalls visto a mensagem ser apenas texto.
As desvantagens do SOAP são as brechas na segurança , o fato de não oferecer serviços avançados (ainda) e o problema de performance
(RMI,DCOM e Remoto são mais rápidos).
Você deve estar pensando : "..mas se Soap usa XML , e XML é texto puro , como a performance pode ser pior ?"
Onde :
Percebeu que para enviar uns 5 bytes (codigo postal) o protocolo usa mais de 100 bytes ?
Resumindo : o protocolo embora use a estrutura XML em mensagens SOAP não é trivial. Mas fique tranquilo , você não precisará saber
nada sobre XML e protocolo SOAP vai apenas usá-los.
Mas nem só de protocolo SOAP vive um Web Service. Dois protocolos intimamente ligados aos Web Services são:
WSDL - Web Service Description Language - è um padrão para descrição de informações de serviços sendo que os serviços WSDL são
descritos pelos desenvolvedores dos serviços Web. O cliente acessa as informações para usar os serviços.
Os documentos WSDL contém um conjunto de definições (marcados com XML) que descrevem os serviços Web e especifica as capacidades
do serviço, sua localização na Web e instruções a respeito de como acessá-los. Define também a estrutura da mensagem que um serviço
Web envia e recebe.
A motivação por trás do WSDL é que antes de uma aplicação possa acessar um serviço Web esta aplicação precisa aprender sobre os
serviços disponíveis e suas capacidades.
UDDI - Universal Description Discovery and Integration - é um protocolo para publicação e procura de serviços (lista amarela de serviços).
Funciona como um tipo de anúncio do serviço Web. Não é obrigatório para web services ; se você sabe o endereço do web service.
http://www.macoratti.net/vbn_wbs2.htm 10/09/2009
VB - Programa Fonte com diversos recursos Page 2 of 5
Vamos então a parte prática : Criar um Web Service que oferece um serviço que poderá ser consultado na web.
Que tal oferecer um serviço que calcula o índice de massa corpórea - IMC. Esse índice é utilizado para avaliar o grau de obesidade das
pessoas. Ele é calculado quando dividimos o peso (em kg) pela altura ao quadrado (em m). Abaixo a tabela com os valores do IMC e o seu
significado:
Nosso web service irá receber como parâmetros a altura em m (metros) e o peso em quilos (Kg) e o email do cliente. Irá calcular o IMC do
cliente e enviar o resultado para o Email informado.
Crie um novo projeto no VS.NET (estou usando a versão 1.1 da Net Framework) do tipo Web Service usando a linguagem VB.NET.
Será exibida uma janela chamada Service1.asmx.vb ; altere o nome para imc.asmx conforme figura abaixo:
Vamos incluir o código no arquivo icm.asmx, para isto clique no link : click here to swith to code view para entrar na janela de código.
Imports System.Web.Services
Imports System.Web.mail
<WebMethod()> Public Function CalculaImc(ByVal peso As Double, ByVal altura As Double, ByVal email As String) As Double
http://www.macoratti.net/vbn_wbs2.htm 10/09/2009
VB - Programa Fonte com diversos recursos Page 3 of 5
texto += msg
texto += "</BODY></HTML>"
With mail
.From = "www.macoratti.net"
.To = email
.Subject = "IMC - Indice de Massa Corporea"
.Body = texto
.BodyFormat = MailFormat.Html
End With
SmtpMail.Send(mail)
End If
End Function
O código é muito simples: dividimos o peso pela altura ao quadrado e conforme o valor do imc definimos uma mensagem para o usuário. Se
o usuário informar o email iremos montar uma mensagem que será enviada para o email indicado.
Para saber mais sobre como enviar emails com ASP.NET leia o artigo : ASP.NET - Enviando Emails : HTML e anexos
Vamos salvar e compilar o Web Service. Feito isto vamos testar abrindo o seu navegador padrão e chamando o web service via http
digitando a url onde o mesmo foi salvo e o nome do arquivo icm.asmx. Iremos obter o seguinte resultado:
Para testar o web service informe os valores para peso e altura e clique no botão Invoke. Você deverá obter um arquivo XML com o
resultado do imc e o seu tipo de retorno (double)
Agora só falta criar um cliente para usar o web service criado. Para isto vamos criar uma aplicação ASP.NET com um formulário que será a
interface com o usuário e que usará o nosso web service.
Crie um novo projeto no VS.NET do tipo ASP.NET web application usando a linguagem VB.NET com o nome de usaIMC.
No formulário padrão insira os seguintes controles : 2 TextBox , 1 Button , 3 labels e 1 Image , conforme layout abaixo:
http://www.macoratti.net/vbn_wbs2.htm 10/09/2009
VB - Programa Fonte com diversos recursos Page 4 of 5
Para poder usar o web service teremos que incluir uma referência
ao mesmo. Para isto clique com o botão direito do mouse sobre o
nome do projeto - usaIMC - e selecione a opção : Add Web
Reference.
A seguir informe a url do local onde o Web Service foi criado. A seguir clique em Go para que o web service seja localizado e exibido
conforme abaixo:. Para encerrar clique no botão - Add Reference.
na linha de código : Dim imc As New localhost.Service1 estou usando a referência ao web service criado.
Note também que estou usando a função CalculaImc() do web service passando os valores obtidos na página web.
http://www.macoratti.net/vbn_wbs2.htm 10/09/2009
VB - Programa Fonte com diversos recursos Page 5 of 5
http://www.macoratti.net/vbn_wbs2.htm 10/09/2009