Curso de dbExpress e DataSnap

Parte XXVII – DataSnap e SOAP

Continuando o nosso curso, veremos neste artigo como criar uma solução simples multicamadas usando DataSnap e SOAP. Clique em File|New|Other>WebServices>SOAP Server Application. Na caixa de diálogo que aparece dê o nome de “AppServerSOAP” para o servidor Web App Debugger.

 

image001.png 
image003.png

Figura. Criando um servidor SOAP / DataSnap

Responda No quando o Delphi perguntar se você quer criar uma interface.

Salve a unit1.pas como “uFrmMain.pas”, a unit2.pas como “uWM.pas” e o projeto como “AppServerSOAP.dpr”. Selecione o formulário e dê a ele o nome de “FrmMain”. Selecione o WebModule e dê a ele o nome de “WM”.

Clique em File|New|Other>WebServices>SOAP Server Data Module. Na janela que aparece digite “RDM” para a opção Module Name.

 

 image005.png
image007.png

Figura. Criando um SOAPDataModule

Salve a unit criada como “uRDM”. Configure o DataModule usando os mesmos componentes do exemplo anterior.

 

 image009.png

Figura. SOAPDataModule

Observe que a interface IRDM descende de IAppServerSOAP. A classe TRDM descende de TSoapDataModule e implementa IRDM, IAppServerSOAP e IAppServer.

 

IRDM = interface(IAppServerSOAP)

  ['{64F05EBC-7D7B-4A61-B6EA-2766C48D7EF8}']

end;

 

TRDM = class(TSoapDataModule, IRDM, IAppServerSOAP, IAppServer)

  SQLConnection: TSQLConnection;

  SQLDataSet: TSQLDataSet;

  DataSetProvider: TDataSetProvider;

private

public

end;

 

Execute a aplicação. Ative o Web App Debugger. Faremos agora a parte cliente da aplicação.

SOAP Connection

Abra a aplicação DataSnap Client criada anteriormente. Coloque no DM um componente SoapConnection da paleta WebServices.

 

image011.png

Figura. Usando SOAPConnection

Configure sua propriedade URL para:

 

http://localhost:8081/AppServerSOAP.AppServerSOAP/soap

 

Configure Connected para True.

ConnectionBroker

Coloque no DM um componente ConnectionBroker da paleta DataSnap.

 

 image013.png

Figura. ConnectionBroker abstrai a conexão DataSnap

Esse componente abstrai para o ClientDataSet o tipo de conexão que será utilizada. Por exemplo, você pode trocar sua conexão de DCOM para SOAP ou ainda COM+ sem precisar alterar os ClientDataSets.


image015.png

Figura. DataModule cliente

Aponte a propriedade Connection desse componente para SOAPConnection. Aponte a propriedade RemoteServer do ClientDataSet para ConnectionBroker1.

Testando o cliente DataSnap / SOAP

Execute a aplicação.

 

image017.pngimage019.png 

Figura. Testando a aplicação DataSnap client com o servidor SOAP

Leia todos artigos da série