Qual a arquitetura mais adequada?  XML
Índice dos Fóruns » Arquitetura de Sistemas
Autor Mensagem
Luiz_Gustavo
Virtual Machine Man
[Avatar]

Membro desde: 30/04/2005 12:55:11
Mensagens: 516
Localização: Assis
Offline

Galera, gostaria de ter a opinião de vocês para a seguinte situação:

Um cliente quer um sistema que possa ser acessado tanto localmente quanto remotamente. Ele gostaria de uma interface gráfica (Swing) para uso local, e a interface para consulta remota seria Web mesmo (Html, JSP, XML, ...).
Porém, não é uma exigência que a interface do sistema local seja Swing, pode ser totalmente Web.

Diante disso pergunto a vocês:

Qual a melhor maneira de distribuir minha aplicação?

Faço tudo Web mesmo?
Caso queira fazer a parte Swing, o que seria mais adequado?

Em ambos os casos é adequado deixar o banco de dados em um servidor remoto (host de hospedagem), ou em uma máquina dedicada, no ambiente do cliente?

Até hoje só fiz aplicações cliente/servidor em Java, com Swing, mas sei programar em Servlets/JSP (e me viro com Struts).
O que me sugerem?

Obrigado aquem puder dar uma opinião.

[]'s

Analista e Desenvolvedor de Sistemas
http://luizgustavoss.blogspot.com/
http://luizgustavoss.wordpress.com/
http://www.linkedin.com/in/luizgustavoss
Procurando uma especialização em Java, SOA e Android? Conheça a TNT Educacional

[Email] [WWW]
andre_salvati
GUJ Ranger

Membro desde: 02/06/2005 16:28:38
Mensagens: 879
Offline

Faço tudo Web mesmo?


Depende. Se os requisitos funcionais te levam a concluir que vc precisa de uma interface rica, pq fazer Web? Não conheço seus requisitos para sugerir a melhor.

Em ambos os casos é adequado deixar o banco de dados em um servidor remoto (host de hospedagem), ou em uma máquina dedicada, no ambiente do cliente?


Tb depende. Se seus requisitos funcionais te levam a concluir que vc pode trabalhar com um servidor no cliente, pq não!? Se, pelo contrário, vc precisa que os dados estejam centralizados e sempre atualizados, a centralização é a melhor opção.

"Don't be evil"

http://empresadigital.inf.br
http://twitter.com/afsalvati
rodrigoy
GUJ Ranger
[Avatar]

Membro desde: 18/04/2006 01:06:28
Mensagens: 758
Localização: São Paulo
Offline

A melhor arquitetura é aquela que resolve os requisitos da maneira mais simples possível.

Na sua situação, se os requisitos permitirem, acho que Web seria melhor. Acho que seria bom ser ou tudo web ou tudo swing.


Rodrigo Yoshima
www.ASPERCOM.com.br

Próximas Turmas:
São Paulo: Scrum 28/agosto | OOAD-UML 13/setembro

Débito Técnico Blog: blog.aspercom.com.br
[WWW]
giovanni_stiwes
JavaGuru

Membro desde: 20/04/2006 09:00:42
Mensagens: 229
Offline

Concordo com o rodrigo, a não ser em pequenas execessões (por exemplo base swing e relatorio via web).
Mas quanto ao caso de usar um o outro, veja estas diretivas:

Se sua interface com o cliente precisa ser rica (navegações, filtros, buscas avançadas, etc) use desktop (swing), a parte visual web (Java Server Faces, Struts, etc) está muito forte, mas ainda não tem o poder do desktop.

Se sua aplicação usa muitas atualizações com o banco e de layout, use swing, pois a carga visual será no cliente, e portanto mais rápida (é lógico cada caso é um caso, se sua maquina cliente for ruim e seu servidor uma maravilha, está afirmação precisa ser repensada).

Tem muitas outras caracteriscas do sistema que pode interfir na sua decisão, mas acho que estas duas são as principais. Mas lembre-se tudo tem excessão.
[MSN]
Luiz_Gustavo
Virtual Machine Man
[Avatar]

Membro desde: 30/04/2005 12:55:11
Mensagens: 516
Localização: Assis
Offline

Obrigado pelas opiniões galera!!

Estarei atento às novas que surgirem!

valeus

Analista e Desenvolvedor de Sistemas
http://luizgustavoss.blogspot.com/
http://luizgustavoss.wordpress.com/
http://www.linkedin.com/in/luizgustavoss
Procurando uma especialização em Java, SOA e Android? Conheça a TNT Educacional

[Email] [WWW]
agsilva
JavaChild

Membro desde: 17/07/2006 20:17:47
Mensagens: 142
Offline

rodrigoy wrote:A melhor arquitetura é aquela que resolve os requisitos da maneira mais simples possível.

Na sua situação, se os requisitos permitirem, acho que Web seria melhor. Acho que seria bom ser ou tudo web ou tudo swing.



Concordo, e voto que tudo seje Web. Você pode deixar uma parte da aplicação funcionando totalmente offline (ou seja, mesmo que o cara tá sem conexão, ele consegue trabalhar) e outra, totalmente online (isso dá o poder de acesso a qualquer computador em qualquer lugar), aí, elas se integram conforme a sua utilização.

Hoje existem muitas tecnologias e conceitos que nos permite construir aplicações web muito melhores e mais produtivas do que em swing, como exemplo, a utilização de AJAX através de frameworks poderosos (cabe a você escolher: dojo, gwt, dwr, etc.).

[]s.
sapulha
JavaTeenager
[Avatar]

Membro desde: 18/07/2006 08:10:20
Mensagens: 180
Localização: São Bernardo do Campo
Offline

Tb concordo com ser totalmente web.
Se o problema for interface rica, temos o Open Lazlo para aplicações RIA, o que possibilita maior interação.

"Se não for, não é! Mais se for, pode ser que não seja!"

Sun Certified Java Programmer For The Java 5
andre_salvati
GUJ Ranger

Membro desde: 02/06/2005 16:28:38
Mensagens: 879
Offline

agsilva wrote:

Concordo, e voto que tudo seje Web. Você pode deixar uma parte da aplicação funcionando totalmente offline (ou seja, mesmo que o cara tá sem conexão, ele consegue trabalhar) e outra, totalmente online (isso dá o poder de acesso a qualquer computador em qualquer lugar), aí, elas se integram conforme a sua utilização.


Como vc faz isso com HTML? Vc consegue trazer uma lista de produtos (por exemplo) para seu cliente e trabalhar com ela sem acesso remoto?

"Don't be evil"

http://empresadigital.inf.br
http://twitter.com/afsalvati
Luca
Moderador
[Avatar]

Membro desde: 06/09/2002 14:30:10
Mensagens: 5796
Localização: São Paulo/SP ou Paraty/RJ
Offline

Olá

Para que fazer duas vezes a camada de apresentação?

Faça uma vez só e logo em Swing. Deixe na máquina local só a camada de apresentação. Faça o sistema tudo separadinho enviando mensagens para o servidor via HTTP/HTTPs através de URLConnection (use HttpClient). No servidor separe também a persistência.

Estando tudo bem separadinho, nada impede de você instalar TUDO em servidor na rede local ou até tudo na mesma máquina. Já fica com tudo pronto para no futuro colocar na Internet.

Swing não é tão difícil assim. Na minha opinião, Swing é tão difícil quanto (JSP+JSTL+EL+boas práticas+um framework MVC) e menos difícil do que JSF+(todo o conteúdo dos parêntesis anteriores)

[]s
Luca

Dare Obasanjo (Program Manager at Microsoft)
"The folks I know from across the industry who have to build large scale Web services on the Web today at Google, Yahoo!, Facebook, Windows Live, Amazon, etc are using RESTful Web services. The only times I encounter someone with good things to say about WS-* is if it is their job to pimp these technologies or they have already "invested" in WS-* and want to defend that investment."


CEP, JMS, JMX e coisas afins (ou não)
http://lucabastos.blogspot.com/
[Email] [WWW]
andre_salvati
GUJ Ranger

Membro desde: 02/06/2005 16:28:38
Mensagens: 879
Offline

sapulha wrote:Tb concordo com ser totalmente web.

agsilva wrote: Concordo, e voto que tudo seje Web.

Há um grande problema entre os profissionais de TI: conceber a solução antes de conhecer o problema.

"Don't be evil"

http://empresadigital.inf.br
http://twitter.com/afsalvati
cv
Moderador
[Avatar]

Membro desde: 04/04/2003 00:32:12
Mensagens: 7839
Localização: São Paulo, SP
Offline

Taz wrote:
sapulha wrote:Tb concordo com ser totalmente web.

agsilva wrote: Concordo, e voto que tudo seje Web.

Há um grande problema entre os profissionais de TI: conceber a solução antes de conhecer o problema.


Tem outro, mais irritante ainda: escrever mal... ('seje'!?)
[Email] [WWW] [Yahoo!] [MSN] [ICQ]
Luiz_Gustavo
Virtual Machine Man
[Avatar]

Membro desde: 30/04/2005 12:55:11
Mensagens: 516
Localização: Assis
Offline

agsilva wrote:
Concordo, e voto que tudo seje Web. Você pode deixar uma parte da aplicação funcionando totalmente offline (ou seja, mesmo que o cara tá sem conexão, ele consegue trabalhar) e outra, totalmente online (isso dá o poder de acesso a qualquer computador em qualquer lugar), aí, elas se integram conforme a sua utilização


E como seria isso? Por exemplo, se eu fizer assim, deixar uma parte funcionando offline e outra online, e deixar o banco remoto, num host de hospedagem, quando o cara não tiver conexão como fica o acesso ao banco a partir da aplicação offline?
E se eu deixar o banco numa máquina dedicada no cliente, com a aplicação web acessando o banco... se o cliente perder a conexão por um tempo, como ficaria o acesso ao banco a partir da aplicação remota (que está no host).
Seria o caso de ter as bases replicadas (uma local e uma remota) e fazer a sincronização de tempos em tempos?

Desculpem se estou falando besteira...

... mas eu ainda chego lá hehehhee

Analista e Desenvolvedor de Sistemas
http://luizgustavoss.blogspot.com/
http://luizgustavoss.wordpress.com/
http://www.linkedin.com/in/luizgustavoss
Procurando uma especialização em Java, SOA e Android? Conheça a TNT Educacional

[Email] [WWW]
Luiz_Gustavo
Virtual Machine Man
[Avatar]

Membro desde: 30/04/2005 12:55:11
Mensagens: 516
Localização: Assis
Offline

Luca wrote:
Faça uma vez só e logo em Swing. Deixe na máquina local só a camada de apresentação. Faça o sistema tudo separadinho enviando mensagens para o servidor via HTTP/HTTPs através de URLConnection (use HttpClient). No servidor separe também a persistência.


Aí está... eu não sabia como fazer a aplicação Swing "conversar" com o servidor... vou dar uma pesquisada sobre HttpClient (vou recorrer ao amigo google, mas aceito sugestões)

Luca wrote:
Estando tudo bem separadinho, nada impede de você instalar TUDO em servidor na rede local ou até tudo na mesma máquina. Já fica com tudo pronto para no futuro colocar na Internet.


O que não me impediria de já colocar somente a camada de apresentação nas máquinas locais logo de cara, e o restante em um host remoto, certo?

Luca wrote:
Swing não é tão difícil assim. Na minha opinião, Swing é tão difícil quanto (JSP+JSTL+EL+boas práticas+um framework MVC) e menos difícil do que JSF+(todo o conteúdo dos parêntesis anteriores)


Eu também não acho Swing difícil não, na verdde trabalho mais com ele...


Galera... muito obrigado a quem está postando sugestões... todas estão sendo proveitosas, podem ter certeza.

Continuo na "escuta" do lado de cá



[]'s

Analista e Desenvolvedor de Sistemas
http://luizgustavoss.blogspot.com/
http://luizgustavoss.wordpress.com/
http://www.linkedin.com/in/luizgustavoss
Procurando uma especialização em Java, SOA e Android? Conheça a TNT Educacional

[Email] [WWW]
Luiz_Gustavo
Virtual Machine Man
[Avatar]

Membro desde: 30/04/2005 12:55:11
Mensagens: 516
Localização: Assis
Offline

olha q doido:

http://www.webstreamsystem.com/wss/demosFrame.htm

pena que não seja Free

Analista e Desenvolvedor de Sistemas
http://luizgustavoss.blogspot.com/
http://luizgustavoss.wordpress.com/
http://www.linkedin.com/in/luizgustavoss
Procurando uma especialização em Java, SOA e Android? Conheça a TNT Educacional

[Email] [WWW]
cv
Moderador
[Avatar]

Membro desde: 04/04/2003 00:32:12
Mensagens: 7839
Localização: São Paulo, SP
Offline

Pq esse surto de 'e se o usuario estiver offline?'

A internet so funciona quando se esta online, e nao vejo ninguem reclamando - pelo contrario, ficar online esta cada vez mais facil, e azar pros que ainda nao se tocaram disso

A menos que a sua base de usuarios alvo seja extremamente leiga, afastada dos grandes centros ou pobre (que talvez seja a pior base de usuarios pra arrumar), nao faz sentido.
[Email] [WWW] [Yahoo!] [MSN] [ICQ]
 
Índice dos Fóruns » Arquitetura de Sistemas
Ir para:   
Powered by JForum 2.1.8 © JForum Team