Apache Chemistry

Материал из Национальной библиотеки им. Н. Э. Баумана
Последнее изменение этой страницы: 17:29, 17 января 2019.
Apache Chemistry
Chemistry big transparent.png
Разработчики: Apache Foundation
Выпущена: 10 February 2010 года; 9 years ago (2010-02-10)
Постоянный выпуск: ObjectiveCMIS 0.6 / 31 July 2017 года; 2 years ago (2017-07-31)
Написана на: Java
Лицензия: Apache
Веб-сайт chemistry.apache.org
Стандарт(ы) CMIS

Apache Chemistry представляет собой открытую реализацию стандарта CMIS, (Content Management Interoperability Services), определяющего средства для обмена разнородной информации между системами управления контентом предприятия (ECM - Enterprise Content Management) и внешними приложениями. Для управления данными в CMIS определен SQL-подобный язык запросов CQL (CMIS Query Language), ориентированный на работу с неструктурированными данными. API, поддерживаемый в Apache Chemistry, позволяет создавать приложения, которые могут свободно манипулировать данными в CMIS-ропозиториях таких продуктов, как Alfresco, EMC Documentum, IBM FileNet, Microsoft SharePoint, Nuxeo и OpenText. Из компаний, использующих Apache Chemistry в своих продуктах и сервисах отмечаются Adobe, Alfresco, Metaversant, Nuxeo, OpenText, OpenWGA и SAP.[Источник 1]

До становления первичным проектом, Chemistry развивался в Инкубаторе, как и все проекты Apache, начинающие свой путь в Apache Software Foundation.

О CMIS

CMIS (службы совместимости управления контентом) - это спецификация интерфейса веб-сервисов OASIS, которая обеспечивает совместимость между системами управления корпоративным содержимым (ECM). CMIS позволяет делиться информацией через Интернет в нейтральном для участников формате, среди систем документооборота, издателями и хранилищами, на одном предприятии и между компаниями.

Доменная модель CMIS

CMIS определяет модель домена. Клиент получает доступ к конечной точке службы CMIS по URL-адресу. Конечная точка службы должна иметь как минимум один репозиторий. Каждый элемент контента это такой объект, как папка или репозиторий. Репозиторий имеет идентификатор и набор возможностей, которые описывают, какие дополнительные функции CMIS поддерживает репозиторий.

Объект имеет идентификатор, тип и набор свойств для этого типа. Для CMIS-объекта существует четыре базовых типа:

  • Документ - это элемент контента. Только документы могут иметь несколько версий. Каждая версия имеет свой идентификатор. Все версии документа составляют серию версий и имеют идентификатор серии версий. С использованием методов OpenCMIS можно создавать, читать, обновлять и удалять документы.
  • Папка - это контейнер, используемый для организации документов. Каждый репозиторий имеет корневую папку. Все остальные папки имеют по крайней мере одну родительскую. У каждой папки есть путь, представляющий ее место в иерархии папок. Объект папки может иметь значения. Например, папка может иметь миниатюру, представляющую содержимое папки.
  • Связь - определяет отношения между исходным и целевым объектом. Создание, изменение и удаление связей не меняют исходные или целевые объекты. Объекты связи являются необязательными. Репозиторий CMIS может не поддерживать объекты отношений.
  • Политика - это необязательные объекты, специфичные для репозитория, которые могут применяться к контролируемым объектам. Поведение политик не моделируется спецификацией CMIS. Объект политики может применяться к нескольким управляемым объектам, а управляемый объект может иметь несколько политик, применяемых к нему. Объект политики не может быть удален, если он применяется в настоящее время к одному или нескольким контролируемым объектам.

В репозитории могут быть другие типы объектов, определенные в репозитории как подтипы этих базовых типов.

Состав

Первоначально представленный в Apache Incubator в мае 2009 года как единый, ориентированный на Java проект, Apache Chemistry сегодня состоит из следующих частей:

  1. OpenCMIS - клиентские и серверные библиотеки CMIS для Java, а также инструменты тестирования для разработчиков репозитория и разработчиков клиентских приложений.
  2. cmislib - клиентская библиотека CMIS для Python.
  3. phpclient - клиентская библиотека CMIS для PHP.
  4. DotCMIS - клиентская библиотека CMIS для .NET.
  5. ObjectiveCMIS - клиентская библиотека CMIS для Objective-C.

OpenCMIS

Apache Chemistry OpenCMIS - это коллекция Java-библиотек, фреймворков и инструментов, созданных по спецификациям CMIS 1.0 и CMIS 1.1.[Источник 2]

Цель проекта OpenCMIS - сделать CMIS простым для Java-клиентов и серверных разработчиков. Он скрывает сведения о привязке и предоставляет API и SPI на разных уровнях абстракции. Он также включает средства тестирования для разработчиков контентных репозиториев и разработчиков клиентских приложений.

Проекты, которые используют OpenCMIS

Клиентские API

Серверный фреймворк

cmislib

Apache Chemistry cmislib - это клиентская CMIS библиотека для Python.

Цель этой библиотеки - предоставить совместимый API для CMIS-репозиториев, таких как Alfresco, Nuxeo, KnowledgeTree, MS SharePoint, OpenText Documentum и любое другое CMIS-совместимое содержимое репозитория.[Источник 3]

Библиотека разрабатывается в соответствии со следующими рекомендациями:

  • Разработчики, использующие этот API, должен работать с объектами домена CMIS, не беспокоясь о базовых деталях реализации.
  • Библиотека будет использовать привязку Resftul AtomPub и привязку браузера (добавленную с помощью CMIS 1.1).
  • Библиотека будет максимально соответствовать спецификации CMIS. Для тестирования API используется несколько публичных репозиториев CMIS.
  • В библиотеке не должно быть жестко заданных URL-адресов. Должна быть возможность получить все необходимое независимо от того, как работает CMIS, начиная от ответов URL CMIS и заканчивая последующими вызовами.
  • Не должно быть версии библиотеки, зависящей от поставщика. Цель состоит в том, чтобы она была совместима со всеми CMIS-совместимыми поставщиками.

Небольшой пример

Он должен дать представление о том, как легко и просто происходит работа с API:

1 cmisClient = cmislib.CmisClient('http://localhost:8080/alfresco/api/-default-/public/cmis/versions/1.1/atom', 'admin', 'admin')
2 repo = cmisClient.defaultRepository
3 rootFolder = repo.rootFolder
4 children = rootFolder.getChildren()
5 newFolder = rootFolder.createFolder('testDeleteFolder folder')
6  props = newFolder.properties
7 newFolder.delete()

phpclient

Apache Chemistry CMIS PHP Client - это клиентская CMIS-библиотека для PHP.[Источник 4]

Для запуска следующего примера выполните следующее:

$ php -f cmis_ls.php <rest-endpoint> <username> <password> <folderpath> [debug option 1](2.html)

Замечания:

  • Если путь к папке имеет пробелы, вы должны закодировать его следующим образом: /Data Dictionary --> /Data+Dictionary
  • Параметр debug может быть опущен. Если он равен 1, то программа отобразит все возвращенные массивы. Если параметр отладки равен 2 или более, то будет также отображаться возвращенный XML.
  • Пример не будет работать на репозиториях до CMIS-1.0.
  • Проверка ошибок практически отсутствует.
  • Ваша версия PHP должна поддерживать DOMDocument и curl.

Выполнение примера:

$ php -f cmis_ls.php http://cmis.alfresco.com/service/api/cmis admin admin /
$ php -f cmis_ls.php http://cmis.alfresco.com/service/api/cmis admin admin /Data+Dictionary 1

Библиотека cmis_repository_wrapper.php предоставляет следующий функционал:

  • Инкапсулирует доступ к репозиторию, совместимому с CMIS 1.0.
  • Предоставляет утилиты для получения информации из: рабочей области (repositoryInfo), записей объектов, неиерархических каналов объектов.

DotCMIS и PortCMIS

Apache Chemistry DotCMIS и PortCMIS - это клиентские CMIS-библиотеки для .NET. Они основаны на клиентской архитектуре OpenCMIS.

API DotCMIS и PortCMIS очень похожи. Вот несколько основных изменений:[Источник 5]

DotCMIS PortCMIS
Требуемый фреймворк .NET Framework 3.5 .NET Standard 1.1
Поддержка Windows Store App Нет Да
Поддержка Windows Phone Нет Да
Веб-сервисы CMIS 1.0 Да Нет
Веб-сервисы CMIS 1.1 Нет Нет
CMIS 1.0 AtomPub Да Да
CMIS 1.1 AtomPub Нет Да
CMIS 1.1 Browser Binding Нет Да

ObjectiveCMIS

Apache Chemistry ObjectiveCMIS это клиентская CMIS-библиотека для языка Objective-C.

Библиотека в первую очередь ориентирована на разработку iOS-приложений и предоставляет API взаимодействия для CMIS-репозиториев. Также фреймворк может быть использован для разработки приложений Mac OSX.[Источник 6]

Библиотека ObjectiveCMIS содержит следующие файлы:

  • библиотеку libObjectiveCMIS.a
  • публичные заголовочные файлы в папке ObjectiveCMIS
  • документацию, предоставленную как docset (сгенерирована при помощи appledocs).

Минимальные системные требования

Библиотека использует автоматизированный подсчет ссылок Objective-C (ARC). Поэтому библиотека совместима с iOS SDK v5.x или более поздними версиями.

Как включить библиотеку в свой проект XCode

Самый простой способ включить библиотеку ObjectiveCMIS в свой проект - распаковать zip-файл ObjectiveCMIS. Затем перейти в меню "Файл" в XCode и выбрать опцию " Добавить файлы в...". Добавить в проект заголовочные и библиотечные файлы, содержащиеся в дистрибутиве ZIP:

  • Убедитесь, что библиотека включена в список фреймворков/библиотек. Выберите цель построения и перейдите к этапам построения. libObjectiveCMIS.a должна быть указана в параметре связки двоичного файла с библиотеками.
  • Заголовки CMIS должны быть включены в раздел заголовков сборки для сборки объекта.

Источники

  1. The Apache Software Foundation Announces Apache Chemistry as a Top-Level Project // The Apache Software Foundation. Blogging in Action. Дата обновления: 23.02.2011. URL: https://blogs.apache.org/foundation/entry/the_apache_software_foundation_announces11 (дата обращения: 17.11.2018).
  2. CMIS for Java // Apache Chemistry. Дата обновления: 17.11.2018. URL: https://chemistry.apache.org/java/opencmis.html (дата обращения: 19.11.2018).
  3. About Apache Chemistry cmislib // Apache Chemistry [2010—2017]. Дата обновления: 31.08.2017. URL: https://chemistry.apache.org/python/docs/about.html (дата обращения: 19.11.2018).
  4. CMIS PHP Client // Apache Chemistry [2010—2017]. Дата обновления: 30.08.2016. URL: https://chemistry.apache.org/php/phpclient.html (дата обращения: 19.11.2018).
  5. Differences between DotCMIS and PortCMIS // Apache Chemistry [2010—2017]. Дата обновления: 25.07.2017. URL: https://chemistry.apache.org/dotnet/dotcmis-vs-portcmis.html (дата обращения: 19.11.2018).
  6. Welcome to Apache ObjectiveCMIS // Apache Chemistry [2010—2017]. Дата обновления: 31.07.2017. URL: https://chemistry.apache.org/objective-c/objectivecmis.html (дата обращения: 19.11.2018).

Ссылки