Библиографическое описание:

Бессонов И. И. Реинжиниринг геоинформационной системы компании ООО «Владлинк» // Молодой ученый. — 2015. — №11. — С. 172-177.

В статье описывается задача реинжиниринга геоинформационной системы компании ООО «Владлинк». Геоинформационная система применяется в компании для проектирования сетевой инфраструктуры и просмотра данных об оборудовании на определённом участке сети. Приведены особенности архитектуры приложения и возможные подходы для выполнения реинжиниринга.

Ключевые слова: реинжиниринг, подходы реинжиниринга, геоинформационная система, функции ГИС, создание новой информационной системы, модификация существующей информационной системы, адаптация готовой информационной системы.

 

Основная деятельность компании ООО «Владлинк» заключается в предоставлении услуг Интернета и телевидения абонентам. В ходе осуществления своей деятельности, компания выполняет задачи по модернизации, ремонту и территориальному расширению сетевой инфраструктуры. Такие же задачи стоят и перед всеми остальными интернет-провайдерами, предоставляющими телекоммуникационные услуги. Особенностью этих задач является необходимость использования географических данных для планирования и управления сетями. Применение геоинформационных систем (ГИС) позволяет провайдерам оценивать состояние сетевой инфраструктуры, улучшать качество предоставляемых услуг и планировать мероприятия по модернизации оборудования и расширению зоны покрытия.

В компании ООО «Владлинк» отделом информационных технологий, была разработана собственная ГИС. В результате разработки была получена интерактивная визуальная модель инфраструктуры сети. К функциям ГИС можно отнести следующие: проектирование сетевой инфраструктуры компании; просмотр данных об оборудовании на конкретных участках сети, количестве абонентов в домах и состоянии подключаемых домов к общей сети, а также выполняемых в них работах на текущий момент.

Несмотря на широкие функциональные возможности системы, в ходе её эксплуатации были выявлены следующие недостатки:

-          необходимость постоянного ручного обновления данных проектировщиком при изменениях на каких-либо участках сети;

-          отсутствие данных о выполненных действиях пользователями.

Для устранения указанных недостатков было принято решение о выполнении реинжиниринга системы состоящего в добавлении нового фукционала.

При осуществлении реинжиниринга может применяться один из следующих подходов [1]:

-          создание новой информационной системы (ИС) взамен существующей;

-          модификация существующей ИС;

-          адаптация готовой ИС стороннего разработчика.

Положительные и отрицательные стороны использования перечисленных подходов представлены в таблице 1.

Таблица 1

Положительные и отрицательные стороны подходов реинжиниринга

Название подхода

Плюсы

Минусы

Создание новой ИС

-                   достаточная изученность процесса разработки;

-                   более точная прогнозируемость по времени, стоимости и другим ресурсам;

-                   возможность отказаться от устаревших технологий и применить новые технологии

-                   высокая ресурсоёмкость;

-                   необходимость наличия резерва времени;

-                   высокая вероятность повторного решения задач, выполненных на приемлемом уровне

Модификация существующей ИС

-                   небольшая ресурсоёмкость;

-                   малые затраты на переобучение пользователей;

-                   возможность

-                   сложность прогнозирования процесса, оценки необходимых ресурсов;

-                   сложность

широкого использования компонентов существующей информационной системы;

-                   отсутствие необходимости полной остановки системы

структурной модели, описывающей реинжиниринг ИС;

-                   высокая вероятность «волны изменений»

Адаптация готовой ИС

аналогично подходу модификации существующей ИС

необходимо наличие аналогичной ИС

 

Для выполнения реинжиниринга ГИС наиболее оптимальным является подход модификации существующей информационной системы, так как он удовлетворяет следующим критериям:

-          ограниченность срока на выполнение реинжиниринга;

-          отсутствие необходимости остановки существующей системы, в период осуществления реинжиниринга.

Помимо этого, добавляемый функционал будет являться расширением функционала существующей системы, то есть большая часть компонентов может быть заимствована из действующей системы.

В результате выполнения проектирования информационной системы с учётом добавляемых функциональных возможностей системы была составлена модель прецедентов. Проектирование осуществлялось с применением объектно-ориентированного подхода по методике ICONIX [2, 3].

Рис. 1. Диаграмма пакетов с прецедентами

 

Рис. 2. Диаграмма прецедентов пакета «Работа с картой»

 

Все прецеденты были сгруппированы в 2 пакета, представленные на рисунке 1. В пакет «Работа с картой», представленный на рисунке 2, были включены прецеденты, в которых пользователь выполняет действия непосредственно на слоях карты. Пакет «Работа с сетью», представленный на рисунке 3, содержит прецеденты добавления, удаления муфт или кроссов и соединений волокон в них.

В ходе реинжиниринга недостатки системы были устранены путём добавления нового прецедента «Обновить данные о кабелях» (пакет «Работа с картой») и операции создания записей о выполненных действиях.

Рис. 3. Диаграмма прецедентов пакета «Работа с сетью»

 

Прецедент «Обновить данные о кабелях» вызывается, как автономно — с определённым интервалом времени, так и после выполнения прецедентов «Добавить точку-дом», «Редактировать точку-дом», «Удалить точку-дом». Назначение этого прецедента заключается в импорте данных из корпоративной информационной системы в ГИС. Непосредственно в корпоративной информационной системе происходит создание нарядов на монтаж и демонтаж оборудования. Таким образом, в базе данных корпоративной информационной системы содержится актуальная информация о текущем состоянии сетевой инфраструктуры компании. Алгоритм обновления данных о кабелях, реализованный в одноимённом прецеденте, представлен на рисунке 4.

Рис. 4. Алгоритм обновления данных о кабелях

 

Операция создания записей о выполненных действиях была добавлена в прецеденты, вносящие изменения в модель сетевой инфраструктуры. Рассмотрим наиболее часто используемый прецедент «Добавить точку-дом», представленный диаграммой пригодности на рисунке 5. В этот прецедент была добавлена новая сущность «История действий пользователей» и вызов прецедента «Обновить данные о кабелях».

Рис. 5. Диаграмма пригодности прецедента «Добавить точку-дом»

 

Используя модели, полученные в результате проектирования, была выполнена программная модификация ГИС.

ГИС представляет собой клиент-серверное приложение. Функционал клиентской части выполняют html-страницы и js-скрипты, полученные после ретрансляции GWT-компилятором. Функционал серверной части является объединением трех различных подсистем реализованных на Java, Perl, Python языках.

Подсистема «Вывод детализированной информации», написанная на языке Python, создана на основе веб-фреймворка Django. Она отвечает за вывод всплывающих окон с детализированной информацией об объектах, при наведении курсора мыши на них.

Подсистема «Операции с объектами на карте», написанная на языке Perl, реализует серверный функционал, связанный с выборкой, созданием, редактированием и удалением объектов на карте.

Подсистема «Основные функции ГИС», написанная на языке Java, отвечает за следующий функционал:

-     выборка адресов улиц и номеров домов;

-     загрузка требуемых областей карты;

-     создание и удаление слоёв с объектами;

-     создание, редактирование, удаление муфт, кроссов и соединений волокон в них;

-     поиск объектов по адресу привязки.

Добавление новых функций к ГИС системе является сложным процессом, если эти функции связаны с несколькими серверными подсистемами одновременно. В случае внесения изменений в подсистему, написанную на Java, потребуется перекомпиляция GWT-проекта целиком.

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

Таким образом, перед добавлением нового функционала, необходимо реализовать переход серверных подсистем к единой технологии. В качестве целевой технологии был выбран веб-фреймворк Mojolicious. Его использование позволяет выполнить перенос серверного функционала ГИС системы за достаточно короткое время, и не требует глубокого изучения самого фреймворка перед началом непосредственного написания кода приложения.

Перенос каждой из подсистем имеет свои технологические особенности. В случае с подсистемой «Вывод детализированной информации», разработанной на платформе Django, все обрабатываемые запросы и используемые модели могут быть получены из «Менеджера URL» [4]. После выполнения анализа запросов и моделей, осуществляется перенос подсистемы на платформу Mojolicious.

Подсистема «Операции с объектами на карте» реализована на основе технологии CGI (Common Gateway Interface) с использованием библиотеки «CGI::Simple». Данная подсистема обрабатывает четыре типа запросов — get, post, put, delete, и для каждого типа вызывается различная функция из пакета «WFS». Для каждого типа запросов также выполняется анализ исходного кода используемых функций с последующей переработкой под платформу Mojolicious.

Подсистема «Основные функции ГИС» имеет модульную структуру и разработана с использованием GWT-технологии. Для выполнения переноса этой подсистемы кроме анализа исходного кода серверных модулей необходимо проанализировать код клиентских модулей.

Взаимодействие клиентских и серверных модулей реализовано посредством библиотеки «AsyncCallback» поставляемой вместе с фреймворком GWT [5].

Библиотека «AsyncCallback» позволяет разрабатывать код приложения ориентированно на данные, обеспечивая высокий уровень абстракции. Для формирования шаблона строки запроса используется подстрока «rpc», определённая в модуле «AppRequestTransport.java». Строка запроса дополняется названием клиентского модуля с названием вызываемого метода и передаваемыми аргументами, затем выполняется запрос.

После выполнения анализа соответствующих клиентских и серверных модулей, функции серверных модулей перерабатываются под платформу Mojolicious.

В полученную серверную подсистему были добавлены: программная реализация прецедента «Обновить данные о кабелях»; функция записи действий пользователей.

Реинжиниринг состоял из следующих этапов: проектирования модели прецедентов с учётом добавляемого функционала; перехода серверной подсистемы к единой технологии; добавления программной реализации требуемого функционала.

При проектировании в состав модели прецедентов был добавлен новый прецедент «Обновить данные о кабелях», автономно вносящий изменения в кабельную инфраструктуру сети без участия проектировщика. Также в прецеденты, вносящие изменения в модель сетевой инфраструктуры, была добавлена операция записи действий пользователей регистрирующая все действия пользователей.

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

Заключительным этапом реинжиниринга стало добавление программной реализации прецедента «Обновить данные о кабелях» и функции записи действий пользователей.

 

Литература:

 

1.         Ахтырченко К.В, Методы и технологии реинжиниринга ИС [Электронный ресурс]// Труды Института системного программирования РАН: [сайт]. [2003]. URL: http://www.citforum.ru/SE/project/isr. (дата обращения: 20.04.2015).

2.         Мейер Б. Объектно-ориентированное конструирование программных систем. — М.: Русская Редакция, 2004. — 1204 с.

3.         Розенберг Д., Скотт К. Применение объектного моделирования с использованием UML и анализ прецедентов. — М.: ДМК Пресс, 2002. — 160 с.

4.         Документация Django [Электронный ресурс]. — Режим доступа: http://djbook.ru/rel1.4/topics/http/urls.html.

5.         Документация разработчика по технологии Google Web Toolkit [Электронный ресурс]. — Режим доступа: http://www.gwtproject.org/doc/latest/tutorial/buildui.html.

Обсуждение

Социальные комментарии Cackle