Pregunta

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

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

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

¿Fue útil?

Solución

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

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

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

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

Mi aplicación usa Derby para la persistencia, aunque se migrará a SQL Server en poco tiempo.

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

Otros consejos

Me gustaría ir con Teneo para hacer el trabajo pesado a menos que el rendimiento sea un problema real (lo que no será a menos que sus modelos sean enormes). Incluso si es lento, puede ajustarlo usando anotaciones JPA.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top