| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Java EE (J2EE) и Spring > Выбор фреймворка ORM . XML <-> java + DB <-> java |
| Автор: DmitryPS 3.6.2008, 16:21 |
| Всем доброго времени суток. Нужен совет История вполне обычна. Пришло время расширять функционал проекта. Сразу уточню — проект реалтаймовский. Существует необходимость маппить объекты проекта двумя путями: XML <-> java DB <-> java Принцип работы с данными. 1. Запуск системы. Инициализируется кэш объектов. Данные берутся из базы. 2. С определенной периодичностью кэш сбрасывается в базу. Т.е. однонаправленная синхронизация. 3. Так же периодически возникает необходимость маппить обекты в/из XML . (web сервисы) В данный момент маппинг реализован в обертках для объектов системы. Быстро, но поддерживать и расширять такой код тяжко. Изобретать велосипед и писать своей фреймворк желания никакого нет. Поэтому хочется чего то готового Умеющего делать XML <-> java + DB <-> java. Желательно с описанием маппирования в аннотациях. На первый взгляд, выбор огромен. http://java-source.net/open-source/persistence Hibernate и JPA не катят на мой взгляд, Они для другого класса задач. Может что посоветуете? |
| Автор: COVD 3.6.2008, 22:49 | ||
А что это значит ( просто интересно, для ликбеза, потому что этим термином пользуются достаточно широко. Одно из определений реалтайма - когда система реагирует на событие с фиксированной известной задержкой. ) ? |
| Автор: DmitryPS 4.6.2008, 09:16 | ||
Как вариант, но хотелось бы, что бы один фреймворк решал задачи маппирования XML <-> java и DB <-> java Не угодил тем: 1. Не умеет работать с XML 2. Используем собственный кеш объектов заточенный на быстрый поиск. По сути от JPA нужно только маппирование. SQL запросы для выборок объектов не нужны. 3. Синхронизация односторонняя. Кэш периодически сохраняется в базу. Т.е. если кто то что то делает в базе, то нам эти изменения неинтересны.
Ваше определение верно. Не до конца корректно сформулировал определение нашей системы. Она реалтаймовская и высокопроизводительная, т.е. верхняя граница времени выполнения запроса в системе жестко задана и достаточно мала . |
| Автор: ecologist 4.6.2008, 09:43 |
| Если есть критичность по времени, то может быть не надо вообще использовать фреймворки ? В конце концов написать простые классы для работы с таблицами, повесить транзакции - и не мучаться. |
| Автор: AlexeyVorotnikov 4.6.2008, 10:10 | ||
Попробуйте посмотреть в сторону http://www.castor.org/. Вроде, они там обещают всё в одном флаконе. |
| Автор: DmitryPS 4.6.2008, 10:29 | ||||
Сейчас именно такая ситуация. Код пухнет + тяжело поддерживать. Опять же есть требование маппирования в/из XML. Т.е придется писать "простые классы для работы с" уже XML. Скорость записи в базу данных не такая принципиальная. Сохранение кэша в базу происходит с определенной периодичностью, а не после каждой изменения объекта, связанного с базой. Думаю проапдейтить 1000 записей раз в 10 секунд - фреймворка хватит. Основное требование, быстрый поиск. Поиск по объектам происходит не в базе , а в памяти. Структура кэша специально заточена под поиск.
Рассматриваю как вариант. Не ясно насколько данный проект живет честно говоря. Мало о нем известно. |
| Автор: w1nd 4.6.2008, 11:46 | ||
BEA Liquid data - то, что доктор прописал. Но если словами "проект реалтаймовский" вы хотите указать на требования к производительности системы, то с такими аппетитами (xml <-> java | db <-> java) забудьте об этом сразу.
А двусторонней при работе с БД не бывает и быть не может. Точнее, можно сделать, но пришибленные показатели производительности (ввиду выше означенных аппетитов) и вовсе распластаются под плинтусом. Не говоря уже о требованиях к железу. |
| Автор: DmitryPS 4.6.2008, 12:23 | ||
Может не до конца четко описал суть задачи в первых постах.Повторюсь. Скорость записи в базу данных не такая принципиальная. Сохранение кэша в базу происходит с определенной периодичностью, а не после каждого изменения объекта, связанного с базой. Думаю, проапдейтить 1000 записей раз в 10 секунд - фреймворка хватит. Основное требование, быстрый поиск. Поиск по объектам происходит не в базе , а в памяти. Структура кэша специально заточена под быстрый поиск. Ядро системы работает с кэшем. А фоновые потоки выполняют маппирование (xml <-> java | db <-> java) . Сохраняют кэш в базу и организуют взаимодействие с web консолью |
| Автор: DmitryPS 10.6.2008, 13:57 |
| Всем доброго времени суток. Закрою вопрос Универсального фреймворка не нашел. Остановился на связке: hibernate + jaxb. Исходя из того , что. 1. Оба фреймворка известные, простые для внедрения, помирать не собираются. 2. Поддерживают аннотации |