Каков наилучший способ сериализации экземпляра модели EMF? - PullRequest
6 голосов
/ 27 июня 2009

У меня есть приложение Eclipse RCP с экземпляром модели EMF, заполненным в памяти. Каков наилучший способ хранения этой модели для доступа внешних систем? Доступ может происходить во время и после выполнения.

Чтение и запись модели довольно сбалансированы и могут происходить несколько раз в секунду.

Я думаю, что база данных, заполненная с помощью Hibernate + Teneo + EMF, будет работать хорошо, но я хочу знать, какие есть другие варианты.

Ответы [ 2 ]

5 голосов
/ 13 августа 2009

Я использую CDO (связанные объекты данных) в сочетании с EMF, чтобы сделать что-то подобное. Если вы используете примеры в Eclipse wiki, это не займет много времени, чтобы запустить его. Пара предостережений:

  1. Для данных, которые часто изменяются, вы, вероятно, захотите использовать неАудитный режим для сохранения. В противном случае вы будете сохранять новую версию вашего EObject с каждым коммитом, сохраняя также и старые.

  2. Вы можете выбрать фиксацию каждый раз, когда ваши данные изменяются, или вы можете выбрать фиксацию с менее частыми интервалами, в зависимости от того, как часто вам нужно публиковать свои обновления.

  3. У вас также есть достаточно гибкие варианты блокировки, если вы решите это сделать.

Мое приложение использует Derby для сохранения, хотя оно вскоре будет перенесено на SQL Server.

В Eclipse Live есть 1-часовой вебинар (http://live.eclipse.org/node/635), который представляет CDO и дает несколько хороших примеров его использования.

1 голос
/ 12 июля 2009

Я бы пошел с Teneo, чтобы выполнять тяжелую работу, если только производительность не является реальной проблемой (чего не будет, если ваши модели не очень большие). Даже если он медленный, вы можете настроить его с помощью аннотаций JPA.

...