Архитектура документооборота¶
Описание структуры технических средств¶
Структура¶
С точки зрения технической структуры СЭД представляет собой классическое клиент-серверное веб приложение. В качестве сервера может выступать как один физический сервер, так и несколько связанных между собой серверов. В качестве клиентов выступают браузеры на рабочих машинах внутренней сети организации, либо удалённые рабочие машины, имеющие защищённый удалённый доступ к сети.
Доступ клиентов к серверу осуществляется посредством протокола HTTP/HTTPS.
Состав сервера СЭД¶
Состав сервера СЭД и рабочие станции
Сервер СЭД состоит из следующих компонентов:
- Сервер интерфейсов
- Сервер приложений
- Сервер базы данных
- Кэширующий сервер
- Файловый сервер
Сервер интерфейсов (Front Server) Представляет собой web сервер, который содержит элементы интерфейса СЭД. При первом обращении к СЭД интерфейс загружается в браузер пользователя и позволяет взаимодействовать с данными СЭД. Сервер интерфейсов реализован на языке JavaScript, фреймворк AngularJS, который реализует современный интерактивный интерфейс СЭД.
Сервер приложений (Backend Server) Сервер приложений обеспечивает авторизацию, формирование и передачу данных от сервера Баз данных к пользователю. Обмен данными между Сервером приложений и клиентом осуществляется по протоколу HTTP. Данные передаются в виде JSON. Сервер приложений построен на фреймворке Django, язык программирования - Python.
Сервер базы данных База данных является хранилищем информации СЭД. В ней находятся карточки документов, контроля, онформация о пользователях и тд. В СЭД “Муниципальный контроль” используется современная, СПО база данных PostgreSQL.
Кэширующий сервер Предназначен для снижения нагрузки на базу данных. Позволяет закэшировать тяжёлые запросы к БД, ускоряя работу СЭД в целом. Кэширующий сервер работает на базе Redis Server.
Файловый сервер Служит для сохранения и контроля доступа пользователей к файлам СЭД.
Программная реализация СЭД¶
Вся информация СЭД сохраняется в реляционной базе данных. Модели таблиц программируются на Python. Доступ к данным осуществляется посредством объектно-реляционного отображения (ORM англ. Object-Relational Mapping), реализованного фреймворком Django.
Схема представления документа
Общий реестр документов¶
В реестре документов хранится общая информация для все документов.
Например:
- Первичный ключ документа. Целое число уникальное для каждого документа СЭД.
- Дата создания
- Дата последнего изменения документа
- Тип документа. Ключ сопоставляющий документ с таблицей типов документов.
- Журнал документа. Ключ, по которому определяется принадлежность документа к определённому журналу документов.
- Автор документа.
Типы документов¶
Для каждого типа документов СЭД создаётся отдельная таблица в БД, в которой сохраняетя специфическая для данного типа информация. Каждая запись таблицы связывается с общим реестром документов посредством Первичного ключа. Целостность данных организуется на уровне базы данных.
Пример полей в типе документов “Входящие”:
- Входящий номер
- Исходящий номер
- Автор входящего документа
- Адрес
- Дата отправки
- Текст документа
Журналы документов¶
Дополнительная таблица с журналами документов требуется для создания документов одного типа с различными номерами и параметрами досупа. В таблице хранятся настройки доступа пользователей к журналам, номера документа в журнале и тд.