[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

WO2023121504A1 - System and method for managing notifications - Google Patents

System and method for managing notifications Download PDF

Info

Publication number
WO2023121504A1
WO2023121504A1 PCT/RU2021/000631 RU2021000631W WO2023121504A1 WO 2023121504 A1 WO2023121504 A1 WO 2023121504A1 RU 2021000631 W RU2021000631 W RU 2021000631W WO 2023121504 A1 WO2023121504 A1 WO 2023121504A1
Authority
WO
WIPO (PCT)
Prior art keywords
notification
objects
expression
list
alert
Prior art date
Application number
PCT/RU2021/000631
Other languages
French (fr)
Russian (ru)
Inventor
Алексей Владимирович СИТНИКОВ
Original Assignee
Общество С Ограниченной Ответственностью "Кейс Студио"
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from RU2021138675A external-priority patent/RU2783782C1/en
Application filed by Общество С Ограниченной Ответственностью "Кейс Студио" filed Critical Общество С Ограниченной Ответственностью "Кейс Студио"
Publication of WO2023121504A1 publication Critical patent/WO2023121504A1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/07User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail characterised by the inclusion of specific contents

Definitions

  • the present invention relates to systems and methods for managing alerts that provide efficient and fast identification of events and data changes in databases, digital files, documents, etc.
  • the present invention can be used in corporate information systems to organize interaction with other systems.
  • Events can be divided into 2 classes: explicitly triggered named events, incl. parameterized, and events related to data change. Within the framework of the present invention, a variant of events generated by data changes is considered.
  • Data changes can be either atomic, when a change event of a single record of a particular type is processed, or complex, when the event is triggered only in the event of a complex change of a certain set of interrelated data.
  • processing events for creating, changing and deleting a single record for example, triggers in database management systems.
  • business events are difficult to describe by such changes.
  • changing data by other users and systems entails the need to update part of the user interface, however, the interface is usually built hierarchically and you need to monitor not a fixed object, but the object that is “current”, i.e., is the result of a chain of links from the root object .
  • the database manager running on the device may receive a registration request for an application that will be notified when the first table of the plurality of tables in the database is changed.
  • the database manager may set up a notification table containing the fields of the first table and one or more additional fields to manage the notification.
  • the database manager can set a trigger on the first table to call a trigger procedure to copy the modified row of the first table to the notification table.
  • the database manager can create a notification table rule to notify registered applications when a new row is inserted in the notification table.
  • the first disadvantage of the analog is that it monitors the entire set of changes in the database, which slows down the system.
  • the second drawback is that in the analog, an alert occurs for every change in the database table.
  • US7836031B2 (published Nov. 16, 2010; IPC: G06F 7/00; G06F 17/00) describes systems and methods for using a trigger-based mechanism to detect changes in a database table, provide notification when a database table changes data and registration for notification.
  • Systems and methods use a listener table to store information associated with registered database tables. After a database table change, the database change trigger mechanism makes it easy to find the listener table for the parameter associated with the changed database table. If the modified database table is registered, information from the listener table is provided to the delivery service, which sends a message indicating that the registered database table has changed. Upon receipt of the message, the notification runtime service may send a notification to the client(s) registered to receive the notification.
  • the analog provides for the stage of registering a table for subsequent receipt of notifications about its change. In the present invention, this step is not required, since it is supposed that changes of tables/files/documents are initially monitored. Another difference is that in similarly, to make changes to a table, you need to request permission to make changes to the table.
  • the present invention initially defines a list of persons who have access to make changes to the table/file/document, as well as a control user who will receive change notifications.
  • the first disadvantage of the analogue is that it monitors the entire set of changes in the database, which requires additional computing power of the server, and also creates unnecessary notifications for the control user.
  • the first disadvantage of the analog is that it monitors the entire set of changes in the database, which requires additional computing power of the server, and also generates notifications for the managing user about all changes.
  • the second drawback is that in the analog, an alert occurs for every change in the database table, which also creates unnecessary alerts in the system.
  • US9591059B2 (publ. 03/07/2017; IPC: H04L 29/08; G06F 17/30) describes a device for notifying a file change, including a notification creation module that creates a message on the first local node with a file change notification in response to a client creating, deleting, and/or modifying a file system element addressed via a file path.
  • the first local node notifies the associated local client processes representing the clients connected to the first local node and flagged for file change information.
  • the device includes a node identification module that checks the global node for second local nodes flagged for file change information for the file path, and a notification propagation module that sends a message in response.
  • the second local node notifies the associated local client processes representing the clients connected to the second local node and flagged for information about the file path change.
  • the first disadvantage of the analogue is that it monitors the entire set of changes in the database, while in this way the present invention monitors certain records in files, and the list of checked records is generated automatically based on the expression. This allows you to significantly reduce the computing power of the server, and also not notify the managing user of all changes.
  • the second drawback is that in the analog, to receive an alert, you must send a request to receive an alert. In the present invention, the server decides which notifications and in what form to send to the managing user.
  • the present invention allows the managing user to be notified only of significant changes, rather than all of them.
  • the main difference of the present invention from the analog is that the analog is intended only for monitoring changes in the files of the NAS system, as well as for sending notifications about these changes.
  • NAS English Network Attached Storage
  • the present invention can monitor changes in any kind of files/documents/tables, including database tables.
  • US20140195476A1 (publ. 07/10/2014; IPC: G06F 17/30) describes a computer-implemented method for generating an in-memory database update notification, including: detecting an in-memory database event that inserts, deletes, or changes the first entry in the in-memory database; executing a first database trigger that corresponds to the detected database event in memory; identifying a first business event definition that maps to the executed first database trigger; and creating a first notification that matches the identified first business event definition, a first notification generated for a first subscriber to the identified first business event definition.
  • the first disadvantage of the analogue is that it monitors the entire set of changes in the database, while in this way the present invention monitors certain records in files, and the list of checked records is generated automatically based on the expression. This allows you to significantly reduce the computing power of the server, and also not notify the managing user of all changes.
  • Second the disadvantage is that in the analog, an alert occurs for every change in the database table. In the present invention, the server decides which notifications and in what form to send to the managing user. This allows the managing user to be notified only of significant changes, rather than all of them.
  • the objective of the claimed invention is to create and develop a system and method for managing alerts that provide efficient and fast identification of events and data changes, as well as the creation of quick alerts based on them.
  • the technical result, to which the claimed invention is directed, is to ensure the efficiency of notification management, as well as the speed of sending notifications to the system.
  • the technical result is achieved including, but not limited to, due to:
  • an alert management system that includes at least one user device with an interface, at least one database and a server connected to each other.
  • the server includes at least one object source, a notification component, an expression evaluation component, and a storage component.
  • the alert component is configured to generate alerts and includes an alert service, an alert expression object parser, and an alert executor.
  • the alert service, the alert expression object parser, and the alert executor interact with each other sequentially.
  • the expression evaluation component is configured to monitor object changes and includes at least one expression initiator, expression executor, and a list of objects to monitor.
  • the list of objects to be monitored interacts with the notification executor, and at least one expression initiator interacts with at least one source of objects and with the executor expressions.
  • the persistence component is configured to persist changes to a database and includes an object caching module and an object persistence module.
  • the object caching module interacts with the expression executor and with the object persistence module, and the object persistence module interacts with at least one database.
  • At least one user device is required to make changes to database objects and/or to receive change notifications.
  • the interface is needed by the user device to inform the user of the user device about what is happening.
  • At least one database is needed to organize access of the server and the user device to the database objects, and the server is needed to notify the user of the user device about changes in the database and save the changes to the database.
  • at least one source of objects is required to organize server access to the database.
  • the alert component is required to create alerts.
  • the alert service is needed to directly create alerts based on the changes made and determine the type of alert
  • the alert expression object analyzer is needed to calculate the alert and generate a list of used objects.
  • An alert executor is required to execute custom code that must be executed when an alert is fired.
  • the expression evaluation component is required to monitor object changes.
  • the fact that the expression evaluation component includes at least one expression initiator is necessary for the generation of an expression that specifies an object change.
  • the executor of the expression is needed to evaluate the result of the expression, and the list of objects to monitor is needed to determine which objects need to be monitored for changes in order to generate an alert.
  • the fact that the list of objects to monitor interacts with the notification executor, and at least one expression initiator interacts with at least one object source and the expression executor, is necessary to directly monitor object changes.
  • the save component is required to save changes to the database.
  • the caching module is necessary for organizing quick access to objects, and the object saving module is necessary for writing to the database, performing the necessary checks and transmitting events to various services, including notifications.
  • the fact that the object caching module interacts with the expression executor and the object persistence module, and the object persistence module interacts with at least one database, is necessary for the direct organization of the ability to save changes to objects in the database.
  • At least one database may be hosted on a server and/or be an external database, depending on the specific application of the present system.
  • Application code may be used as at least one initiator of the expression.
  • alert management system also in the alert management system, additional options for the interaction of its components and elements can be organized, which will ensure the implementation of an additional technical result. For example, to check if an alert has worked, or to update the list of objects to monitor.
  • the technical result is achieved by a notification management method, according to which the object from the database is first changed, and then the notification event is created in the form of an expression.
  • the stage of changing the object from the database changing the object using the user device; generate an expression that defines the change of the object; calculate the result of the expression; store the objects used by the expression; and saving changes to the object in the object source using the object persistence module.
  • the stage of creating an alert determine the type of alert using the alert service; calculate the alert expression for the specific alert type; forming a list of changed objects used in the calculation of the notification expression; execute notification; updating the list of objects in the list of objects to be monitored based on the calculated alert expression; and save changes to the object in the database.
  • the step of changing the object using the user device is necessary to make a change on the basis of which an alert will be created.
  • the stage of generating the expression and calculating the result of the expression is necessary to change the value of the objects on the basis of which the notification will be calculated, as well as to link the expression with other objects involved in the calculation.
  • Storing the objects used by the expression and saving the change to the object in the object source is necessary to create a list of objects associated with the alert.
  • the step of determining the type of alert is necessary to determine whether whether the alert is fast or not, for the subsequent decision to create an alert. Calculation of the alert expression for a specific alert type is required to check if the result of the alert expression has changed.
  • Formation of the list of changed objects is necessary to compare it with the list of objects for monitoring. Execution of the notification is necessary for the direct output of the notification to the interface of the user device. Updating the list of objects in the list of objects for monitoring based on the calculated expression is necessary for the subsequent monitoring by objects, as a result of which changes the value of the notification expression may change. Saving changes to objects is necessary in order to save the changes made to the object by the user in the database.
  • the alert executor can additionally execute the program code included in the alert. This may be necessary if the alert includes additional code that allows you to implement complex scenarios for reacting to the alert.
  • the step of executing the alerts it may be further checked whether the alert has been executed. This can be done by passing objects from the object saver to the list of objects to monitor, checking if the object is in the list of objects to monitor, and sending an alert to the alert executor. At the same time, if the notification on the change of this object has been executed, then they can pass the object to the notification service and visualize the notification in the user interface.
  • alerts can also update the list of objects to monitor. This can be done by passing objects from the object saver to the list of objects to monitor, passing the object to the object parser of the alert expression, and checking if the list of alert objects has changed. If the list of objects has changed, then they can transfer the new list to the list of objects for monitoring and update the object in the list of objects for monitoring.
  • FIG. 1 is a schematic view of an alert management system according to the present invention.
  • FIG. 2 is a schematic view of an alert management system, with the additional capability of verifying the execution of an alert, in accordance with the present invention.
  • FIG. 3 is a schematic view of an alert management system with the additional ability to update the list of objects to be monitored in accordance with the present invention.
  • FIG. 4 is a schematic view of an alert management system with all the additional features of the present invention.
  • FIG. 5 is a block diagram illustrating the notification management method according to the present invention.
  • FIG. 6 is a flow diagram illustrating the additional steps of the notification management method for implementing notification execution verification in accordance with the present invention.
  • FIG. 7 is a flow diagram illustrating the additional steps of the alert management method for implementing updates to the list of objects to monitor in accordance with the present invention.
  • FIG. 8 is a flow diagram illustrating all of the additional steps in the method for managing alerts in accordance with the present invention.
  • FIG. 1 is a schematic representation of an alert management system configured with the ability to modify objects and create alerts, according to the present invention.
  • the system includes at least one user device 1 with a software interface, a server 2, and at least one database 3.
  • Server 2 includes at least one object source 210, an alert component 220, an expression evaluation component 230, and a persistence component 240.
  • the alert component 220 includes an alert service 221, an alert expression object parser 222, and an alert executor 223.
  • the expression evaluation component 230 includes an expression initiator 231, an expression executor 232, and a list of objects to monitor 233.
  • a persistence component includes an object caching module 241 and a module storing objects 242.
  • the database 3 interacts with the object source 210, which, in turn, interacts with the software interface.
  • the software interface it is possible to change objects from at least one source of objects 210.
  • a change trigger is sent using the software interface to the alert service 221 interacting with it, which interacts with the alert object expression parser 222.
  • the alert expression object parser 222 interacts with the performer alert 223 and alert 223 with a list of objects to monitor 230.
  • At least one object source 210 interacts with an expression initiator 231. in turn, interacts with the object persistence module 242.
  • the object persistence module 242 interacts with at least one database 3, which closes the chain of interaction between the alert management system elements. This system configuration allows you to modify objects from database 3 and generate alerts based on the changes made.
  • At least one user device 1 may be any electronic computer (computer) configured to access the Internet and includes a memory and a processor.
  • a desktop computer such as a personal computer (PC), home computer, monoblock, Plug PC (Plug Personal Computer), gaming computer.
  • It can also be an Internet device, such as a netbook, an Internet tablet, a netbook tablet, a nettop.
  • the user device 1 may be a small and/or mobile computer, such as a mobile Internet device, a PDA, a laptop, a smartphone, etc.
  • the user device 1 interface 110 is the boundary between two functional entities (the user device 1 and the server 2), the requirements for which are determined by the standard; a set of means, methods and rules of interaction (management, control, etc.) between the elements of the system.
  • the interface 1 can be used as an element of the user device 1, for example, a display, a set of buttons and switches for settings, plus rules for managing them related to the human-machine interface.
  • the keyboard, mouse, and other input devices, which are elements of the human-computer interface, can also be used. Also, both types of interfaces can be used in combination with each other.
  • Server 2 is one of the alert management system hardware. It 2 may be a dedicated or specialized computer for executing service software.
  • Server (service) software is a software component of a computing system that performs service (servicing) functions at the request of the client, providing him with access to certain resources or services.
  • the server 2 within the framework of the present invention includes at least one source of objects 210. It 210 is used to communicate objects from the database 3 with the server 2 and the user device 1.
  • Digital object an object consisting of a structured sequence of bytes, having a name, a unique identifier and attributes describing its properties.
  • a digital object refers to any document, file, spreadsheet or any of their components placed in a digital environment.
  • the object is an element from the database 3.
  • the alerts component 220 is designed to generate alerts directly.
  • the fact that it 220 includes the alert service 221 allows the type of alert to be determined.
  • Notification is the automatic creation of an event when the value of an expression in the expression language changes as a result of a change in one of the objects involved in the calculation of the value of the expression. They are divided into two types: fast and standard.
  • Fast alerts are alerts that do not require a round-robin recalculation of the alert expression to be processed.
  • Standard alerts require regular recalculation.
  • a standard alert is calculated when application processes run at regular intervals. Objects will be updated when the form's main alert expression is recalculated, or the secondary alert (if any) is recalculated.
  • the main expression for the attribute Attribute! can be specified as Credit.Client, and optionally as Credit.Client. Age.
  • the identifier represents the "coordinates" of the object in database 3.
  • the notification expression In order for a notification to be fast, the notification expression must satisfy the following list of requirements: it must use only the functions supported in fast notifications, and it must receive attribute values of the context type. At the same time, the attributes must be non-collectible, and, in the case of form attributes, stored. It is allowed to get the value of a chain of stored attributes, for example, notification Client.Contract. The status that receives the value of the stored attribute of the form Client (reference to type Client) will be fast.
  • An expression is text in an expression language that can be calculated (executed). At the same time, the values of object attributes can be used and changed in the calculation process. Alerts, in turn, are an entity that contains an expression and is intended to notify the creator of the alert that the value of this expression has changed. Such expressions are referred to in the text as "alert expressions”. All other expressions that are sent for execution by other components of the system and generate changes to objects are referred to as an "expression".
  • the alert expression object parser 222 when creating a new alert instance, recursively processes the expression as if it were evaluating its value, but in addition to the calculation itself, it generates a list of objects that were used in evaluating the expression. These objects fall into the list of objects for monitoring 233.
  • the alert executor 223 is an execution adapter for executing the alert itself. Also, it 223 may contain user program code to be executed when the alert is triggered. The result of triggering an alert can be either an update of some parts of the user interface of the software that are explicitly marked as depending on the alert, or the execution of arbitrary program code, which allows you to implement complex scenarios for reacting to the alert.
  • the expression evaluation component 230 is an object change checking layer. Whenever objects are changed in any way—through the user interface or by automated data handlers—all changed or deleted objects are checked to see if they are included in the list of objects to be monitored 233. This includes at least one expression initiator 231, expression executor 232, and list of objects for monitoring 233.
  • the initiator of expressions 231 is designed to generate expressions corresponding to the change of objects.
  • the expression executor 232 is an alert expression evaluator that checks whether the result of the alert expression has changed and also generates a new list of objects that participated in the evaluation of the alert expression.
  • the list of objects to monitor 233 stores the identifiers of objects that need to be checked when changing, as well as a map of the object and the list of alerts that depend on it.
  • the notification executor 223 interacts with the list of objects to monitor 233 to check whether the object on which the notification should be executed is included in the list of objects to monitor 233.
  • the initiator of expressions 232 interacts with at least one source of objects 231 in order to detect changes to objects for the subsequent creation of a notification event associated with the object, and with the expression executor 232 - to pass an expression to it in order to subsequently calculate the value of the expression.
  • the persistence component 240 is then designed to store object changes from the database 3.
  • the object cache module 241 may temporarily store the changes.
  • a cache is a high-speed storage layer in which a required set of data is typically temporary. Access to data at this level is carried out much faster than to the main place of their storage. With the help of caching, it becomes possible to efficiently reuse previously received or calculated data.
  • object changes can also be carried out by the object persistence module 242 connected to at least one database 3. It 242 writes to the database 3, performing the necessary checks and transmitting events to various services, including alerts.
  • the alert management system shown in FIG. 1 works as follows. First, object changes are made using user device 1. The change, as a trigger event, is sent to an expression initiator 231 which generates an expression specifying the change of the object. The generated expression is then sent to the expression executor 232, which in turn evaluates the result of the expression. After that, the objects that were used during the evaluation of the expression are sent to the object cache module 241, which temporarily stores the objects with changes, and then they are transferred to the object saver 242, which in turn stores the changed objects in the object source 210. Simultaneously with the change of the object, a notification event about this change is also created. Using the service alerts 221 determine the type of alert, as described above.
  • the expression is then calculated using the alert expression object parser 222.
  • the list consists of changed objects used in evaluating the alert expression.
  • notifications are executed using the notification executor 223.
  • the notification executor 223, in addition to the notification itself, can also execute program code that can be included in the notification executor 223.
  • object changes are saved using the object saver 242 in the database 3.
  • FIG. 2 is a schematic view of an alert management system, with the additional capability of verifying the execution of an alert, in accordance with the present invention.
  • the ability to check the execution of alerts is an additional technical result in the framework of the present invention, which can be achieved by adding additional interaction options for the elements of the alert management system shown in FIG. 2. In this case, in order to achieve simultaneous additional and main technical results, the above and below described interactions must be used in combination.
  • the object store module 242 may further interact with the list of objects to monitor 233. This may be necessary in order to transfer the objects stored in the database 3 by the object store module 242 to the list of objects to monitor 233. Using the list of objects to monitor 233. monitoring 233 check the presence of this object in the list 233.
  • the list of objects to monitor 233 can interact with the alert performer 223.
  • the list of objects to monitor 233 conveys to the alert performer 223 information about whether whether this object is present in the list 233, as well as the object itself. It 223 checks to see if a notification has been executed to change this object.
  • the alert executor 223 may further interact with the alert service 221, and the alert service 221 interacts with the software interface. In this case, if the object change notification has been executed, the object is transferred from the notification executor 223 to the notification service 221, and then to the software interface, in which the notification is visualized using the notification service 221.
  • the visualization of the notification itself may imply a change in the visual embodiment of objects, i.e. the change itself, as well as some pop-up notification of the change.
  • alert visualization options can be used individually or in combination.
  • the notification executor 223 contains additional user program code, the notification can be visualized by various complex scenarios.
  • alerts may include functional elements such as buttons, input fields, etc.
  • ways of user reaction to alerts will be implemented. For example, he can cancel the change, accept it, send a request to check the correctness of the changes made, etc.
  • the portion of the alert management system shown in FIG. 2 works as follows. After the step of executing the alert by the alert executor 223, it is checked whether the alert has been executed. At the same time, objects are transferred from the object storage module 242 to the list of objects for monitoring 233. Using the list of objects for monitoring 233, they check the presence of this object in the list 233 and transmit information about the presence / absence of the object in the list, as well as the object itself (more precisely, its identifier ) to the notification executor 223. If the notification to change this object has been executed, then the object is transferred to the notification service 221, and then the notification is visualized in the user interface of the software using the notification service 221.
  • the alert management system shown in FIG. 1 in combination with additional interactions shown in FIG. 2 works as follows. First, changes are made to the object using the user device 1. The change is sent as a trigger event to the expression initiator 231, which generates an expression defining the change of the object. The generated expression is then sent to the expression executor 232, which in turn evaluates the result of the expression. After that, the objects that were used during the evaluation of the expression are sent to the object cache module 241, which temporarily stores the objects with changes, and then they are passed to the object saver 242, which in turn saves the changed objects to the object source 210. At the same time as the object is changed, a notification event about this change is also generated in the notification links.
  • the service alerts 221 determine the type of alert, as described above. For a certain type of alerts, namely for quick alerts, the expression is then calculated using the alert expression object parser 222. At this stage, a list of objects that were used in the calculation of the alert expression, also using the alert expression object parser 222, is formed. The list consists of changed objects used in evaluating the alert expression. After that, notifications are executed using the notification executor 223. The notification executor 223, in addition to the notification itself, can also execute program code that can be included in the notification executor 223. After that, changes to the object are saved using the object saver 242 in the database 3. After the stage of executing the notification by the notification executor 223 also checks whether the notification has been executed.
  • objects are transferred from the object storage module 242 to the list of objects for monitoring 233.
  • the list of objects for monitoring 233 they check the presence of this object in the list 233 and transmit information about the presence / absence of the object in the list, as well as the object itself (more precisely, its identifier ) to the notification executor 223. If the notification to change this object has been executed, then the object is transferred to the notification service 221, and then the notification is visualized in the user interface of the software using the notification service 221.
  • FIG. 3 is a schematic view of an alert management system with the additional ability to update the list of objects to be monitored 233 in accordance with the present invention.
  • the ability to update the list of objects for monitoring 233 is an additional technical result in the framework of the present invention, which can be achieved by adding additional interaction options for the elements of the alert management system shown in FIG. 3.
  • the interaction options shown in FIG. 1 and the interactions described below should be used in combination.
  • the object persistence module 242 may interact with the list of objects to monitor 233. This may be necessary to check if the stored objects are contained in the list 233.
  • the list of objects to monitor 233 may further interact with the object parser of the alert expression 222 in a two-way manner. This may be necessary to check if the list of alert expression objects has changed.
  • the portion of the alert management system shown in FIG. 3 works as follows.
  • the notification executor 223 updates the list of objects for monitoring 233.
  • objects are first transferred from the object storage module 242 to the list of objects for monitoring 233. It checks 233 whether the stored objects are contained in the list 233. After that, the object is transferred to the alert expression object parser 222. The parser 222 checks to see if the list of alert expression objects has changed. If the list of objects of the alert expression has changed, then the new list is passed to the list of objects to be monitored 233 and the list 233 is updated with the new list.
  • the alert management system shown in FIG. 1 in combination with additional interactions shown in FIG. 3 works as follows. First, changes are made to the object using the user device 1. The change is sent as a trigger event to the expression initiator 231, which generates an expression defining the change of the object. The generated expression is then sent to the expression executor 232, which in turn evaluates the result of the expression. After that, the objects that were used during the evaluation of the expression are sent to the object cache module 241, which temporarily stores the objects with changes, and then they are transferred to the object saver 242, which in turn stores the changed objects in the object source 210. Simultaneously with the change of the object, a notification event about this change is also created in the form of a link to the notification.
  • the service alerts 221 determine the type of alert, as described above. For a certain type of alerts, namely for quick alerts, the alert expression is then calculated using the alert expression object analyzer 222. At this stage, a list of objects that were used in the alert calculation also using the alert expression object analyzer 222 is formed. The list consists of changed objects used in evaluating the alert expression. After that, notifications are executed using the notification executor 223. The notification executor 223, in addition to the notification itself, can also execute program code that can be included in the notification executor 223. After that, changes to the object are saved using the module for storing objects 242 in the database 3.
  • the list of objects for monitoring 233 is also updated and in parallel it is checked whether the notification has been executed.
  • objects are first passed from the object saver 242 to the list of objects to be monitored 233. It checks 233 whether the stored objects are contained in the list 233. After that, the object is passed to the object analyzer of the notification expression 222. Using the analyzer 222 check if the list of alert expression objects has changed. If the list of objects of the alert expression has changed, then the new list is passed to the list of objects to be monitored 233 and the list 233 is updated with the new list. In this case, the verification of notification execution is performed as follows.
  • Objects are transferred from the object storage module 242 to the list of objects for monitoring 233.
  • the presence of this object is checked in the list 233 and information about the presence / absence of the object in the list, as well as the object itself (more precisely, its identifier) is transmitted to notification executor 223. If the notification to change this object has been executed, then the object is transferred to the notification service 221, and then the notification is visualized in the user interface of the software using the notification service 221.
  • the interaction options for the elements of the notification management system shown in FIG. 1, Fig. 2 and FIG. 3 can be used in combination as shown in FIG. 4.
  • changes to the object are carried out using the user device 1.
  • the change is sent as a trigger event to the initiator of the expression 231, which generates an expression defining the change of the object.
  • the generated expression is then sent to the expression executor 232, which in turn evaluates the result of the expression.
  • the objects that were used during the evaluation of the expression are sent to the object cache module 241, which temporarily stores the objects with changes, and then they are transferred to the object saver 242, which in turn stores the changed objects in the object source 210.
  • a notification event about this change is also created in the form of a link to the notification.
  • the service alerts 221 determine the type of alert, as described above.
  • the alert expression is then calculated using the alert expression object analyzer 222.
  • a list of objects that were used in the calculation of the expression is generated.
  • alerts also using the alert expression object parser 222.
  • the list consists of the changed objects used in the calculation of the alert expression.
  • the notification is executed using the notification executor 223.
  • the notification executor 223, in addition to the notification itself, can also execute program code that can be included in the notification executor 223.
  • the notification executor 223 also updates the list of objects for monitoring 233. To do this, objects are first transferred from the object storage module 242 to the list of objects for monitoring 233. It checks 233 whether the stored objects are contained in the list 233. After that, the object is transferred to the alert expression object parser 222. The parser 222 checks to see if the list of alert expression objects has changed. If the list of notification objects has changed, then the new list is passed to the list of objects to be monitored 233 and the list 233 is updated with the new list.
  • the database 3, which is part of the notification management system, can be either hosted on the server 2 or be an external database. It can also use external databases and databases hosted on the server in combination. There can be any number of them, depending on the specific implementation of the system and needs.
  • Application code may be used as at least one initiator of expression 231 .
  • Processes and web services can also be used.
  • the software interface of the user device 1 may be implemented in any human-readable manner, i. e. in the form of any human-machine interface.
  • the command line interface is a user interface implemented by the user typing command text and reading response text.
  • a gesture interface can also be used, allowing the user to interact with the computer (give commands to it) using gestures.
  • a voice interface with the help of which commands are given by voice.
  • a microphone must also be connected to user device 1. The most preferred option is to use the graphical user interface.
  • FIG. 5 is a block diagram illustrating the notification management method according to which the notification management system shown in FIG. 1.
  • changes to the object are made using the user device 1.
  • the change is sent as a trigger event to the expression initiator 231, which generates an expression specifying the change of the object.
  • the generated expression is then sent to the expression executor 232, which in turn evaluates the result of the expression.
  • the objects that were used during the evaluation of the expression are sent to the object cache module 241, which temporarily stores the objects with changes, and then they are transferred to the object saver 242, which in turn stores the changed objects in the object source 210.
  • a notification event about this change is also created in the form of a link to the notification.
  • the service alerts 221 determine the type of alert, as described above.
  • the alert expression is then calculated using the alert expression object analyzer 222.
  • a list of objects that were used in the calculation of the alert expression also using the alert expression object analyzer 222 is formed.
  • the list consists of changed objects used in the calculation of the alert expression.
  • notifications are executed using the notification executor 223.
  • the notification executor 223, in addition to the notification itself, can also execute program code that can be included in the notification executor 223.
  • object changes are saved using the object saver 242 in the database 3.
  • the stage of changing the object using the user device 1 may involve changing its visual embodiment, changing the data contained in the object, etc. This can be done through additional input devices, for example, through a computer mouse, keyboard and other input devices, for example, a microphone .
  • the ID generation step involves parsing the "coordinate" of the object in the database 3.
  • "Coordinate” is the ID of the object.
  • Identifier as the "coordinate” of the object, while also setting the alert identifier.
  • the expression is essentially "unpacked" by determining which objects are involved in the calculation of a particular expression.
  • the expression Client.Agreement. Status includes objects: Status, available by expression Client.Agreement. Status, Agreement, available by expression Client.Agreement, and Client, available by expression Client.
  • the expression executor 232 recursively evaluates the expression, thus forming a list of used objects.
  • the list of used objects is sent to the object caching module 241 for temporary quick access to them, and also stored in the object source 210 for later creation of an alert.
  • Alert type determinations involve determining whether an alert is a quick alert or a standard alert based on whether it uses only features supported in quick alerts and based on getting the context type attribute value as previously described. In this case, notifications are executed only for fast notifications. If the notification is standard, then at the stage of determining the type of notification, the algorithm completes its work.
  • FIG. 6 is a flow diagram illustrating additional steps of the notification management method, providing an additional technical result of being able to check whether the notification has been executed.
  • the notification executor 223 After the step of executing the notification by the notification executor 223, it is checked whether the notification has been executed.
  • objects are transferred from the object storage module 242 to the list of objects for monitoring 233. Using the list of objects for monitoring 233, they check the presence of this object in the list 233 and transmit information about the presence / absence of the object in the list, as well as the object itself (more precisely, its identifier ) to the notification executor 223. If the notification event for changing this object has been executed, then the object is passed to the notification service 221, and then the notification is rendered in the user interface 110 using the notification service 221.
  • the notification executor 223 updates the list of objects for monitoring 233.
  • objects are first transferred from the object storage module 242 to the list of objects for monitoring 233. It checks 233 whether the saved objects are contained in the list 233. After that the object is passed to the object parser alert expressions 222. The parser 222 checks to see if the list of alert expression objects has changed. If the list of objects of the alert expression has changed, then the new list is passed to the list of objects to be monitored 233 and the list 233 is updated with the new list. This allows the list of objects to be monitored 233 to be updated, which also adds more automation to the system.
  • any of the embodiments of the notification management method additionally, at the stage of executing the notification, using the notification executor 223, additionally execute the program code included in the notification and / or in the execution adapter, which is the notification executor 223. As already described earlier, this can allow complex scenarios for reacting to an alert.
  • the additional steps shown in FIG. 6 and FIG. 7 and those described above and the main steps shown in FIG. 5 may be used in combination to form the alert management method shown in FIG. 8.
  • changes to the object are first performed by the user device 1.
  • the change is sent as a trigger event to the expression trigger 231, which generates an expression specifying the change of the object.
  • the generated expression is then sent to the expression executor 232, which in turn evaluates the result of the expression.
  • the objects that were used during the evaluation of the expression are sent to the object cache module 241, which temporarily stores the objects with changes, and then they are transferred to the object saver 242, which in turn stores the changed objects in the object source 210.
  • a notification event about this change is also created.
  • the service alerts 221 determine the type of alert, as described above.
  • the alert expression is then calculated using the alert expression object parser 222.
  • a list of objects that were used in the calculation of the expression is also generated using the alert expression object parser 222.
  • the list consists of changed objects used in evaluating the alert expression.
  • notifications are executed using the notification executor 223.
  • the notification executor 223, in addition to the notification itself, can also execute program code that can be included in the notification executor 223.
  • changes to the object are saved using the object persistence module 242 in the database data 3.
  • the list of objects for monitoring 233 is also updated.
  • objects are first transferred from the object storage module 242 to the list of objects for monitoring 233. It checks 233 whether the stored objects are contained in the list 233. The object is then passed to the alert expression object parser 222. The parser 222 checks to see if the list of alert expression objects has changed. If the list of notification objects has changed, then the new list is passed to the list of objects to be monitored 233 and the list 233 is updated with the new list.
  • the program code included in the notification and/or in the notification executor 223 is also executed.

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

The present invention relates to systems and methods for managing notifications, which allow efficient and rapid identification of events and changes to data in databases, digital files, documents and the like. According to the claimed method for managing notifications, first, an object from a database is changed. Said object is changed by means of a user device. An expression defining the change in the object is generated. The result of the expression is then calculated and the objects used by the expression are stored. Next, changes to the object are stored in an object source by means of an object storage module. After the changes are stored, a notification of the change is created in the form of an expression. For this purpose, first a notification type is identified, then an expression is calculated for the identified notification type. A list of the changed objects used in the calculation of the notification expression is generated. After that, the notification can be executed and the changes in the object are stored in the database. The present invention can be used in corporate information systems for organizing cooperation with other systems, and provides that notifications are managed efficiently and are also sent very quickly to the system.

Description

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

Область техники Technical field

[0001] Настоящее изобретение относится к системам и способам управления оповещениями, обеспечивающим эффективную и быструю идентификацию событий и изменений данных в базах данных, цифровых файлах, документах и др. Настоящее изобретение может использоваться в корпоративных информационных системах для организации взаимодействия с иными системами. [0001] The present invention relates to systems and methods for managing alerts that provide efficient and fast identification of events and data changes in databases, digital files, documents, etc. The present invention can be used in corporate information systems to organize interaction with other systems.

Уровень техники State of the art

[0002] Корпоративные информационные системы обычно работают во взаимодействии с иными системами. Для обеспечения согласованности между ними необходима координация, что, в свою очередь, требует, чтобы каждая из систем реагировала на внешние события. В связи с этим, практически в любой корпоративной информационной системе используются компоненты, управляемые событиями. [0002] Corporate information systems typically operate in conjunction with other systems. To ensure consistency between them, coordination is necessary, which, in turn, requires that each of the systems respond to external events. In this regard, almost any corporate information system uses event-driven components.

[0003] События можно разделить на 2 класса: явно инициируемые именованные события, в т.ч. параметризованные, и события, связанные с изменением данных. В рамках настоящего изобретения рассматривается вариант событий, порождаемых изменениями данных. [0003] Events can be divided into 2 classes: explicitly triggered named events, incl. parameterized, and events related to data change. Within the framework of the present invention, a variant of events generated by data changes is considered.

[0004] Изменения данных могут быть как атомарными, когда обрабатывается событие изменения одной записи конкретного типа, так и комплексными, когда событие инициируется только в случае комплексного изменения определенного набора взаимосвязанных данных. В большинстве информационных систем присутствует функциональность обработки событий создания, изменения и удаления единичной записи, например, триггеры в системах управления базами данных. Однако, многие бизнес- события сложно описываются подобными изменениями. Например, изменение данных другими пользователями и системами влечет необходимость обновления части интерфейса пользователя, однако интерфейс обычно выстроен иерархически и наблюдать нужно не за фиксированным объектом, а за тем объектом, который является «текущим», т. е. является результатом цепочки ссылок от корневого объекта. [0004] Data changes can be either atomic, when a change event of a single record of a particular type is processed, or complex, when the event is triggered only in the event of a complex change of a certain set of interrelated data. In most information systems, there is the functionality of processing events for creating, changing and deleting a single record, for example, triggers in database management systems. However, many business events are difficult to describe by such changes. For example, changing data by other users and systems entails the need to update part of the user interface, however, the interface is usually built hierarchically and you need to monitor not a fixed object, but the object that is “current”, i.e., is the result of a chain of links from the root object .

[0005] Для мониторинга только части событий, связанных с изменением фиксированных объектов, подобный подход, т.е. отслеживание цепочки ссылок от корневого объекта, приводит к сложному многоуровневому коду, который к тому же требуется аккуратно изменять при внесении изменений в интерфейс пользователя. [0006] Известно решение, описываемое в патенте US9292587B2 (опубл. 22.03.2016; МПК: G06F 17/30). В нем представлены системы и способы для предоставления удаленному приложению уведомлений об изменениях, внесенных в таблицу базы данных. Система и способы управляют уведомлением об изменении таблицы в базе данных, уведомляя приложение, сконфигурированное для получения уведомлений об изменениях, внесенных в таблицу базы данных. Менеджер базы данных, выполняющийся на устройстве, может принимать запрос на регистрацию приложения, которое будет уведомлено при изменении первой таблицы из множества таблиц в базе данных. Менеджер базы данных может установить таблицу уведомлений, содержащую поля первой таблицы и одно или несколько дополнительных полей для управления уведомлением. Менеджер базы данных может установить триггер для первой таблицы, чтобы вызвать процедуру триггера для копирования измененной строки первой таблицы в таблицу уведомлений. Менеджер базы данных может создать правило для таблицы уведомлений, чтобы уведомлять зарегистрированные приложения, когда в таблицу уведомлений вставляется новая строка. Первым недостатком аналога при этом является то, что в нем производится мониторинг всей совокупности изменений в базе данных, что замедляет работу системы. Второй недостаток заключает в том, что в аналоге оповещение происходит по поводу каждого изменения в таблице базы данных. [0005] To monitor only part of the events associated with the change of fixed objects, a similar approach, i.e. tracing the chain of references from the root object results in complex multi-level code, which also needs to be carefully modified when changes are made to the user interface. [0006] A solution is known, described in the patent US9292587B2 (publ. 03/22/2016; IPC: G06F 17/30). It provides systems and methods for providing notifications to a remote application about changes made to a database table. The system and methods manage notification of changes to a table in a database by notifying an application configured to receive notifications of changes made to a database table. The database manager running on the device may receive a registration request for an application that will be notified when the first table of the plurality of tables in the database is changed. The database manager may set up a notification table containing the fields of the first table and one or more additional fields to manage the notification. The database manager can set a trigger on the first table to call a trigger procedure to copy the modified row of the first table to the notification table. The database manager can create a notification table rule to notify registered applications when a new row is inserted in the notification table. The first disadvantage of the analog is that it monitors the entire set of changes in the database, which slows down the system. The second drawback is that in the analog, an alert occurs for every change in the database table.

[0007] В изобретении по патенту US7836031B2 (опубл. 16.11.2010; МПК: G06F 7/00; G06F 17/00) описываются системы и способы использования механизма на основе триггера для обнаружения изменений в таблице базы данных, предоставления уведомления при изменении таблицы базы данных и регистрации для получения уведомления. Системы и способы используют таблицу «слушателей» для хранения информации, связанной с зарегистрированными таблицами базы данных. После изменения таблицы базы данных механизм триггера, связанный с изменением базы данных, облегчает поиск в таблице «слушателей» параметра, связанного с измененной таблицей базы данных. Если измененная таблица базы данных зарегистрирована, информация из таблицы «слушателей» предоставляется службе доставки, которая передает сообщение, указывающее на изменение зарегистрированной таблицы базы данных. После получения сообщения служба времени выполнения уведомлений может направить уведомление клиенту(-ам), зарегистрированному(-ым) для получения уведомления. Одно из отличий аналога от настоящего изобретения заключается в том, что в аналоге предусмотрен этап регистрации таблицы для последующего получения уведомлений о ее изменении. В настоящем изобретении этот этап не требуется, т.к. предполагается, что изменения таблиц/файлов/документов изначально мониторят. Другим отличием является то, что в аналоге для внесения изменений в таблицу требуется запросить разрешение на внесение изменений в таблицу. В настоящем изобретении изначально определен список лиц, имеющих доступ к внесению изменений в таблицу/файл/документ, а также управляющий пользователь, которому будут приходить уведомления о внесении изменений. Первым недостатком аналога при этом является то, что в нем производится мониторинг всей совокупности изменений в базе данных, что требует дополнительных вычислительных мощностей сервера, а также создает излишние оповещения управляющего пользователя. Второй недостаток заключает в том, что в аналоге оповещение происходит по поводу каждого изменения в таблице базы данных, что также создает излишние оповещения [0008] Также известно изобретение по патенту US6617969B2 (опубл. 09.09.2003; МПК: G08B 23/00), в котором описываются способы и устройство для отправки сообщения уведомления в соответствии с набором предпочтений уведомления. Уведомляющее сообщение отправляется при обнаружении события или удовлетворении условия в отношении обнаруженного события. Набор предпочтений уведомлений может указывать желаемый носитель уведомления, через который должно быть отправлено сообщение уведомления, адресата уведомления, которому должно быть отправлено сообщение уведомления, и/или предпочтение времени уведомления, указывающее дату и/или время, в течение которых уведомление должно быть отправлено (или получено). Первым недостатком аналога при этом является то, что в нем производится мониторинг всей совокупности изменений в базе данных, что требует дополнительных вычислительных мощностей сервера, а также формирует оповещения управляющего пользователя обо всех изменениях. Второй недостаток заключает в том, что в аналоге оповещение происходит по поводу каждого изменения в таблице базы данных, что также создает излишние оповещения в системе. [0007] US7836031B2 (published Nov. 16, 2010; IPC: G06F 7/00; G06F 17/00) describes systems and methods for using a trigger-based mechanism to detect changes in a database table, provide notification when a database table changes data and registration for notification. Systems and methods use a listener table to store information associated with registered database tables. After a database table change, the database change trigger mechanism makes it easy to find the listener table for the parameter associated with the changed database table. If the modified database table is registered, information from the listener table is provided to the delivery service, which sends a message indicating that the registered database table has changed. Upon receipt of the message, the notification runtime service may send a notification to the client(s) registered to receive the notification. One of the differences of the analog from the present invention is that the analog provides for the stage of registering a table for subsequent receipt of notifications about its change. In the present invention, this step is not required, since it is supposed that changes of tables/files/documents are initially monitored. Another difference is that in similarly, to make changes to a table, you need to request permission to make changes to the table. The present invention initially defines a list of persons who have access to make changes to the table/file/document, as well as a control user who will receive change notifications. The first disadvantage of the analogue is that it monitors the entire set of changes in the database, which requires additional computing power of the server, and also creates unnecessary notifications for the control user. The second drawback is that in the analog, an alert occurs for every change in the database table, which also creates unnecessary alerts [0008] Also known is the invention according to patent US6617969B2 (publ. which describes methods and apparatus for sending a notification message in accordance with a set of notification preferences. A notification message is sent when an event is detected or a condition is met for the detected event. The set of notification preferences may indicate the desired notification medium through which the notification message is to be sent, the notification destination to which the notification message is to be sent, and/or the notification time preference indicating the date and/or time during which the notification is to be sent (or received). The first disadvantage of the analog is that it monitors the entire set of changes in the database, which requires additional computing power of the server, and also generates notifications for the managing user about all changes. The second drawback is that in the analog, an alert occurs for every change in the database table, which also creates unnecessary alerts in the system.

[0009] В изобретении по патенту US9591059B2 (опубл. 07.03.2017; МПК: H04L 29/08; G06F 17/30) описывается устройство для уведомления об изменении файла, включающее в себя модуль создания уведомления, который создает на первом локальном узле сообщение с уведомлением об изменении файла в ответ на создание, удаление и/или изменение клиентом элемента файловой системы, адресованного через путь к файлу. Первый локальный узел уведомляет связанные локальные клиентские процессы, представляющие клиентов, подключенных к первому локальному узлу и помеченных для получения информации об изменении файла. Устройство включает в себя модуль идентификации узла, который проверяет глобальный узел на наличие вторых локальных узлов, помеченных для получения информации об изменении файла для пути к файлу, и модуль распространения уведомлений, который в ответ отправляет сообщение уведомления об изменении файла от первого локального узла вторым локальным узлам, до получения идентификации вторых локальных узлов. Второй локальный узел уведомляет связанные локальные клиентские процессы, представляющие клиентов, подключенных ко второму локальному узлу и помеченных для получения информации об изменении пути к файлу. Первым недостатком аналога при этом является то, что в нем производится мониторинг всей совокупности изменений в базе данных, тогда так в настоящем изобретении производится мониторинг определенных записей в файлах, причем список проверяемых записей формируется автоматически на основе выражения. Это позволяет значительно уменьшить вычислительные мощности сервера, а также не оповещать управляющего пользователя обо всех изменениях. Второй недостаток заключает в том, что в аналоге для получения оповещения необходимо отправить запрос на получение оповещения. В настоящем изобретении сервер принимает решение о том, какие оповещения и в каком виде присылать управляющему пользователю. Это позволяет оповещать управляющего пользователя только о существенных изменениях, а не обо всех. Главным отличием настоящего изобретения от аналога является то, что аналог предназначен только для мониторинга изменений в файлах системы NAS, а также для отправления уведомлений об этих изменениях. (NAS (англ. Network Attached Storage) — сервер хранения данных на файловом уровне). В настоящем изобретении могут мониторить изменения в любых видах файлов/документов/таблиц, в том числе таблиц баз данных. [0009] The invention of US9591059B2 (publ. 03/07/2017; IPC: H04L 29/08; G06F 17/30) describes a device for notifying a file change, including a notification creation module that creates a message on the first local node with a file change notification in response to a client creating, deleting, and/or modifying a file system element addressed via a file path. The first local node notifies the associated local client processes representing the clients connected to the first local node and flagged for file change information. The device includes a node identification module that checks the global node for second local nodes flagged for file change information for the file path, and a notification propagation module that sends a message in response. file change notifications from the first local node to the second local nodes, prior to obtaining the identity of the second local nodes. The second local node notifies the associated local client processes representing the clients connected to the second local node and flagged for information about the file path change. The first disadvantage of the analogue is that it monitors the entire set of changes in the database, while in this way the present invention monitors certain records in files, and the list of checked records is generated automatically based on the expression. This allows you to significantly reduce the computing power of the server, and also not notify the managing user of all changes. The second drawback is that in the analog, to receive an alert, you must send a request to receive an alert. In the present invention, the server decides which notifications and in what form to send to the managing user. This allows the managing user to be notified only of significant changes, rather than all of them. The main difference of the present invention from the analog is that the analog is intended only for monitoring changes in the files of the NAS system, as well as for sending notifications about these changes. (NAS (English Network Attached Storage) - data storage server at the file level). The present invention can monitor changes in any kind of files/documents/tables, including database tables.

[00010] В заявке на изобретение US20140195476A1 (опубл. 10.07.2014; МПК: G06F 17/30) описывается реализуемый на компьютере способ генерации уведомления об обновлении базы данных в памяти, включающий: обнаружение события базы данных в памяти, которое вставляет, удаляет или изменяет первую запись в базе данных в памяти; выполнение первого триггера базы данных, который соответствует обнаруженному событию базы данных в памяти; идентификацию первого определения бизнес-события, которое отображается на выполненный первый триггер базы данных; и создание первого уведомления, которое соответствует идентифицированному первому определению бизнес- события, первое уведомление, сгенерированное для первого подписчика на идентифицированное первое определение бизнес-события. Первым недостатком аналога при этом является то, что в нем производится мониторинг всей совокупности изменений в базе данных, тогда так в настоящем изобретении производится мониторинг определенных записей в файлах, причем список проверяемых записей формируется автоматически на основе выражения. Это позволяет значительно уменьшить вычислительные мощности сервера, а также не оповещать управляющего пользователя обо всех изменениях. Второй недостаток заключает в том, что в аналоге оповещение происходит по поводу каждого изменения в таблице базы данных. В настоящем изобретении сервер принимает решение о том, какие оповещения и в каком виде присылать управляющему пользователю. Это позволяет оповещать управляющего пользователя только о существенных изменениях, а не обо всех. [00010] US20140195476A1 (publ. 07/10/2014; IPC: G06F 17/30) describes a computer-implemented method for generating an in-memory database update notification, including: detecting an in-memory database event that inserts, deletes, or changes the first entry in the in-memory database; executing a first database trigger that corresponds to the detected database event in memory; identifying a first business event definition that maps to the executed first database trigger; and creating a first notification that matches the identified first business event definition, a first notification generated for a first subscriber to the identified first business event definition. The first disadvantage of the analogue is that it monitors the entire set of changes in the database, while in this way the present invention monitors certain records in files, and the list of checked records is generated automatically based on the expression. This allows you to significantly reduce the computing power of the server, and also not notify the managing user of all changes. Second the disadvantage is that in the analog, an alert occurs for every change in the database table. In the present invention, the server decides which notifications and in what form to send to the managing user. This allows the managing user to be notified only of significant changes, rather than all of them.

Сущность изобретения The essence of the invention

[00011] Задачей заявляемого изобретения является создание и разработка системы и способа управления оповещениями, обеспечивающих эффективную и быструю идентификацию событий и изменений данных, а также создание быстрых оповещений на их основе. [00011] The objective of the claimed invention is to create and develop a system and method for managing alerts that provide efficient and fast identification of events and data changes, as well as the creation of quick alerts based on them.

[00012] Технический результат, на достижение которого направлено заявляемое изобретение, заключается в обеспечении эффективности управления оповещениями, а также скорости отправки оповещений системе. Технический результат достигается в том числе, но не ограничиваясь, благодаря: [00012] The technical result, to which the claimed invention is directed, is to ensure the efficiency of notification management, as well as the speed of sending notifications to the system. The technical result is achieved including, but not limited to, due to:

[00013] описанию события мониторинга в виде выражения на языке выражений; [00014] мониторингу определенных объектов в базе данных, а не всех объектов; [00013] describing the monitoring event as an expression in an expression language; [00014] monitoring certain objects in the database, not all objects;

[00015] осуществлению мониторинга только по мере появления изменений в объектах; [00015] monitoring only as changes occur in objects;

[00016] принятие управляющим сервером решения о том, какие оповещения и в каком виде присылать управляющему пользователю. [00016] the decision by the control server about what notifications and in what form to send to the control user.

[00017] Более полно технический результат достигается благодаря системе управления оповещениями, включающей по крайней мере одно пользовательское устройство с интерфейсом, по крайней мере одну базу данных и сервер, подключенные друг к другу. При этом сервер включает по крайней мере один источник объектов, компонент оповещения, компонент расчета выражений и компонент сохранения. Компонент оповещения сконфигурирован с возможностью создания оповещений и включает сервис оповещений, анализатор объектов выражения оповещения, исполнитель оповещений. При этом сервис оповещений, анализатор объектов выражения оповещения и исполнитель оповещений взаимодействую друг с другом последовательно. Компонент расчета выражений сконфигурирован с возможностью мониторинга изменений объектов и включает по крайней мере один инициатор выражения, исполнитель выражения и список объектов для мониторинга. При этом список объектов для мониторинга взаимодействует с исполнителем оповещения, а по крайней мере один инициатор выражения взаимодействует с по крайней мере одним источником объектов и с исполнителем выражения. Компонент сохранения сконфигурирован с возможностью сохранения изменений в базе данных и включает модуль кэширования объектов и модуль сохранения объектов. При этом модуль кэширования объектов взаимодействует с исполнителем выражения и с модулем сохранения объектов, а модуль сохранения объектов взаимодействует с по крайней мере одной базой данных. [00017] A more complete technical result is achieved thanks to an alert management system that includes at least one user device with an interface, at least one database and a server connected to each other. In this case, the server includes at least one object source, a notification component, an expression evaluation component, and a storage component. The alert component is configured to generate alerts and includes an alert service, an alert expression object parser, and an alert executor. At the same time, the alert service, the alert expression object parser, and the alert executor interact with each other sequentially. The expression evaluation component is configured to monitor object changes and includes at least one expression initiator, expression executor, and a list of objects to monitor. In this case, the list of objects to be monitored interacts with the notification executor, and at least one expression initiator interacts with at least one source of objects and with the executor expressions. The persistence component is configured to persist changes to a database and includes an object caching module and an object persistence module. In this case, the object caching module interacts with the expression executor and with the object persistence module, and the object persistence module interacts with at least one database.

[00018] При этом по крайней мере одно пользовательское устройство необходимо для внесения изменений в объекты базы данных и/или для получения оповещений об изменениях. Интерфейс необходим пользовательскому устройству для информирования пользователя пользовательского устройства о происходящем. По крайней мере одна база данных необходима для организации доступа севера и пользовательского устройства к объектам базы данных, а сервер необходим для оповещения пользователя пользовательского устройства об изменениях в базе данных и сохранения изменений в базе данных. При этом по крайней мере один источник объектов необходим для организации доступа сервера к базе данных. Компонент оповещения необходим для создания оповещений. При этом сервис оповещений необходим для непосредственного создания оповещений на основе внесенных изменений и определения типа оповещения, анализатор объектов выражения оповещения необходим для необходим для расчета оповещения и формирования списка используемых объектов. Исполнитель оповещения необходим для выполнения пользовательского программного кода, который должен выполниться при срабатывании оповещения. При этом сервис оповещений, анализатор объектов выражения оповещения и исполнитель оповещения должны последовательно взаимодействовать друг с другом для создания оповещения. Компонент расчета выражений необходим для мониторинга изменений объектов. То, что компонент расчета выражений включает по крайней мере один инициатор выражения, необходим для генерации выражения, который определяет изменение объекта. Исполнитель выражения необходим для вычисления результата выражения, а список объектов для мониторинга необходим для определения того, изменение каких объектов необходимо мониторить для создания оповещения. То, что список объектов для мониторинга взаимодействует с исполнителем оповещения, а по крайней мере один инициатор выражения взаимодействует с по крайней мере одним источником объектов и с исполнителем выражения, необходимо для непосредственного мониторинга изменений объектов. Компонент сохранения необходим для сохранения изменений в базе данных. Модуль кэширования, при этом, необходим для организации быстрого доступа к объектам, а модуль сохранения объектов необходим для записи в базу данных, выполнения необходимых проверок и передачи событий в разные сервисы, в том числе в оповещения. To, что при этом модуль кэширования объектов взаимодействует с исполнителем выражения и с модулем сохранения объектов, а модуль сохранения объектов взаимодействует с по крайней мере одной базой данных, необходимо для непосредственной организации возможности сохранения изменений объектов в базе данных. [00018] At the same time, at least one user device is required to make changes to database objects and/or to receive change notifications. The interface is needed by the user device to inform the user of the user device about what is happening. At least one database is needed to organize access of the server and the user device to the database objects, and the server is needed to notify the user of the user device about changes in the database and save the changes to the database. At the same time, at least one source of objects is required to organize server access to the database. The alert component is required to create alerts. At the same time, the alert service is needed to directly create alerts based on the changes made and determine the type of alert, the alert expression object analyzer is needed to calculate the alert and generate a list of used objects. An alert executor is required to execute custom code that must be executed when an alert is fired. However, the alert service, the alert expression object parser, and the alert executor must interact sequentially with each other to create an alert. The expression evaluation component is required to monitor object changes. The fact that the expression evaluation component includes at least one expression initiator is necessary for the generation of an expression that specifies an object change. The executor of the expression is needed to evaluate the result of the expression, and the list of objects to monitor is needed to determine which objects need to be monitored for changes in order to generate an alert. The fact that the list of objects to monitor interacts with the notification executor, and at least one expression initiator interacts with at least one object source and the expression executor, is necessary to directly monitor object changes. The save component is required to save changes to the database. The caching module, at the same time, is necessary for organizing quick access to objects, and the object saving module is necessary for writing to the database, performing the necessary checks and transmitting events to various services, including notifications. The fact that the object caching module interacts with the expression executor and the object persistence module, and the object persistence module interacts with at least one database, is necessary for the direct organization of the ability to save changes to objects in the database.

[00019] По крайней мере одна база данных при этом может быть размещена на сервере и/или являться внешней базой данных в зависимости от конкретного применения настоящей системы. [00019] At least one database may be hosted on a server and/or be an external database, depending on the specific application of the present system.

[00020] В качестве по крайней мере одного инициатора выражения могут использовать прикладной код. [00020] Application code may be used as at least one initiator of the expression.

[00021] Также в системе управления оповещения могут быть организованы дополнительные варианты взаимодействия ее компонент и элементов, которые будут обеспечивать выполнения дополнительного технического результата. Например, для проверки того, сработало ли оповещение, или для обновления списка объектов для мониторинга. [00021] Also in the alert management system, additional options for the interaction of its components and elements can be organized, which will ensure the implementation of an additional technical result. For example, to check if an alert has worked, or to update the list of objects to monitor.

[00022] Также технический результат достигается способом управления оповещениями, по которому сначала изменяют объект из базы данных, а затем создают событие оповещения в виде выражения. При этом, на этапе изменения объекта из базы данных: изменяют объект при помощи пользовательского устройства; генерируют выражение, определяющее изменение объекта; вычисляют результат выражения; хранят объекты, используемые выражением; и сохраняют изменения объекта в источнике объектов при помощи модуля сохранения объектов. На этапе создания оповещения: определяют тип оповещения при помощи сервиса оповещений; рассчитывают выражение оповещения для определенного типа оповещений; формируют список изменившихся объектов, используемых при расчете выражения оповещения; исполняют оповещение; обновляют список объектов в списке объектов для мониторинга на основании рассчитанного выражения оповещения; и сохраняют изменения объекта в базе данных. [00022] Also, the technical result is achieved by a notification management method, according to which the object from the database is first changed, and then the notification event is created in the form of an expression. At the same time, at the stage of changing the object from the database: changing the object using the user device; generate an expression that defines the change of the object; calculate the result of the expression; store the objects used by the expression; and saving changes to the object in the object source using the object persistence module. At the stage of creating an alert: determine the type of alert using the alert service; calculate the alert expression for the specific alert type; forming a list of changed objects used in the calculation of the notification expression; execute notification; updating the list of objects in the list of objects to be monitored based on the calculated alert expression; and save changes to the object in the database.

[00023] При этом этап изменения объекта при помощи пользовательского устройства необходим для внесения изменения, на основе которого будет создано оповещение. Этап генерации выражения и вычисления результата выражения необходимы для изменения значения объектов, на основе которого будет производится расчет оповещения, а также для связи выражения с другими объектами, участвующими в расчете. Хранение объектов, используемых выражением, и сохранения изменения объекта в источнике объектов необходимы для создания списка объектов, связанных с оповещением. Этап определения типа оповещения необходим для определения того, быстрое это оповещение или нет, для последующего принятия решения о создании оповещения. Расчет выражения оповещения для определенного типа оповещений необходим для проверки, изменился ли результат выражения оповещения. Формирование списка изменившихся объектов необходим для сравнения его со списком объектов для мониторинга. Исполнение оповещения необходимо для непосредственного вывода оповещения на интерфейс пользовательского устройства. Обновление списка объектов в списке объектов для мониторинга на основании рассчитанного выражения необходим для последующего осуществления мониторинга объектами, в результате изменения которых может изменится значение выражения оповещения. Сохранение изменений объектов необходим для того, чтобы сохранить изменения, внесенные в объект пользователем, в базе данных. [00023] In this case, the step of changing the object using the user device is necessary to make a change on the basis of which an alert will be created. The stage of generating the expression and calculating the result of the expression is necessary to change the value of the objects on the basis of which the notification will be calculated, as well as to link the expression with other objects involved in the calculation. Storing the objects used by the expression and saving the change to the object in the object source is necessary to create a list of objects associated with the alert. The step of determining the type of alert is necessary to determine whether whether the alert is fast or not, for the subsequent decision to create an alert. Calculation of the alert expression for a specific alert type is required to check if the result of the alert expression has changed. Formation of the list of changed objects is necessary to compare it with the list of objects for monitoring. Execution of the notification is necessary for the direct output of the notification to the interface of the user device. Updating the list of objects in the list of objects for monitoring based on the calculated expression is necessary for the subsequent monitoring by objects, as a result of which changes the value of the notification expression may change. Saving changes to objects is necessary in order to save the changes made to the object by the user in the database.

[00024] На этапе исполнения оповещения при помощи исполнителя оповещения дополнительно могут исполнять программный код, включающийся в оповещение. Это может быть нужно в случае, если оповещение включает дополнительный программный код, позволяющий реализовывать сложные сценарии реакции на оповещение. [00024] At the stage of executing the alert, the alert executor can additionally execute the program code included in the alert. This may be necessary if the alert includes additional code that allows you to implement complex scenarios for reacting to the alert.

[00025] После этапа исполнения оповещения могут дополнительно проверять, было ли исполнено оповещение. Это могут реализовывать посредством передачи объектов из модуля сохранения объектов в список объектов для мониторинга, проверки наличия этого объекта в списке объектов для мониторинга и передачи оповещения в исполнитель оповещений. При этом, если оповещение по изменению этого объекта было исполнено, то могут передавать объект в сервис оповещений и визуализировать оповещение в пользовательском интерфейсе. [00025] After the step of executing the alerts, it may be further checked whether the alert has been executed. This can be done by passing objects from the object saver to the list of objects to monitor, checking if the object is in the list of objects to monitor, and sending an alert to the alert executor. At the same time, if the notification on the change of this object has been executed, then they can pass the object to the notification service and visualize the notification in the user interface.

[00026] После этапа исполнения оповещения также могут обновлять список объектов для мониторинга. Это могут делать посредством передачи объектов из модуля сохранения объектов в список объектов для мониторинга, передачи объекта анализатору объектов выражения оповещения и проверки того, изменился ли список объектов оповещения. В случае если список объектов изменился, то могут передавать новый список в список объектов для мониторинга и обновлять объект в списке объектов для мониторинга. [00026] After the execution phase, alerts can also update the list of objects to monitor. This can be done by passing objects from the object saver to the list of objects to monitor, passing the object to the object parser of the alert expression, and checking if the list of alert objects has changed. If the list of objects has changed, then they can transfer the new list to the list of objects for monitoring and update the object in the list of objects for monitoring.

[00027] При этом этапы проверки того, было ли исполнено оповещение, и обновления списка объектов для мониторинга могут производить параллельно для дополнительного ускорения процесса. [00027] At the same time, the steps of checking whether an alert has been executed and updating the list of objects to monitor can be performed in parallel to further speed up the process.

Описание чертежей [00028] На Фиг. 1 представлен схематичный вид системы управления оповещениями согласно настоящему изобретению. Description of drawings [00028] In FIG. 1 is a schematic view of an alert management system according to the present invention.

[00029] На Фиг. 2 представлен схематичный вид системы управления оповещениями с дополнительной возможностью проверки исполнения оповещения согласно настоящему изобретению. [00029] In FIG. 2 is a schematic view of an alert management system, with the additional capability of verifying the execution of an alert, in accordance with the present invention.

[00030] На Фиг. 3 представлен схематичный вид системы управления оповещениями с дополнительной возможностью обновления списка объектов для мониторинга согласно настоящему изобретению. [00030] In FIG. 3 is a schematic view of an alert management system with the additional ability to update the list of objects to be monitored in accordance with the present invention.

[00031] На Фиг. 4 представлен схематичный вид системы управления оповещениями со всеми дополнительными возможностями согласно настоящему изобретению. [00031] In FIG. 4 is a schematic view of an alert management system with all the additional features of the present invention.

[00032] На Фиг. 5 представлена блок-схема, иллюстрируются способ управления оповещениями, согласно настоящему изобретению. [00032] In FIG. 5 is a block diagram illustrating the notification management method according to the present invention.

[00033] На Фиг. 6 представлена блок-схема, иллюстрирующая дополнительные этапы способа управления оповещениями, позволяющие реализовать проверку исполнения оповещения, согласно настоящему изобретению. [00033] In FIG. 6 is a flow diagram illustrating the additional steps of the notification management method for implementing notification execution verification in accordance with the present invention.

[00034] На Фиг. 7 представлена блок-схема, иллюстрирующая дополнительные этапы способа управления оповещениями, позволяющие реализовать обновления списка объектов для мониторинга, согласно настоящему изобретению. [00034] In FIG. 7 is a flow diagram illustrating the additional steps of the alert management method for implementing updates to the list of objects to monitor in accordance with the present invention.

[00035] На Фиг. 8 представлена блок-схема, иллюстрирующая все дополнительные этапы способа управления оповещениями, согласно настоящему изобретению. [00035] In FIG. 8 is a flow diagram illustrating all of the additional steps in the method for managing alerts in accordance with the present invention.

Подробное описание Detailed description

[00036] В приведенном ниже подробном описании реализации изобретения приведены многочисленные детали реализации, призванные обеспечить отчетливое понимание настоящего изобретения. Однако, квалифицированному в предметной области специалисту очевидно, каким образом можно использовать настоящее изобретение, как с данными деталями реализации, так и без них. В других случаях, хорошо известные методы, процедуры и компоненты не описаны подробно, чтобы не затруднять излишнее понимание особенностей настоящего изобретения. [00036] In the following detailed description of the invention, numerous implementation details are provided to provide a clear understanding of the present invention. However, it will be obvious to one skilled in the art how the present invention can be used, both with and without these implementation details. In other cases, well-known methods, procedures and components are not described in detail so as not to obscure the features of the present invention.

[00037] Кроме того, из приведенного изложения ясно, что изобретение не ограничивается приведенной реализацией. Многочисленные возможные модификации, изменения, вариации и замены, сохраняющие суть и форму настоящего изобретения, очевидны для квалифицированных в предметной области специалистов. [00037] In addition, from the foregoing, it is clear that the invention is not limited to the above implementation. Numerous possible modifications, alterations, variations, and substitutions that retain the spirit and form of the present invention will be apparent to those skilled in the art.

[00038] На Фиг. 1 схематично представлена система управления оповещениями, сконфигурированная с возможностью изменения объектов и создания оповещений, согласно настоящему изобретению. Система включает по крайней мере одно пользовательское устройство 1 с интерфейсом ПО, сервер 2 и по крайней мере одну базу данных 3. Сервер 2, в свою очередь, включает по крайней мере один источник объектов 210, компонент оповещения 220, компонент расчета выражений 230 и компонент сохранения 240. Компонент оповещения 220 включает сервис оповещений 221, анализатор объектов выражения оповещения 222 и исполнитель оповещения 223. Компонент расчета выражений 230 включает инициатор выражения 231, исполнитель выражения 232 и список объектов для мониторинга 233. А компонент сохранения включает модуль кэширования объектов 241 и модуль сохранения объектов 242. При этом база данных 3 взаимодействует с источником объектов 210, который, в свою очередь, взаимодействует с интерфейсом ПО. При помощи интерфейса ПО возможно изменять объекты из по крайней мере одного источника объектов 210. Триггер о произошедшем изменении при помощи интерфейса ПО посылают во взаимодействующий с ним сервис оповещений 221, который взаимодействует с анализатором выражения объектов оповещения 222. Анализатор объектов выражения оповещения 222 взаимодействует с исполнителем оповещения 223, а исполнитель оповещения 223 - со списком объектов для мониторинга 230. По крайней мере один источник объектов 210 взаимодействует с инициатором выражения 231. Инициатор выражения 231 взаимодействует с исполнителем выражения 232, а исполнитель выражения 232 - с модулем кэширования объектов 241, который в свою очередь, взаимодействует с модулем сохранения объектов 242. Модуль сохранения объектов 242 взаимодействует с по крайней мере одной базой данных 3, что замыкает цепочку взаимодействия элементов системы управления оповещениями. Данная конфигурация системы позволяет изменять объекты из базы данных 3 и создавать оповещения, основанные на внесенных изменениях. [00038] In FIG. 1 is a schematic representation of an alert management system configured with the ability to modify objects and create alerts, according to the present invention. The system includes at least one user device 1 with a software interface, a server 2, and at least one database 3. Server 2, in turn, includes at least one object source 210, an alert component 220, an expression evaluation component 230, and a persistence component 240. The alert component 220 includes an alert service 221, an alert expression object parser 222, and an alert executor 223. The expression evaluation component 230 includes an expression initiator 231, an expression executor 232, and a list of objects to monitor 233. And a persistence component includes an object caching module 241 and a module storing objects 242. In this case, the database 3 interacts with the object source 210, which, in turn, interacts with the software interface. Using the software interface, it is possible to change objects from at least one source of objects 210. A change trigger is sent using the software interface to the alert service 221 interacting with it, which interacts with the alert object expression parser 222. The alert expression object parser 222 interacts with the performer alert 223 and alert 223 with a list of objects to monitor 230. At least one object source 210 interacts with an expression initiator 231. in turn, interacts with the object persistence module 242. The object persistence module 242 interacts with at least one database 3, which closes the chain of interaction between the alert management system elements. This system configuration allows you to modify objects from database 3 and generate alerts based on the changes made.

[00039] По крайней мере одно пользовательское устройство 1 может являться любой электронной вычислительной машиной (ЭВМ), сконфигурированной с возможностью выхода в Интернет и включающей память и процессор. Например, это может быть настольная ЭВМ такая, как персональный компьютер (ПК), домашний компьютер, моноблок, Plug PC (Plug Personal Computer), игровой компьютер. Также это может быть интернет-устройством, например, нетбуком, интернет-планшетом, планшетным нетбуков, неттопом. Также пользовательской устройство 1 может являться малой и/или мобильной ЭВМ, например, мобильным интернет-устройством, карманным ПК, ноутбуком, смартфоном и др. [00039] At least one user device 1 may be any electronic computer (computer) configured to access the Internet and includes a memory and a processor. For example, it can be a desktop computer such as a personal computer (PC), home computer, monoblock, Plug PC (Plug Personal Computer), gaming computer. It can also be an Internet device, such as a netbook, an Internet tablet, a netbook tablet, a nettop. Also, the user device 1 may be a small and/or mobile computer, such as a mobile Internet device, a PDA, a laptop, a smartphone, etc.

[00040] Интерфейс 110 пользовательского устройства 1 представляет собой границу между двумя функциональными объектами (пользовательским устройством 1 и сервером 2), требования к которой определяются стандартом; совокупность средств, методов и правил взаимодействия (управления, контроля и т. д.) между элементами системы. При этом, интерфейс 1 может использоваться как элемент пользовательского устройства 1, например, дисплей, набор кнопок и переключателей для настройки плюс правила управления ими, относящиеся к человека-машинному интерфейсу. Также могут использоваться клавиатура, мышь и пр. устройства ввода, являющиеся элементами интерфейса «человек — компьютер». Также оба вида интерфейсов могут использоваться в сочетании друг с другом. [00040] The user device 1 interface 110 is the boundary between two functional entities (the user device 1 and the server 2), the requirements for which are determined by the standard; a set of means, methods and rules of interaction (management, control, etc.) between the elements of the system. In this case, the interface 1 can be used as an element of the user device 1, for example, a display, a set of buttons and switches for settings, plus rules for managing them related to the human-machine interface. The keyboard, mouse, and other input devices, which are elements of the human-computer interface, can also be used. Also, both types of interfaces can be used in combination with each other.

[00041] Сервер 2 является одним из аппаратного обеспечения систему управления оповещениями. Он 2 может представлять собой выделенный или специализированный компьютер для выполнения сервисного программного обеспечения. Серверное (сервисное) программное обеспечение - это программный компонент вычислительной системы, выполняющий сервисные (обслуживающие) функции по запросу клиента, предоставляя ему доступ к определённым ресурсам или услугам. [00041] Server 2 is one of the alert management system hardware. It 2 may be a dedicated or specialized computer for executing service software. Server (service) software is a software component of a computing system that performs service (servicing) functions at the request of the client, providing him with access to certain resources or services.

[00042] Сервер 2 в рамках настоящего изобретения включает по крайней мере один источник объектов 210. Он 210 используется для связи объектов из базы данных 3 с сервером 2 и пользовательским устройством 1. Цифровой объект — объект, состоящий из структурированной последовательности байтов, имеющий название, уникальный идентификатор и атрибуты, описывающие его свойства. В рамках настоящего изобретения под цифровым объектом понимается любой документ, файл, таблица или какие-либо их компоненты, размещенные в цифровой среде. В предпочтительном варианте под объектом понимается элемент из базы данных 3. [00042] The server 2 within the framework of the present invention includes at least one source of objects 210. It 210 is used to communicate objects from the database 3 with the server 2 and the user device 1. Digital object - an object consisting of a structured sequence of bytes, having a name, a unique identifier and attributes describing its properties. In the context of the present invention, a digital object refers to any document, file, spreadsheet or any of their components placed in a digital environment. In the preferred embodiment, the object is an element from the database 3.

[00043] Компонент оповещений 220 предназначен для непосредственного создания оповещений. То, что он 220 включает сервис оповещений 221, позволяет определять тип оповещения. Оповещение - это автоматическое создание события при изменении значения выражения на языке выражений в результате изменения одного из объектов, участвующих в расчете значения выражения. Они делятся на два типа: быстрые и стандартные. Быстрые оповещения - это оповещения, для обработки которых не требуется циклический пересчет выражения оповещения. Для стандартных оповещений требуется регулярный пересчет. Стандартное оповещение вычисляется при работе процессов приложения через определённые промежутки времени. Объекты будут обновляться при пересчёте основного выражения оповещения формы, или дополнительного оповещения (если оно задано). Например, основное выражение для атрибута Атрибут! может быть задано как Кредит.Клиент, а дополнительное как Кредит.Клиент. Возраст. В этом случае, при изменении значения возраста клиента, все элементы формы, зависящие от атрибута Атрибут! будут обновлены. Идентификатор представляет собой «координаты» объекта в базе данных 3. [00043] The alerts component 220 is designed to generate alerts directly. The fact that it 220 includes the alert service 221 allows the type of alert to be determined. Notification is the automatic creation of an event when the value of an expression in the expression language changes as a result of a change in one of the objects involved in the calculation of the value of the expression. They are divided into two types: fast and standard. Fast alerts are alerts that do not require a round-robin recalculation of the alert expression to be processed. Standard alerts require regular recalculation. A standard alert is calculated when application processes run at regular intervals. Objects will be updated when the form's main alert expression is recalculated, or the secondary alert (if any) is recalculated. For example, the main expression for the attribute Attribute! can be specified as Credit.Client, and optionally as Credit.Client. Age. In this case, when changing the value of the client's age, all form elements that depend on the attribute Attribute! will be updated. The identifier represents the "coordinates" of the object in database 3.

[00044] Чтобы оповещение было быстрым, необходимо, чтобы выражение оповещения удовлетворяло следующему списку требований: в нем должны использоваться только функции, поддерживающиеся в быстрых оповещениях и в нем должны получать значения атрибутов контекстного типа. При этом атрибуты должны быть неколлекционными, и, в случае атрибутов формы, хранимыми. Допускается получение значения цепочки хранимых атрибутов, например, оповещение Клиент.Договор. Статус, получающая значение хранимого атрибута формы Клиент (ссылка на тип Клиент) будет быстрой. [00044] In order for a notification to be fast, the notification expression must satisfy the following list of requirements: it must use only the functions supported in fast notifications, and it must receive attribute values of the context type. At the same time, the attributes must be non-collectible, and, in the case of form attributes, stored. It is allowed to get the value of a chain of stored attributes, for example, notification Client.Contract. The status that receives the value of the stored attribute of the form Client (reference to type Client) will be fast.

[00045] Выражение представляет собой текст на языке выражений, который может быть рассчитан (исполнен). При этом в процессе расчета могут использоваться и изменяться значения атрибутов объектов. Оповещения, в свою очередь, являются сущностью, которая содержит в себе выражение и предназначено для уведомления создателя оповещения о том, что значение этого выражения изменилось. Такие выражения так именуются в тексте «выражения оповещения». Все прочие выражения, которые отправляются на исполнение прочими компонентами системы и генерируют изменения объектов именуются как «выражение». [00045] An expression is text in an expression language that can be calculated (executed). At the same time, the values of object attributes can be used and changed in the calculation process. Alerts, in turn, are an entity that contains an expression and is intended to notify the creator of the alert that the value of this expression has changed. Such expressions are referred to in the text as "alert expressions". All other expressions that are sent for execution by other components of the system and generate changes to objects are referred to as an "expression".

[00046] Анализатор объектов выражения оповещения 222 при создании нового экземпляра оповещения рекурсивно обрабатывает выражение, как при расчете его значения, но кроме непосредственно расчета формирует список объектов, которые были использованы при расчете выражения. Эти объекты попадают в список объектов для мониторинга 233. [00046] The alert expression object parser 222, when creating a new alert instance, recursively processes the expression as if it were evaluating its value, but in addition to the calculation itself, it generates a list of objects that were used in evaluating the expression. These objects fall into the list of objects for monitoring 233.

[00047] Исполнитель оповещения 223 является исполнительным адаптером, предназначенным для исполнения самого оповещения. Также он 223 может содержать пользовательский программный код, который должен выполниться при срабатывании оповещения. Результатом срабатывания оповещения может быть как обновление некоторых частей пользовательского интерфейса ПО, которые явно помечены, как зависящие от оповещения, так и исполнение произвольного программного кода, что позволяет реализовывать сложные сценарии реакции на оповещение. [00047] The alert executor 223 is an execution adapter for executing the alert itself. Also, it 223 may contain user program code to be executed when the alert is triggered. The result of triggering an alert can be either an update of some parts of the user interface of the software that are explicitly marked as depending on the alert, or the execution of arbitrary program code, which allows you to implement complex scenarios for reacting to the alert.

[00048] При этом последовательное взаимодействие сервиса оповещений 221, анализатора объектов выражения оповещения 222 и исполнителя оповещения 223 позволяет создавать оповещение, определять его тип, связанные с оповещением объекты и их идентификаторы, а также непосредственно исполнять оповещение. [00049] Компонент расчета выражений 230 представляет собой слой проверки изменений объектов. При любом изменении объектов каким-либо способом — через интерфейс пользователя или автоматизированными обработчиками данных — все изменяемые или удаляемые объекты проверяются на то, включены ли они в список объектов для мониторинга 233. Он включает по крайней мере один инициатор выражений 231, исполнитель выражений 232 и список объектов для мониторинга 233. [00048] At the same time, the sequential interaction of the alert service 221, the alert expression object parser 222, and the alert executor 223 allows you to create an alert, determine its type, objects associated with the alert and their identifiers, and directly execute the alert. [00049] The expression evaluation component 230 is an object change checking layer. Whenever objects are changed in any way—through the user interface or by automated data handlers—all changed or deleted objects are checked to see if they are included in the list of objects to be monitored 233. This includes at least one expression initiator 231, expression executor 232, and list of objects for monitoring 233.

[00050] Инициатор выражений 231 предназначен для генерации выражений, соответствующего изменению объектов. Исполнитель выражений 232 представляет собой вычислитель выражения оповещения, который проверяет, изменился ли результат выражения оповещения, а также формирует новый список объектов, которые участвовали в расчете выражения оповещения. Список объектов для мониторинга 233, в свою очередь, хранит идентификаторы объектов, которые необходимо проверять при изменении, а также карту соответствия объекта и списка оповещений, которые от него зависят. [00050] The initiator of expressions 231 is designed to generate expressions corresponding to the change of objects. The expression executor 232 is an alert expression evaluator that checks whether the result of the alert expression has changed and also generates a new list of objects that participated in the evaluation of the alert expression. The list of objects to monitor 233, in turn, stores the identifiers of objects that need to be checked when changing, as well as a map of the object and the list of alerts that depend on it.

[00051] При этом исполнитель оповещений 223 взаимодействует со списком объектов для мониторинга 233 для проверки того, включен ли объект, по которому должно быть исполнено оповещение, в список объектов для мониторинга 233. А инициатор выражений 232 взаимодействует с по крайней мере одним источником объектов 231 для того, чтобы детектировать изменения объектов для последующего создания события оповещения, связанного с объектом, а с исполнителем выражения 232 - для передачи ему выражения с целью последующего вычисления значения выражения. [00051] At the same time, the notification executor 223 interacts with the list of objects to monitor 233 to check whether the object on which the notification should be executed is included in the list of objects to monitor 233. And the initiator of expressions 232 interacts with at least one source of objects 231 in order to detect changes to objects for the subsequent creation of a notification event associated with the object, and with the expression executor 232 - to pass an expression to it in order to subsequently calculate the value of the expression.

[00052] Компонент сохранения 240 при этом предназначен для сохранения изменений объектов из базы данных 3. Модуль кэширования объектов 241 может осуществлять временное хранение изменений. В сфере вычислительной обработки данных кэш - это высокоскоростной уровень хранения, на котором требуемый набор данных, как правило, временного характера. Доступ к данным на этом уровне осуществляется значительно быстрее, чем к основному месту их хранения. С помощью кэширования становится возможным эффективное повторное использование ранее полученных или вычисленных данных. [00052] The persistence component 240 is then designed to store object changes from the database 3. The object cache module 241 may temporarily store the changes. In data computing, a cache is a high-speed storage layer in which a required set of data is typically temporary. Access to data at this level is carried out much faster than to the main place of their storage. With the help of caching, it becomes possible to efficiently reuse previously received or calculated data.

[00053] При этом изменения объектов также может осуществляться модулем сохранения объектов 242, подключенному к по крайней мере одной базе данных 3. Он 242 записывает в базу данных 3, выполняя необходимые проверки и передачу событий в разные сервисы, в том числе в оповещения. [00053] At the same time, object changes can also be carried out by the object persistence module 242 connected to at least one database 3. It 242 writes to the database 3, performing the necessary checks and transmitting events to various services, including alerts.

[00054] Система управления оповещениями, показанная на Фиг. 1, работает следующим образом. Сначала осуществляют изменения объекта при помощи пользовательского устройства 1. Изменение, как триггерное событие, посылается в инициатор выражений 231, который генерирует выражение, определяющее изменение объекта. Затем сгенерированное выражение посылают в исполнитель выражений 232, при помощи которого, в свою очередь, вычисляют результат выражения. После этого объекты, которые были использованы в ходе вычисления выражения, посылают в модуль кэширования объектов 241, в котором производят временное хранение объектов с изменениями, а затем их передают в модуль сохранения объектов 242, который, в свою очередь, сохраняет измененные объекты в источнике объектов 210. Одновременно с изменением объекта также производится создание события оповещения об этом изменении. При помощи сервиса оповещений 221 определяют тип оповещения, как это было описано выше. Для определенного типа оповещений, а именно для быстрых оповещений, далее рассчитывают выражение при помощи анализатора объектов выражения оповещения 222. На этом этапе формируют список объектов, которые были использованы при расчете выражения оповещения также при помощи анализатора объектов выражения оповещения 222. Список состоит из изменившихся объектов, использованных при расчете выражения оповещения. После этого исполняют оповещения при помощи исполнителя оповещения 223. Исполнитель оповещения 223, помимо самого оповещения, также может исполнить программный код, который может быть включен в исполнитель оповещения 223. После этого сохраняют изменения объекта при помощи модуля сохранения объектов 242 в базе данных 3. [00054] The alert management system shown in FIG. 1 works as follows. First, object changes are made using user device 1. The change, as a trigger event, is sent to an expression initiator 231 which generates an expression specifying the change of the object. The generated expression is then sent to the expression executor 232, which in turn evaluates the result of the expression. After that, the objects that were used during the evaluation of the expression are sent to the object cache module 241, which temporarily stores the objects with changes, and then they are transferred to the object saver 242, which in turn stores the changed objects in the object source 210. Simultaneously with the change of the object, a notification event about this change is also created. Using the service alerts 221 determine the type of alert, as described above. For a certain type of alerts, namely for quick alerts, the expression is then calculated using the alert expression object parser 222. At this stage, a list of objects that were used in the calculation of the alert expression, also using the alert expression object parser 222, is formed. The list consists of changed objects used in evaluating the alert expression. After that, notifications are executed using the notification executor 223. The notification executor 223, in addition to the notification itself, can also execute program code that can be included in the notification executor 223. After that, object changes are saved using the object saver 242 in the database 3.

[00055] На Фиг. 2 изображен схематичный вид системы управления оповещениями с дополнительной возможностью проверки исполнения оповещения согласно настоящему изобретению. Возможность проверки исполнения оповещений является дополнительным техническим результатам в рамках настоящего изобретения, который может быть достигнут посредством добавления дополнительных вариантов взаимодействия элементов системы управления оповещениями, показанных на Фиг. 2. При этом для достижения одновременного дополнительного и основного технических результатов вышеописанные и нижеописанные взаимодействия должны использоваться в сочетании. [00055] In FIG. 2 is a schematic view of an alert management system, with the additional capability of verifying the execution of an alert, in accordance with the present invention. The ability to check the execution of alerts is an additional technical result in the framework of the present invention, which can be achieved by adding additional interaction options for the elements of the alert management system shown in FIG. 2. In this case, in order to achieve simultaneous additional and main technical results, the above and below described interactions must be used in combination.

[00056] Модуль сохранения объектов 242 может дополнительно взаимодействовать со списком объектов для мониторинга 233. Это может быть нужно для того, что передавать объекты, сохраненные в базе данных 3 модулем сохранения объектов 242, в список объектов для мониторинга 233. При помощи списка объектов для мониторинга 233 при этом проверяют наличие этого объекта в списке 233. [00056] The object store module 242 may further interact with the list of objects to monitor 233. This may be necessary in order to transfer the objects stored in the database 3 by the object store module 242 to the list of objects to monitor 233. Using the list of objects to monitor 233. monitoring 233 check the presence of this object in the list 233.

[00057] Список объектов для мониторинга 233, в свою очередь, может взаимодействовать с исполнителем оповещения 223. Таким образом, список объектов для мониторинга 233 передает исполнителю оповещения 223 информацию о том, присутствует ли этот объект в списке 233, а также сам объект. Он 223 проверяет, было ли исполнено оповещение по изменению этого объекта. [00057] The list of objects to monitor 233, in turn, can interact with the alert performer 223. Thus, the list of objects to monitor 233 conveys to the alert performer 223 information about whether whether this object is present in the list 233, as well as the object itself. It 223 checks to see if a notification has been executed to change this object.

[00058] Исполнитель оповещений 223 может дополнительно взаимодействовать с сервисом оповещений 221, а сервис оповещений 221 взаимодействует с интерфейсом ПО. В таком случае, если оповещения по изменению объекта было исполнено, передают объект от исполнителя оповещений 223 в сервис оповещений 221, а затем в интерфейс ПО, в котором визуализируют оповещение при помощи сервиса оповещений 221. [00058] The alert executor 223 may further interact with the alert service 221, and the alert service 221 interacts with the software interface. In this case, if the object change notification has been executed, the object is transferred from the notification executor 223 to the notification service 221, and then to the software interface, in which the notification is visualized using the notification service 221.

[00059] Сама визуализация оповещения может подразумевать под собой изменение визуального воплощения объектов, т.е. само внесенное изменение, а также некоторое всплывающее окно с оповещением об изменении. Эти варианты визуализации оповещения могут использоваться как по отдельности, так и в сочетании. При этом, если в исполнителе оповещений 223 содержится дополнительный пользовательский программный код, могут проводить визуализацию оповещения различными сложными сценариями. Например, оповещения может включать функциональные элементы такие, как кнопки, поля ввода и др. Таким образом, будут реализованы различные способы реакции пользователя на оповещения. Например, он может отменить изменение, принять его, отправить запрос на проверку корректности внесенных изменений и др. [00059] The visualization of the notification itself may imply a change in the visual embodiment of objects, i.e. the change itself, as well as some pop-up notification of the change. These alert visualization options can be used individually or in combination. At the same time, if the notification executor 223 contains additional user program code, the notification can be visualized by various complex scenarios. For example, alerts may include functional elements such as buttons, input fields, etc. Thus, various ways of user reaction to alerts will be implemented. For example, he can cancel the change, accept it, send a request to check the correctness of the changes made, etc.

[00060] Часть системы управления оповещениями, показанная на Фиг. 2, работает следующим образом. После этапа исполнения оповещения исполнителем оповещений 223 проверяют, исполнено ли оповещение. При этом передают объекты из модуля сохранения объектов 242 в список объектов для мониторинга 233. При помощи списка объектов для мониторинга 233 проверяют наличие этого объекта в списке 233 и передают информацию о наличии/отсутствии объекта в списке, а также сам объект (точнее, его идентификатор) в исполнитель оповещений 223. Если оповещение по изменению этого объекта было исполнено, то передают объект в сервис оповещений 221, а затем визуализируют оповещение в пользовательском интерфейсе ПО при помощи сервиса оповещений 221. [00060] The portion of the alert management system shown in FIG. 2 works as follows. After the step of executing the alert by the alert executor 223, it is checked whether the alert has been executed. At the same time, objects are transferred from the object storage module 242 to the list of objects for monitoring 233. Using the list of objects for monitoring 233, they check the presence of this object in the list 233 and transmit information about the presence / absence of the object in the list, as well as the object itself (more precisely, its identifier ) to the notification executor 223. If the notification to change this object has been executed, then the object is transferred to the notification service 221, and then the notification is visualized in the user interface of the software using the notification service 221.

[00061] Система управления оповещениями, показанная на Фиг. 1, в сочетании с дополнительными взаимодействиями, показанными на Фиг. 2, работает следующим образом. Сначала осуществляют изменения объекта при помощи пользовательского устройства 1. Изменение, как триггерное событие, посылается в инициатор выражений 231, который генерирует выражение, определяющее изменение объекта. Затем сгенерированное выражение посылают в исполнитель выражений 232, при помощи которого, в свою очередь, вычисляют результат выражения. После этого объекты, которые были использованы в ходе вычисления выражения, посылают в модуль кэширования объектов 241, в котором производят временное хранение объектов с изменениями, а затем их передают в модуль сохранения объектов 242, который, в свою очередь, сохраняет измененные объекты в источнике объектов 210. Одновременно с изменением объекта также производится создание события оповещения об этом изменении в ссылки на оповещение. При помощи сервиса оповещений 221 определяют тип оповещения, как это было описано выше. Для определенного типа оповещений, а именно для быстрых оповещений, далее рассчитывают выражение при помощи анализатора объектов выражения оповещения 222. На этом этапе формируют список объектов, которые были использованы при расчете выражения оповещения также при помощи анализатора объектов выражения оповещения 222. Список состоит из изменившихся объектов, использованных при расчете выражения оповещения. После этого исполняют оповещения при помощи исполнителя оповещения 223. Исполнитель оповещения 223, помимо самого оповещения, также может исполнить программный код, который может быть включен в исполнитель оповещения 223. После этого сохраняют изменения объекта при помощи модуля сохранения объектов 242 в базе данных 3. После этапа исполнения оповещения исполнителем оповещений 223 также проверяют, исполнено ли оповещение. При этом передают объекты из модуля сохранения объектов 242 в список объектов для мониторинга 233. При помощи списка объектов для мониторинга 233 проверяют наличие этого объекта в списке 233 и передают информацию о наличии/отсутствии объекта в списке, а также сам объект (точнее, его идентификатор) в исполнитель оповещений 223. Если оповещение по изменению этого объекта было исполнено, то передают объект в сервис оповещений 221, а затем визуализируют оповещение в пользовательском интерфейсе ПО при помощи сервиса оповещений 221. [00061] The alert management system shown in FIG. 1 in combination with additional interactions shown in FIG. 2 works as follows. First, changes are made to the object using the user device 1. The change is sent as a trigger event to the expression initiator 231, which generates an expression defining the change of the object. The generated expression is then sent to the expression executor 232, which in turn evaluates the result of the expression. After that, the objects that were used during the evaluation of the expression are sent to the object cache module 241, which temporarily stores the objects with changes, and then they are passed to the object saver 242, which in turn saves the changed objects to the object source 210. At the same time as the object is changed, a notification event about this change is also generated in the notification links. Using the service alerts 221 determine the type of alert, as described above. For a certain type of alerts, namely for quick alerts, the expression is then calculated using the alert expression object parser 222. At this stage, a list of objects that were used in the calculation of the alert expression, also using the alert expression object parser 222, is formed. The list consists of changed objects used in evaluating the alert expression. After that, notifications are executed using the notification executor 223. The notification executor 223, in addition to the notification itself, can also execute program code that can be included in the notification executor 223. After that, changes to the object are saved using the object saver 242 in the database 3. After the stage of executing the notification by the notification executor 223 also checks whether the notification has been executed. At the same time, objects are transferred from the object storage module 242 to the list of objects for monitoring 233. Using the list of objects for monitoring 233, they check the presence of this object in the list 233 and transmit information about the presence / absence of the object in the list, as well as the object itself (more precisely, its identifier ) to the notification executor 223. If the notification to change this object has been executed, then the object is transferred to the notification service 221, and then the notification is visualized in the user interface of the software using the notification service 221.

[00062] На Фиг. 3 изображен схематичный вид системы управления оповещениями с дополнительной возможностью обновления списка объектов для мониторинга 233 согласно настоящему изобретению. Возможность обновления списка объектов для мониторинга 233 является дополнительным техническим результатам в рамках настоящего изобретения, который может быть достигнут посредством добавления дополнительных вариантов взаимодействия элементов системы управления оповещениями, показанных на Фиг. 3. При этом для достижения одновременного дополнительного и основного технических результатов варианты взаимодействия, показанные на Фиг. 1, и нижеописанные взаимодействия должны использоваться в сочетании. [00062] In FIG. 3 is a schematic view of an alert management system with the additional ability to update the list of objects to be monitored 233 in accordance with the present invention. The ability to update the list of objects for monitoring 233 is an additional technical result in the framework of the present invention, which can be achieved by adding additional interaction options for the elements of the alert management system shown in FIG. 3. At the same time, in order to achieve simultaneous additional and main technical results, the interaction options shown in FIG. 1 and the interactions described below should be used in combination.

[00063] Как показано на Фиг. 3, модуль сохранения объектов 242 может взаимодействовать со списком объектов для мониторинга 233. Это может быть необходимо для проверки того, содержатся ли сохраненные объекты в списке 233. [00064] Список объектов для мониторинга 233 может дополнительно взаимодействовать с анализатором объектов выражения оповещения 222 двусторонне. Это может быть необходимо для проверки того, изменился ли список объектов выражения оповещения. [00063] As shown in FIG. 3, the object persistence module 242 may interact with the list of objects to monitor 233. This may be necessary to check if the stored objects are contained in the list 233. [00064] The list of objects to monitor 233 may further interact with the object parser of the alert expression 222 in a two-way manner. This may be necessary to check if the list of alert expression objects has changed.

[00065] Часть системы управления оповещениями, показанная на Фиг. 3, работает следующим образом. После этапа исполнения оповещения исполнителем оповещений 223 обновляют список объектов для мониторинга 233. Для этого сначала передают объекты из модуля сохранения объектов 242 в список объектов для мониторинга 233. В нем 233 производится проверка того, содержатся ли сохраненные объекты в списке 233. После этого объект передают анализатору объектов выражения оповещения 222. При помощи анализатора 222 проверяют, изменился ли список объектов выражения оповещения. Если список объектов выражения оповещения изменился, то передают новый список в список объектов для мониторинга 233 и обновляют список 233 новым списком. [00065] The portion of the alert management system shown in FIG. 3 works as follows. After the notification execution step, the notification executor 223 updates the list of objects for monitoring 233. To do this, objects are first transferred from the object storage module 242 to the list of objects for monitoring 233. It checks 233 whether the stored objects are contained in the list 233. After that, the object is transferred to the alert expression object parser 222. The parser 222 checks to see if the list of alert expression objects has changed. If the list of objects of the alert expression has changed, then the new list is passed to the list of objects to be monitored 233 and the list 233 is updated with the new list.

[00066] Система управления оповещениями, показанная на Фиг. 1, в сочетании с дополнительными взаимодействиями, показанными на Фиг. 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, а затем визуализируют оповещение в пользовательском интерфейсе ПО при помощи сервиса оповещений 221. [00066] The alert management system shown in FIG. 1 in combination with additional interactions shown in FIG. 3 works as follows. First, changes are made to the object using the user device 1. The change is sent as a trigger event to the expression initiator 231, which generates an expression defining the change of the object. The generated expression is then sent to the expression executor 232, which in turn evaluates the result of the expression. After that, the objects that were used during the evaluation of the expression are sent to the object cache module 241, which temporarily stores the objects with changes, and then they are transferred to the object saver 242, which in turn stores the changed objects in the object source 210. Simultaneously with the change of the object, a notification event about this change is also created in the form of a link to the notification. Using the service alerts 221 determine the type of alert, as described above. For a certain type of alerts, namely for quick alerts, the alert expression is then calculated using the alert expression object analyzer 222. At this stage, a list of objects that were used in the alert calculation also using the alert expression object analyzer 222 is formed. The list consists of changed objects used in evaluating the alert expression. After that, notifications are executed using the notification executor 223. The notification executor 223, in addition to the notification itself, can also execute program code that can be included in the notification executor 223. After that, changes to the object are saved using the module for storing objects 242 in the database 3. After the stage of execution of the notification by the notification executor 223, the list of objects for monitoring 233 is also updated and in parallel it is checked whether the notification has been executed. To update the list of objects to monitor 233, objects are first passed from the object saver 242 to the list of objects to be monitored 233. It checks 233 whether the stored objects are contained in the list 233. After that, the object is passed to the object analyzer of the notification expression 222. Using the analyzer 222 check if the list of alert expression objects has changed. If the list of objects of the alert expression has changed, then the new list is passed to the list of objects to be monitored 233 and the list 233 is updated with the new list. In this case, the verification of notification execution is performed as follows. Objects are transferred from the object storage module 242 to the list of objects for monitoring 233. Using the list of objects for monitoring 233, the presence of this object is checked in the list 233 and information about the presence / absence of the object in the list, as well as the object itself (more precisely, its identifier) is transmitted to notification executor 223. If the notification to change this object has been executed, then the object is transferred to the notification service 221, and then the notification is visualized in the user interface of the software using the notification service 221.

[00067] При этом варианты взаимодействия элементов системы управления оповещениями, показанные на Фиг. 1, Фиг. 2 и Фиг. 3, могут использоваться в сочетании, как это показано на Фиг. 4. Сначала осуществляют изменения объекта при помощи пользовательского устройства 1. Изменение, как триггерное событие, посылается в инициатор выражения 231, который генерирует выражение, определяющее изменение объекта. Затем сгенерированное выражение посылают в исполнитель выражений 232, при помощи которого, в свою очередь, вычисляют результат выражения. После этого объекты, которые были использованы в ходе вычисления выражения, посылают в модуль кэширования объектов 241, в котором производят временное хранение объектов с изменениями, а затем их передают в модуль сохранения объектов 242, который, в свою очередь, сохраняет измененные объекты в источнике объектов 210. Одновременно с изменением объекта также производится создание события оповещения об этом изменении в виде ссылки на оповещение. При помощи сервиса оповещений 221 определяют тип оповещения, как это было описано выше. Для определенного типа оповещений, а именно для быстрых оповещений, далее рассчитывают выражение оповещения при помощи анализатора объектов выражения оповещения 222. На этом этапе формируют список объектов, которые были использованы при расчете выражения оповещения также при помощи анализатора объектов выражения оповещения 222. Список состоит из изменившихся объектов, использованных при расчете выражения оповещения. После этого исполняют оповещение при помощи исполнителя оповещения 223. Исполнитель оповещения 223, помимо самого оповещения, также может исполнить программный код, который может быть включен в исполнитель оповещения 223. После этого сохраняют изменения объекта при помощи модуля сохранения объектов 242 в базе данных 3. После этапа исполнения оповещения исполнителем оповещений 223 также обновляют список объектов для мониторинга 233. Для этого сначала передают объекты из модуля сохранения объектов 242 в список объектов для мониторинга 233. В нем 233 производится проверка того, содержатся ли сохраненные объекты в списке 233. После этого объект передают анализатору объектов выражения оповещения 222. При помощи анализатора 222 проверяют, изменился ли список объектов выражения оповещения. Если список объектов оповещения изменился, то передают новый список в список объектов для мониторинга 233 и обновляют список 233 новым списком. [00067] At the same time, the interaction options for the elements of the notification management system shown in FIG. 1, Fig. 2 and FIG. 3 can be used in combination as shown in FIG. 4. First, changes to the object are carried out using the user device 1. The change is sent as a trigger event to the initiator of the expression 231, which generates an expression defining the change of the object. The generated expression is then sent to the expression executor 232, which in turn evaluates the result of the expression. After that, the objects that were used during the evaluation of the expression are sent to the object cache module 241, which temporarily stores the objects with changes, and then they are transferred to the object saver 242, which in turn stores the changed objects in the object source 210. Simultaneously with the change of the object, a notification event about this change is also created in the form of a link to the notification. Using the service alerts 221 determine the type of alert, as described above. For a certain type of alerts, namely for quick alerts, the alert expression is then calculated using the alert expression object analyzer 222. At this stage, a list of objects that were used in the calculation of the expression is generated. alerts also using the alert expression object parser 222. The list consists of the changed objects used in the calculation of the alert expression. After that, the notification is executed using the notification executor 223. The notification executor 223, in addition to the notification itself, can also execute program code that can be included in the notification executor 223. After that, changes to the object are saved using the object saver 242 in the database 3. After At the notification execution stage, the notification executor 223 also updates the list of objects for monitoring 233. To do this, objects are first transferred from the object storage module 242 to the list of objects for monitoring 233. It checks 233 whether the stored objects are contained in the list 233. After that, the object is transferred to the alert expression object parser 222. The parser 222 checks to see if the list of alert expression objects has changed. If the list of notification objects has changed, then the new list is passed to the list of objects to be monitored 233 and the list 233 is updated with the new list.

[00068] База данных 3, являющаяся частью системы управления оповещениями, может быть как размещена на сервере 2, так и являться внешней базой данных. При этом могут также использоваться внешние базы данных и базы данных, размещенные на сервере в сочетании. Их может быть любое количество, в зависимости от конкретного воплощения системы и нужд. [00068] The database 3, which is part of the notification management system, can be either hosted on the server 2 or be an external database. It can also use external databases and databases hosted on the server in combination. There can be any number of them, depending on the specific implementation of the system and needs.

[00069] В качестве по крайней мере одного инициатора выражения 231 может использоваться прикладной код (формы). Также могут использоваться процессы и вебсервисы. [00069] Application code (forms) may be used as at least one initiator of expression 231 . Processes and web services can also be used.

[00070] Интерфейс ПО пользовательского устройства 1 может быть реализован любым человекочитаемым способом, т.е. в виде любого человеко-машинного интерфейса. Например, с помощью интерфейса командной строки. Интерфейс командной строки - это интерфейс пользователя, реализованный с помощью набирания пользователем текста команд и чтения текста ответов. Также может использоваться жестовый интерфейс, позволяющий пользователю взаимодействовать с ЭВМ (отдавать ей команды) при помощи жестов. В этом случае, также стоит предусмотреть включение в пользовательское устройство 1 камеры и/или веб-камеры, способной распознавать движения человека. Также возможна реализация голосового интерфейса, при помощи которого команды отдаются голосом. В этом случае, к пользовательскому устройству 1 должен быть подключен также микрофон. Наиболее предпочтительным вариантом является использование графического интерфейса пользователя. Он реализуется посредством формирования графических изображений и манипулирования ими. [00071] На Фиг. 5 изображена блок-схема, иллюстрирующая способ управления оповещениями, согласно которому работает система управления оповещениями, показанная на Фиг. 1. Сначала осуществляют изменения объекта при помощи пользовательского устройства 1. Изменение, как триггерное событие, посылается в инициатор выражения 231, который генерирует выражение, определяющее изменение объекта. Затем сгенерированное выражение посылают в исполнитель выражений 232, при помощи которого, в свою очередь, вычисляют результат выражения. После этого объекты, которые были использованы в ходе вычисления выражения, посылают в модуль кэширования объектов 241, в котором производят временное хранение объектов с изменениями, а затем их передают в модуль сохранения объектов 242, который, в свою очередь, сохраняет измененные объекты в источнике объектов 210. Одновременно с изменением объекта также производится создание события оповещения об этом изменении в виде ссылки на оповещение. При помощи сервиса оповещений 221 определяют тип оповещения, как это было описано выше. Для определенного типа оповещений, а именно для быстрых оповещений, далее рассчитывают выражение оповещения при помощи анализатора объектов выражения оповещения 222. На этом этапе формируют список объектов, которые были использованы при расчете выражения оповещения также при помощи анализатора объектов выражения оповещения 222. Список состоит из изменившихся объектов, использованных при расчете выражения оповещения. После этого исполняют оповещения при помощи исполнителя оповещения 223. Исполнитель оповещения 223, помимо самого оповещения, также может исполнить программный код, который может быть включен в исполнитель оповещения 223. После этого сохраняют изменения объекта при помощи модуля сохранения объектов 242 в базе данных 3. [00070] The software interface of the user device 1 may be implemented in any human-readable manner, i. e. in the form of any human-machine interface. For example, using the command line interface. The command line interface is a user interface implemented by the user typing command text and reading response text. A gesture interface can also be used, allowing the user to interact with the computer (give commands to it) using gestures. In this case, it is also worthwhile to provide for the inclusion in the user device 1 of a camera and/or a webcam capable of recognizing human movements. It is also possible to implement a voice interface, with the help of which commands are given by voice. In this case, a microphone must also be connected to user device 1. The most preferred option is to use the graphical user interface. It is implemented through the formation of graphic images and their manipulation. [00071] In FIG. 5 is a block diagram illustrating the notification management method according to which the notification management system shown in FIG. 1. First, changes to the object are made using the user device 1. The change is sent as a trigger event to the expression initiator 231, which generates an expression specifying the change of the object. The generated expression is then sent to the expression executor 232, which in turn evaluates the result of the expression. After that, the objects that were used during the evaluation of the expression are sent to the object cache module 241, which temporarily stores the objects with changes, and then they are transferred to the object saver 242, which in turn stores the changed objects in the object source 210. Simultaneously with the change of the object, a notification event about this change is also created in the form of a link to the notification. Using the service alerts 221 determine the type of alert, as described above. For a certain type of alerts, namely for quick alerts, the alert expression is then calculated using the alert expression object analyzer 222. At this stage, a list of objects that were used in the calculation of the alert expression also using the alert expression object analyzer 222 is formed. The list consists of changed objects used in the calculation of the alert expression. After that, notifications are executed using the notification executor 223. The notification executor 223, in addition to the notification itself, can also execute program code that can be included in the notification executor 223. After that, object changes are saved using the object saver 242 in the database 3.

[00072] Этап изменения объекта при помощи пользовательского устройства 1 может подразумевать изменение его визуального воплощения, изменение данных, содержащихся в объекте и др. Это может производится посредством дополнительных устройств ввода, например, посредством компьютерной мыши, клавиатуры и других устройств ввода, например, микрофона. [00072] The stage of changing the object using the user device 1 may involve changing its visual embodiment, changing the data contained in the object, etc. This can be done through additional input devices, for example, through a computer mouse, keyboard and other input devices, for example, a microphone .

[00073] Этап генерации идентификатора подразумевает анализ «координаты» объекта в базе данных 3. «Координата» - это идентификатор объекта. Идентификатор, как «координата» объекта, при этом также задает идентификатор оповещения. [00073] The ID generation step involves parsing the "coordinate" of the object in the database 3. "Coordinate" is the ID of the object. Identifier, as the "coordinate" of the object, while also setting the alert identifier.

[00074] На этапе вычисления результата выражения оповещения, выражение, по сути, «распаковывают», определяя, какие объекты задействованы в расчете конкретного выражения. Например, выражение Клиент.Договор. Статус включает объекты: Статус, доступный по выражению Клиент.Договор. Статус, Договор, доступный по выражению Клиент.Договор, и Клиент, доступный по выражению Клиент. Для определения всей цепочки использованных объектов исполнитель выражений 232 рекурсивно вычисляет выражение, формируя при этом список использованных объектов. Список использованных объектов отправляют в модуль кэширования объектов 241 для возможности временного быстрого доступа к ним, а также сохраняют их в источнике объектов 210 для последующего создания оповещения. [00074] At the stage of evaluating the result of the alert expression, the expression is essentially "unpacked" by determining which objects are involved in the calculation of a particular expression. For example, the expression Client.Agreement. Status includes objects: Status, available by expression Client.Agreement. Status, Agreement, available by expression Client.Agreement, and Client, available by expression Client. To determine the entire chain of used objects, the expression executor 232 recursively evaluates the expression, thus forming a list of used objects. The list of used objects is sent to the object caching module 241 for temporary quick access to them, and also stored in the object source 210 for later creation of an alert.

[00075] Определения типа оповещения подразумевает определение того, является оповещение быстрым или стандартным, на основании того, используются ли в нем только функции, поддерживающиеся в быстрых оповещениях, и на основании получения значения атрибутов контекстного типа, как это было описано ранее. При этом оповещения исполняют только для быстрых оповещений. В случае, если оповещение стандартное, то на этапе определения типа оповещения алгоритм завершает свою работу. [00075] Alert type determinations involve determining whether an alert is a quick alert or a standard alert based on whether it uses only features supported in quick alerts and based on getting the context type attribute value as previously described. In this case, notifications are executed only for fast notifications. If the notification is standard, then at the stage of determining the type of notification, the algorithm completes its work.

[00076] Расчет выражения оповещения анализатором объектов выражения оповещения 222 при создании нового экземпляра оповещения подразумевает рекурсивную обработку выражения, как при расчете его значения, но кроме непосредственно расчета формирует список объектов, которые были использованы при расчете выражения. Эти объекты попадают в список объектов для мониторинга 233. [00076] Calculation of the alert expression by the alert expression object parser 222 when creating a new alert instance implies recursive processing of the expression, as in the calculation of its value, but in addition to the calculation itself, it generates a list of objects that were used in the calculation of the expression. These objects fall into the list of objects for monitoring 233.

[00077] На Фиг. 6 изображена блок-схема, иллюстрирующая дополнительные этапы способа управления оповещениями, обеспечивающие дополнительный технический результат, заключающийся в возможности проверке того, было ли исполнено оповещение. Согласно нему, после этапа исполнения оповещения исполнителем оповещений 223 проверяют, исполнено ли оповещение. При этом передают объекты из модуля сохранения объектов 242 в список объектов для мониторинга 233. При помощи списка объектов для мониторинга 233 проверяют наличие этого объекта в списке 233 и передают информацию о наличии/отсутствии объекта в списке, а также сам объект (точнее, его идентификатор) в исполнитель оповещений 223. Если событие оповещения по изменению этого объекта было исполнено, то передают объект в сервис оповещений 221, а затем визуализируют оповещение в пользовательском интерфейсе 110 при помощи сервиса оповещений 221. [00077] In FIG. 6 is a flow diagram illustrating additional steps of the notification management method, providing an additional technical result of being able to check whether the notification has been executed. According to it, after the step of executing the notification by the notification executor 223, it is checked whether the notification has been executed. At the same time, objects are transferred from the object storage module 242 to the list of objects for monitoring 233. Using the list of objects for monitoring 233, they check the presence of this object in the list 233 and transmit information about the presence / absence of the object in the list, as well as the object itself (more precisely, its identifier ) to the notification executor 223. If the notification event for changing this object has been executed, then the object is passed to the notification service 221, and then the notification is rendered in the user interface 110 using the notification service 221.

[00078] Также могут достигать и другого дополнительного технического результата посредством добавления этапов, показанных на Фиг. 7. После этапа исполнения оповещения исполнителем оповещений 223 обновляют список объектов для мониторинга 233. Для этого сначала передают объекты из модуля сохранения объектов 242 в список объектов для мониторинга 233. В нем 233 производится проверка того, содержатся ли сохраненные объекты в списке 233. После этого объект передают анализатору объектов выражения оповещения 222. При помощи анализатора 222 проверяют, изменился ли список объектов выражения оповещения. Если список объектов выражения оповещения изменился, то передают новый список в список объектов для мониторинга 233 и обновляют список 233 новым списком. Это позволяет обновлять список объектов для мониторинга 233, благодаря чему системе добавляется также большая автоматизированность. [00078] Another additional technical result can also be achieved by adding the steps shown in FIG. 7. After the notification execution step, the notification executor 223 updates the list of objects for monitoring 233. To do this, objects are first transferred from the object storage module 242 to the list of objects for monitoring 233. It checks 233 whether the saved objects are contained in the list 233. After that the object is passed to the object parser alert expressions 222. The parser 222 checks to see if the list of alert expression objects has changed. If the list of objects of the alert expression has changed, then the new list is passed to the list of objects to be monitored 233 and the list 233 is updated with the new list. This allows the list of objects to be monitored 233 to be updated, which also adds more automation to the system.

[00079] Также в любом из вариантов воплощения способа управления оповещениями могут дополнительно на этапе исполнения оповещения при помощи исполнителя оповещения 223 дополнительно исполняют программный код, включающийся в оповещение и/или в исполнительный адаптер, представляющий собой исполнитель оповещения 223. Как уже было описано ранее, это может позволить реализовывать сложные сценарии реакции на оповещение. [00079] Also, in any of the embodiments of the notification management method, additionally, at the stage of executing the notification, using the notification executor 223, additionally execute the program code included in the notification and / or in the execution adapter, which is the notification executor 223. As already described earlier, this can allow complex scenarios for reacting to an alert.

[00080] Также дополнительные этапы, показанные на Фиг. 6 и Фиг. 7 и описанные выше, и основные этапы, показанные на Фиг. 5, могут использоваться в сочетании, образуя способ управления оповещениями, показанный на Фиг. 8. В этом случае, сначала осуществляют изменения объекта при помощи пользовательского устройства 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. [00080] Also, the additional steps shown in FIG. 6 and FIG. 7 and those described above and the main steps shown in FIG. 5 may be used in combination to form the alert management method shown in FIG. 8. In this case, changes to the object are first performed by the user device 1. The change is sent as a trigger event to the expression trigger 231, which generates an expression specifying the change of the object. The generated expression is then sent to the expression executor 232, which in turn evaluates the result of the expression. After that, the objects that were used during the evaluation of the expression are sent to the object cache module 241, which temporarily stores the objects with changes, and then they are transferred to the object saver 242, which in turn stores the changed objects in the object source 210. Simultaneously with the change of the object, a notification event about this change is also created. Using the service alerts 221 determine the type of alert, as described above. For a certain type of alerts, namely for quick alerts, the alert expression is then calculated using the alert expression object parser 222. At this stage, a list of objects that were used in the calculation of the expression is also generated using the alert expression object parser 222. The list consists of changed objects used in evaluating the alert expression. After that, notifications are executed using the notification executor 223. The notification executor 223, in addition to the notification itself, can also execute program code that can be included in the notification executor 223. After that, changes to the object are saved using the object persistence module 242 in the database data 3. After the stage of execution of the notification by the notification executor 223, the list of objects for monitoring 233 is also updated. To do this, objects are first transferred from the object storage module 242 to the list of objects for monitoring 233. It checks 233 whether the stored objects are contained in the list 233. The object is then passed to the alert expression object parser 222. The parser 222 checks to see if the list of alert expression objects has changed. If the list of notification objects has changed, then the new list is passed to the list of objects to be monitored 233 and the list 233 is updated with the new list. At the notification execution stage, the program code included in the notification and/or in the notification executor 223 is also executed.

[00081] В настоящих материалах заявки представлено предпочтительное раскрытие осуществления заявленного технического решения, которое не должно использоваться как ограничивающее иные, частные воплощения его реализации, которые не выходят за рамки запрашиваемого объема правовой охраны и являются очевидными для специалистов в соответствующей области техники. [00081] The present application materials provide a preferred disclosure of the implementation of the claimed technical solution, which should not be used as limiting other, private embodiments of its implementation that do not go beyond the requested scope of legal protection and are obvious to specialists in the relevant field of technology.

Claims

Формула изобретения Claim 1. Система управления оповещениями, включающая по крайней мере одно пользовательское устройство с интерфейсом, по крайней мере одну базу данных и сервер, подключенные друг к другу, при этом сервер включает: 1. An alert management system that includes at least one user device with an interface, at least one database and a server connected to each other, while the server includes: • по крайней мере один источник объектов; • at least one source of objects; • компонент оповещения, сконфигурированный с возможностью создания оповещений и включающий: о сервис оповещений; о анализатор объектов выражения оповещения; о исполнитель оповещения; при этом сервис оповещений, анализатор объектов выражения оповещения и исполнитель оповещения взаимодействуют последовательно, • notification component configured to create notifications and includes: o notification service; o Alert expression object parser; about the performer of the notification; at the same time, the notification service, the analyzer of the notification expression objects and the notification executor interact sequentially, • компонент расчета выражений, сконфигурированный с возможностью мониторинга изменений объектов и включающий: о по крайней мере один инициатор выражений; о исполнитель выражения оповещений; о список объектов для мониторинга; при этом список объектов для мониторинга взаимодействует с исполнителем оповещения, а по крайней мере один инициатор выражения взаимодействует с по крайней мере одним источником объектов и с исполнителем выражения, • an expression evaluation component configured to monitor object changes and including: o at least one expression initiator; o performer expression alerts; o list of objects for monitoring; while the list of objects to be monitored interacts with the notification executor, and at least one expression initiator interacts with at least one source of objects and with the expression executor, • и компонент сохранения, сконфигурированный с возможностью сохранения изменений в базе данных и включающий: о модуль кэширования объектов; о модуль сохранения объектов, при этом модуль кэширования объектов взаимодействует с исполнителем выражений и с модулем сохранения объектов, а модуль сохранения объектов взаимодействует с по крайней мере одной базой данных. • and a persistence component configured to persist changes to a database and comprising: o an object caching module; o an object persistence module, wherein the object cache module interacts with the expression executor and the object persistence module, and the object persistence module interacts with at least one database. 2. Система управления оповещениями по п. 1, отличающаяся тем, что модуль сохранения объектов дополнительно взаимодействует со списком объектов для мониторинга, а список объектов для мониторинга взаимодействует с исполнителем оповещений. 2. The notification management system according to claim 1, characterized in that the object storage module additionally interacts with the list of objects for monitoring, and the list of objects for monitoring interacts with the notification executor. 3. Система управления оповещениями по п. 2, отличающаяся тем, что исполнитель оповещения дополнительно взаимодействует с сервисом оповещений. 3. The notification management system according to claim 2, characterized in that the notification executor additionally interacts with the notification service. 24 24 4. Система управления оповещениями по п. 1, отличающаяся тем, что список объектов для мониторинга дополнительно взаимодействует с модулем сохранения объектов и с анализатором объектов выражения оповещения. 4. The notification management system according to claim 1, characterized in that the list of objects for monitoring additionally interacts with the object storage module and with the analyzer of the notification expression objects. 5. Система управления оповещениями по п. 1, отличающаяся тем, что база данных размещена на сервере. 5. Alert management system according to claim 1, characterized in that the database is located on the server. 6. Система управления оповещениями по п. 1, отличающаяся тем, что база данных является внешней базой данных. 6. Alert management system according to claim 1, characterized in that the database is an external database. 7. Система управления оповещениями по п. 1, отличающаяся тем, что в качестве по крайней мере одного инициатора выражений используют прикладной код. 7. Alert management system according to claim 1, characterized in that at least one expression initiator is application code. 8. Система управления оповещениями по п. 1, отличающаяся тем, что интерфейс пользовательского устройства является графическим интерфейсом. 8. Alert management system according to claim 1, characterized in that the user device interface is a graphical interface. 9. Способ управления оповещениями, по которому: 9. Alerts management method, according to which: • изменяют объект из базы данных, а именно: о изменяют объект при помощи пользовательского устройства; о генерируют выражение, определяющее изменение объекта; о вычисляют результат выражения; о хранят объекты, используемые выражением; о сохраняют изменения объекта в источнике объектов при помощи модуля сохранения объектов, • change the object from the database, namely: change the object using the user device; o generate an expression that defines a change to the object; o calculate the result of the expression; o store the objects used by the expression; o save changes to the object in the object source using the object persistence module, • создают оповещение в виде выражения, а именно: о определяют тип оповещения при помощи сервиса оповещений; о рассчитывают выражение для определенного типа оповещений; о формируют список изменившихся объектов, используемых при расчете выражения оповещения; о исполняют оповещение при помощи исполнителя оповещения; о сохраняют изменения объекта в базе данных. • create a notification in the form of an expression, namely: o define the type of notification using the notification service; o calculate an expression for a certain type of notification; o form a list of changed objects used in the calculation of the alert expression; o executing the notification using the notification executor; save changes to the object in the database. 10. Способ управления оповещения по п. 9, отличающийся тем, что на этапе исполнения оповещения при помощи исполнителя оповещения дополнительно исполняют программный код, включающийся в оповещение. 10. The notification control method according to claim 9, characterized in that at the stage of executing the notification with the help of the notification executor, the program code included in the notification is additionally executed. 11. Способ управления оповещения по п. 9, отличающийся тем, что после этапа исполнения оповещения проверяют, исполнено ли оповещение, а именно: 11. The notification management method according to claim 9, characterized in that after the notification execution stage, it is checked whether the notification has been executed, namely: • передают объекты из модуля сохранения объектов в список объектов для мониторинга; • transfer objects from the object storage module to the list of objects for monitoring; • проверяют наличие этого объекта в списке объектов для мониторинга; • check the presence of this object in the list of objects for monitoring; • передают оповещение в исполнитель оповещений; если оповещение по изменению этого объекта было исполнено, то: • send the notification to the notification executor; if the notification on the change of this object was executed, then: • передают объект в сервис оповещений; • pass the object to the notification service; • визуализируют оповещение в пользовательском интерфейсе при помощи сервиса оповещений. • render the alert in the user interface using the alert service. 12. Способ управления оповещения по п. 9, отличающийся тем, что после этапа исполнения оповещения обновляют список объектов для мониторинга, а именно: 12. The notification management method according to claim 9, characterized in that after the notification execution stage, the list of objects for monitoring is updated, namely: • передают объекты из модуля сохранения объектов в список объектов для мониторинга; • transfer objects from the object storage module to the list of objects for monitoring; • передают объект анализатору объектов выражения оповещения при помощи списка объектов для мониторинга; • pass the object to the object parser of the alert expression using the list of objects to monitor; • проверяют изменился ли список объектов оповещения при помощи анализатора объектов выражения оповещения; если список объектов изменился, то: • check whether the list of alert objects has changed using the alert expression object parser; if the list of objects has changed, then: • передают новый список в список объектов для мониторинга; • transfer the new list to the list of objects for monitoring; • обновляют объект в списке объектов для мониторинга. • update the object in the list of objects to be monitored. 13. Способ управления оповещения по п. 11 и п. 12, отличающийся тем, что этапы проверки исполнения оповещения и обновления списка объектов для мониторинга производят параллельно. 13. The notification management method according to claim 11 and claim 12, characterized in that the steps of checking the execution of the notification and updating the list of objects for monitoring are performed in parallel.
PCT/RU2021/000631 2021-12-24 2021-12-30 System and method for managing notifications WO2023121504A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
RU2021138675 2021-12-24
RU2021138675A RU2783782C1 (en) 2021-12-24 System and method for managing notifications

Publications (1)

Publication Number Publication Date
WO2023121504A1 true WO2023121504A1 (en) 2023-06-29

Family

ID=86903454

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/RU2021/000631 WO2023121504A1 (en) 2021-12-24 2021-12-30 System and method for managing notifications

Country Status (1)

Country Link
WO (1) WO2023121504A1 (en)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2530340C2 (en) * 2009-06-23 2014-10-10 Бейджинг Согоу Текнолоджи Девелопмент Ко., Лтд. Update notification method and system
RU2707708C2 (en) * 2015-04-03 2019-11-28 Общество с ограниченной ответственностью "Колловэар" System and method of searching data in database of graphs
WO2019231645A1 (en) * 2018-05-29 2019-12-05 Microsoft Technology Licensing, Llc Change notifications for object storage
US10860414B1 (en) * 2020-01-31 2020-12-08 Qumulo, Inc. Change notification in distributed file systems
US20210390095A1 (en) * 2019-04-16 2021-12-16 Snowflake Inc. Notifying modifications to external tables in database systems

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2530340C2 (en) * 2009-06-23 2014-10-10 Бейджинг Согоу Текнолоджи Девелопмент Ко., Лтд. Update notification method and system
RU2707708C2 (en) * 2015-04-03 2019-11-28 Общество с ограниченной ответственностью "Колловэар" System and method of searching data in database of graphs
WO2019231645A1 (en) * 2018-05-29 2019-12-05 Microsoft Technology Licensing, Llc Change notifications for object storage
US20210390095A1 (en) * 2019-04-16 2021-12-16 Snowflake Inc. Notifying modifications to external tables in database systems
US10860414B1 (en) * 2020-01-31 2020-12-08 Qumulo, Inc. Change notification in distributed file systems

Similar Documents

Publication Publication Date Title
US20170372442A1 (en) Healthcare workflow system
CN113377850A (en) Big data technology platform of cognitive Internet of things
US10366359B2 (en) Automatic extraction and completion of tasks associated with communications
US11720825B2 (en) Framework for multi-tenant data science experiments at-scale
TW200844855A (en) Using collaborative development information in a team environment
US20220237376A1 (en) Method, apparatus, electronic device and storage medium for text classification
CN109614319B (en) Automated testing method, apparatus, electronic device and computer readable medium
CN115170048A (en) Workflow implementation method, system, and medium based on model and rule
US20230409292A1 (en) Systems, Methods, User Interfaces, and Development Environments for a Data Manager
US11836496B2 (en) Multilayered generation and processing of computer instructions
US11321093B1 (en) Multilayered generation and processing of computer instructions
WO2022012305A1 (en) Method and apparatus for managing model file in inference application
US20190286500A1 (en) Systems and method for event parsing
RU2783782C1 (en) System and method for managing notifications
WO2023121504A1 (en) System and method for managing notifications
US20230010906A1 (en) System event analysis and data management
Putro et al. Collaboration of Progressive Web App (PWA) And Firebase Cloud Messaging (FCM) for Optimal Performance Mailing Software
CN115543428A (en) Simulated data generation method and device based on strategy template
EP4030280B1 (en) Seamless lifecycle stability for extensible software features
US12124427B2 (en) Consolidating change requests in data hierarchies
CN116775030B (en) Method and device for creating security baseline
US20230333882A1 (en) Systems and methods for creating workflows by chaining microapps in a workspace platform
EP4471615A1 (en) Structuring and rich debugging of inputs and outputs to large language models
CN118606029A (en) Task management method, device, storage medium and electronic device
US20230300026A1 (en) Cloud computing infrastructure pipelines with run triggers

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 21969172

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 21969172

Country of ref document: EP

Kind code of ref document: A1