Esse artigo faz parte da revista Clube Delphi edição 34. Clique aqui para ler todos os artigos desta edição

imagem

Clique aqui para ler esse artigo em PDF. imagem_pdf.jpg

Arquivos em Web Services

Transferência binária com SOAP

 

Certamente quem tem acompanhado o mundo do desenvolvimento de software ultimamente tem ouvido bastante falar em Web Services, e não é para menos. São hoje a “menina dos olhos” de muitas das grandes empresas de tecnologia.

De fato os Web Services têm mostrado serviço e justificado sua forte aceitação. Neste artigo analisaremos mais exemplos de uso dessa tecnologia. Veremos como desenvolver um ambiente para troca de arquivos baseado em Web Services, demonstrando assim como implementar a transferência binária.

Durante todo o artigo assumiremos um prévio conhecimento básico sobre a criação de Web Services. Posso recomendar a leitura de textos sobre o assunto publicados em edições anteriores da ClubeDelphi (edições 27, 28, e 30 a 33).

 

A idéia do projeto

A aplicação que desenvolveremos será cliente/servidor – o servidor será um Web Service que disponibilizará a seus clientes uma lista de arquivos disponíveis para download, capturados a partir de uma pasta previamente configurada. Os clientes, além disso, poderão fazer uploads, podendo assim compartilhar seus documentos com outros clientes.

 

Iniciando o projeto

Antes de iniciarmos, farei uma breve explanação do ambiente necessário à execução dos aplicativos desenvolvidos ao longo deste artigo. Pela natureza dos Web Services, precisamos de um servidor web configurado e em execução. Isso pode envolver a criação de pastas virtuais e a atribuição de direito de execução a elas. Usarei o servidor web IIS rodando no Windows 2000 e escreverei a aplicação servidora como um CGI padrão. Esteja livre, porém, para usar o que mais lhe convier, até o Web App Debugger.

Depois desses esclarecimentos já podemos continuar. Vamos iniciar criando uma Soap Server Application especificando-a como um CGI (veja a Figura 1).

 

imagem

Figura 1. Criação do CGI para o servidor

 

Nota: alguns códigos no exemplo foram suprimidos para não deixar o código repetitivo. O código completo pode ser baixado do site da ClubeDelphi.

Feito isso, seremos apresentados a um Web Module com os componentes básicos de uma aplicação de Web Services.

 

A interface do serviço

O próximo passo é criar a interface que nosso serviço irá disponibilizar. Vá ao menu File|New>Other e, na guia WebServices, selecione a opção Soap Server Interface. Faça as alterações indicadas na Figura 2 e clique em OK.

 

imagem

Figura 2. Soap Server Interface Wizard

 

Isso gera automaticamente duas units com o esqueleto de definição e implementação de nossa interface IBinaryTransfer. Deveremos agora incluir os métodos necessários para provermos a funcionalidade desejada. Basicamente, teremos de definir três métodos: um para consulta dos arquivos e outros dois para download e upload. Veja na Listagem 1 como fica a unit após essas alterações.

 

Listagem 1. Interface do Web Service

unit BinaryTransferIntf;

interface

uses InvokeRegistry, Types, XSBuiltIns;

type {Classe responsável por prover info sobre um arquivo}

   TRemoteFile = class(TRemotable)

   private

      FName: String;

      FSize: Integer;

      FModified: TDateTime;

   published

      property Name: String read FName write FName;

      property Size: Integer read FSize write FSize;

      property Modified: TDateTime

...

Quer ler esse conteúdo completo? Tenha acesso completo