Order trading method and system therefor
The method addresses inefficiencies in electronic item trading by prioritizing orders based on sufficiency and fulfillment levels, ensuring that only sufficient orders are executed, thereby enhancing transaction efficiency and reliability.
Patent Information
- Application Number
- JP2025032505
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2013-11-07
- Filing Date
- 2025-03-03
- Publication Date
- 2025-06-10
- Estimated Expiration
- 2034-03-31
AI Technical Summary
Existing systems for electronic matching and trading of items between users often struggle with efficiently handling orders with varying sufficiencies and fulfillment levels, leading to potential mismatches and inefficiencies in transaction execution.
A method that involves receiving multiple orders for an item from different users, prioritizing orders based on their associated sufficiencies and fulfillment levels, and executing transactions only when the sufficiency threshold is met, ensuring that only orders with sufficient fulfillment are processed.
This approach enhances the efficiency and reliability of item trading by ensuring that only orders with sufficient fulfillment are executed, thereby reducing the risk of mismatches and improving overall transaction processing.
Smart Images

Figure 2025087775000001_ABST
Abstract
Description
Technical Field
[0001] Cross - Reference to Related Applications This application claims the benefit of U.S. Provisional Application No. 61 / 865,557, filed Aug. 13, 2013, and U.S. Provisional Application No. 61 / 901,438, filed Nov. 7, 2013, both to Jacob Loveless, which are hereby incorporated by reference in their entirety.
[0002] Some embodiments relate to matching and / or trading items.
Background Art
[0003] A system can be used for electronic matching and / or trading of items between users.
Summary of the Invention
[0004] According to an exemplary embodiment, a method comprising receiving a first order and a second order for an item, wherein the first order is associated with a first user and the second order is associated with a second user, the first order and the second order have the same associated price, the first order is received at a time prior to the second order, a sufficiency is associated with the first order, a sufficiency is associated with the second order, receiving a command to buy and sell the item, the command having an associated threshold, determining that the sufficiency associated with the first order is less than the threshold, as a result of determining that the sufficiency associated with the first order is less than the threshold, ignoring the first order and comparing the sufficiency associated with the second order with the threshold, determining that the sufficiency associated with the second order is greater than or equal to the threshold, as a result of determining that the sufficiency associated with the second order is greater than or equal to the threshold, communicating the trading command to the second user, and in response to communicating the trading command to the second user, receiving an indication that the second user wishes to trade on the trading command.
[0005] A method according to an exemplary embodiment, comprising receiving a first order and a second order for an item, wherein the first order is associated with a first user, the second order is associated with a second user, the first order and the second order have the same price associated therewith, the first order is received at a time prior to the second order, a fulfillment is associated with the first order, a fulfillment is associated with the second order, the fulfillment associated with the second order is higher than the fulfillment associated with the first order, ordering the second order before the first order in an order book based at least in part on the fulfillment associated with the second order being higher than the fulfillment associated with the first order, receiving a command to buy and sell the item, communicating the transaction command to the second user based at least in part on ordering the second order before the first order in the order book, and receiving an indication that the second user wishes to transact on the transaction command in response to communicating the transaction command to the second user.
[0006] The above advantages and features are only possessed by representative examples and are presented only for the purpose of helping to understand the invention. They are not considered to be limitations of the invention defined in the claims. Additional advantages and features in embodiments of the present invention will be apparent from the following description, drawings, and claims.
Brief Description of the Drawings
[0007]
Figure 1
Modes for Carrying Out the Invention
[0008] Referring to FIG. 1, an exemplary system 100 according to an exemplary embodiment is shown. System 100 may include one or more computing systems (e.g., servers) 101-106. Computing systems 101-106 may be referred to herein as servers for purposes of illustration. However, it should be understood that the use of the term server is non-limiting and that other types of computing systems may be used.
[0009] Each of the servers 101 to 106 may include one or more processors and one or more memories, and they may include one or more databases. Each server may include one or more network hardware / software / firmware-based interfaces that enable the server to connect to the network 110 and communicate through the network 110. The network 110 may include a public and / or private network(s), and may be a wired and / or wireless network based on any kind of technology. The network 110 may also include a bus and / or backplane type architecture. The network 110 may include one or more elements including routers, switches, etc. The network 110 may be configured such that at least each of the servers 101 to 106 can communicate with others. The network 110 may also be configured to enable the servers 101 to 106 to be on the network 110 or on other computing systems (e.g., computing system 150) that are not shown in FIG. 1 but are accessible via the network 110 to communicate with other computing systems. As an example, the network 110 may be a private network that interfaces with, for example, one or more other private and / or public networks via one or more routers / switches / etc., thereby enabling any one of the servers 101 to 106 to communicate with other computing systems on such a network. One or more of the servers 101 to 106 and the network 110 may be configured to support unicast, broadcast, and / or multicast communication. Multicast communication may include IP multicasting, although other types of multicasting may be used. Multicasting may be reliable or unreliable multicasting. Those skilled in the art will understand that the above description of the servers 101 to 106 and the network 110 is merely exemplary, and additional and / or other server / network configurations and functionality may be used.For example, in addition to network 110, one or more of servers 101-106 may also include one or more additional network hardware / software / firmware-based interfaces that enable the servers to connect to and / or communicate through one or more other public and / or private networks not shown in FIG. 1.
[0010] One or more of servers 101-106 within system 100 may be similarly configured and / or may be substantially similarly configured with respect to hardware (e.g., processor configuration, number of processors, processor speed, memory size, memory speed, etc.) and / or system software (e.g., operating system) and / or network interface(s) speed. Similarly, the ability of one or more of servers 101-106 to communicate with any other server via network 110 may be the same. One or more of servers 101-106 may be co-located within the same rack, room, building, etc. In addition, the network elements that make up network 110 may also be co-located with servers 101-106. Again, additional and / or other configurations are possible. For example, each server may have different execution performance.
[0011] System 100 can be referred to as a cloud computing system. System 100 can be owned and / or partially owned and / or maintained / operated by one or more entities that lease or rent the resources of System 100 to one or more other users / customers such as Users A - F. Users A - F can be individuals and / or enterprises such as banks, investment funds, trading companies, etc. Alternatively and / or in addition, one or more of Users A - F can own the resources of System 100. As an example, Server 101 can be leased to User A or can be owned by User A, Server 102 can be leased to User B or can be owned by User B, Server 103 can be leased to User C or can be owned by User C, Server 104 can be leased to User D or can be owned by User D, Server 105 can be leased to User E or can be owned by User E, and / or Server 106 can be leased to User F or can be owned by User F. Generally, each of Servers 101 - 106 can be assigned to a specific user who has access to the resources of that server. A given user can be associated with / lease / own multiple servers within System 100. According to one embodiment, System 100 can be expandable by additional servers being added to the system, and those servers can be leased or owned by Users A - F and / or new users. System 100 can be configured such that the addition and / or deletion of one or more servers does not affect other users. As another example, a given server can be leased / rented to multiple different users who have no association with each other. The servers can be configured such that the use of a server by one of the users does not affect the other users and vice versa.
[0012] According to one embodiment, the system 100 can operate and / or be configured as a trading or matching system, and in particular as a decentralized trading / matching system, that enables users such as Users A - F to trade and / or buy and sell one or more items with each other. The item(s) traded on the system 100 can be owned by one or more of the system's Users A - F. Alternatively and / or in addition, one or more of Users A - F can be a long and / or a broker and / or an agent, and can act, for example, on behalf of an entity(ies) that can own the item(s). The items traded can include tangible and / or intangible items. According to one embodiment, the system 100 can be configured to trade one or more financial commodities, including, for example, fixed - income securities, stocks, foreign exchange, etc. Thus, each of Users A - F can use the system 100 to trade one or more financial commodities with one or more other users of the system. Those skilled in the art will understand that other types of items can be traded and / or bought / sold via the system 100, such as real estate (e.g., land, houses, and / or buildings), consumer products (e.g., automobiles, electronic devices), tickets (e.g., for airplanes, concerts), etc. Those skilled in the art will also understand that in addition to and / or as an alternative to the trading or matching system, the system 100 can operate / be configured as other types of system(s).
[0013] One or more of servers 101-106 may also include one or more applications 120a-f executed thereon (e.g., stored in memory). As an example, while other and / or additional types of applications are possible, applications 120a-f may be referred to herein as matching engines. Matching engines 120a-f may enable users A-F to buy / sell items with each other. Matching engines 120a-f may be software and / or firmware and / or hardware-based applications executed on servers 101-106. Each server may include one and / or more matching engines. Each server may include additional and / or other applications. The matching engine(s) of each of servers 101-106 may be the same and / or substantially the same application, or may be different applications. For example, each matching engine may execute a similar matching algorithm. As another example, different matching engines may execute different matching algorithms. Matching engines 120a-f may be developed / maintained by the entity(ies) owning / operating system 100. Such entity(ies) may also develop / maintain other and / or additional applications executed on each server.
[0014] Each server may also include one or more applications 122a - e that are associated with and executed there for users such as User A - E (e.g., stored in memory). As one example, while other and / or additional types of applications are possible, applications 122a - e may be referred to herein as trading applications. According to another embodiment, one or more trading applications (e.g., applications 122f, etc.) may not be executed on servers 101 - 105. Instead, the application may be executed on a computing system, such as computing system 130, that is connected to a server, such as server 106. Computing system 130 may or may not be co - located with server 106 and / or other elements of system 100. Computing system 130 and server 106 may communicate through one or more private and / or public networks 131. As another example, computing system 130 and server 106 may communicate through network 110. According to one embodiment, computing system 130 may be owned and operated by an entity that owns and operates system 100. According to another embodiment, computing system 130 may be owned and operated by a user (here, User F) associated with the server to which the computing system is connected. Those skilled in the art will understand that these configurations are merely examples and that other and / or additional configurations are possible. For example, each server 101 - 105 / computing system 130 may include one and / or more trading applications. Each server 101 - 105 / computing system 130 may also include additional and / or other applications associated with users such as User A - F.
[0015] According to one embodiment, each trading application 122a - f can be configured to communicate with a respective matching engine 120a - f, thereby enabling users A - F of system 100 to trade items. Each trading application 122a - f can be an automated trading algorithm that executes a trading strategy, thereby generating trading orders (e.g., bids, offers, matches, sales) on behalf of, for example, respective users A - F. Each trading application (s) on a given server can be configured to trade one or more items. Each trading application 122a - f can be a software and / or firmware and / or hardware - based application that runs on respective servers 101 - 105 / computing system 130. Each trading application may be different from other trading applications and may be developed by the user assigned to each respective server. For example, user A can develop trading application 122a and load (e.g., through an administrative application) or have loaded the application onto server 101 on which the application runs. Similarly, user B can develop trading application 122b and load (e.g., through an administrative application) or have loaded the application onto server 102 on which the application runs. Additionally and / or as another example, trading applications 122a - f can be general applications (such as APIs) provided by the entity (ies) that own / operate system 100. In each instance, each respective user A - F can customize their respective applications to suit their respective needs (e.g., the user connects through an API that interfaces through an administrative application, through a remote computing system from each respective server, and / or through a user interface device (keyboard / mouse / etc.)). Those skilled in the art will understand that these configurations are merely examples and that other and / or further configurations are possible.Rather than the trading applications 122a-f, which are automated trading algorithms that execute trading strategies, one or more of the trading applications 122a-f may enable respective user(s) to interface with the system 100 and generate orders. For example, each user (connected to respective servers through a remote computing system and / or through a user interface device (keyboard / mouse / etc.)) may be able to manually submit an order to each matching engine of the server.
[0016] As contemplated, together with the respective trading applications 122a-f at each server, the matching engines 120a-f may enable users A-F to trade items with each other. As one example, a single instance of a matching engine may be configured to trade one particular item (e.g., a 10-year record). Thus, if a given user A-F desires to trade multiple different items (e.g., 5-year and 10-year records), each server may have multiple instances of matching engine 120 execution, each of which may communicate with one or more instances of the respective trading application 122. As another example, a single instance of a matching engine may be configured to trade multiple items, and the matching engine may communicate with one or more instances of the respective trading application. Those skilled in the art will understand that these are merely examples and that other and / or further configurations are possible. For example, if a given server is being used by multiple different users, the server may have multiple instances of a matching engine configured to trade the same item but for different users. For purposes of illustration only, the matching engine 120 will be described as enabling the trading of one item.
[0017] According to one embodiment, with respect to given users A to F who desire to trade a given item, the matching engines 120a to f of their respective servers may be configured to maintain / keep order books 124a to f for that item on the server. As one example, each order book may be maintained within the memory of its respective server. For example, if each of users A to E desires to trade a given item, each server 101 to 105 may have an order book 124a to e for that item. If user F does not desire to trade that item, server 106 may not have an order book for that item. In this way, the order book for a given item may be decentralized or non - centralized across multiple servers. Similarly, if each of users A to E also desires to trade a second item, the matching engine(s) 120a to e of each respective server 101 to 105 may also maintain a second order book for the second item on the server. Those skilled in the art will understand that additional and / or other order book configurations are possible.
[0018] According to a further embodiment, for each item that can be transacted through system 100, that item can be assigned a port (e.g., an Internet Protocol (IP) port) or a channel on network 100. For example, the first item can be port "x" that is assigned, the second item can be port "y" that is assigned, and so on. As further contemplated herein, partial or all communications between servers 101-106 through network 110 for the first item can occur via port "x", and similarly, partial or all communications between servers 101-106 through network 110 for the second item can occur via port "y". According to a further embodiment, if a given user (herein referred to as A) desires to transact the first item and the second item, server 101 / matching engine(s) 120a can be configured to send and / or receive (and / or listen to, monitor, etc.) messages / commands / information / data on ports "x" and "y". In this way, user A can send and receive information / data regarding the two items (e.g., through trading application 122a). Similarly, for example, if user A desires to transact the first item but not the second item, server 101 / matching engine(s) 120a can be configured to send and / or receive (and / or listen to, monitor, etc.) messages / commands / information / data on port "x" but not on "y". In this way, for example, server 101 / user A can choose not to receive messages / commands / information / data on the second item with which it has no relation. Similarly, if user A later desires to receive information on the second item (e.g., through trading application 122a), server 101 / matching engine(s) 120a can be configured to send and / or receive (and / or listen to, monitor, etc.) messages on port "y".According to one embodiment, the trading applications 122a - f may determine (possibly through user control) which items are traded and / or not traded, and in this manner, for example, control the configuration of each server / matching engine(s) with respect to which port(s) are monitored and for which items an order book is maintained. As another example, a user may control the configuration of each server / matching engine(s) with respect to, for example, which port(s) are monitored and for which items an order book is maintained (e.g., the user may do so through any of a remote computing system connected to each server, through an administrative application, and / or through an API interfacing through a user interface device (keyboard / mouse / etc.)).
[0019] According to an exemplary operation of system 100, if a user / transaction application such as user A / transaction application 122a is interested in trading a given item (here, the item is "w"), user A / transaction application 122a may generate a bid order or a winning order for item "w" (the order includes price and / or scale). Transaction application 122a may transfer the order to matching engine 120a, which may place the order in order book 124a (i.e., the order book on server 101 for item "w"). This order is shown as order 140 in FIG. 1 in order book 124a. According to an exemplary operation of system 100, since user A generated order 140, matching engine 120a may be involved in controlling the execution of the order for order 140 (e.g., matching a counter order for order 140). According to a further exemplary operation of system 100, matching engine 120a may also multicast order 140 via network 110 through a port assigned to item "w". The multicast order may include some indications that it is from user A / transaction application 122a / matching engine 120a and / or server 101. For each other user / server on system 100 that may be interested in item "w" and thus is configured to receive on the port for that item, each respective matching engine may receive order 140 and place the order in its respective order book for the item. For example, user B / transaction application 122b and user C / transaction application 122c may be interested in item "w", and thus, matching engines 120b and 120c may be configured to receive order 140 and place the order in their respective order books 124b and 124c (as shown in FIG. 1 by 140' and 140"). Similarly, matching engines 120b and 120c may record some indications that the order is from user A / transaction application 122a / matching engine 120a / and / or server 101.The matching engines 120b and 120c can also transfer the information of the order 140 to the trading applications 122b and 122c and / or each of users B and C, respectively. The order 140 can be made known to users B - C / trading applications 120b - c, but whether the origin of the order (i.e., the ID of user A) can be made known depends on whether the system 100 is an anonymous matching system or not.
[0020] Similarly, when user B / transaction application 122b generates an order for item "w", transaction application 122b may transfer the order to matching engine 120b, which may place the order in order book 124b (i.e., the order book on server 102 for item "w"). This order is shown in FIG. 1 as order 142 in order book 124b. Since user B generated order 142, matching engine 120b may be involved in controlling the execution of the order with respect to order 142 (e.g., matching a counter-order to order 140). Matching engine 120b may also multicast order 142 via network 110 via the port assigned to item "w". The multicast order may include some indication that it is from user B / transaction application 122b / matching engine 120b and / or server 102. For each other user / server on system 100 that may be interested in item "w" and thus is configured to receive on the port for that item, each respective matching engine may receive order 142 and place an order in its respective order book for the item. For example, as contemplated, since user A / transaction application 122a and user C / transaction application 122c are interested in item "w", matching engines 120a and 120c may receive order 142 and place an order in their respective order books 124a and 124c (as shown in FIG. 1 by 142' and 142"). Similarly, matching engines 120a and 120c may record some indication that the order is from user B / transaction application 122b / matching engine 120b and / or server 102. Matching engines 120a and 120c may each also transfer information about order 142 to respective transaction applications 122a and 122c and / or users A and C, respectively.
[0021] According to further exemplary operations of system 100, if user A / transaction application 122a cancels all or part of order 140 later, it may generate a cancellation command for the order, and the command may be transferred to matching engine 120a. Matching engine 120a can cancel the order from its order book 124a in sequence, and can multicast the cancellation command via network 110 through the port assigned to item "w". The cancellation command may include some indications that it is derived from user A / transaction application 122a / matching engine 120a and / or server 101 so that other servers can know which order the cancellation command refers to. For each other user / server that may be interested in item "w" and thus is configured to receive on the port for that item, each respective matching engine may receive the cancellation command and cancel the respective order from its respective order book. For example, matching engines 120b - c may receive the cancellation command and cancel order 140 from order books 124b - c. Matching engines 120b - c may also notify transaction applications 122b - c and / or users B and C that order 140 is unavailable.
[0022] Assuming that the bid / execution order 140 from A has not been cancelled, user B / transaction application 122b may generate, for example, a transaction command / opposite order / counter order such as a corresponding / sales amount for an order (where the corresponding / sales amount command may include price and scale). (As another example, the transaction command may be a bid or execution that crosses / matches order 140 at a specific price, etc.). Transaction application 122b may transfer the transaction command to matching engine 120b, which may search its order book 124b for matching orders, and which may recognize / determine that the command matches at least order 140 from user A. (Matching engine 120b, which recognizes that order 142 is from user B, may not attempt to match a transaction command to order 142). In response, matching engine 120b may multicast the transaction command via network 110 via the port assigned to item "w". In addition to adding some indication that this transaction command, for example, originates from user B / transaction application 122b / matching engine 120b / and / or server 102, as described, matching engine 120a may be involved in executing against an order from user A / server 101, so the transaction command may be specifically tagged / specified / directed to user A / transaction application 122a / server 101 / and / or matching engine 120a. One of ordinary skill in the art will understand that other media may be used to notify matching engine 120a that the transaction command is for an order that matching engine 120a may be involved in executing against. According to one exemplary operation of system 100, other servers / matching engines may receive the multicast transaction command (e.g., those listening on the port assigned to item "w") and may ignore commands that they recognize as being specified to user A / transaction application 122a / server 101 / and / or matching engine 120a.According to another exemplary operation of system 100, such a server / matching engine may receive multicast transaction commands and may provide notifications of potential transactions to their respective transaction applications and / or users. According to one embodiment, the actual transaction commands may be encrypted.
[0023] According to a further embodiment, additional orders exist in order book 124b that are not for user B, the transaction commands from user B / transaction application 122b are on a scale exceeding order 140, and / or thereby, in the case of these other order(s), matching engine 120b may also multicast additional transaction command(s) (tagged to a server etc. involved in the additional order(s)) via network 110 via the port assigned to item "w". As another alternative, matching engine 120b may user the same transaction commands tagged to user A / transaction application 122a / server 101 / and / or matching engine 120a and may also tag it to a server etc. involved in the additional order(s). Those skilled in the art will understand that other variations are possible.
[0024] Upon receiving a transaction command, the server 101 / matching engine 120a may recognize that the command is tagged thereto. The matching engine 120a may then determine whether the order 140 is still available (e.g., whether it still exists in the order book 124a, has not been canceled and / or has not been executed against by another user, etc.). If it is still available, the matching engine 120a may execute the transaction command against the order 140 by deleting the order 140 from the order book 124a (or, if not all of it has been executed, decreasing the available quantity of the order 140 in the order book). The matching engine 120a may also communicate with the transaction application 122a and / or user A and may indicate that the order 140 has been executed. Further, the matching engine 120a may multicast a transaction confirmation message via the network 110 via the port assigned to item "w". The structure message may include an indication of the quantity of the order 140 that has actually been executed. The confirmation message may be specifically tagged to user B / transaction application 122b / matching engine 120b / and / or server 102. Upon receiving the confirmation message, the matching engine 124b may be able to delete the order 140 (or a portion thereof) from its order book 124b and may also be able to notify user B and / or the transaction application 122b of the matched order. In addition to user B, all other users / servers / matching engines interested in item "w" may receive the confirmation message and may cause their respective matching engines to delete the order 140 (or a portion thereof) from their order books. Such matching engines may also be able to notify their respective users and / or transaction applications of the matched order. That is, the matching engine 120c may be able to delete the order 140 from its order book 124c and may also be able to notify the transaction application 122c and / or user C.According to another and / or further embodiment, in addition to the matching engine 120a that multicasts the confirmation message, it can multicast some other commands (such as a cancellation command) that cause other matching engines (such as engine 120c, etc.) to delete the order 140 from their order books. Those skilled in the art will understand that other and / or further command sequences may be used.
[0025] As another example, when receiving a transaction command from user B as discussed above, if the matching engine 120a determines that the order 140 is not yet available (e.g., cancelled and / or already executed against by another user, etc.), it can multicast a cancellation message regarding the order 140 and / or a message specifically specifying that the transaction is unconfirmed and / or the transaction has failed and / or the transaction has not been established, etc. (which can be specifically tagged to user B / transaction application 122b / matching engine 120b and / or server 102). Regardless, the effect of the message(s) can be such that all applicable matching engines can delete the order 140 from their respective order books. Again, each transaction application and / or user can be notified by their respective matching engines that the command 140 is unavailable. The transaction application 122b and / or user B can be specifically notified that the transaction has failed.
[0026] According to another embodiment, as discussed above, after the matching engine 120a determines that the order 140 is still available, the matching engine 120a may first communicate with the trading application 122a and / or user A to determine whether there is still a desire to execute the order 140. If so, the matching engine 120a may proceed as discussed above with respect to generating a confirmation message or the like. As another example, the trading application 122a and / or user A may indicate that there is a desire to execute the order 140, but that the desire is for an amount less than the available amount of the order 140 (i.e., less than the amount required by the trading command). That is, to reiterate, the matching engine 120a may proceed as discussed above with respect to generating a confirmation message such as a message indicating the amount of the order 140 executed against it. As another example, if there is no desire on the part of user A and / or the trading application 122a to execute the order 140, the matching engine 120a may delete the order 140 from the order book 124a and then proceed as discussed above with respect to generating a cancelled and / or unacknowledged message, which may result in the order 140 being deleted from other order books. To reiterate, each trading application / user at other servers may be notified by their respective matching engines that the command 140 is unavailable. Also, they may be notified that the order 140 is on hold, but that the respective originator of the order (i.e., user A) no longer desires to execute the order. Those skilled in the art will understand that other and / or further message flows are possible regardless of whether the order 140 is executed or not executed against the order 140.
[0027] According to a further aspect of the exemplary operations contemplated above, for example, if user C / transaction application 122c generates a transaction command for order 140 when it is substantially similar to user B / transaction application 122b as contemplated herein, matching engine 120c may multicast the transaction command over network 110 in a manner similar to matching engine 120b. In such an event, matching engine 120a may receive two transaction commands for order 140 (one from user B and one from user C), and depending on which reaches server 101 first, each may necessarily queue up one before the other. Again, since matching engine 120a may be involved in controlling the execution of an order (here, for example, order 140) originating from user A / server 101, matching engine 120a may execute order 140 for only one of user B and user C depending on which reaches server 101 first (assuming both users attempt to execute order 140 in full scale). Matching engine 120a may, for example, send an acknowledgement for the other transaction command. As another example, one of the transaction commands of user B and user C may be fully executed, and if order 140 is not of sufficient scale to satisfy both, the other may be executed only partially. Those skilled in the art will understand that other variations are possible.
[0028] Those skilled in the art will understand that the exemplary operations described above for system 100 are examples, and that other and / or further exemplary operations are possible. For example, an item may be associated with a plurality of ports or channels, etc. on network 100. For example, for a given item, one port may be used to multicast only the bids for that item, another port may be used to multicast only the winning bids for that item, another port may be used to multicast only the transaction commands / backorders / opposite orders (e.g., the corresponding / sales amount) for that item (alternatively, one port may be used for the corresponding and another port may be used for the sales amount), another port may be used to multicast the transaction confirmation messages for that item (alternatively, for example, one port may be used for the transaction confirmation for the corresponding and another port may be used for the transaction confirmation for the sales amount), another port may be used to multicast the transaction unconfirmed messages for that item (alternatively, for example, one port may be used for the transaction unconfirmed for the corresponding and another port may be used for the transaction unconfirmed for the sales amount), another port may be used to multicast the bid cancellation messages for that item, and / or another port may be used to multicast the winning bid cancellation messages for that item. For example, these other combinations may also be included, and ports for other messages may also be included. Again, other variations are possible.
[0029] According to further exemplary features, system 100 can eliminate the need to create drop copies. For example, in matching engine 120a that generates a transaction confirmation message as described herein, other computing systems (represented by computing system 150) connected to network 110 can receive these messages in addition to, for example, other matching engines 120b - f that may receive this message and update respective order books 124b - f. These other computing systems may or may not be associated with users / customers who are seeking to use system 100 for transaction items. For example, computing system 150 may be associated with a clearing house that can erase transactions such as the exemplary transaction between users A and B considered herein.
[0030] According to further exemplary features of system 100, for example, if a trading application (such as application 122e) starts submitting bids and / or offers for items at a price that is, for example, off-market, stops trading application 122e, and there is a need to potentially remove these bids and offers from the market, server 105 can be considered offline. Considering server 105 as offline can include, for example, considering the entire server as offline (such as by a command from an administrator), shutting down / stopping / interrupting matching engine 120e, and no longer having matching engine 120e / server 105 listen on / receive on / transmit via ports associated with items. In particular, each action can prevent trading application 122e from submitting further orders. Similarly, since matching engine 120e can be involved in controlling the execution of trading commands for orders submitted by trading application 122e, each of the above actions will prevent matching engine 120e from doing so any further. For example, by no longer having matching engine 120e / server 105 listen on / receive on ports associated with items, matching engine 120e will not receive trading commands. Those skilled in the art will understand that these are merely examples and that other and / or further exemplary features of system 100 are possible.
[0031] Foreign exchange transaction In foreign exchange (hereinafter referred to as "FX") transactions, the market can be regarded as consisting of multiple users, and one or more of these users can be regarded as liquidity providers (hereinafter referred to as "providers"), and one or more of these users can be regarded as liquidity takers (hereinafter referred to as "takers"). Those skilled in the art will understand that a user can be both a provider and a taker. A provider can create one or more markets for one or more FX products by submitting or streaming one or more orders, each having a price and a size, such as bids and / or offers for FX products. Each order can be shown / made available to one or more takers. In response, a taker can attempt to execute against the order by submitting a trading command such as an offer trade volume or a non - applicable bid (as another example, a taker can attempt to execute against the order by submitting a bid or an offer, etc.). The trading command can include a specific price and size. The size of the trading command can match the size of the similar order against which it is executed, or can be a smaller size. In response to submitting a trading command against an order, the command can be sent / transferred to the provider who submitted the order. A process that can be referred to as "second look" can occur. According to the second look, if the order is still possible, instead of a trading command to execute against the order, a second opportunity can be given to the provider who submitted the order to decide whether they still want to trade. In response to receiving a trading command, the provider can respond, for example, with an "execute" command, which means that the provider wants to trade in the market created by the provider according to the order submitted by the provider. The execute command can include a size that matches the size of the submitted order or a smaller size. The execute command can result in a trading command being executed against the order and a trade being executed between the corresponding provider and taker.As another alternative, the provider may respond to the taker's trading command with a "non-execute / non-executed" command, for example, meaning that the provider does not want to trade in a market made by the provider specified by the order. In this case, the trading command may not be executed for the order, and the trade may not be executed between the corresponding provider and the taker. As a third example, the provider may not respond at all to the trading command (with an execute command or a non-execute command), or it may take a long time to respond to the trading command. Here, the taker may withdraw or cancel the trading command. Assuming that the trading command is withdrawn before the provider responds with an execute command, the trading command may not be executed for the order, and the trade may not be executed between the corresponding provider and the taker. In the last two cases, if the taker desires to execute the trade, it may be necessary to resubmit other trading commands for other orders.
[0032] According to the embodiments contemplated herein, system 100 can be used for trading one or more foreign exchange ("FX") products. For example, using the methods contemplated herein, a provider of system 100 (such as user A and / or a trading application 122a that executes on behalf of user A) can create a market for one FX product by, for example, submitting or streaming one or more orders each having a price and a size, such as bids and / or offers for the FX product. As noted above, for example, each order can be transferred from a provider's server (such as user A's server 101) to one or more other servers. Assuming that a server such as user B's server 102 is configured to receive orders for FX products, a corresponding matching engine of server 102, such as engine 120b, may receive the order and record it in respective order books 124b. The matching engine may then transfer information about the received order to user B and / or trading application 122b. In response to receiving the order, user B and / or trading application 122b may attempt to execute the order (thereby becoming a taker), for example, by submitting a trading command for the order. The trading command may include a specific price and size. As contemplated herein, for example, in response to submitting a trading command for an order that matches the order and / or command, the command can be sent / transferred to server 101 or matching engine 120a. According to the second look, rather than a matching engine 120a that executes a trading command for the order (assuming the order is possible), matching engine 120a may first communicate with trading application 122a and / or user A to determine whether there is a desire to maintain the market specified by the order. Assuming that trading application 122a and / or user A desires to maintain the order, an execution command can be communicated from trading application 122a and / or user A to matching engine 120a.It can execute a trading command for an order (e.g., for a scale specified by an execution command), and then can generate a confirmation message or the like as discussed above. As another example, assuming that trading application 122a and / or user A desires to maintain the market specified by the order, a non-execution / unexecuted command can be communicated from trading application 122a and / or user A to matching engine 120a. Next, according to an embodiment as discussed herein, matching engine 120a can communicate an order and / or message specifically designating a cancellation message for the order and / or an unconfirmed trade and / or a trade that has failed and / or a trade that has not been established. As another alternative, assuming that trading application 122a and / or user A does not desire to maintain the market specified by the order, trading application 122a and / or user A cannot communicate any message to matching engine 120a. As yet another example, user B and / or trading application 122b can revoke the trading command and, for example, communicate a request to matching engine 120b. It can, for example, communicate the revocation request to at least server 101 and matching engine 120a in sequence, and can ignore further operations regarding the trading command in sequence. Those skilled in the art will understand that, according to the exemplary operations of system 100 regarding foreign exchange trading as discussed above, these are merely examples, and other and / or further exemplary operations are possible.
[0033] According to an embodiment as contemplated herein, assume that each of three providers, such as user A, C, D, submits an order for a product at the same price, for example, an order of A having a size of 10, an order of C having a size of 5, and an order of D having a size of 5. Further assume that each order is transferred to server 102 of user B and stored in order book 124b as contemplated above. Further, for example, the order of A has time priority over the order of C, and the order of C has time priority over the order of D. In response to receiving the orders, user B and / or trading application 122b may submit a trading command for a product at the price of the three orders or for a size of 20. According to an embodiment as contemplated herein, matching engine 120b may transfer the trading command to server 101 / matching engine 120a of size 5 (thereby executing for the order of A), transfer the trading command to server 103 / matching engine 120c of size 10 (thereby executing for the order of C), and transfer the trading command to server 104 / matching engine 120d of size 5 (thereby executing for the order of D). Matching engine 120b may transfer the three trading commands substantially simultaneously. For example, matching engine 120b may not wait for a confirmation message or an unconfirmed message from server 101 of user A before transferring the trading command to each of servers 103 and 104 of users C and D. As another example, assume that user A responds to an execution command except for a size less than 10 or does not respond to an unexecuted command. Then, matching engine 120b of server 102 may automatically attempt to fulfill the trading command of user B by transferring another trading command to user C or user D having an insufficient size. As another alternative, assume that user A responds to an execution command except for a size less than 10 or does not respond to an unexecuted command. Then, matching engine 120b of server 102 may automatically attempt to fulfill the trading command of user B by transferring another trading command to user C or user D that is part of the insufficient size.As another example, assume that in addition to orders from users A, C, and D, there are other orders from user E of size 10. Here, rather than the matching engine 120b attempting to fulfill user B's trading command through user C and / or user D, the matching engine 120b can automatically attempt to fulfill user B's trading command by forwarding other trading commands to user E, which is not of sufficient size or a respective part thereof. Again, those skilled in the art will understand that the above is an exemplary operation of the system 100 and that other variations are possible.
[0034] From the taker's perspective, it may result in a taker who withdraws the trading command, but it is not desirable in either case to respond to the provider with a trading command having an unexecuted command, or to cause the provider to take time to respond to the trading command or not respond at all. In these cases, as a result, it is a taker who does not execute the desired trade or a trade that takes time, such as finding another provider to trade by executing against other orders.
[0035] As another example, the responses and / or non-responses and / or delayed responses of given providers of executed commands and unexecuted commands can be measured to determine the adequacy of the providers. The adequacy of a provider can be regarded as, for example, the number of transaction commands that informed the provider of the fact that the provider has the ability to approve and that resulted in transactions approved and executed by the provider, relative to the total number of transaction commands that informed the provider of the fact that the provider has the ability to approve. The adequacy can be determined, for example, by measuring the number of transaction commands that informed the provider of the fact that the provider has the ability to approve and that resulted in transactions approved and executed by the provider, divided by the total number of transaction commands that informed the provider of the fact that the provider has the ability to approve. The resulting value can be a value from 0 to 1, including 0 and 1, and can be expressed as a percentage value (i.e., multiplied by 100). For example, assuming that 10 transaction commands are sent to a provider and the provider responds to all 10 transaction commands with executed commands that result in executed transactions, the provider can have an adequacy of 100%. As another example, assuming that 10 transaction commands are sent to a provider and the provider responds to 7 of the 10 transaction commands with executed commands that result in executed transactions, the provider can have an adequacy of 70%. As another example, assuming that 10 transaction commands are sent to a provider, the provider responds to 3 of the 10 transaction commands with executed commands that result in executed transactions, responds to 4 of the 10 transaction commands with unexecuted commands, does not respond to the other transaction commands, and responds to the other transaction commands with executed commands but takes time and responds after the taker submits a withdrawal command, the provider can have an adequacy of 30% (because 3 of the 10 transaction commands result in executed transactions). As another example, if a transaction command for an order is sent to a provider and the order is cancelled by the provider and / or executed thereby before receipt of the transaction command, the unexecuted transaction commands cannot be adversely affected by the determined adequacy of the provider. Those skilled in the art will understand that the adequacy can be defined and determined in other ways.
[0036] According to another and / or further embodiment, adequacy can be determined and updated for a provider such that, regardless of time, the entire history of the provider's responses to trading commands is taken into account. According to another and / or further embodiment, adequacy can be determined and updated for a provider over a specific duration, such as a specific time, a specific day, etc. For example, the duration can be the day prior to trading rather than a day when the market is open. Here, adequacy can be determined / updated at the end of each trading day, for example, by considering only the provider's response to the trading command on the trading day. As another example, the duration can be measured over a moving duration such as the last x hours. Here, adequacy can be determined / updated every hour by considering the trading commands in the last x hours. Those skilled in the art will understand that adequacy can be defined and determined in other ways, as contemplated herein. For example, if a provider responds to a trading command with an execution command for a size other than the size specified by the trading command, this part of the adequacy can be adversely affected by the adequacy, that is, in other words, if the execution command is for the same size as the size specified by the trading command, this part of the adequacy can be less than the adequacy. In a given market, each provider can have an adequacy determined in the same way, or different providers can have their respective adequacies determined in different ways. Those skilled in the art will understand that other variations of adequacy are possible.
[0037] According to another and / or further embodiment, a given provider may have one or more fill rates in a given instance. For example, a provider may have one or more determined fill rates for each FX that the provider makes a market in. For example, for a given FX product, a provider may have one fill rate that is based on how the provider responds to trading commands regardless of the source of the trading command (i.e., the taker). According to another and / or further embodiment, for a given FX product, a provider may have multiple fill rates, for example, one per taker, which are based on how the provider responds to trading commands from that taker. According to another and / or further embodiment, for a given FX product, a provider may have a fill rate that is based on how the provider responds to trading commands from a plurality of takers, although not all takers that the provider responds to. According to another and / or further embodiment, a provider may have a fill rate that is determined across multiple FX products. One of ordinary skill in the art will understand that other variations are possible, including that various providers may have various numbers at various fill rates. For example, each provider may have one fill rate that is based on how the provider responds to trading commands regardless of the source (i.e., the taker), and one or more providers may have fill rates related to a specified taker.
[0038] According to another and / or further embodiment, the adequacy of a given provider can be determined manually and / or electronically. For example, referring to system 100, servers such as servers 101-106 can monitor orders generated by users and / or transaction applications associated with that server, and can also monitor transaction commands for such orders. From such measurements, the server can determine the adequacy. In other words, a server associated with a given provider can determine the adequacy of that provider. As one example, an application running on a server such as matching engine 120 can perform measurements to determine adequacy. As another and / or further example, servers such as servers 101-106 can monitor transaction commands generated by users and / or transaction applications associated with that server, and can also monitor orders for when such transaction commands result from such measurements, and can determine the adequacy. In other words, a server assigned / associated with a given taker can determine the adequacy of the provider. As one example, an application running on a server such as matching engine 120 can perform measurements to determine adequacy. As another and / or further example, a server of a system not associated with a user such as server 150 can monitor orders, transaction commands, etc., and can determine the adequacy of the providers of system 100. As another and / or further example, one or more servers of system 100 can monitor orders, transaction commands, etc. Thus, for example, an administrator can manually determine the adequacy of the providers of system 100. Those skilled in the art will understand that the adequacy can be determined in other and / or further ways.
[0039] According to another and / or further embodiment, the availability of a given provider may be made available to other servers of system 100, i.e., other servers and / or further servers associated with a given provider. For example, if an administrator of system 100 determines the availability, the administrator may set / make such availability available to one or more servers of system 100. As another and / or further embodiment, if a server of system 100, such as server 150, determines the availability, the server may communicate the availability to one or more servers of system 100. As another and / or further embodiment, if a server associated with a given provider determines the availability of that server, the server may communicate the availability to one or more other servers of system 100. As one embodiment, the availability of a provider may be included in an order generated by that provider. Those skilled in the art will understand that the availability may be communicated in other and / or further ways.
[0040] According to another and / or further embodiment, when the availability of a provider is made communicable / available to a server, for example, the availability may be known by the matching engine of that server, but may not be known by the trading application and / or user of that server. According to another and / or further embodiment, the availability may be known by the trading application and / or user. According to another and / or further embodiment, when a received order is communicated by the matching engine to respective trading applications and / or users, the availability of the provider caused by the order may also be communicated by the trading application and / or user.
[0041] One skilled in the art will recognize that the determination of adequacy and its use as contemplated herein are not limited to distributed architectures such as System 100. For example, the use of adequacy may also be applied to a centralized ledger. Here, for example, a centralized trading system (e.g., a central server that maintains a ledger or receipts of orders and controls the execution of trading commands for such orders) may determine the adequacy of a provider. Further, such a server may communicate the adequacy to a computer system used by an end user.
[0042] According to another embodiment, assume that each of three providers, such as users A, C, and D, submits an order for a product at the same price, for example, an order from A with a size of 10, an order from C with a size of 5, and an order from D with a size of 5. Further assume that each order is transferred to the server 102 of user B and placed in the order book 124b as considered above. Further assume that, for example, the order from A has time priority over the order from C, and the order from C has time priority over the order from D. And further assume that user A has a fulfillment rate of 70%, user C has a fulfillment rate of 80%, and user D has a fulfillment rate of 90%. In response to receiving the orders, user B and / or the trading application 122b may submit a trading command for the product at the price of the three orders and for a size of 10. According to one embodiment, the matching engine 120b may prioritize the orders of users A, C, and D in the order book 124b based on the price and the time when the order was submitted to the market. Here, the order from user A may be prioritized over the order from user C, and the order from user C may be prioritized over the order from user D. Here, in response to the trading command from user B, since the order from user A has the highest priority, the matching engine 120b may transfer the trading command to the server 101 / matching engine 120a of size 10 (thereby executing it for the order from A). According to another embodiment, the matching engine 120b may prioritize the orders of users A, C, and D in the order book 124b based on the price and the fulfillment rate at that time (i.e., regardless of time, as long as one or more orders have the same price and associated fulfillment rate). Here, the order from user D may be prioritized over the order from user C, and the order from user C may be prioritized over the order from user A. Here, in response to the trading command from user B, since the order from user D has the highest priority, the matching engine 120b may transfer the trading command to the server 104 / matching engine 120d of size 5 (thereby executing it for the order from D). Furthermore, the matching engine 120b may attempt to fulfill the remaining size of 5 of the trading command for user D.Furthermore, since Order C has the next highest priority, the matching engine 120b may transfer the trading command to the server 103 / matching engine 120c for the remaining volume of 5 (thereby executing it for Order C). Again, those skilled in the art will understand that the above is an exemplary operation of the system 100 and that other variations are possible.
[0043] According to another embodiment, assume that each of three providers, such as users A, C, and D, submits orders for different priced goods with respect to, for example, an order from A that has a better price than the price of Order C and an order from C that has a better price than the price of Order D (better means, for example, a higher price in the case of a bid and a lower price in the case of an award). Further assume that each order is transferred to the server 102 of user B and placed in the order book 124b as considered above. Further, assume that, for example, the order from A has time priority over the order from C, and the order from C has time priority over the order from D. And further assume that user A has a fulfillment rate of 70%, user C has a fulfillment rate of 80%, and user D has a fulfillment rate of 90%. According to one embodiment, the matching engine 120b may prioritize the orders of users A, C, and D in the order book 124b based on the fulfillment rate and the price at that time (again, time may be used as a further factor if one or more orders have the same fulfillment rate). Here, the order from user D may be prioritized over the order from user C, and the order from user C may be prioritized over the order from user A. According to one embodiment, user B and / or the trading application 122b may be more interested in having a trading command that is more fulfilled at the price at which the trading command is fulfilled. Here, even if user B and / or the trading application 122b do not know the respective fulfillment rates of the providers from which the orders originate, the user may be allowed to select what the user believes will result in a better fulfillment rate than the price by knowing the orders that are prioritized over other orders at various prices.
[0044] According to another and / or further embodiment, one or more servers of system 100 may have a threshold corresponding to a minimum adequacy that a user desires to achieve when submitting a trading command. In other words, for a user of system 100 operating as a taker, the user may define an initial adequacy that the user desires to achieve when submitting a trading command. A given user may have one threshold that applies to all financial products that the user wishes to trade. As another example, a given user may have a plurality of thresholds, one for each product that the user wishes to trade. Different users may have different defined thresholds and may have a plurality of different defined thresholds. As one example, a user / trading application / administrator of system 100 may configure each respective server associated with a user having a threshold, such as configuring each matching engine having a threshold. According to another and / or further embodiment, when a user and / or trading application submits a trading command to a respective matching engine, the order may include a threshold. For example, if user B and / or trading application 122b submits a trading command to respective matching engine 120b for an order, the trading command may include a threshold. Those skilled in the art will understand that other variations are possible.
[0045] According to another and / or further embodiment, when a taker (such as User B and / or trading application 122b) submits a trading command for an order in order book 124b submitted by a provider (such as User A and / or trading application 122a), the matching engine 120b may compare, for example, the defined threshold of User B with the determined adequacy of User A, and communicate the trading command to the server 101 of User A for a possible execution of the trading command for the order only if the adequacy of User A is greater than (or equal to or greater than) the threshold of User B. Otherwise, the matching engine 120b may not attempt to execute a trading command for the order. According to another and / or further embodiment, for example, assuming that order book 124b has two orders from different providers, respectively, regarding a first order that is prioritized over a second order based on the time when it is submitted to the market, and both orders have the same price. Here, the matching engine 120b that receives a trading command from User B and / or trading application 120b may first compare the defined threshold of User B with the determined adequacy of the provider who submitted the first order, and communicate the trading command to the server of that provider for a possible execution of the trading command for the order only if the adequacy is greater than (or equal to or greater than) the threshold of User B. Otherwise, the matching engine 120b may skip / ignore the first order and compare the defined threshold of User B with the defined adequacy of the provider who submitted the second order. Again, the matching engine 120b may communicate the trading command to the server of the provider who submitted the second order only for a possible execution of the trading command only if the adequacy is greater than (or equal to or greater than) the threshold of User B. More generally, if the adequacy of an order is less than, for example, the defined threshold of User B, the matching engine 120b that receives a trading command from User B and / or trading application 120b may skip / ignore the order in order book 124.Again, the adequacy of use in this method can also be applied to a centralized trading system. One of ordinary skill in the art will understand that such use of adequacy can be applied when the order book is prioritized by price and the adequacy at that time, or by adequacy and the price at that time.
[0046] According to another and / or further embodiment, if a provider submits an order to system 100 and the order is communicated to other servers and their respective matching engines, a given matching engine may not be able to automatically place the order in its respective order book. For example, assuming that user A and / or trading application 122a submits an order to system 100, the order is received by user B's server 102. Since matching engine 120b receives the order, the matching engine may compare the determined adequacy of user A with the defined threshold of user B. If the adequacy is greater than (or equal to) user B's threshold, the matching engine may place the order in order book 124b (thereby transferring order information to user and / or trading application 122b). As another example, if the adequacy is less than (or equal to) user B's threshold, the matching engine may not place the order in order book 124b (and does not transfer order information to user B and / or trading application 122b). In this way, user B and / or trading application 124b are presented with orders having an associated adequacy that meets a particular threshold (and thereby have an opportunity to trade with respect to it). The user does not consider orders having an associated adequacy that does not meet the user's defined threshold (and thereby does not have an opportunity to trade with respect to it). Additionally, as part of this embodiment, various users of system 100 may have various thresholds and / or various adequacies for each provider, so the order books of each server for a given item may differ (i.e., have various up-to-date representations in the market). Those skilled in the art will understand that such use of adequacy may also apply when the order book is prioritized by price and adequacy at that time, or by adequacy and price at that time.
[0047] This disclosure is described with respect to certain embodiments, but in general, related methods, alternatives, and rearrangements of the embodiments and methods will be apparent to those skilled in the art. Accordingly, the above description of exemplary embodiments does not limit this disclosure. Other changes, substitutions, and alternatives are also possible without departing from the spirit and scope of this disclosure.
[0048] The following sections provide guidance in interpreting this specification.
[0049] I. Terms The term "product" means a machine, manufacture, and / or composition of matter, unless otherwise expressly stated.
[0050] The term "process" means a process, algorithm, method, etc., unless otherwise expressly stated.
[0051] Each process (whether called a method, algorithm, or otherwise) essentially includes one or more steps, and thus any reference to a "step" (singular or plural) of a process has an essential antecedent basis in a mere description of the process or in a mere recitation of terms such as "process", etc. Accordingly, a reference to a "step" (singular or plural) of a process in a claim has a sufficient antecedent basis.
[0052] The terms such as "invention" mean "one or more inventions disclosed herein", unless otherwise expressly stated.
[0053] The terms "an embodiment", "embodiment", "embodiments", "the embodiment", "the embodiments", "one or more embodiments", "some embodiments", "certain embodiments", "an embodiment", "another embodiment", etc. mean "one or more (but not all) embodiments of the invention", unless otherwise expressly stated.
[0054] The term "variant" of the present invention means an embodiment of the present invention, unless otherwise expressly stated.
[0055] The term "indicator" is used in a very broad sense. It should be understood that an "indicator" of a matter includes anything that can be used to determine the matter.
[0056] An indicator of a matter may include an electronic message that identifies the matter (e.g., identification of a widget by a serial number attached to the widget, identification of a widget by one or more characteristics of the widget). An indicator of a matter may include information that can be used to calculate and / or reference the matter (e.g., information that identifies a machine of which the widget is a part and that can be used to determine the widget). An indicator of a matter may specify a matter related to the matter (e.g., a characteristic of the matter, a name of the matter, a name of a matter related to the matter). An indicator of a matter may not specify a matter related to the matter (e.g., the letter "a" can be an indicator of a widget in a computer system configured to interpret the letter "a" to identify the widget). An indicator of a matter may include signs, omens, and / or tokens of the matter. An indicator may include, for example, codes, references, examples, links, signals, and / or identifiers. An indicator of a matter may include information that represents, describes, and / or otherwise pertains to the matter.
[0057] The conversion of an indication of a matter can be an indication of the matter (e.g., an encrypted indication of a matter can be an indication of the matter). An indication of a matter can include the matter itself, a copy of the matter, and / or a part of the matter. An indication of a matter may be meaningless with respect to a matter not configured to understand the indication (e.g., a person may not understand that the letter "a" indicates a widget, but since a computer system can determine a widget from the letter "a", it can still be an indication of the widget). It should be understood that an indication of a matter can be used to determine that the matter does not mean that the matter or anything is determined. An indication of a matter can include any number of indications of the matter, unless otherwise specified. An indication of a matter may include indications of other matters (e.g., an electronic message indicating many matters). (An indication can be used as a very broad term in the language of the claims. For example, receiving an indication of a financial product.)
[0058] The term "represent" means (1) to function so as to express, specify, represent, or indicate, as words, symbols, the like do; (2) to express or specify by means of several terms, letters, symbols, the like; (3) to depict, or describe, or present the thing itself, as a photograph does; or (4) to function as the sign or symbol itself.
[0059] References to "another embodiment" in the description of an embodiment do not imply, unless otherwise explicitly stated, that the referenced embodiment is mutually exclusive with another embodiment (e.g., an embodiment described before the referenced embodiment). Similarly, the mere fact that two (or more) embodiments are referenced does not imply that these embodiments are mutually exclusive.
[0060] One embodiment of the present invention may include, cover, or encompass two or more other embodiments of the present invention. For example, a first embodiment including elements a, b, and c may cover a second embodiment including elements a, b, c, and d, as well as a third embodiment encompassing elements a, b, c, and e. Similarly, each of the first, second, and third embodiments may cover a fourth embodiment including elements a, b, c, d, and e.
[0061] The terms "comprising," "including," and their variations mean "including but not necessarily limited to" unless otherwise explicitly stated. Thus, for example, the statement "The machine includes a red widget and a blue widget" means that the machine includes a red widget and a blue widget, but may also potentially include one or more other items as well.
[0062] The term "consisting of" and its variations mean "including and also limited to" unless otherwise explicitly stated. Thus, for example, the statement "The machine consists of a red widget and a blue widget" means that the machine includes a red widget and a blue widget, but nothing else.
[0063] The term "constituting" and its variations mean "making up its components, its constituent parts, or its elements" unless otherwise explicitly stated. Thus, for example, the statement "A red widget and a blue widget constitute the machine" means that the machine includes a red widget and a blue widget.
[0064] The term "consisting essentially of" and variations thereof mean, unless otherwise explicitly stated, "consisting exclusively of that component, of only those components, or of only those elements". Thus, for example, the sentence "Red widgets and blue widgets essentially constitute the machine" means that the machine consists only of red widgets and blue widgets (i.e., nothing else).
[0065] The terms "a", "an", and "the" mean "one or more", unless otherwise explicitly stated. Thus, for example, the term "widget" means "one or more widgets", unless otherwise explicitly stated. Similarly, after the term "widget" is written, a subsequent description of the term "widget" means "one or more widgets". Therefore, it should be understood that the word "the" can also refer to a specific term with a prior basis. For example, if a paragraph states "a certain single feature" and then refers to "the feature", it should be understood that the term "the feature" refers to the previously stated "certain single feature" (it should be understood that the term "a" in "a certain single feature" refers to "one" certain single feature, not "one or more" certain single features).
[0066] The term "plurality" means "two or more", unless otherwise explicitly stated.
[0067] The term "as used herein" means "as used herein, including any matter that may be incorporated by reference", unless otherwise explicitly stated.
[0068] The phrase "at least one of" means, when such phrase modifies a plurality of things (a list of enumerated things), any combination of one or more of those things, unless otherwise explicitly stated. For example, the phrase "at least one of widget, car, handle" means (i) a widget, (ii) a car, (iii) a handle, (iv) a widget and a car, (v) a widget and a handle, (vi) a car and a handle, or (vii) a widget, a car, and a handle. The phrase "at least one of" does not mean "one of each" of the plurality of things when such phrase modifies a plurality of things. For example, the phrase "at least one of widget, car, handle" does not mean "one widget, one car, and one handle".
[0069] Numerical terms such as "one", "two", etc., when used as cardinal numbers to indicate some quantity (e.g., one widget, two widgets), mean the quantity indicated by that numerical term, but not at least the quantity indicated by that numerical term. For example, the phrase "one widget" does not mean "at least one widget", and thus the phrase "one widget" does not cover, for example, two widgets.
[0070] The phrase "based on" does not mean "based only on", unless otherwise explicitly stated. That is, the phrase "based on" encompasses both "based only on" and "based at least on". The phrase "based at least on" is equivalent to the phrase "based at least in part on". For example, the phrase "Element A is calculated based on Element B and Element C" covers embodiments where Element A is calculated as the product of B times C (i.e., A = B × C), embodiments where A is calculated as the sum of B plus C (i.e., A = B + C), embodiments where A is calculated as the product of B times C times D, embodiments where A is calculated as the sum of the square root of the sum of B plus C plus D times E, etc.
[0071] Terms such as "represent" are not exclusive unless otherwise explicitly stated. For example, unless otherwise explicitly stated, the term "represent" does not mean "represent only". For example, the phrase "data represents a credit card number" encompasses both "data represents only the credit number" and "data represents a credit card number and the data also represents something else".
[0072] The term "thereby" is used in this specification only to precede a clause or other set of words that represents only the intended result, purpose, or consequence of something explicitly stated before the term "thereby". Thus, when the term "thereby" is used within a claim, the clause or other words modified by the term "thereby" do not establish a particular further limitation of the claim, nor do they limit the claim or its meaning.
[0073] Terms such as "for example", "etc." and similar terms mean "for example", and thus do not limit the terms or phrases they explain. For example, in the sentence "A computer transmits data (for example, instructions, data structures) via the Internet", the term "for example" explains that "instructions" are an example of "data" that a computer can transmit via the Internet, and also explains that "data structures" are an example of "data" that a computer can transmit via the Internet. However, both "instructions" and "data structures" are merely examples of "data", and other things besides "instructions" and "data structures" can also be "data".
[0074] The term "each" and like terms mean "individually". Thus, when two or more things each have a characteristic, each such thing has its own characteristic, and these characteristics may be different from each other, but need not be different from each other. For example, the phrase "each of two machines has its own function" means that the first of the two machines has a function and the second of the two machines also has a function. The function of the first machine may or may not be the same as the function of the second machine.
[0075] The term "i.e." and like terms mean "that is", and thus limit the terms or phrases it explains. For example, in the sentence "A computer transmits data (i.e., instructions) via the Internet", the term "i.e." explains that "instructions" are the "data" that the computer transmits via the Internet.
[0076] A numerical range includes integers and non-integers within that range unless otherwise expressly stated. For example, the range "1 to 10" includes the integers from 1 to 10 (e.g., 1, 2, 3, 4,... 9, 10) and non-integers (e.g., 1.0031415926, 1.1, 1.2,... 1.9).
[0077] When two or more terms or phrases are synonyms (e.g., due to an express statement that the terms or phrases are synonyms), an instance of one such term or phrase does not mean that another such term or phrase must have a different meaning. For example, if a sentence indicates that the meaning of "comprises" is synonymous with "comprises but is not limited to", the mere use of the phrase "comprises but is not limited to" does not mean that the term "comprises" means anything other than "comprises but is not limited to".
[0078] II. Determine The term "determining" and its grammatical variations (e.g., determining a price, determining a value, determining an object that meets a particular criterion) are used in a very broad sense. Since the term "determining" encompasses a wide range of operations, "determining" can include calculating, computing, processing, deriving, inspecting, referring to (e.g., referring to a table, database, or another data structure), rendering in an electronic format or digital representation, specifying, etc. "Determining" can also include receiving (e.g., receiving information), accessing (e.g., accessing data in a memory), etc. Further, "determining" can include resolving, selecting, choosing, establishing, etc.
[0079] The term "determining" does not imply certainty or absolute accuracy, and thus, "determining" can include estimating, inferring, predicting, speculating, averaging, etc.
[0080] The term "determining" does not imply that a mathematical process must be performed, does not imply that a numerical method must be used, and does not imply that an algorithm is used.
[0081] The term "determining" does not imply that any particular device must be used. For example, it is not necessarily the case that a computer must perform the determining.
[0082] The term "determining" may include "calculating". The term "calculating" should be understood to include performing one or more calculations. Calculating may include computing, processing, and / or deriving. Calculating may be performed by a computing device. For example, calculating a matter may include applying an algorithm to data by a computer processor and generating the matter as the output of the processor.
[0083] The term "determine" may include "refer to". The term "refer to" should be understood to include making one or more references to, for example, a matter. Referring may include querying, accessing, selecting, choosing, reading, and / or searching. The act of referring may be performed by a computing device. For example, referring to a matter may include reading a memory location in which the matter is stored by a processor.
[0084] The term "determine" may include "receive". For example, receiving a matter may include taking in the matter. In some embodiments, receiving may include an act implemented to take in a matter such as operating a network interface through which the matter passes. In some embodiments, receiving may be implemented without an act implemented to take in the matter, such as in direct memory write or a hardwired circuit. Receiving a matter may include receiving the matter from a remote information source that may have calculated the matter.
[0085] III. Form of the Article If the limitation of the first claim includes one of the features and two or more of the features (for example, a limitation such as "at least one widget" includes one widget and two or more widgets), and in a second claim dependent on the first claim, when the second claim uses the definite article "the" to refer to that limitation (for example, "the widget"), this mere use does not imply that the first claim includes only one of the features, nor does it imply that the second claim includes only one of the features (for example, "the widget" can include both one widget and two or more widgets).
[0086] When an ordinal number (such as "first", "second", "third", etc.) is used as an adjective before a term, that ordinal number is (unless otherwise expressly stated) simply used to indicate a particular feature, such as to distinguish a particular feature from another feature described by the same or a similar term, but the ordinal number is merely a name for convenience and has no other meaning or limiting effect. For example, a "first widget" may simply have such a name to distinguish it from, for example, a "second widget". Thus, simply using the ordinal numbers "first" and "second" before the term "widget" indicates no other relationship between the two widgets, and likewise indicates no other characteristics of either or both widgets. For example, simply using the ordinal numbers "first" and "second" before the term "widget" does not indicate (1) that the order or location of either widget comes before or after any other widget, (2) that either widget occurs or operates temporally before or after any other widget, and (3) that either widget is ranked above or below any other widget in terms of importance or quality. The mere use of an ordinal number does not define a numerical limitation on the feature identified by the ordinal number. For example, the mere use of the ordinal numbers "first" and "second" before the term "widget" does not indicate that there are exactly two widgets.
[0087] When a single device, article, or other product is described herein, in another embodiment, alternatively, two or more devices or articles (regardless of whether they cooperate) may be used instead of the single device or article described. Thus, in another embodiment, the functions described as being performed by a device may alternatively be owned by two or more devices or articles (regardless of whether they cooperate).
[0088] Similarly, if two or more devices, articles, or other products are described herein (regardless of whether they cooperate), in another embodiment, alternatively, instead of the two or more devices or articles described, a single device or article may be used. For example, multiple computer-based devices may be replaced by a single computer-based device. In some embodiments, such multiple computer-based devices may operate together to perform one step of a process as is common in a grid computing system. In some embodiments, such multiple computer-based devices may operate and provide additional functionality to each other such that they perform one step of a process as is common in a cloud computing system. (Conversely, a single computer-based device may be replaced by multiple computer-based devices that operate in cooperation with each other. For example, a single computing device may be replaced by a server and a workstation that communicate with each other via the Internet.) Accordingly, the various functions described as being processed by two or more devices or articles may alternatively be owned by a single device or article.
[0089] The functions and / or features of the single device described may, in another embodiment, alternatively, be implemented by one or more other devices that are described but not explicitly described as having such functions or features. Accordingly, other embodiments need not include the device itself that is described, but rather, in these other embodiments, may include one or more other devices having such functions or features.
[0090] IV. The examples and terms disclosed are non-limiting Neither the title (set forth at the beginning of the first page of this specification) nor the abstract (set forth at the end of this specification) shall be construed as limiting the scope of the disclosed invention, nor shall they be used in construing the meaning of any claim or in limiting the scope of any claim. The abstract is included in this specification only for the reason that it is required under 37 C.F.R. 1.72(b).
[0091] The headings of the sections provided in this application are for convenience only and shall in no way be construed as limiting the present disclosure.
[0092] Numerous embodiments are described in this application and presented for purposes of illustration only. The described embodiments are in no way limiting and are not intended to be limiting. The disclosed invention is widely applicable to numerous embodiments, as will be readily apparent from this disclosure. Those skilled in the art will understand that various modifications and changes, such as structural, logical, software, and electrical modifications, may be made to practice the disclosed invention. Specific features of the disclosed invention may be described with reference to one or more specific embodiments and / or drawings, but it should be understood that such features are not limited to their usage within the one or more specific embodiments or drawings to which they are referred, unless otherwise explicitly stated.
[0093] One embodiment may be disclosed as including several features, but other embodiments of the invention may include fewer features than all such features. Thus, for example, one claim may relate to fewer features than the overall set of features in the disclosed embodiment, and such a claim shall not be construed as requiring features other than those explicitly recited in the claim.
[0094] Embodiments of method steps or product elements described in this application do not constitute the invention claimed herein, are not essential to the invention claimed herein, or do not have the same scope as the invention claimed herein, except as explicitly described herein or (with respect to the invention defined by the claims and their scope) explicitly recited within the scope of those claims.
[0095] Any preamble of a claim that recites anything other than statutory classification is to be construed as stating the purpose, advantages, and possible uses of the claimed invention, and such a preamble is not to be construed as limiting the claimed invention.
[0096] This disclosure is not an exact description of all embodiments of the invention. Also, this disclosure is not a listing of features of the invention that are required to be present in all embodiments.
[0097] Not all disclosed embodiments are necessarily covered by the claims (including all claims that have been withdrawn, amended, published, and cancelled). Additionally, disclosed embodiments may be covered by some claims (but not necessarily). Thus, the fact that one claim (regardless of withdrawal, amendment, publication, or cancellation) relates to a particular embodiment is not evidence that the scope of other claims also relates to that embodiment.
[0098] Devices described as communicating with each other need not communicate continuously with each other, unless otherwise explicitly stated. Conversely, such devices need only transmit to each other as necessary or desired, and in fact, may not exchange data most of the time. For example, a machine communicating with another machine via the Internet may not transmit data to the other machine for a long period of time (e.g., several weeks at a time). In addition to this, devices that communicate with each other may communicate directly or indirectly through one or more intermediaries. Devices are communicating with each other if they are capable of at least one-way communication with each other. For example, a first device is communicating with a second device if the first device is able to transmit information to the second device. Similarly, the second device is communicating with the first device if the second device is able to receive information from the first device.
[0099] The description of an embodiment having several components or features does not imply that all or any of such components or features are required. Conversely, various optional components are described to show the broad range of possible embodiments of the present invention. Unless otherwise explicitly specified, a component or feature is not essential or required.
[0100] Process steps, algorithms, etc. may be described or claimed in a particular sequential order, but such processes can be configured to operate in a different order. In other words, no particular order or sequence of steps that can be explicitly described or claimed necessarily indicates a requirement to perform the steps in that order. The steps of the processes described herein can be performed in any order that is possible. Further, even though some steps are not described or implied as being performed simultaneously (for example, because one step is described after another step), some steps may be performed simultaneously. Further, the illustration of a process by way of the description in the drawings does not imply that the illustrated process excludes other variations and modifications, does not imply that any of the illustrated processes or steps thereof are necessary for the present invention, and does not imply that the illustrated process is preferred.
[0101] A process may be described as including a plurality of steps, but this does not imply that all or any of the steps are preferred, essential, or required. Various other embodiments within the scope of the present invention include other processes that omit some or all of the described steps. Unless otherwise specifically stated, no step is essential or required.
[0102] A process may be described alone, i.e., without reference to other products or methods, but in one embodiment, the process may interact with other products or methods. For example, such interaction may include linking one business model to another business model. Such interaction can be provided to improve the flexibility or desirability of the process.
[0103] A product may be described as including a plurality of components, aspects, quantities, characteristics, and / or features, but this does not indicate that some or all of these are preferred, essential, or required. Various other embodiments within the scope of the described invention include other products that omit some or all of the described plurality.
[0104] A list of enumerated items (some of which may be numbered and some may not) does not imply that any or all of the items are mutually exclusive, unless otherwise expressly stated. Similarly, a list of enumerated items (some of which may be numbered and some may not) does not imply that any or all of the items encompass any category, unless otherwise expressly stated. For example, the list "computer, laptop, and PDA" does not imply that any or all of the three items in the list are mutually exclusive, nor does it imply that any or all of the three items in the list encompass any category.
[0105] A list of enumerated items (some of which may be numbered and some may not) does not imply that any or all of the items are equivalent to each other or are easily replaceable with each other.
[0106] All embodiments are illustrative and do not imply, in some cases, that the present invention or any embodiment has been made or implemented.
[0107] V. Computing Those skilled in the art will readily understand that the various processes described herein may be implemented, for example, by a general-purpose computer, a dedicated computer, and a computing device appropriately programmed. Generally, a processor (e.g., one or more microprocessors, one or more microcontrollers, one or more digital signal processors) receives instructions (e.g., from a memory or a similar device), executes those instructions, and thereby performs one or more processes defined by the instructions. The instructions can be implemented, for example, by one or more computer programs, one or more scripts.
[0108] The term "computing" shall be taken to mean determining the use of a processor with respect to a software algorithm.
[0109] "Processor" means one or more microprocessors, central processing units (CPUs), computing devices, microcontrollers, digital signal processors, graphics processing units (GPUs), similar devices, or any combination thereof, regardless of architecture (e.g., chip-level multiprocessing or multi-core, RISC, CISC, microprocessor without interlocked pipeline stages, pipeline configuration, simultaneous multithreading, microprocessor with integrated graphics processing unit, GPGPU).
[0110] "Computing device" means one or more microprocessors, central processing units (CPUs), computing devices, microcontrollers, digital signal processors, graphics cards, mobile game devices, similar devices, or any combination thereof, regardless of architecture (e.g., chip-level multiprocessing or multi-core, RISC, CISC, microprocessor without interlocked pipeline stages, pipeline configuration, simultaneous multithreading).
[0111] Therefore, the description of a process is also a description of an apparatus for performing the process. The apparatus for performing the process can include, for example, a processor and input / output devices suitable for performing the process. For example, the description of a process is a description of an apparatus comprising a processor and a memory storing a program that includes instructions that, when executed by the processor, direct the processor to perform the method.
[0112] The apparatus for implementing the process can include a plurality of computing devices that operate together to implement the process. Some of the computing devices can operate together to implement each step of the process, can operate for separate steps of the process, and can provide services that underlie other computing devices that can facilitate the implementation of the process. Such computing devices can operate under the command of a central authority. In another embodiment, such computing devices can operate without the command of a central authority. Some examples of devices that can operate in some or all of such ways can include grid computer systems, cloud computer systems, peer-to-peer computer systems, computer systems configured to provide software as a service, and the like. For example, the apparatus can include a computer system that executes the bulk of its processing load on a remote server, such as a computer system that executes VMware software, but outputs display information to a local user computer and receives user input information from the local user computer.
[0113] Furthermore, a program (as well as other types of data) for implementing such a method can be stored and transmitted in several ways using various media (e.g., computer-readable media). In some embodiments, instead of or in combination with some or all of the software instructions that can implement the processes of the various embodiments, hardwired circuitry or custom hardware may be used. Thus, various combinations of hardware and software may be used instead of software alone.
[0114] The term "computer-readable medium" refers to any non-transitory medium, multiple identical media, or combination of different media that participates in providing data (e.g., instructions, data structures) that can be read by a computer, processor, or similar device. Such media can take many forms including, but not limited to, non-volatile media, volatile media, and transmission media. Non-volatile media includes, for example, optical disks, magnetic disks, and other permanent memories. Volatile media typically includes dynamic random access memory (DRAM) that constitutes main memory. Transmission media includes coaxial cables, copper wire, and fiber optics, including the wires that make up the system bus coupled to a processor. Transmission media can include or convey electromagnetic emissions such as those generated during acoustic, optical, and radio frequency (RF) and infrared (IR) data communications. Common forms of computer-readable media include, for example, floppy (registered trademark) disks, flexible disks, hard disks, magnetic tape, any other magnetic media, CD-ROM, DVD, any other optical media, punch cards, paper tape, any other physical media with patterned holes, RAM, PROM, EPROM, flash EEPROM, any other memory chip or cartridge, a carrier wave as described below, or any other media readable by a computer.
[0115] The term "tangible computer-readable medium" refers to a "computer-readable medium" that comprises a hardware component such as an optical or magnetic disk.
[0116] Various forms of computer-readable media may be involved in the conveyance of data (e.g., instruction sequences) to a processor. For example, the data may be (i) sent from RAM to the processor, (ii) conveyed via a wireless transmission medium, (iii) formatted and / or transmitted according to many forms, specifications, or protocols such as Ethernet (registered trademark), wireless local area network communication defined by the IEEE 802.11 specification whether or not they are approved by the WiFi Alliance, SAP, ATP, Bluetooth (registered trademark), and TCP / IP, TDMA, CDMA, and 3G, and / or (iv) encrypted in any of various ways known in the art to ensure privacy and prevent fraud.
[0117] The term "database" refers to any electronically stored collection of data stored in a searchable format.
[0118] The term "data structure" refers to a database within a hardware machine such as a computer.
[0119] The term "network" means a series of points or nodes interconnected by communication paths. For example, a network may include multiple computers or communication devices interconnected by one or more wired and / or wireless communication paths. A network may interconnect with other networks and may include sub-networks.
[0120] The term "predetermined" means, for example, determined in advance, e.g., before the current time or the current operation. For example, the phrase "display a predetermined value" means to display a value determined before the display operation.
[0121] The term "condition" means (1) a prerequisite based on the fulfillment of an agreement, or (2) something essential for some occurrence or event.
[0122] The term "transaction" means a communication operation or activity that includes (1) the exchange or transfer of goods, services, or funds, or (2) two organizations or matters that affect or interact with each other.
[0123] Accordingly, the description of a process is also a description of a computer-readable medium that stores a program for implementing the process. The computer-readable medium can store program elements suitable for the implementation of the method (in any suitable form). For example, the description of a process is a description of a computer-readable medium that stores a program including instructions that, when executed by a processor, direct the processor to implement the method.
[0124] Similar to how the description of various steps of a process does not indicate that all of the described steps are required, an embodiment of an apparatus includes a computer or computing device operable to perform some (but not necessarily all) of the described processes.
[0125] Similarly, similar to how the description of various steps of a process does not indicate that all of the described steps are required, an embodiment of a computer-readable medium that stores a program or data structure includes a computer-readable medium that stores a program that, when executed, can cause a processor to perform some (but not necessarily all) of the described processes.
[0126] When a database is described, one of ordinary skill in the art will understand that (i) alternative database structures to the described structure can be readily utilized, and (ii) other memory structures besides databases can also be readily utilized. Any illustration or description of any database sample presented herein is an exemplary configuration of the stored information representation. For example, any number of other configurations may be utilized other than those suggested by the tables shown in the drawings or elsewhere. Similarly, one of ordinary skill in the art will understand that any of the exemplified entries of a database are merely illustrative of the information, and the number and content of the entries may differ from those described herein. Further, regardless of any description of a database as a table, other forms (including relational databases, object-based models, and / or distributed databases) may be used to store and manipulate the data types described herein. Similarly, the methods or behaviors of the objects of a database can be used to implement the various processes as described herein. In addition to this, the database can be stored in a known manner locally or remotely to the device accessing the data within such a database.
[0127] Various embodiments can be configured to operate in a network environment that includes one or more devices and a computer that communicates with the devices (e.g., via a communication network). The computer can communicate directly or indirectly with the devices via a wired or wireless medium (e.g., the Internet, a LAN, a WAN, or Ethernet, Token Ring, a telephone line, a cable line, a wireless channel, an optical communication line, a commercial online service provider, a bulletin board system, a satellite communication link, any combination of the foregoing). Each device can itself include a computer or other computing device configured to communicate with the computer, such as one based on an Intel® Pentium®, or Centrino®, Atom®, or Core™ processor. Any number and type of devices may be in communication with the computer.
[0128] In one embodiment, a server computer or central authority may not be required or may be undesirable. For example, in one embodiment, the present invention may be implemented on one or more devices without a central authority. In such an embodiment, any function described herein as being performed by a server computer or data described as being stored on a server computer may instead be performed or stored on such one or more devices in place of the server computer.
[0129] When a process is described, in one embodiment, the process can operate without any user intervention. In another embodiment, the process includes some human intervention (e.g., steps are performed by or with the assistance of a human).
[0130] As used herein, the term "encryption" refers to a process for concealing or hiding information so that the information cannot be readily understood without special knowledge. The process of encryption can convert raw information, called plaintext, into encrypted information. The encrypted information may be referred to as ciphertext, and the algorithm for converting plaintext into ciphertext may be referred to as an encryption method. The encryption method can also be used to perform the reverse operation of converting the ciphertext back into plaintext. Examples of encryption methods include substitution encryption methods, transposition encryption methods, and encryption methods implemented using a rotor machine.
[0131] In various encryption methods, the encryption method may require an additional piece of information called a key. The key can consist of, for example, a string of bits. The key can be used in combination with the encryption method for encrypting the plaintext. The key can also be used in combination with the encryption method for decrypting the ciphertext. In a classification of encryption methods called symmetric key algorithms (e.g., secret key cryptography), the same key is used for both encryption and decryption. The invulnerability of the information being encrypted can thus vary depending on the key whose secret is not revealed. Examples of symmetric key algorithms are DES and AES. In a classification of encryption methods called asymmetric key algorithms (e.g., public key cryptography), different keys are used for encryption and decryption. In an asymmetric key algorithm, any member of the public can use a first key (e.g., a public key) to encrypt the plaintext into ciphertext. However, only the holder of a second key (e.g., a secret key) will be able to decrypt the ciphertext back into plaintext. An example of an asymmetric key algorithm is the RSA algorithm.
[0132] VI. Continued Application This disclosure provides those skilled in the art with descriptions of several embodiments and / or enabling requirements of the invention. Some of these embodiments and / or inventions may not be claimed in this application, but may still be claimed in one or more continuation applications claiming the benefit of the priority of this application.
[0133] The application intends to file additional applications to claim patents for the subject matter disclosed in this application and for which enabling requirements are presented but not claimed.
[0134] VII. 35 U.S.C. § 112, Paragraph 6 In a claim, a claim limitation that includes the phrase "means for" or the phrase "step for" means that 35 U.S.C. § 112, Paragraph 6 applies to that limitation.
[0135] In a claim, a claim limitation that does not include the phrase "means for" or the phrase "step for" means that 35 U.S.C. § 112, Paragraph 6 does not apply to that limitation, regardless of whether the limitation describes a function without including a description of structure, material, or act of performing that function. For example, in a claim, the mere use of the phrase "step(s)" when referring to one or more steps of that claim or another claim does not mean that 35 U.S.C. § 112, Paragraph 6 applies to that step(s).
[0136] With respect to means or steps for performing a particular function in accordance with 35 U.S.C. § 112, Paragraph 6, the corresponding structure, material, or act described in this specification, and its equivalents, can perform additional functions as well as the specified function.
[0137] Computers, processors, computing devices, and similar products are structures capable of performing a wide range of functions. Such products can be operable to perform specified functions by executing one or more programs, such as programs stored in a memory device of the product or a memory device accessed by the product. Unless otherwise specifically stated, such programs need not be based on any particular program, such as any particular algorithm that may be disclosed herein. It is well known to those skilled in the art that the specified functions may be implemented via different algorithms, and any one of several different algorithms is merely a design choice for performing the specified functions.
[0138] Thus, with respect to a means or step for performing a particular function in accordance with 35 U.S.C. § 112, paragraph 6, the structure corresponding to the specified function includes any product programmed to perform the specified function. Such structure includes a programmed product that performs the function whether the product is programmed using (i) the disclosed algorithm for performing the function, (ii) an algorithm similar to the disclosed algorithm, or (iii) a different algorithm for performing the function.
[0139] If a means for performing a function that is a method is described, the structure for performing the method includes a computing device (e.g., a general purpose computer) programmed and / or configured using appropriate hardware to perform the function.
[0140] Also included is a computing device (e.g., a general purpose computer) programmed and / or configured using appropriate hardware to perform the function via other algorithms that would be understood by those skilled in the art to perform the function.
[0141] VIII. Disclaimer References to many particular embodiments do not imply a waiver or denial of additional different embodiments, and similarly, references to descriptions of embodiments containing all particular features do not imply a waiver or denial of embodiments not containing that particular feature. An express waiver or denial in this application would be prefaced by the phrase "not including" or the phrase "not capable of being implemented".
[0142] IX. Incorporation by Reference Any patent, patent application, or other document referenced herein is incorporated by reference into this patent application as part of the disclosure, but only for the purposes of the written description under 35 U.S.C. § 112, paragraph 1 and the enablement requirement under 35 U.S.C. § 112, paragraph 1, and should never be used to limit, define, or construe any term of this application unless the ordinary meaning could not be ascertained by one of ordinary skill in the art without such incorporation by reference. Thus, one of ordinary skill in the art should never be limited by any embodiment provided by incorporation by reference. Conversely, the definitions provided herein should not be used to limit, define, or otherwise construe any term of any document incorporated herein by reference. The definitions explicitly set forth herein control regardless of the description of any particular embodiment that may be inconsistent with the definition(s).
[0143] Incorporation by reference in and of itself does not imply any endorsement, approval, or acquiescence of any description, opinion, argument, or feature contained in any patent, patent application, or other document being incorporated, absent a separate express statement to that effect in this patent application.
[0144] X. Prosecution History In interpreting this application (including the claims), one of ordinary skill in the art refers to the prosecution history of this application, rather than the prosecution history of any other patent or patent application, regardless of whether there are other patent applications considered relevant to this application and regardless of whether there are other patent applications sharing a claim of priority with this application. (Appendix) The method of Supplementary Note 1 is a method including receiving, by at least one server, a first order and a second order for an item, wherein the first order is associated with a first user, the second order is associated with a second user, the first order and the second order have the same price associated therewith, the first order is received at a time earlier than the second order, a sufficiency is associated with the first order, a sufficiency is associated with the second order, receiving, by at least one server, a trading command for the item, the trading command having a threshold associated therewith, determining, by at least one server, that the sufficiency associated with the first order is less than the threshold, as a result of determining that the sufficiency associated with the first order is less than the threshold, comparing, by at least one server, the sufficiency associated with the second order with the threshold, ignoring the first order, determining, by at least one server, that the sufficiency associated with the second order is greater than or equal to the threshold, as a result of determining that the sufficiency associated with the second order is greater than or equal to the threshold, communicating, by at least one server, the trading command to the second user, and receiving, by at least one server, an indication that the second user wants to trade with respect to the trading command, in response to communicating the trading command to the second user. The method of Supplementary Note 2 is a method including receiving, by at least one server, a first order and a second order for an item, wherein the first order is associated with a first user, the second order is associated with a second user, the first order and the second order have the same price associated therewith, the first order is received at a time earlier than the second order, a fulfillment is associated with the first order, a fulfillment is associated with the second order, the fulfillment associated with the second order is higher than the fulfillment associated with the first order, ordering, by at least one server, the second order before the first order in an order book based at least in part on the fulfillment associated with the second order being higher than the fulfillment associated with the first order, receiving, by at least one server, a command to buy and sell the item, communicating, by at least one server, the transaction command to the second user based at least in part on ordering the second order before the first order in the order book, and receiving, by at least one server, an indication that the second user wants to transact on the transaction command in response to communicating the transaction command to the second user.
Claims
1. receiving a first order and a second order for an item, the first order being associated with a first user and the second order being associated with a second user, the first order being received at a time prior to the second order; determining a fill level associated with the first order at the end of each successive first time interval, wherein at a given end of a given first time interval of the successive first time intervals, the fill level associated with the first order is updated to take into account a given first trade command during a given number of minutes, hours, days, or months immediately preceding the given end of the given first time interval, where the length of the first time interval is minutes, hours, days, or months, respectively; determining a fill level associated with the second order at the end of each successive second time interval, wherein at a given end of a given one of the successive second time intervals, the fill level associated with the second order is updated to take into account given second trade commands during a given number of minutes, hours, days, or months immediately preceding the given end of the given second time interval, where the length of the second time interval is minutes, hours, days, or months, respectively; receiving a trade command for the item; determining whether the fill level associated with the first order is less than a threshold; if determining that the fill level associated with the first order is less than the threshold, disregarding the first order and determining whether the fill level associated with the second order is greater than or equal to the threshold; communicating the trade command to a computer of the second user if the fill level associated with the second order is determined to be equal to or greater than the threshold; at least one computer configured to execute A system comprising:
2. receiving a first order and a second order for an item, the first order being associated with a first user and the second order being associated with a second user, the first order being received at a time prior to the second order; determining a fill level associated with the first order at the end of each successive first time interval, wherein at a given end of a given first time interval of the successive first time intervals, the fill level associated with the first order is updated to take into account a given first trade command during a given number of minutes, hours, days, or months immediately preceding the given end of the given first time interval, where the length of the first time interval is minutes, hours, days, or months, respectively; determining a fill level associated with the second order at the end of each successive second time interval, wherein at a given end of a given one of the successive second time intervals, the fill level associated with the second order is updated to take into account given second trade commands during a given number of minutes, hours, days, or months immediately preceding the given end of the given second time interval, where the length of the second time interval is minutes, hours, days, or months, respectively; determining whether the fill factor associated with the second order is greater than the fill factor associated with the first order; placing the second order in an order book in priority to the first order based, at least in part, on the fill factor associated with the second order being greater than the fill factor associated with the first order; receiving a trade command to buy or sell the item; communicating the trade command to a computer of the second user; at least one computer configured to execute A system comprising:
3. receiving a first order and a second order for an item, the first order being associated with a first user and the second order being associated with a second user, the first order being received at a time prior to the second order; determining a fill level associated with the first order at the end of each successive first time interval, wherein at a given end of a given first time interval of the successive first time intervals, the fill level associated with the first order is updated to take into account a given first trade command during a given number of minutes, hours, days, or months immediately preceding the given end of the given first time interval, where the length of the first time interval is minutes, hours, days, or months, respectively; determining a fill level associated with the second order at the end of each successive second time interval, wherein at a given end of a given one of the successive second time intervals, the fill level associated with the second order is updated to take into account given second trade commands during a given number of minutes, hours, days, or months immediately preceding the given end of the given second time interval, where the length of the second time interval is minutes, hours, days, or months, respectively; determining whether the fill factor associated with the second order is greater than the fill factor associated with the first order; placing the second order in an order book in priority to the first order based, at least in part, on the fill factor associated with the second order being greater than the fill factor associated with the first order; receiving a trade command to buy or sell the item; communicating the trade command to a computer of the second user; by at least one processor; The method includes:
Citation Information
Patent Citations
System for optimizing execution of trading order
JP2007280394A
Exchange transaction support device
JP2009217295A
Decentralized ranking and message matching
JP2011510373A
A multi-computer distributed processing method to prevent information leaks
JP2012515991A
Optimized order routing for electronic trading
US20070174176A1