Fórum DataSnap, Prism e Linux #415492
16/04/2012
0
Como fazer uma aplicação servidora como camada intermediaria (DataSnap, DBExpress, etc.), em .NET ou Mono para rodar num servidor Linux.
Exemplo:
Camada 1 - clientes com estações Windows ou Linux, etc.
Camada 2 - Camada intermediaria rodando em Linux. (aplicação em pauta acima)
Camada 3 - Dados em Servidor Linux. PostreSQL, Firebird, etc.
Abraços,
Vitorino Almeida
Vitorino Almeida
Curtir tópico
+ 0Posts
16/04/2012
Guinther Pauli
Respostas abaixo, por camada.
Camada 1 - clientes com estações Windows ou Linux, etc.
Se as aplicações clientes forem em .NET, para rodarem multiplataforma, você teria que considerar o uso do Mono, ou como sugestão, considerar uma plataforma Web (ASP.NET no servidor) para tornar a camada cliente independente de plataforma.
Camada 2 - Camada intermediaria rodando em Linux. (aplicação em pauta acima)
Se você optar pela solução Web, como falei acima, o próprio servidor ASP.NET será sua camada intermediária, onde você irá concentrar o acesso a dados e lógica de negócio. Não se faz uma separação física de um servidor de aplicação nesse modelo, ou seja, há apenas uma camada lógica de acesso a dados mas que é compilada junto com a aplicação servidora, para efeitos de performance.
No caso de você querer criar clientes multiplataforma, que não só Web, por exemplo WPF ou Windows Forms (camada 1), você poderá considerar o uso de um servidor WCF (Windows Communication Foundation), veja no entanto que isso dificilmente rodará no Mono no Linux (verifique compatibilidade). Se o servidor de aplicação que você quer construir for DataSnap, nesse caso só restaria o servidor nativo Win32 com protocolo HTTP/TCP (Delphi XE e XE2) ou SOAP (Delphi 7), para poder ser consumido pelos clientes. Certa vez em um projeto fiz um servidor DataSnap ser compilado para o Linux, rodando nativo, porém isso envolve o uso de DataSnap no Kylix (veja meu artigo em https://www.devmedia.com.br/datasnap-no-kylix/579). Outra solução que já projetei foi construir servidores DataSnap XE que distribuem DataPackets através da Internet (que podem inclusive ser nativas), isso abre um leque maior de apps clientes que podem consumir recursos do servidor.
Camada 3 - Dados em Servidor Linux. PostreSQL, Firebird, etc.
Aqui independe, a arquitetura suporta o banco rodando em qualquer SO compatível.
Att,
--
Guinther Pauli
MCP, MCAD, MCSD, MCTS, MCPD
Borland Delphi Certified Professional
Comissão Editorial Revistas .net Magazine, ClubeDelphi, Easy .net Magazine
http://gpauli.com
http://twitter.com/guintherpauli
http://www.facebook.com/guinther.pauli
Gostei + 0
16/04/2012
Vitorino Almeida
Vou usar esta resposta como ponto de partida para minha nova fase. Estou no estaleiro hà +/- cinco anos e não tenho perspectiva de quando sair. Mas está aqui instalada a minha nova fase. Vou pesquizar, estudar, aprender, etc. mas vou conseguir o intento que é o de renovar o pouco do saber programar, com a ajuda da Devmedia & Cia. e dos colegas Delphianos e com a inabalavel fé em Deus.
Abç.
Vitorino Almeida
Gostei + 0
17/04/2012
Vitorino Almeida
Outra solução que já projetei foi construir servidores datasnap xe que distribuem datapackets através da internet (que podem inclusive ser nativas), isso abre um leque maior de apps clientes que podem consumir recursos do servidor.
Se não for pedir muito, por gentileza, seria possível indicar um exemplo (preferencialmente no DevMedia) de como usar do procedimento construir servidores datasnap xe que distribuem datapackets através da internet citado acima?
Obrigado
Vitorino Almeida
Gostei + 0
17/04/2012
Guinther Pauli
Que ótimo :)
Eu escrevi um grande artigo sobre o tema distribuição de packets sobre a internet como uma preferência para aplicações distribuídas na Web usando Delphi nativo como UI e servidor, em contrapartida a aplicações Web tradicionais com tecnologias baseadas em Server (ASP.NET, PHP) e HTML (client). A vantagem é que você desfruta de todas as facilidades do ambiente Web migrando suas atuais plicações nativas Win32 sem modificar muito código, apenas redefinindo o Design, Arquitetura, Protocolos e aplicando alguns Refactorings. O dbExpress e DataSnap dão uma mão ótima mão nesse sentido. O resultado final que você obterá são aplicações EXE nativas Desktop do Delphi rodando clientes distribuídos pela Web (com isso interfaces bem mais ricas que as oferecidas por tecnologias HTML based), acessando um servidor central DataSnap que está remoto, por exemplo, em um DataCenter, no servidor da empresa, centralizando banco de dados, business, licenças, manutenção e por aí vai. Isso sem ter que migrar tudo para Web, uma necessidade muito comum das empresas, criar módulos Web para aplicações Delphi, seja por custos ou know-how. O exemplo que documentei deste projeto em forma de artigo está na ClubeDelphi 70 (http://bit.ly/IvlwCq), na época ainda Delphi 7 eu usei SOAP - Simple Object Access Protocol. As novas implementações do dbExpress e DataSnap XE permitem que se use a própria infra desses frameworks sem depender de um protocolo concreto diretamente, como SOAP ou COM+. Você usa HTTP/TCP diretamente (que são padrões), podendo inclusive escrever clientes em outras linguagens. Pretendo criar um curso aqui na DevMedia sobre este tema, em breve (DataSnap XE, distribuição na Internet etc).
Qualquer dúvida que precisar estamos aí
Sucesso
Att,
--
Guinther Pauli
MCP, MCAD, MCSD, MCTS, MCPD
Borland Delphi Certified Professional
Comissão Editorial Revistas .net Magazine, ClubeDelphi, Easy .net Magazine
http://gpauli.com
http://twitter.com/guintherpauli
http://www.facebook.com/guinther.pauli
Gostei + 0
17/04/2012
Vitorino Almeida
Abç.
Vitorino
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)