Вкратце: xCMIS - это продукт с открытыми исходниками, написан на Java, распростряняется под LGPL лицензией, располагается на http://code.google.com/p/xcmis/. Релиз 1.0 beta1 содержит CMIS сервер со всеми сервисами согласно Content Management Interoperability Services (CMIS) Version 1.0 Committee Draft 06.
Что включает xCMIS и в чем его особенности?
- xCMIS содержит Java исполнение CMIS с открытыми исходниками для представления содержимого существующих хранилищ контента в соответствии со CMIS спецификацией.для REST AtomPub и Web Services (SOAP/WSDL) протоколов
- Изначально xCMIS планировался как легко конфигурируемый CMIS сервер с возможностью подключения различных хранилищ контента благодаря внутреннему Storage Provider Interface (в версии 1.0 beta1 его исполнение не завершено). Таким образом, реализовав соответствующую "обертку" над репозиторием контента (собственно исполнив SPI интерфейсы), можно взаимодействовать с ним через протоколы, специфицированные в CMIS спецификации.
- xCMIS будет предоставлять одну или более CMIS клиентских библиотек для взаимодействия репозиторий-приложение и репозиторий-репозиторий. Языки на которых они написаны и поддерживаемые ими протоколы взаимодействия выбираются в соответствии с конкретными задачами. Например, разумным выбором для использования в веб приложениях, гаджетах и мешапах является JavaScript или GWT для REST AtomPub протокола, а вот для взаимодействия между репозиториями это может быть Java библиотека для Веб Сервисов (WSDL/SOAP).
- Как клиентская так и серверная части xCMIS легко интегрируются с инфраструктурой eXo Platform 3.0. В частности, xCMIS легко подключается к eXo JCR репозитории а GWT клиентская библиотека для CMIS может быть использована в гажетах для GateIn портала.
Довольно слов! Где взять и как попробовать xCMIS на моем локальном компьютере?
xCMIS сервер пакуется как J2EE Web архив xcmis.war, который Вы можете взять и развернуть на любом сервлет-контейнере. Или, Вы можете его самостоятельно из исходников следуя этим простым инструкциям. И, наконец наиболее простой путь это использование "download and go" версии, включающей xCMIS сервер, развернутый на Apache Tomcat под контекстным путем /xcmis.
По умолчанию xCMIS содержит и REST AtomPub и Web Services (SOAP/WSDL) серверы (может быть изменено использованием соответствующего профиля Maven при построении).
- Web Services (SOAP/WSDL) доступен по адресу http://localhost:8080/xcmis/cmisws.
- REST AtomPub доступен по адресу http://localhost:8080/xcmis/rest/cmisatom - это URL метода getRepository RepositoryServic-а. Для получения более полной информации о доступных сервисах и методах в WADL формате сходите на http://localhost:8080/xcmis/wadl.html.
- Если Вы хотите "посмотреть поближе" CMIS AtomPub протокол, попробуйте использовать информацию из WADL файла для запросов под curl или Poster FireFox add-on :).
xCMIS сервер поставляется с одним CMIS репозиторием содержащим пустой eXo JCR воркспейс а также с JCR WebDAV сервером. Имя JCR репозитории "repository" :) а имя воркспейса "cmis". Таким образом, Вы можете получить тот же контент используя WebDAV сервер по адресу http://localhost:8080/xcmis/rest/jcr/repository/cmis/ .
Для сохранения времени вы можете загрузить xCMIS сервер вместе полнофункциональным GWT гаджетом внутри (гаджет загружается удаленно с сайта xcmis.org). Запуск его ничем не отличается от запуска чистого сервера; после этого вы можете пойти по адресу http://localhost:8080/xcmis/xcmis-demo-gadget/GadgetWrapper.html и насладиться визуализированным CMIS-ом под CMISExpert-ом :). Это выглядит приблизительно так:
Интерфейс гажета довольно прост и интуитивно понятен, содержит много из современных элементов пользовательского интерфейса таких как тулбар, контекстное меню по правой кнопке, drag-and-drop и т.д.
Как использовать xCMIS удаленно?
Мы создали специальный ресурс http://xcmix.org с развернутым под GateIn порталом xCMIS. Здесь вы можете использовать CMIS Expert гаджет удаленно, а также попробовать CMIS Zoho гаджет. Он демонстрирует в действии несколько исполнений CMIS сервера (xCMIS, Alfresco CMIS и Nuxeo CMIS). Вы можете походить по репозиториям, посмотреть и даже поредактировать файлы под редактором.
Постройте GateIn самостоятельно или загрузите (версия не менее CR1!) его и добавьте xCMIS сервер как описано в wiki, или используйте удаленный (http://xcmis.org/rest/cmisatom - для REST AtomPub протокола).
Также возможно использование сторонних CMIS клиентов, мы пробовали IBM CMIS Firefox Connector, CMIS Spaces Flex+AIR и думаем с большой долей уверенности что и другие совместимые с CMIS 1.0 будут тоже работать как описано на xCMIS wiki (только используйте удаленный сервер - http://xcmis.org/rest/cmisatom).
Что дальше ?
- Спецификация CMIS близка к финальному состоянию, мы тоже - как только будет официальный выйдет CMIS 1.0, мы тоже выпустим финальный релиз xCMIS 1.0 :)
- Откроем коды GWT CMIS клиентской библиотеки и переместим в xCMIS проект
- Завершим разработку архитектуры Storage Provider Interface
- Проведем рефакторинг системы поиска, отвяжем его от JCR хранилища
- Проведем рефакторинг CMIS конфигурации сделаем ее более понятной
- Добавим возможность федеративного поиска по разным CMIS репозиториям
- Протестим с другими сторонними клиентскими приложениями
- И много другого... :)
Очень хотелось бы услышать Ваше мнение. Так что любое обсуждение проекта (мы говорим на английском, русском, украинском и французком как минимум :) ), новые идеи, советы, улучшения документации и другое Ваше участие горячо приветствуется, поучаствуйте!
Проект разработан и поддерживается украинским подразделением компании eXo Platform
( eXo UA )
Посетите Wiki для более детальной информации: http://code.google.com/p/xcmis/w/list
Исходники: http://code.google.com/p/xcmis/source/checkout
Загрузить проект: http://code.google.com/p/xcmis/downloads/list
Попробовать демо: http://xcmis.org/portal/public/classic/CMISExpert
