Alfresco - ECM-система управління документами і контентом

  1. перелік скорочень
  2. Основні поняття системи
  3. Структура системи Alfresco
  4. Структура сервера додатків
  5. Взаємодія з суміжними системами
  6. Ресурси, необхідні для роботи Alfresco
  7. програмні ресурси
  8. Методи розширення та налаштування Alfresco
  9. Лог-файли Alfresco (журнали подій)
  10. Модулі розширення Citeck ECOS
  11. Склад і функції модулів ядра
  12. Склад і можливості модулів додатків
  13. Опис сервісу синхронізації

Alfresco - інформаційна платформа з відкритим кодом, розробником якої виступає компанія Alfresco Software Inc (Великобританія). Платформа не є системою електронного документообігу, але на її основі можна самостійно або за допомогою фахівців побудувати готову систему.

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

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

Відмітна особливість системи від більшої частини продуктів з відкритим кодом - це стабільність роботи і можливість масштабування під завдання бізнесу будь-якого розміру.

Система вміє управлятися з будь-яким видом документів. У корпоративній практиці вони поділяються на два типи даних: структуровані і неструктуровані.

Структуровані документи часто представлені у вигляді таблиць і записів, які зберігаються в облікових системах (1С, SAP, Oracle та інших). До неструктурованих відноситься контент, що виходить за рамки загальної структури - набір файлів і папок, медіа та відеофайли, розташовані на зовнішніх носіях або в інтернеті. І керуванням неструктурованих контентом займається окремий клас систем, а саме Enterprise Content Management (ECM), до яких і відноситься Alfresco.

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

Чому обирають нас ... Таких причин багато, але є три ключові:

ДАЛІ ПРЕДСТАВЛЕНО ТЕХНІЧНИЙ ОПИС 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).

сховище даних (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. Порівняння різних протоколів аутентифікації

ХарактеристикаLDAPNTLMKerberos

Підтримка версій 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 створює або оновлює об'єкти відповідно до отриманої інформації.

Source DAO отримує черговий набір об'єктів для синхронізації (або все, або тільки оновлені з моменту останньої синхронізації);   Source DAO перетворює отримані об'єкти формат Object Info;   Object Converter забезпечує узгодження форматів Object Info між Source DAO і Target DAO;  для перетворення окремих полів можуть використовуватися додаткові об'єкти Object Converter;   Target DAO створює або оновлює об'єкти відповідно до отриманої інформації

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

Для підвищення швидкості імпорту / експорту в сервісі синхронізації підтримується багатопотокова робота і об'єднання синхронізації декількох об'єктів в одній транзакції. Можна регулювати максимальну кількість одночасних транзакцій (тобто кількість потоків) і максимальну кількість об'єктів в транзакції.

Завантажити опис Citeck ECOS і Alfresco: Завантажити опис Citeck ECOS і Alfresco:

Мерлин (Merlin)

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

Это лишь начало приключений юного Мерлина и принца Артура, чьи судьбы с этого момента будут крепко связаны. Впоследствии один из них станет самым могущественным и известным чародеем, другой — доблестным рыцарем и великим королем Альбиона…

Это удивительная история юного мага, который в впоследствии становится одним из самых могущественных и известных волшебников из тех, кто когда либо жил на земле…