Idéias de arquitetura por favor

temos 2 filiais aqui
o link entre as duas é feito por rádio, mas é instável, porém temos uma conexão pela internet que pode ser usada de backup

Trata-se de um sistema de emails que eu fiz e é tipo um outlook, ele grava no banco de dados local os emails baixados e enviados.
O problema é que tem que rodar nas duas filiais sem ficar lento, e quando cair o link de rádio seria interessante que as duas filiais conseguissem pelo menos visualizar os emails, mesmo que não seja possível enviar emails.

Pensei em utilizar o sequoia (um projeto que faz cluster de banco de dados de maneira transparente) mas percebi depois de muitos testes que não iria funcionar a contento.

Pensei em usar EJB´s e Cluster no JBoss, mas não sei se atenderiam a minha necessidade.

Então pensei em perguntar a opinião do pessoal, hehehehe

É desejável que um funcionário estando em uma das duas filiais consiga acessar seus emails, mas estando em qualquer uma das duas ele acesse da mesma forma. E se o link estiver fora do ar, o sistema automaticamente assuma o link de internet

A idéia mesmo é q os dois links não parem simultaneamente, mas se parar seja possível pelo menos ver os próprios emails.

Eu fiquei filosofando a respeito, e imaginei q seria muito mais simples garantir que uma conexão sempre exista do que tentar fazer peripércias usando clusters e coisas assim.

Antes que alguém questione, eu usei a nomeclatura emails pra ficar mais fácil de explicar, não são emails são bem parecidos

Obrigado de antemão

Oi

[quote=O Grande Bé] É desejável que um funcionário estando em uma das duas filiais consiga acessar seus emails, mas estando em qualquer uma das duas ele acesse da mesma forma. E se o link estiver fora do ar, o sistema automaticamente assuma o link de internet

A idéia mesmo é q os dois links não parem simultaneamente, mas se parar seja possível pelo menos ver os próprios emails. [/quote]

Pelo que vc escreveu eu entendi que quando alguém envia o “email” as 2 bases são atualisadas tanto na origem como no destino, é isso mesmo?

Como é que vcs trabalham com a conexão via radio e internet? São dois IPs para cada filial que atingem o mesmo alvo?

[]'s

Não entendi direito porque você está desenvolvendo um sistema de email se já existem vários disponíveis gratuitamente. Você está precisando fazer alguma coisa bem específica que não seja possível extender algum existente?

Fantomas:
Hoje o sistema trabalha acessando uma base de dados única, quando envio um email gravo ele no banco e envio ele ao servidor de emails.
A idéia é que isso fique disponível nas duas filiais simultaneamente, por isso pensei em talvez fazer um cluster de banco de dados, ou usar um servidor EJB em uma das duas filiais e fazer o acesso a ele usando tratamento de falhas (entre os dois IPs)

Basicamente é isso, Dois ips em cada filial que atingem o mesmo alvo.

Emerson Macedo:
Estou fazendo uma coisa bem específica.

Oi Grande Bé.

Não se entendi sua problema direito mas aqui vai uma idéia.

Vou assumir o seguinte:

a) Existem duas filiais, uma é A e a outra é B.

b) Existe UM sistema que é executado na filal A e na filial B.

c) Existe um banco de dados na fila A e outro na filial B.

d) Na filia A tem um IP para internet que aponta para a filial B, outro IP para linha com sinal de radio que aponta para a filial B e outro que aponta para o banco de dados na FILIAL A.

e) Na filia B tem um IP para internet que aponta para a filial A, outro IP para linha com sinal de radio que aponta para filial A e outro que aponta para o banco de dados na FILIAL B.

f) Existe um usuário.

O usuário está na filial A e irá VERIFICAR seus emails.

  1. Executar o login.

  2. Autenticar o usuario.

  3. Atualizar o banco de dados com os emails que estão na filial B.
    3.a) Acessar o IP para linha de rádio, se houver sucesso segue para o item 3.c
    caso contrario segue para o item b.
    3.b) Acessar o IP para internet, se houver sucesso segue para o item 3.c
    caso contrario segue para o item 4.
    3.c) Ler todos emails que estão da filial B e NÃO ESTÃO NA FILIAL A e atualiza a base de dados da filial A (o usuário está nela).

  4. Ler os emails do usuário contidos no banco de dados e apresentar para o usuário.

  5. Finalizar a execução.

O usuário esta na filial A e irá ENVIAR um email.

  1. Executar o login.

  2. Autenticar o usuario.

  3. Preencher um email.

  4. confirmar o envio.

  5. Atualizar o banco de dados da filial A (o usuário está nela).

  6. Atualizar o banco de dados da filial B.
    6.a) Acessar o IP para linha de rádio, se houver sucesso segue para o item 6.c
    caso contrario segue para o item b.
    6.b) Acessar o IP para internet, se houver sucesso segue para o item 6.c
    caso contrario segue para o item 7.
    6.c) Incluir o email na base de dados da filial B.

  7. Finalizar a execução.

Se o usuário ESTIVER NA FILIAL B é só inverter as referencias tudo que é filial A vira filial B, no software isso pode ser resolvido com configurações locais, ou seja, toda vez que os sistema é executado ele lê as configurações para descobrir quem é a filial remota.

Resumindo, toda vez que o usuário entrar no sistema será executado um ajuste nas bases de dados deixando-as “iguais”. Caso isso não seja possível apenas lê o que está na base local e apresenta para o usuário.

Carinha, espero ter ajudado ao menos alguem mais a ter uma idéia melhor que essa.

System.out.println(“Abraços!”);