вторник, 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". Этот аспект будет добавляться ко всем данным для которых требуется отображение на портале.

понедельник, 31 марта 2008 г.

Конференция Alfresco в Сан-Хосе

Источник


Больше 150 заказчиков и партнеров присоединились к конференции сообщества Alfresco в Сан-Хосе.

Согласно опубликованным тезисам CEO Alfresco John Powell и CTO John Newton обстоятельно прошлись по "состоянию рынка ECM решений" в своей презентации, большую часть которой можно было увидеть на конференции в Нью-Йорке. По существу старое понимание ECM уже не актуально, базовые сервисы управления контентом привнесут ECM в массы и web 2.0/enterprice 2.0 нуждается в быстром развитии. Alfresco видит свое будущее как освоение и переход к этим новом особенностям ECM. Они позиционируют себя как фронтофис/extranet/internet более чем Documentum, Filenet, или OpenText и более бэкофисом чем Vignette, Interwoven, или Drupal, и более enterprise чем Sharepoint.


Adobe Share

В качестве бекенда для share.adobe.com используется alfresco. Фронтенд это flex технология. Все документы расшаренные на сайте сохраняются в Alfresco. Flex фронтенд общается с alfresco используя rest технологию.


Будущие релизы

  • 2.9 Enterprise (второй квартал 2008) .
  • 3.0 Community (Начало августа)
  • 3.0 Enterprise (Начало октября)
  • 3.1 (Конец 2008)
  • 3.5/4.0 (Середина-2009)
Все задачи по alfresco-3 собраны в Jira в проекте Slingshot

Web client 3.0: Больше не 100% Flex

Одно из главных изменений версии 3.0 это новый вебклиент. Ранее были планы построить клиента полностью на технологии Adobe Flex. Новый план подразумевает построение клиента с использованием web скриптов с использованием Adobe Flex там где это оправдано. Так же больше не будет JSF.

Другим интересным аспектом нового клиента будет создание web-сайта управляемого WCM. Это означает, что настройка клиента будет производится так же как на любом другом вебсайте. Новый веб-клиент так же будет использоваться как пример как построить свой динамический вебсайт поверх REST интерфейса Alfresco. Классический вебклиент будет поддерживаться два года после выпуска третьей версии.

Важная часть изменений в 3.0 то что репозиторий и клиент будут теперь раздельными веб приложениями.


Перемещение Alfresco во фронтэнд: Alfresco Dynamic Web Site

Альфреско будет становиться чем то похожим на Vignette или Drupal front-end presentation framework.

Сейчас, после установки Alfresco WCM вы можете только управлять им но не можете его создавать. Альфреско надеется сделать WCM, как поставщика примера сайта, набора компонет и утилит для редактирования. Так же ожидается создания большого числа таких компонентов в свободном доступе как в Drupal или Sharepoint