Концепция построения типовой системы ввода,
учета и выдачи
информации
В настоящее время значительное внимание уделяется созданию систем ввода, учета и выдачи информации о различного рода документах, информационных ресурсах и системах. К таким системам можно отнести, например, систему “Наука России” (БЕН РАН), СМИРС (ЦИТиС) и многие другие. Все эти системы решают одни и те же задачи, строятся на основе сходных бизнес-процессов и, как следствие, могут быть заменены типовой системой ввода, учета и выдачи информации, настраиваемой под определенную предметную область и определенный круг задач.
В системе “Наука России” [1,2] и производных от нее основное внимание уделено настраиваемости схемы данных. Существует возможность задания произвольных сущностей (таблиц), их полей (на основе фиксированных в системе типов данных) и отношений между ними. При всем этом системы на базе “Науки России” являются системами централизованного типа, с четко выраженным центральным сервером и процессом переноса данных с одного центрального сервера на другой путем процедур импорта и экспорта.
Система мониторинга и анализа государственных информационных ресурсов и систем (СМИРС) Минэкономразвития России ориентирована на определенную узкую предметную область и не представляет возможностей настройки без существенного изменения исходного кода. Кроме того, существующий вариант системы достаточно жестко привязан к определенной архитектуре и подходам к организации клиентских мест – через J2EE/EJB и “толстых” клиентов на основе Java.
В данной статье будет рассмотрена архитектура типовой системы, на основе которой могут строиться разнообразные информационные системы как локального, так и распределенного характера, различающиеся по структуре и семантике хранимой информации и бизнес-процессам.
Система строится из одной или нескольких однотипных компонентов-ячеек, обладающих определенными свойствами. В минимальном варианте система может состоять из одной ячейки - локального компонента.
Локальный компонент (ЛК)
Основная задача ЛК
– ввод, редактирование, хранение данных и представление их в форме различных отчетов и справок.Компонент состоит из нескольких подсистем, выполняющих определенные функции и решающих определенные задачи. Каждая из таких задач может решаться на отдельном АРМ. Приблизительный состав подсистем и решаемых ими задач выглядит так:
В качестве интерфейса предлагается использовать Web-интерфейс, широко применяемый для систем подобного рода, где присутствует одна база данных и множество различных АРМ для работы с ней. Такой подход также легко позволяет организовать доступ к системе как с локальных рабочих мест внутри организации, так и извне (для авторизованных пользователей).
ЛК может использоваться в качестве самостоятельной системы в случае работы с небольшими объемами данных либо с данными, работа с которыми ведется, в основном, в пределах одной организации. При этом ЛК взаимодействует только с пользователями, отвечая на их запросы по протоколу http. Не имеет значения, где при этом находится пользователь и как он осуществляет доступ к системе: с локальной машины (на которой установлен и сам ЛК), через ЛВС (внутри той же организации) или через глобальную сеть Интернет; средства взаимодействия и обмена данными с другими ЛК отсутствуют.
Здесь же стоит отметить, что данная архитектура не накладывает никаких ограничений ни на объем данных, работа с которыми может быть возложена на ЛК, ни на другие его внутренние характеристики. Такие ограничения возникают при выборе методов и средств разработки внутренней архитектуры ЛК, вспомогательных программных средств (таких как СУБД, Web-сервер и т.д.) на этапе проектирования уже конкретной системы.
Распределенный компонент (РК)
Для создания более сложных систем имеет смысл применять распределенный подход. В этом случае система строится из нескольких ЛК, объединенных в единую сеть.
При этом каждый из компонентов дополняется определенной функциональностью, позволяющей обмениваться данными с другими компонентами. В этом случае мы можем говорить уже о распределенном компоненте.
К подсистеме ввода данных добавляется функция импортирования данных, а к подсистеме поиска – возможность выгрузки (экспортирования) данных в другой РК.
Благодаря функциям экспортирования и импортирования данных система допускает различие схем (разнородность) данных в различных РК. В случае, если хранимые данные однотипны, преобразование информации (конвертация) не требуется и эти функции сводятся к тривиальной передаче информации по каналам связи - тогда можно говорить о простом обмене данными между РК.
РК могут быть связаны с использованием одной из двух схем:
Первую схему предполагается использовать в следующих случаях:
Преимуществами второй схемы являются:
Для реализации второй схемы необходимо дополнить поисковую систему каждого РК модулем поддержки распределенных запросов (на основе технологии XMPP/Jabix). При этом усложняется решение вопросов безопасности.
Стоит отметить, что при организации сложных сетей с использованием вышеизложенных принципов обе схемы могут комбинироваться для создания сетей смешанной интеграции.
При построении сложных сетей со структурой, отличной от древовидной, возникает проблема дублирования данных – не имеет значения, какая при этом используется схема интеграции. Одним из решений этой проблемы является четкое соблюдение древовидной структуры (организационная мера), другое зависит от схемы интеграции:
Выбор схемы интеграции (единое хранилище, виртуальная или смешанная), так же, как и структура самой сети, зависит от конкретной решаемой задачи и определяется на этапе проектирования соответствующей системы.
Этапы разработки и трудозатраты
Разработку системы целесообразно разделить на четыре этапа, в соответствии с изложенными выше структурными элементами:
Первый этап является основным и наиболее трудоемким. По его окончании мы имеем полнофункциональную локальную систему с on-line доступом.
По завершении второго этапа мы можем строить распределенные системы с интеграцией в единое хранилище. Одним из вариантов такой системы является система с одним полнофункциональным (разве что, без функции ручного ввода данных) центральным РК и множеством клиентских РК с минимальной функциональностью, обеспечивающей только возможность ручного ввода данных.
Завершение третьего этапа дает нам возможность сроить системы с виртуальной и смешанной интеграцией. При этом трудозатраты на написание конвертеров для системы Jabix минимальны, т.к. на этом этапе схема данных во всей системе остается единой, следовательно, и все конвертеры одинаковы.
Четвертый этап позволяет перейти к системам с различными схемами данных внутри себя (или, как вариант, к интеграции систем, созданных на предыдущем этапе). Этот этап можно разделить на два, в зависимости от степени различия схем данных:
В первом случае задача ведения БД в каждом из РК не представляет особых сложностей; создание конвертеров для импортирования, экспортирования данных и поддержки Jabix можно автоматизировать.
Трудозатраты и возможные проблемы во втором случае пока оценить довольно трудно.
Сравнение предлагаемой концепции с реализацией систем на базе “Науки России”
Если сравнить предполагаемый вариант реализации системы (в соответствии с описанной концепцией) и существующие варианты реализации системы “Наука России”, можно отметить следующее:
Генерация систем
Такая конфигурация одной системы со своей определенной предметной областью и связями в ней может быть задана в виде одного структурированного описания. Необходимо задать параметры предполагаемой предметной области (сущности и связи между ними, поля, характеризующие сущности, используемые типа данных и т.п.), а также все, что относится к распределенности системы: топологию, способы интеграции, конфигурацию каждого из узлов и особенности сборки системы для каждого узла.
Описав все эти данные в одном файле конфигурации такой системы, представляется возможным синтезировать готовую конечную систему в виде рабочих модулей, собранных и настроенных под каждый из узлов с установкой связей, описанных выше. Исходными данными для построения такой системы будут являться файл (или файлы) со структурированным описанием и некий набор готовых модулей, из которых можно собрать готовые инсталляции ЛК и/или РК.
Проектирование и реализация такой метасистемы – генератора является отдельной перспективной задачей, которую имеет смысл выполнять после разработки всех модулей и механизмов их взаимодействия.
Литература
1. Каленов Н.Е., Васильев А.В., Власова С.А., Глушановский А.В. Автоматизированная информационная система "Наука России" // Информационно-библиотечное обеспечение науки: Проблемы интеграции информационных ресурсов: сб. статей. – М., 1995. – С. 112-115
2. Якшин М.М. WEB-интерфейс системы "Наука России" // Современные технологии в информационном обеспечении науки. - М., 2003. – С. 47-52