Проектирование системы электронного документооборота (СЭД) на фреймворке Kohana 3.3
Методология построения отказоустойчивой структуры базы данных и файлового хранилища для корпоративных систем управления контентом.
Разработка современной системы электронного документооборота требует строгого разделения бизнес-логики, метаданных и физических объектов хранения. Использование Kohana 3.3 в качестве базового каркаса позволяет реализовать модульную архитектуру, где каждый компонент отвечает за конкретный аспект жизненного цикла документа. Ниже представлен функциональный каркас, адаптированный под высокие требования безопасности и производительности.
"Эффективная СЭД строится не вокруг файла, а вокруг процесса. Файл — лишь одна из версий состояния документа в конкретный момент времени."
1. Ядро документов (Documents Core)
- Типизация: Реализация через JSON-поля для гибкого набора атрибутов (Договор, Приказ).
- Нумератор: Шаблонная генерация индексов с поддержкой масок года и департамента.
- Реляционность: Междокументарные связи (родительские и дочерние объекты).
2. Storage Engine
- Хеш-адресация: Именование файлов по SHA1 для дедупликации данных.
- Версионность: Immutable-подход к хранению (старые версии неизменяемы).
- Превью: Асинхронная генерация миниатюр для PDF и офисных форматов.
3. Workflow и Бизнес-логика (BPM)
Маршрутизация
Конструктор последовательных и параллельных этапов согласования.
Контроль сроков
Автоматические уведомления и эскалация задач при просрочке дедлайнов.
Делегирование
Механизм временного замещения прав доступа на период отсутствия сотрудника.
4. Безопасность и Аудит
| Уровень | Механизм реализации |
|---|---|
| Доступ (ACL) | Матрица прав на уровне типов документов и конкретных сущностей. |
| Аудит | Журналирование (Audit Log) всех событий чтения и модификации. |
| Целостность | Хранение отсоединенных ЭЦП и контроль контрольных сумм файлов. |
5. Индексация и Поиск
Для обеспечения быстродействия необходимо внедрение полнотекстового поиска по содержимому (Elasticsearch или Sphinx) с поддержкой форматов DOCX, PDF и XLSX.
6. Коллаборация
Реализация механизма "Check-out" (блокировка при редактировании) и древовидных комментариев с упоминанием пользователей через @mention.
Техническая спецификация реализации
Структура Базы Данных
- documents — реестр карточек
- document_versions — бинарные данные
- document_meta — EAV/JSON атрибуты
- workflow_active — текущие процессы
- audit_log — неизменяемый журнал
Файловая иерархия
# Предотвращает переполнение inode и упрощает инкрементальный бэкап.