conectar cliente ao servidor via protocolo DCOM (TDCOMConnection)
31/10/2009
0
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.
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.
Delmar Observação)
Curtir tópico
+ 0
Responder
Clique aqui para fazer login e interagir na Comunidade :)