Array
(
)

conectar cliente ao servidor via protocolo DCOM (TDCOMConnection)

Delmar Observação)
   - 31 out 2009

Bom dia amigos

Dados os seguintes conhecimentos (baseado no help do delphi 7.0) sobre criar aplicações multi-camadas (Estudo para fins didáticos e know-how em multitier)

Observar que não estou pedindo opinião sobre tecnologias, se é obsoleta ou não, etc

Lado Servidor

Poderia trabalhar com 3 tipos de servidores de aplicação

A - (DCOM) Usar TRemoteDataModule para cliar um servidor de aplicação usando protocolo DCOM, com duas alternativas
Local Server - criar via File|New|Application e adicionar um TRemoteDataModule
InProc Server - Criar via File|New|Other|ActiveX|ActiveX Library e adicionar um TRemoteDataModule

B - (COM+) Usar TMtsDataModule=(Transactional DataModule) para cliar um servidor de aplicação usando protocolo COM+=COM PLUS
(criar via File|New|Other|MultiTier|Transactional Data Module que resulta uma Library)

C - (SOAP) Usar TSoapDataModule para cliar um servidor de aplicação usando protocolo SOAP
criar via File|New|Other|WebServices|SOAP Server Application

Lado Cliente

Para conectar o cliente (camada de apresentação) ao servidor de aplicação podemos usar um dos 4 protocolos

TDCOMConnection - protocolo DCOM
TSocketConnection - protocolo TCP/IP ou BSS
TWebConnection - protocolo HTTP
TSoapConnection - protocolo SOAP

Em meus estudos, até o momento, fiz dois tipos de sevidores:
um servidor DCOM (Local Server) e um servidor (COM+) o qual foi registrado via Ferramentas Administrativas

Em minha Intranet, para ambos os servidores, consegui conectar o cliente ao servidor usando BSS (TSocketConnection) a partir de outro pc onde fiz o cliente. No cliente, ao adicionar o IP do servidor na propriedade SocketConnection1.Address, tão logo clicava na propriedade ServerName já aparecia meus dois servidores. Não precisei fazer nada no cliente, apenas construir o exemplo dentro do delphi. Lembrando que no servidor deixei rodando o scktsrvr.exe.

Porém, ao tentar conectar via TDCOMConnection, mesmo após colocar em DCOMConnection1.ComputerName o IP do servidor, não aparece nenhum dos servidores em ServerName. E se colocar manualmente o nome do servidor de aplicação na propriedade ServerName, ao tentar conectar levando a exceção: "Sequencia de classe inválida"

Pergunta: para estabelecer uma conexão entre o cliente e o servidor usando o protocolo DCOM(TDCOMConnection) preciso fazer alguma configuração adicional no cliente ou ainda no servidor para que ele enxergue os servidores de aplicação? Lembrando que ao criar o cliente no mesmo pc onde está o servidor aí sim o DCOMConnection1.ServerName mostra os dois servidores.

Comentários serão apreciados. Obrigado.