Alfresco (ECM-система). 7 причин для выбора

Alfresco — информационная платформа с открытым кодом, разработчиком которой выступает компания Alfresco Software Inc (Великобритания). Платформа не является системой электронного документооборота, но на ее основе можно самостоятельно или с помощью специалистов построить готовую систему.

Проекты по построению единой ECM-системы на базе Alfresco сегодня реализованы во многих странах: Франция, Швейцария, США, Великобритания, Бельгия, Япония, Мексика, Италия.  По мировым меркам, это одна из наиболее распространенных систем электронного документооборота и управления проектами.
В России Alfresco также применима, ее используют многие крупные компании со сложными бизнес-процессами и разветвленной оргструктурой.  Разработчики российской компании Citeck уже реализовали на Alfresco проекты различного характера в компаниях: BNP Paribas Cardif, General Electric, Unilever, DHL, Газпром космические системы, Райффайзен банк, Правительство Москвы и других. Посмотреть проекты

Выбор в пользу Alfresco часто обусловлен 7 основными причинами:

  1. Свободное программное обеспечение (Open Source Software) и открытая лицензия. Это позволяет увеличивать количество рабочих мест без лицензионных издержек;
  2. Большое количество системных наработок Alfresco Software Inc и многочисленного сообщества. Весь инструментарий для развития системы;
  3. Известный бренд. Alfresco – мировой лидер среди программ для организации электронного документооборота;
  4. Удобный мультиязычный веб-интерфейс (в том числе и на русском языке). С его помощью осуществляется доступ к общим документам из любой точки мира через защищенное соединение;
  5. Низкие требования к IT-ресурсам: возможность интеграции в любую IT-инфраструктуру организации;
  6. Востребованные интегрированные компоненты в системе: совместное календарное планирование, поддержка совещаний, управление кейсами, учет и контроль документов и многое другое;
  7. Полная кроссплатформенность – серверная и клиентская части могут работать под управлением различных операционных систем, таких как: MS Windows, Linux, Mac OS X и др.

Отличительная особенность системы от большей части продуктов с открытым кодом — это стабильность работы и возможность масштабирования под задачи бизнеса любого размера.

В целом Alfresco, это уникальная система, которая автоматизирует процессы управления контентом и охватывает полный жизненный цикл большинства типов документов: договоров и связанных с ними документов, первичной финансовой документации, входящей и исходящей корреспонденции, поручений и задач, приказов и распоряжений, документов по технике безопасности и охране труда, кадровых заявок и приказов, документации на тендеры и закупочного процесса.

Система умеет управляться с любым видом документов. В корпоративной практике они подразделяются на два типа данных: структурированные и неструктурированные.

Структурированные документы часто представлены в виде таблиц и записей, которые хранятся в учётных системах (1С, SAP, Oracle и других). К неструктурированным относится контент, выходящий за рамки общей структуры — набор файлов и папок, медиа и видеофайлы, расположенные на внешних носителях или в интернете. И управлением неструктурированным контентом занимается отдельный класс систем, а именно Enterprise Content Management (ECM), к которым и относится Alfresco.


Компания Citeck реализует проекты на базе ECM Alfresco более 7 лет на территории России и других странах постсоветского пространства.

Почему выбирают нас… Таких причин много, но есть три ключевые:

  1. В 2014 году компания Citeck подписала партнерское соглашение с ООО «НЦПР», являющейся официальным представителем Alfresco Software, Ltd в России и странах СНГ.
    Таким образом Citeck может использовать единую платформу управления корпоративными информационными ресурсами —Alfresco Enterprise Edition — при разработке программных решений;
  2. Сотрудники компании сертифицированы на «Alfresco Certified Engineer»;
  3. Мы предлагаем свое решение на базе Open Source российской сборки. Наша платформа Сiteck ECOS входит в реестр отечественного ПО.

 

ДАЛЕЕ ПРЕДСТАВЛЕНО ТЕХНИЧЕСКОЕ ОПИСАНИЕ CITECK ECOS И ALFRESCO

Описываемые версии систем: Citeck ECOS 3.2.a, Alfresco Community 5.1.f.

Перечень сокращений

Таблица 1. Сокращения

Сокращение  Расшифровка
AD Microsoft Active Directory (служба каталогов от Microsoft)
ПО Программное обеспечение
ОС Операционная система
БД База данных
СУБД Система управления базами данных
сэд Система электронного документооборота
ИС Информационная система
SSO Single-Sign-On (прозрачная аутентификация, однократный ввод пароля)
JDBC Java DataBase Connectivity (библиотека для доступа к БД в Java)

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

Сервер приложений — программный компонент Java Enterprise Edition, позволяющий запуск и выполнение приложений Java.

Структура системы Alfresco

Трехзвенная структура

Alfresco придерживается трехзвенной архитектуры (Рисунок 1):

  • хранилище данных (Physical storage);
  • сервер приложений Alfresco (Alfresco Content Application Server);
  • клиентские приложения Alfresco (Alfresco Client).

Рисунок 1 – Структура звеньев Alfresco

Звено «Хранилище данных» состоит из хранилища файлов (File System) и базы данных (Relational DB). Хранилище файлов используется для хранения контента документов (файлов) и версий документов. Вся остальная информация (метаданные) хранится в БД. Схема базы данных Alfresco не является публичным API, часто изменяется от версии к версии Alfresco, и поэтому не должна быть использована при взаимодействии с Alfresco. Вместо этого, для взаимодействия с Alfresco рекомендуется использовать один из множества публичных сервисов (Embedded API, Remote API, см. ниже).

Звено «Сервер приложений» предоставляет расширенные сервисы для работы с документами. Вся бизнес-логика работы с данными сосредоточена на этом звене. Для работы с различными видами клиентов, сервер приложений предоставляет различные виды внешних протоколов, такие как CMIS, REST API, CIFS, IMAP и другие. С другой стороны, с хранилищем данных сервер приложений работает через соединение с СУБД (JDBC) и механизмы файловой системы ОС. Благодаря использованию этих механизмов в качестве хранилища данных можно использовать любые реализации СУБД и файловых систем, единственное существенное требование — наличие необходимых драйверов JDBC и ОС.

Звено «Клиентские приложения» представлено различными клиентскими приложениями Alfresco. Это могут быть как веб-клиенты в браузере, так и приложения для настольных и мобильных платформ и даже доступ через механизмы файловой системы (CIFS, FTP, WebDAV).

Описанная архитектура позволяет реализовывать различные виды документно­ориентированных приложений, таких как управление файлами (Document Management — DM), управление веб-контентом (Web Content Management — WCM), управление документами (Records Management — RM) и другие.

Структура сервера приложений

Сервер приложений Alfresco является веб-приложением Java и состоит из различных компонентов. На верхнем уровне структура сервера приложений представлена ниже (Рисунок 2).

Рисунок 2 – Структура сервера приложений Alfresco

Сервер приложений следует рассматривать как расширенную СУБД, предоставляющую широкий спектр сервисов работы с документами:

  • сервисы для работы с контентом (Content Services) — моделирование, поиск, управление версиями, многоязычность, экспорт/импорт, преобразования контента, классификация контента через категории и тэги, выделение полей метаданных из контента;
  • сервисы управления (Control Services) — бизнес-процессы, правила и политики, права доступа, аудит доступа, генерация предварительного просмотра, публикация;
  • сервисы взаимодействия (Collaboration Services) — избранное, «мне нравится», лента событий, вики, блоги, форумы.

Эти сервисы предоставляются через ряд программных интерфейсов и протоколов:

  • внутренние интерфейсы (Embedded APIs) — интерфейс для Java, JavaScript, FreeMarker (шаблоны), языки для моделирования контента и бизнес-процессов;
  • внешние интерфейсы (Remote APIs) — интерфейсы веб-сервисов (SOAP), веб-скриптов (REST), а также CMIS API (варианты для SOAP и REST);
  • другие протоколы (Protocols) — CIFS, WebDAV, FTP, IMAP, SharePoint.

Архитектура сервера приложений позволяет реализовывать различные виды модулей и расширений к стандартному набору интерфейсов:

  • модели контента;
  • бизнес-процессы;
  • дополнительные сервисы для Java, JavaScript, FreeMarker;
  • правила и действия, политики;
  • дополнительные веб-скрипты (REST API).

Взаимодействие со смежными системами

Для реализации своих сервисов сервер приложений пользуется услугами смежных систем. В частности используются сторонние системы для:

  • индексации и поиска (Lucene, SOLR);
  • аутентификации (LDAP, NTLM, Kerberos, External)
  • преобразований контента (LibreOffice, ImageMagick, SWF Tools).

Индексация и поиск – абсолютно необходимые функции в большинстве приложений Alfresco. В новых версиях Alfresco больше не использует подсистему Lucene и рекомендует использовать SOLR.
Подсистема поиска поддерживает ряд существенных для приложений характеристик:

  • проверка прав доступа перед выдачей результатов поиска пользователю;
  • поддержка различных языков поиска, в том числе Full Text Search, CMIS, Lucene.

Подсистемы аутентификации позволяют делегировать функцию проверки подлинности пользователей внешним системам. Наиболее часто при интеграции с инфраструктурой предприятия для этих целей используются сервисы службы каталогов, такой как Microsoft Active Directory. При такой интеграции, информация о пользователях импортируется из AD в Alfresco, а аутентификация проходит по одному (или нескольким) из протоколов LDAP, NTLM, Kerberos. Сравнение протоколов аутентификации приведено ниже (Таблица 2)

Таблица 2. Сравнение различных протоколов аутентификации

Характеристика LDAP NTLM Kerberos
Поддержка версий 3 1 5
Шифрование Только SSL Встроенное Встроенное
Прозрачная аутентификация (SSO) Нет Да Да
Аутентификация CIFS Нет Да Да
Аутентификация SharePoint Не SSO Да Да

При использовании NTLM сервер Alfresco играет роль «человека посредине», по факту эксплуатируя уязвимость протокола. Поэтому поддерживается только NTLM версии 1. Протокол NTLM версии 2 не поддерживается при взаимодействии с Active Directory, поскольку аутентификация в сторонних сервисах не является назначением протокола NTLM. Рекомендуемым протоколом аутентификации при интеграции в инфраструктуру предприятия является Kerberos.

Преобразования контента используются для различных целей, в частности для генерации предварительного просмотра и иконок, печати, масштабирования изображений. Для преобразований офисных форматов (и PDF) используется LibreOffice, для преобразований изображений (и PDF) — ImageMagick, для преобразования PDF в SWF для предпросмотра — SWF Tools.

Указанные службы могут работать в виде служб Windows, но в поставке Alfresco по умолчанию это не предусмотрено.

Ресурсы, необходимые для работы Alfresco

Аппаратные ресурсы

Очень грубо требования Alfresco к системе можно вычислить следующим образом.

Для 50 одновременно работающих или 500 зарегистрированных пользователей:

1,5 GB JVM RAM                                                2x server CPU (or 1xDual-core)

Для 100 одновременно работающих или 1000 зарегистрированных пользователей:

1,5 GB JVM RAM                                                4x server CPU (or 2xDual-core)

Для 200 одновременно работающих или 2000 зарегистрированных пользователей:

2,5 GB JVM RAM                                                8x server CPU (or 4xDual-core)

Если предполагается разворачивать сервер Alfresco в виртуальной среде, то эти цифры следует умножать на два.

Объем БД зависит в основном от примерного объема карточек, например, количество документов 1000 х количество полей 20 х средний размер поля 10 байт х среднее количество версий 5 х фактор индексации 2 = 1000 х 20 х 10 х 5 х 2 = 2 000 000 байт = 2 Мб.

Если по документам ставятся процессы, ведется история или хранится другая дополнительная информация, это также следует учитывать.

Объем дискового пространства зависит от размера контента документов, например, количество документов 1000 х средний размер 1 Мб х среднее количество версий 5 = 1000 х 1 х 5 = 5 000 Мб = 5 Гб.

Размер дискового пространства для индекса (lucene, SOLR) вычисляется подобным образом, причем в несколько раз меньше (ориентировочно в 3 раза).

Программные ресурсы

  • При стандартной установке Alfresco на Windows-системы создаются следующие службы:
  • alfrescoPostgreSQL — для запуска PostgreSQL — СУБД, которая обслуживает базу данных Alfresco;
  • alfrescoTomcat — для запуска Apache Tomcat — контейнер сервлетов, который обслуживает веб-приложения Alfresco.

Если данные имена служб были заняты, то установщик выбирает аналогичные незанятые имена, например, alfrescoPostgreSQL-1 или alfrescoTomcatnuml.

При установке на Linux-системы создается единственная служба alfresco, которая запускает все необходимые компоненты Alfresco (по умолчанию PostgreSQL и Tomcat).

Компоненты Alfresco занимают по умолчанию следующие сетевые порты TCP (таблица 3).

Таблица 3. Сравнение различных протоколов аутентификации

Порт Компонент Протокол Описание
5432 PostgreSQL PostgreSQL
8080 Tomcat HTTP Порт веб-приложений
8443 Tomcat HTTPS Порт веб-приложений
8009 Tomcat AJP
8005 Tomcat Shutdown-порт
8000 Java Отладочный порт Java (по умолчанию выключен)
7070 VTI SharePoint Поддержка онлайн-редактирования
21 Alfresco FTP Можно выключить в alfresco-global.properties
445 Alfresco CIFS Можно включить в alfresco-global.properties
50500 Alfresco RMI Также несколько других портов RMI 8100 LibreOffice
8100 LibreOffice LibreOffice

Если данные порты уже заняты другим, то при установке Alfresco можно указать другие порты для PostgreSQL, Tomcat и VTI, а порты Alfresco настроить в файле alfresco- global.properties. Если требуется указать другие порты после установки, это также можно сделать, необходимо обратиться к руководствам по настройке компонентов.

Методы расширения и настройки Alfresco

Alfresco распространяется в виде WAR-файла (WAR — Web Archive — формат архивов Java) или нескольких WAR-файлов, которые необходимо инсталлировать на сервер(ы) приложений Java (например, Apache Tomcat или JBoss Application Server). Расширения и модули, как правило, запаковываются внутрь веб-приложений, в то время как элементы конфигурации располагаются в отдельном месте — т.н. shared classpath (для Tomcat это папка tomcat/shared).

Alfresco поддерживает следующие варианты упаковки сторонних расширений:

  • не запакованные файлы;
  • ZIP-архив;
  • JAR-файлы;
  • AMP-файлы.

Рекомендуемая техника для упаковки простых расширений — JAR-файлы, рекомендуемая техника для упаковки сложных расширений — AMP- файлы.

JAR-файл (JAR — Java Archive) — это формат архивов Java, он поддерживается всеми серверами приложений Java. JAR-файлы устанавливаются в shared classpath или прямо в папку «WEB-INF/lib» веб-приложения. Однако в этом случае не гарантируется их целостность, поэтому рекомендуется эти файлы запаковывать в AMP-архивы.

AMP-файл — это формат модуля Alfresco (AMP — Alfresco Module Package), который также является переименованным ZIP-архивом со специальными соглашениями о внутренней структуре. При установке AMP-файла его содержимое становится частью WAR-файла.

Элементы конфигурации располагаются в shared classpath. В частности, основной конфигурационный файл alfresco — файл alfresco-global.properties располагается в корне shared classpath (для Tomcat это папка tomcat/shared/classes). Конфигурация других расширений располагается по пути classpath:alfresco/extension (для репозитория Alfresco) и classpath:alfresco/web-extension (для Alfresco Share). Часто используемые конфигурационные файлы приведены ниже:

  • alfresco/extension/*-log4j.properties — файлы конфигурации журнала log4j;
  • alfresco/extension/subsystems/Authentication — файлы конфигурации подсистемы аутентификации (например, взаимодействие с MS Active Directory);
  • alfresco/extension/custom-vti* — файлы конфигурации модуля VTI (поддержка SharePoint Protocol для онлайн-редактирования документа);
  • alfresco/web-extension/share-config-custom.xml — custom-конфигурация Share.

Лог-файлы Alfresco (журналы событий)

Лог-файлы Alfresco в зависимости от версии Alfresco располагаются либо в корневой папке Alfresco, либо в папке tomcat/bin, либо в корне файловой системы (Linux). Alfresco генерирует по одному лог-файлу на веб-приложение. Соответственно, в стандартной инсталляции должны быть лог-файлы:

  • alfresco.log — журнал событий репозитория Alfresco
  • share.log — журнал событий Alfresco Share (веб-интерфейса)
  • solr.log — журнал событий SOLR (сервиса индексации)

Помимо этого, свои журналы ведет Apache Tomcat, они располагаются в папке tomcat/logs:

  • catalina.out для Linux, alfrescotomcat-stdout.YYYY-MM-DD.log для Windows — стандартный вывод Apache Tomcat
  • localhost_access_log.YYYY-MM-DD.txt — журнал обслуженных запросов

Для всех вышеуказанных файлов журналов настроена ротация, каждый день создается и используется новый файл, однако старые файлы не удаляются. Если необходимо удалять и старые файлы, необходимо соответствующим образом скорректировать настройки Alfresco и Tomcat.

Модули расширения Citeck ECOS

Трехуровневая структура модулей

Модули расширения предназначены для добавления нового функционала в систему Alfresco. Для того чтобы обеспечить максимальное повторное использование функционала в самых различных областях применения используется трехуровневая структура:

  1. модули ядра (core) — содержат базовый функционал, применимый в широком спектре приложений (подобно самой Alfresco);
  2. модули приложений (applications) — содержат функционал, применимый только в определенных приложениях управления документами, например, управление договорами (contracts), управление доверенностями (attorneys), управление приказами ( orders ) и т.п.
  3. модули внедрения (custom) — содержат функционал, применимый только в конкретном внедрении системы в конкретной организации. У каждой организации свой набор модулей.

В типовом внедрении системы участвуют модули ядра, один или несколько модулей приложений (можно и без них), и модули внедрения.

Инфраструктура Alfresco позволяет в модулях более специфичных уровней переопределять реализацию и конфигурацию модулей более общих уровней. В частности, в модулях внедрения можно переопределять модули приложений и модули ядра.

Состав и функции модулей ядра

В состав ядра системы Citeck ECOS входят следующие модули:

  • 1st-override-repo;
  • 1st-override-share;
  • idocs-repo;
  • idocs-share.

Модули с суффиксом «-repo» предназначены для установки в веб-приложение alfresco.war (репозиторий Alfresco), модули с суффиксом «-share» предназначены для установки в веб­приложение share.war (Alfresco Share — веб-интерфейс).

Модули с префиксом «1st-override-» предназначены для переопределения файлов Alfresco. Модули с префиксом «idocs-» содержат основной функционал ядра системы Citeck ECOS.

Среди функций, которые добавляет система Citeck ECOS к системе Alfresco, можно отметить следующие основные функции.

Журналы. Представляет собой возможность документно-ориентированного просмотра и поиска различных видов документов и других объектов в системе. Отличительная особенность журналов — это учет специфики различных видов контента и отображение только релевантных атрибутов в каждом конкретном случае.

Оргструктура. Представляет собой возможность моделирования структуры организации, в которой используется система через встроенный механизм групп Alfresco. Отличительная особенность — возможность помечать группы различными метками, соответствующими различными видам подразделений и должностных лиц. Благодаря использованию механизма групп, имеется возможность выдачи прав на подразделения и должностные лица, а также постановки задач должностным лицам.

Шаблоны. Шаблоны контента позволяют генерировать по заданному шаблону контент документа. Шаблоны карточек позволяют генерировать по заданному шаблону связанные документы, такие как листы согласования, историю доступа и т.п. Шаблоны уведомлений позволяют настраивать отправку почтовых уведомлений по заданным событиям. Шаблоны автонумерации позволяют генерировать номера документов по заданному шаблону. Также поддерживаются шаблоны в формате docx (MS Word 2007).

Расширенные возможности процессов. Возможности по автоматической выдаче прав на время задачи и их отъему после окончания задачи. Возможность приложения документов к задачам. Поддержка заместителей.

Жизненные циклы. Возможность простого описания жизненного цикла документов в виде совокупности состояний и переходов между ними. Отличительная особенность компонента жизненных циклов — это простота реализации и расширения жизненных циклов даже после их запуска. Реализованы базовые бизнес-процессы (согласование, подписание и т.п.), из которых можно составлять жизненные циклы документов.

Поддержка отчетности. Автоматическая выгрузка информации во внешнюю базу для упрощения построения отчетности с помощью сторонних средств.

Кейс-менеджмент. Возможность организовывать кейсы — специальные контейнеры с произвольными типами вложений.

Интеграция. Возможность синхронизировать справочники Alfresco с внешними источниками. Поддерживаются такие источники данных как SQL-совместимые БД, XML-файлы,простые файлы (для импорта контента). Возможна также выгрузка информации во внешние хранилища.

Карточка документа. Возможность составлять карточку документа из различных разделов (кардлетов), можно переставлять разделы и указывать произвольные условия их отображения.

Пользовательский интерфейс. Различные визуальные компоненты, расширяющие возможности Alfresco Share и повышающие удобство использования системой.

Состав и возможности модулей приложений

В состав модулей приложений входят следующие модули:

  • contracts — управление договорами;
  • attorneys — управление доверенностями;
  • orders — управление приказами.

Модули приложений разворачивают в системе сайты (сайт договоров, сайт доверенностей и т.п.) и журналы для управления соответствующими видами документов, содержат определение моделей и форм для этих видов документов, определение специальных политик и предустановленных шаблонов, а также некоторые настройки по умолчанию, которые можно переопределять в модулях внедрения.

Описание сервиса синхронизации

Сервис синхронизации позволяет синхронизировать данные в различных хранилищах данных. Среди таких хранилищ поддерживаются:

  • репозиторий Alfresco;
  • внешние базы данных;
  • папки с XML-файлами;
  • папки с произвольными файлами.

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

  • Object DAO — сервис для доступа к какому-то хранилищу данных, различаются Source DAO (источник данных) и Target DAO (приемник данных);
  • Object Type — тип объектов, которым оперирует Object DAO, каждый Object DAO оперирует своим типом объектов, например, объекты репозитория, записи БД, элементы XML и т.п.
  • Object Info — информация об объекте типа Object Type, существующем или потенциальном, Object DAO позволяет получить Object Info из Object Type и создать (обновить) Object Type по Object Info;
  • Object Converter — преобразует Object Info из формата Source DAO в формат Target DAO;
  • Sync Configuration — параметры синхронизации: откуда переносить (Source DAO), как преобразовывать (Object Converter), куда переносить (Target DAO).

Ниже приведена схема потоков данных при синхронизации (Рисунок 3). Преобразование происходит по следующей схеме:

  1. Source DAO получает очередной набор объектов для синхронизации (либо все, либо только обновленные с момента последней синхронизации);
  2. Source DAO преобразует полученные объекты формат Object Info;
  3. Object Converter обеспечивает согласование форматов Object Info между Source DAO и Target DAO; для преобразования отдельных полей могут использоваться дополнительные объекты Object Converter;
  4. Target DAO создает или обновляет объекты в соответствии с полученной информацией.

Сервис синхронизации поддерживает загрузку связей объектов благодаря специальным реализациям Object Converter, которые позволяют находить и (или) создавать связанные объекты в соответствии с конфигурацией.

Для повышения скорости импорта/экспорта в сервисе синхронизации поддерживается многопоточная работа и объединение синхронизации нескольких объектов в одной транзакции. Можно регулировать максимальное количество одновременных транзакций (т.е. количество потоков) и максимальное количество объектов в транзакции.

Скачать описание Citeck ECOS и Alfresco:

Руководство и документация для настройки/работы с Alfresco ECM и Citeck ECOS