Что такое событие?

Лекция 12. События

Розроблення й оцінювання захищених систем

Зупинимося на деяких термінах, які найчастіше вживають під час оцінювання захищених систем.

Кваліфікаційний аналіз — це аналіз ІКС (чи обчислювальної системи) з метою визначення рівня її захищеності та відповідності вимогам безпеки на основі критеріїв стандарту безпеки.

Гарантії — міра впевненості в тому, що І КС' коректно реалізує політику безпеки.

У перекладах зарубіжних стандартів російською мовою замість терміну «гарантії» зазвичай вживають термін «адекватність».

Адекватність – це показник реально гарантованого рівня безпеки , що відображає ступінь ефективності та надійності реалізованих засобів захисту та їхніх відповідностей поставленим задачам.

События похожи на исключительные ситуации в том смысле, что они создаются (генерируются) объектами, и у нас имеется возможность задать код, который будет выполняться при их наступлении. Между ними, однако, существует несколько важных отличий. Наиболее существенным является отсутствие конструкции, предназначенной для обработки событий и эквивалентной конструкции try . . .catch. Вместо этого на события необходимо подписываться. Подписаться на некоторое событие — означает указать код, который должен выполняться при наступлении данного события и который имеет форму обработчика событий.

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

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

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

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

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

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

функцию. В качестве такой функции-обработчика события может использоваться метод или какой-либо другой объект — скажем, объект, представляющий некоторое устройство вывода сообщений, предназначенное для немедленного вывода сообщений при их поступлении (см. рис. справа).

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