Научная статья на тему 'Разработка облачной gpss-среды на основе паттерна инверсии контроля для информационной системы обслуживания автодорог'

Разработка облачной gpss-среды на основе паттерна инверсии контроля для информационной системы обслуживания автодорог Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
44
12
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ЯЗЫК ПРОГРАММИРОВАНИЯ / PROGRAMMING LANGUAGE / ИМИТАЦИОННАЯ МОДЕЛЬ / SIMULATION MODEL / АВТОДОРОГИ / СЕРВЕР / SERVER / ОБЛАЧНЫЕ ВЫЧИСЛЕНИЯ / CLOUD COMPUTING / ОБЪЕКТНООРИЕНТИРОВАННОЕ ПРОГРАММИРОВАНИЕ / OBJECTORIENTED PROGRAMMING / СЕРВЕРНЫЕ ПРИЛОЖЕНИЯ / ROADS / SERVER-BASED APPLICATIONS

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Федоркин С.И., Дядичев В.В., Любомирский Н.В., Стоянченко С.С., Менюк С.Г.

Приводится описание принципов построения GPSS-подобной системы моделирования, которая построена с использованием объектно-ориентированного языка программирования С++. Имитационная модель также разрабатывается на языке С++. При этом пользователь для построения алгоритмов может применить как возможности языка GPSS так и возможности языка С ++. Предложенная система моделирования предназначена для работы на сервере и обслуживания многих запросов одновременно. Это позволяет ее применять в комплексах облачных вычислений. Приведены принципы построения GPSS модели на языке С ++. Дается пример модели для использования в информационно-аналитической системе автодорожного пространства.

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

The description of the principles of construction of GPSS like system simulation, which is built with the use of object-oriented programming language C ++. The simulation model is also being developed in C ++. The user for construction of algorithms can be applied as the GPSS language features and capabilities of C ++. The proposed modeling system designed to run on the server and manage multiple requests simultaneously. This allows it to be used in combination of cloud computing. The principles of construction of GPSS models in C ++. It gives an example of a model for use in the information-analytical system of road space.

Текст научной работы на тему «Разработка облачной gpss-среды на основе паттерна инверсии контроля для информационной системы обслуживания автодорог»

РАЗРАБОТКА ОБЛАЧНОЙ GPSS-СРЕДЫ НА ОСНОВЕ ПАТТЕРНА ИНВЕРСИИ КОНТРОЛЯ ДЛЯ ИНФОРМАЦИОННОЙ СИСТЕМЫ ОБСЛУЖИВАНИЯ АВТОДОРОГ

Федоркин С.И., Дядичев В.В., Любомирский Н.В., Стоянченко С.С., Менюк С.Г.,Макарова ЕС., Дядичев А.В., Шуляк ЕЮ.

Академия Строительства и Архитектуры ФГАОУ ВО "КФУ им. В.И. Вернадского", г. Симферополь, ул. Павленко, 3,

корпус 2, к. 108

lfedorkin19.51@gmail.com; mr.dyadichev@mail.ru; niklub.ua@gmail.com; gsantono@gmail.com; menuka@mail.ru; k.makarova11@gmail.com; alexandrkfu@mail.ru; lesha29.04@mail.ru;

Аннотация. Приводится описание принципов построения GPSS-подобной системы моделирования, которая построена с использованием объектно-ориентированного языка программирования С++. Имитационная модель также разрабатывается на языке С++. При этом пользователь для построения алгоритмов может применить как возможности языка GPSS так и возможности языка С ++. Предложенная система моделирования предназначена для работы на сервере и обслуживания многих запросов одновременно. Это позволяет ее применять в комплексах облачных вычислений. Приведены принципы построения GPSS модели на языке С ++. Дается пример модели для использования в информационно-аналитической системе автодорожного пространства.

Ключевые слова: язык программирования, имитационная модель, автодороги, сервер, облачные вычисления, объектно-ориентированное программирование, серверные приложения.

Актуальность проблемы

Имитационное моделирование -общеизвестный метод исследования сложных систем [5,6,9,10,12,15]. При применении этого инструмента разрабатывается алгоритмическая модель, функционирование которой в определенной степени подобно реальной сложной системе изучаемого языка. С такой алгоритмической моделью выполняется ряд экспериментов, в течение которых собираются статистические данные. Анализ этих данных позволяет сделать выводы о поведении реальной сложной изучаемой системы. В отличие от аналитического моделирования имитационную модель возможно построить для исследования реальной системы практически любого уровня сложности. Существует определенное количество языков для разработки имитационных моделей. Одними из первых были язык SIMULA . SIMSCRIPT и другие. Одним из самых распространенных программных пакетов дискретного имитационного моделирования является система GPSS [16]. К преимуществам этой системы следует отнести простоту описания моделируемой системы. Явным недостатком системы является ограничение количества блоков, которые поддерживаются в системе. Большие сложности возникают в том случае, если возможностей этих блоков недостаточно.

Анализ публикаций

Существуют реализации языка GPSS для персональных компьютеров: GPSS World [13], GPSS / PC [18]. Общей характеристикой подобных систем является попытка точного совпадению синтаксиса с классической версией GPSS [16]. Следует особо отметить работы [13,17], в которой предложены подходы к представлению GPSS модели в форме объектно-ориентированной программы на языке Delphi. Для управления процессом вызова блоков в

этой работе используется оператор CASE языка Pascal . Это придает гибкость модели. Но не дает возможности использовать обычные операторы языка Pascal. Следует отметить, что именно использование таких операторов позволяет создать модель любого уровня сложности. Также недостатком такого решения является невозможность последовательного вызова блоков GPSS, который необходимо поддерживать в определенных ситуациях моделирования.Для обеспечения расширения набора блоков разработана система GPSS - Fortran [1], которая допускает построение пользовательских блоков на универсальном языке Fortran. В этой системе стандартное, классическое множество блоков является основой для построения пользовательских блоков. На базе использования адаптированного набора блоков [7,8,11]разработчик имеет возможность простого создания уникальной имитационной модели для конкретного использования, например в информационной системе обслуживания автодорог. Алгоритмический язык Fortran была разработана в 50-х годах прошлого столетия и в наше время, несмотря на появление новых версий, не очень распространена из-за присущих недостатков. Отдельное направление в имитационном моделировании представляют системы визуального моделирования сложных систем. Типичными представителями являются система Simulink [2], VisSim [19], SimEvents [20]. К преимуществам таких систем следует отнести относительную легкость построения модели из множества стандартных блоков и минимальное время, что требуется для овладения навыками создания моделей. Развитие процесса моделирования возможно наблюдать на экране дисплея. Безусловно это очень удобно для анализа особенностей исследуемой системы. Но системы этого класса чаще всего являются

интерпретаторами, это обстоятельство определяет, что требуется много времени для выполнения процесса моделирования. Необходимость визуализации процесса моделирования вызывает еще большие затраты времени.

Цели и задачи работы

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

Для достижения этой цели необходимо решить следующие задачи:

• спроектироватьмножество классов для представления стандартных GPSS - блоков;

• разработать принципы передачи управления между GPSS - блоками;

• обосновать инструментальную среду разработки системы моделирования.

Основная часть

Программа моделирования сложной системы на языке GPSS представляет собой определенную последовательность блоков. Например, программа, моделирующая простейшую систему массового обслуживания с очередью и одним обслуживающим устройством может иметь следующий вид (рис. 1).

Генерация транзактов с нужными параметрами

Прибытиетранзакта в очередь q1

Захват обслуживающего устройстваи1

Покидание очереди q1

Задержка

(обслуживания) транзакта устройстваи1

Освобождение

обслуживающего

устройстваи1

Уничтожение транзакта

Рис.1. Пример программы на языке GPSS

Анализ приведенного примера показывает, что программа на языке GPSS представляет собой последовательность блоков. Процесс

моделирования на GPSS заключается в последовательном проведении транзактов через такую последовательность блоков. Транзакты - это динамические объекты, которые создаются и уничтожаются в течение процесса моделирования.В течение передвижения транзактов выполняется сбор статистических данных, которые используются для описания моделируемой системы. Каждый блок имеет собственную логику функционирования. Например, пара блоков QUEUE и DEPART используется для моделирования очереди. При этом блок QUEUE отмечает время прибытия транзакта в очередь, а блок DEPART -время покидания транзактом очереди и вычисляет время, проведенного транзактом в очереди. Время ожидания транзактов в очереди является случайной величиной и может использоваться для оценки эффективности работы системы.

Если блоки QUEUE и DEPART не могут быть вызовами задержки транзактов и позволяют всем транзактам свободно входить и покидать эти блоки. Кроме того, пребывание в этих блоках не требуетникакого времени и выполняется в один и тот же момент модельного времени. Существуют блоки, которые могут отказать транзакту в обслуживании при наличии определенных условий. Пара блоков SEIZE, RELEASE моделирует обслуживание транзакта специальным устройством, которое может захватить только один транзакт. Если устройство обслуживает определенныйтранзакт, другие транзакты, которые претендуют на

обслуживание данного устройства должны ожидать. Этим транзактам будет отказано блоком SEIZE на входе и будет сформирована очередь к этому устройству. Для освобождения обслуживающего устройства назначен блок RELEASE. Этот блок не может отказать транзакту на вход и пропуская транзакт он замечает устройство как свободный. После чего текущий транзакт движется к следующему блоку и активируется очереди транзактов к устройству (блок SEIZE). Если такая очередь присутствует, первому транзакту из очереди разрешается войти в блок SEIZE. Таким образом блоки SEIZE и RELEASE представляют собой связанную пару. Нельзя использовать блок SEIZE без парного блока RELEASE, и наоборот, блок RELEASE не имеет смысла без блока SEIZE. Следует отметить, что для имитации процесса обслуживания в GPSS используется блок Advanc. Транзакт, который попал в этот блок, задерживается на время, после чего покидает блок. Блок Advanc не может запретить вход транзактов к нему, он только деактивирует их на указанное время. Пока задержанные транзакты, блоком Advanc деактивированы, другие транзакты передвигаются по модели согласно ее структуры. Транзакты создаются блоком GENERATE и уничтожаются блоком TERMINATE. Создание транзактов, как правило, подчиняется какому-нибудь из законов распределения случайных величин.

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

случайными обстоятельствами, которые

складываются при моделировании. Одним из основных требований к этой управляющей программе является возможность прямой активации любого из GPSS блоков. Такая активация может быть реализована оператором аналогичным GOTO с меткой желаемого блока. Оператор GOTO является одним из важнейших операторов языка Фортран. Поэтому сам этот язык был использован для создания системы GPSS подобной системы моделирования. К преимуществам системы GPSS-F следует отнести возможность использования традиционных GPSS блоков и фрагментов обычных программ на языке Фортран. Подобная система является очень мощной потому что, может реализовать любой алгоритм имитации. В то же время обычный язык GPSS имеет ограниченное количество блоков, сужает область ее использования.

В начале 2004 года в работе [14] рассмотрено явление IoC в контексте ООП. Опираясь на мнения, изложенные в этой статье, предложено удачное определение для IoC в мире ООП: инъективная зависимость

(DependencyInjection) или инверсия зависимостей (DependencyInversion).

Инверсия зависимости - это особый вид IoC, который применяется в объектно-ориентированном подходе для удаления зависимостей между классами. Зависимости между классами превращаются в ассоциации между объектами. Ассоциации между объектами могут устанавливаться и изменяться во время выполнения программы. Это позволяет сделать модули менее связанными между собой.

Рис.2 Диаграмма классов GPSS - симулятора

На рис.2 показана диаграмма классов симулятора GPSS модель в симуляторе с коллекцией блоков (объектов). Все блоки реализуют один интерфейс (Block). Благодаря такому решению значительно упрощается структура симулятора. Фактически главная его задача - последовательный вызов блоков коллекции(GPSS модели). У каждого блока вызывается виртуальный метод execute (). Этот метод должен быть объявлен в интерфейсе и он должен быть реализован в каждом блоке.Используя принцип полиморфизма симулятор в цикле последовательно вызывает каждый блок из коллекции. При таком последовательном вызове блоков имитируется прохождения одного транзакта. В случае блокировки транзакта или других случаев, которые делают невозможным дальнейшее

Таблица №1.

.Сравнительная таблица построения имитационной модели на языке GPSS

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

Принцип инжекции зависимостей позволяет значительно упростить структуру симулятора. Фактически GPSS модель инжектируется в симулятор через внешнее описание. Для создания GPSS модели предлагается использовать язык XML. Существует несколько программных решений (фрейморков), которые позволяют выполнить инжекцию зависимостей с использованием языков Java и XML.В данной работе предлагается использовать фреймфорк Spring [4,13].

языке GPSS - F, языке C ++

GPSS

GPSS-F

C++

Generate 1,5

Queue q1

Seize u1

Depart q1

Advance 5

Leave u1

Terminate

1001 Call activ1(&1010) 99 goto (1,2,3,4),naddr call genera(1,54,&1002)

call queue(1) call seize(2,1,&1001,&1002) call depart(1) call advanc(3,10,&1001) call release(1) call termin(&1001)

1002 call activ2(&99,&1001)

While (true) { Try {

Generate.execute()' Queue.execute(); Seize.execute(); Depart.execute() Advance.execure(); Release.execute(); Terminate execute

}

Catch eactivl Activ1(); }_

В таблице№.1 приведены примеры реализации одной и той же имитационной модели на трех языках программирования.

Приведенный выше пример программы моделирования на традиционном GPSS имеет следующий вид в системе GPSS -Spring

<bean name="generate" class="gpss.Generate">

<property name="number" value="1"> <property name="time" value="5"> </bean>

<bean name="queue" class="gpss.Queue">

<property name="name" value="q1"> </bean>

<bean name="seize" class="gpss.Seize"> <property name="name" value="u1"> </bean>

<bean name="seize" class="gpss.Depart">

<property name="name" value="q1"> </bean>

<bean name="advance" class="gpss.Advance">

<property name="time" value="5"> </bean>

<bean name="leave" class="gpss.Leave">

<property name="name" value="u1"> </bean>

Внимательный просмотр варианта модели на языке GPSS - F показывает, что в модели широко используется адресный выход из процедуры. Этот механизм позволяет передать управление после выхода из процедуры не в точку непосредственно после ее вызова, в указанную точку программы. Например, после выполнения оператора 1002 call activ2 (& 99, & 1 001) управление может быть передано наоператор с меткой 99, на оператор с меткой 1001, или на следующий оператор. Механизм адресного выхода из процедуры является уникальным и поддерживается в языке Фортран начиная с версии Фортран 77.Этот алгоритм передачи управления затрудняет анализ программы и запрещен в структурном программировании и объектно-ориентированном программировании. Но именно механизм адресного выхода из программы позволил создать очень простой и открытый для модификаций алгоритм управляющей программы.

При использовании объектно-ориентированного подхода для создания алгоритма управляющей программы GPSS имитатора невозможно применить механизмы передачи управления подобные оператору GOTO. Для разветвления процесса выполнения программы в языке C ++ возможно использовать оператор SWITCH. Некоторые авторы предлагают его использования для построения GPSS имитатора. Но в таком случае моделирующая программа получается чрезмерно усложненной.

В этой работе предложен для гибкой передачи управления в GPSS С ++ программе использовать механизм исключений, который поддерживается в языке С ++. Пример приведен в таблице 1 в третьей колонке. Из этого примера видно, что управление последовательно передается от одного блока к другому. Если транзакт будет заблокирован, и возникнет необходимость передачи

управления к диспетчеру, блок сгенерируетотключение. В этом случае управление будет автоматически передано в раздел са1сИоператору try. После определения следующего блока, который должен быть активированным диспетчер просто формирует команду и завершает работу. Поскольку блок try ... catch заключен в бесконечный цикл, то следующим выполняется первый блок программы. Но активировать необходимо определенный блок, а не первый. Для активации нужного блока предлагается использовать паттерн программирования «цепочка ответственности» [3].

Выводы

В предлагаемой системе

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

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

Литература

1. Schmidt B. Simulation of discrete system using GPSS-Fortran / B. Schmidt. — N.J. : John Wiley&Sons, 1980. — 342 p.

2. Васильев В.В., Симак Л.А., Рыбникова А.М. Математическое и компьютерное моделирование процессов и систем в среде MATLAB/SIMULINK. Учебное пособие. -К.: НАН Украины, 2008 .- 91 с.

3. Гамма Э., Хелм Р., Джонсон Р., Влиссидес Дж Приемы объектно-ориентированного проектирования. Паттерны проектирования. — СПб: «Питер», 2007. — 366. c.

4. Глушаков С.В., Коваль А.В., Смирнов С.В. Язык программирования С++. Учебный курс. — Харьков, «Фолио», 2001. — 505 с.

5. Дядичев В.В. Интегрированные компьютерные системы: Учебное пособие. -Луганск: Изд-во ВНУ им.В.Даля, 2008. -256с.

6. Дядичев В.В. Моделирование внедрения инновационных технологий в региональную систему образования: Монография / Дядичев В.В., Крышталь Н.И., Колесников А.В., Рыбцев И.В. - Луганск: Издательство ВНУ им. В.Даля, 2011. -252с.

7. Дядичев В.В., Жуковский А.В. Интернет-телефония и системы мобильных телекоммуникаций: Учебное пособие. -Луганск: Изд-во ВНУ им.В.Даля, 2006 -500с.

8. Дядичев В.В., Жуковский А.В., Сафронов К. Н. Компьютерные телекоммуникации и сети ЭВМ: Учебное пособие. - Луганск: Изд-во ВНУ им.В.Даля, 2006 -208с.

9. Дядичев В.В., Локотош Б.Н., Колесников А.В. Теория информации: Учебное пособие. - Луганск: Изд-во ВНУ им. В. Даля, 2009. -252с.

10. Дядичев В.В., Колесников А.В. Компьютерная техника. Часть I. Пользователь ПК: Учебное пособие. -Луганск: Изд-во ВНУ им.В.Даля, 2003 -236с.

11. Дядичев В. В., Колесников А. В. Технические и программные средства современного офиса: Учебное пособие. - Луганск: Изд-во ВНУ им.В.Даля, 2006 - 22с.

12. Дядичев В.В., Погорелов О.О. Дискретная математика и теория вероятностей: Учебное пособие. - Луганск: Изд-во ВНУ им. В. Даля, 2009. - 247с.

13. Королев А. Г. Система objectGPSS. Вложение языка GPSS в DELPHI.- Сборник докладов 2-й всероссийской научно практической конференции по имитационному моделированию и его применению в науке и промышленности «Имитационное моделирование. Теория и практика» ИММОД 2005, Санкт Петербург, 2005.. c-264-268.

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

14. КудрявцевЕ. М. GPSS World. Основы имитационного моделирования различных систем.— М.: ДМК Пресс, 2004.— 320с.

15. Томашевский В. Имитационное моделирование в среде GPSS / В. Томашевский, Е. Жданова — М. : Бестселер, 2003. — 416 с.

16. Шрайбер Т. Дж. Моделирование на GPSS -М.: Машиностроение, 1980.— 592с.

17. http://objectgpss.narod.ru/txt/systemogpss.htm

18. http://dl.acm.org/citation. cfm?id=76760

19. http://www.vissim.com/

20. http://www.mathworks.com/products/simevents

Исследование выполнено при финансовой поддержке РФФИ и Министерства образования и науки Республики Крым в рамках научного проекта 15-47-01001 «р_юг_а».

GPSS - DEBELOP CLOUD ENVIRONMENT BASED ON THE PATTERN INVERSION

Annotation. The description of the principles of construction of GPSS - like system simulation, which is built with the use of object-oriented programming language C ++. The simulation model is also being developed in C ++. The user for construction of algorithms can be applied as the GPSS language features and capabilities of C ++. The proposed modeling system designed to run on the server and manage multiple requests simultaneously. This allows it to be used in combination of cloud computing. The principles of construction of GPSS models in C ++. It gives an example of a model for use in the information-analytical system of road space.

Keywords: programming language, simulation model , roads, server , cloud computing , object- oriented programming , server-based applications .

CONTROL FOR INFORMATION SYSTEM SERVICE ROAD

i Надоели баннеры? Вы всегда можете отключить рекламу.