Связанные объекты данных
Подключенные объекты данных ( CDO ) — это бесплатная реализация распределенной общей модели поверх Eclipse Modeling Framework (EMF).
С помощью CDO программисты могут легко улучшить существующие модели EMF таким образом, чтобы их можно было хранить и впоследствии поддерживать в центральном репозитории моделей. Хотя реляционное сопоставление объектов с источником данных JDBC на стороне сервера поставляется по умолчанию, CDO предоставляет подключаемые адаптеры хранения , которые позволяют разрабатывать и использовать различные преобразователи (например, на основе Hibernate или OODB ). другие интеграции моделей поверх протокола CDO На стороне клиента CDO обеспечивает интеграцию по умолчанию с EMF, Eclipse Modeling Framework, хотя возможны и .
Возможности интеграции модели
[ редактировать ]- Интеграция EMF на уровне модели (в отличие от уровня редактирования)
- Поддержка сгенерированных моделей (просто переключите два свойства .genmodel)
- Поддержка динамических моделей (просто загрузите файл .ecore и зафиксируйте его в репозитории).
- Поддержка устаревших моделей (для скомпилированных моделей без доступа к .genmodel).
- Поддержка метамодели Ecore и ее потомков.
Особенности пользовательского интерфейса
[ редактировать ]- Представление Eclipse для работы с сеансами CDO, транзакциями, представлениями и ресурсами.
- Диалоговое окно диспетчера пакетов для каждого сеанса
- Редактор Eclipse для работы с ресурсами и объектами
Возможности клиентской стороны
[ редактировать ]- Несколько сеансов с несколькими репозиториями на нескольких серверах
- Несколько транзакций за сеанс
- Несколько представлений только для чтения за сеанс
- Несколько представлений аудита за сеанс (аудит — это представление, показывающее согласованную историческую версию репозитория)
- Несколько ресурсов для каждого представления (представление всегда связано с собственным набором ресурсов EMF).
- Межресурсное прокси разрешение
- Несколько корневых объектов на ресурс
- Состояние объекта используется всеми представлениями сеанса.
- Граф объектов внутренне несвязен (неиспользуемые части графа могут быть легко удалены сборщиком мусора)
- В транзакции фиксируются только новые и измененные объекты.
- Транзакции могут охватывать несколько ресурсов
- Загрузка объектов по требованию (ресурсы заполняются по мере навигации)
- Частичная загрузка коллекций (размер фрагмента можно настроить для каждого сеанса)
- Адаптируемая предварительная выборка объектов (доступны различные интеллектуальные анализаторы использования)
- Недействительность асинхронного объекта (необязательно)
- Чистый API для работы с сессиями, представлениями, транзакциями и объектами.
- CDOResources также являются EObjects.
- Объекты содержат метаинформацию, такую как идентификатор, состояние, версию и продолжительность жизни.
- Поддержка сред OSGi (безголовое, Eclipse RCP,...)
- Поддержка автономных приложений (не OSGi)
Возможности сетевого протокола
[ редактировать ]- Протокол двоичных приложений на основе Net4j
- Подключаемый транспортный уровень (поставляется с транспортом сокетов NIO и встроенным транспортом JVM)
- Подключаемая поддержка аварийного переключения
- Подключаемая аутентификация (поставляется с согласованием запроса/ответа)
- Несколько акцепторов на сервер
Возможности серверной части
[ редактировать ]- Подключаемые адаптеры для хранения данных
- Несколько репозиториев на сервере
- Несколько моделей (пакетов) в одном репозитории
- Несколько ресурсов (экземплярных документов) для каждого репозитория
- Выразительный XML файл конфигурации
- Настраиваемый адаптер хранилища для каждого репозитория (см. ниже)
- Настраиваемое кэширование для каждого репозитория
- Чистый API для работы с репозиториями, сессиями, представлениями, транзакциями и версиями.
- Поддержка сред OSGi (обычно без головы)
- Поддержка автономных приложений (не OSGi)
Возможности хранилища БД
[ редактировать ]- Поддерживает все дополнительные функции CDO Server.
- Подключаемые SQL адаптеры диалекта
- Включает поддержку Derby, HSQLDB, MySQL и Oracle (TBD).
- Подключаемые стратегии картографирования
- Включает стратегию горизонтального картирования (одна таблица на конкретный класс).
- Включает стратегию вертикального сопоставления (подлежит уточнению, по одной таблице на класс в иерархии)
- Поддерживает различные режимы сопоставления коллекций.