Моделирование информационных потоков
Информационные ресурсы - это необходимые сведения, оперативная информация (например, биржевая информация из сайтов Интернета), временно предоставляемые права на что-либо, документация и иные нематериальные ценности, без которых невозможно выполнение важной функции. Эти рес)фсы подразделяются на две разновидности:
• стартовый информационный ресурс, без которого нельзя начинать вьшолнение функции (например, право или разрешение на ее вьшолнение, инструкция по сборке принципиально нового устройства);
• оперативный информационный ресурс, постоянно необходимый при вьшолнении функции (например, оперативная диспетчерская информация, отсутствие которой делает невозможной посадку самолета на аэродром).
Стартовый информационный ресурс дает возможность отправить заявку на выполнение какой-либо функции, т.е. поместить транзакт в очередь на обслуживание. На рис. 15.5 показана схема получения такого ресурса. Для выполнения основной функции нужны только два узла: первый (очередь queue) и седьмой - последний (обслуживающий процесс serv). Узлы 2 - 6 предназначены для имитации получения информации из iV источников. Эти источники – каналы в узле обслуживания 5 (serv). В данном случае предполагается, что ко всем каналам или источникам информации доступ осуществляется через общую очередь 4 (queue). Если необходимо смоделировать отдельные механизмы доступа к каждому уникальному источнику информации, то данную схему нужно усложнить: это будет N очередей к N одноканальным узлам обслуживания.
Рис. 15.5. Схема получения информационного ресурса для выполнения основной функции
Рассмотрим логику моделирования. Запросы на выполнение основной функхщи поступают в очередь с номером 1. Первый же запрос проходит через открытый клапан 2 (key) и далее поступает в управляемый генератор 3 (creat); при входе в него выполняется сигнальная функция hold, которая закрывает клапан, чтобы преградить путь следующим транзактам.
Узел creat создает новое семейство транзактов (от \ до N). Каждый из них - это запрос, который поступает в очередь к источникам информации. Время получения информации (оно не равно нулю) можно сделать уникальным для каждого транзакта, поместив значение временного интервала в один из его параметров. После обслуживания каждый такой транзакт поступит в узел delet.
Основной (порождающий) транзакт за нулевое время проходит узел creat и поступает в узел delet, где он становится уничтожающим для только что созданного семейства. Если порожденный транзакт достигает узла delet, то это означает получение необходимой информации из очередного источника. Далее он становится ненужным и поглощается основным транзактом.
После получения всей необходимой информации все дополнительные транзакты поглощены, и основной транзакт переходит к отработке основной функции в узле 7 (serv). При входе в этот узел выполняется сигнальная функция rels, открывающая клапан для прохождения других транзактов.
Следует отметить, что параллельно с обслуживанием запросов на вьшолнение основной функции в данной схеме моделируется обслуживание потока запросов от других клиентов. Такой поток обычно называется фоновым; если работать без приоритетов, то он приводит к увеличению задержек в очереди с номером 4.
Оперативный информационный ресурс может быть получен двумя способами:
• предварительно, вместе со стартовыми;
• во время выполнения транзактом основной функции.
На самом деле неважно, как получен ресурс; важно иметь доступ к этому ресурсу по возможности постоянно, так как прекращение доступа повлечет за собой приостановку выполнения основной функции. Моделирование механизма таких приостановок показано на рис. 2.7.
Рис. 15.6. Схема выполнения функций основным транзактом при наличии доступа к информации
Основной транзакт - это запрос на выполнение основной функции. Он поступает в очередь queue с номером 1. Выполнение основной функции имитируется в данном случае не узлом обслуживания serv, а с помощью узла-процесса 2 (ргос). Узел ргос отрабатывает только время обслуживания, и непрерывный компонент ему не нужен.
Доступ к оперативной информации осуществляется специальной службой, которая моделируется с помощью узлов 3, 4 и 5. Для определенности считаем, что в узел ргос поступает основной транзакт, который сразу попадает в пассивное состояние и не обслуживается, если нет доступа к информации. Управление доступом выполняет другой транзакт, который поступает из очереди 3 (queue) в узел обслуживания 4 (serv). При входе в этот узел управляющий транзакт разрешает доступ: он посылает сигнал activ, по которому основной транзакт переходит в активное состояние, и в узле ргос выполняется работа по его обслуживанию.
После пребывания управляющего транзакта в узле serv в течение определенного времени – времени разрешенного (или оплаченного) доступа к оперативной информации, он поступит в узел 5 и выполнит сигнальную функцию перевода узла 2 в пассивное состояние. Если время разрешенного доступа выбрано так, что оно не меньше длительности выполнения основной функции, а моменты входов управляющего транзакта в узел 4 и основного транзакта в узел 2 совпадают, то выполнение основной функции произойдет без прерываний. В противном случае возможны прерывания основной функции, и она будет выполняться за большее время. Так моделируется влияние наличия или отсутствия оперативной информации на работоспособность, например, диспетчерских служб или консалтинговых агентств.