Архитектура документооборота

Описание структуры технических средств

Структура

С точки зрения технической структуры СЭД представляет собой классическое клиент-серверное веб приложение. В качестве сервера может выступать как один физический сервер, так и несколько связанных между собой серверов. В качестве клиентов выступают браузеры на рабочих машинах внутренней сети организации, либо удалённые рабочие машины, имеющие защищённый удалённый доступ к сети.

Доступ клиентов к серверу осуществляется посредством протокола HTTP/HTTPS.

Состав сервера СЭД

_images/network.png

Состав сервера СЭД и рабочие станции

Сервер СЭД состоит из следующих компонентов:

  • Сервер интерфейсов
  • Сервер приложений
  • Сервер базы данных
  • Кэширующий сервер
  • Файловый сервер

Сервер интерфейсов (Front Server) Представляет собой web сервер, который содержит элементы интерфейса СЭД. При первом обращении к СЭД интерфейс загружается в браузер пользователя и позволяет взаимодействовать с данными СЭД. Сервер интерфейсов реализован на языке JavaScript, фреймворк AngularJS, который реализует современный интерактивный интерфейс СЭД.

Сервер приложений (Backend Server) Сервер приложений обеспечивает авторизацию, формирование и передачу данных от сервера Баз данных к пользователю. Обмен данными между Сервером приложений и клиентом осуществляется по протоколу HTTP. Данные передаются в виде JSON. Сервер приложений построен на фреймворке Django, язык программирования - Python.

Сервер базы данных База данных является хранилищем информации СЭД. В ней находятся карточки документов, контроля, онформация о пользователях и тд. В СЭД “Муниципальный контроль” используется современная, СПО база данных PostgreSQL.

Кэширующий сервер Предназначен для снижения нагрузки на базу данных. Позволяет закэшировать тяжёлые запросы к БД, ускоряя работу СЭД в целом. Кэширующий сервер работает на базе Redis Server.

Файловый сервер Служит для сохранения и контроля доступа пользователей к файлам СЭД.

Программная реализация СЭД

Вся информация СЭД сохраняется в реляционной базе данных. Модели таблиц программируются на Python. Доступ к данным осуществляется посредством объектно-реляционного отображения (ORM англ. Object-Relational Mapping), реализованного фреймворком Django.

_images/document-scheme.png

Схема представления документа

Общий реестр документов

В реестре документов хранится общая информация для все документов.

Например:

  • Первичный ключ документа. Целое число уникальное для каждого документа СЭД.
  • Дата создания
  • Дата последнего изменения документа
  • Тип документа. Ключ сопоставляющий документ с таблицей типов документов.
  • Журнал документа. Ключ, по которому определяется принадлежность документа к определённому журналу документов.
  • Автор документа.

Типы документов

Для каждого типа документов СЭД создаётся отдельная таблица в БД, в которой сохраняетя специфическая для данного типа информация. Каждая запись таблицы связывается с общим реестром документов посредством Первичного ключа. Целостность данных организуется на уровне базы данных.

Пример полей в типе документов “Входящие”:

  • Входящий номер
  • Исходящий номер
  • Автор входящего документа
  • Адрес
  • Дата отправки
  • Текст документа

Журналы документов

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