Question

J'ai une application Eclipse RCP avec une instance d'un modèle EMF renseignée en mémoire. Quel est le meilleur moyen de stocker ce modèle pour que les systèmes externes puissent y accéder? L'accès peut avoir lieu pendant et après le temps d'exécution.

Les lectures et les écritures du modèle sont assez équilibrées et peuvent se produire plusieurs fois par seconde.

Je pense qu'une base de données contenant Hibernate + Teneo + EMF fonctionnerait bien, mais je veux savoir quelles autres options existent.

Était-ce utile?

La solution

J'utilise CDO (Objets de données connectés) avec EMF pour faire quelque chose de similaire. Si vous utilisez les exemples du wiki Eclipse, son exécution ne prend pas beaucoup de temps. Quelques mises en garde:

  1. Pour les données qui changent souvent, vous voudrez probablement utiliser le mode non Audit pour votre persistance. Sinon, vous sauvegarderez une nouvelle version de votre EObject avec chaque commit, tout en conservant les anciennes.

  2. Vous pouvez choisir de valider à chaque modification de vos données ou à des intervalles moins fréquents, en fonction de la fréquence à laquelle vous devez publier vos mises à jour.

  3. Si vous le souhaitez, vous disposez également d'options de verrouillage assez souples.

Mon application utilise Derby pour la persistance, même si elle sera migrée vers SQL Server d'ici peu.

Un webinaire d'une heure sur Eclipse Live ( http://live.eclipse.org/node/ 635 ) qui présente CDO et donne quelques bons exemples de son utilisation.

Autres conseils

J'irais avec Teneo faire le gros travail sauf si la performance est un réel problème (ce qui ne sera pas le cas si vos modèles ne sont pas vastes). Même s'il est lent, vous pouvez le régler à l'aide d'annotations JPA.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top