This application is related to the following applications, filed on even date herewith: U.S. design patent application Ser. No. [ ] (Docket No: D1068US00); U.S. design patent application Ser. No. [ ] (Docket No: D1069US00); U.S. design patent application Ser. No. [ ] (Docket No: D1070US00); U.S. design patent application Ser. No. [ ] (Docket No: D1071US00); U.S. design patent application Ser. No. [ ] (Docket No: D1072US00); U.S. design patent application Ser. No. [ ] (Docket No: D1073US00); U.S. design patent application Ser. No. [ ] (Docket No: D1074US00), the contents of which are herein incorporated by reference.
The technology described herein relates to managing computer system configuration parameters. More particularly, the technology described herein relates to alert configuration and management in computer systems.
Many computer systems exist that analyze vast amounts of data and search for patterns within that data. One example of such a computer system is a trading surveillance system.
In some kinds of electronic trading, client computer systems transmit and receive messages to/from other computer systems on which a market (or markets) are operating. These messages may indicate, for example, orders to buy or sell assets, instructions to cancel pending orders, acknowledgements of orders, and so on. In some instances, these messages are transmitted rapidly and at tremendous volumes, and the electronic records related to these messages can be vast in size.
Trading surveillance systems (or more broadly “surveillance systems”) may be used to look for patterns in these messages (and/or records thereof) and issue alerts if the messages indicate that interactions with a market may be legally noncompliant (e.g., if the messages indicate spoofing or some other kind of market manipulation was potentially taking place). While existing surveillance systems have proven to be very useful, more is always being demanded of them.
Accordingly, it will be appreciated that new and improved techniques, systems, and processes, related to trading surveillance systems and other kinds of computer systems, are continually sought after.
According to some embodiments, surveillance alert configuration and control systems and methods that efficiently represent the impact of pending configuration changes of surveillance alerts across types of surveillance alerts, activation levels, electronic trading systems, etc. in a manner that facilitates improved reliability and improved response times in reacting to abnormal user events or abnormal system events in computer processing systems, such as, for example, electronic trading systems, are provided.
This Summary is provided to introduce a selection of concepts that are further described below in the Detailed Description. This Summary is intended neither to identify key features or essential features of the claimed subject matter, nor to be used to limit the scope of the claimed subject matter; rather, this Summary is intended to provide an overview of the subject matter described in this document. Accordingly, it will be appreciated that the above-described features are merely examples, and that other features, aspects, and advantages of the subject matter described herein will become apparent from the following Detailed Description, Figures, and Claims.
These and other features and advantages will be better and more completely understood by referring to the following detailed description of example non-limiting illustrative embodiments in conjunction with the drawings of which:
In the following description, for purposes of explanation and non-limitation, specific details are set forth, such as particular nodes, functional entities, techniques, protocols, etc. in order to provide an understanding of the described technology. It will be apparent to one skilled in the art that other embodiments may be practiced apart from the specific details described below. In other instances, detailed descriptions of well-known methods, devices, techniques, etc. are omitted so as not to obscure the description with unnecessary detail.
Sections are used in this Detailed Description solely in order to orient the reader as to the general subject matter of each section; as will be seen below, the description of many features spans multiple sections, and headings should not be read as affecting the meaning of the description included in any section. Some reference numbers are reused across multiple Figures to refer to the same element; for example, as will be provided below, aspects of counter 522 first shown in
This disclosure describes systems and techniques for configuring and/or managing alerts, such as, for example, surveillance alerts that are generated based on monitoring one or more participants' transactions associated with one or more high-volume high-speed electronic securities trading systems in a manner that enables improved response times by operators in detecting and responding to abnormal events in the system. Embodiments, however, are not limited to electronic securities trading systems, and may apply to many other types of computer processing systems for which alerts are used for monitoring aspects of transaction flows to/from the system, system performance or processing resources.
In order to facilitate fast response times by the operator in reacting to system events, embodiments of the present disclosure provide user interface screens that enable the operator to visualize the impact of various types of alert configuration changes across markets and across different alert types in the system before such changes are deployed.
Some embodiments provide for the settings of certain parameters to be used in the configuration of other parameters in the same or different alerts, and in the same or different markets. The system provides for efficiently representing such configuration changes to the operator.
Some embodiments further facilitate reliable alert configuration by, enabling the operator to review and test any pending configuration change in an efficient manner.
In many places in this document, software (e.g., modules, software engines, processing instances, services, applications and the like) and actions (e.g., functionality) performed by software are described. This is done for ease of description; it should be understood that, whenever it is described in this document that software performs any action, the action is in actuality performed by underlying hardware elements (such as a processor and a memory device) according to the instructions that comprise the software. Such functionality may, in some embodiments, be provided in the form of firmware and/or hardware implementations. Further details regarding this are provided below in, among other places, the description of
An operator (not separately shown in
The client device 104 includes a memory storing a configuration parameter store 118 that is used by the alert configuration interface 116 during operator interactions with the interface. In some embodiments, the configuration parameter store 118 is populated with all the relevant alert parameters and the associated information from the alert parameter database 114 when the alert configuration interface 116 is instantiated in the browser. In some embodiments the parameter store 118 is a data structure that includes a copy of the database 114, or selected information of the database 114. In some embodiments, the alert parameter information can be requested by the alert configuration interface 116 and obtained from the surveillance alert configuration application 112 when required based on user input.
The client device 104 may be geographically remote from the server device 102 and may be connected via the internet or other network connection 110. In some embodiments, server device 102 includes its own display or connects to an external display on which the alert configuration user interface 116 can be displayed.
Each of the real-time electronic securities trading systems 108 may include a matching engine on which a large volume or securities or other instruments are transacted at very high throughput. As is well known, systems such as system 108 have numerous stringent performance, reliability and security requirements. Performance requirements include minimizing any downtime of the electronic trading system and enabling high throughput and high transaction execution speeds. Reliability and security requirements include, among other aspects, monitoring and responding to suspicious activity (e.g., abnormal activity) by market participants.
The surveillance alert configuration and management computer system 100 may be used to, based on monitoring the events associated with one or more market participants on the one or more electronic securities trading systems 108 in real-time and/or in non-real time, provide operators (e.g., analysts or other users of the system 100) with the necessary information to rapidly respond to various events that can adversely affect the electronic securities trading systems 108. For example, when some undesirable behavior of one or more electronic securities trading systems 108 or its computer systems is detected by the operator or the computer system 100 based on alerts generated by a surveillance alert generator 120, the operator may, using the alert configuration user interface 116, review the current configurations of alerts for the affected electronic securities trading system and others on the same screen and rapidly analyze the effects of one or more configuration changes to be made to the alerts in order to efficiently narrow the possible causes of the undesirable behavior.
The surveillance alert generator 120 running on the server device 102 may receive real-time trade information from the electronic securities trading systems 108 over network connections 107 and may display trends in the real-time trade information that may indicate an undesirable behavior in any of the electronic trading systems 108. The received trade information may include the transaction (event) flow pertaining to one or more market participants at the electronic trading system. The surveillance alert generator 120 can, in response to trade information and other information received from the electronic trading systems 108, generate an alert whenever an abnormal event occurs. Example abnormal events which may trigger the generation of alerts configured by computer system 100 may include, but are not limited to, an abnormally high or abnormally low price shifts of a security instrument, abnormal volume of a single transaction or a group of transactions, or various other known abnormal transaction patterns for a security instrument. In some examples, in addition to transaction pattern-related events being monitored, the surveillance application 120 may also monitor for abnormal delays in transaction execution, completion, etc. that may be indicative of system processing performance issues or system memory issues. The surveillance alert generator 120 itself, or another application, may obtain generated alerts, process the alerts, and provide for displaying a surveillance alert user interface (not shown separately) on which operators can monitor and/or respond to such alerts by, for example, configuring or reconfiguring a set of alert parameters using the alert configuration user interface 116.
The operator may, in response to trends displayed based on the real-time trade data and/or alerts generated by the surveillance alert generator 120, view and configure alert parameters to dynamically adapt the set of surveillance alerts that is deployed on the data of at least at the affected market. In some embodiments, in addition to trade information (e.g., buy/sell orders, completed transactions, trade volume information, order book status), other information such as system resource status information (e.g., memory/processor status information, order processing software instance information, etc.) can be received at the server device 102 from electronic trading systems 108.
Alert parameter configuration changes that are considered or analyzed by the operator in response to triggered alerts may include a set of alerts for the same market (i.e., alerts applied to the data from one of the electronic trading systems 108), or a set of alerts that includes alerts for multiple markets (i.e., alerts applied to the data of more than one of the electronic trading systems 108). The alerts may include a set of alerts configured at a particular activation level: a house level (e.g., a trading firm-wide level within a selected market), at an account level (e.g., at the level of one or more accounts of the trading firm, on behalf of whom securities are traded), at a trader level (e.g., at the level of one or more traders who initiate trades on behalf of one or more accounts of the trading firm), etc. The parameter configuration changes to one alert may affect one or more parameters of the same alert. As described later in this disclosure, a change to one parameter of one alert, when configured by the operator, can affect other parameters and/or alerts in the same market or different markets. This increases the risk of an erroneous alert configuration that may lead to some undesirable behaviors going undetected.
The client device 104 may be configured to display the alert configuration user interface 116 on its display device and provide for operators to interact with the interface 116 through touch screen or other input devices. The client device 104 may include an alert configuration user interface generator (not separately shown) that, based on alert and alert parameter information received from the server device 102, generates and displays the alert configuration user interface 116. In some embodiments, the surveillance alert generator 120 on the server device 102 provides alert information (e.g., alerts for abnormal transactions, abnormal user actions, abnormal system behaviors, etc.) and associated trading information (e.g., trade prices, trade securities instrument information, simple moving average information, threshold bands for securities, etc.) to an alert configuration user interface generator (not shown separately) that displays the generated alerts and corresponding trade and/or system information to the operator. The operator, in response to displayed alerts and corresponding trade and/or system information, may use the alert configuration user interface 116 to configure and/or reconfigure one or more alerts to better detect causes any abnormality indicated by the displayed alerts.
The server device 102 is not limited to one computer, and may comprise a plurality of computers. Although only one client device 104 is shown, it is understood that any number of client devices 104 may connect to the server device 102. Moreover, the number of electronic trading systems 108 is not limited in embodiments of this disclosure.
The example embodiments are primarily described in relation to surveillance of an electronics securities trading system such as, for example, the electronic securities trading system 108 and the monitoring of securities instruments or user actions associated with such securities instruments. However, embodiments are not limited to electronic securities trading systems, and may apply to surveillance of any characteristic that can be monitored over time in a transaction processing system or the computer systems associated with the transaction processing system.
Each of the sets 202 may comprise a set of applied configurations (e.g., 204a, 204b or 204c, collectively 204) and a set of unapplied (pending) configurations (206a, 206b and 206c, collectively 206). The applied configurations comprise alert parameters for which the overrides have been committed to database 114 as the parameter values that are deployed in the electronic securities trading systems 108. The unapplied configurations comprise alert parameters for which the overrides have not been committed to database 114. In some embodiments, the unapplied configurations 206 are partially completed configurations from the browser 106.
A default set of alert parameter configurations 208 may be stored so that it is available to be used by the alert configuration user interface 116 to, for example, deploy a set of surveillance alerts to a new electronic securities trading system 108.
Process 300 may begin at operation 302. An operator at client device 104 starts up a surveillance alert parameter configuration application in a browser, which causes, at operation 302, the surveillance alert configuration application 112 running on the processing system of the server device 102 to retrieve alert configuration parameters from the alert parameter database 114.
At operation 304, the surveillance alert configuration user interface 116 running in browser 106 at the client device receives the set of alerts and alert parameter configuration information from the server device, and generates the surveillance alert configuration user interface screen (e.g., screen 400).
At operation 306, the operator interacts with the displayed surveillance alert parameter configuration screens to change configurations (e.g., override) of one or more parameters of one or more of the alerts.
At operation 308, the surveillance alert configuration user interface 116 and the surveillance alert configuration application 112 operate to apply the alert parameters including the overrides to the active alert configurations. The active alert configurations are stored in database 114. The surveillance alert configuration application may apply the active alert configurations to one or more of the electronic securities trading systems 108.
It should be appreciated that process 300 is an example, and in various embodiments one or more operations may be combined with other operations, performed in an order other than that shown in
Screen 400, and other screens displayed during the operator interaction, enable the operator to quickly visualize the effects any one or more parameter overrides would have on alert configurations throughout the electronic securities trading systems 108 for which the transactions/events associated with one or more market participants are monitored by the computer system 100.
Screen 400 includes a market selector 402 to select or configure the market, a set of alerts 404 for the selected market, a level selector 407 to select the level of activation of the alerts, and an alert search field 417. For an alert that is currently selected in area 404, the set of parameters 406 is displayed. For each parameter of the selected alert 405, the parameter name 408, filter type 409, filter 410, house code 411, participant type 412, participant 413, setting/value 414, setting/value changed from (i.e., previous setting/value) 415, and the change type 416 may be shown.
When the value/setting 524 for the selected parameter 518 “Param4” from the previous value $0 to a new value $1000, the new value is shown in the settings field 524 and the previous value is shown in the previous value/setting field 526. A change type field (column 416) may indicate that this is a new override and another selectable field may provide for a pull-down list of various other information and/or configuration options for the selected parameter 518. A popup message (e.g., the popup shown with “Changed from $0”) may be shown in association with the settings field 524 to more clearly show the previous value of the setting to facilitate fast and reliable override specification for the selected parameter 518.
Importantly, in response to the operator input overriding the setting/value 524 of the selected parameter 518, the alert configuration user interface 116 updates the screen 500 to display a parameter changes for alert counter 520 to show the number of parameters in the selected set of parameters 408 of the selected alert 405 for which overrides are specified, and a total changes counter 522 showing the number of parameters among all alerts in the set of alerts 404 of the currently selected market 402 (currently “market1”).
An affected markets indicator 501 indicates the markets that have alerts that have overridden parameters. For example, in screen 500, indicator 501 illustrates that the changes are in the “market1” market. An affected alert types counter/indicator 503 indicates which alert types have at least one alert with overridden parameters. In screen 500, for example, affected alert types counter/indicator 503 indicates that there is only one type of alert that is affected by pending parameter overrides.
The screen 500 may also provide options to clear all changes 528 and to review changes 530. By selecting the clear all changes 528 option, the operator may undo all pending changes shown in the current screen. The review changes 530 selection enables the operator to review the pending changes of the parameters of alerts.
Data structure 602, “parameter editor”, is configured to store available configurations for the parameters of alerts configured on computer system 100 for one or more electronic trading systems 108. The data structure 602 may be provided by the surveillance alert configuration application 112 to the alert configuration user interface 116 and may be stored in the configuration store 118 in the memory of the browser 106.
Data structure 602 is configured to maintain a copy of the initial parameter values for all alerts of one or more markets. A sub-object “initial” 603 may store the initial values for all alerts of the selected market. The initial values (e.g., 614) may be stored per parameter 612, within per activation level 610, within per alert 608, and within per market 606.
During the user interactions to reconfigure one or more alerts, the changes (overrides) to the parameters of the alerts are stored in another sub-object, “changes” 604. Each change is stored as a separate entry.
In contrast,
Thus, when the operator configures a new setting for the “Param1” parameter of the “Alert1” alert, for which the “initial” subobject 603 already has a configuration row 614 with the unique identifier “f44af7dc-86ce-4331-a3e7-b53738df1c07”, the system in response creates a copy of the configuration row 614 from the “initial” 603 subject to the “changes” 604 subobject. The copy is shown as configuration row 634 in
The data structure 602 is configured to facilitate efficient counting of the pending number of configuration changes in order to improve the operator's response times to dynamic detection of abnormal events, for example, by timely updating the appropriate interface screens to represent the impact of configuration changes that are being considered by the operator to respond to such events. For example, by storing all pending configuration changes as separate configuration rows within the “changes” subobject: the total number of pending configuration changes for the alert can be determined by counting the total number of configuration rows within the alert subobject under “changes” subobject; and the total number of pending configuration changes for all markets (i.e., for the entire computer system 100) can be determined by summing the configuration rows under each of the marker subobjects. Note that when the above total numbers of configuration rows are determined, the system default configuration rows that are also stored under the “changes” subobject are ignored, because they do not represent pending configuration changes. It should be understood that a “configuration row” may be represented as any type of data element, such as, for example, a row in a table, a sub/child object of a parent object, an entry in a list of entries, etc.
Similarly, the alert types affected by the pending configuration changes are determined by iterating for each alert subobject stored under “changes”, and the affected markets are determined by iterating for each market subobject under the “changes” subobject. The above are some examples of how the configuration of data structure 602 is particularly suited for efficient display of interface screens representing pending configuration changes.
Process 700 starts at operation 702. At operation 702, a user configuration (e.g., override) for a parameter of an alert in the alert configuration user interface is received.
At operation 704, a new row is created in a parameter configuration table. The new and previous values are stored in two separate rows in the table.
At operation 706, counters are updated to reflect the changed number of parameters for the alert, for the market, and/or for all markets 108 monitored by the computer system 100.
At operation 708, the displayed alert configuration user interface screen is updated to reflect the counters updated at operation 706.
At operation 710, the changes are stored in a memory buffer in the browser memory. For example, the changes can be stored in an object such as that shown in
It should be appreciated that process 700 is an example, and in various embodiments one or more operations may be combined with other operations, performed in an order other than that shown in
The processes of
In response to an operator changing a configuration of a first configuration parameter of a selected surveillance alert on the graphical user interface, in some embodiments the surveillance alert configuration and management system may adjust a first counter (a parameter changes for alert counter) and display the adjusted first counter in association with a name of the selected surveillance alert. The first counter is configured to track a number of pending configuration changes associated with the selected surveillance alert. The system may also, in response to the changing of the first configuration parameter, adjust a second counter (a total changes counter) and display a name of at least one of the electronic trading systems in association with the second counter, concurrently with displaying the adjusted first counter. The second counter is configured to track a total number of pending configuration changes associated with the electronic trading systems. Screen 500 (shown in
The system may, in response to changing the configuration of a configuration parameter of a selected surveillance alert, insert a new configuration row in the configuration data structure. Then, adjusting of the first counter may be based on a counting of corresponding inserted new configuration rows in the configuration data structure. The configuration data structure may be configured to arrange initial values of the set of parameters and changed values thereof in respective different storage hierarchies (e.g., sub-hierarchies rooted at 603 and 604, respectively, as shown in
The configuration data structure may include a respectively different hierarchical data structure for each market (e.g., electronic trading system), for example, at 606 shown in
In response to the changing of a first configuration parameter, in some embodiments the system may also adjust a third counter (affected alert types counter/indicator) and display the third counter in association with one or more markets. The third counter is configured to track a number of surveillance alerts that have at least one pending configuration change. The affected alert types counter/indicator 503 in
In some embodiments, the configuration data structure may store information of parent-child relationship between pairs of configuration parameters. In response to the changing of a parent configuration parameter via the graphical user interface, the system may automatically adjust a respective first counter associated with each of the sets of configuration parameters that inherits from the parent configuration parameter and automatically adjust the second counter and the third counter. At least one of the sets of configuration parameters that inherits from the parent configuration parameter may be associated with another surveillance alert. The other surveillance alert may be configured for another market. Example, parent-child relationships between configuration parameters is described in relation to
In some embodiments, the graphical user interface may have three display areas: a first display area displaying a name of the electronic trading system, a second display area displaying a plurality of surveillance alerts of the electronic trading system, and a third area displaying the plurality of configuration parameters of the selected surveillance alert. In response to the changing of a configuration parameter, at least one update may be made in each of the three display areas. In some embodiments, the graphical user interface includes a fourth display area displaying a plurality of activation levels (e.g., activation area 407) of which one activation level is associated with the displayed plurality of configuration parameters, and in response to the changing of the configuration parameter, the fourth display area may also be updated.
In some embodiments, a respective enable indicator is displayed in association with an activation level in the fourth display area and with each set of parameters displayed in the second display area. The enable indicator associated with the activation level indicates whether at least one of the displayed sets of parameters is enabled for that activation level and the enable indicator associated with a set of parameters indicates whether that set of parameters is enabled for the market.
In response to changing a first configuration parameter, in some embodiments the surveillance alert configuration and management system may change an appearance of at least one of a first field and a displayed name of the first configuration parameter concurrently with displaying the adjusted first counter. The system may also change an appearance of a displayed name of an activation level associated with the first configuration parameter. The activation level may be one of a plurality of activation levels, each of which is associated with one or more configuration parameters.
In response to changing a first configuration parameter, in some embodiments the system may display a value of the first configuration parameter after the change, a value of the first configuration parameter before the change, and a type of the change.
In response to changing the configuration of a second configuration parameter, in some embodiments the surveillance alert configuration and management system may validate the changes to the second configuration parameter and, in response to failing the validation, the system may change the appearance of at least one of the fields of the second configuration parameter, a displayed name of the second configuration parameter, and a name of the market. In response to changing the configuration of the second configuration parameter of the selected set of parameters and in response to failing the validation, the system may change the appearance of at least one of the fields of another configuration parameter. The validation detects the other configuration parameter as a duplicate of the second configuration parameter.
In response to changing a configuration of a second configuration parameter via the graphical user interface and in response to a failing of the validation, in some embodiments the system may change an appearance of a displayed name of a surveillance alert associated with the second configuration parameter, where the surveillance alert is associated with one of a plurality of surveillance alerts each of which is associated with one or more configuration parameters. An example validation in some embodiments is described in relation to
The parameter changes for alert counter 520 shows that the selected alert 405 “Alert2” has two of its parameters being overridden with user specified values.
Additionally, a second counter, a total changes counter, 522 shows that the number of parameter overrides for all alerts of the currently selected market is 2. The affected markets indicator 402 indicates that both overridden parameters are from the “market1” market and the affected alert types counter/indicator 503 indicates that both overridden parameters are from one alert type (e.g., both overridden parameters 518 and 819).
Following after the scenario of
The third parameter 918 is a parameter in the set of parameters 906 of the selected alert 905 “Alert11” in the set of alerts 904 of the newly selected market “market3”.
The parameter changes for alert counter 920 for the selected alert 905 indicates that one of its parameters has been overridden. The total changes counter 522 indicates a total of 3 overrides are pending. The affected markets indicator 501 indicates that the overridden parameters are in the “market1” and “market3” markets. The affected alert types counter/indicator 503 indicates that the overridden parameters are from two different alert types (in this example, two alerts).
Whereas
Screen 1300 also illustrates an example of a parameter 1319 for which the setting, shown as the multiple settings (multiselect) 1326, is provided.
The parameter changes for alert counter 1420 indicates one parameter for the selected alert 1305 is changed. The total changes counter 522 is correspondingly updated, along with the changed alert type indicator.
As can be seen, although the counters 1420 and 522 are seen in screen 1500, they are not shown in screen 1600 because no more overrides are pending after 1324 is deleted. It is also seen in screen 1500 that parameter “Param31” 1318 has reverted to the setting of 3.
In some embodiments, instead of selecting “delete override” as shown in
The activation levels, as indicated in the activation level selector 407 (see
Since in the shown screen 2200, none of the configuration settings are set to “on”, they are not counted as pending changes. If the operator changes the setting field value in either or both the first two rows of configurations for parameter 1318, the parameter changes for alert counter will be shown next to selected alert 2205 with the number of parameter changes that are pending.
Another screen by which changes to the fallback parameter can be made may be provided. Such a screen may show the current configuration settings for a selected configuration row (i.e. in the illustrated example, the non-default setting for participant house2) of the identified parameter. As an example, one may consider the setting of the first configuration row being deleted and the change being applied by selecting an “apply” button on screen 2400. A repeat pattern change counter may show the number of changes triggered by the changes configured on the screen.
In the case of pattern alerts, the computer system may automatically ensure that the affected parameter configurations are not modifiable at dependents, and can only be modified at the parent.
Optionally, the operator may further verify the new configurations by subjecting the new configurations to calibration test runs with existing transaction data.
In some embodiments, the system provides the operator with the capability to create a new calibration run by duplicating an already configured calibration run. After the new calibration run is created by duplication, its set of alerts, parameters for the respective alerts, activation levels, etc., can be customized in accordance with the requirements for the new calibration run. This capability enables the operator to quickly generate calibration runs to test various hypotheses before a new alert configuration is activated.
Another type of validation checks for empty or invalid values in user-configured fields.
In order to improve the efficiency of detecting and determining validation errors when configuring parameters, the system clearly identifies and/or highlights the configuration fields and configuration rows that trigger the validation error. For example, in screen 2900, each configuration field in the second configuration row for the “Param5” parameter 2919 of “Alert2” alert 2920 is visually identified and/or highlighted to clearly illustrate the validation error caused by the first and second configuration rows matching on all configuration fields other than the settings field. The first and second rows are each also identified as being affected by the validation error(s). The configuration fields, in screen 2900, are visually identified and/or highlighted using a color outline (shown as a thicker outline) of each configuration field by a bar to the left of each configuration row.
A bar to the left of the parameter name identifies that the parameter includes validation errors. That is, when at least one configuration row of an alert parameter is identified as being associated with one or more validation errors, then the alert parameter is also identified as being associated with the validation error(s).
Alerts associated with one or more validation errors, such as, for example, alerts of which one or more parameters are associated with a validation error, may also be visually identified as being associated with one or more validation errors. In screen 2900, the parameter changes for alert counter 2920 associated with the “Alert2” alert is also identified as being associated with one or more validation errors by a color/thick outline.
The market indicator of the currently displayed market may also be configured to visually represent that the currently displayed market is associated with one or more validation errors. For example, in some embodiments, the market indicator may be displayed in a different color and/or font when the currently displayed market is associated with one or more validation errors.
Still further, in some embodiments, the entity level indicator may also be adapted to represent being affected by one or more validation errors.
The “Param4” parameter 2918, in contrast to the “Param5” parameter 2919, is not indicated to be causing a validation error.
In some embodiments, each or any of the processors 3002 is or includes, for example, a single- or multi-core processor, a microprocessor (e.g., which may be referred to as a central processing unit or CPU), a digital signal processor (DSP), a microprocessor in association with a DSP core, an Application Specific Integrated Circuit (ASIC), a Field Programmable Gate Array (FPGA) circuit, or a system-on-a-chip (SOC) (e.g., an integrated circuit that includes a CPU and other hardware components such as memory, networking interfaces, and the like). And/or, in some embodiments, each or any of the processors 3002 uses an instruction set architecture such as x86 or Advanced RISC Machine (ARM).
In some embodiments, each or any of the memory devices 3004 is or includes a random access memory (RAM) (such as a Dynamic RAM (DRAM) or Static RAM (SRAM)), a flash memory (based on, e.g., NAND or NOR technology), a hard disk, a magneto-optical medium, an optical medium, cache memory, a register (e.g., that holds instructions), or other type of device that performs the volatile or non-volatile storage of data and/or instructions (e.g., software that is executed on or by processors 3002). Memory devices 3004 are examples of non-transitory computer-readable storage media.
In some embodiments, each or any of the network interface devices 3006 includes one or more circuits (such as a baseband processor and/or a wired or wireless transceiver), and implements layer one, layer two, and/or higher layers for one or more wired communications technologies (such as Ethernet (IEEE 802.3)) and/or wireless communications technologies (such as Bluetooth, WiFi (IEEE 802.11), GSM, CDMA2000, UMTS, LTE, LTE-Advanced (LTE-A), LTE Pro, Fifth Generation New Radio (5G NR) and/or other short-range, mid-range, and/or long-range wireless communications technologies). Transceivers may comprise circuitry for a transmitter and a receiver. The transmitter and receiver may share a common housing and may share some or all of the circuitry in the housing to perform transmission and reception. In some embodiments, the transmitter and receiver of a transceiver may not share any common circuitry and/or may be in the same or separate housings.
In some embodiments, data is communicated over an electronic data network. An electronic data network includes implementations where data is communicated from one computer process space to computer process space and thus may include, for example, inter-process communication, pipes, sockets, and communication that occurs via direct cable, cross-connect cables, fiber channel, wired and wireless networks, and the like. In certain examples, network interface devices 3006 may include ports or other connections that enable such connections to be made and communicate data electronically among the various components of a distributed computing system.
In some embodiments, each or any of the display interfaces 3008 is or includes one or more circuits that receive data from the processors 3002, generate (e.g., via a discrete GPU, an integrated GPU, a CPU executing graphical processing, or the like) corresponding image data based on the received data, and/or output (e.g., a High-Definition Multimedia Interface (HDMI), a DisplayPort Interface, a Video Graphics Array (VGA) interface, a Digital Video Interface (DVI), or the like), the generated image data to the display device 3012, which displays the image data. Alternatively or additionally, in some embodiments, each or any of the display interfaces 3008 is or includes, for example, a video card, video adapter, or graphics processing unit (GPU).
In some embodiments, each or any of the user input adapters 3010 is or includes one or more circuits that receive and process user input data from one or more user input devices (not shown in
In some embodiments, the display device 3012 may be a Liquid Crystal Display (LCD) display, Light Emitting Diode (LED) display, or other type of display device. In embodiments where the display device 3012 is a component of the computing device 3000 (e.g., the computing device and the display device are included in a unified housing), the display device 3012 may be a touchscreen display or non-touchscreen display. In embodiments where the display device 3012 is connected to the computing device 3000 (e.g., is external to the computing device 3000 and communicates with the computing device 3000 via a wire and/or via wireless communication technology), the display device 3012 is, for example, an external monitor, projector, television, display screen, etc.
In various embodiments, the computing device 3000 includes one, or two, or three, four, or more of each or any of the above-mentioned elements (e.g., the processors 3002, memory devices 3004, network interface devices 3006, display interfaces 3008, and user input adapters 3010). Alternatively or additionally, in some embodiments, the computing device 3000 includes one or more of: a processing system that includes the processors 3002; a memory or storage system that includes the memory devices 3004; and a network interface system that includes the network interface devices 3006. Alternatively, or additionally, in some embodiments, the computing device 3000 includes a system-on-a-chip (SoC) or multiple SoCs, and each or any of the above-mentioned elements (or various combinations or subsets thereof) is included in the single SoC or distributed across the multiple SoCs in various combinations. For example, the single SoC (or the multiple SoCs) may include the processors 3002 and the network interface devices 3006; or the single SoC (or the multiple SoCs) may include the processors 3002, the network interface devices 3006, and the memory devices 3004; and so on. The computing device 3000 may be arranged in some embodiments such that: the processors 3002 include a multi or single-core processor; the network interface devices 3006 include a first network interface device (which implements, for example, WiFi, Bluetooth, NFC, etc.) and a second network interface device that implements one or more cellular communication technologies (e.g., 3G, 4G LTE, CDMA, etc.); the memory devices 3004 include RAM, flash memory, or a hard disk. As another example, the computing device 3000 may be arranged such that: the processors 3002 include two, three, four, five, or more multi-core processors; the network interface devices 3006 include a first network interface device that implements Ethernet and a second network interface device that implements WiFi and/or Bluetooth; and the memory devices 3004 include a RAM and a flash memory or hard disk.
As previously noted, whenever it is described in this document that a software module or software process performs any action, the action is in actuality performed by underlying hardware elements according to the instructions that comprise the software module. Consistent with the foregoing, in various embodiments, each or any combination of the surveillance alert configuration and management computer system 100, server device 102, and client device 104, each of which will be referred to individually for clarity as a “component” for the remainder of this paragraph, are implemented using an example of the computing device 3000 of
The hardware configurations shown in
In certain example embodiments, a surveillance alert configuration and management user interface is provided that, in contrast to conventional user interfaces that may not provide adequate clarity or information with respect to the impact of various pending configuration changes to alerts that are used to timely detect abnormal user activity and/or abnormal system events in high transaction volume high reliability computer processing systems such as, for example, electronic trading systems, enables improved response times and improved reliability of operator responses to such events.
Embodiments provide for the operator to, on a single display screen, visualize the impact of any pending configuration change to a parameter of an alert. The impact is clearly represented by highlighting, or otherwise distinguishably identifying, any or all configuration parameters, activation levels, surveillance alerts, electronic trading systems, etc. that are impacted by the pending configuration change. Moreover, by dynamically updating and displaying the number of parameters changed per alert, the total number of parameter changes across electronic trading system, and the number of alerts that have configuration parameter changes as pending configuration changes are being input by the operator, the operator is provided with the capability to rapidly assess the effect of pending configuration changes before those changes are deployed to data from live electronic trading systems. Thus, embodiments enable the operator to respond to abnormal events and actions detected in real-time in a timely manner so as to improve the reliability and responsiveness of the electronic trading systems and/or monitoring systems of the electronic trading systems to such events and actions.
Embodiments may also improve the speed and responsiveness of the computer system that displays the surveillance alert configuration and management user interface. A configuration data structure is configured to store initial configurations and changed configurations of alerts and alerts' configuration parameters in hierarchical structures that enable fast counting of pending configuration changes so that the user interface can be updated with minimum delay to represent the impact of pending configuration changes across the system. Fast rendering of updates to the user interface is enabled by configuring the changes in the configuration data structure such that the changes can be counted efficiently with minimum time delays to obtain the counts for multiple counters that track the number of changes.
In modern systems, operators are often in situations where they are even temporarily limited to small screen sizes (e.g., tablets, smartphone, etc.). Some embodiments, by clearly representing, by using a collection of counters, the impact that any one alert configuration parameter change can have on the alert configurations throughout the system on a single screen, present a clear, more easily comprehensible view of system alerts to the operator in a manner that is adaptive even to smaller screen sizes.
Thus, the technical features described herein may improve the operator's capabilities to respond quickly and effectively to issues in a monitored system and may also improve the reliability and performance of the alert configuration system and monitored computer systems.
The elements described in this document include actions, features, components, items, attributes, and other terms. Whenever it is described in this document that a given element is present in “some embodiments,” “various embodiments,” “certain embodiments,” “certain example embodiments, “some example embodiments,” “an exemplary embodiment,” “an example,” “an instance,” “an example instance,” or whenever any other similar language is used, it should be understood that the given element is present in at least one embodiment, though is not necessarily present in all embodiments. Consistent with the foregoing, whenever it is described in this document that an action “may,” “can,” or “could” be performed, that a feature, element, or component “may,” “can,” or “could” be included in or is applicable to a given context, that a given item “may,” “can,” or “could” possess a given attribute, or whenever any similar phrase involving the term “may,” “can,” or “could” is used, it should be understood that the given action, feature, element, component, attribute, etc. is present in at least one embodiment, though is not necessarily present in all embodiments.
Terms and phrases used in this document, and variations thereof, unless otherwise expressly stated, should be construed as open-ended rather than limiting. As examples of the foregoing: “and/or” includes any and all combinations of one or more of the associated listed items (e.g., a and/or b means a, b, or a and b); the singular forms “a”, “an”, and “the” should be read as meaning “at least one,” “one or more,” or the like; the term “example”, which may be used interchangeably with the term embodiment, is used to provide examples of the subject matter under discussion, not an exhaustive or limiting list thereof; the terms “comprise” and “include” (and other conjugations and other variations thereof) specify the presence of the associated listed elements but do not preclude the presence or addition of one or more other elements; and if an element is described as “optional,” such description should not be understood to indicate that other elements, not so described, are required.
As used herein, the term “non-transitory computer-readable storage medium” includes a register, a cache memory, a ROM, a semiconductor memory device (such as D-RAM, S-RAM, or other RAM), a magnetic medium such as a flash memory, a hard disk, a magneto-optical medium, an optical medium such as a CD-ROM, a DVD, or Blu-Ray Disc, or other types of volatile or non-volatile storage devices for non-transitory electronic data storage. The term “non-transitory computer-readable storage medium” does not include a transitory, propagating electromagnetic signal.
The claims are not intended to invoke means-plus-function construction/interpretation unless they expressly use the phrase “means for” or “step for.” Claim elements intended to be construed/interpreted as means-plus-function language, if any, will expressly manifest that intention by reciting the phrase “means for” or “step for”; the foregoing applies to claim elements in all types of claims (method claims, apparatus claims, or claims of other types) and, for the avoidance of doubt, also applies to claim elements that are nested within method claims. Consistent with the preceding sentence, no claim element (in any claim of any type) should be construed/interpreted using means plus function construction/interpretation unless the claim element is expressly recited using the phrase “means for” or “step for.”
Whenever it is stated herein that a hardware element (e.g., a processor, a network interface, a display interface, a user input adapter, a memory device, or other hardware element), or combination of hardware elements, is “configured to” perform some action, it should be understood that such language specifies a physical state of configuration of the hardware element(s) and not mere intended use or capability of the hardware element(s). The physical state of configuration of the hardware elements(s) fundamentally ties the action(s) recited following the “configured to” phrase to the physical characteristics of the hardware element(s) recited before the “configured to” phrase. In some embodiments, the physical state of configuration of the hardware elements may be realized as an application specific integrated circuit (ASIC) that includes one or more electronic circuits arranged to perform the action, or a field programmable gate array (FPGA) that includes programmable electronic logic circuits that are arranged in series or parallel to perform the action in accordance with one or more instructions (e.g., via a configuration file for the FPGA). In some embodiments, the physical state of configuration of the hardware element may be specified through storing (e.g., in a memory device) program code (e.g., instructions in the form of firmware, software, etc.) that, when executed by a hardware processor, causes the hardware elements (e.g., by configuration of registers, memory, etc.) to perform the actions in accordance with the program code.
A hardware element (or elements) can therefore be understood to be configured to perform an action even when the specified hardware element(s) is/are not currently performing the action or is not operational (e.g., is not on, powered, being used, or the like). Consistent with the preceding, the phrase “configured to” in claims should not be construed/interpreted, in any claim type (method claims, apparatus claims, or claims of other types), as being a means plus function; this includes claim elements (such as hardware elements) that are nested in method claims.
Although examples are provided herein with respect to the trading of equities (i.e., equity securities/stock), the technology described herein may also be used, mutatis mutandis, with any type of asset, including but not limited to other types of financial instruments (e.g., bonds, options, futures), currencies, cryptocurrencies, and/or non-financial assets. Further, although examples are provided herein with respect to electronic trading platforms, the technology described herein may also be used, mutatis mutandis, with other types of distributed computing systems, including but not limited to telecommunication networks, payment processing systems, industrial control systems, parallel scientific computation systems, smart contract systems, transaction processing systems, distributed databases, and/or other types of distributed systems.
Although process steps, algorithms or the like, including without limitation with reference to
Although various embodiments have been shown and described in detail, the claims are not limited to any particular embodiment or example. None of the above description should be read as implying that any particular element, step, range, or function is essential. All structural and functional equivalents to the elements of the above-described embodiments that are known to those of ordinary skill in the art are expressly incorporated herein by reference and are intended to be encompassed. Moreover, it is not necessary for a device or method to address each and every problem sought to be solved by the present invention, for it to be encompassed by the invention. No embodiment, feature, element, component, or step in this document is intended to be dedicated to the public.