2009-06-26 16 views
6

Tengo una aplicación Eclipse RCP con una instancia de un modelo EMF poblado en la memoria. ¿Cuál es la mejor forma de almacenar ese modelo para acceder a los sistemas externos? El acceso puede ocurrir durante y después del tiempo de ejecución.¿Cuál es la mejor manera de serializar una instancia de modelo EMF?

Las lecturas y escrituras del modelo son bastante equilibradas y pueden ocurrir varias veces por segundo.

Creo que una base de datos poblada usando Hibernate + Teneo + EMF funcionaría muy bien, pero quiero saber qué otras opciones existen.

Respuesta

5

Estoy usando CDO (Connected Data Objects) junto con EMF para hacer algo similar. Si usa los ejemplos en la wiki de Eclipse, no tardará demasiado en hacerlo funcionar. Un par de advertencias:

  1. Para los datos que cambian a menudo, es probable que desee utilizar el modo de no intervención para su persistencia. De lo contrario, guardará una nueva versión de su EObject con cada confirmación, conservando también las anteriores.

  2. Puede optar por comprometerse cada vez que sus datos cambien, o puede optar por comprometerse a intervalos menos frecuentes, dependiendo de la frecuencia con que necesite publicar sus actualizaciones.

  3. También tiene opciones de bloqueo bastante flexibles si elige hacerlo.

Mi aplicación utiliza Derby para la persistencia, a pesar de que se migrará a SQL Server después de poco tiempo.

Hay un seminario web de 1 hora en Eclipse Live (http://live.eclipse.org/node/635) que presenta CDO y ofrece algunos buenos ejemplos de su uso.

1

Me gustaría ir con Teneo para hacer el trabajo pesado a menos que el rendimiento sea un problema real (que no será a menos que tus modelos sean muy grandes). Incluso si es lento, puedes sintonizarlo usando anotaciones JPA.

Cuestiones relacionadas