Aplicação Remote igual ao Protheus (Microsiga)

20/12/2005

1

Olá amigos,

Estou desenvolvendo uma aplicação onde acesso um FB em outra cidade via Velox mesmo e até que tá rodando direitinho (estou usando o máximo de storeds, views e principalmente triggers para ganhar esta velocidade). Porém há momentos que muito acesso a dados deixa a aplicação muito lenta.

Em Nova Friburgo, onde eu morava, eu configurei os roteadores Cisco onde uma fábrica está agora ligada a sua loja a uns 20 km da fábrica. Configuramos certinho um link de 128k de fibra da Telemar. Ao executarmos o Microsiga ficamos impressionados pois o sistema TODO é executado no servidor, ao executamos o sistema, com quase 1 milhão de registros, é como se estivéssemos na fábrica. Quer dizer, as telas, tudo é processado direto no servidor,praticamente o terminal é um servidor burro.

Como funciona isso? em Delphi tem como fazer algo igual?

Vlw galera!!!


Responder

Posts

20/12/2005

Titanius

Amigo, também quero saber sobre esse assunto, se tiver alguma coisa me comunique...


[]s


Responder

20/12/2005

Michael

Morava em Friburgo kra? Eu tbm. Vim para o Rio ano passado para estudar e trabalhar.

Sinto uma falta danada daquela vida de cidade pequena....

[]´s


Responder

20/12/2005

Romulocpd

E ae..

É, vim de lá a 9 meses. Moro em Rio das Ostras, praia dos Friburguenses, e trabalho em Macaé, a terra do petróleo!

Estou com alguns clientes em Casimiro de Abreu e logo logo pretendo voltar a morar em Friburgo mas o mercado para trabalhar não está lá. O mercado está esgotado com aqueles empresinhas ridiculas de lá (não quero mencionar nomes, mas trabalhei em todas..hehehe).

É isso ae, é bom ter um conterraneo por perto (é isso q se fala!?)

Vlw kra!


Responder

20/12/2005

Romulocpd

Titanius,

Ae Michael ve se ajuda nessa..

Fui tentar buscar algo no google mas preciso saber definir exatamente como é o funcionamento do Microsiga. Se busco por processasmento distribuído ou remoto sempre cai resultados de cliente/servidor e outros.

O sistema funciona como um terminal burro mesmo. É incrível o seu funcionamento.

Vlw!


Responder

20/12/2005

Titanius

Fala ae romulo,

Seguinte, em uma das listas que perticipo conheci um cara que trabalhou como programador na MicroSiga, e até o Protheus 7 ele foi feito em Delphi mesmo, exceto o ´compilador´, agora apartir do Protheus 8 está sendo feito em C++.

Tirando ess bobagem de linguagem, que tanto faz ser em c++/delphi/.net o que for tem como fazer :D, ele me falou o seguinte... reparou nas aspas do compilador? Então, ele não é um compilador, e sim um INTERPRETADOR de códigos, ou seja, ele simplesmente interpreta o codigo e monta a tela de acordo com o que diz os arquivos.

Não sei se é verdade mas acredito nisso.. bastaria voce ter um interpretador e pronto, o problema de ´programar no sistema´ estaria por parte solucionado.

Agora vem a parte de exibir a tela, pow.. realmente é incrível o Protheus, eu abro mais de 50.000 registros num piscar de olhos... e sobre isso eu não sei...[b:1d9a25d986]mas vou dar um palpite[/b:1d9a25d986], que o Michael como entende disso melhor que eu possa nos falar se tem viabilidade ou não!

Me parece que eles usam n-camadas no Protheus, pois bem, pensei o seguinte: não teria como eu criar um [b:1d9a25d986]interface[/b:1d9a25d986] no servidor, e via, por exemplo, ClientDataSet, ou outro componente chamar essa interface?

Como nunca lidei com interface via internet não posso dizer se funciona, ou se o interface diz respeito somente a codigo,e nao a tela (como eu imagino).

Bem, está aí minha modesta opinião, acho importante essa discussão pois podem falar mal da Microsiga, mas essa tecnologia é porreta, isso ela é mesmo! :D

[]s


Responder

20/12/2005

Romulocpd

Titanius,

Eu já havia percebido este interpretador de comandos que eles criaram. Tanto que na apresentação do AP8 (eu trabalhei numa revenda) os caras perguntaram se tinha como as janelas ao serem abertas serem centralizadas. Os caras lá disseram que isso é feito lá no servidor, num código muito doido e que não tinha como pois poderia deixar tudo muito lento.

Mesmo com uma interface em um clientdataset o tráfego de dados seriam muito lento com tanta informação em link de 64 ou 128. Eu já pensei tipo em transmissão de arquivos que montam toda a tela. Por exemplo, o servidor recebe a requisição, processa os 50.000 registros monta o grid, interface, tal. Depois ele serializa este objeto em um arquivo texto e transmite ao cliente. Lá ele abre e tem as funções, sei lá! é muita doidera!

Quando eu estudava .Net a vera eu até criei classes usando .Net Remoting que é para fazer isto mesmo. Até conseguir criar classes do tipo (VB.Net, trabalho com VB a 6 anos):

dim Cliente as clsCliente

Cliente = clsCliente.Activator(´192.168.0.1´)

Era tipo uma parada assim, agente instanciava a classe mas remotamente. Nunca consegui tstar muito pois em casa só tenho 1 maquina.

Sei lá, acho muita doiera pois o cliente recebe telas prontas, nao processa nada. O negócio é como ele recebe.

Vlw!


Responder

20/12/2005

Titanius

Pior que eh mesmo, eh muito rapido... será que o remoting do .net eh rapido assim?

[]s


Responder

20/12/2005

Romulocpd

Nunca testei, criei classes para Server e Client só para aprendizado, nunca fiz nada de útil. Mesmo assim eu gostaria de uma solução para Win32, não quero me prender ao .Net.

Vlw!


Responder

20/12/2005

Titanius

Eu tbm... .Net pra mim ainda eh muito longe... mais ainda não consegui ver nada pra isso... :(


Responder

21/12/2005

Romulocpd

Titanius,

Veja estes links:

http://www.swissdelphicenter.ch/torry/showcode.php?id=1447

http://www.ibexsoftware.com/remoteFAQ.asp#_Toc88821172

Pelo que conversei com um conhecido ele acha que em Delphi nós teríamos que criar tipo um próprio servidor de terminal onde agente abriria a aplicação totalmente remota.

Desta forma seria igual ao Protheus. Mesmo que seja tudo em Delphi ele usa o protocolo do Terminal Service do Windows.

Ve ai e me fala.


Responder

21/12/2005

Titanius

Diz ae romulo, seguinte,

Agora vc falando me fez lembrar, que a Microsiga registra um OCX no computador... me eskeci o nome, que pode ser este o negocio de executar via terminal service... mas uma pergunta, tem como abrir um terminal service no linux? tipo, existe um servidor terminal service pra linux? Pois a microsiga tem pra linux... como deu pra perceber eu nunca mexi com TS.. heehehe


Só a titulo de curiosidade, mesmo assim nao ficaria lento?

[]s


Responder

21/12/2005

Romulocpd

Fala ae,

Bom.. o Linux tem um cliente pro terminal service do Windows e funciona direitinho. Vem até no Kurumin..

Existe um projeto de terminal service nativo de Linux, LTSP.. um negócio aqui......

Mesmo assim.. se for esquema de Terminal Service eu sinceramente vou pensar em outras soluções pois daí estamos escravizados pela MS.

O OCX é algo do rmt do Remote. Vou ver numa fabrica que usa o Siga.


Responder

22/12/2005

Titanius

Por isso mesmo, não queria vincular nada com a MS, principalmente ao terminal service..

e quanto a parada da interface que eu disse, será que é viavel?

[]s


Responder

22/12/2005

Romulocpd

Fala ae,

Cara eu acho que a interface seria viável sim, mas como há tráfego de dados isso vai cair muito a velocidade. Eu acesso daqui (350k) um banco Firebird lá em Friburgo e tem velox lá. A conexão dá pra ir legal, até que usar pequenos cadastros é muito show, mas quando tiver que listar informacoes vai ficar lento.

Tenta detalhar esta interface, talvez dá pra gente tentar criar algo.

Vlw.


Responder

22/12/2005

Titanius

Esta foi uma idéia assim de hora, pois nunca trabalhei com interfaces, algum amigo que tenha mais experiências neste ramo poderia nos ajudar... :D

Não faço idéia nem de como começar.. hehe


[]s


Responder