Apache Chemistry
Последнее изменение этой страницы: 17:29, 17 января 2019.
Разработчики: | Apache Foundation |
---|---|
Выпущена: | 10 February 2010 года |
Постоянный выпуск: | ObjectiveCMIS 0.6 / 31 July 2017 года |
Написана на: | Java |
Лицензия: | Apache |
Веб-сайт |
chemistry |
Стандарт(ы) | 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 сегодня состоит из следующих частей:
- OpenCMIS - клиентские и серверные библиотеки CMIS для Java, а также инструменты тестирования для разработчиков репозитория и разработчиков клиентских приложений.
- cmislib - клиентская библиотека CMIS для Python.
- phpclient - клиентская библиотека CMIS для PHP.
- DotCMIS - клиентская библиотека CMIS для .NET.
- ObjectiveCMIS - клиентская библиотека CMIS для Objective-C.
OpenCMIS
Apache Chemistry OpenCMIS - это коллекция Java-библиотек, фреймворков и инструментов, созданных по спецификациям CMIS 1.0 и CMIS 1.1.[Источник 2]
Цель проекта OpenCMIS - сделать CMIS простым для Java-клиентов и серверных разработчиков. Он скрывает сведения о привязке и предоставляет API и SPI на разных уровнях абстракции. Он также включает средства тестирования для разработчиков контентных репозиториев и разработчиков клиентских приложений.
Проекты, которые используют OpenCMIS
Клиентские API
- Alfresco 4.x CMIS Web Scripts - Сайт проекта
- Alfresco Web Quick Start - Руководство разработчика
- Alfresco / Jive integration - Информационная страница
- Apache ManifoldCF - Сайт проекта
- CMIS Explorer w/Adobe AIR - Сайт проекта
- CMIS Workbench - Сайт проекта
- Confluence CMIS Plugin - Сайт проекта
- IBM Content Navigator - Сайт проекта
- Liferay 6.1 - Сайт компании
- Struts2CmisExplorer - Сайт проекта
Серверный фреймворк
- LogicalDOC LogicalDOC Wiki Исходный код
- Lutece - Сайт проекта
- Nuxeo Документация
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:
cmisClient = cmislib.CmisClient('http://localhost:8080/alfresco/api/-default-/public/cmis/versions/1.1/atom', 'admin', 'admin')
repo = cmisClient.defaultRepository
rootFolder = repo.rootFolder
children = rootFolder.getChildren()
newFolder = rootFolder.createFolder('testDeleteFolder folder')
props = newFolder.properties
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 должны быть включены в раздел заголовков сборки для сборки объекта.
Источники
- ↑ 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).
- ↑ CMIS for Java // Apache Chemistry. Дата обновления: 17.11.2018. URL: https://chemistry.apache.org/java/opencmis.html (дата обращения: 19.11.2018).
- ↑ About Apache Chemistry cmislib // Apache Chemistry [2010—2017]. Дата обновления: 31.08.2017. URL: https://chemistry.apache.org/python/docs/about.html (дата обращения: 19.11.2018).
- ↑ CMIS PHP Client // Apache Chemistry [2010—2017]. Дата обновления: 30.08.2016. URL: https://chemistry.apache.org/php/phpclient.html (дата обращения: 19.11.2018).
- ↑ 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).
- ↑ Welcome to Apache ObjectiveCMIS // Apache Chemistry [2010—2017]. Дата обновления: 31.07.2017. URL: https://chemistry.apache.org/objective-c/objectivecmis.html (дата обращения: 19.11.2018).
Ссылки
- Apache Chemistry Домашняя страница
- Примеры кода Apache Chemistry CMIS
- Исходный код OpenCMIS
- Зеркало Apache Chemistry OpenCMIS
- Исходный код cmislib
- Зеркало Apache Chemistry CMISLib
- документация cmislib 0.6.0
- Исходный код phpclient
- Зеркало Apache Chemistry PHPClient
- Документация phpclient
- Исходный код DotCMIS
- Зеркало Apache Chemistry DotCMIS
- Исходный код PortCMIS
- Зеркало Apache Chemistry PortCMIS
- Исходный код ObjectiveCMIS
- Зеркало Apache Chemistry ObjectiveCMIS
ISSN 2542-0356
Следуй за Полисом
Оставайся в курсе последних событий
Лицензия
Если не указано иное, содержание этой страницы доступно по лицензии Creative Commons «Attribution-NonCommercial-NoDerivatives» 4.0, а примеры кода – по лицензии Apache 2.0. Подробнее см. Условия использования.