Para ajudar quem deseja utilizar o RemObjects SDK como camada de comunicação de um aplicativo DataSnap, substituindo o BSS, aqui vai um passo a passo usando Delphi 2006 e RemObjects SDK 5 para criação de um servidor Combo (que pode funcionar como serviço ou como aplicativo standalone):

File, New, Other. Em Delphi Projects, procure por RemObjects SDK e selecione Combo Service/Standalone.

ro1.JPG

O wizard do RO aparece. Escolha uma pasta para o projeto, as outras configurações não precisam ser alteradas. Clique OK.

ro2.JPG

Nesse momento você já tem um servidor e um cliente prontos, organizados em um grupo de projetos na IDE.

ro3.JPG

Vamos criar um novo serviço no servidor que exponha nossos DataSetProviders do DataSnap. Dê um clique duplo no NewProject.exe para selecionar o servido de aplicação e no menu RemObjects da IDE selecione “Edit Service Library” ou Ctrl+Alt+U. Isso vai abrir o Service Builder já mostrando que seu servidor tem um serviço denominado “NewService”.

ro4.JPG

Para criar um serviço DataSnap, precisamos incluir um RODL que já acompanha o RO e que possui todas as definições da interface padrão de servidores DataSnap. Para isso, estando no Service Builder, selecione o menu Edit, Use Existing RODL e depois selecione DataSnap. Agora o nome “uRODataSnap” já deve aparecer na treeview ao lado esquerdo.

ro5.JPG

Agora crie o novo serviço clicando no botão Service e dê o nome de “DataSnapService”. Na combo Ancestor selecione AppServer. Isso diz para o RO que esse serviço é descendente de AppServer, que é a interface de servidores DataSnap.

ro6.JPG

Feche o Service Builder, e tente compilar o servidor (Ctrl+F9). Neste momento uma nova tela do RO aparece perguntando como você deseja implementar o novo DataSnapService. Utilize a opção recomendada, “RemObjects SDK Remote Datamodule”.

ro7.JPG

Agora você já tem um DataModule onde pode colocar seus componentes de dados e o DataSetProvider.

ro12.JPG

Coloque alguns, compile o servidor e execute usando a opção Launch Server Executable do menu RemObjects SDK na IDE ou usando o atalho Ctrl+Alt+F9. Seu servidor já está rodando.

ro9.JPG

Dê um duplo clique no NewProjectClient.exe para selecionar o cliente. Abra o form do cliente, apague o componente RORemoteService, que não utlizaremos e coloque um componente TRODataSnapConnection. Selecione o componente e ligue com o ROChannel e a ROMessage que já estão no form. Na propriedade ServerName, coloque o nome do serviço DataSnap que criamos no servidor, ou seja, “DataSnapService”.

ro10.JPG

Coloque um ClientDataSet no form, ligue ele ao RODataSnapConnection usando a propriedade RemoteServer e selecione o provider na propriedade ProviderName.

ro11.JPG

Pronto! Você já tem um aplicativo em 3 camadas DataSnap usando RO como camada de comunicação. Se desejar rodar o servidor como serviço do Windows, basta registrar o serviço usando “NewProject.exe /install” na linha de comando.