Студопедия — Обработчики событий
Студопедия Главная Случайная страница Обратная связь

Разделы: Автомобили Астрономия Биология География Дом и сад Другие языки Другое Информатика История Культура Литература Логика Математика Медицина Металлургия Механика Образование Охрана труда Педагогика Политика Право Психология Религия Риторика Социология Спорт Строительство Технология Туризм Физика Философия Финансы Химия Черчение Экология Экономика Электроника

Обработчики событий






 

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

Для отношения матчинга определено четыре типа событий (рис. 21):

OnEstablish - установить событие резервирования в матчинге,

OnBreak - установить событие разрыва резервирования в матчинге,

OnMatchingFailed – агенты не соглашаются установить отношение матчинга,

OnReservationFailed – агенты устанавливают отношение матчинга, но резервирование не выполняется.

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

Object_Instance – агент, который является объектом в данном отношении матчинга,

Subject_Instance – агент, который является субъектом в данном отношении матчинга,

Matcher_Instance – матчер агентов.

Данные события используются, когда необходимо изменить какое-то значение атрибута агента в зависимости от значения атрибутов матчера. Например, после того как отправитель зарезервировал определенную часть грузоподъемности самолета, необходимо увеличить уровень загрузки самолета на соответствующую величину, скорректировать значение занятой грузоподъемности самолета, значение платы за зарезервированную грузоподъемность и т.п.

 

Находясь в окне Edit matching condition, перейдите во вкладку Events, установите флаг активности события резервирования (рис. 21).

Рис. 21. Установка активности события резервирования

 

Свяжите с событием резервирования скрипт. Для этого нажмите на кнопку и в появившемся редакторе скриптов наберите тело скрипта (рис. 22). Параметрами скрипта – обработчика события резервирования, в соответствии с тем, как определены стороны отношения в матчинге, являются:

Object_Instance – агент самолета, который является объектом в данном отношении матчинга,

Subject_Instance – агент отправителя, который является субъектом в данном отношении матчинга.

 

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

with “ имя агента ” do

begin

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

end;

 

Begin

; вычисление значений атрибутов агента самолета (вместо обращения

; "Object_Instance"."Airplane load" и т.п. используется

; "Airplane load" и т.п. Для обращения к атрибутам агента

; отправителя используется полная форма записи, например,

; "Subject_Instance"."_Sender volume". Для обращения к значениям

; атрибутов, вычисляемых матчером, также используется полная форма

; записи, например, "Matcher_Instance"."Current fee")

with "Object_Instance" do

Begin

; вычисление текущей загрузки самолета

"Airplane load":= "Airplane load" + "Subject_Instance"."_Sender

volume";;

; вычисление свободной грузоподъемности самолета

"Airplane free volume":= "_Airplane volume" - "Airplane load";;

; вычисление коэффициента загрузки самолета в процентах

"Usage level":= 100 * "Airplane load" / "_Airplane volume";;

; вычисление платы, полученной самолетом. Матчер запускает скрипт

; Calculate Current fee для вычисления значения платы от каждого

; отправителя, агент которого резервирует самолет. Значение

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

; на самолете, добавляется к суммарной плате, полученной самолетом

; от всех отправителей

"Airplane account":="Airplane account" +

"Matcher_Instance"."Current fee";;

; добавление идентификатора отправителя в список отправителей,

; грузы которых размещены на самолете. Add – встроенная функция

; матчера, которая выполняет эту операцию

"Sender names".Add("Subject_Instance"."_Sender name");

;Агент самолета получает от матчера значение тарифа за перевозку

; 1 кг груза, вычисленное с помощью скрипта Calculate Rent fee, и

; записывает это значение в соответствующий атрибут

"Rent fee":= "Matcher_Instance"."Rent fee";;

End;

; вычисление значений атрибутов агента отправителя (вместо обращения

; "Subject_Instance."Current fee" и т.п. используется

; "Current fee" и т.п. Для обращения к атрибутам агента

; самолета используется полная форма записи, например,

; "Object_Instance"."_Airplane name". Для обращения к значениям

; атрибутов, вычисляемых матчером, также используется полная форма

; записи, например, "Matcher_Instance"."Current fee")

with "Subject_Instance" do

Begin

; отправитель получает идентификатор зарезервированного им

; самолета

"SenderAirplane Name":= "Object_Instance"."_Airplane name";;

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

; груза, которое вычисляется с помощью скрипта

; Calculate Current fee

"Current fee":= "Matcher_Instance"."Current fee";;

End;

End;

Рис. 22. Редактор скриптов обработчика событий

 

 

2.3.7 Сохранение онтологий предметной области “Логистика воздушного флота”

 

Дерево концептов дескриптивной онтологии и онтологии виртуального мира предметной области “Логистика воздушного флота” приведено на рис. 23.

 

Рис. 23. Дерево концептов дескриптивной онтологии и онтологии виртуального мира предметной области “Логистика воздушного флота”

 

Сохраните созданные онтологии (дескриптивную онтологию и онтологию мира заказов/ресурсов) при помощи кнопки под именем Shared Airplanes ontology. Расширение .ocl будет добавлено автоматически. По умолчанию, файл онтологии будет размещен в разделе Ontology Samples.

Завершите работу с конструктором онтологий (File -> Close).

 







Дата добавления: 2015-10-19; просмотров: 445. Нарушение авторских прав; Мы поможем в написании вашей работы!



Функция спроса населения на данный товар Функция спроса населения на данный товар: Qd=7-Р. Функция предложения: Qs= -5+2Р,где...

Аальтернативная стоимость. Кривая производственных возможностей В экономике Буридании есть 100 ед. труда с производительностью 4 м ткани или 2 кг мяса...

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

Расчетные и графические задания Равновесный объем - это объем, определяемый равенством спроса и предложения...

БИОХИМИЯ ТКАНЕЙ ЗУБА В составе зуба выделяют минерализованные и неминерализованные ткани...

Типология суицида. Феномен суицида (самоубийство или попытка самоубийства) чаще всего связывается с представлением о психологическом кризисе личности...

ОСНОВНЫЕ ТИПЫ МОЗГА ПОЗВОНОЧНЫХ Ихтиопсидный тип мозга характерен для низших позвоночных - рыб и амфибий...

Правила наложения мягкой бинтовой повязки 1. Во время наложения повязки больному (раненому) следует придать удобное положение: он должен удобно сидеть или лежать...

ТЕХНИКА ПОСЕВА, МЕТОДЫ ВЫДЕЛЕНИЯ ЧИСТЫХ КУЛЬТУР И КУЛЬТУРАЛЬНЫЕ СВОЙСТВА МИКРООРГАНИЗМОВ. ОПРЕДЕЛЕНИЕ КОЛИЧЕСТВА БАКТЕРИЙ Цель занятия. Освоить технику посева микроорганизмов на плотные и жидкие питательные среды и методы выделения чис­тых бактериальных культур. Ознакомить студентов с основными культуральными характеристиками микроорганизмов и методами определения...

САНИТАРНО-МИКРОБИОЛОГИЧЕСКОЕ ИССЛЕДОВАНИЕ ВОДЫ, ВОЗДУХА И ПОЧВЫ Цель занятия.Ознакомить студентов с основными методами и показателями...

Studopedia.info - Студопедия - 2014-2024 год . (0.012 сек.) русская версия | украинская версия