Открыть сервис

CMIS

CMIS (Content Management Interoperability Services) — это открытый стандарт (спецификация) для взаимодействия систем управления контентом (CMS) и другими информационными системами, такими как системы управления документами (DMS), порталы и корпоративные приложения. Стандарт определяет набор веб-сервисов, протоколов и интерфейсов прикладного программирования (API), позволяющий различным системам обмениваться контентом (документами, файлами, метаданными) и управлять им независимо от платформы, поставщика или языка программирования.

История

Стандарт CMIS был разработан в рамках консорциума OASIS (Organization for the Advancement of Structured Information Standards). Работа над спецификацией началась в 2008 году по инициативе таких компаний, как IBM, Microsoft, EMC, Alfresco, SAP и других, стремившихся создать единый способ интеграции разнородных систем управления контентом. До появления CMIS каждая система имела собственный проприетарный API, что затрудняло интеграцию и обмен данными между ними.

Первая версия стандарта, CMIS 1.0, была утверждена OASIS в мае 2010 года. Она определила базовый набор операций, включая создание, чтение, обновление и удаление (CRUD) объектов, а также возможности поиска и навигации по репозиторию. Вторая версия, CMIS 1.1, была принята в 2012 году и расширила функциональность, добавив поддержку вторичных типов, возможность управления версиями и улучшенную поддержку атрибутов.

Архитектура и принципы

CMIS построен на архитектуре REST (Representational State Transfer) и SOAP (Simple Object Access Protocol). Это означает, что взаимодействие между клиентом и сервером может осуществляться как через HTTP-запросы с использованием XML или JSON для представления данных (REST), так и через SOAP-сообщения.

Основные понятия

  • Репозиторий (Repository) — это хранилище контента, которое может быть реализовано как файловая система, база данных или специализированная CMS. Каждый репозиторий имеет уникальный идентификатор и предоставляет доступ к объектам.
  • Объект (Object) — это основная единица контента в CMIS. Объекты могут быть документами (файлами), папками (контейнерами для группировки объектов), отношениями (связями между объектами) и политиками (правилами управления).
  • Тип (Type) — определяет структуру и атрибуты объекта. CMIS поддерживает как базовые типы (например, cmis:document, cmis:folder), так и пользовательские типы, которые могут быть созданы администратором репозитория.
  • Свойства (Properties) — это метаданные объекта, такие как имя, дата создания, автор, размер файла и т.д. Каждый объект имеет обязательные свойства (например, cmis:name) и может иметь дополнительные, задаваемые типом.
  • Версия (Version) — CMIS поддерживает управление версиями документов. Каждый документ может иметь несколько версий, которые хранятся в виде серии объектов, связанных между собой.

Операции

Стандарт определяет набор операций, которые могут быть выполнены над объектами репозитория:

  • CRUD: создание, чтение, обновление и удаление объектов.
  • Навигация: получение содержимого папки, поиск объектов по пути или идентификатору.
  • Поиск: выполнение запросов на языке CMIS Query Language (CMIS QL), который основан на SQL и позволяет фильтровать объекты по их свойствам.
  • Управление версиями: создание новых версий, откат к предыдущим, получение истории версий.
  • Управление отношениями: создание и удаление связей между объектами.

Применение

CMIS используется в различных сценариях, где требуется интеграция систем управления контентом:

  • Интеграция корпоративных систем: связывание CMS с системами управления проектами, порталами, системами электронного документооборота (СЭД) и другими приложениями.
  • Миграция контента: перенос данных между различными CMS или из устаревших систем в новые.
  • Создание универсальных клиентов: разработка приложений, которые могут работать с любым CMIS-совместимым репозиторием, например, файловые менеджеры, редакторы документов или инструменты для совместной работы.
  • Автоматизация процессов: использование CMIS для автоматического обмена документами между системами, например, при публикации контента на веб-сайте или в мобильном приложении.

Примеры реализации

Многие популярные системы управления контентом и документооборотом поддерживают CMIS:

Критика и ограничения

Несмотря на широкую поддержку, CMIS имеет ряд ограничений:

  • Сложность реализации: полная реализация стандарта требует значительных усилий, особенно для систем с нестандартной архитектурой.
  • Производительность: операции через CMIS могут быть медленнее, чем использование собственного API, из-за накладных расходов на сериализацию и десериализацию данных.
  • Ограниченная функциональность: CMIS не покрывает все возможности, которые могут быть доступны в конкретной CMS, например, сложные рабочие процессы, права доступа на уровне записей или полнотекстовый поиск.
  • Отсутствие поддержки в некоторых системах: некоторые популярные CMS, такие как WordPress или Drupal, не имеют встроенной поддержки CMIS, хотя могут быть расширены с помощью плагинов.

Интересные факты

  • CMIS является одним из немногих стандартов, разработанных специально для управления контентом, и получил широкое признание в индустрии.
  • Спецификация CMIS 1.1 включает поддержку вторичных типов, что позволяет динамически добавлять атрибуты к объектам без изменения их базового типа.
  • Стандарт используется не только для интеграции CMS, но и для построения гибридных облачных решений, где часть контента хранится локально, а часть — в облаке.

Источники

  1. OASIS CMIS Technical Committee. "Content Management Interoperability Services (CMIS) Version 1.1". OASIS Standard, 2012.
  2. OASIS CMIS Technical Committee. "Content Management Interoperability Services (CMIS) Version 1.0". OASIS Standard, 2010.
  3. "CMIS and Apache Chemistry in Action". Brown, J., et al. Manning Publications, 2013.
  4. "Content Management Interoperability Services (CMIS) Overview". IBM DeveloperWorks, 2011.
  5. "CMIS: A Standard for Content Management Integration". Microsoft TechNet, 2010.

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →