Artigo Clube Delphi 86 - Integrando aplicações .NET, Win32 e Mobile com SOAP e Web Services

Neste artigo vamos adicionar mais um elemento importante na arquitetura: nossa mesma solução poderá ter clientes rodando em diferentes plataformas.

Na edição 70 da ClubeDelphi, propus uma solução baseada em SOAP, XML e ClientDataSet para permitir que aplicações se comunicassem através de Web Services. Entre algumas vantagens da solução, destacaria o acesso ao BD a partir de qualquer lugar da Internet e centralização do acesso a dados em uma única camada.

A aplicação cliente Win32 poderia, por exemplo, ficar em um determinado país e obter dados via Web Services de um servidor rodando em um outro canto do globo. Tudo trafegado através de XML sobre o HTTP. São as facilidades da distribuição Web aliadas ao RAD para Desktop.

Neste artigo vamos dar um passo a mais nessa proposta. Além de permitir todas essas vantagens já citadas, vamos adicionar mais um elemento importante na arquitetura: nossa mesma solução poderá ter clientes rodando em diferentes plataformas.

Nossa solução será, obviamente, multicamadas. Teremos uma camada servidora, na forma de um Web Service, que se encarregará de acessar o banco de dados. Diferentes tipos de aplicação farão acesso a esse Web Service, solicitando dados e chamando métodos para atualizar informações.

Arquitetura da solução

Para ter uma visão geral da arquitetura da aplicação que será criada, veja o esquema da Figura 1. Durante todo este tutorial, sempre que tiver uma dúvida de como a solução está sendo implementada e em que camada está sendo empregada determinada tecnologia, consulte essa figura. Ela será nosso “mapa”.

Figura 1. Arquitetura da solução

O Web Service será criado em Delphi for .NET e utilizará ADO.NET para comunicação com o banco de dados (SQL Server ou Firebird para este exemplo). Um cliente ASP.NET será a interface Web da solução, permitindo que a aplicação seja acessada por qualquer browser pela Internet.

Uma aplicação Win32 em Delphi 7 acessará os mesmos dados, comunicando-se com o Web Service através de SOAP pela Intranet ou Internet. E finalmente, uma aplicação Mobile construída com Delphi for .NET e Compact Framework vai permitir acesso aos mesmos dados a partir de Pocket PCs.

Usando as tecnologias abordadas neste artigo, você poderá ao final:

Criando o banco de dados

O primeiro passo será a criação do banco de dados. Para este exemplo, vou utilizar o banco de dados free SQL Server 2005 Express, que pode ser obtido no endereço indicado na seção Links. Nesse mesmo endereço você encontra para download o SQL Server Management Studio Express, front-end para trabalhar com o SQL Server 2005.

Usando o Management Studio, crie um novo banco de dados chamado CUSTOMERS e dentro dele crie uma nova tabela também chamada CUSTOMERS. A estrutura dessa tabela deve seguir o modelo mostrado na Tabela 1. Lembre-se de definir o campo chave como Identity para que os valores sejam criados automaticamente.

Coluna Tipo
CustomerId Integer (chave)
FirstName Varchar(50)
Company Varchar(50)
Tabela 1. Campos da tabela CUSTOMERS

Note que vamos criar uma tabela extremamente simples, para que possamos focar nossas atenções nos aspectos relativos à multicamadas, Web Services e multi-plataforma. Caso queira usar um banco de dados maior e pronto, como o Northwind ou Employee, fique a vontade.

A solução demonstrada neste exemplo funciona perfeitamente com o Firebird, caso queira utilizar esse banco de dados. No endereço para download deste artigo, você encontra uma versão do mesmo aplicativo deste artigo usando o banco de dados open source.

Após criado o banco de dados, insira alguns registros na tabela CUSTOMERS para facilitar nossos testes quando formos construir a aplicação no Delphi.

Construindo o servidor

Essa será a camada responsável por toda a comunicação com o banco de dados. Por ser baseada em XML Web Services, essa camada poderá ser acessada por diferentes tipos de aplicação rodando em diferentes plataformas. Além disso, esse acesso não precisa necessariamente ser feito em uma LAN, pois dados em XML e chamadas a métodos SOAP podem ser feitos através da Internet.

No Delphi, clique em File > New > Other e na categoria Delphi for .NET Projects escolha ASP.NET Web Service Application. Dê o nome de “DataServer” para a nova aplicação e salve o arquivo ASMX como “customer.asmx”, alterando o seu nome no " [...] continue lendo...

Artigos relacionados