Pergunta

Eu tenho um aplicativo Eclipse RCP com uma instância de um modelo EMF povoada na memória. Qual é a melhor maneira de armazenar esse modelo para sistemas externos para acesso? De acesso pode ocorrer durante e após o tempo de execução.

Lê e escreve sobre o modelo são bastante equilibrada e pode ocorrer várias vezes por segundo.

Eu acho que um banco de dados preenchido usando Hibernate + Teneo + EMF iria funcionar muito bem, mas eu quero saber o que as outras opções estão lá fora.

Foi útil?

Solução

Eu estou usando CDO (Data Objects conectado) em conjunto com EMF de fazer algo similar. Se você usar os exemplos na wiki Eclipse, não é preciso muito tempo para obtê-lo correr. Um par de advertências:

  1. Para dados que mudam frequentemente, você provavelmente vai querer usar o modo nonAudit para sua persistência. Caso contrário, você vai economizar uma nova versão do seu EObject com cada commit, mantendo os antigos também.

  2. Você pode escolher a cometer cada vez que as alterações de dados, ou você pode escolher a cometer em intervalos menos frequentes, dependendo da freqüência com que você precisa para publicar suas atualizações.

  3. Você também tem opções de bloqueio bastante flexíveis se você optar por fazê-lo.

Meu aplicativo usa Derby para persistência, embora será migrado para SQL Server antes de tempo.

Há um webinar 1 hora em Eclipse Vivo ( http://live.eclipse.org/node/ 635 ) que introduz CDO e dá alguns bons exemplos de seu uso.

Outras dicas

Eu iria com Teneo a fazer o trabalho pesado a menos que o desempenho é um problema real (que não será a menos que seus modelos são vastas). Mesmo que seja lento, você pode ajustá-lo usando anotações JPA.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top