| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 16/06/2010 18:55:59
|
joellobo
Thread.start()
![[Avatar]](/images/avatar/7c3a966d88a80726a95c2e16e56c3997.jpg)
Membro desde: 27/08/2007 14:45:01
Mensagens: 33
Localização: Fortaleza/CE
Offline
|
Caros, qual a alternativa para os sistemas monolíticos? O que vcs acham de partitions + restful? Seria uma boa escolha mesmo sabendo que os módulos estariam no mesmo servidor fisicamente?
This message was edited 1 time. Last update was at 17/06/2010 15:25:58
|
Joel Lobo
blogdojoellobo.blogspot.com |
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 16/06/2010 19:28:26
|
mochuara
GUJ Master
Membro desde: 20/05/2009 11:21:32
Mensagens: 1776
Offline
|
O topico promete hein..
mas como vc define o que seria uma boa escolha??
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 17/06/2010 00:15:01
|
rodrigoy
GUJ Ranger
![[Avatar]](/images/avatar/cf79ae6addba60ad018347359bd144d2.jpg)
Membro desde: 18/04/2006 01:06:28
Mensagens: 758
Localização: São Paulo
Offline
|
Joel, tai um bom artigo pra você escrever...
(e realmente não acho que esse assunto terá audiência aqui, se fosse repositórios com REST daria mais Ibope)
This message was edited 1 time. Last update was at 17/06/2010 00:16:26
|
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
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 17/06/2010 00:31:32
|
Rubem Azenha
GUJ Master
![[Avatar]](/images/avatar/cb953f6ca5923f7517125db46ed1293d.jpg)
Membro desde: 28/06/2004 00:10:43
Mensagens: 1933
Localização: São Paulo, SP
Offline
|
Utilizar REST para comunicação entre os módulos de um mesmo sistema que fica no mesmo servidor físico? Não conheço o seu projeto, mas não acho uma boa idéia.
Será que não da pra criar uma subcamada em cada módulo pra isolar as dependências entre um módulo e outro pra chamar "direto"? (Se a idéia é os módulos serem independentes e cada um ter o seu ciclo de vida)
De qualquer forma, eu acredito que o ideal seja criar uma abstração para não deixar cravado do sua lógica de neǵocio uma tecnologia de comunicação específica.
(PS: @yoshima compartilho o seu sentimento...)
|
Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the Universe trying to produce bigger and better idiots. So far, the Universe is winning
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 17/06/2010 01:01:11
|
rodrigoy
GUJ Ranger
![[Avatar]](/images/avatar/cf79ae6addba60ad018347359bd144d2.jpg)
Membro desde: 18/04/2006 01:06:28
Mensagens: 758
Localização: São Paulo
Offline
|
Rubem, acho que a passagem de mensagens é um aspecto a ser considerado.
|
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
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 17/06/2010 01:03:54
|
Rubem Azenha
GUJ Master
![[Avatar]](/images/avatar/cb953f6ca5923f7517125db46ed1293d.jpg)
Membro desde: 28/06/2004 00:10:43
Mensagens: 1933
Localização: São Paulo, SP
Offline
|
Não entendi muito bem o que você quis dizer... Alguma coisa em particular eu deveria ter considerado na minha sugestão?
This message was edited 1 time. Last update was at 17/06/2010 01:04:17
|
Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the Universe trying to produce bigger and better idiots. So far, the Universe is winning
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 17/06/2010 12:41:16
|
joellobo
Thread.start()
![[Avatar]](/images/avatar/7c3a966d88a80726a95c2e16e56c3997.jpg)
Membro desde: 27/08/2007 14:45:01
Mensagens: 33
Localização: Fortaleza/CE
Offline
|
Rubem Azenha wrote:Utilizar REST para comunicação entre os módulos de um mesmo sistema que fica no mesmo servidor físico? Não conheço o seu projeto, mas não acho uma boa idéia.
Será que não da pra criar uma subcamada em cada módulo pra isolar as dependências entre um módulo e outro pra chamar "direto"? (Se a idéia é os módulos serem independentes e cada um ter o seu ciclo de vida)
De qualquer forma, eu acredito que o ideal seja criar uma abstração para não deixar cravado do sua lógica de neǵocio uma tecnologia de comunicação específica.
(PS: @yoshima compartilho o seu sentimento...)
Criar uma abstração pra isolar os módulos funciona mas com alguns problemas - é assim q trabalho hoje - por exemplo, p algumas alterações em um módulo eu preciso re-compilar e empacotar tudo.
Um EJB de um módulo acessando outro EJB de outro módulo está "cravado" uma tecnologia de comunicação. A diferença é que com REST eu não tenho dependência com tecnologia. Estou apenas utilizando um protocolo de aplicação.
|
Joel Lobo
blogdojoellobo.blogspot.com |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 17/06/2010 14:18:02
|
mochuara
GUJ Master
Membro desde: 20/05/2009 11:21:32
Mensagens: 1776
Offline
|
joellobo wrote:Criar uma abstração pra isolar os módulos funciona mas com alguns problemas - é assim q trabalho hoje - por exemplo, p algumas alterações em um módulo eu preciso re-compilar e empacotar tudo.
Por isso perguntei o que seria uma boa escolha pra vc. Mas sabendo que vc usa EJB remoto para comunicacao local, porque nao REST?
joellobo wrote:
Um EJB de um módulo acessando outro EJB de outro módulo está "cravado" uma tecnologia de comunicação. A diferença é que com REST eu não tenho dependência com tecnologia. Estou apenas utilizando um protocolo de aplicação.
Ambos o torna depende de alguma tecnologia de comunicacao. A diferenca que a web é baseada em padroe abertos. Porque ser independente de tecnologia é tao importante pra vc? Me parece um caso de "otimizacao prematura".
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 19/06/2010 23:45:58
|
Rubem Azenha
GUJ Master
![[Avatar]](/images/avatar/cb953f6ca5923f7517125db46ed1293d.jpg)
Membro desde: 28/06/2004 00:10:43
Mensagens: 1933
Localização: São Paulo, SP
Offline
|
joellobo wrote:
Criar uma abstração pra isolar os módulos funciona mas com alguns problemas - é assim q trabalho hoje - por exemplo, p algumas alterações em um módulo eu preciso re-compilar e empacotar tudo.
There ain't no such thing as a free lunch
Mas recompilar e empacotar tudo é um custo tão grande assim?
joellobo wrote:Um EJB de um módulo acessando outro EJB de outro módulo está "cravado" uma tecnologia de comunicação. A diferença é que com REST eu não tenho dependência com tecnologia. Estou apenas utilizando um protocolo de aplicação.
Se você usa REST, você TEM dependência com a tecnologia
Não existe milagre, você ter que colocar em algum lugar do seu código algo que chame o outro módulo. Pode ser um HTTPClient, um lookup JNDI para um EJB ou usar algum framework como Restifulie. Você pode fazer isso direto no código que fica na tua camada de negócios ou criar uma abstração para isso.
This message was edited 1 time. Last update was at 19/06/2010 23:46:29
|
Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the Universe trying to produce bigger and better idiots. So far, the Universe is winning
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 20/06/2010 16:39:48
|
Bruno Laturner
GUJ Expert
![[Avatar]](/images/avatar/5800ccd9514fd789d08e5831951aa6bc.jpg)
Membro desde: 18/02/2008 16:17:53
Mensagens: 3002
Offline
|
Rubem Azenha wrote:
joellobo wrote:
Criar uma abstração pra isolar os módulos funciona mas com alguns problemas - é assim q trabalho hoje - por exemplo, p algumas alterações em um módulo eu preciso re-compilar e empacotar tudo.
There ain't no such thing as a free lunch
Mas recompilar e empacotar tudo é um custo tão grande assim?
Eu tenho uma situação parecida, os gerentes tem alergia extrema a deixar qualquer sistema indisponível, o que afeta o atendimento de algumas centenas de milhares de pessoas, logística no estado inteiro, e outras empresas que se integram conosco.
Daí imagine o que é atualizar um subsistema que quase todos os sistemas dependem, que espere aquela janela semanal de deploys, ou reze.
Nesta realidade de querer indisponibilidade zero que concordo em ter sistemas integrados via rede, independente do método usado, mesmo com seus módulos estando num mesmo lugar fisicamente.
This message was edited 1 time. Last update was at 20/06/2010 16:40:22
|
A resposta acima foi achada em menos de 5 minutos no google.
The prisoner falls in love with his chains. --E.W. Dijkstra |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 21/06/2010 00:10:13
|
Rubem Azenha
GUJ Master
![[Avatar]](/images/avatar/cb953f6ca5923f7517125db46ed1293d.jpg)
Membro desde: 28/06/2004 00:10:43
Mensagens: 1933
Localização: São Paulo, SP
Offline
|
Agora entendi melhor o problema. Mas se você tem que empacotar e recompilar tudo, provavelmetne você esta com um problema de dependencia circular, não?
Se não você deveria ter que empacotar e recompilar apenas os módulos alterados e os modulos afetados, caso a alteração quebre algum contrato. Mas não tem muito segredo não... você vai ter que fazer isso independente do protocolo de comunicação entre os módulos. Se o contrato for quebrado, você vai ter que corrigir o problema nos módulos que antes seguiam o contrato.
Acho que modularização é uma das coisas mais complexas que podemos enfrentas no desenvolvimento de software, mas se optarmos por não modularizarmos, o problema pode ser ainda pior. Não acho uma boa idéia lidar com um módulo gigante e complexo. Prefiro lidar com o problema de dependencias entre modulos do que lidar com as complexidades de alterar um uniico modulo gigantesco.
|
Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the Universe trying to produce bigger and better idiots. So far, the Universe is winning
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 23/06/2010 09:17:22
|
derlon
JavaTeenager
Membro desde: 12/12/2009 14:07:01
Mensagens: 150
Offline
|
joellobo wrote:.. Criar uma abstração pra isolar os módulos funciona mas com alguns problemas - é assim q trabalho hoje - por exemplo, p algumas alterações em um módulo eu preciso re-compilar e empacotar tudo. ...
@joellobo, Q tal "transportar" seus Módulos para ficarem cada um deles em um Projeto Java, empacotando-os em um .JAR, importando-os em um "Projetão maior", um .WAR, p/ex.??! (separação física p/ facilitar atualizações/manutenções) Ah, e logicamente, vc poderia definir "a comunicação" entre os Módulos através de 'Camada Anti-corrupção', como orientado p/ DDD, porem neste caso, seriam "stubs" de um Módulo para outro. O q acham??!
This message was edited 1 time. Last update was at 23/06/2010 09:23:49
|
|
|
 |
|
|