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