Como trabalhar juntos um sistema e-commerce e sistema administrativo interno?

4 respostas
wandersonxs

Pessoal,
tenho uma dúvida bem simples que gostaria de opiniões de vocês.
É o seguinte estou desenvolvendo um sistem de E-commerce de vendas e alguns sistemas administrativos internos tipo fluxo de caixa, fazer analise sobre os dados de vendas, comissão e salário de funcionários, etc…

1- Ambos os sistemas serão feitos em JSP, JSF, Hibernate e postgresql.
2- Os sistemas administrativos armazenaremos em um servidor interno (até por questão de segurança) da empresa o outro sistema que é o de E- Commerce armazenaremos em um provedor qualquer.

Com estes pontos surgem minhas dúvidas, estes dois sistemas precisaram trabalhar com dados que ambos necessitam, exemplo:

No sistema de e-commerce  terei a tabela de clientes, pedidos e produtos. Mas eu precisarei destes dados também no meu sistema administrativo, tipo os dados de clientes para gerar mala direta e outras coisas.

       Então a minha pergunta é como vocês  lidam com este cenário?
       Eu estou pensando em criar um modelo de dados igual e ficar atualizando os dados a noite. Tipo gerar um arquivo texto e atualizar a tabela dos sistemas administrativos. Será que é o mais correto?

Obrigado
Wanderson 8)
8)

4 Respostas

Fabricio_Cozer_Marti

Replicar dados não acho legal nesse caso, até porque os dois sistemas ainda estão sendo desenvolvidos.

Integrá-los de forma que tabelas não sejam duplicadas pode ser a melhor opção, até para manter dados consistentes , etc…

Edufa

Replicar os dados tem outro problema, não sei as necessidades, mas replicando vc não terá uma visão online do sistema de e-commerce, isso pode ser um problema.

Já acessando os mesmos dados, usando hibernate, cache, etc, tem o problema de dados inconsistentes, mas acredito que deve ter algo para ajudar isso, também estou curioso.

I

Eu já trabalhei com esse cenário. Tudo depende da sua infra estrutura… Em uma projeto em que trabalhei a empresa tinha o mesmo problema, ou seja o sistema de acesso público (ecommerce) estava no provedor externo e os sistemas legados in-house. A solução é a apresentada abaixo:

  1. No provedor externo um servidor Web onde residiam as aplicações e o mesmo era visível pela internet. Um outro servidor de aplicações onde residiam ejb atrás de um firewall, sendo que este não era visiível pela internet ou seja com um ip inválido.

  2. A comunicação os sistemas legados na empresa, eram feitos via VPN de banda superior onde a comunicação era feita entre o servidor de aplicações e os sistemas legados.

Vale observar que os servidores no provedor eram dedicados, essa arquitetura não funciona se os servidores forem compartilhados.

Logicamente vc poderia ter uma solução utilizando ferramentas de EAI, WebServices e outras. Mas esta acredito ser a mais eficiente, pois vc teria comunucação direta entre os servidores internos e externos (no provedor).

Kenobi

igortak:
Eu já trabalhei com esse cenário. Tudo depende da sua infra estrutura… Em uma projeto em que trabalhei a empresa tinha o mesmo problema, ou seja o sistema de acesso público (ecommerce) estava no provedor externo e os sistemas legados in-house. A solução é a apresentada abaixo:

  1. No provedor externo um servidor Web onde residiam as aplicações e o mesmo era visível pela internet. Um outro servidor de aplicações onde residiam ejb atrás de um firewall, sendo que este não era visiível pela internet ou seja com um ip inválido.

  2. A comunicação os sistemas legados na empresa, eram feitos via VPN de banda superior onde a comunicação era feita entre o servidor de aplicações e os sistemas legados.

Vale observar que os servidores no provedor eram dedicados, essa arquitetura não funciona se os servidores forem compartilhados.

Logicamente vc poderia ter uma solução utilizando ferramentas de EAI, WebServices e outras. Mas esta acredito ser a mais eficiente, pois vc teria comunucação direta entre os servidores internos e externos (no provedor).

Falando em WebServices, vale à pena dar uma olhada na especificação JSR 208.

Dê uma olhadinha também no Mule - ESB para criar uma camada - bus service e integrar com seu serviço.

Online poderia gerar mensagens JMS assíncronas, para não onerar a performance e você pode consumíl-las com WS*. A subsituição do protocolo (tradução) e formato da mensagem, pode ser realizado de forma transparente por uma camada ESB como mule, onde você configura.

O mesmo é bem escalável também, já que aplica o conceito SEDA de processamento - http://www.eecs.harvard.edu/~mdw/proj/seda/

Acredito que essa é uma solução mais elegante. Dica, se você optar em trabalhar com JSP (JSTL para a camada view) + Spring - MVC entre outros benefícios, ainda pode tirar proveito da integração do ESB com o Spring.

[]´s

Criado 19 de maio de 2006
Ultima resposta 19 de mai. de 2006
Respostas 4
Participantes 5