WO2001022335A2 - Notification and alert processing using a plurality of communication media - Google Patents

Notification and alert processing using a plurality of communication media Download PDF

Info

Publication number
WO2001022335A2
WO2001022335A2 PCT/US2000/026203 US0026203W WO0122335A2 WO 2001022335 A2 WO2001022335 A2 WO 2001022335A2 US 0026203 W US0026203 W US 0026203W WO 0122335 A2 WO0122335 A2 WO 0122335A2
Authority
WO
WIPO (PCT)
Prior art keywords
message
user
destination address
alert
user destination
Prior art date
Application number
PCT/US2000/026203
Other languages
French (fr)
Other versions
WO2001022335A3 (en
Inventor
Leonard G. Raymond
Jeremy J. Bornstein
Daniel R. Bornstein
Original Assignee
Raymond Leonard G
Bornstein Jeremy J
Bornstein Daniel R
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
Application filed by Raymond Leonard G, Bornstein Jeremy J, Bornstein Daniel R filed Critical Raymond Leonard G
Priority to AU40213/01A priority Critical patent/AU4021301A/en
Publication of WO2001022335A2 publication Critical patent/WO2001022335A2/en
Publication of WO2001022335A3 publication Critical patent/WO2001022335A3/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/10Office automation; Time management

Definitions

  • This invention relates to electronic commerce and, more particularly, to a system and network that sends messages and receives acknowledgments using a plurality of communication media.
  • client and server are used to refer to a computer's general role as a requester of data (the client) or provider of data (the server).
  • Web browsers reside in clients and specially-formatted "Web documents" reside on Internet (Web) servers.
  • Web clients and Web servers communicate using a protocol called “HyperText Transfer Protocol” (HTTP).
  • HTTP HyperText Transfer Protocol
  • a browser opens a connection to a server and initiates a request for a document.
  • the server delivers the requested document, typically in the form coded in a standard "HyperText Markup Language” (HTML) format.
  • HTML HyperText Markup Language
  • the connection is typically closed, though this is not essential.
  • the browser displays the document or performs a function designated by the document.
  • the traditional method to place financial transactions is to call their broker, or other account representative, and instruct him or her in the details of the transaction they wish to take place.
  • they may contact a computer system, e.g., via the Internet, which is connected to an account they control and instruct the computer system in the details of the specific transactions they wish to initiate.
  • On-line brokerage services do exist that users can access via the Internet and allow the user to place trading orders with the broker. With these systems, the user may monitor changes in the financial markets or these systems may actually send a message to the user based on a specific criterion given by the user, which is typically numeric based. For example, the user may request to be sent a message via email if a Stock A begins trading at $50.00 a share or higher.
  • these automatic systems use only limited, single variable criteria for these messages, such as stock price, and they do not automatically perform or place a transaction order when the alert occurs.
  • these other brokerage services do not monitor other market news, such as specific financial manager's analyses or ratings on specific stocks, to provide feedback to the user or place an order based on this market news.
  • these online brokerage services will typically only send a message via a single, predetermined contact channel, such as email, or pager-type device, to the user.
  • the user cannot specify the communication medium of his/her choice, such as a sending a voice message to a user's telephone, a data message to a user's computer system or a data message to a user's pager at the user's election.
  • the messages sent by these online brokerage services typically do not process acknowledgment or do not initiate any action when a user acknowledges that the message was sent. They may capture when the user has received the message, however they do not allow the user to enter voice or data matching criteria that will prompt the system to initiate an action, or cause it not to take further actions.
  • Large institutions provide automatic trading, however, they do not analyze market news that is in textual form nor do they analyze this market news for a multiple number of individual users placing orders each using multiple criteria, which may also be very dynamic (i.e., readily subject to change).
  • Large institutions' automatic systems are typically programmed to provide specific feedback customized to a specific user and are generally not flexible nor dynamic, i.e., modifications to these systems typically require a programming specialist, and take a substantial amount of time and effort to modify.
  • These large institutions also do not typically allow a user to be sent messages, automatically, using a plurality of communication media nor provide for automatic processing of acknowledgments.
  • a method for sending a message to a destination address comprises the steps of receiving the message from a message generator, receiving a priority list identifying user destination address, selecting a first user destination address from the priority list identifying the user destination addresses, and sending the message to the first user destination address.
  • the first user destination address is the highest priority in the priority list.
  • the method may also include the steps of selecting a second user destination address from the priority list identifying the user destination addresses, and sending the message to the second user destination address.
  • the first user destination address may use a different communication medium than the second user destination address.
  • the method may include the step of sending the message to a second user destination address a predetermined time period after sending the message to the first user destination address.
  • the method may comprise the steps of defining an alert expiration time and terminating the sending of the message to the first user destination address in the priority list after the alert expiration time.
  • the method may also include the step of receiving an acknowledgment message and the acknowledgment message may be received through a different communication medium than was used to send the message to the first user destination address.
  • the method may also include the step of initiating an action in response to receiving the acknowledgment message.
  • a notification system for communicating using a plurality of communication media, comprises a computer containing a central processing unit (CPU) operative to execute an operating system and having access to a plurality of communication media, and a computer memory, accessible by the CPU, comprising a notification alert manager component operative to receive a message for a user, and a notification alert sending module operative to receive a priority list and to send the message via one of the communication media.
  • the notification/alert sending module may send the message using the plurality of communication media.
  • the computer memory may further comprise an incoming module to receive an acknowledgment or instructional message.
  • the acknowledgment or instructional message may be received on a different communication medium than was used by the notification/alert sending message to send the message.
  • FIG. 1 is a pictorial diagram of a computer network in which systems consistent with the present invention may be implemented;
  • FIG. 2 is a block diagram depicting a financial trading system's interaction with other external systems in an exemplary embodiment of the present invention
  • FIG. 3 is block diagram depicting various components of a financial trading system in an exemplary embodiment of the present invention
  • FIG. 4 is a flowchart showing steps used by a financial trading system to perform an action based on user criteria in an exemplary embodiment of the present invention
  • FIG. 5 is a flowchart showing the steps performed by a program evaluation engine in an exemplary embodiment of the present invention
  • FIG. 6 is a flowchart showing the steps performed by an external action engine in an exemplary embodiment of the present invention
  • FIG. 7 is a block diagram depicting a notification alert system interacting with other systems in a manner consistent with an exemplary embodiment of the present invention
  • FIG. 8 is a block diagram that depicts the various components of a notification/alert system in a manner consistent with an exemplary embodiment of the present invention
  • FIG. 9 is a flow chart depicting the high level processing of notifications and alerts in a notification/alert system in a manner consistent with an exemplary embodiment of the present invention.
  • FIG. 10 is a flow chart showing the steps to process an outgoing message in a notification/alert system in a manner consistent with an exemplary embodiment of the present invention
  • FIG. 1 1 is a screen shot depicting a user interface showing a priority list used by a notification/alert system in a manner consistent with an exemplary embodiment of the present invention
  • FIG. 12 is a flow chart depicting steps to process an incoming acknowledgment to an alert message in a manner consistent with an exemplary embodiment of the present invention.
  • a notification/alert system uses a notification/alert system to send a message and receive acknowledgments using a plurality of communication media.
  • a notification/alert system receives a message to send to a user. This message may be a notification, a one-time message to be sent to a user, or an alert, a message that anticipates an acknowledgment from the user. An alert may prompt the user for instructional information and the acknowledgment may include instructional information.
  • a notification/alert system will use voice and/or data to send a message to a user and will receive acknowledgments from the user via voice and/or data information.
  • the communication medium by which the notification/alert system receives the acknowledgment is independent of the communication medium the notification/alert system sends the message.
  • a notification/alert system has access, either directly or indirectly, to multiple communication media to send and receive information, such as phone lines for voice and data messages, RF transmitters for paging information, public and private networks to send data messages, such as email messages.
  • the notification/alert system receives a message to send to the user from another system, such as the financial trading system.
  • the notification/alert system may select one of a plurality of communication media that the user has established to send this message to the user.
  • the destination of the message may also be another computer system.
  • the notification alert system may translate the received message into voice format if it received the message in a data format, or vice versa, and the message is to be send to the user using a telephone voice medium, or vice versa.
  • the notification/alert system then sends the message using the selected communication medium. If the message is an alert message, than the system monitors data and voice coming into the notification/alert system to detect whether an acknowledgment is received to the alert message. The acknowledgment may be received using a different communication medium than was used to send the message. Once the acknowledgment is received, than the notification/alert system may initiate an action or send the acknowledgment to another system to initiate an action.
  • Systems and methods consistent with the present invention allow users to specify multiple acknowledgment criteria that the users may define to a notification/alert system and may also define multiple actions to initiate when the user sends an acknowledgment to the notification/alert system that satisfy the predefined acknowledgment criteria.
  • Figure 1 illustrates a conceptual diagram of a computer network 100, such as the Internet.
  • Computer network 100 comprises small computers (such as computers 102, 104, 106, 108, 1 10 and 112) and large computers (such as servers 120 and 122).
  • small computers are "personal computers” or workstations and are the sites at which a human user operates the computer to make requests for data from other computers or servers on the network.
  • the requested data resides in large computers.
  • small computers are clients and the large computers are servers.
  • client and “server” are used to refer to a computer's general role as a requester of data (client) or provider of data (server).
  • the size of a computer or the resources associated with it do not preclude the computer's ability to act as a client or a server. Further, each computer may request data in one transaction and provide data in another transaction, thus changing the computer's role from client to server, or vice versa.
  • a client such as computer 102
  • the "network" of Figure 1 represents, for example, the Internet, which is an interconnection of networks.
  • a different request from computer 102 may be for a file that resides in server B 122. In this case, the data is transferred from server B 122 through the network to server A 120 and, finally, to computer 102.
  • the distance between server A 120 and server B 122 may be very long, e.g. across continents, or very short, e.g., within the same city. Further, in traversing the network, the data may be transferred through several intermediate servers and many routing devices, such as bridges and routers.
  • a financial trading system may reside as one or more nodes in the network.
  • Figure 2 is a block diagram depicting the financial trading system's interaction with other external systems in an exemplary embodiment of the present invention.
  • the financial trading system 215 interfaces with a user 200, a market news source 210, and a trading firm 205. It will be recognized by one skilled in the art that while only one user 200, one market news source 210, and one trading firm 205 is depicted in Figure 2, that the financial trading system can interface with multiple users, receive market news from multiple sources and interact with multiple trading firms, such as brokerage houses, clearing houses, and the like.
  • connections between the financial trading system and the external systems and users can be via the Internet, private network, or direct dial-in lines to the systems and users.
  • multiple users may be connected to the Internet to access the financial trading system 215.
  • a private network may interconnect to the trading firm 205 to pass financial information between the financial trading system and the trading firm.
  • the user 200 provides criteria and actions to the financial trading system to process.
  • the financial trading system 215 receives market information from the market news source 210 which the financial trading system analyzes to find market news related to the user's criteria.
  • the market news source includes market information such as stock quotes, financial analyst reports and recommendations.
  • the information passed to the financial trading system 215 from the market news source 210 may be in numerical format, such as in the case of stock quotes, as well as in textual format, such as in the case of financial analyst's reports and recommendations.
  • the trading firms 205 that the financial trading system 215 interact with may include brokerage and clearing houses, such as brokers, market makers, NASDAQ small order execution systems, electronic commerce networks "ECNs," or the exchanges themselves.
  • FIG 3 is a block diagram depicting the various components of the financial trading system in an exemplary embodiment of the present invention.
  • the words “internal” and “external” are used to describe various aspects of the financial trading system.
  • the words “internal” and “external” are used for reference value only and in no way, in and of themselves, should be interpreted that the functions associated with the financial trading system or the various components contained therein are required to have an "internal” or “external” characteristics as related to the financial trading system.)
  • the user interface 300 receives information from the user, such as specific criteria the user is entering as well as the actions the user wishes to perform when the criteria is satisfied. As stated above, the user may enter this information into the user interface 300 by way of the Internet, a direct dial-in, or any other means in which a computer or terminal can access the financial trading system.
  • the criteria and action information entered into the user interface is then formatted and stored into a user database 305 as a rule. It is not required that the action actually be stored with the criteria as a rule, however it is preferable that the action be associated with the criteria in some manner.
  • the financial trading system also includes a data input component 320 where the market news information from the market news source, or multiple market news sources, is entered into the financial trading system.
  • This market news is sent to the financial trading system in near real time as, for example, the prices of stocks change or financial analysts change their analyses for any given stock (or other trading commodity).
  • the data input component 320 then stores this information into a market database 315. Because market news can be updated often and many sources may be used, the amount of market news information to be stored maybe very large. Therefore it is preferable that the market database be large enough to handle a significant amount of data. The amount of data eventually stored could approach hundreds of gigabytes or even terabytes.
  • the program evaluation engine 310 interfaces with the user database 305, the market database 315 and the external action engine 320.
  • the program evaluation engine uses the information received from the market news via the market database 315 and compares this information with the criteria the user has entered via the user database 305. For example, a user may have entered a criteria to look at the market news and initiate a trigger when a fund manager changes his recommendation for a specific stock, "Stock A," to buy.
  • the user may then define an action to buy 100 shares of "Stock A" when the criterion is satisfied.
  • the program evaluation engine 310 will receive that criterion and action, stored as a rule in the user database 305.
  • the program evaluation engine 310 evaluates the market news to determine whether that specific fund manager specified in the user's criteria announced a change for "Stock A" to a buy recommendation.
  • the program evaluation engine 310 performs this function for multiple criteria listed in the rules in the user database 305 with the market news information being received by the data input component 320.
  • the rule containing the criterion and action is considered to have been triggered and the program evaluation engine 310 will respond to this trigger event to initiate the action specified in the rule.
  • an action may require that another rule be triggered.
  • the program evaluation engine 310 interfaces back to the user database 305 to retrieve the other rule that has been triggered to initiate the action associated with other triggered rule.
  • the program evaluation engine 310 sends the rule, with the action, to the external action engine 320.
  • the external action engine 320 in the financial trading system is responsible for performing the action that is sent to it by the program evaluation engine 310.
  • the user can define many actions to occur when a rule is triggered. These actions include a fulfillment of an order, e.g., placing a trade order for a specific stock, a notification to the user that the rule has been triggered, or in some instances, it may even require an internal transaction trading.
  • the external action engine 320 interfaces with a fulfillment component 335, a notification component 330, and an internal transaction trading component 325, respectively, to perform the action.
  • a fulfillment component 335 interfaces with various brokerages or clearing houses to place the order specified in the action. Note that in this process, the user has defined a criterion or criteria and action, and the system has automatically performed the action, e.g., placed an order, based on the user's defined criterion or criteria. The financial trading system is not solely providing an alert to the user.
  • the external action engine passes the action into the notification component 330 and then the user is notified by whatever means are defined in a user profile establish by the user and to the user interface 300.
  • Figure 4 is a flow chart showing steps performed by a financial trading system to initiate actions based on user criteria in an exemplary embodiment of the present invention.
  • input rules are generated that include a user's defined criteria and actions (Step 400).
  • Rules can be stored in a user database as described with Figure 3 or they may be maintained using other storage schemes as recognized by those skilled in the art.
  • the criteria contained in each rule will be the bases for establishing triggers for those rules.
  • a rule trigger is defined as those situations in which the criteria defined by the user, in the rule, are satisfied.
  • the system receives market news information from various market news sources in near real time (Step 405). This market news information may be received from a data stream from various news sources into the financial trading system.
  • the market news information received into the system may originate from multiple sources, such as from an exchange directly identifying various stocks or from market and financial news wires that provide updates and evaluations of various stocks.
  • Step 410 The market news information is then evaluated against the rules that were generated in Step 400 (Step 410). It is preferable that this evaluation is done in near real time.
  • near real-time we define near real-time as not necessarily embodying any delays of more than a few minutes from initial availability of the information to the system. In ideal circumstances, the information becomes available to the system within seconds of its creation, though in some circumstances and for certain types of data this may not always be the case. If this information is "old,” then the conditions of the market could change prior to when the action associated with the rule can be performed. Information is "old" when other entities may have had significant opportunity to trade or otherwise react to the information before it is received by the system or before it is available to the users of the system.
  • the trigger will be initiated to perform an action defined by the user, namely the buy order.
  • the $50.00 share price is the value of Stock A while the stock quote is "new," or received in near real time. If it has not been received in near real time then the value of the price could easily have changed before the system is able to perform the action resulting in the action not being properly performed because the data satisfying the criterion have changed.
  • the financial trading system detects, after the evaluation of the market news against the rules, whether a specific rule has been triggered (Step 415).
  • the system evaluates multiple rules to determine if any of the rules should be triggered.
  • these rules are dynamic in that they may change at any given time as users may elect to either change, add or delete the criteria, the action or both associated with the rule.
  • Step 405 the system again continues to receive market news and then evaluates the market news against the rules as described above.
  • the sequential pieces of this illustration may be performed in parallel by a multitasking computer, with each component acting on new information available to it since the last iteration of its own execution.
  • Step 415 a rule is triggered, the "Yes" branch is followed to Step 420 where the action defined in the rule is then initiated.
  • the actions defined in the systems can be numerous and may include such things as placing a trade order with a brokerage service, providing a notification to the user that at specific rule has been triggered, or triggering another rule to perform another action defined in the system.
  • the action may also include performing an internal trade.
  • the system stores the event that the action was initiated. This event may be stored in the user database, as described with respect to Figure 3, or in whatever storage paradigm is used to implement the present invention.
  • Figure 5 is a flow chart showing the steps performed by a program evaluation engine in an exemplary embodiment of the present invention.
  • the program evaluation engine receives the rules from the user database (Step 500).
  • the program evaluation engine retrieves the market news information from the market database (Step 505).
  • the user database and market database can be established as described with respect to Figure 3. Therefore, the rules can be entered into a database via a user interface whenever the user enters a criterion or criteria and action and the financial trading system then generating a rule and storing it in the database.
  • the market news information can be retrieved from the market database where it can be stored via a data input component.
  • the data input component may receive market news information from one or multiple sources.
  • the program evaluation engine After receiving the market news information from the market database, the program evaluation engine then determines if a rule is triggered (Step 510). If the rule is not triggered then the "No" branch is followed and the process ends. In the event that a rule is triggered, then the "Yes" branch is followed and the program evaluation engine then determines whether the external action engine is required (Step 515). If the external action engine is not required, then the program evaluation engine performs the action and updates the user database indicating that the rule was triggered and that the action was performed (Step 525). In the event that the external action engine is required, then the program evaluation engine sends the rule, containing the action, to the external action engine (Step 520). The user database is then updated to indicate that the rule was triggered. Following Steps 525 and 520, the process of the program evaluation engine then ends. External Action Engine
  • FIG. 6 is a flow chart showing the steps performed by an external action engine in an exemplary embodiment of the present invention.
  • the external action engine is initiated by receiving a rule from the program evaluation engine (Step 600). After receiving the rule, the external action engine then determines what action is required from the rule (Step 605).
  • the action required may be a compound action comprising multiple subactions.
  • the external action engine then initiates the action by sending requests to a fulfillment component to perform the action in the rule (Step 615).
  • a fulfillment action is one requiring the purchase, sale or some transaction of an item, such as stock.
  • a fulfillment action may be a trading order to "buy 100 shares of Stock A at $50.00 a share.”
  • the fulfillment component may place the "buy" order with a brokerage house.
  • the external action engine via the fulfillment component, may interface with several trading firms in order to perform various fulfillment actions.
  • the external action engine via the fulfillment component, may interface with brokerage houses, clearing houses, the exchange directly, and various other systems that perform trading.
  • the action defined in the rule that was triggered is a notification action
  • the external action engine sends a message to the user that the rule having the user's criteria has been triggered via the notification component
  • the message may include a request for information from the user. Upon receiving the user's information may initiate further action.
  • the external action engine will send this rule containing the action to an internal trade component to perform the internal trade (Step 630).
  • the internal trade as described above, is trading within the financial trading system, (e.g., User A defined to the financial trading system sells stock to User B in the financial trading system without using any external systems).
  • the external action engine After having performed the action as required, the external action engine then receives verification that the action has been completed (Step 635). After receiving this verification, the external action engine then updates the user database to indicate that the action associated with the triggered rule has been performed (Step 640).
  • the user is sent a message indicating that a rule has been triggered.
  • This message may be in the form of a "notification” or an "alert.”
  • a notification is a one time message sent to a user using any communication medium, such as telephone lines for voice and data messages or data lines for a data message.
  • An alert is the sending of a message or sequence of messages to the user that is only terminated by an acknowledgment from the user, exceeding a predefined limit on the number of times the system will send the message, or if an amount of time has passed since sending the alert, e.g., surpassing an alert expiration time limit.
  • An acknowledgment by the user includes the user entering information, such as keypad entries on a telephone, satisfying acknowledgment criteria defined in the system.
  • One embodiment of the present invention comprises sending an alert message to the user indicating that a rule has been triggered, wherein the alert message includes a request for instructional information.
  • the acknowledgment may include instructional information to initiate an action. These actions may be predetermined by the user through interaction with the system in a manner similar to that in which the rule(s) and/or contact medium or media and address(es) were specified.
  • notification/alert system may be used in coordination with a financial trading system as described above, it can also be used to transmit any message using a plurality of media to a user or another computer system.
  • Fig. 7 is a block diagram depicting a notification/alert system interacting with other systems in a manner consistent with an exemplary embodiment of the present invention.
  • the notification/alert system 700 interacts directly with a message generator 705, an external communication media component 710, and a user or computer system 715 via the external communication media component 710. It will be recognized by one skilled in the art that while only one user and/or computer system is shown, the notification/alert system 700 may interact with multiple users and/or computer systems.
  • the notification/alert system 700 may also interact with other external systems to perform actions as required depending on the messages sent to it from the message generator 705. For example in a financial trading system, the notification/alert system 700 may interact with other systems such as brokerage houses (not shown) in order to place an order in response to a user acknowledging the receipt of the message sent by the notification alert system.
  • the message generator 705 generates a message to send to the user via the notification/alert system 700.
  • This message may be generated because a rule is triggered as described with respect to a financial trading system.
  • the notification alert system 700 can receive the message from any source to send notification and alert messages for that source independent of the type of message, the contents of the message, or how the message was initially generated.
  • the notification alert system 700 receives the message from the message generator 705 and processes the message to send to the user via the external communication media component 710. In one embodiment, the notification/alert system 700 will look up which communication media to use to send a message to the user.
  • This information may be passed to the notification/alert system with the message or the notification/alert system 700 may be given access to a database (not shown) where this information is contained in a priority list in a user profile.
  • the notification/alert system 700 also receives information from the user or other computer system 715 via the external communications media component 710. In one embodiment this information is in the form of an acknowledgment message.
  • the acknowledgment message is data or voice information sent by the user or computer system 715 that satisfies acknowledgment criteria stored in the notification/alert system 700.
  • the external communication media component 710 comprises access to those media that allow the notification/alert system 700 to communicate with the user or other computer system 715.
  • these media may include voice lines, data lines and radio frequency transmitters for telephone calls, e-mail, and paging messages.
  • Other media may exist that the notification/alert system 700 may use to contact the user or other computer system 715 and these other media are considered within the scope of the present invention.
  • the notification/alert system 700 uses the external communication media 710, sends the message to the user or computer system 715. When the notification/alert system 700 sends an alert message, the notification/alert system 700 anticipates an acknowledgment from the user.
  • the user component 715 will use the external communication media component 710 to send an acknowledgment to the notification/alert system 700. It is important to note, however, that the medium used by the user to send the acknowledgment to the notification/alert system 700 is independent of the medium used by the notification/alert system 700 to send the message to the user.
  • Fig. 8 depicts the various components of a notification/alert system 700 in a manner consistent with an exemplary embodiment of the present invention.
  • the notification/alert system 700 receives a message from a message generator 815.
  • the message generator 815 may be an external action engine and part of a financial trading system, which received the message because a rule was triggered in the financial trading system.
  • the message generator 815 sends the message to the notification/alert manager 800.
  • the term "user” will be used as the destination for a notification or alert message. However, it will be recognized by those skilled in the art that the destination may also be a computer system and the term "user” is used only to simplify the discussion.
  • the notification/alert manager 800 interfaces with multiple components within the notification/alert system 700 as well as other components in one embodiment of the present invention.
  • the notification alert manager 800 interfaces with a user database 805 in order to provide update information such as that the notification or alert message, whichever was requested to be sent by the message generator 815, was actually distributed to the user.
  • the user database 805 maybe the same database as is used with the financial trading system as described with respect to Fig. 3.
  • the notification/alert manager 800 also interfaces with the user database 305 in order to retrieve user profile data.
  • This user profile data includes information such as what media the user may be accessible by as well as the destination address of the user using those media.
  • the user may store and update this information using a user interface associated with the financial trading system.
  • this information need not be stored in the user database as long as the information is otherwise accessible.
  • this user profile information may be sent to the notification/alert system 700 by other sources, such as the message generator 815.
  • the notification/alert manager 800 also interfaces with the notification alert sending module 820.
  • the notification/alert sending module 820 is responsible for sending the message to the user via an external communication medium. In other words, the notification/alert sending module 820 will have access to communications lines allowing it to, for example, place an e-mail message.
  • the determination of which communication medium to use can be made either by the notification/alert manager 800 or the notification alert sending module 820.
  • the notification/alert manager 800 receives a priority list, containing the user defined communication media and destination addresses, from the user database 305 and determines which communication medium and destination address to use. The notification/alert manager will then pass this information to the notification/alert sending module 820.
  • the notification alert sending module 820 may also interface with the user database 810 in order to receive the destination addresses for the various communication media the user has established in the use profile, stored in the user database 305, and determines which communication medium and destination address to use.
  • the notification/alert manager 800 also interfaces with an alert action module 825.
  • the alert action module 825 is responsible for initiating an action indicated by the user once an acknowledgment is received to an alert message. Once having received an acknowledgment and if responding to the acknowledgment requires that the notification/alert system 700 initiates an action, such as placing a trade with the brokerage house, the notification/alert manager 800 will send what action is to be initiated to the alert action module 825. The alert action module 825 may then communicate with other systems to perform the action.
  • the notification/alert manager 800 also has two incoming module inputs.
  • the user may send the acknowledgment via a phone line or an e-mail. If the user sends an acknowledgment via the phone line, then the incoming phone module 830 will receive the acknowledgment and pass this acknowledgment on to the notification/alert manager to be processed.
  • the e-mail is received at the incoming e-mail module 835 and is passed into the notification/alert manager 800.
  • the medium used by the user to acknowledgment an alert is independent of the medium used by the notification/alert sending module 820 to send the message.
  • the incoming e-mail module 835 and the incoming phone module 830 may also cause an alert to be terminated, i.e., the user has acknowledged the alert by sending information satisfying the acknowledgment criteria and the alert, consequently, no longer is sent.
  • a proxy system is used to respond to an alert.
  • the user may set up a computer program, or proxy system, to review the user's e-mail. If an alert message is detected in the user's e-mail, the proxy server may process the alert message and send the acknowledgment to the notification/alert system 700.
  • the proxy system is a manner in which a timely acknowledgment can be sent to the notification/alert system 700 in an automated fashion.
  • the notification/alert system 700 waits for an acknowledgment regardless of whether generated by a user or user proxy system.
  • Below is an example of the information contained in an alert message received by the alert/notification system 700 and sent to a user.
  • notification/alert system assigns various functions to multiple components in a notification/alert system 700. It will be recognized to those skilled in the art that many other components and many other configurations may be used to implement the functions described herein. It is considered in scope of the present invention that the functions described herein are performed regardless of how they are manipulated or assigned to various components.
  • Fig. 9 is a flow chart depicting the high level process of processing notifications and alerts in a notification alert system 700 in a manner consistent with an exemplary embodiment of the present invention.
  • a notification or alert message is received by the notification alert system (Step 900).
  • the notification/alert system 700 then processes the outgoing notification or alert message (Step 905).
  • this is a notification message, as determined in Step 910, then the process ends (Step 930).
  • the notification message is a one time sent message wherein the system provides no tracking nor requires any acknowledgment from the user or computer system.
  • Step 915 the alert has expired. In one embodiment an expired alert is one that has not been acknowledged for a predetermined amount of time. If the alert has expired, the "Yes” branch is followed and the system then terminates the alert (Step 920). Following the termination of the alert, the process then ends (Step 930).
  • Step 915 the notification/alert system then processes an incoming acknowledgment message (Step 925). After processing the incoming acknowledgment message the alert is terminated Step 920 and then the process ends Step 930.
  • Fig. 10 is a flow chart showing the steps to process an outgoing message in a notification/alert system in a manner consistent with an exemplary embodiment of the present invention.
  • the notification/alert system 700 receives the notification or alert message (Step 1000).
  • the notification or alert message may be received from a message generator, an external action engine or other system indicating that either a rule has been triggered as described with respect to a financial trading system or some other condition was satisfied such that the notification or alert message to a user needs to be sent.
  • the notification system then loads the notification/alert preferences (Step 1005) from a user profile.
  • the notification/alert preferences include the priority list which include a listing of the communication media destination addresses, the number of attempts to try that destination address on that communication medium, and the number of minutes to wait between subsequent attempts.
  • Fig. 11 depicts a user interface showing a priority list wherein the user can insert and modify various communication media 1100, a destination address 1105 associated with each communication medium, a number of attempts 1110 to attempt to send the message to the user at the medium-destination address pair, and the number of minutes 1115 (i.e., an alert expiration time) between subsequent attempts for each medium-destination address or prior to attempting another medium- destination address.
  • the priority list which include a listing of the communication media destination addresses, the number of attempts to try that destination address on that communication medium, and the number of minutes to wait between subsequent attempts.
  • Fig. 11 depicts a user interface showing a priority list wherein the user can insert and modify various communication media 1100, a destination address 1105 associated with each communication medium, a number of attempts 1110 to attempt to send the message
  • the user has selected four different contact destination addresses comprising three different media (one e-mail, one pager, and two telephone numbers). As shown in Fig. 11, the user may select various media and a destination address associated with each medium. In addition, the user may select to try multiple attempts 1110 for a specific medium-destination address pair. Furthermore, in one embodiment, the user is allowed to select the number of minutes 1115 for the system to wait between attempting to either send another attempt at the same medium-destination address, or preceding down the list to select the next medium-destination address.
  • the system decides whether the received message to send to the user is an alert or notification message.
  • processing proceeds to send the notification to the user at the destination address defined in the notification/alert preferences (Step 1015). Following the sending of the notification message to the user, the outgoing processing ends (Step 1045).
  • Step 1010 that the message is an alert message then processing proceeds to determine if there are medium-destination addresses contained in the priority list, or within the notification alert preferences, that the system may use to send the alert. As described with Fig. 11 , the priority list may contain multiple medium-destination address pairs by which the user can select to receive the alert message.
  • the preferences are checked to determine if there are additional medium-destination addresses that haven't been used or if all the attempts haven't been used. If there are no more medium-destination addresses, i.e., the end of the priority list has been reached, the process follows the "No" branch and ends (Step 1045).
  • next medium-destination address may be a second or third attempt within a specific medium-destination address or, in the event when the maximum number of attempts has been tried for a specific medium- destination address, the next medium-destination address pair will be selected.
  • the present invention proceeds to send the alert message (Step 1030).
  • the alert message is sent only during a time-of-day period specified by the user as an acceptable time to receive the message.
  • the user may desire the system to send the alert message to the user at a telephone number during business hours, e.g., 8:00-5:00.
  • the notification/alert system 700 will delay the alert message until the time the user has defined to receive the alert message.
  • Step 1035 the alert expiration time
  • the present invention determines whether the alert has been terminated Step 1040.
  • the alert may be terminated by an acknowledgment having been received and the incoming acknowledgment processing terminating the alert (See Fig. 12). If the alert has not been terminated then the "No" branch is followed back up to Step 1020 where it is determined if more medium- destination addresses exist in the priority list. If the alert has been terminated then the "Yes" branch is followed and processing for the outgoing message ends (Step 1045).
  • Fig. 12 is a flow chart depicting steps to process an incoming acknowledgment to an alert message in a manner consistent with an exemplary embodiment of the present invention. Processing begins for an incoming acknowledgment when an incoming acknowledgment message has been received by the notification/alert system (Step 1200). After receiving the incoming acknowledgment message, it is matched with an outstanding alert message (Step 1205). Typically, there will be multiple alert messages awaiting acknowledgments at any given time. When the incoming acknowledgment message is received, this incoming acknowledgment message needs to be matched up with the alert message it is responding to. It will be recognized by one skilled in the art that the step of matching an incoming and outgoing message may be performed by having an identification number associated with each message in a table. However, the process of matching up multiple messages to determine whether an incoming message is associated with an outgoing message is well known to those skilled in the art.
  • the acknowledgment is then processed (Step 1210).
  • Processing the acknowledgment may require multiple different actions or the initiation of different actions. For example, the acknowledgment of an alert message that a user defined to initiate a trade will require the notification/alert system to place a trade order when the acknowledgment is received. However, other actions, such as requiring that another rule within a financial trading system be triggered or sending a message to someone else may be defined to take place once the acknowledgment has been received.
  • the action corresponding to the receipt of an acknowledgment is defined by the user. They need not be related other than the acknowledgment causing the action, defined by the user, to occur or be initiated.
  • the system then terminates the alert so that the alert message need not again be sent to the user (Step 1215).
  • the termination is important because, for example, the user may have multiple media indicated on their priority list and should the user respond, via an acknowledgment sent to the first alert message, it provides little value to continue to send the same alert message the user.
  • the processing of the incoming acknowledgment message and step 1220 Following the termination of the alert the processing of the incoming acknowledgment message and step 1220.
  • Notification/alert systems and methods to send messages and receive acknowledgments in a manner consistent with the present invention thus facilitates the ability of a user or a computer system to be notified of a message, such as when a rule has been triggered, and to initiate actions by sending acknowledgments to the notification/alert system using one of multiple communication media.
  • users can define a multitude of destination addresses using a variety of communication media, such as telephone lines for voice and data messages, public and private networks for data messages and RF transmitters for paging data messages.
  • the user may be sent a message using one of these communication media predefined to the notification/alert system. The selection of which may be the highest order defined in a priority list.
  • the user may send information, such as an acknowledgment, to the notification/alert system using any communication media to which the notification/alert system has access.
  • the user is not restricted to communicate with the notification/alert system using the same communication medium as the notification/alert system used to communicate with the user.
  • the notification alert system may also automatically initiate an action, such as placing a trading order, when the user sends an acknowledgment message.
  • the described implementation includes the trading of stocks or commodities, but the present invention will also apply to the trading of any item including, but not limited to, bonds, currencies, commodities, derivatives, collectibles, or other items where the purchase or selling of the item is at least partially based on definable criteria.
  • the described implementation includes software but the present invention may be implemented as a combination of hardware and software or in hardware alone. The invention may be implemented with both object-oriented and non-object-oriented programming systems.

Abstract

A notification/alert system for sending messages and receiving acknowledgments using multiple communication media, such as phone lines for voice and data messages, RF receivers and transmitters for paging information and public and private networks for data messages, such as email messages. The notification/alert system receives a message to send to the user. The notification/alert system then selects one of a plurality of communication media that the user has predefined to receive the message and sends the message to the user. If the message is an alert message, then the system monitors data and voice information being received by the notification/alert system to detect whether an acknowledgment to the alert message is received. The acknowledgement may be received using a different communication medium than was used to send the message. Once the acknowledgement is received, the notification/alert system may initiate an action or send the acknowledgment to another system to initiate an action. In the absence of an acknowledgment, if the message is an alert message, the message may be sent by same or different communications media, until the acknowledgment is received or until the expiration time of the alert has passed.

Description

NOTIFICATION AND ALERT PROCESSING USING A PLURALITY OF COMMUNICATION MEDIA
BACKGROUND OF THE INVENTION Field of the Invention
This invention relates to electronic commerce and, more particularly, to a system and network that sends messages and receives acknowledgments using a plurality of communication media. Description of the Related Art
The explosive use of Internet commerce allows businesses to better respond to customers' needs by allowing direct access to the business' computer systems for purchasing products and services. Customers, for example, are now using the Internet to order books, compact disks, and order stock trades by directly placing an order or reservation with a business' computer, completely bypassing human sales agent(s) or broker(s).
By using the Internet, and specifically the World Wide Web ("Web"), the ability of customers to interface with business computers is simplified. The architecture of the Web follows a conventional client-server model. The terms
"client" and "server" are used to refer to a computer's general role as a requester of data (the client) or provider of data (the server). Under the Web environment, Web browsers reside in clients and specially-formatted "Web documents" reside on Internet (Web) servers. Web clients and Web servers communicate using a protocol called "HyperText Transfer Protocol" (HTTP).
In operation, a browser opens a connection to a server and initiates a request for a document. The server delivers the requested document, typically in the form coded in a standard "HyperText Markup Language" (HTML) format. After the document is delivered, the connection is typically closed, though this is not essential. The browser displays the document or performs a function designated by the document. From the viewpoint of individual investors, the traditional method to place financial transactions is to call their broker, or other account representative, and instruct him or her in the details of the transaction they wish to take place. Alternatively, they may contact a computer system, e.g., via the Internet, which is connected to an account they control and instruct the computer system in the details of the specific transactions they wish to initiate. If the user is interacting with the broker and the user trusts the broker, it is sometimes possible to issue instructions about general strategy which the broker would subsequently attempt to implement based on his or her individual judgment. On-line brokerage services do exist that users can access via the Internet and allow the user to place trading orders with the broker. With these systems, the user may monitor changes in the financial markets or these systems may actually send a message to the user based on a specific criterion given by the user, which is typically numeric based. For example, the user may request to be sent a message via email if a Stock A begins trading at $50.00 a share or higher. However, these automatic systems use only limited, single variable criteria for these messages, such as stock price, and they do not automatically perform or place a transaction order when the alert occurs. In addition, these other brokerage services do not monitor other market news, such as specific financial manager's analyses or ratings on specific stocks, to provide feedback to the user or place an order based on this market news.
Also, these online brokerage services will typically only send a message via a single, predetermined contact channel, such as email, or pager-type device, to the user. The user cannot specify the communication medium of his/her choice, such as a sending a voice message to a user's telephone, a data message to a user's computer system or a data message to a user's pager at the user's election. Furthermore, the messages sent by these online brokerage services typically do not process acknowledgment or do not initiate any action when a user acknowledges that the message was sent. They may capture when the user has received the message, however they do not allow the user to enter voice or data matching criteria that will prompt the system to initiate an action, or cause it not to take further actions.
Large institutions provide automatic trading, however, they do not analyze market news that is in textual form nor do they analyze this market news for a multiple number of individual users placing orders each using multiple criteria, which may also be very dynamic (i.e., readily subject to change). Large institutions' automatic systems are typically programmed to provide specific feedback customized to a specific user and are generally not flexible nor dynamic, i.e., modifications to these systems typically require a programming specialist, and take a substantial amount of time and effort to modify. These large institutions also do not typically allow a user to be sent messages, automatically, using a plurality of communication media nor provide for automatic processing of acknowledgments.
Therefore, what is needed in the art today are systems and methods that allow a user to be notified through a plurality of communication media that specific criterion was satisfied and allow the user to send either voice or data information that initiates an action in the system sending the message which may be independent of the communication media used to send the message to the user. SUMMARY OF THE INVENTION Methods, systems and articles of manufacture consistent with the present invention overcome the shortcomings of existing systems and methods that process the sending of messages and receiving of acknowledgments by notifying a user through a plurality of communication media that a specific criterion was satisfied and allow the user to send either voice or data information that initiates an action in the system sending the message that may be independent of the communication media used to send the message to the user.
In accordance with one aspect of the present invention, as embodied and broadly described herein, in a computer system, a method for sending a message to a destination address, comprises the steps of receiving the message from a message generator, receiving a priority list identifying user destination address, selecting a first user destination address from the priority list identifying the user destination addresses, and sending the message to the first user destination address. The first user destination address is the highest priority in the priority list. The method may also include the steps of selecting a second user destination address from the priority list identifying the user destination addresses, and sending the message to the second user destination address. The first user destination address may use a different communication medium than the second user destination address. Furthermore, the method may include the step of sending the message to a second user destination address a predetermined time period after sending the message to the first user destination address. In addition, the method may comprise the steps of defining an alert expiration time and terminating the sending of the message to the first user destination address in the priority list after the alert expiration time.
The method may also include the step of receiving an acknowledgment message and the acknowledgment message may be received through a different communication medium than was used to send the message to the first user destination address. In addition, the method may also include the step of initiating an action in response to receiving the acknowledgment message.
In accordance with another aspect of the present invention, as embodied and broadly described herein, a notification system for communicating using a plurality of communication media, comprises a computer containing a central processing unit (CPU) operative to execute an operating system and having access to a plurality of communication media, and a computer memory, accessible by the CPU, comprising a notification alert manager component operative to receive a message for a user, and a notification alert sending module operative to receive a priority list and to send the message via one of the communication media. The notification/alert sending module may send the message using the plurality of communication media. In addition, the computer memory may further comprise an incoming module to receive an acknowledgment or instructional message. And furthermore, the acknowledgment or instructional message may be received on a different communication medium than was used by the notification/alert sending message to send the message. BRIEF DESCRIPTION OF THE DRAWINGS The accompanying drawings, which are incorporated in and constitute a part of this specification, illustrate an exemplary implementation of the invention and, together with the description, serve to explain the advantages and principles of the invention. In the drawings,
FIG. 1 is a pictorial diagram of a computer network in which systems consistent with the present invention may be implemented;
FIG. 2 is a block diagram depicting a financial trading system's interaction with other external systems in an exemplary embodiment of the present invention; FIG. 3 is block diagram depicting various components of a financial trading system in an exemplary embodiment of the present invention;
FIG. 4 is a flowchart showing steps used by a financial trading system to perform an action based on user criteria in an exemplary embodiment of the present invention;
FIG. 5 is a flowchart showing the steps performed by a program evaluation engine in an exemplary embodiment of the present invention;
FIG. 6 is a flowchart showing the steps performed by an external action engine in an exemplary embodiment of the present invention; FIG. 7 is a block diagram depicting a notification alert system interacting with other systems in a manner consistent with an exemplary embodiment of the present invention;
FIG. 8 is a block diagram that depicts the various components of a notification/alert system in a manner consistent with an exemplary embodiment of the present invention;
FIG. 9 is a flow chart depicting the high level processing of notifications and alerts in a notification/alert system in a manner consistent with an exemplary embodiment of the present invention;
FIG. 10 is a flow chart showing the steps to process an outgoing message in a notification/alert system in a manner consistent with an exemplary embodiment of the present invention;
FIG. 1 1 is a screen shot depicting a user interface showing a priority list used by a notification/alert system in a manner consistent with an exemplary embodiment of the present invention; and FIG. 12 is a flow chart depicting steps to process an incoming acknowledgment to an alert message in a manner consistent with an exemplary embodiment of the present invention. DETAILED DESCRIPTION
Reference will now be made in detail to an implementation consistent with the present invention as illustrated in the accompanying drawings. Wherever possible, the same reference numbers will be used throughout the drawings and the following description to refer to the same or like parts. Introduction
Systems and methods consistent with the present invention use a notification/alert system to send a message and receive acknowledgments using a plurality of communication media. A notification/alert system receives a message to send to a user. This message may be a notification, a one-time message to be sent to a user, or an alert, a message that anticipates an acknowledgment from the user. An alert may prompt the user for instructional information and the acknowledgment may include instructional information. A notification/alert system will use voice and/or data to send a message to a user and will receive acknowledgments from the user via voice and/or data information. The communication medium by which the notification/alert system receives the acknowledgment is independent of the communication medium the notification/alert system sends the message.
In more detail, in one embodiment, a notification/alert system has access, either directly or indirectly, to multiple communication media to send and receive information, such as phone lines for voice and data messages, RF transmitters for paging information, public and private networks to send data messages, such as email messages. The notification/alert system receives a message to send to the user from another system, such as the financial trading system. The notification/alert system may select one of a plurality of communication media that the user has established to send this message to the user. The destination of the message may also be another computer system. In one embodiment, the notification alert system may translate the received message into voice format if it received the message in a data format, or vice versa, and the message is to be send to the user using a telephone voice medium, or vice versa. The notification/alert system then sends the message using the selected communication medium. If the message is an alert message, than the system monitors data and voice coming into the notification/alert system to detect whether an acknowledgment is received to the alert message. The acknowledgment may be received using a different communication medium than was used to send the message. Once the acknowledgment is received, than the notification/alert system may initiate an action or send the acknowledgment to another system to initiate an action. Systems and methods consistent with the present invention allow users to specify multiple acknowledgment criteria that the users may define to a notification/alert system and may also define multiple actions to initiate when the user sends an acknowledgment to the notification/alert system that satisfy the predefined acknowledgment criteria. Network Architecture
Figure 1 illustrates a conceptual diagram of a computer network 100, such as the Internet. Computer network 100 comprises small computers (such as computers 102, 104, 106, 108, 1 10 and 112) and large computers (such as servers 120 and 122). In general, small computers are "personal computers" or workstations and are the sites at which a human user operates the computer to make requests for data from other computers or servers on the network. Usually, the requested data resides in large computers. In this scenario, small computers are clients and the large computers are servers. In this specification, the terms "client" and "server" are used to refer to a computer's general role as a requester of data (client) or provider of data (server). In general, the size of a computer or the resources associated with it do not preclude the computer's ability to act as a client or a server. Further, each computer may request data in one transaction and provide data in another transaction, thus changing the computer's role from client to server, or vice versa.
A client, such as computer 102, may request a file from server A 120. Since computer 102 is directly connected to server A 120, for example, through a local area network, this request would not normally result in a transfer of data over what is shown as "network" of Figure 1. The "network" of Figure 1 represents, for example, the Internet, which is an interconnection of networks. A different request from computer 102 may be for a file that resides in server B 122. In this case, the data is transferred from server B 122 through the network to server A 120 and, finally, to computer 102. The distance between server A 120 and server B 122 may be very long, e.g. across continents, or very short, e.g., within the same city. Further, in traversing the network, the data may be transferred through several intermediate servers and many routing devices, such as bridges and routers. Financial Trading System
Using such a network as described in Fig.1, a financial trading system may reside as one or more nodes in the network. Figure 2 is a block diagram depicting the financial trading system's interaction with other external systems in an exemplary embodiment of the present invention. In one embodiment of the present invention, the financial trading system 215 interfaces with a user 200, a market news source 210, and a trading firm 205. It will be recognized by one skilled in the art that while only one user 200, one market news source 210, and one trading firm 205 is depicted in Figure 2, that the financial trading system can interface with multiple users, receive market news from multiple sources and interact with multiple trading firms, such as brokerage houses, clearing houses, and the like. The connections between the financial trading system and the external systems and users can be via the Internet, private network, or direct dial-in lines to the systems and users. For example, multiple users may be connected to the Internet to access the financial trading system 215. However, a private network may interconnect to the trading firm 205 to pass financial information between the financial trading system and the trading firm.
The user 200 provides criteria and actions to the financial trading system to process. The financial trading system 215 receives market information from the market news source 210 which the financial trading system analyzes to find market news related to the user's criteria. The market news source includes market information such as stock quotes, financial analyst reports and recommendations. The information passed to the financial trading system 215 from the market news source 210 may be in numerical format, such as in the case of stock quotes, as well as in textual format, such as in the case of financial analyst's reports and recommendations. The trading firms 205 that the financial trading system 215 interact with may include brokerage and clearing houses, such as brokers, market makers, NASDAQ small order execution systems, electronic commerce networks "ECNs," or the exchanges themselves. Financial Trading System Architecture Figure 3 is a block diagram depicting the various components of the financial trading system in an exemplary embodiment of the present invention. (Throughout the specification, the words "internal" and "external" are used to describe various aspects of the financial trading system. The words "internal" and "external" are used for reference value only and in no way, in and of themselves, should be interpreted that the functions associated with the financial trading system or the various components contained therein are required to have an "internal" or "external" characteristics as related to the financial trading system.)
The user interface 300 receives information from the user, such as specific criteria the user is entering as well as the actions the user wishes to perform when the criteria is satisfied. As stated above, the user may enter this information into the user interface 300 by way of the Internet, a direct dial-in, or any other means in which a computer or terminal can access the financial trading system. The criteria and action information entered into the user interface is then formatted and stored into a user database 305 as a rule. It is not required that the action actually be stored with the criteria as a rule, however it is preferable that the action be associated with the criteria in some manner. There may be many rules associated with a specific user depending on how many actions the user wishes to perform. In addition, if there are multiple users, each of those users may also have multiple rules associated with them. Therefore, in implementation, the rules managed by financial trading system can be quite extensive, depending on the number of users and the number of actions requested by each of the users, and dynamic, depending how often the users change the rules.
The financial trading system also includes a data input component 320 where the market news information from the market news source, or multiple market news sources, is entered into the financial trading system. This market news is sent to the financial trading system in near real time as, for example, the prices of stocks change or financial analysts change their analyses for any given stock (or other trading commodity). As the market news information comes in at near real time, it is accepted into the data input component 320. The data input component 320 then stores this information into a market database 315. Because market news can be updated often and many sources may be used, the amount of market news information to be stored maybe very large. Therefore it is preferable that the market database be large enough to handle a significant amount of data. The amount of data eventually stored could approach hundreds of gigabytes or even terabytes. It is also preferable that in addition to storing the data into the market database 315, that all of the relevant individually measurable aspects of the equity or other financial instrument (prices, trading volumes, etc), measured over time, are essentially stored in identically-formatted records and made amenable to random access. The program evaluation engine 310 interfaces with the user database 305, the market database 315 and the external action engine 320. The program evaluation engine uses the information received from the market news via the market database 315 and compares this information with the criteria the user has entered via the user database 305. For example, a user may have entered a criteria to look at the market news and initiate a trigger when a fund manager changes his recommendation for a specific stock, "Stock A," to buy. The user may then define an action to buy 100 shares of "Stock A" when the criterion is satisfied. The program evaluation engine 310 will receive that criterion and action, stored as a rule in the user database 305. As the market news is sent into the financial trading system and stored into the market database 315 , the program evaluation engine 310, in near real time, evaluates the market news to determine whether that specific fund manager specified in the user's criteria announced a change for "Stock A" to a buy recommendation. The program evaluation engine 310 performs this function for multiple criteria listed in the rules in the user database 305 with the market news information being received by the data input component 320.
In the event that user criterion is satisfied, i.e., that the market news matches the criterion the user has entered, the rule containing the criterion and action is considered to have been triggered and the program evaluation engine 310 will respond to this trigger event to initiate the action specified in the rule. In some cases, an action may require that another rule be triggered. When the action associated with one rule triggers another, the program evaluation engine 310 interfaces back to the user database 305 to retrieve the other rule that has been triggered to initiate the action associated with other triggered rule.
In the event that the triggered rule requires some action other than the triggering of another rule as described above, then the program evaluation engine 310 sends the rule, with the action, to the external action engine 320. The external action engine 320 in the financial trading system is responsible for performing the action that is sent to it by the program evaluation engine 310. In one embodiment, the user can define many actions to occur when a rule is triggered. These actions include a fulfillment of an order, e.g., placing a trade order for a specific stock, a notification to the user that the rule has been triggered, or in some instances, it may even require an internal transaction trading. In each of these cases, the external action engine 320 interfaces with a fulfillment component 335, a notification component 330, and an internal transaction trading component 325, respectively, to perform the action. A fulfillment component 335 interfaces with various brokerages or clearing houses to place the order specified in the action. Note that in this process, the user has defined a criterion or criteria and action, and the system has automatically performed the action, e.g., placed an order, based on the user's defined criterion or criteria. The financial trading system is not solely providing an alert to the user.
In the event the action required is to notify the user, then the external action engine passes the action into the notification component 330 and then the user is notified by whatever means are defined in a user profile establish by the user and to the user interface 300.
It is also possible that internal trading may be performed. For example, one user may request to sell a stock when the price gets to $50.00 per share and another user may request to buy that same stock when it gets to $50.00 per share. In this case, the external brokerage houses are not required for the process and an internal trade may be performed between the two users within the financial trading system by transferring the stock from the first user to the second user. Financial Trading Process
Figure 4 is a flow chart showing steps performed by a financial trading system to initiate actions based on user criteria in an exemplary embodiment of the present invention. First, input rules are generated that include a user's defined criteria and actions (Step 400). Rules can be stored in a user database as described with Figure 3 or they may be maintained using other storage schemes as recognized by those skilled in the art. The criteria contained in each rule will be the bases for establishing triggers for those rules. A rule trigger is defined as those situations in which the criteria defined by the user, in the rule, are satisfied. The system then receives market news information from various market news sources in near real time (Step 405). This market news information may be received from a data stream from various news sources into the financial trading system. It is preferable that this information be stored in a database for easy retrieval as well as for analysis, such as historical analysis or forecasting. The market news information received into the system may originate from multiple sources, such as from an exchange directly identifying various stocks or from market and financial news wires that provide updates and evaluations of various stocks.
The market news information is then evaluated against the rules that were generated in Step 400 (Step 410). It is preferable that this evaluation is done in near real time. Here we define near real-time as not necessarily embodying any delays of more than a few minutes from initial availability of the information to the system. In ideal circumstances, the information becomes available to the system within seconds of its creation, though in some circumstances and for certain types of data this may not always be the case. If this information is "old," then the conditions of the market could change prior to when the action associated with the rule can be performed. Information is "old" when other entities may have had significant opportunity to trade or otherwise react to the information before it is received by the system or before it is available to the users of the system. For example, if assuming the user inputs a criterion to check when Stock A sells at $50.00 a share and an action to buy 100 shares of Stock A at $50.00 a share. If the system is evaluating the price of Stock A and it detects that it has dropped to $50.00 a share, the trigger will be initiated to perform an action defined by the user, namely the buy order. However, the $50.00 share price is the value of Stock A while the stock quote is "new," or received in near real time. If it has not been received in near real time then the value of the price could easily have changed before the system is able to perform the action resulting in the action not being properly performed because the data satisfying the criterion have changed. As in the above example when it was received that Stock A was trading at $50.00 a share setting off a trigger, if this information is old, there is a greater chance that Stock A's price may change prior to when the system attempts to perform the action of buying 100 shares. The financial trading system then detects, after the evaluation of the market news against the rules, whether a specific rule has been triggered (Step 415). The system evaluates multiple rules to determine if any of the rules should be triggered. In addition, these rules are dynamic in that they may change at any given time as users may elect to either change, add or delete the criteria, the action or both associated with the rule. In the event that no rules are triggered, the "No" branch is followed to Step 405 where the system again continues to receive market news and then evaluates the market news against the rules as described above. The sequential pieces of this illustration may be performed in parallel by a multitasking computer, with each component acting on new information available to it since the last iteration of its own execution.
However, if in Step 415 a rule is triggered, the "Yes" branch is followed to Step 420 where the action defined in the rule is then initiated. The actions defined in the systems can be numerous and may include such things as placing a trade order with a brokerage service, providing a notification to the user that at specific rule has been triggered, or triggering another rule to perform another action defined in the system. In addition, the action may also include performing an internal trade. Following the initiation of the action as defined in the rule, the system then stores the event that the action was initiated. This event may be stored in the user database, as described with respect to Figure 3, or in whatever storage paradigm is used to implement the present invention. Program Evaluation Engine
Figure 5 is a flow chart showing the steps performed by a program evaluation engine in an exemplary embodiment of the present invention. First, the program evaluation engine receives the rules from the user database (Step 500). After receiving the rules from the database, the program evaluation engine then retrieves the market news information from the market database (Step 505). The user database and market database can be established as described with respect to Figure 3. Therefore, the rules can be entered into a database via a user interface whenever the user enters a criterion or criteria and action and the financial trading system then generating a rule and storing it in the database. The market news information can be retrieved from the market database where it can be stored via a data input component. The data input component may receive market news information from one or multiple sources.
After receiving the market news information from the market database, the program evaluation engine then determines if a rule is triggered (Step 510). If the rule is not triggered then the "No" branch is followed and the process ends. In the event that a rule is triggered, then the "Yes" branch is followed and the program evaluation engine then determines whether the external action engine is required (Step 515). If the external action engine is not required, then the program evaluation engine performs the action and updates the user database indicating that the rule was triggered and that the action was performed (Step 525). In the event that the external action engine is required, then the program evaluation engine sends the rule, containing the action, to the external action engine (Step 520). The user database is then updated to indicate that the rule was triggered. Following Steps 525 and 520, the process of the program evaluation engine then ends. External Action Engine
Figure 6 is a flow chart showing the steps performed by an external action engine in an exemplary embodiment of the present invention. The external action engine is initiated by receiving a rule from the program evaluation engine (Step 600). After receiving the rule, the external action engine then determines what action is required from the rule (Step 605). The action required may be a compound action comprising multiple subactions.
In the case where there is a fulfillment action in the rule, then the external action engine then initiates the action by sending requests to a fulfillment component to perform the action in the rule (Step 615). A fulfillment action is one requiring the purchase, sale or some transaction of an item, such as stock. For example, a fulfillment action may be a trading order to "buy 100 shares of Stock A at $50.00 a share." In this example, the fulfillment component may place the "buy" order with a brokerage house. The external action engine, via the fulfillment component, may interface with several trading firms in order to perform various fulfillment actions. In other words, the external action engine, via the fulfillment component, may interface with brokerage houses, clearing houses, the exchange directly, and various other systems that perform trading. In the event that the action defined in the rule that was triggered is a notification action, then the external action engine sends a message to the user that the rule having the user's criteria has been triggered via the notification component
(Step 620). In addition the message may include a request for information from the user. Upon receiving the user's information may initiate further action.
In the event that the action defined in the rule that was triggered is an internal trade action then the external action engine will send this rule containing the action to an internal trade component to perform the internal trade (Step 630). The internal trade, as described above, is trading within the financial trading system, (e.g., User A defined to the financial trading system sells stock to User B in the financial trading system without using any external systems).
After having performed the action as required, the external action engine then receives verification that the action has been completed (Step 635). After receiving this verification, the external action engine then updates the user database to indicate that the action associated with the triggered rule has been performed (Step 640).
It will be recognized by one skilled in the art that while only three categories of actions associated with the external action engine (fulfillment, notification, and internal trade) have been described, many other categories performing various actions may be incorporated within the present invention's architecture and are considered within the scope of the present invention. Notification/ Alert Processing
In one embodiment of the present invention the user is sent a message indicating that a rule has been triggered. This message may be in the form of a "notification" or an "alert." A notification is a one time message sent to a user using any communication medium, such as telephone lines for voice and data messages or data lines for a data message. When the message is sent as a notification, there is no tracking or no further action performed by the system. An alert, on the other hand, is the sending of a message or sequence of messages to the user that is only terminated by an acknowledgment from the user, exceeding a predefined limit on the number of times the system will send the message, or if an amount of time has passed since sending the alert, e.g., surpassing an alert expiration time limit. An acknowledgment by the user includes the user entering information, such as keypad entries on a telephone, satisfying acknowledgment criteria defined in the system. One embodiment of the present invention comprises sending an alert message to the user indicating that a rule has been triggered, wherein the alert message includes a request for instructional information. In this embodiment, the acknowledgment may include instructional information to initiate an action. These actions may be predetermined by the user through interaction with the system in a manner similar to that in which the rule(s) and/or contact medium or media and address(es) were specified.
While the notification/alert system may be used in coordination with a financial trading system as described above, it can also be used to transmit any message using a plurality of media to a user or another computer system.
Fig. 7 is a block diagram depicting a notification/alert system interacting with other systems in a manner consistent with an exemplary embodiment of the present invention. The notification/alert system 700 interacts directly with a message generator 705, an external communication media component 710, and a user or computer system 715 via the external communication media component 710. It will be recognized by one skilled in the art that while only one user and/or computer system is shown, the notification/alert system 700 may interact with multiple users and/or computer systems. The notification/alert system 700 may also interact with other external systems to perform actions as required depending on the messages sent to it from the message generator 705. For example in a financial trading system, the notification/alert system 700 may interact with other systems such as brokerage houses (not shown) in order to place an order in response to a user acknowledging the receipt of the message sent by the notification alert system.
The message generator 705 generates a message to send to the user via the notification/alert system 700. This message may be generated because a rule is triggered as described with respect to a financial trading system. However, the notification alert system 700 can receive the message from any source to send notification and alert messages for that source independent of the type of message, the contents of the message, or how the message was initially generated. The notification alert system 700 receives the message from the message generator 705 and processes the message to send to the user via the external communication media component 710. In one embodiment, the notification/alert system 700 will look up which communication media to use to send a message to the user. This information may be passed to the notification/alert system with the message or the notification/alert system 700 may be given access to a database (not shown) where this information is contained in a priority list in a user profile. In the case of an alert, the notification/alert system 700 also receives information from the user or other computer system 715 via the external communications media component 710. In one embodiment this information is in the form of an acknowledgment message. In this embodiment, the acknowledgment message is data or voice information sent by the user or computer system 715 that satisfies acknowledgment criteria stored in the notification/alert system 700.
The external communication media component 710 comprises access to those media that allow the notification/alert system 700 to communicate with the user or other computer system 715. For example, these media may include voice lines, data lines and radio frequency transmitters for telephone calls, e-mail, and paging messages. Other media may exist that the notification/alert system 700 may use to contact the user or other computer system 715 and these other media are considered within the scope of the present invention. Using the external communication media 710, the notification/alert system 700 sends the message to the user or computer system 715. When the notification/alert system 700 sends an alert message, the notification/alert system 700 anticipates an acknowledgment from the user. The user component 715 will use the external communication media component 710 to send an acknowledgment to the notification/alert system 700. It is important to note, however, that the medium used by the user to send the acknowledgment to the notification/alert system 700 is independent of the medium used by the notification/alert system 700 to send the message to the user.
Fig. 8 depicts the various components of a notification/alert system 700 in a manner consistent with an exemplary embodiment of the present invention. The notification/alert system 700 receives a message from a message generator 815. The message generator 815 may be an external action engine and part of a financial trading system, which received the message because a rule was triggered in the financial trading system. When the message generator 815 is required to send a notification or alert message to the user or other computer system, then the message generator 815 sends the message to the notification/alert manager 800. For purposes of discussion, the term "user" will be used as the destination for a notification or alert message. However, it will be recognized by those skilled in the art that the destination may also be a computer system and the term "user" is used only to simplify the discussion.
The notification/alert manager 800 interfaces with multiple components within the notification/alert system 700 as well as other components in one embodiment of the present invention. In this embodiment, the notification alert manager 800 interfaces with a user database 805 in order to provide update information such as that the notification or alert message, whichever was requested to be sent by the message generator 815, was actually distributed to the user. The user database 805 maybe the same database as is used with the financial trading system as described with respect to Fig. 3. In addition the notification/alert manager 800 also interfaces with the user database 305 in order to retrieve user profile data. This user profile data includes information such as what media the user may be accessible by as well as the destination address of the user using those media. The user, in one embodiment, may store and update this information using a user interface associated with the financial trading system. However, this information need not be stored in the user database as long as the information is otherwise accessible. Alternately, this user profile information may be sent to the notification/alert system 700 by other sources, such as the message generator 815.
The notification/alert manager 800 also interfaces with the notification alert sending module 820. The notification/alert sending module 820 is responsible for sending the message to the user via an external communication medium. In other words, the notification/alert sending module 820 will have access to communications lines allowing it to, for example, place an e-mail message.
The determination of which communication medium to use can be made either by the notification/alert manager 800 or the notification alert sending module 820. In one embodiment, the notification/alert manager 800 receives a priority list, containing the user defined communication media and destination addresses, from the user database 305 and determines which communication medium and destination address to use. The notification/alert manager will then pass this information to the notification/alert sending module 820. Alternately, the notification alert sending module 820 may also interface with the user database 810 in order to receive the destination addresses for the various communication media the user has established in the use profile, stored in the user database 305, and determines which communication medium and destination address to use.
The notification/alert manager 800 also interfaces with an alert action module 825. The alert action module 825 is responsible for initiating an action indicated by the user once an acknowledgment is received to an alert message. Once having received an acknowledgment and if responding to the acknowledgment requires that the notification/alert system 700 initiates an action, such as placing a trade with the brokerage house, the notification/alert manager 800 will send what action is to be initiated to the alert action module 825. The alert action module 825 may then communicate with other systems to perform the action.
The notification/alert manager 800 also has two incoming module inputs. The incoming phone module 830 and the incoming e-mail module 835. These two incoming modules provide the input to the notification/alert manager 800 when the user has sent an acknowledgment. In one embodiment, the user may send the acknowledgment via a phone line or an e-mail. If the user sends an acknowledgment via the phone line, then the incoming phone module 830 will receive the acknowledgment and pass this acknowledgment on to the notification/alert manager to be processed.
Should the user elect to use an e-mail to acknowledge an alert, then the e-mail is received at the incoming e-mail module 835 and is passed into the notification/alert manager 800. It will be recognized by those skilled in the art that many other input media and messaging may be used to receive acknowledgments, such as satellite, video and other forms of data messaging. These other input forms are considered within the scope of the present invention. As stated earlier, in one embodiment of the present invention the medium used by the user to acknowledgment an alert is independent of the medium used by the notification/alert sending module 820 to send the message. The incoming e-mail module 835 and the incoming phone module 830 may also cause an alert to be terminated, i.e., the user has acknowledged the alert by sending information satisfying the acknowledgment criteria and the alert, consequently, no longer is sent.
In one embodiment, a proxy system is used to respond to an alert. For example, the user may set up a computer program, or proxy system, to review the user's e-mail. If an alert message is detected in the user's e-mail, the proxy server may process the alert message and send the acknowledgment to the notification/alert system 700. The proxy system is a manner in which a timely acknowledgment can be sent to the notification/alert system 700 in an automated fashion. The notification/alert system 700 waits for an acknowledgment regardless of whether generated by a user or user proxy system. Below is an example of the information contained in an alert message received by the alert/notification system 700 and sent to a user.
Alert Message
An instruction on what to do when the acknowledgment is received
User's communication medium and destination address
User's identity
Data that is satisfying the alert (e.g., the rule or criteria that was triggered)
The above description of a notification/alert system assigns various functions to multiple components in a notification/alert system 700. It will be recognized to those skilled in the art that many other components and many other configurations may be used to implement the functions described herein. It is considered in scope of the present invention that the functions described herein are performed regardless of how they are manipulated or assigned to various components.
Fig. 9 is a flow chart depicting the high level process of processing notifications and alerts in a notification alert system 700 in a manner consistent with an exemplary embodiment of the present invention. First, a notification or alert message is received by the notification alert system (Step 900). The notification/alert system 700 then processes the outgoing notification or alert message (Step 905). In the event that this is a notification message, as determined in Step 910, then the process ends (Step 930). As described above, the notification message is a one time sent message wherein the system provides no tracking nor requires any acknowledgment from the user or computer system.
In the case that this is an alert message, however, the "alert" branch is followed and the present invention determines whether the alert has expired (Step 915). In one embodiment an expired alert is one that has not been acknowledged for a predetermined amount of time. If the alert has expired, the "Yes" branch is followed and the system then terminates the alert (Step 920). Following the termination of the alert, the process then ends (Step 930).
If the alert has not expired then the "No" branch is followed from Step 915 where the notification/alert system then processes an incoming acknowledgment message (Step 925). After processing the incoming acknowledgment message the alert is terminated Step 920 and then the process ends Step 930.
Fig. 10 is a flow chart showing the steps to process an outgoing message in a notification/alert system in a manner consistent with an exemplary embodiment of the present invention. First the notification/alert system 700 receives the notification or alert message (Step 1000). The notification or alert message may be received from a message generator, an external action engine or other system indicating that either a rule has been triggered as described with respect to a financial trading system or some other condition was satisfied such that the notification or alert message to a user needs to be sent. Next, the notification system then loads the notification/alert preferences (Step 1005) from a user profile. In one embodiment, the notification/alert preferences include the priority list which include a listing of the communication media destination addresses, the number of attempts to try that destination address on that communication medium, and the number of minutes to wait between subsequent attempts. Fig. 11 depicts a user interface showing a priority list wherein the user can insert and modify various communication media 1100, a destination address 1105 associated with each communication medium, a number of attempts 1110 to attempt to send the message to the user at the medium-destination address pair, and the number of minutes 1115 (i.e., an alert expiration time) between subsequent attempts for each medium-destination address or prior to attempting another medium- destination address. As shown in the example in Fig. 11, the user has selected four different contact destination addresses comprising three different media (one e-mail, one pager, and two telephone numbers). As shown in Fig. 11, the user may select various media and a destination address associated with each medium. In addition, the user may select to try multiple attempts 1110 for a specific medium-destination address pair. Furthermore, in one embodiment, the user is allowed to select the number of minutes 1115 for the system to wait between attempting to either send another attempt at the same medium-destination address, or preceding down the list to select the next medium-destination address.
Returning back to Fig. 10, after the notification/alert preferences are loaded, the system decides whether the received message to send to the user is an alert or notification message. In the event that it is a notification message, processing proceeds to send the notification to the user at the destination address defined in the notification/alert preferences (Step 1015). Following the sending of the notification message to the user, the outgoing processing ends (Step 1045). In the event in Step 1010 that the message is an alert message then processing proceeds to determine if there are medium-destination addresses contained in the priority list, or within the notification alert preferences, that the system may use to send the alert. As described with Fig. 11 , the priority list may contain multiple medium-destination address pairs by which the user can select to receive the alert message. Here the preferences are checked to determine if there are additional medium-destination addresses that haven't been used or if all the attempts haven't been used. If there are no more medium-destination addresses, i.e., the end of the priority list has been reached, the process follows the "No" branch and ends (Step 1045).
However, in the event that there are more medium-destination addresses in the priority list or there are more attempts within a specific method that have not been tried, then processing continues to determine the next medium-destination address (Step 1025). As shown in Fig. 11, the next medium-destination address may be a second or third attempt within a specific medium-destination address or, in the event when the maximum number of attempts has been tried for a specific medium- destination address, the next medium-destination address pair will be selected. Following the determination of the medium-destination address pair, the present invention proceeds to send the alert message (Step 1030). In one embodiment of the present invention, the alert message is sent only during a time-of-day period specified by the user as an acceptable time to receive the message. For example, the user may desire the system to send the alert message to the user at a telephone number during business hours, e.g., 8:00-5:00. When the user has set up this preference, the notification/alert system 700 will delay the alert message until the time the user has defined to receive the alert message.
After sending the alert, whether it is during the time-of-day as specified in the user preference loaded with respect to Step 1005 or whether the alert message is sent immediately, the system then waits a predetermined alert expiration time (Step 1035), such as described with respect to Fig. 11. The present invention then determines whether the alert has been terminated Step 1040. The alert may be terminated by an acknowledgment having been received and the incoming acknowledgment processing terminating the alert (See Fig. 12). If the alert has not been terminated then the "No" branch is followed back up to Step 1020 where it is determined if more medium- destination addresses exist in the priority list. If the alert has been terminated then the "Yes" branch is followed and processing for the outgoing message ends (Step 1045).
Fig. 12 is a flow chart depicting steps to process an incoming acknowledgment to an alert message in a manner consistent with an exemplary embodiment of the present invention. Processing begins for an incoming acknowledgment when an incoming acknowledgment message has been received by the notification/alert system (Step 1200). After receiving the incoming acknowledgment message, it is matched with an outstanding alert message (Step 1205). Typically, there will be multiple alert messages awaiting acknowledgments at any given time. When the incoming acknowledgment message is received, this incoming acknowledgment message needs to be matched up with the alert message it is responding to. It will be recognized by one skilled in the art that the step of matching an incoming and outgoing message may be performed by having an identification number associated with each message in a table. However, the process of matching up multiple messages to determine whether an incoming message is associated with an outgoing message is well known to those skilled in the art.
After matching up the incoming acknowledgment message with the alert message, the acknowledgment is then processed (Step 1210). Processing the acknowledgment may require multiple different actions or the initiation of different actions. For example, the acknowledgment of an alert message that a user defined to initiate a trade will require the notification/alert system to place a trade order when the acknowledgment is received. However, other actions, such as requiring that another rule within a financial trading system be triggered or sending a message to someone else may be defined to take place once the acknowledgment has been received. The action corresponding to the receipt of an acknowledgment is defined by the user. They need not be related other than the acknowledgment causing the action, defined by the user, to occur or be initiated.
Following the processing of the acknowledgment, the system then terminates the alert so that the alert message need not again be sent to the user (Step 1215). The termination is important because, for example, the user may have multiple media indicated on their priority list and should the user respond, via an acknowledgment sent to the first alert message, it provides little value to continue to send the same alert message the user. Following the termination of the alert the processing of the incoming acknowledgment message and step 1220. Conclusion
Notification/alert systems and methods to send messages and receive acknowledgments in a manner consistent with the present invention thus facilitates the ability of a user or a computer system to be notified of a message, such as when a rule has been triggered, and to initiate actions by sending acknowledgments to the notification/alert system using one of multiple communication media. By providing a notification/alert system and methods, users can define a multitude of destination addresses using a variety of communication media, such as telephone lines for voice and data messages, public and private networks for data messages and RF transmitters for paging data messages. The user may be sent a message using one of these communication media predefined to the notification/alert system. The selection of which may be the highest order defined in a priority list.
Furthermore, the user may send information, such as an acknowledgment, to the notification/alert system using any communication media to which the notification/alert system has access. The user is not restricted to communicate with the notification/alert system using the same communication medium as the notification/alert system used to communicate with the user. The notification alert system may also automatically initiate an action, such as placing a trading order, when the user sends an acknowledgment message.
The foregoing description of an implementation of the invention has been presented for purposes of illustration and description. It is not exhaustive and does not limit the invention to the precise form disclosed. Modifications and variations are possible in light of the above teachings or may be acquired from practicing of the invention. For example, the described implementation includes the trading of stocks or commodities, but the present invention will also apply to the trading of any item including, but not limited to, bonds, currencies, commodities, derivatives, collectibles, or other items where the purchase or selling of the item is at least partially based on definable criteria. In addition, the described implementation includes software but the present invention may be implemented as a combination of hardware and software or in hardware alone. The invention may be implemented with both object-oriented and non-object-oriented programming systems. Additionally, although aspects of the present invention are described as being stored in memory, one skilled in the art will appreciate that these aspects can also be stored on other types of computer-readable media, such as secondary storage devices, like hard disks, floppy disks, or CD-ROM; a carrier wave from the Internet or other propagation medium; or other forms of RAM or ROM. The scope of the invention is defined by the claims and their equivalents.

Claims

WHAT IS CLAIMED IS:
1. In a computer system, a method for sending a message to a destination address, comprising the steps of: receiving the message from a message generator; receiving a priority list identifying user destination addresses; selecting a first user destination address from the priority list identifying the user destination addresses; and sending the message to the first user destination address.
2. The method of claim 1, wherein the first user destination address is the highest priority in the priority list.
3. The method of claim 1 further comprising the steps of: selecting a second user destination address from the priority list identifying the user destination addresses; and sending the message to the second user destination address.
4. The method of claim 3, wherein the second user destination address has a lower priority in the priority list than the first user destination address and the message is sent to the second user destination address after the message is sent to the first user destination.
5. The method of claim 3, wherein the first user destination address uses a different communication medium than the second user destination address.
6. The method of claim 1 further comprising the step of sending the message to a second user destination address a predetermined time period after sending the message to the first user destination address.
7. The method of claim 1 further comprising the steps of: defining an alert expiration time; and terminating the sending of the message to the first user destination address in the priority list after the alert expiration time.
8. The method of claim 1 further comprising the step of receiving an acknowledgment message.
9. The method of claim 8, wherein the acknowledgment message is received using a different communication medium than was used to send the message to the first user destination address.
10. The method of claim 8, further comprising the step of initiating an action in response to receiving the acknowledgment message.
11. The method of claim 8 further comprising the step of terminating the sending of the message in response to receiving the acknowledgment message.
12. The method of claim 1, wherein the acknowledgment message is sent by a proxy system.
13. The method of claim 1 further comprising the step of: defining a user time-of-day parameter, wherein the step of sending a message to the first user destination address comprises sending the message to the first user destination address during the time defined in the user time-of-day parameter.
14. In a financial trading system, a method for sending a message to a destination address, comprising the steps of: defining acknowledgment criteria; receiving the message from a external action engine; receiving a priority list identifying user destination addresses; selecting a first user destination address from the priority list identifying the user destination addresses; sending the message to the first user destination address; and receiving an acknowledgment message satisfying acknowledgment criteria.
15. The method of claim 14 further comprising the steps of: selecting a second user destination address from the priority list identifying the user destination addresses; and sending the message to the second user destination address, wherein the first user destination address uses a different communication medium than the second user destination address.
16. The method of claim 14, wherein the acknowledgment message is received using a different communication medium than was used to send the message to the first user destination address.
17. The method of Claim 14 further comprising the step of sending the message to a second user destination address a predetermined time period after sending the message to the first user destination address.
18. The method of claim 14 further comprising the steps of: defining an alert expiration time; and terminating the sending of the message to the first user destination address in the priority list after the alert expiration time.
19. The method of claim 14 further comprising the step of: defining a user time-of-day parameter, wherein the step of sending a message to the first user destination address comprises sending the message to the first user destination address during the time defined in the user time-of-day parameter.
20. The method of claim 14 further comprising the step of initiating an action in response to receiving the acknowledgment message.
21. The method of claim 14 further comprising the step of terminating the sending of the message in response to receiving the acknowledgment message.
22. A computer-readable medium having computer-executable instructions for performing the steps recited in Claim 14.
23. A notification system for communicating using a plurality of communication media, comprising: a computer containing a central processing unit (CPU) operative to execute an operating system and having access to a plurality of communication media; and a computer memory, accessible by the CPU, comprising: a notification/alert manager component operative to receive a message for a user, and a notification alert sending module operative to receive a priority list and to send the message via the plurality of communication media.
24. The notification system of claim 23, wherein the notification alert sending module sends the message using one of the plurality of communication media.
25. The notification system of claim 23, wherein the computer memory further comprises an incoming module to receive an acknowledgment message.
26. The notification system of claim 25, wherein the acknowledgment message is received on a different communication medium than was used by the notification/alert sending message to send the message.
27. A notification system for sending a message indicating that a rule was triggered, comprising: means for receiving the message indicating that the rule was triggered; means for receiving a priority list identifying user destination addresses; means for selecting a first user destination address from the priority list identifying the user destination addresses; means for sending the message to the first user destination address; and means for receiving an acknowledgment message satisfying acknowledgment criteria.
28. The method of claim 27 further comprising: means for selecting a second user destination address from the priority list identify the user destination addresses; and means for sending the message to the second user destination, wherein the first user destination address uses a different communication medium than the second user destination address.
29. The method of claim 27 further comprising means for initiating an action in response to receiving the acknowledgment message.
30. The method of claim 27 further comprising means for terminating the sending of the message in response to receiving the acknowledgment.
PCT/US2000/026203 1999-09-23 2000-09-25 Notification and alert processing using a plurality of communication media WO2001022335A2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
AU40213/01A AU4021301A (en) 1999-09-23 2000-09-25 Notification and alert processing using a plurality of communication media

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US40401299A 1999-09-23 1999-09-23
US09/404,012 1999-09-23

Publications (2)

Publication Number Publication Date
WO2001022335A2 true WO2001022335A2 (en) 2001-03-29
WO2001022335A3 WO2001022335A3 (en) 2003-04-10

Family

ID=23597771

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2000/026203 WO2001022335A2 (en) 1999-09-23 2000-09-25 Notification and alert processing using a plurality of communication media

Country Status (2)

Country Link
AU (1) AU4021301A (en)
WO (1) WO2001022335A2 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2003036532A1 (en) * 2001-10-26 2003-05-01 Ivent Sas System and method for managing event data flows
US7924988B2 (en) 2005-09-30 2011-04-12 International Business Machines Corporation Method and system for managing voice mail acknowledgement
US9438549B2 (en) 2007-09-27 2016-09-06 International Business Machines Corporation Controlling expiration of electronic mail single store attachments

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0511731A2 (en) * 1991-03-29 1992-11-04 International Business Machines Corporation Message-passing multiprocessor system
US5600704A (en) * 1994-08-30 1997-02-04 Ericsson Inc. Systems and methods for prioritized routing of telephone calls to a subscriber
US5631847A (en) * 1995-04-27 1997-05-20 Elonex I.P. Holdings, Ltd System for network file server failure notification

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0511731A2 (en) * 1991-03-29 1992-11-04 International Business Machines Corporation Message-passing multiprocessor system
US5600704A (en) * 1994-08-30 1997-02-04 Ericsson Inc. Systems and methods for prioritized routing of telephone calls to a subscriber
US5631847A (en) * 1995-04-27 1997-05-20 Elonex I.P. Holdings, Ltd System for network file server failure notification

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2003036532A1 (en) * 2001-10-26 2003-05-01 Ivent Sas System and method for managing event data flows
US7924988B2 (en) 2005-09-30 2011-04-12 International Business Machines Corporation Method and system for managing voice mail acknowledgement
US9438549B2 (en) 2007-09-27 2016-09-06 International Business Machines Corporation Controlling expiration of electronic mail single store attachments

Also Published As

Publication number Publication date
AU4021301A (en) 2001-04-24
WO2001022335A3 (en) 2003-04-10

Similar Documents

Publication Publication Date Title
US11842399B2 (en) System and method for providing latency protection for trading orders
US8583544B2 (en) Systems and methods for facilitating electronic securities transactions
US7908213B2 (en) System and method for improving electronic trading
US9659329B2 (en) Foreign exchange trading system
US7590593B2 (en) Auction market with price improvement mechanism
US20030041006A1 (en) Methods and systems for suppression of stale or invalid data in a securities quotation display
US20030004859A1 (en) Method and system for facilitating secure transactions
WO2001022266A9 (en) For user interface for a financial trading system
US20030110047A1 (en) Automatic auction bid cancellation method and system
US20050065871A1 (en) Collateralized loan market systems and methods
US8326734B2 (en) System and method for implementing an anonymous trading method
WO2002027423A2 (en) Real-time trading system
US20020188548A1 (en) Methods and systems for monitoring securities quotes
US20080059360A1 (en) Selectable market transaction over a network
WO2001022335A2 (en) Notification and alert processing using a plurality of communication media
WO2001022337A2 (en) For financial trading system
US20060015440A1 (en) Dynamic liquidity management system
US11734752B2 (en) System and method for a loan trading exchange
WO2001044974A2 (en) Analyzing input data streams using user criteria
KR20010113986A (en) Real time auction system by internet and method thereof
US20080228620A1 (en) System And Method For Transfer Of Confirmation Data In A Distributed Electronic Trading System

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A2

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BY BZ CA CH CN CR CU CZ DE DK DM DZ EE ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NO NZ PL PT RO RU SD SE SG SI SK SL TJ TM TR TT TZ UA UG UZ VN YU ZA ZW

AL Designated countries for regional patents

Kind code of ref document: A2

Designated state(s): GH GM KE LS MW MZ SD SL SZ TZ UG ZW AM AZ BY KG KZ MD RU TJ TM AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE BF BJ CF CG CI CM GA GN GW ML MR NE SN TD TG

121 Ep: the epo has been informed by wipo that ep was designated in this application
DFPE Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101)
REG Reference to national code

Ref country code: DE

Ref legal event code: 8642

122 Ep: pct application non-entry in european phase
NENP Non-entry into the national phase in:

Ref country code: JP