четверг, 17 июня 2010 г.

Интересная система на базе EMS Alfresco

Появилась интересная система документооборота на базе Alfresco.
Из интересного - полная поддержка отечественного документооборота и делопроизводства, а также возможность использования приложения как сервис (Software As A Service). И вроде бы не очень дорого.

пятница, 20 ноября 2009 г.

Полезные ссылки

1. Все настройки Alfresco
2. Все API Alfresco

вторник, 17 ноября 2009 г.

Установка Alfresco Enterprise 3.1 + Oracle

Установка Alfresco Enterprise 3.1 + Oracle

Все вроде бы должно быть просто, но пришлось немного помучиться с багами в Enterprise(!!!) версии Alfresco

1. Устанавливаем Oracle ( в моем случае 10G) , ставим кодировку UTF8, создаем БД alfresco
2. Устанавливаем Alfresco, используем БД по умолчанию
3. Создаем папку Oracle \Alfresco\extras\databases\Oracle \ копируя её из mysql
и заменяем содержимое файлов
db_remove.bat
C:\oracle\product\10.2.0\db_1\BIN\sqlplus.exe system/password @db_remove.sql

db_remove.sql
drop user alfresco cascade;
exit;


db_setup.bat
C:\oracle\product\10.2.0\db_1\BIN\sqlplus.exe system/password @db_setup.sql

db_setup.sql
create user alfresco identified by alfresco;
grant dba to alfresco;
grant create table to alfresco;
grant create sequence to alfresco;
grant update any table to alfresco;
grant select any table to alfresco;

exit;


4. (a) Открываем \Alfresco\tomcat\shared\classes\alfresco\extension\custom-repository.properties
и меняем строки:
db.name=alfresco
db.username=alfresco
db.password=alfresco

на
db.driver=oracle.jdbc.OracleDriver
db.name=alfresco
db.url=jdbc:oracle:thin:@localhost:1521:alfresco
db.username=alfresco
db.password=alfresco
db.pool.validate.query=SELECT 1 FROM DUAL


Комментарим строки
db.driver=org.apache.derby.jdbc.EmbeddedDriver
db.url=jdbc:derby:C:/Alfresco/alf_data/derby_data/alfresco;create=true


(b) Открываем C:\Alfresco\tomcat\shared\classes\alfresco\extension\custom-hibernate-dialect.properties
меняем строки:
комментируем
hibernate.dialect=org.hibernate.dialect.DerbyDialect
добавляем hibernate.dialect=org.alfresco.repo.domain.hibernate.dialect.AlfrescoOracle9Dialect
важно что именно этот диалект

(c) Удаляем файлы из C:\Alfresco\tomcat\shared\classes\alfresco\extension\
custom-activities-feed-context.xml
custom-activities-SqlMapConfig.xml
- это лечит какой-то баг невозможности поиска activities

5. Копируем Oracle JDBC driver JAR в C:\Alfresco\tomcat\lib\
6. Перезапускаем машину
6. Запускаем сервер Alfresco
7. Проверяем как обычно http://alfresco:8080/alfresco

пятница, 4 сентября 2009 г.

Обучение по Alfresсo в Москве

Компания Alfresco проведет в Москве обучающие курсы. Обучение пройдет с 21 по 25 сентября.

Курсы подготовлены компанией Componize, которая является сертифицированным партнером Alfresco по обучениию.

Примерный план обучения:

Администрирование

Секция 1: Установка и настройка системы

  • Модуль 1: Установка Alfresco
  • Модуль 2: Конфигурация репозитория
  • Модуль 3: Конфигурация файловой системы
  • Модуль 4: Устранение возможных проблем

Секция 2: Обслуживание, миграция и безопасность

  • Модуль 5: Экспорт и импорт
  • Модуль 6: Бэкап и восстановление из бэкапа
  • Модуль 7: Безопасность и права доступа

Настройка

Секция 1: Модели контента

  • Модуль 1: Доменные модели
  • Модуль 2: Изменение доменной модели

Секция 2: Настройка web-клиента

  • Модуль 3: Конфигурация web-клиента
  • Модуль 4: Настройка web-клиента

Разработка с AlfrescoAPI

Секция 1: Введение

  • Модуль 1: Среда разработки
  • Module 2: Архитекутра репозитория

Секция 2:Разработка с использованием репозитория Alfresco

  • Модуль 3: Spring Framework
  • Module 4: Foundation Services API
  • Модуль 5: JCR API
  • Модуль 6: Web Services API
  • Модуль 7: Использование AOP

Секция 3: Добавление новой функциональности в репозиторий Alfresco

  • Модуль 8: Действия
  • Модуль 9: Права
  • Модуль 10: Преобразователи данных
  • Модуль 11: Экстракторы метаданных

Секция 4: Добавление новой функциональности в web-клиент Alfresco

  • Модуль 12: JavaServer Faces
  • Модуль 13: Actions Framework
  • Модуль 14: Dialog Framework
  • Модуль 15: Wizard Framework
  • Модуль 5: Packaging Extensions
  • Модуль 16: Alfresco Module Packages

Информация по курсу

Оригинальная ссылка:
Intensive Alfresco Training for Development (5 Days)

По окончанию курса выдается сертификат разработчика Alfresco.

Теперь о грустном - стоимость курса 3999€

вторник, 6 мая 2008 г.

Установка Alfresco

В этой статье я опишу как можно установить Alfresco с нуля.

Нам понадобится
  1. Java Develompment Kit
  2. База данных MySQL(можно в принципе и встроенной обойтись)
  3. Собственно сама ECM Alfresco.
Устанавливаем Java, затем устанавливаем MySQL согласно инструкциям. Для MySQL выбираем все настройки по умолчанию, использование UTF-8, установка как сервиса Windows и включение в системную пути.

Для создания базы данных Alfresco входим в командную строку mysql c администраторскими правами.
 mysql -u root -p
Создаем БД, пользователя и пароль для него. По умолчанию используем имя пользователя: alfresco, пароль для него alfresco (alfresco_user используйте alfresco, вместо alfresco_pass так же используйте alfresco).

create database alfresco;
use alfresco;
create user alfresco_user identified by password 'alfresco_pass';
grant all on alfresco.* to 'alfresco_user';


Если хотите изменить имя и пароль, то их нужно настроить в файле

%ALFRESCO_HOME%\tomcat\shared\classes\alfresco\extension\custom-repository.properties,

раскомментировав строчки.

#db.username=alfresco
#db.password=alfresco


Если вы будете использовать стандартные имя и пароль, то можно воспользоваться скриптами:

%ALFRESCO_HOME%\extras\databases\mysql\db_setup.bat для создания DВ
и %ALFRESCO_HOME%\extras\databases\mysql\db_remove.bat для удаления

Так как мы используем MySQL необходимо раскомментировать строчки:

#db.driver=org.gjt.mm.mysql.Driver
#db.url=jdbc:mysql://localhost/alfresco

в блоке настройки MySQL.

И закомментировать строки настройки HSQL DB:

db.driver=org.hsqldb.jdbcDriver
db.url=jdbc:hsqldb:file:alf_data/hsql_data/alfresco;ifexists=true;shutdown=true;

Так же нужно включить поддержку hibernate-диалекта MySQL и выключить HSQL в
файле

%ALFRESCO_HOME%\tomcat\shared\classes\alfresco\extension\custom-hibernate-dialect.properties

#
# HSQL dialect
#
#hibernate.dialect=org.hibernate.dialect.HSQLDialect

#
# MySQL dialect (default)
#
hibernate.dialect=org.hibernate.dialect.MySQLInnoDBDialect



Затем запускаем Alfresco
%ALFRESCO_HOME%\alfresco-start.bat
Некоторое время ждем загрузки приложения.

Затем можно проверить установку, задав в строке браузера

http://localhost:8080/alfresco

среда, 23 апреля 2008 г.

Что такое Alfresco ?

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


Команда Alfresco - это люди работающие в мире электронного документооборота уже более 15 лет:



  • John Newton – один из создателей Documentum
  • John Powell один из руководителей BusinessObjects
  • Dr. IanHowells – отвечал за маркетинг в SeeBeyond®
  • KevinCochrane – отвечал за маркетинг в Interwoven®
  • Matt Asay - основатель и организатор Open Source Business Conference (OSBC)


Как я понимаю основали компанию первые двое. Наверное, Джону Ньютону надоело участвовать в создании монстра Documentum и он решил создать новую систему с нуля,естественно, используя современные представления об архитектуре и технологиях.

Альфреско = ECM.

ECM это Enterprise Content Management - дословно - управление корпоративным контентом, или говоря по русски - система управления информационными ресурсами предприятия. В России под это понятие больше всего подходит понятие СЭД - система электронного документооборота. А во всем мире - это системы по управлению информацией.

Посмотрим в wiki:

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

  • Управление документами — экспорт/импорт, контроль версий, безопасность и службы библиотек для деловых документов.
  • Управление образами документов (Document Imaging) — захват, преобразование и управление бумажными документами.
  • Управление записями (или, в соответствии с последним переводом стандарта IEEE 15489 — ГОСТ Р ИСО 15489-1-2007, "управление документами") — долгосрочное архивирование, автоматизация политик хранения и соответствия нормам регулирующих органов, обеспечение соответствия законодательным и отраслевым нормам.
  • Управление потоками работ (Workflow) — поддержка бизнес-процессов, передача контента по маршрутам, назначение рабочих задач и состояний, создание журналов аудита.
  • Управление веб-контентом — автоматизация роли веб-мастера, управление динамическим контентом и взаимодействием пользователей.
  • Документо-ориентированное взаимодействие — совместное использование документов пользователями и поддержка проектных команд.

Да... Мощно задвинули.
А что же из этого входит в Альфреско ?

В неё входят:
  • Система Электронного Документооборота (СЭД)
Она включает в себя: экспорт/импорт, контроль версий, безопасность и службы библиотек для деловых документов.
  • Система управления изображениями
Автоматически собирает метаданные изображения и переносит их в метаданные документа
  • Система управления записями
В Альфреско используется не ГОСТ - IEEE 15489, а DOD 5015.2, который так же используется в министерстве обороны США
  • Система управления потоками работ
Есть возможность использовать workflow "из коробки", но можно так же воспользоваться jbpm.
  • Система управление Веб-содержимым
Это вообще отдельная тема и отдельный большой проект. Некоторые уже называют Альфреско одним из лучших средств управления вёб контентом. Причем сравнивают с drupal и joomla. Ну что же, я возможно и соглашусь.
  • Система совместной работы над документами
Можно документы обсуждать, передавать друг-другу, комментировать. Давать задания по документу и т.д.

Все это можно увидеть на рисунке:




Интересно это Gartner описала Альфреско или Альфреско списала у Gather ?

Но факт остается фактом:
Альфреско - это современная ECM-система

среда, 2 апреля 2008 г.

Создание пользовательских типов в Alfresco. Часть 1

Введение
Alfresco это гибкая платформа для разработки приложений для управления данными. Первым шагом в разработке пользовательского типа данных является создание модели данных. Встроенная модель данных Alfresco довольно полная. На самом деле, для базовой функциональности управления документами, вам будет достаточно использовать встроенную модель. Конечно, вы потеряете некоторую функциональность по сравнению с использованием модели данных, подстроенной под нужды вашего бизнеса.
Эта статья описывает как создать Вашу собственную модель данных и не только. Зачем нужна собственная модель данных, если нет средств для её заполнения? Поэтому мы так же рассмотрим настройку пользовательского интерфейса для отображения нашей модели данных, затем мы напишем некоторый код для создания, поиска и удаления данных.
Вы должны быть знакомы с основами управления документами и с веб-клиентом Alfresco. Если вы хотите идти дальше, вы должны знать как писать простой Java код.

Основы создания моделей данных
Модель данных описывает данные которые могут быть сохранены в репозитории. Модели данных это основа Alfresco - без них она бы была просто развитой файловой системой. Вот ключевые особенности модели данных Alfresco:

  • Используются такие типы данных которые могут быть легко сохранены в БД, например без модели данных для Alfresco не было бы разницы между типами String и Date.
  • Более высокое положение в иерархии таких типов данных как "данные" и "папка", чем положение типов "Стандартная операция" или "Контракт"
  • Встроенные аспекты "наблюдаемый" и "классифицируемый" наряду с "оцениваемый" и "комментируемый"
  • Свойства (или метаданные) специфичны для каждого типа данных.
  • К свойствам могут применяться ограничения (например "значения свойства должны удовлетворять некоторому шаблону" или "значения свойства могут выбираться из списка подходящих")
  • Как индексировать данные для поиска
  • Отношения между типами данных.
Модель данных Alfresco построена с использованием малого числа "строительных блоков": Типы, Свойства, Типы свойств, Ассоциации и Аспекты.

Типы
Типы похожи на классы объектов в ООП. Они могут использоваться для мделирования бизнес объектов, они имеют свойства, и они могут наследоваться от типа предка. Важнейшие встроенные типы это "Данные", "Персона" и "Папка". Пользовательские типы ограничены только вашей фантазией и требованиями бизнеса. Например, "Отчет о прибылях", "Медицинская запись", "Фильм", "Песня", "Комментарий". Заметьте, что Типы, Свойства, Типы свойств, Ассоциации и Аспекты имеют уникальные имена. Эти имена используются потом в xml схеме модели. Например, для модели MyModel мы можем определить URI: "http://www.mymodel.com/model/content/1.0" и префикс "opt:", любой тип определенный как часть этой модели будет начинаться с "opt:". Мы еще поговорим подробнее как с использованием XML определяются модели. Использования пространств имен позволяет исключить коллизии наименований типов.

Свойства
Свойство это составная часть метаданных ассоциированных с данным типом. Например, свойствами "Отчета об убытках", могут быть такие свойства как: "Имя работника", "Дата создания", "Проект", "Клиент" и т.д. Этот тип может так же иметь свойство "данные" для хранения файла с отчетом в формате excel или PDF.

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

Ограничения
Ограничения используются для определения того какие данные могут храниться в свойстве типа. Существуют четыре типа ограничений: REGEX, LIST, MINMAX, and LENGTH. REGEX используется для ограничения свойства с помощью регулярных выражений, LIST используется для определения списка возможных значений, MINMAX для ограничения цифровых значений и LENGTH для определения длины свойства. Ограничения могут быть определены один раз и использоваться во всех моделях Alfresco. Например, везде можно использовать ограничение “cm:filename” для REGEX-ограничения по имени файла.

Ассоциации
Ассоциации определяют отношения между типами. Без ассоциаций, модель может быть полна типами которые ссылаются на другие части данных. Возвращаясь к примеру с "Отчетом по прибыли" мы можем сохранить каждую строчку как отдельный объект. К типу "Отчет по прибыли" мы можем добавить тип "строчка отчета". Используя ассоциации мы можем сказать Alfresco об отношениях между этими типами. Ассоциации бывают двух типов: "равные ассоциации" и и ассоциации "подчинения". "Равные" ассоциации определяют отношения между двумя объектами, но не подчиняет их один другому. "Подчиненные" ассоциации напротив используются для того, чтобы показать такое подчинение. В ассоциациях существующих по-умолчанию легко определить тип ассоциации "cm:contains". Эта ассоциации определяет "подчиненные" отношения между папками ("cm:folder") и всеми другими объектами - потомками типа "sys:base". Другой пример - "Отчет" и "Документы приложения" - они будут связаны "равными" ассоциациями.

Аспекты
Перед тем как говорить об аспектах, давайте решим как работает наследование и включение в нашей модели данных. Допустим мы используем Alfresco для управления данными и отображения их на странице портала. Допустим что мы хотим видеть только часть данных. Простой пример это отображение даты и времени отправки данных на портал. Используя модель данных мы можем поступить двумя способами: первый - это определить такое свойство в корневом типе для всех объектов и все объекты -наследники будут его наследовать от корневого типа, а второй способ определить этот свойтсво только для тех типов которые будут отображаться на портале.. Естественно второй способ лучше, а первый легче. Таким образом, для нашего примера нужно определить аспект "PortalDisplayable" со свойством "published date". Этот аспект будет добавляться ко всем данным для которых требуется отображение на портале.