Skip to Content
 Русский Русский    English English   

 

Система электронного документооборота Alfresco на базе FreeBSD

Система электронного документооборота Alfresco на базе FreeBSD

Мне была поставлена задача внедрить систему электронного документооборота для территориально распределенной организации. Программное обеспечение для СЭД должно быть бесплатным, с открытым исходным кодом, кроссплатформенным и предназначенным для крупных предприятий.

На первый взгляд все здорово - автоматизация корпоративного контента, однако это затрагивает всех сотрудников и, как показывает практика внедрения системы учета заявок, волны недовольств и сопротивления учиться новому с их стороны не избежать.

Хочу отметить, что успешность электронного документооборота во многом зависит от налаженности процессов, которые протекают в организации. Другими словами, что имеем на входе, то и получим на выходе, а СЭД позволяет только ускорит этот процесс.

Первым кандидатом на роль системы электронного документооборота стала СЭД Alfresco.

Alfresco (в переводе с итал. Под открытым небом) — open source интегрированная система электронного документооборота и система управления корпоративным контентом (Enterprise Content Management, ECM).
Поддерживается на всех основных платформах: FreeBSD, Microsoft Windows, Linux, Mac OS X и Solaris. Написана на Java.
В октябре 2009 года специализированное издание CMSWire назвало Alfresco лидером среди open source Java/WCMS. В августе 2010 года Infoworld назвал Alfresco одним из 11 победителей в номинации Bossie 2010 Award (Лучшие open source приложения.
Alfresco – открытая платформа ECM
Всю платформу Alfresco можно разделить на несколько основных компонентов:

  • Document Management – система управления документами (унифицированное хранилище данных, поддержка бизнес-процессов).
  • Records Management – архив данных, построенный на основе репозитория данных Alfresco.
  • Web Content Management – система управления веб-контентом (совместная работа над материалами, веб-публикации).
  • Share – система совместной работы, позволяющая создать подобие социальной сети внутри организации.

Версии продукта:

  • Alfresco Community - распространяются свободно без поддержки.
  • Alfresco Enterprise - распространяются с поддержкой от разработчиков.

Для работы Alfresсo необходимо установить:

  • /usr/ports/java/jdk16
  • /usr/ports/databases/mysql55-server
  • /usr/ports/www/tomcat7
  • /usr/ports/graphics/ImageMagick
  • /usr/ports/print/acroread9
  • /usr/ports/editors/openoffice.org-3
  • Flash Player
  • /usr/ports/graphics/swftools


Java JDK1.6

Установка Java JDK занимает длительное время. На системе с 1,5Гб оперативной памяти и 1,8MHz CPU сборка займет порядка 6 часов. По лицензионным ограничениям каждый компонент для установки придется выкачивать вручную и размещать в папке /usr/ports/distfiles/:
bsd-jdk16-patches-4.tar.bz2
diablo-caffe-freebsd7-i386-1.6.0_07-b02.tar.bz2
jdk-6u3-fcs-bin-b05-jrl-24_sep_2007
jdk-6u3-fcs-mozilla_headers-b05-unix-24_sep_2007
jdk-6u3-fcs-src-b05-jrl-24_sep_2007
tzupdater-1_3_38-2011e
После размещения необходимых пакетов можно приступать с сборке и инсталляции:

# cd /usr/ports/java/jdk16
# make install clean


Apache Tomcat 7

Tomcat (в старых версиях — Catalina) — программа-контейнер сервлетов, написанная на языке Java и реализующая спецификацию сервлетов и спецификацию JavaServer Pages (JSP), которые являются стандартами для разработки веб-приложений на языке Java.
Сервлет является Java-программой, выполняющейся на стороне сервера и расширяющей функциональные возможности сервера.

# cd /usr/ports/www/tomcat7
# make install clean
# echo 'tomcat7_enable="YES"' >> /etc/rc.conf
# echo 'tomcat7_java_opts="-server"' >> /etc/rc.conf
# echo 'tomcat7_java_home="/usr/local/jdk1.6.0"' >> /etc/rc.conf
# /usr/local/etc/rc.d/tomcat7 start

Опция -server обеспечивает запуск Tomcat с серверной версией JVM, которая отличается более агрессивным сборщиком мусора GC, несколько другой стратегией управления памятью и JIT.
Apache Tomcat запускается и прослушивает входящие соединения на непривилегированных портах. Запуск Tomcat на 80 порту возможен только от имени root'а:
http://192.168.0.1:8080


Alfresco

Установка

Скачиваем архив:
http://process.alfresco.com/ccdl/?file=release/community/build-3370/alfresco-community-3.4.d.zip

Кладем web-server/webapps/alfresco.war и web-server/webapps/share.war в директорию на сервере /usr/local/apache-tomcat-7.0/webapps/.

mysql-connector-java-5.1.13-bin.jar размещаем в папке /usr/local/apache-tomcat-7.0/lib.

Копируем web-server/shared в /usr/local/apache-tomcat-7.0/.
Создаем папку /usr/local/apache-tomcat-7.0/shared/lib.

Настройка базы данных

Создаем базу данных для alfresco:

# mysql -u root -p
> CREATE DATABASE alfresco default character set "UTF8";
> GRANT ALL ON alfresco.* to alfresco@localhost identified by 'pass';

Конфигурирование

Создаем и правим конфигурационный файл с глобальными настройками:

# cp /usr/local/apache-tomcat-7.0/webapps/alfresco/WEB-INF/classes/alfresco-global.properties.sample /usr/local/apache-tomcat-7.0/webapps/alfresco/WEB-INF/classes/alfresco-global.properties
# cp /usr/local/apache-tomcat-7.0/webapps/alfresco/WEB-INF/classes/alfresco-global.properties /usr/local/apache-tomcat-7.0/shared/classes/

<classpathRoot>/alfresco-global.properties:
  dir.root=/usr/local/apache-tomcat-7.0/webapps/alfresco/alf_data
  db.driver=org.gjt.mm.mysql.Driver
  db.url=jdbc:mysql://localhost:3306/alfresco?useUnicode=yes&characterEncoding=UTF-8

В файле /usr/local/apache-tomcat-7.0/conf/catalina.properties указываем shared.loader= property to the following: shared.loader=${catalina.base}/shared/classes,${catalina.base}/shared/lib/*.jar

Правим /usr/local/apache-tomcat-7.0/conf/server.xml. Устанавливаем кодировку UTF-8. По-умолчанию Tomcat использует ISO-8859-1. Это может создать проблемы при создании, загрузке и переименовыванию файлов в интернациональной кодировке.

<Connector port="8080" protocol="HTTP/1.1" URIEncoding="UTF-8"
               connectionTimeout="20000"
               redirectPort="8443" />

Решение проблем

Рестартуем tomcat:

# /usr/local/etc/rc.d/tomcat7 restart

Пробуем зайти http://192.168.0.1:8080/alfresco и облом - куча ошибок в логах (/usr/local/apache-tomcat-7.0/logs/stdout.txt):

Error creating bean with name 'Audit' defined in class path resource [alfresco/bootstrap-context.xml]: Invocation of init method failed; nested exception is org.alfresco.repo.audit.model.AuditModelException: 05200001 Failed to load audit model: file:/usr/local/apache-tomcat-7.0/webapps/alfresco/WEB-INF/classes/alfresco/audit/alfresco-audit-cmis.xml
...
Failed to load audit model: file:/usr/local/apache-tomcat-7.0/webapps/alfresco/WEB-INF/classes/alfresco/audit/alfresco-audit-cmis.xml
...
 JAXB 2.0 API is being loaded from the bootstrap classloader, but this RI (from jar:file:/usr/local/apache-tomcat-7.0/webapps/alfresco/WEB-INF/lib/jaxb-impl-2.1.7.jar!/com/sun/xml/bind/v2/model/impl/ModelBuilder.class) needs 2.1 API. Use the endorsed directory mechanism to place jaxb-api.jar in the bootstrap classloader. (See http://java.sun.com/j2se/1.5.0/docs/guide/standards/)

Alfresco использует JAXB 2.1 API, а в системе установлена JAXB 2.0 API.
The goal of the JAXB project is to develop and evolve the code base for the Reference of JAXB, the Java Architecture for XML Binding

По умолчанию сначала загружается библиотека из java (JAXB 2.0), поэтому нужно переопределить порядок вызова библиотеки. Для этого можно разместить jaxb-api-2.1.jar в директории endorsed:

# cp /usr/local/apache-tomcat-7.0/webapps/alfresco/WEB-INF/lib/jaxb-api-2.1.jar /usr/local/apache-tomcat-7.0/endorsed/

Ваша оценка: Нет Средняя: 4.6 (29 голосов)