Статья написана для журнала
Не секрет, что в любой современной организации даже небольшого размера циркулулирует достаточно большое количество разного рода документов. Год-два и исполнители без должной организации уже не смогут справляться с их обработкой и будут буквально завалены различного рода иструкциями, отчетами, предписания и так далее. Применение свободной ECM (Enterprise Content Management systems) системы Alfresco позволит решить, большую часть задач по обработке документации на всех этапах. И это еще не все ее возможности.
Информационные ресурсы состоят из файлов разрабатываемых самими пользователями и поступающих из вне, имеющие свое назначение, формат, сроки исполнения. Все данные изначально слабо структурированны и если не принять надлежащие меры по их систематизации, любая попытка заниматься позитивной деятельностью будет сведена на нет, необходимостью поиска нужных данных, лица ответственного за исполнение и так далее. Попытки упорядочить весь цикл “жизни” документа на всех этапах от создания, согласования, регистрации, рассмотрения, тестированияи, исполнения, публикации и архивирования ведется уже давно. В итоге разработано большое количество стандартов и сегодня доступен ряд готовых решений, задача которых ускорить прохождение документов на всем жизненном цикле, а также улучить взаимодействие сотрудников принимающих участие в их создании. Система, удовлетворяющая современным требованиям должна как минимум иметь средства контроля версий и взаимосвязей электронных документов, блокировку на время редактирования, позволять работать с метаданными, обеспечивать требуемую безопасность и разграничение доступа, поиск, упрощенную публикацию, преобразование и импорт с бумажных носителей, хранение и архивирование. В международной классификации такие системы относят к классу ECM систем (Enterprise Content Management systems, системы управления информационными ресурсами предприятия). В Российской терминологии чаще используется термин – системы электронного документооборота (СЭД). Учитывая большое количество функций ECM-системы достаточно сложны по внутреннему устройству и достаточно дороги. Хотя в использовании они довольно просты. Самыми извесными представителями данного класса, являются коммерческие Microsoft Office SharePoint Server 2007 (MOSS) [2] и DIRECTUM [3]. Есть ряд в списке решений и имеющие свободную лицензию, например Alfresco [4] о котором пойдет речь далее в статье и eZ Publish [5].
Alfresco относительно молодая ECM-система, проект возник в 2005 году. Сообщается, что команда учавствующая в создании Alfresco имеет более чем 15 летний опыт разработки и эксплуатации подобных систем. Среди них – один из руководителей Documentum – John Newton (Джон Невтон) и Джон Повелл (John Powell) Chief Operating Officer Business Objects. Поэтому они четко представляют, слабые и сильные стороны альтернативных решений и главное как должен выглядеть конечный результат.
Alfresco построен исключительно на открытых стандартах, в разработке используется принцип свободного ПО, доступен исходный код системы. Модульный дизайн позволяет при необходимости выбирать между нужной функциональностью и производительностью. Разработчики выделяют пять основных функций своей системы:
Собственно система Alfresco разработана с использованием Java технологий, и в состав рабочей среды, кроме тех о которых уже говорилось, входит еще ряд стандартных компонентов: Apache Tomcat, OpenOffice.org (для конвертации документов), Java SE Development Kit (JDK), SWF Tools (утилита pdf2swf необходима для предосмотра PDF документов в Flash) и другие. В качестве сервера приложений вместо Apache Tomcat, который предлагается по умолчанию, может быть использован – JBoss или Weblogic. Для работы Alfresco потребуется наличие СУБД – Apache Derby, MySQL, PostgreSQL и HSQL. Сами разработчики рекомендуют использовать Derby (он предлагается во время установки по умолчанию) в основном при тестировании Alfresco. В рабочей среде лучше выбрать MySQL или PostgreSQL. Об этом напоминает и соответствующая запись журнале появляющаяся после запуска:
Alfresco is using the Apache Derby default database. Please only use this while evaluating Alfresco, it is NOT recommended for production or deployment!
Разработчики Alfresco предлагают два варианта системы: Alfresco Enterprise Edition и Alfresco Labs. В контексте статьи нас интересует бесплатный вариант Alfresco Labs. От коммерческой версии его отличает – отсутствие поддержки со стороны разработчиков (только форум проекта), отсутствие сертификации, основу его составляет нестабильный код. Ориентирован Alfresco Labs для использования разработчиками и энтузиастами в некритических областях.
Alfresco может быть установлен в любой операционной системе, для которой существует все указанные компоненты – Windows, Linux, Solaris и Mac OS X.
Alfresco имеет ряд наград (например InfoWorld: Best of Open Source Applications 2007), поэтому о его плюсах можно рассказывать долго. Но все особенности охватить все равно не получится, здесь как раз тот случай, что лучше один раз увидеть, чем сто раз прочитать. Есть и минусы. Самый важный в наших условиях – плохая локализация, если точнее, то практически полное ее остутствие в некоторых элементах. По адресу [6] можно найти информацию по самостоятельному переводу интерфейса, процесс достаточно простой, единственная проблема здесь – правильный перевод довольно специфических терминов. Здесь же можно скачать готовый пакет, подготовленный Алексеем Чумаковым, последняя правка которого датирована 2006 годом и относится к версии 1.4. На момент написания этих строк актуальной была версия 3.0, в которой произведено достаточно много изменений, поэтому после его установки в интерфейсе можно найти относительно немного надписей на русском языке.
Для работы Alfresco понадобится установленный Java SE Development Kit (JDK) 5 или 6 версии, сервер приложений, СУБД, OpenOffice.org, SWF Tools. На клиенской системе – веб-браузер с плагином для просмотра Flash. Так на странице закачки предлагается несколько файлов, и в зависимости от наличия/отсутсвия указанных приложений следует выбрать подходящий. Наиболее полная поставка включена в группе пакетов подписанных как Alfresco-Labs-3Stable. Такой пакет доступен поставке для трех систем – Windows, Linux и Mac OS X. Причем для Windows предложено 2 варианта – полный (Full-Setup) в состав которой входит весь комплект (веб-клиенты Share и Explorer, DM, WCM, Web Studio, Records Management и SharePoint) и OOo-Setup содержащий только базовый набор, без дополнительных модулей. В состав OOo-Setup уже входит OpenOffice.org, но все остальное, в частности необходимый для работы JDK следует устанавливать самостоятельно. Отдельно доступны пакеты с Tomcat и WAR (Web ARchive) файлы с Alfresco (по 2 версии каждого для Windows и Unix). WAR-пакет предназначен для развертывания ECM-системы на уже работающем сервере приложений. Кроме этого на странице закачки можно найти различные модули для расширения возможностей Alfresco – Microsoft Office add-ins, iGoogle, интеграция с MediaWiki, Alfresco Web Service Client (удаленный доступ к репозитарию Alfresco), поддержки Microsoft SharePoint Protocol, SDK и другие. Некоторые из них уже включены в основной пакет, поэтому перед их загрузкой следует ознакомиться с описанием Alfresco-Labs-3Stable.
Далее рассмотрим установку при помощи комплектов Alfresco-Labs-3Stable содержащих весь набор программ. Процесс для Windows и Linux внешне выглядит одинаково, и отличается лишь размещением файлов по окончании установки. В качестве дистрибутива Linux был выбран Ubuntu 8.04 LTS, кроме этого работоспособность Alfresco проверялась и на CentOS 5.2. Скорее всего, проблем не будет и с другими дистрибутивами, по крайней мере, сами разработчики никаких требований и ограничений по этому поводу не приводят.
$ chmod +x Alfresco-Labs-3Stable-Linux-x86-Install $ sudo Alfresco-Labs-3Stable-Linux-x86-Install
Выбираем язык установки и следуем указаниям мастера установки. В предложеном списке среди прочих языков есть и русский, но при его выборе в Windows и Linux читаемого текста не наблюдаем, поэтому скорее всего придется устанавливать на английском.
Благо весь процесс не запутан и можно сказать стандартен. По ходу выбираем вариант установки Typical или Custom. В случае с Custom можно отобрать устанавливаемые компоненты. На следующем шаге мастера установки определяем какую базу данных будем использовать – Apache Derby или MySQL. В случае выбора MySQL далее указываем данные для доступа (пароль root, узел, и название базы данных). Других СУБД – PostgreSQL и HSQL в списке нет, их необходимо настраивать вручную. После копирования файлов установка собственно и заканчивается.
Для запуска в Windows выбираем в меню Пуск пункт “Alfresco Labs – Start Alfresco Server” или набираем в командной строке:
> cd c:\alfresco c:\alfresco> alf_start
В Linux просто запускаем скрипт alfresco.sh находящийся в /opt/alfresco. При установке Alfresco-Labs-3Stable пакетов при запуске обычно проблем нет. После успешного запуска в файле alfresco.log, который находится в корне каталога, в который установлен Alfresco, должна пояиться запись:
Successfully Initialized Web Framework
Команда “netstat” должна показать, что на порту 8080 (по умолчанию) открыт сокет. В других случаях, возможно, придется подправить или установить ряд переменных. Например, если JDK устанавливалась самостоятельно, следует настроить переменную PATH (или JAVA_HOME), чтобы она показывала на каталог с JDK. В Windows это можно сделать стандартным путем (Свойства – Дополнительно – Переменные среды). Разработчики предлагают bat скрипт SetPaths.bat выполняющийся автоматически при запуске Alfresco, строка внутри файла по умолчанию указывает на каталог C:\Alfresco\jdk. При необходимости просто исправляем запись на нужную.
В Linux для установки PATH используется файл /etc/profile (или /etc/bash.bashrc или файлы в каталоге /etc/profile.d).
export PATH=$PATH:/usr/java/jdk/bin
После чего регистрируемся в системе и проверяем доступность введя в консоли “java –version”. В Ubuntu после запуска Alfresco на тестовой машине в alfresco.log появилась такая запись:
WARN [org.alfresco.service.descriptor.DescriptorService] Alfresco JVM - WARNING - maximum heap size 493,063MB is less than recommended 512MB
Настройки параметров запуска JVM находятся в alfresco.bat (Windows) и alfresco.sh (Linux). По умолчанию строка, устанавливающая параметры выглядит так:
rem Set any default JVM options set JAVA_OPTS=-Xms128m -Xmx512m -Xss96k -XX:MaxPermSize=128m -server
Из них “Xms” – отвечает за начальный размер кучи (в мегабайтах), а “Xmx” устанавливает максимальный. При необходимости изменяем их значения в зависимости от мощности системы и планируемой нагрузки. В документе “Installing and Configuring Alfresco Labs 3 Stable” [7] можно найти некоторые рекомендации по установкам JAVA_OPTS. Например для 50 постоянных пользователей с возможным пиком в 500, рекомендуется размер кучи не менее 1Гб.
Правка конфигурационных файлов вообщем не обязательная задача, но только заглянув внутрь, можно настроить Alfresco в соответствии с системными настройками, отключить ненужную или включить требуемую функциональность, задать альтернативные пункты меню, локализовать интерфейс и многое другое. Конфигурационные файлы собраны в трех подкаталогах в tomcat/shared/classes/alfresco:
Большая часть файлов имеющихся в каталогах extension и web-extension имеют окончание sample. В том числе есть и дубликаты с подобным именем для уже рабочих файлов. Например, file-servers-custom.xml и file-servers-custom.xml.sample.
По структуре часть конфигурационных файлов выполнена в XML формате, часть (с окончанием .properties) просто содержат строки вида “параметр значение”. Назначение большей части настроек можно узнать из сопутствующих комментариев. Единственное неудобно – большое количество самих файлов, хотя их имена позволяют быстро сориентироваться.
Для активации некоторые параметры достаточно расскоментировать или включить/отключить их установив атрибут true/false. Не забудьте сохранить резервные копии, большое количество настроек изменять не рекомендуется, лучше делать это постепенно проверяя результат. Практически все файлы уже находящиеся внутри каталогов, подключены и могут считываться при загрузке, для чего достаточно убрать префикс .sample. При создании новых файлов об их видимости для Alfresco необходимо позаботиться самому.
Например, файл custom-repository.properties подключается в custom-repository-context.xml строкой:
<!-- Override basic repository properties --> <property name="locations"> <list> … <value>classpath:alfresco/extension/custom-repository.properties</value> </list> </property>
В custom-repository.properties находим путь к некоторым используемым Alfresco файлам и параметры доступа к БД.
# Sample database connection properties db.name=alfresco db.username=alfresco db.password=alfresco #db.pool.initial=10 #db.pool.max=100 # External locations ooo.exe=C:/Alfresco/OpenOffice.org/program/soffice ooo.user=${dir.root}/oouser img.root=C:/Alfresco/ImageMagick swf.exe=C:/Alfresco/bin/pdf2swf # Derby connection db.driver=org.apache.derby.jdbc.EmbeddedDriver db.url=jdbc:derby:C:/Alfresco/alf_data/derby_data/alfresco;create=true # MySQL connection #mysql#db.driver=org.gjt.mm.mysql.Driver #mysql#db.url=jdbc:mysql://localhost:3306/alfresco
При необходимости использовать другую СУБД, достаточно снять комментарии. Пароль для доступа к БД устанавливается на основании данных взятых из скрипта db_setup.bat (Windows) или db_setup.sql (Linux), который можно найти в каталоге extras\databases\mysql. Чтобы установить другой пароль для доступа к БД при ее создании, следует изменить его в этих файлах или самостоятельно ввести команды взяв их за образец. Аналогично выглядят и другие файлы, к сожалению описания, их иерархии в документации нет.
Для локализации интерфейса следует скопировать и распаковать в каталог messages, архив взятый по ссылке с [4]. Затем в файле extension/web-client-config.xml и снимаем xml-комментарии с секции
<config evaluator="string-compare" condition="Languages"> <languages> <language locale="ru_RU">Russian</language> </languages> </config>
Строки для остальных языков можно удалить или закомментировать. Можно вместо Russian написать “Русский”, только для этого следует использовать редактор с поддержкой UTF-8. По окончании сохраняем результат и перезагружаем Alfresco.
Теперь познакомимся с особенностями в администрирования Alfresco чуть ближе, регистрируемся в Web Client. Интерфейс частично переведен и в дальнейшем будут использоваться названия категорий в том виде, в котором они доступны после локализации готовыми средствами. Основной рабочего пространства в Alfresco являются области. На корнем областей является “Company Home”, которая состоит из пяти подразделов: Data Dictionary, User Homes, Guest Home, Web Project и Sites. Внутри этих пунктов также могут находиться под пункты. В дальнейшем будем рассматривать работу в “User Homes. Пользователи свои данные хранят в домашней области “Home space”, которые располагаются в “User Homes”. Для быстрого перехода в свою область пользователю достаточно нажать после регистрации ссылку “Моя начальная область” (My Home). Владелец “My Home” имеет полные права, он может создавать новые внутри другие области, добалять и создавать материал и так далее. Все остальные пользователи получают гостевой доступ к чужому “Home space”. Имя пользовательского «Home space» по умолчанию созвучно его логину, под которым он регистрируется в системе.
Возможностей в стандартной поставке Alfresco на столько много, что описать их не хватит и книги среднего размера. Но не следует забывать и о дополнительных модулях, которые расширяют возможности этой системы и довольно просто подключаются (в tomcat\shared\classes\alfresco\extension). В целом Alfresco Labs показал себя стабильным приложением, вполне подходящим для использования.
1 Комментарий к Обзор OpenSource ECM системы Alfresco
Январь 28th, 2010 | 10:18
а вот еще статейка http://www.developers.org.ua/archives/jozh/2010/01/26/alfresco-wcm-overview/