СИСТЕМА И СПОСОБ УПРАВЛЕНИЯ ОПОВЕЩЕНИЯМИ
SYSTEM AND METHOD FOR MANAGING NOTIFICATIONS

Область техники
[1] Настоящее изобретение относится к системам и способам управления оповещениями, обеспечивающим эффективную и быструю идентификацию событий и изменений данных в базах данных, цифровых файлах, документах и др. Настоящее изобретение может использоваться в корпоративных информационных системах для организации взаимодействия с иными системами.
Уровень техники
[2] Корпоративные информационные системы обычно работают во взаимодействии с иными системами. Для обеспечения согласованности между ними необходима координация, что, в свою очередь, требует, чтобы каждая из систем реагировала на внешние события. В связи с этим, практически в любой корпоративной информационной системе используются компоненты, управляемые событиями.
[3] События можно разделить на 2 класса: явно инициируемые именованные события, в т.ч. параметризованные, и события, связанные с изменением данных. В рамках настоящего изобретения рассматривается вариант событий, порождаемых изменениями данных.
[4] Изменения данных могут быть как атомарными, когда обрабатывается событие изменения одной записи конкретного типа, так и комплексными, когда событие инициируется только в случае комплексного изменения определенного набора взаимосвязанных данных. В большинстве информационных систем присутствует функциональность обработки событий создания, изменения и удаления единичной записи, например, триггеры в системах управления базами данных. Однако, многие бизнес-события сложно описываются подобными изменениями. Например, изменение данных другими пользователями и системами влечет необходимость обновления части интерфейса пользователя, однако интерфейс обычно выстроен иерархически и наблюдать нужно не за фиксированным объектом, а за тем объектом, который является «текущим», т. е. является результатом цепочки ссылок от корневого объекта.
[5] Для мониторинга только части событий, связанных с изменением фиксированных объектов, подобный подход, т.е. отслеживание цепочки ссылок от корневого объекта, приводит к сложному многоуровневому коду, который к тому же требуется аккуратно изменять при внесении изменений в интерфейс пользователя.
[6] Известно решение, описываемое в патенте US9292587B2 (опубл. 22.03.2016; МПК: G06F 17/30). В нем представлены системы и способы для предоставления удаленному приложению уведомлений об изменениях, внесенных в таблицу базы данных. Система и способы управляют уведомлением об изменении таблицы в базе данных, уведомляя приложение, сконфигурированное для получения уведомлений об изменениях, внесенных в таблицу базы данных. Менеджер базы данных, выполняющийся на устройстве, может принимать запрос на регистрацию приложения, которое будет уведомлено при изменении первой таблицы из множества таблиц в базе данных. Менеджер базы данных может установить таблицу уведомлений, содержащую поля первой таблицы и одно или несколько дополнительных полей для управления уведомлением. Менеджер базы данных может установить триггер для первой таблицы, чтобы вызвать процедуру триггера для копирования измененной строки первой таблицы в таблицу уведомлений. Менеджер базы данных может создать правило для таблицы уведомлений, чтобы уведомлять зарегистрированные приложения, когда в таблицу уведомлений вставляется новая строка. Первым недостатком аналога при этом является то, что в нем производится мониторинг всей совокупности изменений в базе данных, что замедляет работу системы. Второй недостаток заключает в том, что в аналоге оповещение происходит по поводу каждого изменения в таблице базы данных.
[7] В изобретении по патенту US7836031B2 (опубл. 16.11.2010; МПК: G06F 7/00; G06F 17/00) описываются системы и способы использования механизма на основе триггера для обнаружения изменений в таблице базы данных, предоставления уведомления при изменении таблицы базы данных и регистрации для получения уведомления. Системы и способы используют таблицу «слушателей» для хранения информации, связанной с зарегистрированными таблицами базы данных. После изменения таблицы базы данных механизм триггера, связанный с изменением базы данных, облегчает поиск в таблице «слушателей» параметра, связанного с измененной таблицей базы данных. Если измененная таблица базы данных зарегистрирована, информация из таблицы «слушателей» предоставляется службе доставки, которая передает сообщение, указывающее на изменение зарегистрированной таблицы базы данных. После получения сообщения служба времени выполнения уведомлений может направить уведомление клиенту(-ам), зарегистрированному(-ым) для получения уведомления. Одно из отличий аналога от настоящего изобретения заключается в том, что в аналоге предусмотрен этап регистрации таблицы для последующего получения уведомлений о ее изменении. В настоящем изобретении этот этап не требуется, т.к. предполагается, что изменения таблиц/файлов/документов изначально мониторят. Другим отличием является то, что в аналоге для внесения изменений в таблицу требуется запросить разрешение на внесение изменений в таблицу. В настоящем изобретении изначально определен список лиц, имеющих доступ к внесению изменений в таблицу/файл/документ, а также управляющий пользователь, которому будут приходить уведомления о внесении изменений. Первым недостатком аналога при этом является то, что в нем производится мониторинг всей совокупности изменений в базе данных, что требует дополнительных вычислительных мощностей сервера, а также создает излишние оповещения управляющего пользователя. Второй недостаток заключает в том, что в аналоге оповещение происходит по поводу каждого изменения в таблице базы данных, что также создает излишние оповещения
[8] Также известно изобретение по патенту US6617969B2 (опубл. 09.09.2003; МПК: G08B 23/00), в котором описываются способы и устройство для отправки сообщения уведомления в соответствии с набором предпочтений уведомления. Уведомляющее сообщение отправляется при обнаружении события или удовлетворении условия в отношении обнаруженного события. Набор предпочтений уведомлений может указывать желаемый носитель уведомления, через который должно быть отправлено сообщение уведомления, адресата уведомления, которому должно быть отправлено сообщение уведомления, и/или предпочтение времени уведомления, указывающее дату и/или время, в течение которых уведомление должно быть отправлено (или получено). Первым недостатком аналога при этом является то, что в нем производится мониторинг всей совокупности изменений в базе данных, что требует дополнительных вычислительных мощностей сервера, а также формирует оповещения управляющего пользователя обо всех изменениях. Второй недостаток заключает в том, что в аналоге оповещение происходит по поводу каждого изменения в таблице базы данных, что также создает излишние оповещения в системе.
[9] В изобретении по патенту US9591059B2 (опубл. 07.03.2017; МПК: H04L 29/08; G06F 17/30) описывается устройство для уведомления об изменении файла, включающее в себя модуль создания уведомления, который создает на первом локальном узле сообщение с уведомлением об изменении файла в ответ на создание, удаление и/или изменение клиентом элемента файловой системы, адресованного через путь к файлу. Первый локальный узел уведомляет связанные локальные клиентские процессы, представляющие клиентов, подключенных к первому локальному узлу и помеченных для получения информации об изменении файла. Устройство включает в себя модуль идентификации узла, который проверяет глобальный узел на наличие вторых локальных узлов, помеченных для получения информации об изменении файла для пути к файлу, и модуль распространения уведомлений, который в ответ отправляет сообщение уведомления об изменении файла от первого локального узла вторым локальным узлам. до получения идентификации вторых локальных узлов. Второй локальный узел уведомляет связанные локальные клиентские процессы, представляющие клиентов, подключенных ко второму локальному узлу и помеченных для получения информации об изменении пути к файлу. Первым недостатком аналога при этом является то, что в нем производится мониторинг всей совокупности изменений в базе данных, тогда так в настоящем изобретении производится мониторинг определенных записей в файлах, причем список проверяемых записей формируется автоматически на основе выражения. Это позволяет значительно уменьшить вычислительные мощности сервера, а также не оповещать управляющего пользователя обо всех изменениях. Второй недостаток заключает в том, что в аналоге для получения оповещения необходимо отправить запрос на получение оповещения. В настоящем изобретении сервер принимает решение о том, какие оповещения и в каком виде присылать управляющему пользователю. Это позволяет оповещать управляющего пользователя только о существенных изменениях, а не обо всех. Главным отличием настоящего изобретения от аналога является то, что аналог предназначен только для мониторинга изменений в файлах системы NAS, а также для отправления уведомлений об этих изменениях. (NAS (англ. Network Attached Storage) — сервер хранения данных на файловом уровне). В настоящем изобретении могут мониторить изменения в любых видах файлов/документов/таблиц, в том числе таблиц баз данных.
[10] В заявке на изобретение US20140195476A1 (опубл. 10.07.2014; МПК: G06F 17/30) описывается реализуемый на компьютере способ генерации уведомления об обновлении базы данных в памяти, включающий: обнаружение события базы данных в памяти, которое вставляет, удаляет или изменяет первую запись в базе данных в памяти; выполнение первого триггера базы данных, который соответствует обнаруженному событию базы данных в памяти; идентификацию первого определения бизнес-события, которое отображается на выполненный первый триггер базы данных; и создание первого уведомления, которое соответствует идентифицированному первому определению бизнес-события, первое уведомление, сгенерированное для первого подписчика на идентифицированное первое определение бизнес-события. Первым недостатком аналога при этом является то, что в нем производится мониторинг всей совокупности изменений в базе данных, тогда так в настоящем изобретении производится мониторинг определенных записей в файлах, причем список проверяемых записей формируется автоматически на основе выражения. Это позволяет значительно уменьшить вычислительные мощности сервера, а также не оповещать управляющего пользователя обо всех изменениях. Второй недостаток заключает в том, что в аналоге оповещение происходит по поводу каждого изменения в таблице базы данных. В настоящем изобретении сервер принимает решение о том, какие оповещения и в каком виде присылать управляющему пользователю. Это позволяет оповещать управляющего пользователя только о существенных изменениях, а не обо всех.
Сущность изобретения
[11] Задачей заявляемого изобретения является создание и разработка системы и способа управления оповещениями, обеспечивающих эффективную и быструю идентификацию событий и изменений данных, а также создание быстрых оповещений на их основе.
[12] Технический результат, на достижение которого направлено заявляемое изобретение, заключается в обеспечении эффективности управления оповещениями, а также скорости отправки оповещений системе. Технический результат достигается в том числе, но не ограничиваясь, благодаря:
• описанию события мониторинга в виде выражения на языке выражений;
• мониторингу определенных объектов в базе данных, а не всех объектов;
• осуществлению мониторинга только по мере появления изменений в объектах;
• принятие управляющим сервером решения о том, какие оповещения и в каком виде присылать управляющему пользователю.
[13]  Более полно технический результат достигается благодаря системе управления оповещениями, включающей по крайней мере одно пользовательское устройство с интерфейсом, по крайней мере одну базу данных и сервер, подключенные друг к другу. При этом сервер включает по крайней мере один источник объектов, компонент оповещения, компонент расчета выражений и компонент сохранения. Компонент оповещения сконфигурирован с возможностью создания оповещений и включает сервис оповещений, анализатор объектов выражения оповещения, исполнитель оповещений. При этом сервис оповещений, анализатор объектов выражения оповещения и исполнитель оповещений взаимодействую друг с другом последовательно. Компонент расчета выражений сконфигурирован с возможностью мониторинга изменений объектов и включает по крайней мере один инициатор выражения, исполнитель выражения и список объектов для мониторинга. При этом список объектов для мониторинга взаимодействует с исполнителем оповещения, а по крайней мере один инициатор выражения взаимодействует с по крайней мере одним источником объектов и с исполнителем выражения. Компонент сохранения сконфигурирован с возможностью сохранения изменений в базе данных и включает модуль кэширования объектов и модуль сохранения объектов. При этом модуль кэширования объектов взаимодействует с исполнителем выражения и с модулем сохранения объектов, а модуль сохранения объектов взаимодействует с по крайней мере одной базой данных.
[14] При этом по крайней мере одно пользовательское устройство необходимо для внесения изменений в объекты базы данных и/или для получения оповещений об изменениях. Интерфейс необходим пользовательскому устройству для информирования пользователя пользовательского устройства о происходящем. По крайней мере одна база данных необходима для организации доступа севера и пользовательского устройства к объектам базы данных, а сервер необходим для оповещения пользователя пользовательского устройства об изменениях в базе данных и сохранения изменений в базе данных. При этом по крайней мере один источник объектов необходим для организации доступа сервера к базе данных. Компонент оповещения необходим для создания оповещений. При этом сервис оповещений необходим для непосредственного создания оповещений на основе внесенных изменений и определения типа оповещения, анализатор объектов выражения оповещения необходим для необходим для расчета оповещения и формирования списка используемых объектов. Исполнитель оповещения необходим для выполнения пользовательского программного кода, который должен выполниться при срабатывании оповещения. При этом сервис оповещений, анализатор объектов выражения оповещения и исполнитель оповещения должны последовательно взаимодействовать друг с другом для создания оповещения. Компонент расчета выражений необходим для мониторинга изменений объектов. То, что компонент расчета выражений включает по крайней мере один инициатор выражения, необходим для генерации выражения, который определяет изменение объекта. Исполнитель выражения необходим для вычисления результата выражения, а список объектов для мониторинга необходим для определения того, изменение каких объектов необходимо мониторить для создания оповещения. То, что список объектов для мониторинга взаимодействует с исполнителем оповещения, а по крайней мере один инициатор выражения взаимодействует с по крайней мере одним источником объектов и с исполнителем выражения, необходимо для непосредственного мониторинга изменений объектов. Компонент сохранения необходим для сохранения изменений в базе данных. Модуль кэширования, при этом, необходим для организации быстрого доступа к объектам, а модуль сохранения объектов необходим для записи в базу данных, выполнения необходимых проверок и передачи событий в разные сервисы, в том числе в оповещения. То, что при этом модуль кэширования объектов взаимодействует с исполнителем выражения и с модулем сохранения объектов, а модуль сохранения объектов взаимодействует с по крайней мере одной базой данных, необходимо для непосредственной организации возможности сохранения изменений объектов в базе данных.
[15] По крайней мере одна база данных при этом может быть размещена на сервере и/или являться внешней базой данных в зависимости от конкретного применения настоящей системы.
[16] В качестве по крайней мере одного инициатора выражения могут использовать прикладной код.
[17] Также в системе управления оповещения могут быть организованы дополнительные варианты взаимодействия ее компонент и элементов, которые будут обеспечивать выполнения дополнительного технического результата. Например, для проверки того, сработало ли оповещение, или для обновления списка объектов для мониторинга.
[18] Также технический результат достигается способом управления оповещениями, по которому сначала изменяют объект из базы данных, а затем создают событие оповещения в виде выражения. При этом, на этапе изменения объекта из базы данных: изменяют объект при помощи пользовательского устройства; генерируют выражение, определяющее изменение объекта; вычисляют результат выражения; хранят объекты, используемые выражением; и сохраняют изменения объекта в источнике объектов при помощи модуля сохранения объектов. На этапе создания оповещения: определяют тип оповещения при помощи сервиса оповещений; рассчитывают выражение оповещения для определенного типа оповещений; формируют список изменившихся объектов, используемых при расчете  выражения оповещения; исполняют оповещение; обновляют список объектов в списке объектов для мониторинга на основании рассчитанного выражения оповещения; и сохраняют изменения объекта в базе данных.
[19] При этом этап изменения объекта при помощи пользовательского устройства необходим для внесения изменения, на основе которого будет создано оповещение. Этап генерации выражения и вычисления результата выражения необходимы для изменения значения объектов, на основе которого будет производится расчет оповещения, а также для связи выражения с другими объектами, участвующими в расчете. Хранение объектов, используемых выражением, и сохранения изменения объекта в источнике объектов необходимы для создания списка объектов, связанных с оповещением. Этап определения типа оповещения необходим для определения того, быстрое это оповещение или нет, для последующего принятия решения о создании оповещения. Расчет выражения оповещения для определенного типа оповещений необходим для проверки, изменился ли результат выражения оповещения. Формирование списка изменившихся объектов необходим для сравнения его со списком объектов для мониторинга. Исполнение оповещения необходимо для непосредственного вывода оповещения на интерфейс пользовательского устройства. Обновление списка объектов в списке объектов для мониторинга на основании рассчитанного выражения необходим для последующего осуществления мониторинга объектами, в результате изменения которых может измениться значение выражения оповещения. Сохранение изменений объектов необходим для того, чтобы сохранить изменения, внесенные в объект пользователем, в базе данных.
[20] На этапе исполнения оповещения при помощи исполнителя оповещения дополнительно могут исполнять программный код, включающийся в оповещение. Это может быть нужно в случае, если оповещение включает дополнительный программный код, позволяющий реализовывать сложные сценарии реакции на оповещение.
[21] После этапа исполнения оповещения могут дополнительно проверять, было ли исполнено оповещение. Это могут реализовывать посредством передачи объектов из модуля сохранения объектов в список объектов для мониторинга, проверки наличия этого объекта в списке объектов для мониторинга и передачи оповещения в исполнитель оповещений. При этом, если оповещение по изменению этого объекта было исполнено, то могут передавать объект в сервис оповещений и визуализировать оповещение в пользовательском интерфейсе.
[22] После этапа исполнения оповещения также могут обновлять список объектов для мониторинга. Это могут делать посредством передачи объектов из модуля сохранения объектов в список объектов для мониторинга, передачи объекта анализатору объектов выражения оповещения и проверки того, изменился ли список объектов оповещения. В случае если список объектов изменился, то могут передавать новый список в список объектов для мониторинга и обновлять объект в списке объектов для мониторинга.
[23] При этом этапы проверки того, было ли исполнено оповещение, и обновления списка объектов для мониторинга могут производить параллельно для дополнительного ускорения процесса.
Описание чертежей
[24] На Фиг. 1 представлен схематичный вид системы управления оповещениями согласно настоящему изобретению.
[25] На Фиг. 2 представлен схематичный вид системы управления оповещениями с дополнительной возможностью проверки исполнения оповещения согласно настоящему изобретению.
[26] На Фиг. 3 представлен схематичный вид системы управления оповещениями с дополнительной возможностью обновления списка объектов для мониторинга согласно настоящему изобретению.
[27] На Фиг. 4 представлен схематичный вид системы управления оповещениями со всеми дополнительными возможностями согласно настоящему изобретению.
[28] На Фиг. 5 представлена блок-схема, иллюстрируются способ управления оповещениями, согласно настоящему изобретению.
[29] На Фиг. 6 представлена блок-схема, иллюстрирующая дополнительные этапы способа управления оповещениями, позволяющие реализовать проверку исполнения оповещения, согласно настоящему изобретению.
[30] На Фиг. 7 представлена блок-схема, иллюстрирующая дополнительные этапы способа управления оповещениями, позволяющие реализовать обновления списка объектов для мониторинга, согласно настоящему изобретению.
[31] На Фиг. 8 представлена блок-схема, иллюстрирующая все дополнительные этапы способа управления оповещениями, согласно настоящему изобретению.
Подробное описание
[32] В приведенном ниже подробном описании реализации изобретения приведены многочисленные детали реализации, призванные обеспечить отчетливое понимание настоящего изобретения. Однако, квалифицированному в предметной области специалисту очевидно, каким образом можно использовать настоящее изобретение, как с данными деталями реализации, так и без них. В других случаях, хорошо известные методы, процедуры и компоненты не описаны подробно, чтобы не затруднять излишнее понимание особенностей настоящего изобретения.
[33] Кроме того, из приведенного изложения ясно, что изобретение не ограничивается приведенной реализацией. Многочисленные возможные модификации, изменения, вариации и замены, сохраняющие суть и форму настоящего изобретения, очевидны для квалифицированных в предметной области специалистов.
1
110
2
3
2
210
220
230
240
220
221
222
223
230
231
232
233
241
242
3
210
110
110
210
110
221
222
222
223
223
230
210
231
231
232
232
241
242
242
3
3
[34] На Фиг. 1 схематично представлена система управления оповещениями, сконфигурированная с возможностью изменения объектов и создания оповещений, согласно настоящему изобретению. Система включает по крайней мере одно пользовательское устройство  с интерфейсом , сервер  и по крайней мере одну базу данных . Сервер , в свою очередь, включает по крайней мере один источник объектов , компонент оповещения , компонент расчета выражений  и компонент сохранения . Компонент оповещения  включает сервис оповещений , анализатор объектов выражения оповещения  и исполнитель оповещения . Компонент расчета выражений  включает инициатор выражения , исполнитель выражения  и список объектов для мониторинга . А компонент сохранения включает модуль кэширования объектов  и модуль сохранения объектов . При этом база данных  взаимодействует с источником объектов , который, в свою очередь, взаимодействует с интерфейсом . При помощи интерфейса  возможно изменять объекты из по крайней мере одного источника объектов . Триггер о произошедшем изменении при помощи интерфейса  посылают во взаимодействующий с ним сервис оповещений , который взаимодействует с анализатором выражения объектов оповещения . Анализатор объектов выражения оповещения взаимодействует с исполнителем оповещения , а исполнитель оповещения  – со списком объектов для мониторинга . По крайней мере один источник объектов  взаимодействует с инициатором выражения . Инициатор выражения  взаимодействует с исполнителем выражения , а исполнитель выражения  – с модулем кэширования объектов , который в свою очередь, взаимодействует с модулем сохранения объектов . Модуль сохранения объектов  взаимодействует с по крайней мере одной базой данных , что замыкает цепочку взаимодействия элементов системы управления оповещениями. Данная конфигурация системы позволяет изменять объекты из базы данных  и создавать оповещения, основанные на внесенных изменениях.
1
1
[35] По крайней мере одно пользовательское устройство  может являться любой электронной вычислительной машиной (ЭВМ), сконфигурированной с возможностью выхода в Интернет и включающей память и процессор. Например, это может быть настольная ЭВМ такая, как персональный компьютер (ПК), домашний компьютер, моноблок, Plug PC (Plug Personal Computer), игровой компьютер. Также это может быть интернет-устройством, например, нетбуком, интернет-планшетом, планшетным нетбуков, неттопом. Также пользовательской устройство  может являться малой и/или мобильной ЭВМ, например, мобильным интернет-устройством, карманным ПК, ноутбуком, смартфоном и др.
110
1
1
2
1
1
[36] Интерфейс  пользовательского устройства  представляет собой границу между двумя функциональными объектами (пользовательским устройством и сервером ), требования к которой определяются стандартом; совокупность средств, методов и правил взаимодействия (управления, контроля и т. д.) между элементами системы. При этом, интерфейс может использоваться как элемент пользовательского устройства , например, дисплей, набор кнопок и переключателей для настройки плюс правила управления ими, относящиеся к человека-машинному интерфейсу. Также могут использоваться клавиатура, мышь и пр. устройства ввода, являющиеся элементами интерфейса «человек — компьютер». Также оба вида интерфейсов могут использоваться в сочетании друг с другом.
2
2
[37] Сервер  является одним из аппаратного обеспечения систему управления оповещениями. Он  может представлять собой выделенный или специализированный компьютер для выполнения сервисного программного обеспечения. Серверное (сервисное) программное обеспечение – это программный компонент вычислительной системы, выполняющий сервисные (обслуживающие) функции по запросу клиента, предоставляя ему доступ к определённым ресурсам или услугам.
2
210
210
3
2
1
3
[38] Сервер в рамках настоящего изобретения включает по крайней мере один источник объектов . Он  используется для связи объектов из базы данных  с сервером  и пользовательским устройством . Цифровой объект — объект, состоящий из структурированной последовательности байтов, имеющий название, уникальный идентификатор и атрибуты, описывающие его свойства. В рамках настоящего изобретения под цифровым объектом понимается любой документ, файл, таблица или какие-либо их компоненты, размещенные в цифровой среде. В предпочтительном варианте под объектом понимается элемент из базы данных .
220
220
221
3
[39] Компонент оповещений  предназначен для непосредственного создания оповещений. То, что он  включает сервис оповещений , позволяет определять тип оповещения. Оповещение – это автоматическое создание события при изменении значения выражения на языке выражений в результате изменения одного из объектов, участвующих в расчете значения выражения. Они делятся на два типа: быстрые и стандартные. Быстрые оповещения – это оповещения, для обработки которых не требуется циклический пересчет выражения оповещения. Для стандартных оповещений требуется регулярный пересчет. Стандартное оповещение вычисляется при работе процессов приложения через определённые промежутки времени.  Объекты будут обновляться при пересчёте основного выражения оповещения формы, или дополнительного оповещения (если оно задано). Например, основное выражение для атрибута Атрибут1 может быть задано как Кредит.Клиент, а дополнительное как Кредит.Клиент.Возраст. В этом случае, при изменении значения возраста клиента, все элементы формы, зависящие от атрибута Атрибут1 будут обновлены. Идентификатор представляет собой «координаты» объекта в базе данных .
[40] Чтобы оповещение было быстрым, необходимо, чтобы выражение оповещения удовлетворяло следующему списку требований: в нем должны использоваться только функции, поддерживающиеся в быстрых оповещениях и в нем должны получать значения атрибутов контекстного типа. При этом атрибуты должны быть неколлекционными, и, в случае атрибутов формы, хранимыми. Допускается получение значения цепочки хранимых атрибутов, например, оповещение Клиент.Договор.Статус, получающая значение хранимого атрибута формы Клиент (ссылка на тип Клиент) будет быстрой.
[41] Выражение представляет собой текст на языке выражений, который может быть рассчитан (исполнен). При этом в процессе расчета могут использоваться и изменяться значения атрибутов объектов. Оповещения, в свою очередь, являются сущностью, которая содержит в себе выражение и предназначено для уведомления создателя оповещения о том, что значение этого выражения изменилось. Такие выражения так именуются в тексте «выражения оповещения». Все прочие выражения, которые отправляются на исполнение прочими компонентами системы и генерируют изменения объектов именуются как «выражение».
222
233
[42] Анализатор объектов выражения оповещения  при создании нового экземпляра оповещения рекурсивно обрабатывает выражение, как при расчете его значения, но кроме непосредственно расчета формирует список объектов, которые были использованы при расчете выражения. Эти объекты попадают в список объектов для мониторинга .
223
223
110
[43] Исполнитель оповещения  является исполнительным адаптером, предназначенным для исполнения самого оповещения. Также он  может содержать пользовательский программный код, который должен выполниться при срабатывании оповещения. Результатом срабатывания оповещения может быть как обновление некоторых частей пользовательского интерфейса , которые явно помечены, как зависящие от оповещения, так и исполнение произвольного программного кода, что позволяет реализовывать сложные сценарии реакции на оповещение.
221
222
223
[44] При этом последовательное взаимодействие сервиса оповещений , анализатора объектов выражения оповещения  и исполнителя оповещения  позволяет создавать оповещение, определять его тип, связанные с оповещением объекты и их идентификаторы, а также непосредственно исполнять оповещение.
230
233
231
232
233
[45] Компонент расчета выражений  представляет собой слой проверки изменений объектов. При любом изменении объектов каким-либо способом — через интерфейс пользователя или автоматизированными обработчиками данных — все изменяемые или удаляемые объекты проверяются на то, включены ли они в список объектов для мониторинга . Он включает по крайней мере один инициатор выражений , исполнитель выражений  и список объектов для мониторинга .
231
232
233
[46] Инициатор выражений  предназначен для генерации выражений, соответствующего изменению объектов. Исполнитель выражений представляет собойвычислитель выражения оповещения, который проверяет, изменился ли результат выражения оповещения, а также формирует новый список объектов, которые участвовали в расчете выражения оповещения. Список объектов для мониторинга , в свою очередь, хранит идентификаторы объектов, которые необходимо проверять при изменении, а также карту соответствия объекта и списка оповещений, которые от него зависят.
223
233
233
232
231
232
[47] При этом исполнитель оповещений  взаимодействует со списком объектов для мониторинга  для проверки того, включен ли объект, по которому должно быть исполнено оповещение, в список объектов для мониторинга . А инициатор выражений  взаимодействует с по крайней мере одним источником объектов  для того, чтобы детектировать изменения объектов для последующего создания события оповещения, связанного с объектом, а с исполнителем выражения – для передачи ему выражения с целью последующего вычисления значения выражения.
240
3
241
[48] Компонент сохранения  при этом предназначен для сохранения изменений объектов из базы данных . Модуль кэширования объектов  может осуществлять временное хранение изменений. В сфере вычислительной обработки данных кэш – это высокоскоростной уровень хранения, на котором требуемый набор данных, как правило, временного характера. Доступ к данным на этом уровне осуществляется значительно быстрее, чем к основному месту их хранения. С помощью кэширования становится возможным эффективное повторное использование ранее полученных или вычисленных данных.
242
3
242
3
[49] При этом изменения объектов также может осуществляться модулем сохранения объектов , подключенному к по крайней мере одной базе данных . Он  записывает в базу данных , выполняя необходимые проверки и передачу событий в разные сервисы, в том числе в оповещения.
1
231
232
241
242
210
221
222
222
223
223
223
242
3
[50] Система управления оповещениями, показанная на Фиг. 1, работает следующим образом. Сначала осуществляют изменения объекта при помощи пользовательского устройства . Изменение, как триггерное событие, посылается в инициатор выражений , который генерирует выражение, определяющее изменение объекта. Затем сгенерированное выражение посылают в исполнитель выражений , при помощи которого, в свою очередь, вычисляют результат выражения. После этого объекты, которые были использованы в ходе вычисления выражения, посылают в модуль кэширования объектов , в котором производят временное хранение объектов с изменениями, а затем их передают в модуль сохранения объектов , который, в свою очередь, сохраняет измененные объекты в источнике объектов . Одновременно с изменением объекта также производится создание события оповещения об этом изменении. При помощи сервиса оповещений  определяют тип оповещения, как это было описано выше. Для определенного типа оповещений, а именно для быстрых оповещений, далее рассчитывают выражение при помощи анализатора объектов выражения оповещения . На этом этапе формируют список объектов, которые были использованы при расчете выражения оповещения также при помощи анализатора объектов выражения оповещения . Список состоит из изменившихся объектов, использованных при расчете выражения оповещения. После этого исполняют оповещения при помощи исполнителя оповещения . Исполнитель оповещения , помимо самого оповещения, также может исполнить программный код, который может быть включен в исполнитель оповещения . После этого сохраняют изменения объекта при помощи модуля сохранения объектов  в базе данных .
[51] На Фиг. 2 изображен схематичный вид системы управления оповещениями с дополнительной возможностью проверки исполнения оповещения согласно настоящему изобретению. Возможность проверки исполнения оповещений является дополнительным техническим результатам в рамках настоящего изобретения, который может быть достигнут посредством добавления дополнительных вариантов взаимодействия элементов системы управления оповещениями, показанных на Фиг. 2. При этом для достижения одновременного дополнительного и основного технических результатов вышеописанные и нижеописанные взаимодействия должны использоваться в сочетании.
242
233
3
242
233
233
233
[52] Модуль сохранения объектов  может дополнительно взаимодействовать со списком объектов для мониторинга . Это может быть нужно для того, что передавать объекты, сохраненные в базе данных  модулем сохранения объектов , в список объектов для мониторинга . При помощи списка объектов для мониторинга  при этом проверяют наличие этого объекта в списке .
233
223
233
223
233
223
[53] Список объектов для мониторинга , в свою очередь, может взаимодействовать с исполнителем оповещения . Таким образом, список объектов для мониторинга  передает исполнителю оповещения  информацию о том, присутствует ли этот объект в списке , а также сам объект. Он  проверяет, было ли исполнено оповещение по изменению этого объекта.
223
221
221
110
223
221
110
221
[54] Исполнитель оповещений  может дополнительно взаимодействовать с сервисом оповещений , а сервис оповещений  взаимодействует с интерфейсом . В таком случае, если оповещения по изменению объекта было исполнено, передают объект от исполнителя оповещений  в сервис оповещений , а затем в интерфейс , в котором визуализируют оповещение при помощи сервиса оповещений .
223
[55] Сама визуализация оповещения может подразумевать под собой изменение визуального воплощения объектов, т.е. само внесенное изменение, а также некоторое всплывающее окно с оповещением об изменении. Эти варианты визуализации оповещения могут использоваться как по отдельности, так и в сочетании. При этом, если в исполнителе оповещений  содержится дополнительный пользовательский программный код, могут проводить визуализацию оповещения различными сложными сценариями. Например, оповещения может включать функциональные элементы такие, как кнопки, поля ввода и др. Таким образом, будут реализованы различные способы реакции пользователя на оповещения. Например, он может отменить изменение, принять его, отправить запрос на проверку корректности внесенных изменений и др.
223
242
233
233
233
223
221
110
221
[56] Часть системы управления оповещениями, показанная на Фиг. 2, работает следующим образом. После этапа исполнения оповещения исполнителем оповещений  проверяют, исполнено ли оповещение. При этом передают объекты из модуля сохранения объектов  в список объектов для мониторинга . При помощи списка объектов для мониторинга  проверяют наличие этого объекта в списке  и передают информацию о наличии/отсутствии объекта в списке, а также сам объект (точнее, его идентификатор) в исполнитель оповещений . Если оповещение по изменению этого объекта было исполнено, то передают объект в сервис оповещений , а затем визуализируют оповещение в пользовательском интерфейсе  при помощи сервиса оповещений .
1
231
232
241
242
210
221
222
222
223
223
223
242
3
223
242
233
233
233
223
221
110
221
[57] Система управления оповещениями, показанная на Фиг. 1, в сочетании с дополнительными взаимодействиями, показанными на Фиг. 2, работает следующим образом. Сначала осуществляют изменения объекта при помощи пользовательского устройства . Изменение, как триггерное событие, посылается в инициатор выражений , который генерирует выражение, определяющее изменение объекта. Затем сгенерированное выражение посылают в исполнитель выражений , при помощи которого, в свою очередь, вычисляют результат выражения. После этого объекты, которые были использованы в ходе вычисления выражения, посылают в модуль кэширования объектов , в котором производят временное хранение объектов с изменениями, а затем их передают в модуль сохранения объектов , который, в свою очередь, сохраняет измененные объекты в источнике объектов . Одновременно с изменением объекта также производится создание события оповещения об этом изменении в ссылки на оповещение. При помощи сервиса оповещений  определяют тип оповещения, как это было описано выше. Для определенного типа оповещений, а именно для быстрых оповещений, далее рассчитывают выражение при помощи анализатора объектов выражения оповещения . На этом этапе формируют список объектов, которые были использованы при расчете выражения оповещения также при помощи анализатора объектов выражения оповещения . Список состоит из изменившихся объектов, использованных при расчете выражения оповещения. После этого исполняют оповещения при помощи исполнителя оповещения . Исполнитель оповещения , помимо самого оповещения, также может исполнить программный код, который может быть включен в исполнитель оповещения . После этого сохраняют изменения объекта при помощи модуля сохранения объектов  в базе данных . После этапа исполнения оповещения исполнителем оповещений  также проверяют, исполнено ли оповещение. При этом передают объекты из модуля сохранения объектов  в список объектов для мониторинга . При помощи списка объектов для мониторинга  проверяют наличие этого объекта в списке  и передают информацию о наличии/отсутствии объекта в списке, а также сам объект (точнее, его идентификатор) в исполнитель оповещений . Если оповещение по изменению этого объекта было исполнено, то передают объект в сервис оповещений , а затем визуализируют оповещение в пользовательском интерфейсе  при помощи сервиса оповещений .
233
233
[58] На Фиг. 3 изображен схематичный вид системы управления оповещениями с дополнительной возможностью обновления списка объектов для мониторинга  согласно настоящему изобретению. Возможность обновления списка объектов для мониторинга  является дополнительным техническим результатам в рамках настоящего изобретения, который может быть достигнут посредством добавления дополнительных вариантов взаимодействия элементов системы управления оповещениями, показанных на Фиг. 3. При этом для достижения одновременного дополнительного и основного технических результатов варианты взаимодействия, показанные на Фиг. 1, и нижеописанные взаимодействия должны использоваться в сочетании.
242
233
233
[59] Как показано на Фиг. 3, модуль сохранения объектов  может взаимодействовать со списком объектов для мониторинга . Это может быть необходимо для проверки того, содержатся ли сохраненные объекты в списке .
233
222
[60] Список объектов для мониторинга  может дополнительно взаимодействовать с анализатором объектов выражения оповещения двусторонне. Это может быть необходимо для проверки того, изменился ли список объектов выражения оповещения.
223
233
242
233
233
233
222
222
233
233
[61] Часть системы управления оповещениями, показанная на Фиг. 3, работает следующим образом. После этапа исполнения оповещения исполнителем оповещений  обновляют список объектов для мониторинга . Для этого сначала передают объекты из модуля сохранения объектов  в список объектов для мониторинга . В нем  производится проверка того, содержатся ли сохраненные объекты в списке . После этого объект передают анализатору объектов выражения оповещения . При помощи анализатора  проверяют, изменился ли список объектов выражения оповещения. Если список объектов выражения оповещения изменился, то передают новый список в список объектов для мониторинга  и обновляют список  новым списком.
1
231
232
241
242
210
221
222
222
223
223
223
242
3
223
233
233
242
233
233
233
222
222
233
233
242
233
233
233
223
221
110
221
[62] Система управления оповещениями, показанная на Фиг. 1, в сочетании с дополнительными взаимодействиями, показанными на Фиг. 3, работает следующим образом. Сначала осуществляют изменения объекта при помощи пользовательского устройства . Изменение, как триггерное событие, посылается в инициатор выражений , который генерирует выражение, определяющее изменение объекта. Затем сгенерированное выражение посылают в исполнитель выражений , при помощи которого, в свою очередь, вычисляют результат выражения. После этого объекты, которые были использованы в ходе вычисления выражения, посылают в модуль кэширования объектов , в котором производят временное хранение объектов с изменениями, а затем их передают в модуль сохранения объектов , который, в свою очередь, сохраняет измененные объекты в источнике объектов . Одновременно с изменением объекта также производится создание события оповещения об этом изменении в виде ссылки на оповещение. При помощи сервиса оповещений  определяют тип оповещения, как это было описано выше. Для определенного типа оповещений, а именно для быстрых оповещений, далее рассчитывают выражение оповещения при помощи анализатора объектов выражения оповещения . На этом этапе формируют список объектов, которые были использованы при расчете оповещения также при помощи анализатора объектов выражения оповещения . Список состоит из изменившихся объектов, использованных при расчете выражения оповещения. После этого исполняют оповещения при помощи исполнителя оповещения . Исполнитель оповещения , помимо самого оповещения, также может исполнить программный код, который может быть включен в исполнитель оповещения . После этого сохраняют изменения объекта при помощи модуля сохранения объектов  в базе данных . После этапа исполнения оповещения исполнителем оповещений  также обновляют список объектов для мониторинга и параллельно проверяют, было ли исполнено оповещение. Для обновления списка объектов для мониторинга  сначала передают объекты из модуля сохранения объектов  в список объектов для мониторинга . В нем  производится проверка того, содержатся ли сохраненные объекты в списке . После этого объект передают анализатору объектов выражения оповещения . При помощи анализатора  проверяют, изменился ли список объектов выражения оповещения. Если список объектов выражения оповещения изменился, то передают новый список в список объектов для мониторинга  и обновляют список  новым списком. Проверка исполнения оповещения при этом производится следующим образом. Передают объекты из модуля сохранения объектов  в список объектов для мониторинга . При помощи списка объектов для мониторинга  проверяют наличие этого объекта в списке  и передают информацию о наличии/отсутствии объекта в списке, а также сам объект (точнее, его идентификатор) в исполнитель оповещений . Если оповещение по изменению этого объекта было исполнено, то передают объект в сервис оповещений , а затем визуализируют оповещение в пользовательском интерфейсе  при помощи сервиса оповещений .
1
231
232
241
242
210
221
222
222
223
223
223
242
3
223
233
242
233
233
233
222
222
233
233
[63] При этом варианты взаимодействия элементов системы управления оповещениями, показанные на Фиг. 1, Фиг. 2 и Фиг. 3, могут использоваться в сочетании, как это показано на Фиг. 4. Сначала осуществляют изменения объекта при помощи пользовательского устройства . Изменение, как триггерное событие, посылается в инициатор выражения , который генерирует выражение, определяющее изменение объекта. Затем сгенерированное выражение посылают в исполнитель выражений , при помощи которого, в свою очередь, вычисляют результат выражения. После этого объекты, которые были использованы в ходе вычисления выражения, посылают в модуль кэширования объектов , в котором производят временное хранение объектов с изменениями, а затем их передают в модуль сохранения объектов , который, в свою очередь, сохраняет измененные объекты в источнике объектов . Одновременно с изменением объекта также производится создание события оповещения об этом изменении в виде ссылки на оповещение. При помощи сервиса оповещений  определяют тип оповещения, как это было описано выше. Для определенного типа оповещений, а именно для быстрых оповещений, далее рассчитывают выражение оповещения при помощи анализатора объектов выражения оповещения . На этом этапе формируют список объектов, которые были использованы при расчете выражения оповещения также при помощи анализатора объектов выражения оповещения . Список состоит из изменившихся объектов, использованных при расчете выражения оповещения. После этого исполняют оповещение при помощи исполнителя оповещения . Исполнитель оповещения , помимо самого оповещения, также может исполнить программный код, который может быть включен в исполнитель оповещения . После этого сохраняют изменения объекта при помощи модуля сохранения объектов  в базе данных . После этапа исполнения оповещения исполнителем оповещений  также обновляют список объектов для мониторинга . Для этого сначала передают объекты из модуля сохранения объектов  в список объектов для мониторинга . В нем  производится проверка того, содержатся ли сохраненные объекты в списке . После этого объект передают анализатору объектов выражения оповещения . При помощи анализатора  проверяют, изменился ли список объектов выражения оповещения. Если список объектов оповещения изменился, то передают новый список в список объектов для мониторинга  и обновляют список  новым списком.
3
2
[64] База данных , являющаяся частью системы управления оповещениями, может быть как размещена на сервере , так и являться внешней базой данных. При этом могут также использоваться внешние базы данных и базы данных, размещенные на сервере в сочетании. Их может быть любое количество, в зависимости от конкретного воплощения системы и нужд.
231
[65] В качестве по крайней мере одного инициатора выражения  может использоваться прикладной код (формы). Также могут использоваться процессы и веб-сервисы.
110
1
1
1
[66] Интерфейс  пользовательского устройства  может быть реализован любым человекочитаемым способом, т.е. в виде любого человеко-машинного интерфейса. Например, с помощью интерфейса командной строки. Интерфейс командной строки – это интерфейс пользователя, реализованный с помощью набирания пользователем текста команд и чтения текста ответов. Также может использоваться жестовый интерфейс, позволяющий пользователю взаимодействовать с ЭВМ (отдавать ей команды) при помощи жестов. В этом случае, также стоит предусмотреть включение в пользовательское устройство  камеры и/или веб-камеры, способной распознавать движения человека. Также возможна реализация голосового интерфейса, при помощи которого команды отдаются голосом. В этом случае, к пользовательскому устройству  должен быть подключен также микрофон. Наиболее предпочтительным вариантом является использование графического интерфейса пользователя. Он реализуется посредством формирования графических изображений и манипулирования ими.
1
231
232
241
242
210
221
222
222
223
223
223
242
3
[67]  На Фиг. 5 изображена блок-схема, иллюстрирующая способ управления оповещениями, согласно которому работает система управления оповещениями, показанная на Фиг. 1. Сначала осуществляют изменения объекта при помощи пользовательского устройства . Изменение, как триггерное событие, посылается в инициатор выражения , который генерирует выражение, определяющее изменение объекта. Затем сгенерированное выражение посылают в исполнитель выражений , при помощи которого, в свою очередь, вычисляют результат выражения. После этого объекты, которые были использованы в ходе вычисления выражения, посылают в модуль кэширования объектов , в котором производят временное хранение объектов с изменениями, а затем их передают в модуль сохранения объектов , который, в свою очередь, сохраняет измененные объекты в источнике объектов . Одновременно с изменением объекта также производится создание события оповещения об этом изменении в виде ссылки на оповещение. При помощи сервиса оповещений  определяют тип оповещения, как это было описано выше. Для определенного типа оповещений, а именно для быстрых оповещений, далее рассчитывают выражение оповещения при помощи анализатора объектов выражения оповещения . На этом этапе формируют список объектов, которые были использованы при расчете выражения оповещения также при помощи анализатора объектов выражения оповещения . Список состоит из изменившихся объектов, использованных при расчете выражения оповещения. После этого исполняют оповещения при помощи исполнителя оповещения . Исполнитель оповещения , помимо самого оповещения, также может исполнить программный код, который может быть включен в исполнитель оповещения . После этого сохраняют изменения объекта при помощи модуля сохранения объектов  в базе данных .
1
[68] Этап изменения объекта при помощи пользовательского устройства  может подразумевать изменение его визуального воплощения, изменение данных, содержащихся в объекте и др. Это может производится посредством дополнительных устройств ввода, например, посредством компьютерной мыши, клавиатуры и других устройств ввода, например, микрофона.
3
[69] Этап генерации идентификатора подразумевает анализ «координаты» объекта в базе данных . «Координата» – это идентификатор объекта. Идентификатор, как «координата» объекта, при этом также задает идентификатор оповещения.
232
241
210
[70] На этапе вычисления результата выражения оповещения, выражение, по сути, «распаковывают», определяя, какие объекты задействованы в расчете конкретного выражения. Например, выражение Клиент.Договор.Статус включает объекты: Статус, доступный по выражению Клиент.Договор.Статус, Договор, доступный по выражению Клиент.Договор, и Клиент, доступный по выражению Клиент. Для определения всей цепочки использованных объектов исполнитель выражений  рекурсивно вычисляет выражение, формируя при этом список использованных объектов. Список использованных объектов отправляют в модуль кэширования объектов  для возможности временного быстрого доступа к ним, а также сохраняют их в источнике объектов  для последующего создания оповещения.
[71] Определения типа оповещения подразумевает определение того, является оповещение быстрым или стандартным, на основании того, используются ли в нем только функции, поддерживающиеся в быстрых оповещениях, и на основании получения значения атрибутов контекстного типа, как это было описано ранее. При этом оповещения исполняют только для быстрых оповещений. В случае, если оповещение стандартное, то на этапе определения типа оповещения алгоритм завершает свою работу.
222
233
[72] Расчет выражения оповещения анализатором объектов выражения оповещения  при создании нового экземпляра оповещения подразумевает рекурсивную обработку выражения, как при расчете его значения, но кроме непосредственно расчета формирует список объектов, которые были использованы при расчете выражения. Эти объекты попадают в список объектов для мониторинга .
223
242
233
233
233
223
221
110
221
[73] На Фиг. 6 изображена блок-схема, иллюстрирующая дополнительные этапы способа управления оповещениями, обеспечивающие дополнительный технический результат, заключающийся в возможности проверке того, было ли исполнено оповещение. Согласно нему, после этапа исполнения оповещения исполнителем оповещений  проверяют, исполнено ли оповещение. При этом передают объекты из модуля сохранения объектов  в список объектов для мониторинга . При помощи списка объектов для мониторинга  проверяют наличие этого объекта в списке  и передают информацию о наличии/отсутствии объекта в списке, а также сам объект (точнее, его идентификатор) в исполнитель оповещений . Если событие оповещения по изменению этого объекта было исполнено, то передают объект в сервис оповещений , а затем визуализируют оповещение в пользовательском интерфейсе  при помощи сервиса оповещений .
223
233
242
233
233
233
222
222
233
233
233
[74] Также могут достигать и другого дополнительного технического результата посредством добавления этапов, показанных на Фиг. 7. После этапа исполнения оповещения исполнителем оповещений  обновляют список объектов для мониторинга . Для этого сначала передают объекты из модуля сохранения объектов  в список объектов для мониторинга . В нем  производится проверка того, содержатся ли сохраненные объекты в списке . После этого объект передают анализатору объектов выражения оповещения . При помощи анализатора  проверяют, изменился ли список объектов выражения оповещения. Если список объектов выражения оповещения изменился, то передают новый список в список объектов для мониторинга  и обновляют список  новым списком. Это позволяет обновлять список объектов для мониторинга , благодаря чему системе добавляется также бльшая автоматизированность.
223
223
[75] Также в любом из вариантов воплощения способа управления оповещениями могут дополнительно на этапе исполнения оповещения при помощи исполнителя оповещения  дополнительно исполняют программный код, включающийся в оповещение и/или в исполнительный адаптер, представляющий собой исполнитель оповещения . Как уже было описано ранее, это может позволить реализовывать сложные сценарии реакции на оповещение.
1
231
232
241
242
210
221
222
222
223
223
223
242
3
223
233
242
233
233
233
222
222
233
233
223
[76] Также дополнительные этапы, показанные на Фиг. 6 и Фиг. 7 и описанные выше, и основные этапы, показанные на Фиг. 5, могут использоваться в сочетании, образуя способ управления оповещениями, показанный на Фиг. 8. В этом случае, сначала осуществляют изменения объекта при помощи пользовательского устройства . Изменение, как триггерное событие, посылается в инициатор выражения , который генерирует выражение, определяющее изменение объекта. Затем сгенерированное выражение посылают в исполнитель выражений , при помощи которого, в свою очередь, вычисляют результат выражения. После этого объекты, которые были использованы в ходе вычисления выражения, посылают в модуль кэширования объектов , в котором производят временное хранение объектов с изменениями, а затем их передают в модуль сохранения объектов , который, в свою очередь, сохраняет измененные объекты в источнике объектов . Одновременно с изменением объекта также производится создание событии оповещения об этом изменении. При помощи сервиса оповещений  определяют тип оповещения, как это было описано выше. Для определенного типа оповещений, а именно для быстрых оповещений, далее рассчитывают выражение оповещения при помощи анализатора объектов выражения оповещения . На этом этапе формируют список объектов, которые были использованы при расчете выражения также при помощи анализатора объектов выражения оповещения . Список состоит из изменившихся объектов, использованных при расчете выражения оповещения. После этого исполняют оповещения при помощи исполнителя оповещения . Исполнитель оповещения , помимо самого оповещения, также может исполнить программный код, который может быть включен в исполнитель оповещения . После этого сохраняют изменения объекта при помощи модуля сохранения объектов  в базе данных . После этапа исполнения оповещения исполнителем оповещений  также обновляют список объектов для мониторинга . Для этого сначала передают объекты из модуля сохранения объектов  в список объектов для мониторинга . В нем  производится проверка того, содержатся ли сохраненные объекты в списке . После этого объект передают анализатору объектов выражения оповещения . При помощи анализатора  проверяют, изменился ли список объектов выражения оповещения. Если список объектов оповещения изменился, то передают новый список в список объектов для мониторинга  и обновляют список  новым списком. На этапе исполнения оповещения также исполняют программный код, включающийся в оповещение и/или в исполнитель оповещения .
[77] В настоящих материалах заявки представлено предпочтительное раскрытие осуществления заявленного технического решения, которое не должно использоваться как ограничивающее иные, частные воплощения его реализации, которые не выходят за рамки запрашиваемого объема правовой охраны и являются очевидными для специалистов в соответствующей области техники.