среда, 22 октября 2008 г.

Настройка заданий для DSpace

Для того, чтобы можно было сказать, что наша установка DSpace завершена, необходимо сделать ещё несколько вещей.

Задания для демона 'cron'
Пара функций DSpace требуют регулярного запуска. Это подписка по e-mail, которая оповещает пользователя о новых поступлениях в библиотеке, и новый медиа-фильтр, который генерирует миниатюры из изображений и извлекает полный текст документов для индексирования. Для их запуска мы будем использовать демон 'cron'.

cron — демон-планировщик задач в UNIX-образных операционных системах, использующийся для периодического выполнения заданий в заданное время.

Каждый пользователь системы имеет свой файл заданий crontab (файлы всех пользователей хранятся в каталоге /var/spool/cron/crontabs), в котором описано, в какое время и какие программы запускать от имени этого пользователя. Для редактирования файла crontab используется специальная одноименная программа crontab, позволяющая не прерывать процесс cron на время редактирования.

Файл заданий имеет следующий формат:

* * * * * выполняемая команда
- - - - -
| | | | |
| | | | ----- День недели (0 - 7) (Воскресенье =0 или =7)
| | | ------- Месяц (1 - 12)
| | --------- День (1 - 31)
| ----------- Час (0 - 23)
------------- Минута (0 - 59)

  • Итак, создадим файл с именем dspace-services:

    # Запуск рассылки подписок ежедневно в 01:00
    0 1 * * * /opt/dspace/bin/sub-daily
    # Запуск медиа-фильтра ежедневно в 02:00
    0 2 * * * /opt/dspace/bin/filter-media
    # Запуск проверки контрольных сумм каждый день в 03:00
    0 3 * * * /opt/dspace/bin/checker -lp
    # Выслать ежедневный отчет администратору в 04:00
    0 4 * * * /opt/dspace/bin/dsrun org.dspace.checker.DailyReportEmailer -c
    # Формирование статистических отчетов
    0 1 * * * /opt/dspace/bin/stat-general
    0 1 * * * /opt/dspace/bin/stat-monthly
    0 2 * * * /opt/dspace/bin/stat-report-general
    0 2 * * * /opt/dspace/bin/stat-report-monthly

    Теперь на основе этого файла создадим для пользователя tomcat задание:
    sudo crontab -u tomcat dspace-services

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

  • Производительность PostgreSQL выиграет от регулярного запуска процесса чистки базы, который оптимизирует индексы и очищает удаленные данные.

    Создадим файл postgresql-services:

    # Очистка базы каждую ночь в 04:20
    20 4 * * * vacuumdb --analyze dspace > /dev/null 2>&1

    Создаем задание для пользователя postgres:
    sudo crontab -u postgres postgresql-services

четверг, 16 октября 2008 г.

Установка DSpace

DSpace - это сервис, который осуществляет сбор, хранение, и распространение цифрового материала. Говоря проще - это электронная библиотека.

Платформа электронных библиотек DSpace разрабатывалась совместно компанией Hewlett-Packard и библиотеками MIT (Massachusetts Institute of Technology). 4-го ноября 2002 года система была запущена как действующая служба, поддерживаемая библиотеками MIT. Также на основании лицензии BSD открыт исходный код с намерением поощрить формирование сообщества открытых кодов вокруг DSpace.

Преимуществами DSpace являются - открытая лицензия, кроссплатформенность (DSpace написан на java), полнотекстовый поиск.

DSpace реализован как J2EE приложение, поэтому может функционировать в любом стандартном J2EE-контейнере. В качестве базы данных может использоваться Oracle или Postgresql.

Дистрибутив DSpace поставляется в исходных кодах. Для его сборки требуются: Java Development Kit, Apache Maven, Apache Ant.

Apache Maven

Maven - это высокоуровневый проект с открытым исходным кодом Apache Software Foundation, созданный, в первую очередь, для управления сложным процессом создания проекта Jakarta Turbine. Несмотря на такое скромное начало, разработчики проектов с открытым исходным кодом и в закрытых областях предпочли Maven в качестве системы создания проектов.
Подробно о Maven можно прочитать на сайте IBM.

Установка Apache Maven:
  • Скачаем последнюю версию Apache Maven:
    wget http://www.sai.msu.su/apache/maven/binaries/apache-maven-2.0.9-bin.tar.gz

  • Распакуем архив и перемести его в каталог /opt:
    tar xvzf apache-maven-2.0.9-bin.tar.gz
    sudo mv apache-maven-2.0.9 /opt

  • Создадим ссылку с именем /opt/apache-maven:
    sudo ln -s /opt/apache-maven-2.0.9 /opt/apache-maven

  • В файле /etc/environment добавим к переменной PATH путь исполняемым файлам, должно получиться что-то вроде:
    PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/opt/apache-maven/bin"

    Помните, что для того чтобы изменения в файле environment вступили в действие необходимо перезапустить сессию (т.е. сделать logout, login)

  • Если выход в интернет у вас настроен через прокси-сервер, тогда необходимо прописать его в файле /opt/apache/maven/conf/settings.xml.
    Найдите следующий текст:
    <!-- proxy
    | Specification for one proxy, to be used in connecting to the network.
    |
    <proxy>
    <id>optional</id>
    <active>true</active>
    <protocol>http</protocol>
    <username>proxyuser</username>
    <password>proxypass</password>
    <host>proxy.host.net</host>
    <port>80</port>
    <nonProxyHosts>local.net,some.host.com</nonProxyHosts>
    </proxy>
    -->

    И замените на:
    <proxy>
    <id>optional</id>
    <active>true</active>
    <protocol>http</protocol>
    <username>ИМЯ_ПОЛЬЗОВАТЕЛЯ</username>
    <password>ПАРОЛЬ</password>
    <host>ИМЯ_ПРОКСИ_СЕРВЕРА</host>
    <port>80</port>
    </proxy>

  • Сделаем владельцем каталога пользователя root:
    sudo chown -RLv root:admin /opt/apache-maven

  • Для проверки заставим показать maven номер версии:
    mvn --version


    В ответ должны получить что-то похожее на:
    Maven version: 2.0.9
    Java version: 1.6.0_06
    OS name: "linux" version: "2.6.24-19-server" arch: "amd64" Family: "unix"


Apache Ant

Apache Ant (англ. ant — муравей) — это средство компоновки, основанное на Java. Согласно утверждениям ее первого автора Джеймса Данкана Дэвидсона (James Duncan Davidson), его название - это акроним "another neat tool" (еще одно средство автоматизации).
Средства компоновки при разработке программного обеспечения используются для преобразования исходного кода и других исходных файлов в исполняемый формат (и, возможно, в образы для установки продукта). Поскольку процесс компоновки приложений становится все более сложным, важно гарантировать постоянство процесса при каждой компоновке с максимально возможной автоматизацией.
Подробно об Ant можно прочитать на сайте IBM.

Установка Apache Ant:
  • Скачаем последнюю версию Apache Maven:
    wget http://www.sai.msu.su/apache/ant/binaries/apache-ant-1.7.1-bin.tar.gz

  • Распакуем архив и перемести его в каталог /opt:
    tar xvzf apache-ant-1.7.1-bin.tar.gz
    sudo mv apache-ant-1.7.1 /opt

  • Создадим ссылку с именем /opt/apache-ant:
    sudo ln -s /opt/apache-ant-1.7.1 /opt/apache-ant

  • В файле /etc/environment добавим к переменной PATH путь исполняемым файлам, должно получиться что-то вроде:
    PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/opt/apache-maven/bin:/opt/apache-ant/bin"

  • Сделаем владельцем каталога пользователя root:
    sudo chown -RLv root:admin /opt/apache-ant

  • Для проверки заставим показать ant номер версии:
    ant -version


    В ответ должны получить что-то похожее на:
    Apache Ant version 1.7.1 compiled on June 27 2008


Установка DSpace
  • Дистрибутив DSpace выкладывается на сайте SourceForge.net

    Скачаем дистрибутив:
    wget http://ovh.dl.sourceforge.net/sourceforge/dspace/dspace-1.5.1-src-release.tar.gz

  • Распакуем архив:
    tar xvzf dspace-1.5.1-src-release.tar.gz

  • Создадим пользователя базы данных Postgresql:
    sudo su postgres
    createuser -d -A -P dspace

    Введите пароль пользователя dspace. На запрос "Позволить роли создавать другие роли", ответим отрицательно.

  • Создадим базу данных dspace, владельцем сделаем пользователя dspace:
    createdb -O dspace -E UNICODE dspace
    exit

  • Отредактируем файл [dspace-source]/dspace/config/dspace.cfg:

    #Каталог установки dspace
    dspace.dir = /opt/dspace

    #URL главной страницы DSpace, вместо localhost:8080 пропишите полное имя вашего сервера и порт, на котором работает web-контейнер.
    dspace.url = http://localhost:8080/xmlui

    #Полное имя вашего сервера (порт указывать не нужно)
    dspace.hostname = localhost

    #Имя вашего сайта (для корректного отображения русского названия воспользуйтесь утилитой native2ascii из jdk)
    dspace.name = \u042d\u043b\u0435\u043a\u0442\u0440\u043e\u043d\u043d\u0430\u044f \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430

    #Используемая СУБД
    db.name = postgres

    #Строка подключения к БД - jdbc:postgresql://[сервер]:[порт]/[имя БД]
    db.url = jdbc:postgresql://localhost:5432/dspace

    #Пользователь и пароль для подключения к БД
    db.username = dspace
    db.password = ПАРОЛЬ_ПОЛЬЗОВАТЕЛЯ

    #Имя SMTP сервера
    mail.server = ИМЯ_ВАШЕГО_SMTP_СЕРВЕРА

    #Обратный адрес сообщений
    mail.from.address = ВАШ_ПОЧТОВЫЙ_АДРЕС

    #Почтовый адрес для обратной связи
    feedback.recipient = ВАШ_ПОЧТОВЫЙ_АДРЕС

    #Почтовый адрес администратора
    mail.admin = ВАШ_ПОЧТОВЫЙ_АДРЕС

    #Почтовый адрес для сообщения об ошибках
    alert.recipient = ${mail.admin}

    #Кодировка писем
    mail.charset = UTF8

    #Локализация
    default.locale = ru

    #Язык сообщений
    default.language = ru_RU

    #Каталог для хранения бинарных потоков (загруженных файлов)
    #Рекомендуется разместить на специальном разделе
    assetstore.dir = ${dspace.dir}/assetstore

  • Создадим каталог, в который будем устанавливать DSpace:
    mkdir /opt/dspace

  • Произведем сборку DSpace, для этого воспользуемя Apache maven:
    cd  [dspace-source]/dspace/
    mvn package

    При этом будет произведена загрузка всех необходимых пакетов и зависимостей в каталог ~/.m2
    В случае успеха вы увидите сообщение BUILD SUCCESSFUL

  • Инициализируем базу данных и произведем установку DSpace:
    cd [dspace-source]/dspace/target/dspace-1.5.1-build.dir
    ant fresh_install

    В конце вы должны также получить сообщение BUILD SUCCESSFUL

  • Сделаем владельцем каталога /opt/dspace пользователя tomcat, т.е. пользователя под которым работает web-контейнер:
    sudo chown -Rv tomcat:nogroup /opt/dspace

  • Создадим ссылки на web-приложения DSpace:
    sudo -u tomcat ln -s /opt/dspace/webapps/xmlui /opt/apache-tomcat/webapps/xmlui
    sudo -u tomcat ln -s /opt/dspace/webapps/sword /opt/apache-tomcat/webapps/sword
    sudo -u tomcat ln -s /opt/dspace/webapps/oai /opt/apache-tomcat/webapps/oai

  • Создадим учетную запись администратора:
    [dspace]/bin/create-administrator

    Программа последовательно запросит почтовый адрес (e-mail), имя, фамилию и пароль администратора.

  • Вот он - момент истины! Открываем браузер по адресу http://ИМЯ_СЕРВЕРА:ПОРТ/xmlui и пробуем зайти с учетной записью администратора:




В следующей главе я опишу процесс дополнительной настройки DSpace.