Sistemas grandes: web ou desktop

Com o estouro da web 2.0 (que já faz algum tempo) e considerando a plataforma java: se você fosse fazer um grande sistema, desses que só uma empresa com vários funcionários fazem, você usaria web ou desktop? Se você participa de um projeto desses na empresa que você trabalha, você mudaria pra web ou desktop (ou continuaria com um dos dois se fosse o caso)?

Acredito que a maioria dos sistemas de grande porte utilizam muito a web, porém, mesmo com o sistema rodando em um servidor externo e etc, a interface com o usuário pode ser Desktop (afinal, até o browser é uma aplicação que roda Desktop).

Pessoalmente eu não gosto de interfaces via browser, e iria fazer uma interface usando algum toolkit portável (GTK, Swing, etc), mas continuaria usando a web.

Até concordo com o Kknd

Mas hj em dia é tão irrelevante essa questão web ou desktop, q não faz sentido pensar muito nisso, a não ser que sua aplicação seja realmente voltada ao grande publico web.

Mas tudo vai depender mesmo do Domain do seu cliente, até pra uma aplicação interna que não fará parte da internet, o correto seria utilizar do jargão já defasado “intranet”, até pelo fato da facilidade em manutenção mesmo.

Abraços.

Depende da necessidade.

No meu caso particular, o sistema não teria como ser feito via web por dois principais motivos:

:arrow: cliente pode trabalhar no sistema de forma offline, em um notebook fora de qualquer ambiente sem internet ou intranet

:arrow: cliente precisa de uma suite office integrada ao sistema para desenvolver seus documentos.

Então nesse caso ambiente desktop foi a melhor opção.

Aqui nao tem muita coisa web.
O que a gente sao aplicacoes desktop mesmo que a gente starta usando webstart.

//Daniel

[quote=Grinvon]Depende da necessidade.

No meu caso particular, o sistema não teria como ser feito via web por dois principais motivos:

:arrow: cliente pode trabalhar no sistema de forma offline, em um notebook fora de qualquer ambiente sem internet ou intranet

:arrow: cliente precisa de uma suite office integrada ao sistema para desenvolver seus documentos.

Então nesse caso ambiente desktop foi a melhor opção.[/quote].

Good point !

Mas se pensarmos assim jamais o google teria desenvolvido uma forma off-line de se trabalhar em seus aplicativos certo?

Mas isso é assunto pra outro post !

Vai realmente da necessidade do seu “Product Owner” mesmo.

Abraços.

[quote=fabio.nascimento][quote=Grinvon]Depende da necessidade.

No meu caso particular, o sistema não teria como ser feito via web por dois principais motivos:

:arrow: cliente pode trabalhar no sistema de forma offline, em um notebook fora de qualquer ambiente sem internet ou intranet

:arrow: cliente precisa de uma suite office integrada ao sistema para desenvolver seus documentos.

Então nesse caso ambiente desktop foi a melhor opção.[/quote].

Good point !

Mas se pensarmos assim jamais o google teria desenvolvido uma forma off-line de se trabalhar em seus aplicativos certo?

Mas isso é assunto pra outro post !

Vai realmente da necessidade do seu “Product Owner” mesmo.

Abraços.

[/quote]

Nem sabia que a suite web do google pudesse rodar offline.

De qualquer forma temos um problema aqui, muitos dos materiais que o cliente recebem são documentos .doc, .xls, .pdf, etc. E creio que os mesmos não podem ser editados via google office, não sei, posso estar falando besteira.

Fora que há integração do próprio sistema com a suite, coisa de louco.

[quote=Grinvon][quote=fabio.nascimento][quote=Grinvon]Depende da necessidade.

No meu caso particular, o sistema não teria como ser feito via web por dois principais motivos:

:arrow: cliente pode trabalhar no sistema de forma offline, em um notebook fora de qualquer ambiente sem internet ou intranet

:arrow: cliente precisa de uma suite office integrada ao sistema para desenvolver seus documentos.

Então nesse caso ambiente desktop foi a melhor opção.[/quote].

Good point !

Mas se pensarmos assim jamais o google teria desenvolvido uma forma off-line de se trabalhar em seus aplicativos certo?

Mas isso é assunto pra outro post !

Vai realmente da necessidade do seu “Product Owner” mesmo.

Abraços.

[/quote]

De qualquer forma temos um problema aqui, muitos dos materiais que o cliente recebem são documentos .doc, .xls, .pdf, etc. E creio que os mesmos não podem ser editados via google office, não sei, posso estar falando besteira.

…[/quote]

Procure por Google Gears biblioteca fantástica.

Mas doc, .xls sim podem ser editados facilmente off-line e depois qdo vc tiver uma conexão automaticamente seus documentos serã atualizados entre as partes.

Agora pdf que eu não sei…

Abraços.

Quem são os usuários do sistema?

Já pensou migrar 1.000 usuários de help-desk que usavam sistemas com interface texto e nem tinha mouse nos micros pra um ambiente web (mal feito) onde vão usar o mouse pra lá e pra cá e tem que esperar renderizar páginas e retornos das requisições e etc?

95% das coisas hoje são web, desses talves uns 20% seriam melhor se tivessem uma view desktop, são casos onde NUNCA o sistema é acessado de fora do ambiente, os usuários tem esse “legado” de uso de interfaces texto, a complexidade da telas demanda uma demora muito maior no fluxo completo do sistema, ou seja, o que era feito em 1 minutos numa tela texto agora é feito em 4 minutos navegando entre telas web, e sim, isso acontece muito mais do que se parece.

Veja quem são seus usuários, quais são as necessidades de uso deles e o que o sistema se proprõe a fazer, para avaliar a melhor alternativa.

Olá

Como venho dizendo há anos, não vejo o menor sentido em começar uma aplicação neste milênio que não seja interligada a web.

Quanto a camada de apresentação, eu poderia escolher Swing se a aplicação precisasse acessar periféricos tais como impressoras ECF, leitoras de cartão smartcard ou não, identificadores biométricos, balanças, impressoras de cheques, etc… Caso contrário a camada de apresentação seria em HTML+CSS+Javascript, etc.

[]s
Luca

[quote=Luca]Olá

Como venho dizendo há anos, não vejo o menor sentido em começar uma aplicação neste milênio que não seja interligada a web.

Quanto a camada de apresentação, eu poderia escolher Swing se a aplicação precisasse acessar periféricos tais como impressoras ECF, leitoras de cartão smartcard ou não, identificadores biométricos, balanças, impressoras de cheques, etc… Caso contrário a camada de apresentação seria em HTML+CSS+Javascript, etc.

[]s
Luca[/quote]

Concordo plenamente, tentei dizer mais ou menos isso mais acima, da não viabilidade atual de se desenvolver fora do “eixo web”…

Mas vc explicou melhor…

Abraços

Fabio Nascimento

[quote=fabio.nascimento][quote=Grinvon][quote=fabio.nascimento][quote=Grinvon]Depende da necessidade.

No meu caso particular, o sistema não teria como ser feito via web por dois principais motivos:

:arrow: cliente pode trabalhar no sistema de forma offline, em um notebook fora de qualquer ambiente sem internet ou intranet

:arrow: cliente precisa de uma suite office integrada ao sistema para desenvolver seus documentos.

Então nesse caso ambiente desktop foi a melhor opção.[/quote].

Good point !

Mas se pensarmos assim jamais o google teria desenvolvido uma forma off-line de se trabalhar em seus aplicativos certo?

Mas isso é assunto pra outro post !

Vai realmente da necessidade do seu “Product Owner” mesmo.

Abraços.

[/quote]

De qualquer forma temos um problema aqui, muitos dos materiais que o cliente recebem são documentos .doc, .xls, .pdf, etc. E creio que os mesmos não podem ser editados via google office, não sei, posso estar falando besteira.

…[/quote]

Procure por Google Gears biblioteca fantástica.

Mas doc, .xls sim podem ser editados facilmente off-line e depois qdo vc tiver uma conexão automaticamente seus documentos serã atualizados entre as partes.

Agora pdf que eu não sei…

Abraços.[/quote]

São dois problemas :slight_smile:

Os usuários devem usar uma ferramenta que já conhecem, por isso o OpenOffice, e segundo, deve haver uma integração entre a suite e o Java.

Exemplo: Eu desenvolvi rotinas em Java que passam a salvar documentos fora do openoffice, a abrir documentos, procurar trechos específicos e transferir para outros documentos, tudo isso via java.

Agora mesmo estou ficando doido para converter de calc para writer!!!

Seria quase um ERP, porém um pouco mais específico pra determinadas áreas em que, pode ser que o usuário seja leigo (quando eu digo leigo, totalmente leigo) ou pode ser que saibam mais como manusear um computador (saiba salvar arquivos, entrar no msn, ter a noção de que se precisar existe o google, de abrir um browser, enfim) ou pode ser experiente (o suficiente pra saber onde encontrar arquivos secretos… nem tão secretos do seu chefe, navegar pela rede interna da empresa e mesmo fazer paginas em php).

Eu vejo alguns prós e contras adiante (caso eu esteja errado, por favor, podem falar e se quiser até xingar):
Swing:

  • Parece ser lento quando nossos produtos são usados em computadores pouco avantajados (como processadores de 1 GHz e memórias de 256 a 512 MB).
  • O usuário parece se acostumar mais com a idéia de formulários.
  • A exibição de relatórios parece ser mais rápida e eficiente e prática.
  • Não estou afim de usar o Matisse (isso nem entra em cogitação, é gosto mesmo), poderia até usar o IntelliJ IDEA que é ótimo mas procuraria outra opção melhor que pagar 259 dólares (se bem que se precisar realmente, eu pago sem problemas).

Web:

  • Eu teria de usar um firefox da vida que possui outros menus como File, Edit, View, etc. que são do proprio browser. O usuário que é um navegador de internet nas horas vagas (em casa ou no trabalho) poderá querer acessar o um site do browser e simplesmente digitar ali em cima uma url e detonar uma session, ou um processo que estava rodando e não poderia ter sido deixado pra trás sem segurança.
  • Com ferramentas como Flex e utilizando tudo o que o conceito AJAX e suas ferramentas “emuladoras do conceito” tem a nos oferecer, a camada de visualização fica show de bola, simples, direta e bonita, etc., e o desenvolvimento destas telas, também seria rápido e sem problemas como o que estamos acostumados com swing.

É isso pessoal, valeuz.

Olá

[quote=ahlx]
Swing:

  • Parece ser lento quando nossos produtos são usados em computadores pouco avantajados (como processadores de 1 GHz e memórias de 256 a 512 MB).[/quote]

Vá em qualquer agência dos Correios e veja uma aplicação web com camada de apresentação Swing rodando em micros muito mais limitados do que estes. Tratam-se de aplicações MUITO mais complexas do que um ERP (já vivi 6 anos da minha vida de um ERP que desenvolvi e o meu era infinitamente mais simples). Detalhe: os softwares dos Correios rodam no browser.

[quote=ahlx]
Web:

  • Eu teria de usar um firefox da vida que possui outros menus como File, Edit, View, etc. que são do proprio browser. O usuário que é um navegador de internet nas horas vagas (em casa ou no trabalho) poderá querer acessar o um site do browser e simplesmente digitar ali em cima uma url e detonar uma session, ou um processo que estava rodando e não poderia ter sido deixado pra trás sem segurança.
  • Com ferramentas como Flex e utilizando tudo o que o conceito AJAX e suas ferramentas “emuladoras do conceito” tem a nos oferecer, a camada de visualização fica show de bola, simples, direta e bonita, etc., e o desenvolvimento destas telas, também seria rápido e sem problemas como o que estamos acostumados com swing.[/quote]

Se o mundo fosse tão triste assim, ninguém faria aplicação web para uso nas empresas.

[]s
Luca

[quote]Olá

Como venho dizendo há anos, não vejo o menor sentido em começar uma aplicação neste milênio que não seja interligada a web.[/quote]

Concordo.

Só que, se eu estivesse gerenciando um projeto grande numa empresa grande (com um banco de dados imenso), eu ficaria com um pé atrás quanto à Internet.
Se você tivesse um mega dum banco de dados, colocaria no servidor da empresa matriz (que pudesse ser acessado pelas filiais) ou colocaria totalmente online?

Olá

[quote=dedejava]… eu ficaria com um pé atrás quanto à Internet.
Se você tivesse um mega dum banco de dados, colocaria no servidor da empresa matriz (que pudesse ser acessado pelas filiais) ou colocaria totalmente online?[/quote]

Pera aí, sistema rodando na Internet não tem nada a ver com sistema aberto para todo mundo. Quando a gente fala em sistema web não estamos obrigatoriamente falando em sistemas que podem ser acessados por gente não autorizada. O exemplo da aplicação dos Correios se aplica aqui de novo. Para entrar não basta usuário e senha. Precisa que a máquina tenha o MAC address cadastrado, o número de série do leitor de cartão também esteja cadastrado associado com a máquina, que o cartão do funcionário seja autorizado para aquela máquina e outras condições a mais. Nem um funcionário dos Correios consegue entrar em máquina não autorizada.

Quanto ao local da base de dados, o normal é que fique no mesmo data center do servidor web em outra máquina e com tudo replicado. Isto é o mínimo mas pode ser muito mais sofisticado ainda com uso de bancos de dados paralelos e outras cositas más.

[]s
Luca

Exatamente o que o Luca disse. Ao dizer aplicação web, quero dizer aplicação baseada em browsers e, tal aplicação, não estaria acessível a ninguém que não estivesse autorizado. Indo um pouco além, também signifca fazer a troca de informações com filiais do outro lado do mundo (online), o que não quer dizer que a aplicação deva ser necessariamente baseada em browsers, pois poderia ser feito normalmente com swing (desktop) usando algumas APIs.

O real problema são os fatos ditos, resumidamente falando: rodar em um browser ou rodar independente (de acordo com as limitações e vantagens de cada fato)?

Olá

Que fique bem claro a minha opinião: quando digo aplicação web quero dizer baseada em protocolo web, isto é, HTTP/HTTPS.

Em todas as minhas milhares de mensagens no GUJ defendendo aplicações web, nunca me restringi a aplicações baseadas no browser apesar de que, quando se usa o Java Web Start, estamos usando o browser por debaixo dos panos (pode ser que esta informação seja surpresa para quem nunca desenvolveu usando Java Web Start).

Como sempre sói acontecer nestes casos, a única resposta correta que pode ser dada em um fórum público é: depende. Só analisando o problema em toda a sua conjuntura é que se pode definir a arquitetura mais adequada.

[]s
Luca

[quote=Luiz Aguiar]Quem são os usuários do sistema?

Já pensou migrar 1.000 usuários de help-desk que usavam sistemas com interface texto e nem tinha mouse nos micros pra um ambiente web (mal feito) onde vão usar o mouse pra lá e pra cá e tem que esperar renderizar páginas e retornos das requisições e etc?

95% das coisas hoje são web, desses talves uns 20% seriam melhor se tivessem uma view desktop, são casos onde NUNCA o sistema é acessado de fora do ambiente, os usuários tem esse “legado” de uso de interfaces texto, a complexidade da telas demanda uma demora muito maior no fluxo completo do sistema, ou seja, o que era feito em 1 minutos numa tela texto agora é feito em 4 minutos navegando entre telas web, e sim, isso acontece muito mais do que se parece.

Veja quem são seus usuários, quais são as necessidades de uso deles e o que o sistema se proprõe a fazer, para avaliar a melhor alternativa.[/quote]

Sempre vejo alguns sistemas com uma interface texto, os usuários-analistas os usam com muita destreza, e somente com o teclado, enquanto nos sistemas web, inclusive alguns que ajudei a desenvolver, esses mesmos usuários ficam perdidos.

Fico com inveja de um sistema de 10 anos de idade e vergonha(pelo menos nesse quesito) de uns que acabaram de nascer.

[quote=Bruno Laturner]
Sempre vejo alguns sistemas com uma interface texto, os usuários-analistas os usam com muita destreza, e somente com o teclado, enquanto nos sistemas web, inclusive alguns que ajudei a desenvolver, esses mesmos usuários ficam perdidos.[/quote]

E não é por falta de recursos que muitos sistemas web deixam a desejar em sua interface/praticidade, pois não tem desculpa quando se tem em mãos tecnologias como HTML/DHTML, css, javascript, ajax, flex, etc. Existem diversos exemplos; tem componentes feitos em javascript, belíssimos, vc jura q tá vendo um activex, mas é javascript e ajax e pronto, como grids, caixas de combinação, tabpages, etc. A tabulação entre os campos pode ser controlada. Em suma, quero dizer que existem recursos para construir componentes/aplicações web com a mesma ou semelhante praticidade do modo desktop.

Entrem no email do yahoo por exemplo, mail.yahoo.com.br, é uma pequena amostra de como uma aplicação web pode ter interface/praticidade semelhantes a uma aplicação desktop.

Existem casos onde a aplicação é melhor em ambiente desktop? Claro! E como não? Imagine uma aplicação frente de loja de um supermercado, que usa uma impressora fiscal bematech, e não pode parar nunca, e para minimizar ao maximo os riscos de ficar “fora do ar” em pleno movimento tenso do dia, a aplicação tem de estar preparada para rodar off-line, e fazer atualizações em batch quando voltar a ficar on-line. Normalmente para se fazer isso, usam-se aplicações desktop, mas vc já reparou que quando cai a internet, ainda é possivel mexer no gmail, e quando a internet volta continua normal, é isso aí, o mundo vai mudando e tudo que se taxa como regra hoje pode estar sendo derrubado amanhã.

Hoje existe uma forte tendencia das aplicações se tornarem web. Mas seja Desktop ou Web, no final o importante é a solução atender, satisfazer e agregar valor ao cliente.

Julio Carvalho
julio.carvalho@gmail.com