Шибанов С.В. , Казакова. Е.А., Апаров М.И. , Илюшкин А.С.
АРХИТЕКТУРА МЕТАДАННЫХ В АВТОМАТИЗИРОВАННОЙ ИНФОРМАЦИОННОЙ СИСТЕМЕ «ПРОКУРАТУРА-СТАТИСТИКА»
КАК ОСНОВА РАЗРАБОТКИ И СОПРОВОЖДЕНИЯ
Для повышения эффективности разработки, функционирования и сопровождения информационных систем используются метаданные различного вида и назначения. Метаданные, накапливаемые и обрабатываемые в информационной системе, используются на различных этапах жизненного цикла системы. Использование метаданных позволяет корректно выделить и распределить задачи между разработчиками информационной системы, а главное, упростить процедуру разработки и внесения изменений в логику работы информационной системы на этапе сопровождения. Архитектура метаданных в автоматизированной информационной системе (АИС) «Прокуратура-Статистика» построена с учетом возможного развития системы на этапе сопровождения.
Введение. Для повышения эффективности разработки, функционирования и сопровождения информационных систем используются метаданные различного вида и назначения. Под метаданными обычно понимаются данные о данных, т.е. некоторые сведения, описывающие состав, структуру, ограничения целостности, правила использования данных хранимых и обрабатываемых в информационных системах. Это определение метаданных можно считать определением в узком смысле. В широком смысле метаданные можно рассматривать не только как данные о данных, но и данные об архитектуре и элементах информационной системы, пользовательском интерфейсе приложений, правилах функционирования программного обеспечения и о многом другом. Метаданные можно разделить на пользовательские и машинные. Пользовательские метаданные используются пользователями, поэтому представляются в удобном для использования пользователями виде. Машинные метаданные предназначены, соответственно, для машинной обработки.
Метаданные активно используются разработчиками для автоматизации процесса проектирования и описания информационной системы, конечными пользователями информационной системы для автоматизации ввода и редактирования данных. Программное обеспечение информационной системы использует метаданные для настройки пользовательского интерфейса, автоматизации обработки и контроля достоверности данных. Таким образом, метаданные, накапливаемые и обрабатываемые в информационной системе, используются на различных этапах жизненного цикла системы. Использование метаданных в информационной системе позволяет корректно выделить и распределить задачи между разработчиками информационной системы, а главное, упростить процедуру внесения изменений в логику работы информационной системы на этапе сопровождения.
Обработка данных в АИС «Прокуратура-Статистика». Объектом автоматизации в автоматизированной информационной системе статистического учета и анализа для Пензенской областной прокуратуры (АИС «Прокуратура-Статистика») является процесс статистического учета и анализа основных показателей деятельности прокуратуры. В АИС «Прокуратура-Статистика» должны учитываться, сохраняться, накапливаться, обрабатываться и анализироваться статистические сведения об основных показателях деятельности районных, городских прокуратур, структурных подразделений и прокуратуры области в целом в соответствии с существующими инструкциями Генеральной прокуратуры Российской Федерации.
Первичный статистический учет проводится в районных, городских прокуратурах и структурных подразделениях прокуратуры области. По результатам первичного статистического учета могут быть подготовлены статистические отчеты о деятельности районных, городских прокуратур и структурных подразделениях прокуратуры области.
Собранные в процессе первичного учета статистические сведения передаются в прокуратуру области для консолидации. На основе консолидированных статистических сведений также могут быть подготовлены сводные статистические отчеты о деятельности прокуратуры области по определенным формам. Кроме того, могут быть подготовлены справки произвольного вида.
С учетом вышесказанного АИС «Прокуратура-Статистика» реализует следующие основные функции: ведение статистических сведений о деятельности районных, городских и областной прокуратуры в соответствие с существующими инструкциями и составом отчетных документов;
контроль достоверности введенных сведений в соответствии с существующими инструкциями на основе контрольных и логических правил;
подготовку, просмотр, и печать отчетных документов и справок; консолидацию сведений, полученных прокуратурой области из районных и городских прокуратур;
внесение изменений в состав статистических сведений, вид отчетных документов, состав контрольных и логических равенств при изменении требований инструкций, а также централизованную рассылку внесенных изменений во все районные и городские прокуратуры.
АИС «Прокуратура-Статистика» реализована в виде двух подсистем
подсистемы для городских, районных прокуратур и структурных подразделений прокуратуры области; подсистемы для старшего помощника прокурора области по статистике.
Каждая из подсистем реализована в трехуровневой архитектуре клиент-сервер, и включает сервер базы данных, сервер приложений и клиентские приложения. Клиентские приложения, взаимодействуя с сервером приложений, который, в свою очередь, обращается к серверу базы данных, позволяют пользователям решать те или иные задачи в соответствие с определенными для них правами.
В подсистеме для районных (городских) прокуратур и структурных подразделений прокуратуры области в АИС «Прокуратура-Статистика» определяются следующие классы пользователей: администратор подсистемы;
руководитель районной (городской) прокуратуры или структурного подразделения прокуратуры области прокурор (заместитель прокурора) районной (городской) прокуратуры или руководитель структурных подразделений прокуратуры области.
В подсистеме для прокуратуры области в АИС «Прокуратура-Статистика» определяются следующие классы пользователей:
администратор подсистемы;
старший помощник прокурора области по статистике. прокурор (заместитель прокурора) области.
Статистические сведения в прокуратурах всех уровней подготавливаются в соответствии с определенным набором форм, имеющих достаточно сложную структуру, и состоящих, как правило, из нескольких разделов. Каждый раздел, в общем случае, может включать несколько таблиц. В ячейки таблиц заносятся статистические сведения. При этом некоторые ячейки, в том или ином случае, являются недоступными для редактирования. В таких ячейках могут располагаться различные итоговые значения, либо жесткие предопределенные значения (например, ноль). Статические сведения по каждой из форм готовятся по результатам соответствующих временных периодов - месяц, квартал, полгода, год. Достоверность внесенных данных проверяется с помощью набора контрольных логических правил, связывающих значения как внутри таблицы, раздела, формы, так и значения, расположенные в различных таблицах, разделах, формах.
Задачи разработки и сопровождения АИС «Прокуратура статистика». Каждый из конечных пользователей АИС «Прокуратура-Статистика» в обеих подсистемах обладают собственными правами, которые определяются занимаемой должностью по штатному расписанию и задают формы статистической отчетности, доступные пользователю доступные для формирования, редактирования и/просмотра. В процессе разработки системы определяется, и в процессе сопровождения может изменяться, состав должностей штатного расписания, список пользователей системы и их прав. Поэтому в системе заводятся метаданные, определяющие возможные права пользователей в соответствии с занимаемой должностью, список пользователей, включая их права, а также логин и пароль для входа в систему.
Состав и структура форм статистической отчетности достаточно часто изменяются. При этом меняется состав вносимых в форму сведений, внешний вид формы, состав и содержание контрольных и логических правил, а также состав данных, передаваемых между уровнями системы. Так уже в процессе разработки системы из Генеральной прокуратуры РФ в прокуратуру Пензенской области поступили инструкции, в соответствие с которыми в действующий отчет о работе прокурора по форме П были внесены изменения, затрагивающие состав статистических сведений, внешний вид формы, правила заполнения, состав вычислительных формул и контрольных логических правил.
Кроме того, во время опытной эксплуатации системы были введены в действие и включены в систему два новых статистических отчета:
о работе прокурора по надзору за исполнением законодательства о противодействии коррупции и о результатах расследования уголовных дел коррупционной направленности по форме К;
о работе прокурора по надзору за исполнением законов о федеральной безопасности, межнациональных отношениях и противодействии экстремизму и результатах расследования уголовных дел экстремистской и террористической направленности по форме ФБ.
По каждой из новых форм Генеральной прокуратурой РФ были определены: внешний вид, правила заполнения (в т.ч. периоды предоставления сведений), вычислительные формулы и контрольные логические правила.
При традиционной предметно-ориентированной архитектуре метаданных в информационной системе появление новых и изменения существующих форм может повлечь за собой необходимость внесения серьезных изменений и доработок в схему базу данных, пользовательский интерфейс и программное обеспечение системы. Одним из способов, если не исключить полностью, то, по крайней мере, свести к минимуму такого рода изменений и доработок является внедрение в информационную систему дополнительных метаданных, описывающих внешний вид и семантику форм, а также соответствующих средств управления метаданными такого рода.
Одной из важных функций АИС «Прокуратура-Статистика» является обмен данными как внутри системы, так и с внешними системами. Внутри системы обмен данными осуществляется между подсистемами прокуратур района, структурных подразделений прокуратуры области и прокуратурой области. Обмен осуществляется при помощи выгрузки выбранного отчета в бинарный файл и последующей его загрузки из файла.
Внешней по отношению к АИС «Прокуратура-Статистика» является информационная система Генеральной прокуратуры РФ. Обмен данными между АИС «Прокуратура-Статистика» и информационной системой Генеральной прокуратуры РФ осуществляется при помощи экспорта выбранного отчета в текстовый файл, формат которого определяется на стороне информационной системы Генеральной прокуратуры РФ. При этом не исключена возможность изменения формата экспортируемого файла. Поэтому предлагается определить метаданные, задающие шаблон для определения формата файла экспорта. В случае изменения формата обмена с информационной системой Генеральной прокуратуры РФ понадобится лишь создание нового шаблона без изменения программного кода.
По мере накопления статистические сведения в каждой из подсистем АИС «Прокуратура-Статистика» могут быть отправлены в архив. Архивные сведения доступны для просмотра и анализа, но недоступны для редактирования. За ведение архива статистических сведений отвечает администратор подсистемы. Возможными причинами перемещения статистических сведений в архив являются: окончание заданного отчетного
периода (например, года), снижение показателей эффективности функционирования системы (например, из-за переполнения базы данных), кардинального изменения состава и содержания форм статистической отчетности. Таким образом, сведения о действующей и архивных базах данных должны постоянно присутствовать в системе.
Архитектура метаданных в АИС «Прокуратура статистика». Архитектура метаданных, методы и средства управления метаданными были сформированы с учетом:
трехзвенной клиент-серверной архитектуры АИС «Прокуратура-статистика»; применения коллективной независимой разработки программного обеспечения;
возможных изменений и обновлений состава и регламента ведения форм статистической отчетности; возможных изменений форматов обмена данными как внутри системы, так и с внешними системами; возможных изменений состава пользователей и обновления их прав в АИС «Прокуратура-статистика»; необходимости ведения архива статистических сведений; минимизации затрат на сопровождение АИС «Прокуратура-статистика».
Таким образом, АИС «Прокуратура-Статистика» определены следующие виды метаданных:
метаданные, описывающие внешний вид форм - формат таблиц, размеры столбцов и строк, группировки
ячеек, заголовки столбцов и строк в таблицах форм и т.д.;
метаданные, описывающие семантику форм статистической отчетности - состав разделов, таблиц, ячеек и их взаимосвязи;
метаданные, описывающие вычислительные формулы и контрольные логически правила;
метаданные, описывающие пользователей и их права по отношению к функциям администрирования систе-
мы и функциям ведения статистической отчетности;
метаданные, описывающие состав информационного обеспечения - перечень действующих и архивных баз данных системы;
метаданные, описывающие структуру файлов для обмена данными внутри системы, а также для экспорта/импорта данных во внешние системы.
Все указанные метаданные имеют различные способы и форматы представления в системе, а также распределены по различным узлам системы. Главными критериями выбора формата представления и места рас-
положения метаданных являются наличие современных стандартов, удобство обработки в программных приложениях, эффективность доступа, опыт разработчиков.
Внешний вид каждой из статистических форм, создаваемой и обрабатываемой в АИС «Прокуратура-Статистика», описывается в виде набора хт1-схем. Такой подход обеспечивает автоматизацию создания, отображения и обработки соответствующей формы в пользовательском приложении. Он позволяет быстро, практически без внесения изменений в приложения, добавлять новые формы и модифицировать структуру существующих форм. В хт1-схемах, описывающих статистические формы, содержатся тэги, определяющие
внешний вид (макет) таблиц формы. Речь идет об описании заголовочных ячеек для столбцов и строк, для
которых задаются размеры, нумерация, текст, стиль начертания, ориентация и параметры выравнивания текста. Для внутренних ячеек таблицы, в которых непосредственно размещаются статистические сведения, определяются формат ячейки (целый, десятичный и т.д.), уровень доступа (доступны или недоступны для редактирования).
Приведем основные тэги и примеры их использования в xml-схемах, описывающих статистические формы. Тэг для описания столбцов таблицы включает в себя описания отдельных столбцов таблицы: <tmp:columns> Описание столбцов таблицы </tmp:columns>
Тэг для описания отдельного столбца таблицы включает в себя описание параметров ячейки заголовка столбца и текста, расположенного в ней:
<tmp:column> Описание столбца таблицы </tmp:column>
Описание столбца таблицы включает ширину и высоту ячейки заголовка столбца в пикселах, номер (индекс) столбца в таблице (только для нумерованных столбцов). Номер (индекс) столбца имеют только ячейки, содержащие номер столбца в таблице. Индекс считается с 0. Поэтому, чаще всего, на 1 меньше чем номер столбца в таблице на форме. Примеры конструкций для задания ширины и высоты ячейки заголовка, а также номера столбца представлены далее:
tmp:width - ширина ячейки в пикселях. Например, tmp:width=,,165,,.
tmp:height - высота ячейки в пикселях. Например, tmp:height=,,120,,.
tmp:index - номер (индекс) для пронумерованного столбца. Например, ^p^ndex^^'' .
Тэг для описания текста в ячейке включает в себя, наряду с самим текстом, описание параметров вывода текста:
<tmp:text> описания текста в ячейке + текст </tmp:text>
Описание текста включает такие параметры, как ориентация текста (горизонтальная или вертикальная), выравнивание текста (по левому краю, по правому краю, по центру, по ширине), стиль начертания
(жирный курсив):
tmp:direction - ориентация текста в ячейке (horizontal, vertical);
tmp:alignment - выравнивание текста в ячейке (left, right, centered justified); tmp:type - стиль текста (bold, italic).
Пример описания параметров ячейки заголовка столбца и текста, расположенного в ней, представлен в следующем фрагменте. При этом ширина ячейки 165 пикселов, высота- 120 пикселов, номер столбца - 0 (реально на форме - 1), в ячейку помещается текст - Т, ориентация текста - горизонтальная, выравнивание - по центру.
<tmp:column tmp:width="165" tmp:height="12 0" tmp:index="0">
<tmp:text tmp:direction="horizontal"
tmp:alignment=,,center,,>Т
</tmp:text>
</tmp:column>
Далее приведен фрагмент xml-схемы, описывающий нескольких столбцов формы:
<tmp:columns>
<tmp:column tmp:width="1275" tmp:height="3 0">
<tmp:text tmp:direction="horizontal"
tmp:alignment="center">Дела,находящиеся в производстве </tmp:text>
<tmp:column tmp:width="785" tmp:height="3 0">
<tmp:text tmp:direction="horizontal"
tmp:alignment=пcenterп>следователей
</tmp:text>
<tmp:column tmp:width="165" tmp:height="3 0">
<tmp:text tmp:direction="horizontal" tmp:alignment=пcenterп>прокуратуры</tmp:text>
<tmp:column tmp:width="165" tmp:height="12 0" tmp:index="0">
<tmp:text tmp:direction="horizontal"
tmp:alignment="center">1
</tmp:text>
</tmp:column>
</tmp:column>
<tmp:column tmp:width="120" tmp:height="12 0">
<tmp:text tmp:direction="horizontal" tmp^lignment^center"^ т.ч. в отн. н/л </tmp:text>
<tmp:column tmp:width="120" tmp:height="12 0" tmp:index="1">
<tmp:text tmp:direction="horizontal"
tmp:alignment="center">2
</tmp:text>
</tmp:column>
</tmp:column>
</tmp:column>
</tmp:column>
<tmp:columns>
Тэг для описания строк таблицы включает в себя описания отдельных строк таблицы:
<tmp:rows> Описание строк таблицы </tmp:rows>
Тэг для описания отдельной строки таблицы включает в себя описание параметров ячейки заголовка строки и текста, расположенного в ней:
<tmp:row> Описание строки таблицы </tmp:row>
Описание строки таблицы, аналогично описанию столбца таблицы, включает ширину и высоту ячейки заголовка строки в пикселах, номер (индекс) строки в таблице (только для нумерованных строк). Номер (индекс) строки имеют только ячейки, содержащие номер строки в таблице. Индекс считается с 0. Поэтому, чаще всего, на 1 меньше чем номер строки в таблице на форме. Примеры конструкций для задания ширины и высоты ячейки заголовка, а также номера строки представлены далее (они полностью аналогичны конструкциям для параметров столбца):
tmp:width - ширина ячейки в пикселях. Например, tmp:width=пl65п.
tmp:height - высота ячейки в пикселях. Например, tmp:height=пl20п.
tmp:index - номер (индекс) для пронумерованного столбца. Например, ^p^ndex^^'' .
Ячейка заголовка строки может содержать текст, описание которого производится с помощью тэга
<tmp:text> описания текста в ячейке + текст </tmp:text>, рассмотренного ранее.
Далее приведен пример описания отдельной строки, точнее ячейки заголовка строки:
<tmp:row tmp:width="690" tmp:height="60">
<tmp:text tmp:direction="horizontal"
tmp:alignment=пcenterп>Остаток неоконченных дел на начало отчетного периода</tmp:text>
<tmp:row tmp:width="55" tmp:height="60" tmp:index="0">
<tmp:text tmp:direction="horizontal" tmp:alignment="center">1</tmp:text>
</tmp:row>
</tmp:row>
Тэг для описания ячейки в левом верхнем углу формы. Ячейка в левом верхнем углу формы имеет особый статус, т.к. она не может считаться заголовочной ячейкой только для столбца или только для строки. Кроме того, в левой верхней ячейке, как правило, располагается достаточно протяженный текст. Например, перечень контрольных и логических правил, относящихся к данной форме. Поэтому для описания ячейки, расположенной в верхнем левом углу таблицы, введен отдельный тэг:
<tmp:cross> Описание ячейки в верхнем левом углу </tmp:cross>.
При этом описание ячейки может содержать такие параметры как ширина и высота ячейки в пикселах, уже рассмотренные ранее, а также текст, расположенный в ячейке. Например:
<tmp:cross tmp:width="745" tmp:height="215> В каждой графе: число в строке 4 равно сумме чисел в строках 6 - 9 и 14; число в строке 5 больше или равно сумме чисел в строках б - 12; в графах 1-6 сумма чисел в строках 1 и 2 равна сумме чисел в строках 5, 14, 1б, 18-22, 28; в графах 7-10 сумма
чисел в строках 1 и 2 равна сумме чисел в строках 3, 5, 14, 1б, 18-22, 28 </tmp:cross>
До настоящего момента были рассмотрены тэги, которые описывали заголовочные ячейки таблицы формы. Но любая из внутренних ячеек таблицы (ячейки со статистическими данными) могут обладать определенными свойствами. Ячейки могут быть недоступны, в них может находиться значение, неизменяемое в процессе редактирования таблицы. Как правило, в ячейки вводится целое числовое значение, но в некоторых таблицах в некоторые ячейки должны быть введено действительные числа с определенным количеством знаков после запятой (например, сумма в рублях). Поэтому были определены тэги для описания тех или иных свойств ячеек.
Тэг для определения ячейки, в которой находится значение ноль. Тэг определяет расположение ячейки (номер столбца и строки), в которой находится значение ноль:
<tmp:zeroized Расположение ячейки />.
Например, <tmp:zeroized column="6 row="8" />.
Тэг для определения ячейки, которая недоступна. Тэг определяет расположение ячейки (номер столбца и строки), которая недоступна пользователю в процессе редактирования формы:
<tmp:empty Расположение ячейки />.
Например, <tmp:empty column="1" row="2" />.
Тэг для определения ячейки, которая имеет десятичный формат. Тэг определяет расположение ячейки (номер столбца и строки), которая имеет десятичный (денежный) формат с двумя знаками после запятой: <tmp:real Расположение ячейки, строки, столбца />.
При этом, свойство, определяемое данным тэгом, может распространяться на отдельное ячейку, столбец или строку. Параметр tmp:type
задает ячейку, столбец или строку, на которые распространяется данное свойство. Например:
<tmp:real tmp:type="mesh" column="1" row="2" />,
<tmp:real tmp:type="column" tmp:index="2" />.
Также вводятся тэги для задания вычислительных формул и контрольных логических правил. Тэг для определения вычислительной формулы:
<tmp:formula> Вычислительная формула </tmp: formula >
Тэг для определения контрольного логического правила:
<tmp:rule> Контрольное логическое правило </tmp:rule>
Вычислительные формулы и контрольные логически правила задаются в виде выражений на специально разработанном для этого языке.
В базе данных АИС «Прокуратура-статистика», наряду со сведениями статистического учета, хранятся метаданные, определяющие:
состав и семантику форм - разделы, таблицы ячейки формы, временной интервал действия формы; пользователей системы и их права на просмотр, заполнение тех или иных форм внесенные сведения из отчетов и форм, поступивших на рассмотрение и контроль, а так же дополнительную информацию об этих отчетах.
Метаданные, описывающие состав действующих и архивных баз данных, хранятся на сервере приложений в виде специального двоичного файла.
Шаблоны форматов экспорта данных хранятся и обрабатываются на стороне клиентского приложения. Автоматизация разработки и сопровождения АИС «Прокуратура-Статистика» на основе метаданных. Наличие нескольких видов метаданных АИС «Прокуратура-Статистика», развитая архитектура метаданных являются основой для автоматизации разработки и сопровождения системы. Так, например, изменение содержания, внешнего вида и семантики форм влечет за собой изменения соответствующих метаданных в xml-документах с помощью текстового редактора или специализированных интерактивных средств и/или в базе данных с помощью скриптов, которые также могут готовиться с помощью текстового редактора или специализированных интерактивных средств. Программное обеспечение при этом не изменяется.
Внесение сведений о новом пользователе или изменение прав существующих пользователей потребует лишь обновления соответствующих метаданных в базе данных с помощью клиентского приложения администратора.
Отправка действующей базы данных со сведениями статистической отчетности в архив и заведение новой базы данных потребует лишь обновление соответствующих метаданных в специальном двоичном файле, хранящегося на стороне сервера приложений с помощью клиентского приложения администратора. Аналогичным образом обрабатываются файлы шаблонов для экспорта данных в информационную систему Генеральной прокуратуры.
Все это делает возможным разработку специализированных инструментальных средств для управления метаданными в АИС «Прокуратура-Статистика», что позволит полностью автоматизировать процесс сопровождения системы.