Введение
В настоящее время научными и научно-образовательными организациями уже накоплен большой объем информационных ресурсов по различным курсам, по результатам научной и методической работы, а также кафедральной документации в электронном виде. Однако эти данные слабо структурированы, плохо систематизированы, рассредоточены по различным ресурсам, библиотекам и архивам, что существенно ограничивает к ним доступ. Таким образом, возникает необходимость создания современного интеллектуального инструмента, поддерживающего повседневную профессиональную деятельность сотрудника организации [1].
Процесс разработки ИС начинается с этапа построения архитектурных моделей. Программную архитектуру можно рассматривать как совокупность архитектурно-конструкторских решений, формирующих результирующее программное решение. При выполнении архитектурного проектирования определяется непосредственно архитектура информационной системы - концепция, задающая структуру, выполняемые функции и взаимосвязь компонентов ИС. Не следует пренебрегать и таким важным этапом разработки ИС, как анализ архитектуры системы или инструментального комплекса. В процессе архитектурного анализа проводится ряд процедур по разработке и усовершенствованию структуры информационной системы. Сначала архитектор системы создает архитектурный проект на базе существующих требований и ограничений. Архитектурный проект представляет собой первоначальный вариант архитектурной модели и включают в себя выбор архитектурных стилей, шаблонов проектирования, программных компонентов, а также базового стека программного обеспечения и ИТ-инфраструктуры.
Важным шагом является установление общего понимания целей, требований, проблем проектирования, поведения существующей системы, архитектурных элементов и контекста, таких как предположения, ограничения и компромиссы. Команды архитекторов и разработчиков преимущественно используют неструктурированные подходы, в частности, дискуссии для достижения консенсуса в ходе архитектурного анализа. Затем в процессе разработки архитектурных моделей происходит итерационное обновление базовых моделей в связи с возникновением новых требований и идей (см. рис. 1).

Для подробного описания архитектуры инструментальных комплексов и различных систем можно воспользоваться аппаратом формализации, который представляет собой процесс разработки модели с помощью некоторых языковых средств. Формальными называются такие информационные модели, которые созданы на формальном языке, т.е. научном, профессиональном или специализированном, в том числе и с использованием математического аппарата и алгебры логики. Формализованные информационные моделим можно представить в как виде формул и текстов, так и в форме рисунков, блок-схем, чертежей, таблиц и др.
Создание формальных моделей - сложный и трудоемкий процесс, тем более архитектурных моделей. Одним из известных и широко распространенных является подход к описанию архитектуры с использованием видов (представлений). Филипп Крухтен описал модель представления архитектуры программного обеспечения "4+1” для описания архитектуры сложных программных систем в 1995 году [2]. Дальнейшее развитие эта модель получила в разработках модели Rational Unified Process, а также в стандарте IEEE 1471-2000/ISO 42010. В оригинальной модели "4+1" используются пять видов: использования (Use Case View), логических представлений (Logical view), компонентов (Development view), развертывания/размещения (Physical view), динамическое представление (Process view). Каждый вид модели "4+1" описывает процесс с определенной точки зрения. Модель изменяемая, т.е. можно ограничивать количество предлагаемых видов, или расширять, добавляя другие виды для описания системы с другой точки зрения.
Разработаем структурную архитектурную модель для системы управления информационными ресурсами организаций (СУИР), опираясь на аппарат формализации и архитектурную модель "4+1".
Разработка структурной архитектурной модели ИС
Взяв за основу известную архитектурную модель "4+1", модифицируем ее, уделив в первую очередь внимание структурным и статическим аспектам построения ИС. Описание полученной архитектурной модели сведем в таблицу 1.
| № | Виды архитектурной модели | Диаграммы модели |
|---|---|---|
| 1 | Component view‒ это вид, описывающий структуру системы на уровне компонентов, в качестве которых могут выступать пакеты, файлы, библиотечные и пакетные файлы, а также разработанные программные модули и функциональные модули. | Диаграмма компонентов (component diagram) Обобщенная структурно-функциональная модель системы (Structural model) |
| 2 | Use Case View использования ‒ описывает поведенческие механизмы системы в терминах вариантов использования с точки зрения внешних по отношению к системе действующих лиц и функциональность системы в целом. | Диаграмма вариантов использования (use case diagram) |
| 3 | Deployment view – вид с точки зрения развертывания, показывает связь технических вычислительных средств и размещенных на них программных компонентов. | Диаграмма развертывания (deployment diagram) |
| 4 | Model Management view – дополнительное представление управления моделью, отражает внутреннюю организацию модели, описывая ее разбиение на пакеты и указывая отношения между ними. | Диаграмма пакетов (package diagram) |
Диаграммы модели представляют собой средство для визуализации. Таким образом, архитектурная модель СУИР состоит из ряда формальных моделей, представленных в виде графических диаграмм нотации UML, а также дополнительной Structural diagram, в комплексе описывающих структуру и функциональность разрабатываемой ИС (см. рис. 2).

Одной из первых задач, которую надо решить при архитектурном проектировании ― определение существенно значимых требований. Роль архитектора систем заключается в том, чтобы создать целевую архитектуру, подходящую для удовлетворения основных потребностей пользователя. Поэтому необходимо изучить сценарии и определить факторы, которые оказывают существенное влияние на будущий архитектурный проект. Для описания функциональности ИС, взаимодействия пользователя с внешними информационными системами на практике обычно используются USE-CASE диаграммы в нотации UML — это термин, посвященный системному проектированию [3]. Диаграмма вариантов использования представляет собой граф специального вида, который является формализованной нотацией для представления конкретных вариантов использования, актеров, возможно некоторых интерфейсов, и отношений между этими элементами [4]. Вариант использования представляет собой некоторый сценарий или отдельную функцию, а актер описывает или пользователя, взаимодействующего с вариантом использования или некоторую внешнюю систему.
В работе [1] были разработаны и приведены обобщенная функциональная модель и абстрактная архитектура программного комплекса системы управления профессиональными знаниями сотрудников вуза (см. рис. 3), которая включает в себя 15 основных модулей. Описание программных модулей сведем в табл. 2.
С функциями системы работают несколько пользователей: эксперт, администратор знаний, преподаватель и студент. Самым востребованным специалистом на этапе наполнения базы знаний является эксперт. Помощь ему предоставляет инженер по управлению знаниями (администратор знаний). Но без участия всего коллектива трудно достигнуть хорошего результата. Между ролями установлена иерархия пользователей. Это означает, что пользователь с более высоким уровнем прав наследует всю функциональность менее привилегированного пользователя.

| № | Package Name | Describe |
|---|---|---|
| 1. | P1 M1 | Модуль поиска информации в сети Интернет |
| 2. | P1 M2 | Модуль поиска информации по хранилищу данных |
| 3. | P1 M3 | Модуль экспертного ввода данных |
| 4. | P1 M4 | Модуль импорта данных |
| 5. | P2 M5 | Модуль интеграции данных и модели |
| 6. | P2 M6 | Интеллектуальный модуль тематической классификации |
| 7. | P2 M7 | Модуль автоматического разбора текста |
| 8. | P2 M8 | Модуль проверки на уникальность |
| 9. | P3 M9 | Редактор онтологий |
| 10. | P3 M10 | Редактор классификаторов |
| 11. | P3 M11 | Редактор метаданных |
| 12. | P4 M12 | Модуль интеллектуального анализа данных и вывода знаний |
| 13. | P4 M13 | Модуль семантической сети |
| 14. | P4 M14 | Модуль продукции новых и комбинированных знаний |
| 15. | P5 M15 | Интерфейс пользователя |
Модульная структурная модель системы (package diagram)
Диаграмма пакетов используется, чтобы изобразить зависимости между пакетами, которые составляют модель [5]. Основная цель — показать взаимосвязь между различными крупными компонентами, которые образуют сложную систему. Пакет (package) объединяет некоторые элементы диаграммы UML в единую структурную единицу. В нашем случае пакеты представляют собой отдельные независимые подсистемы, реализующие основные функции системы управления ИР.
В работах [6,7] были изучены аспекты применения онтологий при проектировании ИС научно-образовательных организаций и обоснована целесообразность онтологического подхода к разработке системы обработки данных научных и научно-образовательных организаций.
Процессы управления знаниями базируются на следующих основных принципах: приобретения, представления, хранения, извлечения знаний. Структура системы базируется на метамодели, приведенной в работе [1], и представляет собой типичную структуру системы управления знаниями (СУЗ), построенную на онтологическом подходе. Основными компонентами предлагаемой технологии создания системы являются: блоки приобретения данных, конвейер для обработки и классификации данных, а также блок выдачи и продукции знаний. Поскольку ядром, базовым компонентом метамодели системы является его онтология, то центральным блоком системы является онтологический редактор, который предназначен для реализации основных операций по работе с онтологиями, в том числе и процедур автоматического и полуавтоматического пополнения знаний.
Основные структурные модули (пакеты), входящие в состав проектируемой СУИР, следующие: acquiring knowledge; knowledge discovery and classification of knowledge; knowledge extraction; ontology editor; interface. Модульная структурная модель системы (package diagram) представлена на рис. 4, а назначение и описание основных пакетов сведено в табл. 3.

| № | Name Package | Describe |
|---|---|---|
| 1 | P1 acquiring knowledge | Подсистема поиска и выявления знаний предназначена для поиска данных из различных источников, как структурированных данных, так и неструктурированных данных, например, документы и файлы различных форматов, веб-ресурсы, дата сеты, семантически размеченные файлы, БД и др. |
| 2 | P2 knowledge discovery and classification of knowledge | Подсистема приобретения знаний предназначена для получения знаний, извлечения неформализованных знаний из разнородных источников информации с помощью методов статистической обработки, семантического анализа, технологий Text Mining и Data Mining, а также экспертных моделей. |
| 3 | P3 knowledge extraction | Подсистема интеграции, хранения и извлечения данных предназначена для организации эффективной работы с хранилищем данных. Основные функции: занесение собранных структурированных материалов, онтологий и извлеченных знаний из данных в общее интегрированное хранилище, интеллектуальный поиск данных по хранилищу, возвращающий сведения об информационном объекте, т.е. некоторые знания. |
| 4 | P4 ontology editor | Редактор онтологий – ориентирован на поддержку основных операций для работы с онтологией: создание, модификация и удаление отдельных элементов онтологии, решение вопросов импорта и экспорта в различные форматы, а также вопросов синхронизации онтологической модели и структуры хранилища данных. |
| 5 | P5 Interface | Связующий структурный блок, реализующий интерфейс системы и обеспечивающий взаимное функционирование всех остальных подсистем. |
Обобщенная компонентная модель системы (component diagram)
Диаграмма компонентов (Component diagram) — статическая структурная диаграмма, показывает разбиение программной системы на структурные компоненты и связи (зависимости) между компонентами [8]. Сomponent diagram предназначена для моделирования иерархии компонентов (а также модулей, пакетов и подсистем), что позволяет определить структуру разрабатываемой системы (см. рис. 5).

В качестве физических компонентов могут выступать файлы, библиотеки, модули, исполняемые файлы, пакеты и др. В нашем случае component diagram описывает основные пакеты, описание которых приведено в табл. 3 и программные модули, описание которых сведено в табл.2.
Обобщенная структурно-функциональная модель системы Structural model
Формализуем обобщенную компонентную модель системы, наполнив ее функциональным содержимым и назовем обобщенной структурно-функциональной моделью системы (structural model). Эта модель представляет собой комбинацию из некоторого конечного множества пакетов Pi, каждый из которых включает в себя некоторый набор программных модулей Mj. В свою очередь каждый j-й модуль реализует некоторое количество функций F(Pi).
Таким образом, F(MODEL) - обобщённая функция системы, определяется следующим образом:
Сведем описание всех функций ИС в таблицу 4.
| № | Name | № | Name |
|---|---|---|---|
| F1 | поиск по ключевым словам | F33 | подсчитывается кол-во вхождений каждого токена |
| F2 | поиск с использованием WordNet | F34 | формирование топ-списка концептов |
| F3 | поиск с использованием MediaWiki | F35 | атрибутный метод |
| F4 | поиск с использованием онтологии | F36 | структурный метод |
| F5 | расчет семантической близости концептов | F37 | формирование результата |
| F6 | формирование списка поисковой выдачи | F38 | импорт онтологий RDF |
| F7 | поиск в Elibrary | F39 | импорт онтологий OWL |
| F8 | поиск GoogleAcademy | F40 | ввод онтологий вручную |
| F9 | поиск на сайте «Информатика и кибернетика» | F41 | конвертация модели |
| F10 | поиск на сайте конференции «ИУСКМ» | F42 | верификация(синхронизация) модели |
| F11 | ввод поискового запроса | F43 | визуализация модели |
| F12 | формирование информации | F44 | сохранение модель |
| F13 | формирование отчетов | F45 | ввод метаданных |
| F14 | ручной ввод новых данных | F46 | корректировка метаданных |
| F15 | импорт данных | F47 | удаление метаданных |
| F16 | редактирование данных | F48 | ввод классификаторов |
| F17 | удаление данных | F49 | корректировка классификаторов |
| F18 | сохранение данных | F50 | удаление классификаторов |
| F19 | извлечение текстовой информации из docx-файла | F51 | предобработка данных |
| F20 | извлечение текстовой информации из pdf-файла | F52 | классификация методом логистической регрессии с использованием векторов слов |
| F21 | извлечение текстовой информации из rtf-файла | F53 | логистической регрессии с использованием метода TF-IDF |
| F22 | извлечение текстовой информации из doc-файла | F54 | классификация методом наивного Байесовского подхода |
| F23 | сохранение данных в хранилище | F55 | классификация методом случайного леса |
| F24 | интеллектуальный модуль оценки качества модели | F56 | кросс-валидация |
| F25 | интеграция данных | F57 | обход дерева |
| F26 | парсинг текста | F58 | отображение текущих данных онтологии |
| F27 | удаление информации, не подлежащей разбору (пунктуационные знаки) | F59 | модуль продукции знаний |
| F28 | токенизация (разбитие текста на леммы - слова) | F60 | модуль получения интегрированных знаний |
| F29 | расчет векторов (метод «мешок слов») | F61 | обработка меню системы |
| F30 | вывод результатов | F62 | работа с личным кабинетом пользователя |
| F31 | сохранение результатов | F63 | аутентификация |
| F32 | парсинг текста с помощью регулярных выражений | F64 | регистрация |
Опишем функциональную модель каждого программного модуля (см. табл. 5).
| № | name model |
|---|---|
| 1 | M1- множество функций модуля поиска информации в сети Интернет F(M1) = {F1, F2, F3, F4, F5, F6, F7, F8, F9, F10} |
| 2 | M2- множество функций модуля поиска информации по хранилищу данных F(M2) = {F1, F4, F5, F11, F12, F13} |
| 3 | M3- множество функций модуля экспертного ввода данных F(M3) = {F14, F15, F16, F17, F18} |
| 4 | M4- множество функций модуля импорта данных из семантически размеченных и шаблонизированных документов F(M4) = {F5, F6, F19, F20, F21, F22, F23} |
| 5 | M5- множество функций модуля интеграции данных и модели F(M5) = {F5, F24, F25} |
| 6 | M6- множество функций модуля тематической классификации F(M6) = {F26, F27, F28, F29, F30, F31} |
| 7 | M7- множество функций модуля автоматического разбора текста F(M7) = {F27, F28, F30, F31, F32, F33, F34} |
| 8 | M8- множество функций модуля проверки на уникальность F(M8) = {F27, F28, F32, F35, F36, F37} |
| 9 | M9- множество функций модуля редактор онтологий F(M9) = {F38, F39, F40, F41, F42, F43, F44} |
| 10 | M10- множество функций модуля редактор метаданных F(M10) = {F45, F46, F47} |
| 11 | M11- множество функций модуля редактор классификаторов F(M11) = {F48, F49, F50} |
| 12 | M12- множество функций модуля интеллектуального анализа данных и вывода знаний F(M12) = {F51, F52, F53, F54, F55} |
| 13 | M13- множество функций модуля семантической сети F(M13) = {F43, F56, F57} |
| 14 | M14- множество функций модуля продукции новых и комбинированных знаний F(M14) = {F58, F59} |
| 15 | M15- множество функций модуля интерфейса пользователя F(M15) = {F60, F61, F62, F63} |
Исходя из выше приведенных выражений 1-4 получаем:
MODEL= {P1, P2, P3, P4, P5}
P1= {M1, M2, M3, M4};
P2= {M5, M6, M7, M8};
P3= {M9, M10, M11};
P4= {M12, M13, M14};
P5={M15}
F(P1) =F(M1) U F(M2) U F(M3) U F(M4);
F(P2) =F(M5) U F(M6) U F(M7) U F(M8);
F(P3) =F(M9) U F(M10) U F(M11);
F(P4) =F(M12) U F(M13) U F(M14);
F(P5) =F(M15);
F(MODEL)= F(P1) UF(P2) UF(P3) UF(P4) UF(P5)
Модель размещения компонентов системы (deployment diagram)
Диаграммы deployment diagrams (размещения/развертывания) используются для моделирования физической архитектуры системы [8]. Диаграмма отображает аппаратные узлы и программные модули, и связи между ними. Узел (node) представляет собой некоторый физически существующий элемент системы, обладающий некоторым вычислительным ресурсом. Графически на диаграмме развертывания узел изображается в форме трехмерного куба. Узел имеет собственное имя, которое указывается внутри этого графического символа.
На данной диаграмме хорошо просматривается трехуровневая клиент-серверная архитектура приложения. Особенностью является физическое отделение данных от программ (сервер приложения), обрабатывающих эти данные. Такое разделение программных компонент позволяет оптимизировать нагрузки как на сетевое, так и на вычислительное оборудование комплекса. Компоненты трехуровневой архитектуры, с точки зрения программного обеспечения, реализуют сервера БД, Web-сервера и браузеры в качестве Web-клиентов.
Опишем взаимодействие компонентов трехуровневой архитектуры клиент-серверного приложения. Сервер БД представлен Cache-сервером Ontology Server, роль сервера приложений играет «Web Server», роль клиента «ClientWS#1» выполняет компьютер с клиентским ПО (см. рис 6).

Никаких ограничений на количество клиентских станций не накладывается. На клиентском ПК установлен любой браузер, например Operа, и локально установленный компонент Rich Java Script Ui, задействованный в обмене данных с сервером данных.
Сервер приложений представляет веб сервер Apache с установленным серверным ПО. Разработка серверного ПО проводилась с использованием языка PHP7.0 и различных фреймворков и библиотек, например phpmorphy, phpquery-single, adam-lutka/php-wndb, php-text-analysis, pdfparser, wikibase-api, ext-json, ext-curl, ext-zip, PHPCache и др.
На рис. 5 показана архитектура узла «Web Server» при развертывании в условиях конкретной организации. На сервере уже функционирует веб-сервер Windows Server IIS, который используется для решения других задач и нет возможности использовать еще один узел. Для работы нашего программного комплекса пришлось установить веб сервер Apache для работы с PHP и различными фреймворками на том же физическом узле и настроить на различные порты для обеспечения совместного функционирования.
Узел «OntologyServer» представляет собой сервер данных CACHE InterSystems IRIS, который представляет собой современную платформу для работы с многомерными данными, ориентированную для работы в среде Веб-пространства и использующей в работе встроенный HTTP Server.
Взаимодействие между узлами «ClientWS#1» и «Web Server», а также узлами «Web Server» и «OntologyServer» осуществляется стандартным образом с помощью HTTP – запросов поверх сетевого протокола TCP/IP. Передача данных происходит в JSON формате через взаимодействие компонета Server RESTFull Brocker, входящего в состав CACHE InterSystems IRIS и компонента Rich Java Script Ui, установленном на клиенте.
Выводы
В статье приводится подход на базе известной архитектурной модели “4+1” к разработке модели системы, которую можно рассматривать как совокупность архитектурно - конструкторских решений, формирующих результирующее программное решение. Была описана структурная архитектурная модель, представляющая собой набор следующих диаграмм: функциональную модель (use-case diagram), структурную модель системы (package diagram), обобщенную компонентную модель системы (component diagram), модель размещения компонентов системы (deployment diagram) с помощью нотации UML. Приведено формализованное описание структурно-функциональных моделей отдельных программных блоков и всей системы в целом (structural diagram). Описанная структурная архитектурная модель может использоваться при проектировании различных систем управления информационными и библиотечными ресурсами, а также применяться в различных системах управления знаниями.
Литература
Материалы XIII Международной научно-технической конференции
"Информатика, управляющие системы, математическое и компьютерное моделирование"