Расширяемый механизм уведомления о событии

Изобретение относится к системам обнаружения событий и оповещения программ-запросчиков, зарегистрированным для такого уведомления. Техническим результатом является расширение функциональных возможностей. Устройство уведомления о событиях содержит множество средств-запросчиков, множество средств-уведомителей, средство-карту, средство управления уведомлениями. Способ уведомления о событиях заключается в приеме множества запросов регистрации на события, каждый из которых исходит от программы-запросчика, каждый запрос регистрации содержит первый идентификатор, идентифицирующий программу-запросчик, и второй идентификатор, идентифицирующий одну из программ-уведомителей, сохранении идентификаторов в карте и активировании каждой программы-уведомителя, идентифицированной в карте, обращении к карте для идентификации всех программ-запросчиков, которые представили запросы регистрации, активировании идентифицированных программ-запросчиков и передаче каждой из них представления произошедшего события. На машиночитаемом носителе сохранены команды, которые предписывают компьютеру выполнять указанный способ. 5 н. и 22 з.п. ф-лы, 4 ил., 3 табл.

 

I. Область техники, к которой относится изобретение

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

II. Предшествующий уровень техники

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

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

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

Хотя предшествующий уровень техники имеет преимущества в контексте однопроцессорных систем, он тем не менее не отвечает полностью требованиям систем со множеством различных программ, требующих различных степеней уведомления о множестве различных событий. В современных реализациях уведомления обычно являются "жестко-спроектированными" в том смысле, что они реализуются через специфические функциональные вызовы, поддерживаемые специфическим набором выполняемых функций, ответственным за уведомление. У этих реализаций отсутствует какая-либо возможность динамического расширения такого механизма. Более того, для добавления нового типа уведомления должен быть разработан новый набор интерфейсов прикладного программирования. Следовательно, известные схемы уведомления о событиях не полностью отвечают требованиям некоторых приложений из-за определенных нерешенных проблем.

Сущность изобретения

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

Сначала каждая программа-запросчик представляет соответствующий запрос регистрации средству управления уведомлениями. Каждый запрос регистрации является запросом на получение уведомления об одном или более будущих событий в классе событий, ассоциированном с конкретной программой-уведомителем. Каждый запрос регистрации включает в себя идентификатор (ИД, ID) запросчика (идентифицирующий программу-запросчик) и идентификатор (ИД) уведомителя (идентифицирующую программу-уведомитель о событии, соответствующую классу событий, для которого запрошена регистрация). Средство управления уведомлениями хранит идентификационные данные запрашивающих программ в карте, которая ассоциирована с содержимым запросов регистрации.

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

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

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

Перечень чертежей

Фиг.1 - блок-схема компонентов аппаратного обеспечения и межсоединений расширяемой системы уведомления о событии согласно изобретению.

Фиг.2 - блок-схема устройства цифровой обработки данных согласно изобретению.

Фиг.3 - приведенный носитель сигнала согласно изобретению.

Фиг.4 - блок-схема алгоритма, иллюстрирующая последовательность операций для расширяемой системы уведомления о событии, соответствующей изобретению.

Подробное описание изобретения

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

Компоненты аппаратного обеспечения и межсоединения

Общая структура

Один аспект изобретения касается расширяемой системы уведомления о событии, которая может быть реализована различными компонентами аппаратного обеспечения и межсоединениями, как это показано в качестве одного примера, описанного системой 100 по фиг.1. Система 100 включает в себя средство 102 управления уведомлениями, множество программ-запросчиков 108, множество программ-уведомителей 104, карту 110 и словарь 112.

Программы-запросчики

Программы-запросчики 108 включают в себя программы, которые выполняют различные функции, подробности которых зависят от контекста применения системы 100, например, беспроводного телефона, автомобильного компьютера и т.д. Каждая программа-запросчик сконфигурирована для совершения действия в ответ на возникновение определенных событий 106. Для того чтобы получить уведомление о событиях 106, программы-запросчики 108 регистрируются с помощью средства 102 управления уведомлениями, как это более подробно описано ниже. Каждая программа-запросчик 108 имеет ассоциированный идентификатор, что проиллюстрировано идентификаторами 108а-108с. В настоящем примере каждый идентификатор программы-запросчика содержит отличное от других 32-битовое двоичное число. Соответствующий идентификатор хотя и показан вместе с каждой программой-запросчиком, в качестве альтернативы он может храниться где-нибудь в другом месте, например в списке, таблице, карте или в другой структуре, которая ассоциативно связывает программы-запросчики с идентификаторами 108а-108с.

Программы-уведомители

Программы-уведомители 104 включают в себя программы, которые обнаруживают происшествие различных событий 106. События 106 могут включать в себя аппаратные и/или программные события, происходящие внутри системы 100 или за ее пределами, точная природа которых зависит от контекста применения системы 100. Некоторые приведенные в качестве примера события включают в себя изменения в конфигурации аппаратных устройств, истечения периодов времени, наступления предписанных периодов времени, завершения обработки заданий, возникновение определенных аппаратных прерываний.

Каждая программа-уведомитель 104 способна, как это показано, обнаруживать множество различных событий. События, которые могут быть обнаружены конкретной программой-уведомителем 104, относят к классу событий программы-уведомителя. Каждая программа-уведомитель 104 включает идентификатор, проиллюстированный идентификаторами 104а-104с. В настоящем примере каждый идентификатор уведомителя включает отличное от других 32-битовое число. Хотя ассоциированный идентификатор и показан вместе с каждой программой-уведомителем, в качестве альтернативы он может храниться где-нибудь в другом месте, например, в списке, таблице, карте или другой структуре, которая ассоциативно связывает программы-уведомители с идентификаторами 104а-104с. Каждая программа-уведомитель 104 предназначена для уведомления средства 102 управления уведомлениями в ответ на обнаружение события, относящегося к классу событий этой программы-уведомителя.

Средство управления уведомлениями

Средство управления 102 уведомлениями, которое коммуникационно связано с программами-уведомителями 104 и программами-запросчиками 108, предназначено для приема запросов регистрации от программ-запросчиков 108, а также уведомлений о событиях от программ-уведомителей 104. Запросы регистрации являются запросами от запрашивающих программ на получение уведомления об одном или более типах будущего события; каждый запрос регистрации включает в себя идентификатор 108а-108с программы-запросчика и идентификатор программы-уведомителя 104, соответствующей требуемому классу событий. Для каждой программы-запросчика 108, запрашивающей регистрацию, средство 102 управления уведомлениями сохраняет идентификатор ИД 108а-108с в карте 110, наряду с соответствующим идентификатором программы-уведомителя и параметром уведомления.

Таким образом, всякий раз когда программа-уведомитель 104 оповещает средство 102 управления уведомлениями о событии, средство 102 управления уведомлениями сначала обращается к карте 110 для идентификации всех запрашивающих программ 108, которые зарегистрировались, в отношении оповещающей программы-уведомителя. Соответственно, средство 102 управления уведомлениями активирует идентифицированную запрашивающую программу и посылает ей сообщение, идентифицирующее событие, которое произошло.

Карта

Таблица 1 (приведенная ниже) иллюстрирует приведенную в качестве примера конфигурацию карты 110.

Таблица 1 - приведенная в качестве примера карта 110
ИД запросчикаИД уведомителяПараметр уведомления
11111111111111111111111111111111000000000000000000000000000000001001
11111111111111111111111111111110000000000000000000000000000000011100
11111111111111111111111111111100000000000000000000000000000000111111

В этом примере карта 110 включает в себя перечень каждой "зарегистрированной" запрашивающей программы 108, то есть каждой запрашивающей программы 108, которая представила запрос средству 102 управления уведомлениями на получение уведомления о классе событий. В иллюстрированном примере карта 110 идентифицирует зарегистрированные запрашивающие программы посредством 32-битового идентификатора (ИД). Для каждой регистрации в карту 110 внесена программа-уведомитель 104, соответствующая классу событий этой регистрации. В иллюстрируемом примере карта 110 именует каждую программу-уведомитель 104 посредством ее 32-битового идентификатора (ИД).

Для каждой зарегистрированной программы-запросчика 108 в карту 110 также внесен параметр уведомления. Как это более подробно объяснено ниже, параметры уведомления определяют, какие события из класса программы-уведомителя хочет получить вызывающая сторона. В иллюстрируемом примере класс событий каждой программы-уведомителя включает в себя три различных события. Эти события могут быть представлены тремя соответствующими битами. Кроме того, одно или более состояний могут быть представлены параметром уведомления. В этом примере имеется состояние "остаться резидентной", как это пояснено ниже, что требует суммарно четыре бита. Таким образом, параметр уведомления может быть представлен 4-битовым двоичным числом (0000-1111). Конечно, специалистам обычной квалификации (оценившим преимущество этого раскрытия) будет понятно, что большее число событий и состояний может быть представлено посредством использования более длинного параметра уведомления и/или другой схемы цифрового представления этих величин.

Словарь

В иллюстрируемом примере, без какого-либо преднамеренного ограничения, смысловое значение параметров уведомления содержится в словаре 112. Таблица 2 (приведена ниже) приводит пример содержимого словаря 112.

Таблица 2 - приведенный в качестве примера словарь 112
Параметр уведомленияОбъяснение
0001Уведомление для события 1 = да

Уведомление для события 2 = нет

Уведомление для события 3 = нет

Остаться резидентной = нет
0011Уведомление для события 1 = да

Уведомление для события 2 = да

Уведомление для события 3 = нет

Остаться резидентной = нет
0100Уведомление для события 1 = нет

Уведомление для события 2 = нет

Уведомление для события 3 = да

Остаться резидентной = нет
0101Уведомление для события 1 = да

Уведомление для события 2 = нет

Уведомление для события 3 = да

Остаться резидентной = нет

0110Уведомление для события 1 = да

Уведомление для события 2 = да

Уведомление для события 3 = да

Остаться резидентной = нет
......
1111Уведомление для события 1 = да

Уведомление для события 2 = да

Уведомление для события 3 = да

Остаться резидентной = да

В этом примере каждый параметр уведомления содержит отличное от других 4-битовое число, которое соответствует заранее заданной комбинации требующихся событий и состояния "остаться резидентной". Использование параметров уведомления обсуждается более подробно ниже.

Приведенное в качестве примера устройство цифровой обработки данных

Как было упомянуто выше, средство 102 управления уведомлениями, программы-запросчики 108 и программы-уведомители 104 могут быть реализованы в различных формах. Например, эти компоненты могут быть реализованы посредством устройств цифровой обработки данных, общего устройства цифровой обработки данных или их вариантами. Для упрощения иллюстрации нижеприведенный пример описывает единое устройство обработки, реализующее все компоненты 102, 108, 104. А именно, фиг.2 иллюстрирует компоненты аппаратного обеспечения и межсоединения устройства 200 цифровой обработки данных.

Устройство 200 включает в себя процессор 202, например микропроцессор или другое обрабатывающее устройство, связанное с запоминающим устройством 204. В настоящем примере запоминающее устройство 204 включает в себя запоминающее устройство 206 с быстрой выборкой, а также энергонезависимое запоминающее устройство 208. Запоминающее устройство 206 с быстрой выборкой может включать в себя оперативное запоминающее устройство ("ОЗУ", RAM), и может быть использовано для хранения команд программирования, выполняемых процессором 202. Энергонезависимое запоминающее устройство 208 может включать в себя, например, один или более магнитных дисков для хранения данных, таких как "жесткий диск", ленточный накопитель или любое другое подходящее запоминающее устройство. Устройство 200 также включает в себя вход/выход 210, такой как линия связи, шина, кабель, электромагнитная линия связи или другое средство для процессора 202 для обмена данными с другими аппаратными средствами, являющимися внешними по отношению к устройству 200.

Несмотря на специфическое предшествующее описание специалисты обычной квалификации (оценившие преимущества от этого раскрытия) признают, что устройство, обсужденное выше, может быть реализовано в устройствах различной конструкции, не выходя за рамки объема этого изобретения. В качестве специфического примера один из компонентов 206, 208 может быть исключен, более того, запоминающее устройство 204 может быть размещено на плате процессора 202, или даже может быть размещено за пределами устройства 200.

Логические схемы

В противоположность устройству обработки цифровых данных, описанному выше, другой вариант осуществления изобретения использует логические схемы вместо машиноисполняемых команд, чтобы реализовать некоторые или все из средства 102 управления уведомлениями, программ-запросчиков 108 и программ-уведомителей 104. В зависимости от конкретных требований применения в областях скорости обработки, стоимости, эксплутационных расходов и т.п. эти логические схемы могут быть реализованы посредством конструирования специализированной интегральной схемы ("ASIC"), имеющей тысячи интегрированных транзисторов очень малого размера. Такая ASIC может быть реализована с помощью комплементарного металлооксидного полупроводника (КМОП), транзисторно-транзисторной логики (ТТЛ), сверхбольшой интегральной схемы (СБИС) или другой подходящей конструкции. Другие альтернативы включают микросхему для цифровой обработки сигнала (DSP), дискретные схемы (например, резисторы, конденсаторы, диоды, катушки индуктивности и транзисторы), матрицу логических элементов с эксплуатационным программированием (FPGA), программируемую логическую матрицу (PLA) и т.д.

Приведенное в качестве примера применение

Хотя система 100 может быть реализована во множестве различных контекстов применения, одним иллюстративным применением является беспроводной телефон. Некоторые иллюстративные события 106 включают в себя звонок телефона, соединение телефона с сетью, прием данных службы коротких сообщений (SMS). Приведенные в качестве примера программы-уведомители 104 включают в себя интерфейс прикладного программирования для телефонной связи (TAPI). В этом применении средство 102 управления уведомлениями является микропроцессором, карта 110 находится в запоминающем устройстве со съемным носителем, таком как ОЗУ с батарейным питанием, а словарь 112 находится в постоянном запоминающем устройстве (ПЗУ), таком как стираемое программируемое ПЗУ (EPROM) или в другом запоминающем устройстве, поддерживающем обновление (по типу флэш-памяти).

Работа

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

Носители сигнала

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

Эти носители сигнала могут включать, например, ОЗУ (не показано), содержащееся внутри средства 102 управления уведомлениями, как представлено запоминающим устройством 206 с быстрой выработкой. Как вариант, команды могут содержаться в других носителях сигнала, таких как магнитная дискета 300 для хранения данных (фиг.3), прямой или косвенный доступ к которым осуществляется процессором 202. Команды содержатся в памяти 206, на дискете 300 или где-нибудь в другом месте, но они могут храниться и на других различных машиночитаемых носителях. Некоторые примеры включают запоминающее устройство прямого доступа (например, обычный "жесткий диск", блок недорогих дисков с избыточностью информации (RAID) или другое запоминающее устройство прямого доступа (DASD)), запоминающее устройство последовательного доступа, такое как магнитная или оптическая лента, электронное постоянное запоминающее устройство (например, ПЗУ, EPROM или электронно-перепрограммируемое ПЗУ (EEPROM)), оптическое запоминающее устройство (например, компакт-диск (CD-ROM), запоминающее устройство без возможности перезаписи (WORM), цифровой универсальный диск (DVD), цифровая оптическая лента), бумажные перфорированные карты или другие подходящие носители сигнала, включающие в себя среды аналоговой или цифровой передачи, а также аналоговые и беспроводные линии. В иллюстративном варианте осуществления изобретения машиночитаемые команды могут включать программный объектный код, компилированный с языка программирования, такого как "Си" и т.п.

Логические схемы

В противоположность носителю сигнала, обсужденному выше, аспект изобретения, относящийся к способу, может быть реализован с использованием логических схем без использования процессора для выполнения команд. В этом варианте осуществления логические схемы могут быть использованы для реализации некоторых или всех из программ-запросчиков 108, программ-уведомителей 104 и средства 102 управления уведомлениями, чтобы выполнить операции изобретения. Логические схемы могут быть реализованы с использованием многих различных типов схем, как это обсуждено выше.

Общая последовательность работы

Фиг.4 показывает последовательность 400 для иллюстрации примера последовательности операций для расширяемой системы уведомления о событии. В общем, эта последовательность предназначена для обнаружения определенных событий и уведомления программ-запросчиков 108, которые зарегистрировались для такого уведомления. Для упрощения объяснения, но без какого-либо преднамеренного ограничения, пример по фиг.4 описан в контексте системы 100, описанной выше.

На этапе 401 идентификаторы 108а-108с присваивают программам-запросчикам 108, а идентификаторы 104а-104с присваивают программам-уведомителям 104. Этот этап может быть выполнен инженером-проектировщиком системы 100, средством 102 управления уведомлениями или другим подходящим компонентом. Идентификаторы могут храниться вместе с соответствующими программами 104, 108, как это показано, или храниться в другом месте, доступном для программ 104, 108.

На этапе 402 одну или более программ-запросчиков 108 регистрируют для получения уведомления об определенных событиях. В каждом случае регистрация вызывает представление программой 108 регистрации запроса регистрации к средству 102 управления уведомлениями. Запрос регистрации включает в себя (1) идентификационные данные программы-запросчика 108, такие как идентификаторы 108а-108d программы-запросчика и (2) идентификаторы 104а-104с или другие идентификационные данные программы-уведомителя 104, которая соответствует классу, включающему в себя событие (события), для которого требуется уведомление. Как вариант, запрос может включать в себя параметр уведомления, такой как параметр, поясненный со ссылкой на таблицу 2. В качестве альтернативы программы-запросчики 108 могут использовать другое представление событий и состояний, где параметры уведомления используются лишь внутренним образом средством 102 управления уведомлениями, в таком случае средство 102 управления уведомлениями переводит предпочтение уведомления для программ-запросчиков в представительный параметр уведомления, используя словарь 112 во время процесса регистрации (этап 402). Приведенная ниже таблица 3 показывает содержимое приведенного в качестве примера запроса регистрации.

Таблица 3 - содержимое приведенного в качестве примера запроса регистрации
Запрос регистрации
ИД программы-запросчика = 11111111111111111111111111111111
ИД программы-уведомителя = 00000000000000000000000000000000
Параметры уведомления = 1001

Программы-запросчики 108, хотя они и не показаны отдельно для простоты описания, могут регистрироваться вначале и/или повторять регистрацию позже в последовательности 400 в соответствии с требованиями к функционированию этих программ 108 регистрации. Более того, в другом варианте осуществления регистрация может быть выполнена другим объектом от имени программы-запросчика 108. Таким объектом может быть другая программа (например, координатор регистрации), инженер-программист и т.д.

В ответ на запрос регистрации на этапе 402 средство 102 управления уведомлениями обрабатывает этот запрос посредством запоминания содержимого запроса в карте 110. В иллюстрированном примере средство 102 управления уведомлениями сохраняет идентификатор запросчика, идентификатор уведомителя и параметр уведомления текущего запроса регистрации. После этапа 402 средство 102 управления уведомлениями активирует программу-уведомитель 104, включенную в текущий запрос регистрации. Это может быть выполнено, например, загрузкой в память программы-уведомителя 104. Будучи теперь активной, эта программа-уведомитель 104 работает для обнаружения событий ее класса (шаг 406). Когда программа-уведомитель 104 обнаруживает какие-либо события, относящиеся к ее классу, она оповещает средство 102 управления уведомлениями (этап 408). Это может быть выполнено, например, передачей сообщения к средству 102 управления уведомлениями, обусловливая аппаратное прерывание, установку локального флага, обнаруживаемого средством 102 управления уведомлениями, и ответ на опрос со стороны средства 102 управления уведомлениями.

В ответ на это средство 102 управления уведомлениями обращается к карте 110, чтобы идентифицировать все программы-запросчики 108, которые представили запросы регистрации, касающиеся оповещающей программы-уведомителя (этап 410). Также на этапе 410 средство 102 управления затем переходит к активированию идентифицированных программ-запросчиков, например, посредством загрузки их в память, и также передает активированным программам-запросчикам индикацию события, которое произошло.

На этапе 412 средство 102 управления уведомлениями отслеживает активированную программу-запросчик, и когда программа-запросчик становится неактивной, средство 102 управления уведомлениями деактивирует ее посредством выгрузки ее из памяти, прерывая или, иначе, завершая программу. Если программа-запросчик регистрируется с параметрами уведомления, которые включают состояние "остаться резидентной", то средство 102 управления уведомлениями прерывает деактивирование, таким образом давая возможность программе продолжить ее выполнение.

Другие варианты осуществления

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

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

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

3. Способ по п.1, дополнительно включающий в себя этап, на котором определяют для каждой активированной программы-запросчика, представила ли она запрос на то, чтобы оставаться резидентной, и если такой запрос не был представлен, то деактивируют эту программу-запросчик.

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

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

6. Способ по п.4, в котором операцию представления выполняют посредством программ-запросчиков.

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

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

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

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

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

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

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

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

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

16. Устройство по п.14, в котором по меньшей мере одно предпочтение уведомления содержит заранее определенный параметр уведомления.

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

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

19. Устройство по п.17, в котором упомянутое условие представляет собой условие нахождения в резидентном состоянии.

20. Устройство по п.14, в котором средство управления уведомлениями дополнительно выполнено с возможностью, в качестве реакции на каждый принятый запрос регистрации, активирования программы-уведомителя, ассоциированной с соответствующим идентификатором программы-уведомителя.

21. Устройство по п.14, содержащее беспроводной телефон, при этом упомянутое множество программ-уведомителей содержит интерфейс прикладного программирования для телефонной связи, упомянутое множество событий содержит по меньшей мере одно из звонка беспроводного телефона, соединения беспроводного телефона с сетью и приема беспроводным телефоном данных службы коротких сообщений.

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

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

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

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

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

27. Способ по п.22, дополнительно содержащий этап, на котором активируют программу-уведомитель, соответствующую каждому соответствующему идентификатору программы-уведомителя.



 

Похожие патенты:

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

Изобретение относится к области вычислительной техники и предназначено для моделирования задач при проектировании ВС. .

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

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

Изобретение относится к области вычислительной техники и может быть использовано в автоматизированных системах управления. .

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

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

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

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

Изобретение относится к аутентификации в системе связи

Изобретение относится к локальным сетям

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

Изобретение относится к автоматике и вычислительной технике и может найти применение при построении распределенных систем программного управления технологическими процессами, роботами и робототехническими комплексами, а также подсистем логического управления многоуровневых иерархических АСУ и мультипроцессорных систем широкого класса

Изобретение относится к области вещания медиаконтента в сети, в частности к системе приема и системе условного доступа для нее

Изобретение относится к вычислительной технике и предназначено для использования в качестве рациональной информационной технологии при построении локальной сети

Изобретение относится к компьютерной защите и, более конкретно, к управлению подключением к компьютерным приложениям и управлению передачей данных посредством использования заранее определенных сетевых зон к сетям с изменяющимися свойствами

Изобретение относится к представлению приложения удаленной терминальной службой (TS)
Наверх