Distributed matching engine
Patent Information
- Application Number
- JP2026099256
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2013-03-15
- Filing Date
- 2026-06-15
- Publication Date
- 2026-08-27
Smart Images

Figure 2026137721000001_ABST
Abstract
Description
Technical Field
[0001] Cross - Reference to Related Applications This application claims the benefit of U.S. Provisional Application No. 61 / 737,553, filed December 14, 2012, and U.S. Application No. 13 / 832,472, filed March 15, 2013, both to Jacob Loveless, which are hereby incorporated herein by reference in their entirety.
[0002] Some embodiments relate to matching and / or trading items.
Background Art
[0003] Systems can be used for electronic matching and / or trading of items among users.
Brief Description of the Drawings
[0004] [Figure 1] An exemplary distributed matching engine according to some embodiments is shown.
Best Mode for Carrying Out the Invention
[0005] 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. The 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 other types of computing systems may be used.
[0006] Each server 101-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 allow the servers to connect to and communicate through network 110. Network 110 may include public and / or secret networks, and may be wired and / or wireless networks based on any kind of technology. Network 110 may also include bus and / or backplane architectures. Network 110 may include one or more elements, including routers, switches, etc. Network 110 may be configured to allow at least each of the servers 101-106 to communicate with the others. Network 110 may also be configured to allow servers 101-106 to communicate with other computing systems (e.g., computing system 150) that may be on network 110 or on other networks not shown in Figure 1 but accessible through network 110. In one embodiment, network 110 may be a secret network interfaced with, for example, one or more other secret and / or public networks via one or more routers / switches / etc., thereby enabling, for example, one of servers 101-106 to communicate with other computing systems on such a network. One or more of servers 101-106 and 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 trusted or untrusted. Those skilled in the art will understand that the above description of servers 101-106 and network 110 is merely illustrative and that further and / or other server / network configurations and functionalities 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 or communicate through one or more other public and / or secret networks not shown in Figure 1.
[0007] One or more of the servers 101-106 in system 100 may be configured similarly and / or substantially similarly 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(s). Similarly, the ability of one or more of the servers 101-106 to communicate with any other servers via network 110 may be the same. One or more of the servers 101-106 may be located in the same location within the same rack, room, building, etc. In addition, the network elements that make up network 110 may also be located in the same location together with the servers 101-106. Again, further and / or other configurations are possible. For example, each server may have different performance capabilities.
[0008] System 100 may be referred to as a cloud computing system. System 100 may 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 to F. Users A to F may be individuals and / or corporations such as banks, investment funds, trading companies, etc. Alternatively and / or in addition, one or more of Users A to F may own the resources of System 100. In one embodiment, Server 101 may be leased to or owned by User A, Server 102 may be leased to or owned by User B, Server 103 may be leased to or owned by User C, Server 104 may be leased to or owned by User D, Server 105 may be leased to or owned by User E, and / or Server 106 may be leased to or owned by User F. Generally, each server 101-106 may be assigned to a specific user who has access to the resources of that server. A given user may be associated with / lease / own multiple servers within system 100. In one embodiment, system 100 may be expandable by adding further servers to the system, which may be leased or owned by users A-F and / or new users. System 100 may be configured such that the addition and / or removal of one or more servers does not affect other users. In another embodiment, a given server may be leased / rented to multiple different users who are not associated with each other. A server may be configured such that the use of a server by one user does not affect other users, and vice versa.
[0009] In one embodiment, system 100 may operate and / or be configured as a trading or matching system, and in particular as a decentralized trading / matching system, enabling users such as users A to F to trade and / or buy and sell one or more items with each other. Items(s) traded on system 100 may be owned by one or more of the system's users A to F. Alternatively and / or in addition, one or more of users A to F may be a leader and / or broker and / or agent, and may act, for example, on behalf of an entity(s) that may own items(s). Items traded may include tangible and / or intangible items. In one embodiment, system 100 may be configured to trade one or more financial instruments, including, for example, fixed-income securities, stocks, foreign exchange, etc. Therefore, each user A through F may use System 100 to trade one or more financial instruments with one or more other users of the System. A person skilled in the art will understand that other kinds of items, such as real estate (e.g., land, houses, and / or buildings), consumer goods (e.g., automobiles, electronic devices), tickets (e.g., aircraft, concerts), etc., may be traded and / or bought and sold through System 100. A person skilled in the art will understand that, in addition to and / or as an alternative to a trading or matching system, System 100 may operate as / be configured as another type of system.
[0010] One or more of the servers 101-106 may also include one or more applications 120a-f running thereon (e.g., stored in memory). In one embodiment, applications 120a-f may be referred herein as matching engines, although other and / or further types of applications are possible. Matching engines 120a-f may enable users A-F to buy / sell items to each other. Matching engines 120a-f may be software and / or firmware and / or hardware-based applications running on servers 101-106. Each server may include one and / or more matching engines. Each server may include further and / or other applications. The matching engines(s) of each server 101-106 may be the same and / or substantially the same application, or they may be different applications. For example, each matching engine may execute a similar matching algorithm. In another embodiment, different matching engines may execute different matching algorithms. Matching engines 120a-f may be developed and maintained by the entity(s) that own / operate system 100. Such entities may also develop and maintain other and / or further applications running on each server.
[0011] Each server may also include one or more applications 122a-e running there, associated with users such as users A-E (for example, stored in memory). In one embodiment, applications 122a-e may be referred to herein as trading applications, although other and / or further types of applications are possible. According to another embodiment, one or more trading applications (e.g., application 122f) may not run on servers 101-105. Rather, the applications may run on a computing system such as computing system 130, which is connected to a server such as server 106. Computing system 130 may or may not be located in the same location as server 106 and / or other elements of system 100. Computing system 130 and server 106 may communicate through one or more secret and / or public networks 131. In another embodiment, computing system 130 and server 106 may communicate through network 110. According to one embodiment, computing system 130 may be owned and operated by the entity that owns and operates system 100. In another embodiment, the computing system 130 may be owned and operated by a user (here, user F) associated with the server to which the computing system connects. Those skilled in the art will understand that these configurations are merely embodiments and that other and / or further 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 further and / or other applications associated with users such as users A-F.
[0012] In one embodiment, each trading application 122a-f may be configured to communicate with matching engines 120a-f, thereby enabling users A-F of system 100 to trade items. Each trading application 122a-f may be an automated trading algorithm that executes a trading strategy, thereby generating trading orders (e.g., bids, winning bids, matches, sales) on behalf of each user A-F. Each trading application(s) on a given server may be configured to trade one or more items. Each trading application 122a-f may be a software and / or firmware and / or hardware-based application that runs on each respective server 101-105 / computing system 130. Each trading application may be different from other trading applications and may be developed by the user to which each server is assigned. For example, user A may develop trading application 122a and load / have loaded that application onto server 101 on which the application runs (e.g., through a management application). Similarly, user B may develop a trading application 122b and load / have loaded that application onto the server 102 on which the application runs (e.g., through a management application). In addition and / or another embodiment, trading applications 122a-f may be general applications (such as APIs) provided by the entity(s) that own / operate system 100. In each instance, each user A-F may customize their respective applications to meet their respective needs (e.g., the user connects to their respective server, etc., via a remote computing system from their respective server, via a management application, and / or via a user interface device (keyboard / mouse, etc.), through an API that interfaces with the respective server). Those skilled in the art will understand that these configurations are merely embodiments and other and / or further configurations are possible.For example, rather than trading applications 122a-f, which are automated trading algorithms that execute trading strategies, one or more of the trading applications 122a-f may allow each user(s) to interface with system 100 and generate orders. For example, each user (connected to their respective server, etc., via a remote computing system and / or a user interface device (keyboard / mouse / etc.)) may be able to manually submit orders to their respective matching engines on the server.
[0013] As can be considered, matching engines 120a-f, along with their respective trading applications 122a-f, can enable users A-F to trade items with one another on each server. In one embodiment, a single instance of the matching engine may be configured to trade one specific item (e.g., a 10-year record). Thus, if given users A-F wish 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 communicating with one or more instances of their respective trading applications 122. In another embodiment, a single instance of the matching engine may be configured to trade multiple items, and the matching engine may communicate with one or more instances of their respective trading applications. Those skilled in the art will understand that these are merely embodiments and that other and / or further configurations are possible. For example, if a given server is used by multiple different users, the server may have multiple instances of the matching engine configured to trade the same item but for different users. For the purpose of analysis only, the matching engine 120 will be described as enabling the trading of a single item.
[0014] In one embodiment, for a given users A to F who wish to trade a given item, the matching engines 120a to f of each server may maintain / be configured to maintain order books 124a to f for that item on the server. In one embodiment, each order book may be maintained in the memory of each server. For example, if each of users A to E wishes to trade a given item, each server 101 to 105 may have order books 124a to e for that item. If user F does not wish to trade the item, server 106 may not have an order book for that item. In this way, the order books for a given item may be distributed or decentralized across multiple servers. Similarly, if each of users A to E also wishes to trade a second item, the matching engines 120a to e of each 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 further and / or other order book configurations are possible.
[0015] In a further embodiment, for each item that can be traded through system 100, that item may be assigned a port (e.g., an Internet Protocol (IP) port) or channel on network 100. For example, the first item may be assigned port "x", the second item may be assigned port "y", and so on. As further considered herein, partial or all communication between servers 101-106 over network 110 regarding the first item may occur via port "x", and similarly, partial or all communication between servers 101-106 over network 110 regarding the second item may occur via port "y". In a further embodiment, if a given user (here referred to as A) wishes to trade the first and second items, server 101 / matching engine(s) 120a may 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 / receive information / data about two items (for example, through trading application 122a). Similarly, if user A wishes to trade the first item but not the second item, server 101 / matching engine(s) 120a may be configured to send and / or receive (and / or listen to, monitor, etc.) messages / commands / information / data on port "x" but not on port "y". In this way, 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 wishes to receive information on the second item (for example, through trading application 122a), server 101 / matching engine(s) 120a may be configured to send and / or receive (and / or listen to, monitor, etc.) messages on port "y".In one embodiment, trading applications 122a-f may determine (possibly through user control) which items are traded and / or not traded, and in this manner, they may control the configuration of each server / matching engine(s) with respect to which ports(s) are monitored and for which items the order book is maintained. In another embodiment, a user may control the configuration of each server / matching engine(s) with respect to which ports(s) are monitored and for which items the order book is maintained, for example, through an API that interfaces with each server (for example, through a management application via a remote computing system connected to each server, etc., via a user interface device (keyboard / mouse, etc.)).
[0016] According to the exemplary operation of system 100, if a user / trading application such as user A / trading application 122a is interested in trading a given item (here referred to as item "w"), user A / trading application 122a may generate a bid order or winning bid order (the order including price and / or size) for item "w". Trading application 122a may forward the order to the matching engine 120a, which may place the order in the order book 124a (i.e., the order book on server 101 for item "w"). This order is shown as order 140 in order book 124a in Figure 1. According to the exemplary operation of system 100, since user A has generated order 140, the matching engine 120a may take action to control the execution of order 140 (for example, by matching a reverse order against order 140). Following a more exemplary operation of system 100, matching engine 120a may also multicast order 140 over network 110 via a port assigned to item "w". The multicast order may include several indicators originating from user A / trading 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 is therefore configured to receive on the port for that item, each matching engine may receive order 140 and place an order in its respective order book for the item. For example, user B / trading application 122b and user C / trading application 122c may be interested in item "w", and therefore 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 Figure 1 by 140' and 140''). Similarly, matching engines 120b and 120c may be configured to receive the order if user A / trading application 122a / matching engine 120a / and / or several indicators originating from server 101 can be recorded. Matching engines 120b and 120c may also transfer information about order 140 to trading applications 122b and 122c and / or users B and C, respectively. Order 140 may be made known to users B-C / trading applications 120b-c, but the origin of the order (i.e., user A's ID) may or may not be made known, depending on whether system 100 is an anonymous matching system.
[0017] Similarly, if user B / trading application 122b generates an order for item "w", trading application 122b may forward the order to matching engine 120b, which may place the order in order book 124b (i.e., the order book at server 102 for item "w"). This order is shown in Figure 1 as order 142 in order book 124b. Since user B generated order 142, matching engine 120b may take action to control the execution of order 142 (e.g., matching a reverse order against order 140). Matching engine 120b may also multicast order 142 over network 110 via the port assigned to item "w". The multicast order may contain several markings indicating that it originates from user B / trading 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 is therefore configured to receive on the port for that item, each matching engine may receive order 142 and place an order in its respective order book for the item. For example, as considered, since user A / trading application 122a and user C / trading 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 Figure 1 by 142' and 142''). Similarly, matching engines 120a and 120c may record some indication that the order originates from user B / trading application 122b / matching engine 120b and / or server 102. Matching engines 120a and 120c may also forward the information of order 142 to trading applications 122a and 122c and / or users A and C, respectively.
[0018] According to a more exemplary operation of system 100, if user A / trading application 122a later cancels all or part of order 140, it may generate a cancel command for the order, which may be forwarded to matching engine 120a. Matching engine 120a can then cancel the order from its order book 124a and can also multicast the cancel command over network 110 via the port assigned to item "w". The cancel command may include some indication that it originates from user A / trading application 122a / matching engine 120a and / or server 101, so that other servers can know which order the cancel command refers to. For each other user / server that may be interested in item "w" and is therefore configured to receive on the port for that item, each matching engine may receive the cancel command and cancel the respective order from its respective order book. For example, matching engines 120b~c may receive the cancel command and cancel order 140 from order books 124b~c. Matching engines 120b-c may also notify trading applications 122b-c and / or users B and C that order 140 is unavailable.
[0019] Assuming that the bid / winning order 140 from A has not been canceled, user B / trading application 122b may, for example, generate a trading command / reverse order / opposite order for the order (the relevant / sales command may include price and size) (in another embodiment, the trading command may be a bid or winning order that intersects / matches order 140 at a specific price, etc.). Trading application 122b may forward the trading command to matching engine 120b, which may search its order book 124b for matching orders, and may recognize / determine that the command matches at least order 140 from user A (matching engine 120b, recognizing that order 142 originates from user B, does not need to attempt to match the trading command to order 142). In response, matching engine 120b may multicast the trading command over network 110 via the port assigned to item "w". In addition to adding some markings that this trading command originates from, for example, User B / trading application 122b / matching engine 120b / and / or server 102, as described, matching engine 120a may be involved in executing on an order originating from User A / server 101, so the trading command can specifically be tagged / specified / directed to User A / trading application 122a / server 101 / and / or matching engine 120a. A person skilled in the art will understand that by other means, it is possible to notify matching engine 120a that the trading command is for an order that matching engine 120a may be involved in executing on. Following one exemplary operation of system 100, other servers / matching engines may receive multicast trading commands (e.g., one listening on the port assigned to item "w") and may ignore commands that they recognize as being specified to User A / trading 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 trading commands and provide notifications of possible trades to their respective trading applications and / or users. According to one embodiment, the actual trading commands may be encrypted.
[0020] In a further embodiment, if additional orders exist in order book 124b that are not of user B, and the trading commands from user B / trading application 122b are in the order of more than 140 orders, and / or thereby for these other orders, matching engine 120b may also multicast the additional trading commands (tagged to servers etc. involved in the additional orders) over network 110 via the port assigned to item "w". Alternatively, matching engine 120b may use the same trading commands tagged to user A / trading application 122a / server 101 / and / or matching engine 120a, and also tag them to servers etc. involved in the additional orders. Those skilled in the art will understand that other variations are possible.
[0021] Upon receiving a trade command, server 101 / matching engine 120a may recognize that the command is tagged. Matching engine 120a may then determine if order 140 is still available (e.g., whether it has not been canceled and / or executed against by another user, whether it still exists in order book 124a, etc.). If it is still available, matching engine 120a may execute a trade command against order 140 by removing order 140 from order book 124a (or, if none have been executed against, by reducing the available quantity of order 140 in the order book). Matching engine 120a may also communicate with trading application 122a and / or user A to indicate that an execution has been performed against order 140. Furthermore, matching engine 120a may multicast a trade confirmation message over network 110 via the port assigned to item "w". The structured message may include an indicator of the quantity of order 140 actually executed against it. The confirmation message may be specifically tagged to user B / trading application 122b / matching engine 120b / and / or server 102. Upon receiving the confirmation message, matching engine 124b may delete order 140 (or part thereof) from its order book 124b and also notify user B and / or trading 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 cause their respective matching engines to delete order 140 (or part thereof) from their order books. Such matching engines may also notify their respective users and / or trading applications of the matched order. That is, matching engine 120c may delete order 140 from its order book 124c and also notify trading application 122c and / or user C.According to another and / or further embodiment, in addition to multicasting confirmation messages to matching engine 120a, it may multicast several other commands (such as cancellation commands) causing other matching engines (e.g., engine 120c) to remove order 140 from their order book. Those skilled in the art will understand that other and / or further command sequences may be used.
[0022] In another embodiment, as considered above, when matching engine 120a receives a trading command from user B, if it determines that order 140 is not yet available (e.g., it has been canceled and / or has already been executed on the order by another user), it may multicast a message (which may be specifically tagged to user B / trading application 122b / matching engine 120b / and / or server 102) specifically indicating a cancellation message and / or that the trade is unconfirmed and / or that the trade has failed and / or that the trade was not completed. Regardless, the effect of the message(s) may be for all applicable matching engines to remove order 140 from their respective order books. Again, each trading application and / or user may be notified by their respective matching engine that command 140 is unavailable. Trading application 122b and / or user B may be specifically notified that the trade has failed.
[0023] According to another embodiment, after the matching engine 120a has determined that order 140 is still available, as considered above, the matching engine 120a may first communicate with the trading application 122a and / or user A to determine if there is still a request to execute for order 140. If so, the matching engine 120a may proceed as considered above with respect to generating a confirmation message, etc. Otherwise, the matching engine 120a may remove order 140 from its order book 124a and then proceed as considered above with respect to generating a cancellation and / or unconfirmed message, which may result in order 140 being removed from other order books. Again, each trading application / user on other servers may be notified by their respective matching engines that command 140 is unavailable. They may also be notified that order 140 is pending, but that each sender of the order (i.e., user A) no longer wishes to perform any action on the order. A person skilled in the art will understand that, regardless of whether order 140 is performed or not, other and / or further message flows are possible.
[0024] 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 via 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 arrives at server 101 first, each may necessarily queue 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 arrives at server 101 first (assuming both users attempt to execute the full-scale order 140). Matching engine 120a may, for example, send an acknowledgement for the other transaction commands. As another example, one of the transaction commands from 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.
[0025] 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.
[0026] Following further exemplary features, system 100 can eliminate the need to create drop copies. For example, in a matching engine 120a that generates transaction confirmation messages as described herein, other computing systems (represented by computing system 150) connected to network 110 can receive these messages, in addition to other matching engines 120b-f that may receive these messages and update their respective order books 124b-f. These other computing systems may or may not be associated with users / customers requesting to use system 100 for transaction items. For example, computing system 150 may be associated with a clearinghouse that can clear transactions such as the exemplary transaction between users A and B considered herein.
[0027] According to further exemplary features of system 100, for example, if a trading application (such as application 122e) starts to submit 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 offline can include, for example, considering the entire server 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 for ports associated with items, receive on ports, or transmit via ports. 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 for ports associated with items or receive on ports, 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.
[0028] This disclosure is described with respect to certain embodiments, but in general, related methods, alternatives, and rearrangements of 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.
[0029] The following sections provide guidance in interpreting this specification.
[0030] I.Terms The term "product" means the machine, manufacture, and / or composition of the thing unless otherwise explicitly stated.
[0031] The term "process" means a process, algorithm, method, etc., unless otherwise explicitly stated.
[0032] Each process (whether called a method, algorithm, or otherwise) essentially comprises one or more steps, and therefore any reference to a “step” (singular or plural) of a process has essential prior ground in a mere description of a process or a mere description of a term such as “process.” Thus, any reference to a “step” (singular or plural) of a process in a claim has sufficient prior ground.
[0033] Unless otherwise explicitly stated, terms such as "invention" mean "one or more inventions disclosed herein."
[0034] The terms "a certain embodiment," "embodiment," "multiple embodiments," "the embodiment," "multiple embodiments," "one or more embodiments," "several embodiments," "a given embodiment," "one embodiment," and "another embodiment" all mean "one or more (but not all) embodiments of the invention" unless otherwise explicitly stated.
[0035] The term "modification" in this invention means embodiments of the invention unless otherwise explicitly stated.
[0036] 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 that matter.
[0037] An indicator of an event may include an electronic message that identifies the event (e.g., identification of a widget by a serial number attached to the widget, identification of a widget by one or more of the widget's characteristics). An indicator of an event may include information that can be used to calculate and / or refer to the event (e.g., information that identifies the machine that a widget is part of which can be used to determine the widget). An indicator of an event may specify events related to the event (e.g., characteristics of the event, the name of the event, the name of events related to the event). An indicator of an event may not specify events related to the event (e.g., the letter "a" could be an indicator of a widget in a computer system configured to interpret the letter "a" to identify the widget). An indicator of an event may include signs, cues, and / or tokens of the event. An indicator may include, for example, codes, references, examples, links, signals, and / or identifiers. An indicator of an event may include information that represents, describes, and / or is otherwise particularly associated with the event.
[0038] A transformation of an index of an event can be an index of an event (for example, an encrypted index of an event can be an index of an event). An index of an event may include the event itself, a copy of an event, and / or a part of an event. An index of an event may be meaningless for an event that is not configured to understand the index (for example, a person may not understand that the letter "a" indicates a widget, but a computer system may determine from the letter "a" that it is a widget, and therefore it can still be an index of a widget). It should be understood that an index of an event may be used to determine that an event does not mean that an event or anything else is determined. An index of an event may include any number of indexes of an event unless otherwise specified. An index of an event may include indexes of other events (for example, an electronic message indicating many events). (The term "indicator" can be used very broadly in the language of the claims. For example, receiving an indicator of a financial instrument.)
[0039] The term “represent” means (1) to function in the manner that a word, sign, or similar thing does; (2) to represent or specify by several terms, letters, signs, or similar things; (3) to depict, portray, or present something in the manner that a photograph does; or (4) to function as a sign or symbol itself.
[0040] References to "other embodiments" in describing embodiments do not imply that the referenced embodiment is mutually exclusive with other embodiments (for example, embodiments described before the referenced embodiment) unless otherwise explicitly stated. Similarly, the mere fact that two (or more) embodiments are referenced does not imply that these embodiments are mutually exclusive.
[0041] One embodiment of the present invention may include, encompass, or include two or more other embodiments of the present invention. For example, a first embodiment including elements a, b, and c may encompass a second embodiment including elements a, b, c, and d, and a third embodiment encompassing elements a, b, c, and e. Similarly, each of the first, second, and third embodiments may encompass a fourth embodiment including elements a, b, c, d, and e.
[0042] The terms “includes,” “equipped with,” and their variations mean “includes, but not necessarily limited to,” unless otherwise explicitly stated. For example, the sentence “The machine includes the red widget and the blue widget” means that the machine includes the red widget and the blue widget, but may also include one or more other items.
[0043] The phrase "consists of" and its variations mean "includes and is limited to" unless otherwise explicitly stated. For example, the sentence "The machine consists of a red widget and a blue widget" means that the machine includes a red widget and a blue widget, but does not include anything else.
[0044] The term “to constitute” and its variations mean “to make up its components, parts, or elements,” unless otherwise explicitly stated. For example, the sentence “The red widget and the blue widget constitute the machine” means that the machine includes the red widget and the blue widget.
[0045] The term "exclusively constitutes" and its variations mean "only the constituent parts or elements that exclusively make up that component," unless otherwise explicitly stated. For example, the sentence "The red widget and the blue widget exclusively constitute the machine" means that the machine consists only of the red widget and the blue widget (i.e., nothing else).
[0046] The terms “a,” “an,” and “the” refer to “one or more” unless otherwise explicitly stated. For example, the phrase “widget” means “one or more widgets” unless otherwise explicitly stated. Similarly, the phrase “widget” followed by a series of “widget” phrases means “one or more widgets.” Therefore, it should be understood that the words “the” can also refer to specific terms with prior evidence. For example, if a paragraph states “a particular single feature” and then refers to “the feature,” then it should be understood that the phrase “the feature” refers to the “particular single feature” mentioned earlier (it should be understood that “a” in “a particular single feature” refers to “one” specific single feature, not “one or more” specific single features).
[0047] The term "plural" means "two or more" unless otherwise explicitly stated.
[0048] The term “in this specification” means “in this specification, including any matters that may be incorporated by reference,” unless otherwise explicitly stated.
[0049] The phrase "at least one of" means any combination of one or more of the things (a list of things) when such a phrase modifies multiple things, unless otherwise explicitly stated. For example, the phrase "at least one of the widget, car, and steering wheel" means any of (i) a widget, (ii) a car, (iii) a steering wheel, (iv) a widget and a car, (v) a widget and a steering wheel, (vi) a car and a steering wheel, or (vii) a widget, a car, and a steering wheel. The phrase "at least one of" does not mean "one of each" of the multiple things when such a phrase modifies multiple things. For example, the phrase "at least one of the widget, car, and steering wheel" does not mean "one widget, one car, and one steering wheel."
[0050] Numerical terms such as "one" and "two" are used as a base to indicate some quantity (e.g., one widget, two widgets). When these numerical terms are used, they mean the quantity indicated by the numerical term, but not at least the quantity indicated by the numerical term. For example, the phrase "one widget" does not mean "at least one widget," and therefore, the phrase "one widget" does not encompass, for example, two widgets.
[0051] The phrase "based on" does not mean "based solely on" unless otherwise explicitly stated. In other words, the phrase "based on" encompasses both "based solely on" and "based at least on." The phrase "based at least on" is equivalent to the phrase "based at least partially on." For example, the phrase "element A is calculated based on elements B and C" encompasses embodiments in which element A is calculated as the product of B multiplied by C (i.e., A = B × C), embodiments in which A is calculated as the sum of B plus C (i.e., A = B + C), embodiments in which A is calculated as the product of B multiplied by C multiplied by D, embodiments in which A is calculated as the sum of the square roots of B plus C plus D multiplied by E, and so on.
[0052] Terms such as "represent" are not exclusive unless otherwise explicitly stated. For example, the term "represent" does not mean "represent only" unless otherwise explicitly stated. For instance, the phrase "the data represents a credit card number" encompasses both "the data represents only a credit card number" and "the data represents a credit card number, and the data also represents something else."
[0053] The term "therefore" is used herein only to precede any clause or other set of words that express only an intended result, purpose, or consequence of something explicitly stated before the term "therefore." Therefore, where the term "therefore" is used within a claim, the clause or other words it modifies do not establish any further limitation to the claim, nor limit the claim or its meaning.
[0054] The terms “for example,” “e.g.,” and similar terms mean “to give an example,” and therefore do not limit the terms or phrases they describe. For example, in the sentence “A computer transmits data (e.g., instructions, data structures) over the internet,” the term “for example” explains that “instructions” are an example of “data” that a computer can transmit over the internet, and also explains that “data structures” are an example of “data” that a computer can transmit over 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.”
[0055] The term "each" and similar terms mean "individually." Therefore, when two or more things each have characteristics, each of these things has its own characteristics, and these characteristics may or may not be different from one another. For example, the phrase "each of the 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.
[0056] The term "that is" and similar terms mean "in other words" and therefore limit the term or phrase they describe. For example, in the sentence "Computers transmit data (i.e., instructions) over the internet," the term "that is" describes the "instructions" as the "data" that computers transmit over the internet.
[0057] A numerical range includes integers and non-integers within that range unless otherwise explicitly stated. For example, the range "1 to 10" includes integers (e.g., 1, 2, 3, 4, ..., 9, 10) and non-integers (e.g., 1.0031415926, 1.1, 1.2, ..., 1.9) from 1 to 10.
[0058] When two or more terms or phrases are synonymous (for example, due to an explicit indication that the terms or phrases are synonymous), one instance of such a term or phrase does not imply that another such term or phrase must have a different meaning. For example, if a sentence indicates that the meaning of “includes” is synonymous with “includes but not limited to,” then the mere use of the phrase “includes but not limited to” does not imply that the term “includes” means anything other than “includes but not limited to.”
[0059] II. Make a decision The term “determining” and its grammatical variations (e.g., determining a price, determining a value, determining an object that meets certain criteria) are used in a very broad sense. Because the term “determining” encompasses a wide range of actions, it can include calculating, calculating, processing, deriving, examining, referencing (e.g., referring to a table, database, or another data structure), rendering to an electronic format or digital representation, identifying, etc. “Determining” can also include receiving (e.g., receiving information), accessing (e.g., accessing data in memory), etc. Furthermore, “determining” can also include resolving, selecting, choosing, establishing, etc.
[0060] The term "determine" does not imply certainty or absolute accuracy, and therefore "determine" can include estimating, inferring, predicting, estimating, etc.
[0061] The term "decide" does not imply that mathematical processing must be performed, that numerical methods must be used, or that algorithms must be used.
[0062] The term "decide" does not imply that a specific device must be used. For example, a computer does not necessarily have to perform the decision-making process.
[0063] The term “determine” may include “calculate.” The term “calculate” should be understood to include performing one or more calculations. Calculating may include calculating, processing, and / or deriving. Calculation can be performed by a computing device. For example, calculating an object may include a computer processor applying an algorithm to data and producing the object as the processor’s output.
[0064] The term “determine” may include “referencing.” The term “referencing” should be understood to include making one or more references to, for example, things. Referencing may include querying, accessing, selecting, choosing, reading, and / or retrieving. Referencing operations may be performed by computing devices. For example, referencing something may include reading the memory location where the thing is stored by the processor.
[0065] The term “determine” may include “receive.” For example, receiving an event may include taking in an event. In some embodiments, receiving may include operations performed to take in an event, such as operating a network interface through which the event passes and is taken in. In some embodiments, receiving may occur without operations performed to take in an event, such as direct memory writing or hardwired circuitry. Receiving an event may include receiving an event from a remote source that may have calculated the event.
[0066] III. Form of text If the limitation of the first claim includes one or more of the features (for example, a limitation such as "at least one widget" includes one or more widgets), and in a second claim dependent on the first claim, if 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 or more widgets).
[0067] When ordinal numbers (such as "first," "second," "third," etc.) are used as adjectives before a term, the ordinal number (unless otherwise explicitly stated) is simply used to indicate a particular feature, such as to distinguish it from another feature described by the same or similar term, but the ordinal number is merely a designation for convenience and has no other meaning or limiting effect. For example, "first widget" may have such a name simply to distinguish it from, for example, "second widget." Therefore, simply using the ordinal numbers "first" and "second" before the term "widget" does not indicate any other relationship between the two widgets, nor does it indicate any 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 any widget precedes or follows any other widget, (2) that any widget occurs or operates before or after any other widget in time, or (3) that any widget is ranked higher or lower than any other widget in terms of importance or quality. The mere use of ordinal numbers does not define numerical limitations on the features identified using ordinal numbers. 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.
[0068] Where a single device, article, or other product is described herein, in other embodiments, two or more devices or articles (whether or not they work together) may be used instead of the single device or article described. Thus, in other embodiments, a function described as being processed by a device may be owned by two or more devices or articles (whether or not they work together) instead.
[0069] Similarly, where two or more devices, articles, or other products are described herein (whether they work together or not), in another embodiment, a single device or article may be used instead of the two or more devices or articles described. For example, multiple computer-based devices may be replaced by a single computer-based device. In some embodiments, such multiple computer-based devices may work together to perform one step of a process, such as that which is common in grid computing systems. In some embodiments, such multiple computer-based devices may work together to perform one step of a process, such as that which is common in cloud computing systems, providing additional functionality to one another. (Conversely, a single computer-based device may be replaced by multiple computer-based devices working together. For example, a single computing device may be replaced by servers and workstations communicating with each other over the Internet.) Thus, various functions described as being handled by two or more devices or articles may, instead, be owned by a single device or article.
[0070] The functions and / or features of a single device described may, in other embodiments, be implemented by one or more other devices that are described but not explicitly stated to have such functions or features. Therefore, other embodiments do not necessarily have to include the described device itself, but rather may include one or more other devices having such functions or features in these other embodiments.
[0071] IV. The examples and terms disclosed are not restrictive. Neither the title (as presented at the beginning of the first page of this specification) nor the abstract (as presented at the end of this specification) should be construed as limiting the scope of the disclosed invention, nor should they be used in interpreting the meaning of any claim, nor should they be used to limit the scope of any claim. The abstract is included herein solely because it is required under 37.CFR 1.72(b).
[0072] The headings of the sections provided herein are for convenience only and should not be construed as limiting the disclosure.
[0073] Many embodiments are described herein and presented for illustrative purposes only. The embodiments described are not and are not intended to be limiting. The disclosed invention is broadly applicable to many embodiments, as is readily apparent from this disclosure. Those skilled in the art will understand that the disclosed invention may be practiced with various modifications and changes, such as structural, logical, software, and electrical modifications. Certain 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 the use in one or more specific embodiments or drawings described by reference unless otherwise explicitly stated.
[0074] One embodiment may be disclosed as including several features, but other embodiments of the present invention may include fewer features than all of these features combined. For example, one claim may also relate to fewer features than the entire set of features in the disclosed embodiment, and such a claim will not be construed as requiring features other than those expressly described in the claim.
[0075] Embodiments of method steps or product elements described herein do not constitute the claimed invention, are not essential to the claimed invention, or have the same scope as the claimed invention unless they are expressly described herein as such or expressly described within the claims (with respect to the claims and the invention as defined by those claims).
[0076] Any preamble in the claims that includes any classification other than a legal classification shall be construed as to include the object, advantages and possible uses of the claimed invention, and such preamble shall not be construed as limiting the claimed invention.
[0077] This disclosure is not a literal description of all embodiments of the invention. Nor is this disclosure a list of features of the invention that are necessary to be present in all embodiments.
[0078] Not all disclosed embodiments are necessarily covered by the claims (even if all reserved, amended, published, and withdrawn claims are included). In addition, disclosed embodiments may be covered by some claims (but are not necessarily required). Therefore, if one claim (regardless of whether it is reserved, amended, published, or withdrawn) relates to a particular embodiment, this is not evidence that the scope of other claims does not relate to that embodiment.
[0079] Devices described as communicating with each other do not need to communicate with each other continuously unless otherwise explicitly stated. Conversely, such devices only need to transmit to each other as necessary or desired, and do not actually need to exchange data for most of the time. For example, a machine communicating with another machine over the internet does not need to transmit data to the other machine for long periods (e.g., several weeks at a time). In addition, devices communicating with each other may communicate directly or indirectly through one or more intermediaries. Devices are communicating with each other if they can communicate with each other in at least one direction. For example, device 1 is communicating with device 2 if device 1 can transmit information to device 2. Similarly, device 2 is communicating with device 1 if device 2 can receive information from device 1.
[0080] A 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 in order to illustrate the wide range of possible embodiments of the invention. Unless otherwise expressly stated, components or features are not essential or required.
[0081] Process steps, algorithms, etc., may be described or requested in a specific sequential order, but such processes can be configured to work in a different order. In other words, any order or sequence of steps that may be explicitly described or requested does not necessarily imply that the steps must be performed in that order. The steps of the processes described herein may be performed in any possible order. Furthermore, several steps may be performed simultaneously, even if they are not described or implied to be performed simultaneously (for example, because one step is described after another). Moreover, the examples of processes described in the drawings do not imply that the illustrated processes exclude other variations and modifications, that any of the illustrated processes or their steps are necessary for the invention, or that the illustrated processes are preferred.
[0082] While a process may be described as involving multiple steps, this does not imply that all or any of the steps are preferred, essential, or required. Various other embodiments within the scope of the invention include other processes that omit some or all of the steps described. Unless otherwise explicitly stated, no step is essential or required.
[0083] A process can be described in isolation, that is, without reference to other products or methods; however, in one embodiment, the process may interact with other products or methods. For example, such interaction may include linking one business model to another. Such interaction can be provided to improve the flexibility or desirability of the process.
[0084] A product may be described as comprising multiple components, aspects, quantities, characteristics, and / or features, without indicating that some or all of these multiples 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 multiples described.
[0085] An enumeration of items (some numbered, some unnumbered) does not imply that any or all of the items are mutually exclusive unless otherwise explicitly stated. Similarly, an enumeration of items (some numbered, some unnumbered) does not imply that any or all of the items encompass any category unless otherwise explicitly stated. For example, the enumeration "Computers, laptops, and PDAs" does not imply that any or all of the three items in that list are mutually exclusive, nor does it imply that any or all of the three items in that list encompass any category.
[0086] The enumeration list of items (some numbered, some not) does not imply that any or all of the items are equivalent to or readily interchangeable with one another.
[0087] All embodiments are illustrative and, in some cases, do not imply that the present invention or any of its embodiments were created or practiced.
[0088] V. Computing Those skilled in the art will readily understand that the various processes described herein may be carried out, for example, by appropriately programmed general-purpose computers, dedicated computers, and computing devices. Typically, a processor (e.g., one or more microprocessors, one or more microcontrollers, one or more digital signal processors) receives instructions (e.g., from memory or similar devices), executes those instructions, and thereby performs one or more processes defined by the instructions. Instructions can be carried out, for example, by one or more computer programs, one or more scripts.
[0089] The term "computation" shall mean deciding to use a processor with respect to a software algorithm.
[0090] "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 the architecture (e.g., chip-level multiprocessing or multicore, RISC, CISC, microprocessors without interlocked pipeline stages, pipeline configurations, simultaneous multithreading, microprocessors with integrated graphics processing units, GPGPUs).
[0091] "Computing device" means one or more microprocessors, central processing units (CPUs), computing devices, microcontrollers, digital signal processors, graphics cards, mobile gaming devices, similar devices, or any combination thereof, regardless of architecture (e.g., chip-level multiprocessing or multicore, RISC, CISC, microprocessors without interlocked pipeline stages, pipeline configurations, simultaneous multithreading).
[0092] Therefore, a description of a process is also a description of an apparatus for carrying out the process. An apparatus for carrying out a process may include, for example, a processor and input / output devices suitable for carrying out the process. For example, a description of a process is a description of an apparatus comprising a processor and memory that stores a program containing instructions that, when executed by the processor, instruct the processor to carry out a method.
[0093] The apparatus for performing a process may include, for example, multiple computing devices working together to perform the process. Some of these computing devices may work together to perform each step of the process, some may work for separate steps of the process, and some may provide underlying services to other computing devices that facilitate the execution of the process. Such computing devices may operate under central authority. In another embodiment, such computing devices may operate without central authority. Some embodiments of apparatus that may operate in some or all of these ways may include grid computing systems, cloud computing systems, peer-to-peer computing systems, computer systems configured to provide software as a service, etc. For example, the apparatus may include a computer system that runs VMware software, which executes a bulk of its processing load on a remote server, but outputs display information to a local user computer and receives user input information from the local user computer.
[0094] Furthermore, programs (and other types of data) that implement such methods can be stored and transmitted in several formats using various media (e.g., computer-readable media). In some embodiments, hardwired circuits or custom hardware may be used instead of, or in combination with, some or all of the software instructions that can implement the processes of various embodiments. Thus, various combinations of hardware and software may be used instead of software alone.
[0095] The term “computer-readable medium” refers to any non-temporary medium, multiple identical media, or combinations of different media, that are readable by a computer, processor, or similar device and are involved in providing data (e.g., instructions, data structures). Such media can take many forms, including but not limited to non-volatile media, volatile media, and transmission media. Non-volatile media include, for example, optical disks, magnetic disks, and other permanent memory. Volatile media typically include dynamic random-access memory (DRAM) that constitutes main memory. Transmission media include coaxial cables, copper wires, and optical fibers, including lines that constitute a system bus coupled to a processor. Transmission media include or can transmit sound waves, light waves, and electromagnetic emissions, such as those generated during radio frequency (RF) and infrared (IR) data communications. Common forms of computer-readable media include, for example, floppy disks (registered trademark), flexible disks, hard disks, magnetic tapes, any other magnetic media, CD-ROMs, DVDs, any other optical media, punch cards, paper tapes, any other physical media having patterned holes, RAM, PROMs, EPROMs, flash EEPROMs, any other memory chips or cartridges, carriers as described below, or any other computer-readable media.
[0096] The term "tangible computer-readable medium" refers to a "computer-readable medium" that includes hardware components such as optical or magnetic disks.
[0097] Various forms of computer-readable media may be involved in the transport of data (e.g., instruction sequences) to the processor. For example, the data may be (i) sent from RAM to the processor, (ii) transported via a wireless transmission medium, (iii) formatted and / or transmitted in accordance with many forms, standards, or protocols such as Ethernet® (or IEEE 802.3), wireless local area network communications as defined by the IEEE 802.11 specification, whether they are approved by the WiFi Alliance, SAP, ATP, Bluetooth®, and TCP / IP, TDMA, CDMA, and 3G, and / or (iv) encrypted in any way of the various methods known in the art to ensure privacy and prevent tampering.
[0098] The term "database" refers to any electronically stored collection of data that is stored in a searchable format.
[0099] The term "data structure" refers to a database within a hardware machine such as a computer.
[0100] The term "network" refers to a set 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. Networks may interconnect with other networks and may include subnetworks.
[0101] The term "predetermined" means something that is predetermined, for example, before the current time or before the current action. For example, the phrase "display a predetermined value" means to display a value that was determined before the display was activated.
[0102] The term "condition" means (1) a prerequisite for the performance of an agreement, or (2) something essential to the appearance or occurrence of something.
[0103] The term "transaction" means (1) the exchange or transfer of goods, services, or funds, or (2) a communication operation or activity involving two organizations or matters that influence or affect each other.
[0104] Therefore, a process description is also a description of a computer-readable medium that stores a program for carrying out the process. The computer-readable medium can store (in any suitable format) program elements suitable for carrying out the method. For example, a process description is a description of a computer-readable medium that stores a program containing instructions that tell the processor to carry out the method when executed by the processor.
[0105] Just as a description of the various steps of a process does not indicate that all of the steps described are required, an embodiment of the apparatus includes a computer or computing device capable of performing some (but not necessarily all) of the described processes.
[0106] Similarly, just as a description of the various steps of a process does not indicate that all the steps described are required, embodiments of computer-readable media for storing a program or data structure include computer-readable media for storing a program that, when executed, causes a processor to perform some (but not necessarily all) of the described process.
[0107] Where a database is described, a person skilled in the art will understand that (i) alternative database structures to the described structure are readily available, and (ii) other memory structures other than databases are also readily available. Any example or description of any database sample presented herein is an exemplary configuration of the stored information representation. For example, any number of other configurations other than those suggested by tables shown in drawings or elsewhere may be used. Similarly, a person skilled in the art will understand that any exemplary entries in a database represent only exemplary information, and the number and content of entries may differ from those described herein. Furthermore, notwithstanding 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, various processes as described herein can be performed using the object methods or behaviors of a database. In addition, databases can be stored locally or remotely in known forms on devices that access data within such databases.
[0108] Various embodiments can be configured to operate in a network environment including a computer that communicates with one or more devices (for example, via a communication network). The computer can communicate with the devices directly or indirectly via wired or wireless media (e.g., the Internet, LAN, WAN, or Ethernet®, Token Ring, telephone lines, cable lines, wireless channels, optical communication lines, commercial online service providers, electronic bulletin board systems, satellite communication links, or any combination of the above). Each device may include a computer or other computing device, such as one based on an Intel®, Pentium®, or Centrino®, Atom®, or Core® processor, configured to communicate with the computer. Any number and types of devices may be in communication with the computer.
[0109] 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 central authority. In such an embodiment, any function described herein as being implemented by a server computer or data described as being stored on a server computer may be implemented or stored on one or more such devices instead of a server computer.
[0110] When a process is described, in one embodiment, the process can operate without any user intervention. In another embodiment, the process involves some human intervention (for example, steps are performed by a person or with human assistance).
[0111] As used herein, the term “encryption” refers to the process of concealing or obscuring information so that it cannot be easily understood without special knowledge. The encryption process can convert raw information, called plaintext, into encrypted information. Encrypted information may also be called ciphertext, and the algorithm for converting plaintext into ciphertext may be called an encryption method. Encryption methods can also be used to perform the reverse operation, converting ciphertext back into plaintext. Examples of encryption methods include substitution encryption, transposition encryption, and encryption methods implemented using rotamachines.
[0112] In various encryption methods, the encryption method may require an additional piece of information called a key. The key may consist, for example, of a string of bits. The key can be used in conjunction with the encryption method to encrypt plaintext. The key can also be used in conjunction with the encryption method to decrypt ciphertext. In a classification of encryption methods called symmetric-key algorithms (e.g., private-key cryptography), the same key is used for both encryption and decryption. The inviolability of the encrypted information can therefore 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 asymmetric-key algorithms, any member of the public can use the first key (e.g., the public key) to encrypt plaintext into ciphertext. However, only the holder of the second key (e.g., the private key) will be able to decrypt the ciphertext back into plaintext. An example of an asymmetric-key algorithm is the RSA algorithm.
[0113] VI. Continuing Application This disclosure provides a description of several embodiments and / or enablement requirements for the inventions to those skilled in the art. 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 priority to this application.
[0114] The application is intended to file an additional application to claim a patent for the purposes disclosed in the present application and for which enablement requirements were presented but not claimed.
[0115] VII. 35 U.S.C. § 112, paragraph 6 Any limitation of a claim that includes the phrase "means for" or "step for" means that Section 112, paragraph 6 of the U.S. Patent Act applies to that limitation.
[0116] Any limitation of a claim that does not include the phrase “means for” or “steps for” means that Section 112, paragraph 6 of the U.S. Patent Act does not apply to that limitation, regardless of whether the limitation describes a function without including a description of the structure, materials, or operation for carrying out that function. For example, the mere use of the phrase “steps of” in a claim when referring to one or more steps in that claim or another claim does not mean that Section 112, paragraph 6 of the U.S. Patent Act applies to those steps.
[0117] With respect to means or steps for performing a particular function in accordance with Section 112, Paragraph 6 of the U.S. Patent Act, the corresponding structures, materials, or actions described in this specification and its equivalents may perform additional functions as well as specified functions.
[0118] Computers, processors, computing devices, and similar products are structures capable of performing a wide range of functions. Such products may be operated to perform a specified function by executing one or more programs, such as programs stored in the product's memory devices or memory devices accessed by the product. Unless otherwise explicitly stated, such programs do not need to be based on any particular program, such as any specific algorithms that may be disclosed herein. Those skilled in the art will know that a specified function may be implemented through different algorithms, and that any of several different algorithms is merely a design choice for performing a specified function.
[0119] Therefore, with respect to means or steps for performing a particular function in accordance with Section 112, paragraph 6 of the U.S. Patent Act, a structure corresponding to a specified function includes any product programmed to perform the specified function. Such a structure includes a programmed product that performs a function, whether such product is programmed using (i) a disclosed algorithm for performing the function, (ii) an algorithm similar to the disclosed algorithm, or (iii) a different algorithm for performing the function.
[0120] Where a method describes means for performing a function, the structure for performing this method includes a computing device (e.g., a general-purpose computer) programmed and / or configured with appropriate hardware to perform that function.
[0121] This also includes computing devices (e.g., general-purpose computers) programmed and / or configured with appropriate hardware to perform their functions via other algorithms that would be understood by those skilled in the art.
[0122] VIII. Waiver Numerous references to specific embodiments do not indicate a rejection or disclaimer of additional different embodiments, and similarly, references to descriptions of embodiments that all include a particular feature do not indicate a rejection or disclaimer of embodiments that do not include that particular feature. Any explicit rejection or disclaimer in this application would be preceded by the phrases "does not include" or "cannot be implemented."
[0123] IX. References Any patent, patent application, or other document referenced herein is incorporated by reference as part of this disclosure, but only for the purpose of written explanation and enablement requirements under § 112(1) of the United States Patent Act, and should never be used to limit, define, or interpret any term in this application unless otherwise a person skilled in the art could not have confirmed its ordinary meaning. Therefore, a person skilled in the art should never be limited by any embodiment provided by reference. Conversely, the definitions provided herein should not be used to limit, define, or interpret any term in any document incorporated herein by reference. The definitions expressly set forth herein are governed by any description of any particular embodiment that may conflict with the definition(s).
[0124] No reference by means of any patent, patent application, or other document, unless otherwise expressly provided in this patent application, shall in itself imply any endorsement, approval, or acquiescence of any statement, opinion, argument, or feature contained in any patent, patent application, or other document being referenced.
[0125] X. Review Process In interpreting this application (including the claims), a person skilled in the art would refer to the examination history of this application rather than the examination history of any other patent or patent application, regardless of whether there are other patent applications that could be considered relevant to this application, or whether there are other patent applications that share a priority claim with this application.
[0126] [Note 1] A system comprising a plurality of servers, including at least a first server and a second server, wherein the plurality of servers are interconnected by at least one network. The aforementioned first server, Maintaining the first order book for the items being traded, Receiving a first order for the aforementioned item, including the quantity, Placing the first order in the first order book, wherein the first server is involved in controlling the execution of a reverse order against the first order, It is configured to communicate the first order over the network, The second server mentioned above, Maintaining a second order book for the aforementioned items, Receiving the first order communicated by the first server, Placing the first order in the second order book, Receiving a second order for the aforementioned item, The system is configured to determine whether the second order is a reverse order to the first order, and to communicate the second order to the first server in response to the determination that the second order is a reverse order to the first order. The aforementioned first server, Receiving the aforementioned second order from the aforementioned second server, To determine whether the aforementioned first order is available, If available, execute the transaction between the first order and the second order, If the second order is for all available quantities of the first order, then remove the first order from the first order book. The system is further configured to communicate a confirmation message on the network indicating that the first order will be traded unfavorably, The second server mentioned above, Receiving the aforementioned confirmation message, The system is further configured to, in response to receiving the aforementioned confirmation message, delete the first order from the second order book if the second order is for all available quantities of the first order. [Note 2] The first item is associated with a port on the network, The system according to Appendix 1, wherein communicating the first order over the network includes communicating the first order via the port. [Note 3] The system according to Appendix 2, wherein communicating the first order via the port includes multicasting the first order via the port. [Note 4] The second server is further configured to receive data from the network that communicates via the port, The system according to Appendix 2, wherein receiving the first order communicated by the first server includes receiving the first order via the port. [Note 5] The first server is further configured to maintain an order book for the second item being traded. The second item is associated with a second port on the network, The system as described in Appendix 4, wherein the first server communicates information associated with the second order via the network using the second port. [Note 6] The second server is not configured to maintain an order book for the second item. The system as described in Appendix 5, wherein the second server is not configured to receive information on the second port as a result of not being configured to maintain an order book for the second item. [Note 7] The first item is associated with a port on the network, The first server is configured to send and receive information via the network associated with the first item via the port, The second server is configured to send and receive information via the network associated with the first item through the port, The system as described in Appendix 1, wherein the first server is further configured to be considered offline, and considering the first server offline includes configuring the server not to receive information on the port, and if the first server is considered offline before the second server communicates the second order, the transaction is not executed between the first order and the second order. [Note 8] The system according to Appendix 1, further comprising a third server associated with clearing transactions, wherein the third server is configured to receive the confirmation message in order to clear the transaction created by executing the transaction between the first order and the second order. [Note 9] The first entity owns and / or operates the system, The resources of the first server are leased to the second entity. The system described in Appendix 1, wherein the resources of the second server are leased to a third entity. [Note 10] The first server is further configured to run an application for trading the items, and the application is configured by the second entity. The second server is further configured to run an application for trading the items, The system described in Appendix 9, wherein the application is comprised of the third entity. [Note 11] If the second order is less than the total available quantity of the first order, the first server is further configured to reduce the available quantity of the first order in the first order book. The system as described in Appendix 1, wherein if the second order is less than the total available quantity of the first order, the second server is further configured to reduce the available quantity of the first order in the second order book. [Note 12] The second server mentioned above, To receive a third order for the aforementioned item, including the quantity, Placing the third order in the second order book, wherein the second server is involved in controlling the execution of a reverse order for the third order, It is further configured to communicate the third order over the network, The aforementioned first server, Receiving the third order communicated by the second server, Placing the third order in the first order book, Receiving a fourth order for the aforementioned item, To determine whether the fourth order is a reverse order to the third order, In response to determining that the fourth order is a reverse order to the third order, the system is configured to communicate the fourth order to the second server, The second server mentioned above, Receiving the fourth order from the first server, To determine whether the aforementioned third order is available, If available, execute the transaction between the third order and the fourth order, If the fourth order is for all available quantities of the third order, then remove the third order from the second order book, The system is further configured to communicate a confirmation message on the network indicating that the third order will be traded unfavorably, The aforementioned first server, Receiving the confirmation message from the second server, The system as described in Appendix 1 is further configured to, in response to receiving the confirmation message, delete the third order from the first order book if the fourth order is for all available quantities of the third order. [Note 13] The system further comprises a third server associated with clearing transactions, wherein the third server, It is configured to receive the confirmation message from the first server in order to clear the transaction created by executing the transaction between the first order and the second order. The system according to Appendix 12, configured to receive the confirmation message from the second server in order to clear the transaction created by executing the transaction between the third order and the fourth order. [Note 14] Maintaining a third order book for the aforementioned items, Receiving the first order communicated by the first server, The system as described in Appendix 1 further includes a third server configured to place an order for the first order in the third order book. [Note 15] The aforementioned third server, Receiving the aforementioned confirmation message, The system as described in Appendix 14 is further configured to delete the first order from the third order book if the second order is the total quantity of the first order, in response to receiving the confirmation message. [Note 16] When the second server communicates the second order over the network, the second server is configured to tag the communicated second order as being for the first server. The aforementioned third server, Receiving the aforementioned second order from the aforementioned second server, The system described in Appendix 14 is further configured to ignore the second order because it is tagged for the first server. [Note 17] The aforementioned third server, Receiving a third order for the aforementioned item, The system according to Appendix 14, further configured to determine whether the third order is a reverse order to the first order, and to communicate the third order to the first server in response to the determination that the third order is a reverse order to the first order. [Note 18] As a result of the first server executing the transaction between the first order and the second order, the first order is deleted from the first order book. The aforementioned first server, After receiving the second order, receiving the third order, The determination that the first order is unavailable, The system described in Appendix 17 is further configured to communicate on the network a message indicating that, in response to determining that the first order is unavailable, the transaction between the first order and the third order has not been confirmed. [Note 19] As a result of the first server executing the transaction between the first order and the second order, the available quantity of the first order in the first order book is reduced. The aforementioned first server, After receiving the second order, receiving the third order, Determining that the first order is available, Executing a transaction between the first order and the third order, based in part on the first order which is available, If the third order is for all available quantities of the first order, then the first order is removed from the first order book. The system is further configured to communicate another confirmation message over the network indicating that the first order will be traded unfavorably, The second server mentioned above, Receiving the aforementioned separate confirmation message, In response to receiving the aforementioned confirmation message, the system is further configured to remove the first order from the second order book if the third order is for all available quantities of the first order, The aforementioned third server, Receiving the aforementioned confirmation message, In response to receiving the aforementioned confirmation message, the available quantity of the first order in the third order book is reduced, The system according to Appendix 17, further configured to receive the aforementioned additional confirmation message and, in response to receiving the aforementioned additional confirmation message, to remove the first order from the third order book if the third order is for all available quantities of the first order. [Note 20] The first server is further configured to run an application for trading the items, and the first order is received from the application. The aforementioned first server, Communicating with the application to determine whether the first order should still be traded unfavorably before executing the transaction between the first order and the second order, The system according to Appendix 1, further configured to execute the transaction between the first order and the second order if the application indicates that the transaction should still be conducted unfavorably. [Note 21] The aforementioned first server, If the application indicates that the first order should not be traded unfavorably, the first order is deleted from the first order book. The system described in Appendix 20 is further configured to communicate on the network a message indicating that the transaction between the first order and the second order has not been confirmed.
Claims
1. A system comprising a plurality of servers, including at least a first server and a second server, wherein the plurality of servers are interconnected by at least one network. The first server, The steps include maintaining the first order book for the first item to be traded, A step of receiving a first order for the first item, which includes a quantity. A step of placing the first order in the first order book, wherein the first server is involved in controlling the execution of counter-orders against the first order, The step of communicating the first order over the network to at least one selected server among the plurality of servers designated for communication, wherein the at least one selected server includes the second server, It is configured to do the following: The second server, The steps include maintaining a second order book for the first item, The steps include receiving the first order communicated by the first server, The steps include placing the first order in the second order book, The steps include receiving a second order for the first item, A step of determining whether the second order is at least a counter-order to the first order, The steps include: communicating the second order, which has been specifically tagged for the first server, over the at least one network in response to determining that the second order is a counter-order to at least the first order from the first server; It is configured to do the following: The first server, The steps include receiving the second order from the second server, The steps include determining whether the first order is available, If the first order is available, the step of executing a transaction between the first order and the second order, If the second order is for all available quantities of the first order, the step is to remove the first order from the first order book. The steps include communicating a confirmation message on the at least one network indicating that the first order has been traded, It is further configured to do the following: The second server, The step of receiving the aforementioned confirmation message, In response to receiving the confirmation message, if the second order is for all available quantities of the first order, the step of deleting the first order from the second order book; It is further configured to do the following: The second server, A step of receiving a third order for the first item, the third order including a quantity, A step of placing the third order in the second order book, wherein the second server is involved in controlling the execution of a counter-order against the third order, The steps include communicating the third order over at least one network, It is further configured to do the following: The first server, The steps include receiving the third order communicated by the second server, The steps include placing the third order in the first order book, The steps include receiving a fourth order for the first item, A step of determining whether the fourth order is a counter-order to the third order, Steps include: communicating the fourth order to the second server in response to determining that the fourth order is a counter-order to the third order; It is configured to do the following: The second server, The steps include receiving the fourth order from the first server, The third step is to determine whether the order is available, If the third order is available, the step is to execute a transaction between the third order and the fourth order, If the fourth order is for all available quantities of the third order, the third order is removed from the second order book. The steps include communicating a second confirmation message on at least one network indicating that the third order has been traded, It is further configured to do the following: The first server, The steps include receiving the second confirmation message from the second server, In response to receiving the second confirmation message from the second server, if the fourth order is for all available quantities of the third order, the steps include deleting the third order from the first order book, It is further configured to do the following: system.
2. The system according to claim 1, wherein the first item is associated with a first port on the at least one network, and communicating the first order on the at least one network includes communicating the first order via the first port.
3. The system according to claim 2, wherein communicating the first order via the first port includes multicasting the first order via the first port.
4. The second server is further configured to receive data from the at least one network that communicates via the first port, The system according to claim 2, wherein receiving the first order communicated by the first server includes receiving the first order via the first port.
5. The first item is associated with at least one port on the network, The first server is configured to send and receive information via the port through the at least one network associated with the first item, The second server is configured to send and receive information via the port through the at least one network associated with the first item, The system according to claim 1, wherein the first server is further configured to be considered offline, and considering the first server offline includes configuring the first server not to receive information on the port, and if the first server is considered offline before the second server communicates the second order, no transaction is executed between the first order and the second order.
6. The system further comprises a third server associated with clearing the transaction between a given first order and a given second order, The system according to claim 1, wherein the third server is configured to receive the confirmation message in order to clear the transaction between the first order and the second order, which was created by executing the transaction between the first order and the second order.
7. If the second order is less than the total available quantity of the first order, the first server is further configured to reduce the available quantity of the first order in the first order book. The system according to claim 1, wherein if the second order is less than the total available quantity of the first order, the second server is further configured to reduce the available quantity of the first order in the second order book.
8. Further comprising a third server associated with clearing transactions, The third server mentioned above, It is configured to receive the confirmation message from the first server in order to clear the transaction between the first order and the second order, which was created by executing the transaction between the first order and the second order. The system according to claim 1, configured to receive a second confirmation message from the second server to clear a transaction between the third order and the fourth order, which was created by executing the transaction between the third order and the fourth order.
9. Maintaining a third order book for the aforementioned first item, Receiving the first order communicated by the first server, The system according to claim 1, further comprising a third server configured to place an order for the first order in the third order book.
10. A system comprising a plurality of servers, including at least a first server and a second server, wherein the plurality of servers are interconnected by at least one network. The first server, The steps include maintaining the first order book for the first item to be traded, A step of receiving a first order for the first item, which includes a quantity. A step of placing the first order in the first order book, wherein the first server is involved in controlling the execution of counter-orders against the first order, The steps include communicating the first order over at least one network, It is configured to do the following: The second server, The steps include maintaining a second order book for the first item, The steps include receiving the first order communicated by the first server, The steps include placing the first order in the second order book, The steps include receiving a second order for the first item, A step of determining whether the second order is a counter-order to the first order, In response to determining that the second order is a counter-order to the first order from the first server and that it has a size exceeding that of the first order, The steps include communicating the second order, which has been specifically tagged for the first server, over the at least one network, The steps include communicating the second order, tagged to at least one given server among the plurality of servers responsible for additional orders of the first item, over the at least one network, It is configured to do the following: The first server, The steps include receiving the second order from the second server, The steps include determining whether the first order is available, If the first order is available, the step of executing a transaction between the first order and the second order, If the second order is for all available quantities of the first order, the steps include removing the first order from the first order book, The steps include communicating a confirmation message on the at least one network indicating that the first order has been traded, It is further configured to do the following: The second server, The step of receiving the aforementioned confirmation message, In response to receiving the confirmation message, if the second order is for all available quantities of the first order, the step of deleting the first order from the second order book; It is further configured to do the following: The second server, A step of receiving a third order for the first item, the third order including a quantity, A step of placing the third order in the second order book, wherein the second server is involved in controlling the execution of a counter-order against the third order, The steps include communicating the third order over at least one network, It is further configured to do the following: The first server, The steps include receiving the third order communicated by the second server, The steps include placing the third order in the first order book, The steps include receiving a fourth order for the first item, A step of determining whether the fourth order is a counter-order to the third order, In response to determining that the fourth order is a counter-order to the third order, the fourth order is communicated to the second server on the at least one network, It is configured to do the following: The second server, The steps include receiving the fourth order from the first server, The third step is to determine whether the order is available, If the third order is available, the step is to execute a transaction between the third order and the fourth order, If the fourth order is for all available quantities of the third order, the steps include removing the third order from the second order book, The steps include communicating a second confirmation message on at least one network indicating that the third order has been traded, It is further configured to do the following: The first server, The steps include receiving the second confirmation message from the second server, In response to receiving the second confirmation message, if the fourth order is for all available quantities of the third order, the step of deleting the third order from the first order book; It is further configured to do the following: system.