Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Выбор фреймворка ORM . XML <-> java + DB <-> java 
V
    Опции темы
DmitryPS
Дата 3.6.2008, 16:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 22
Регистрация: 20.4.2007
Где: Казань

Репутация: нет
Всего: 1



Всем доброго времени суток.
Нужен совет
История вполне обычна. Пришло время расширять функционал проекта.

Сразу уточню — проект реалтаймовский.
Существует необходимость маппить объекты проекта двумя путями:
XML <-> java
DB <-> java
Принцип работы с данными.
1. Запуск системы. Инициализируется кэш объектов. Данные берутся из базы.
2. С определенной периодичностью кэш сбрасывается в базу. Т.е. однонаправленная синхронизация.
3. Так же периодически возникает необходимость маппить обекты в/из XML . (web сервисы)

В данный момент маппинг реализован в обертках для объектов системы. Быстро, но поддерживать и расширять такой код тяжко.
Изобретать велосипед и писать своей фреймворк желания никакого нет.
Поэтому хочется чего то готового
Умеющего делать XML <-> java + DB <-> java. Желательно с описанием маппирования в аннотациях.

На первый взгляд, выбор огромен. http://java-source.net/open-source/persistence
Hibernate и JPA не катят на мой взгляд, Они для другого класса задач.

Может что посоветуете? 
PM MAIL ICQ   Вверх
powerOn
Дата 3.6.2008, 22:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


software saboteur
****


Профиль
Группа: Участник
Сообщений: 4367
Регистрация: 7.10.2005

Репутация: 28
Всего: 159



Цитата(DmitryPS @  3.6.2008,  17:21 Найти цитируемый пост)
XML <-> java

Думаю что JAXB поможет.

Цитата(DmitryPS @  3.6.2008,  17:21 Найти цитируемый пост)
На первый взгляд, выбор огромен. http://java-source.net/open-source/persistence
Hibernate и JPA не катят на мой взгляд, Они для другого класса задач.


Чем JPA не угодил?


--------------------
user posted image нет времени думать - нужно писать КОД!

PM MAIL   Вверх
COVD
Дата 3.6.2008, 22:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1655
Регистрация: 26.7.2005

Репутация: 4
Всего: 43



Цитата

Сразу уточню — проект реалтаймовский.

А что это значит ( просто интересно, для ликбеза, потому что этим термином пользуются достаточно широко. Одно из определений реалтайма - когда система реагирует на событие с фиксированной известной задержкой.  ) ?

Это сообщение отредактировал(а) COVD - 3.6.2008, 22:54
PM MAIL   Вверх
DmitryPS
Дата 4.6.2008, 09:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 22
Регистрация: 20.4.2007
Где: Казань

Репутация: нет
Всего: 1



Цитата(powerOn @  3.6.2008,  22:28 Найти цитируемый пост)

Думаю что JAXB поможет.


Как вариант, но хотелось бы, что бы один фреймворк решал задачи маппирования  XML <-> java и DB <-> java


Цитата(powerOn @  3.6.2008,  22:28 Найти цитируемый пост)
Чем JPA не угодил? 


Не угодил тем:
 1. Не умеет работать с XML 
 2. Используем собственный кеш объектов заточенный на быстрый поиск. По сути от JPA нужно только маппирование. SQL запросы для выборок объектов не нужны.
 3. Синхронизация односторонняя. Кэш периодически сохраняется в базу. Т.е. если кто то что то делает в базе, то нам эти изменения неинтересны.


Цитата(COVD @  3.6.2008,  22:49 Найти цитируемый пост)
А что это значит ( просто интересно, для ликбеза, потому что этим термином пользуются достаточно широко. Одно из определений реалтайма - когда система реагирует на событие с фиксированной известной задержкой.  ) ?


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

PM MAIL ICQ   Вверх
ecologist
Дата 4.6.2008, 09:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 452
Регистрация: 28.2.2007

Репутация: 5
Всего: 9



Если есть критичность по времени, то может быть не надо вообще использовать фреймворки ?
В конце концов написать простые классы для работы с таблицами, повесить транзакции - и не мучаться.

PM MAIL   Вверх
AlexeyVorotnikov
Дата 4.6.2008, 10:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 658
Регистрация: 18.6.2007
Где: Москва

Репутация: 3
Всего: 18



Цитата(DmitryPS @  4.6.2008,  10:16 Найти цитируемый пост)
хотелось бы, что бы один фреймворк решал задачи маппирования  XML <-> java и DB <-> java

Попробуйте посмотреть в сторону The Castor Project. Вроде, они там обещают всё в одном флаконе.


--------------------
RTFM!
Три источника и три составные части Java: The Java Language Specification, Java Platform API Specification, The Java Virtual Machine Specification
PM MAIL   Вверх
DmitryPS
Дата 4.6.2008, 10:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 22
Регистрация: 20.4.2007
Где: Казань

Репутация: нет
Всего: 1



Цитата(ecologist @  4.6.2008,  09:43 Найти цитируемый пост)
Если есть критичность по времени, то может быть не надо вообще использовать фреймворки ?
В конце концов написать простые классы для работы с таблицами, повесить транзакции - и не мучаться.



Сейчас именно такая ситуация. Код пухнет + тяжело поддерживать.
Опять же есть требование маппирования в/из XML. Т.е придется писать "простые классы для работы с" уже XML.

Скорость записи в базу данных не такая принципиальная. Сохранение кэша в базу происходит с определенной периодичностью, а не после каждой изменения объекта, связанного с базой. Думаю проапдейтить 1000 записей раз в 10 секунд - фреймворка хватит.
 
Основное требование, быстрый поиск. Поиск по объектам происходит не в базе , а в памяти. Структура кэша специально заточена под поиск.



Цитата(AlexeyVorotnikov @  4.6.2008,  10:10 Найти цитируемый пост)

Попробуйте посмотреть в сторону The Castor Project. Вроде, они там обещают всё в одном флаконе. 


Рассматриваю как вариант. Не ясно насколько данный проект живет честно говоря. Мало о нем известно.
PM MAIL ICQ   Вверх
w1nd
Дата 4.6.2008, 11:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вертилятор
***


Профиль
Группа: Завсегдатай
Сообщений: 1077
Регистрация: 22.3.2006
Где: Москва

Репутация: 7
Всего: 54



BEA Liquid data - то, что доктор прописал. Но если словами "проект реалтаймовский" вы хотите указать на требования к производительности системы, то с такими аппетитами (xml <-> java | db <-> java) забудьте об этом сразу.

Цитата(DmitryPS @  4.6.2008,  09:16 Найти цитируемый пост)
Синхронизация односторонняя. Кэш периодически сохраняется в базу. Т.е. если кто то что то делает в базе, то нам эти изменения неинтересны.

А двусторонней при работе с БД не бывает и быть не может. Точнее, можно сделать, но пришибленные показатели производительности (ввиду выше означенных аппетитов) и вовсе распластаются под плинтусом. Не говоря уже о требованиях к железу.

Это сообщение отредактировал(а) w1nd - 4.6.2008, 11:48


--------------------
user posted imageuser posted image
PM MAIL ICQ   Вверх
DmitryPS
Дата 4.6.2008, 12:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 22
Регистрация: 20.4.2007
Где: Казань

Репутация: нет
Всего: 1



Цитата(w1nd @  4.6.2008,  11:46 Найти цитируемый пост)
BEA Liquid data - то, что доктор прописал. Но если словами "проект реалтаймовский" вы хотите указать на требования к производительности системы, то с такими аппетитами (xml <-> java | db <-> java) забудьте об этом сразу.


Может не до конца четко описал суть задачи в первых постах.Повторюсь.

Скорость записи в базу данных не такая принципиальная. Сохранение кэша в базу происходит с определенной периодичностью, а не после каждого изменения объекта, связанного с базой. Думаю, проапдейтить 1000 записей раз в 10 секунд - фреймворка хватит.
 
Основное требование, быстрый поиск. Поиск по объектам происходит не в базе , а в памяти. Структура кэша специально заточена под быстрый поиск.

Ядро системы работает с кэшем. А фоновые потоки выполняют  маппирование (xml <-> java | db <-> java) . 
Сохраняют кэш в базу и организуют взаимодействие с web консолью

Это сообщение отредактировал(а) DmitryPS - 4.6.2008, 12:46
PM MAIL ICQ   Вверх
DmitryPS
  Дата 10.6.2008, 13:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 22
Регистрация: 20.4.2007
Где: Казань

Репутация: нет
Всего: 1



Всем доброго времени суток.

Закрою вопрос

Универсального фреймворка не нашел.
Остановился на связке: hibernate + jaxb.

Исходя из того , что.

1. Оба фреймворка известные, простые для внедрения, помирать не собираются.
2. Поддерживают аннотации
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java EE (J2EE) и Spring | Следующая тема »


 




[ Время генерации скрипта: 0.0839 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.