Este artigo apresenta, em duas partes, uma visão aprofundada do desenvolvimento de Web Services usando o Delphi 6 e Kylix 2. Neste parte, passamos dos conceitos à criação de um serviço com acesso a dados.
O que são Web Services?
De acordo com o IBM Web Services Architecture team, Web Services são "aplicações modulares e independentes descritas, distribuídas, publicadas e solicitadas em uma rede TCP/IP, normalmente a Web".
Padronização
A padronização tem sido a chave para o sucesso e aceitação instantânea da tecnologia de Web Services. São usados apenas protocolos e tecnologias abertas, padronizadas e de ampla aceitação, tais como HTTP, XML e SOAP. Com isso, temos em mãos uma importante ferramenta de integração entre sistemas heterogêneos e distribuídos.
Integração
Veja na Figura 1 um exemplo de como aplicações heterogêneas podem ser integradas usando Web Services. Embora já existisse a necessidade de integração entre sistemas há muito tempo, sua implementação era demasiadamente complexa e cara. A falta de um modelo único, sólido e padronizado, tornava o código difícil de ser mantido, devido à grande mistura de tecnologias e metodologias empregadas. Esse problema não se restringia apenas a aplicações distribuídas, mas também àquelas implementadas com acesso a diferentes bancos de dados cliente/servidor. Volta e meia, nos envolvemos com códigos para contornar a falta de padronização entre as versões da linguagem SQL implementadas, por exemplo.
Arquitetura dos Web Services
Na Figura 2 observamos três funções básicas envolvidas no funcionamento dos Web Services. Aqui, um provedor de serviços (service provider) deve publicar seus serviços num agenciador de serviços (service broker), para que um cliente de serviços (service requester) possa localizar o serviço desejado e conectar-se a este para usá-lo.
- WSDL – Web Services descrevem seus serviços através da linguagem WSDL – Web Service Definition Language. Assim, os clientes podem obter informações, de forma padronizada, sobre os serviços que usarão, tais como os métodos e seus parâmetros. Isso é muito útil quando se está codificando serviços que serão usados por terceiros ou implementando clientes que usam serviços de outras empresas. No caso particular do Delphi, podemos usar um wizard para importar essas informações e criar automaticamente as units com as definições dos serviços oferecidos pelo servidor (como veremos na Parte 2 deste artigo). Na Figura 3 vemos o que acontece por trás da requisição de um método pelo cliente.
Quer ler esse conteúdo completo? Tenha acesso completo