This invention relates in general to trading markets and, more particularly, to a system and method for managing relationships between brokers and traders in a trading network.
In order to engage in trading activity with a trading exchange, such as a stock exchange for example, traders have traditionally used brokers to assist them with transactions in the trading exchange. A broker has access to the trading exchange and acts as a middleman between a trader and the trading exchange, thus interacting with the trading exchange on behalf of the trader, such as to place, modify, monitor, or cancel various trading orders for various tradable instruments. Thus, the trader does not need direct access to the trading exchange and does not need to spend their time monitoring the trading exchange and, in particular, their existing trading orders.
In recent years, as investors have become more self-sufficient and comfortable with computers, online trading has gained a widespread acceptance for trading. For example, online trading systems have been created which facilitate the trading of financial instruments such as stocks, bonds, currency, futures, or other suitable financial instruments. Using such systems, investors may have direct access to their accounts information and may initiate transactions nearly instantaneously and, in some cases, 24 hours a day.
In accordance with the present invention, systems and methods for managing relationships between brokers and traders in a trading network are provided. According to one embodiment, a method of managing access to a trading network is provided. A first network login request for a first user is received from a client application. The first network login request includes first authentication information. Based at least on the first authentication information, the first network login request is approved, which authorizes the first user to access the trading network. One or more associated users for which the first user is authorized to act as a proxy is/are identified from a plurality of users. User profile information for one of the associated users is obtained and communicated to the client application. The user profile information includes information regarding the second user that can be used to allow the first user to engage in trading activity via the trading network on behalf of the second user.
According to another embodiment, another method of managing access to a trading network is provided. An attachment request from a client application associated with a first user is received at a broker proxy server. The attachment request includes a request to attach the first user to a second user and indicates whether the second user is a passive trader or an active trader. A user relationship between the first user and the second user is established and stored. If the attachment request indicates that the second user is a passive trader, an association is established between the user relationship and a first connection between the broker proxy server and a trading system. The established user relationship and the established first association allow the first user to engage in trading activity in the trading system on behalf of the second user via the first connection. Alternatively, if the attachment request indicates that the second user is an active trader, it is determined whether the second user is logged into the trading system. If it is determined that the second user is logged into the trading system, a second association is established between the user relationship and a second connection between the broker proxy server and the trading system. The established user relationship and the established second association allow the first user to engage in trading activity in the trading system on behalf of the second user via the second connection.
Various embodiments of the present invention may benefit from numerous advantages. It should be noted that one or more embodiments may benefit from some, none, or all of the advantages discussed below.
One advantage of the invention is that an electronic trading network is provided in which one or more brokers may engage in trading activity in a trading system, such as a trading exchange for a particular type of instrument, on behalf of a particular trader. For example, supposing a broker permitted to act on behalf of the particular trader places a trading order in the trading system on behalf of the particular trader, another broker that is also permitted to act on behalf of the particular trader may manage the trading order, which may include changing or canceling the trading order, for example. In this manner, multiple brokers may manage a single trader via an electronic network.
Another advantage of the present invention is that a broker proxy server establishes and manages relationships between brokers and traders that are used to route messages between users (brokers and traders) and a trading system. As a result, messages sent from the trading system regarding trading orders associated with a particular trader may be routed to the proper users, which may include the particular trader as well as each interested broker (such as, for example, each broker that is permitted to act on behalf of the particular trader).
Other advantages will be readily apparent to one having ordinary skill in the art from the following figures, descriptions, and claims.
For a more complete understanding of the present invention and for further features and advantages, reference is now made to the following description, taken in conjunction with the accompanying drawings, in which:
Example embodiments of the present invention and their advantages are best understood by referring now to
In general, an electronic trading network is provided in which one or more brokers may collectively or simultaneously manage trading orders on behalf of a managed trader. For example, if a first broker that is permitted to act on behalf of the managed trader places a trading order at a trading system (such as a stock market, for example) on behalf of the particular trader, a second broker that is also permitted to act on behalf of the managed trader may manage the trading order (which may include changing or canceling the trading order, for example) as well as place other trading orders at the trading system. Thus, multiple brokers may manage a single trader via an electronic network.
Each unmanaged trader terminal 12 hosts an unmanaged trader application 32 that provides an unmanaged trader 34 access to engage in trading activity via one or more trading systems 26 of trading network 10. Each unmanaged trader terminal 12 and application 32 may include a computer system and appropriate software to allow unmanaged trader 34 to engage in trading activity via trading network 10. As used in this document, the term “computer” refers to any suitable device operable to accept input, process the input according to predefined rules, and produce output, for example, a personal computer, workstation, network computer, wireless data port, wireless telephone, personal digital assistant, one or more processors within these or other devices, or any other suitable processing device. An unmanaged trader terminal 12 may also include one or more human interfaces, such as a mouse, keyboard, or pointer, for example.
An unmanaged trader 34 is a trader (such as an individual or group of individuals) that may engage in trading activity via trading network 10 on behalf of itself. For example, an unmanaged trader 34 may manage trading orders via one or more trading systems 26 on its own behalf (in other words, without using a broker). In this manner, an unmanaged trader 34 may trade with other traders 34 and/or 38 via one or more trading systems 26.
As used throughout this document, “managing” a trading order includes determining the parameters of a new trading order (such as the instrument, price, size, and type of order), submitting a new trading order, monitoring an existing trading order, altering an existing trading order (such as changing the price, size, or type of the order, for example), canceling an existing trading order and/or any other any suitable functions regarding a new or existing trading order in a trading system. In addition, as used throughout this document, “engaging in trading activity” includes at least managing trading orders.
Similar to unmanaged trader terminals 12, each managed trader terminal 14 hosts a managed trader application 36 that provides a managed trader 38 access to engage in trading activity via one or more trading systems 26 of trading network 10. Each managed trader terminal 14 and application 36 may include a computer system and appropriate software to allow managed trader 38 to engage in trading activity via trading network 10.
A managed trader 38 is a trader (such as an individual or group of individuals) that may engage in trading activity via trading network 10 on behalf of itself, as well as authorizing one or more brokers 40 to engage in trading activity on behalf of the managed trader 38. For example, a managed trader 38 may manage trading orders via one or more trading systems 26 on its own behalf, as well as authorizing one or more brokers 40 to manage trading orders via such trading systems 26 on behalf of the managed trader 38. In this manner, a managed trader 38 may trade with other traders 34 and/or 38 via one or more trading systems 26.
Each broker terminal 16 hosts a broker application 42 that provides a broker 40 access to engage in trading activity on behalf of one or more managed traders 38 via trading network 10. Broker terminal 16 and broker application 42 may include a computer system and appropriate software to allow broker 40 to engage in trading activity via trading network 10.
In some embodiments, a broker 40 is an individual, group of individuals, or other entity that is authorized to engage in trading activity via trading network 10 on behalf of one or more managed traders 38, but not on its own behalf. For example, a broker 40 may manage trading orders via one or more trading systems 26 on behalf of a number of managed traders 38, but not on its own behalf. Thus, in such embodiments, a broker 40 may not trade on its own behalf with other brokers 40 or traders 34 or 38 via trading systems 26. In other embodiments, a broker 40 may be permitted to act as a broker as well as a trader. In such embodiments, a broker 40 may manage trading orders via one or more trading systems 26 on behalf of managed traders 38, as well as on its own behalf.
For a broker 40 authorized to act on behalf of a managed trader 38, trading network 10 generally allows the broker 40 to manage trading orders collectively or simultaneously with the managed trader 38, as well as with other brokers 40 authorized to act on behalf of the managed trader 38. Thus, if broker 40 and the managed trader 38 are logged into a trading system 26, both the broker 40 and the managed trader 38 may manage trading orders in the trading system 26 on behalf of the managed trader 38, including managing different trading orders as well as the same trading orders. For example, if the broker 40 places a trading order in the trading system 26 on behalf of the managed trader 38, the managed trader 38 may manage the trading order (such as altering or canceling the trading order, for example), as well as place other trading orders in the trading system. Thus, the broker 40 and the managed trader 38 may co-manage trading orders on behalf of the managed trader 38.
Similarly, if multiple brokers 40 that are each permitted to act on behalf of a managed trader 38 are logged into a trading system 26, each of the brokers 40 may manage trading orders in the trading system 26 on behalf of the managed trader 38, including managing different trading orders as well as the same trading orders. For example, if a first broker 40 that is permitted to act on behalf of the managed trader 38 places a trading order at the trading system 26 on behalf of the managed trader 38, a second broker 40 that is also permitted to act on behalf of the managed trader 38 may manage the trading order (such as changing or canceling the trading order, for example), as well as place other trading orders at the trading system on behalf of the managed trader 38. In this manner, multiple brokers may co-manage trading orders on behalf of a managed trader 38.
Each managed trader 38 may be either an active trader or a passive trader. A broker 40 may engage in trading activity on behalf of a passive trader regardless of whether the passive trader is actually logged into trading network 10, while a broker 40 may engage in trading activity on behalf of an active trader only if the active trader is actually logged into trading network 10.
Brokers 40, managed traders 38 and unmanaged traders 36 may collectively be referred to as users 44 of trading network 10. It should be understood that in alternative embodiments, the relationships described herein between brokers 40, managed traders 38 and unmanaged traders 36 may apply similarly between other types of users of trading network 10. For example, in one alternative embodiment, one trader 34 or 38 may have a broker-trader relationship with another trader 34 or 38.
Applications 32, 36 and 42 may be referred to as client applications and may include front-end applications that can connect with session managers 18 in order to access trading network 10. A session manager 18 generally manages communication sessions between an application 32, 36 or 42 and other portions of trading network 10. In the embodiment shown in
An authentication manager 20 generally manages the authentication of users 44 attempting to login to trading network 10. Authentication manager 20 may include memory 50 that may store, for each user of network 10, user login, or authentication, data 52, user profile data 54, and user relationship data 56. User login data 52 includes various information, such as login IDs and passwords, associated with authorizing a user 44 access to network 10. User profile data 54 includes various information regarding the respective user, such as which trading systems 26 in which that user 44 is permitted to trade, which types of orders that user 44 is permitted to submit, and for managed traders 38, whether the trader 38 is an active or passive trader, for example. User relationship data 56 identifies, for each broker 40, the managed traders 38 for which that broker 40 is authorized to engage in trading activity on behalf of via network 10, and for each managed trader 38, the one or more brokers 40 that are authorized to act on behalf of that managed trader 38. Thus, user relationship data 56 defines a number of broker-trader relationships between brokers 40 and managed trader 38.
Memory 50 may include one or more suitable databases or memory devices, such as one or more SYBASE™ databases, INGRESS™ databases, ORACLE™ databases, random access memories (RAMs), read-only memories (ROMs), dynamic random access memories (DRAMs), fast cycle RAMs (FCRAMs), static RAM (SRAMs), field-programmable gate arrays (FPGAs), erasable programmable read-only memories (EPROMs), or electrically erasable programmable read-only memories (EEPROMs), for example.
An authentication manager 20 manages the authentication of users 44 attempting to login to trading network 10 at least by comparing login information received from an application 32, 36 or 40 with appropriate user login data 52 stored in memory 50. An authentication manager 20 also provides functionality for managing broker-trader relationships, including managing access for a broker 40 to act on behalf of its associated managed traders 38. For example, as described in greater detail below with reference to
Gateways 22 are intermediate nodes within trading network 10 that may provide a connection from a session manager 18 to a trading system 26 (for example, see communication link 30f), or to a broker proxy server 24 which is connected to a trading system 26 (for example, see communication links 30e and 30g).
A broker proxy server 24 manages user relationships between brokers 40 and managed traders 38 and routes messages to and from trading systems 26 according to such user relationships. The broker proxy server 24 manages the “attachment” of brokers 40 to managed traders 38 which allows the brokers 40 to engage in trading activity with one or more trading systems 26 on behalf of such “attached” managed traders 38. As described in greater detail below with reference to
Each broker proxy server 24 includes memory 60 that may store user relationship data 62, connection data 64 and user status data 66. User relationship data 62 may include any number of user relationships between a managed trader 38 and a broker 40 that is currently “attached” to that managed trader 38. Connection data 64 may include data identifying connections between broker proxy server 24 and trading system 26, as well as associations between such connections and user relationships that have been established. User status data 66 may include data regarding the current status of various users 44 of trading network 44, such as whether each user 44 is logged into network 10 and further whether each user 44 is logged into trading system 26. Memory 60 may include one or more suitable databases or memory devices, such as described above with reference to memory 50.
In some embodiments, communication links 30a through 30g may provide various channels of communications via network 10. For example, in one embodiment, such communication channels include a market data channel for communicating data such as market data and trading orders, and an administration channel for communicating administrative or control data. In this embodiment, broker proxy server 24 provides a proxy between a gateway 22 and a trading system 26 only for the administration channel, and the gateway 22 continues to connect directly to the trading system 26 market data channel or to a proxy of the market data channel provided by the trading system 26.
A trading system 26 may manage trading transactions between users 44 of network 10. For example, a trading system 26 may receive trading orders (such as orders to buy or sell a particular instrument) from traders 34 and/or 38 and to manage or process those trading orders such that financial transactions among and between traders 34 and/or 38 are performed. A trading system 26 may include or communicate with one or more market centers, which may comprise all manner of order execution venues including exchanges, Electronic Communication Networks (ECNs), ATFs and market makers. A market center maintains a bid and offer price in a given trading product by standing ready, willing, and able to buy or sell at publicly quoted prices.
In some embodiments, each trading system 26 represents a different market. For example, different trading systems 26 within trading network 10 may be provided for trading different types of instruments, such as NYSE stocks, US Treasuries, or Japanese government bonds, for example. In some embodiments, each broker 40 and each trader 34 and 38 is permitted to trade in particular ones (or all) of the trading systems 26 within trading network 10, based on a variety of factors.
Broker Login
At step 106, authentication manager 20 determines whether to approve the network login request based at least on the authentication information (for example, a user ID and password) included in the network login request. To make this determination, authentication manager 20 may compare the authentication information received in the network login request with user login data 52 stored in memory 50. If the authentication manager 20 rejects the network login request, a notification that the network login request was rejected is communicated to broker application 42 at step 108 to inform Broker X. However, if the authentication manager 20 approves the network login request, execution proceeds to step 110, where authentication manager 20 logs Broker X into network 10.
At step 112, authentication manager 20 identifies that the network login request was submitted by a broker 40 (namely, Broker X), such as based on authentication information included in the broker's network login request. At step 114, as a result of identifying that the network login request was received from a broker 40, authentication manager 20 identifies, based on user relationship data 56 stored in memory 50, each managed trader 38 for which Broker X is authorized to engage in trading activity on behalf of. These managed traders 38 are referred to herein as associated traders 38. Authentication manager 20 communicates a login notification, as well as the list of identified associated traders 38, to broker application 42 at step 116. The login notification indicates that the network login request for Broker X was approved and that Broker X was logged into trading network 10. The list of identified associated traders 38 communicated to broker application 42 includes an indication of whether each associated trader 38 is an active or passive trader.
In addition, at step 118, authentication manager 20 identifies, based on user profile data 54 regarding Broker X, each trading system 26 to which Broker X is authorized access (such as for engaging in trading activity on behalf of associated traders 38). At step 120, for each identified trading system 26, authentication manager 20 determines a gateway 22 through which broker application 42 may access that trading system 26. At step 122, authentication manager 20 communicates to broker application 42 the list of trading systems 26 to which Broker X is authorized access. At step 124, authentication manager 20 communicates to the session manager 18 associated with the broker application 42 the gateway 22 determined for each trading system 26 to which Broker X is authorized access.
At step 126, broker application 42 generates and communicates to authentication manager 20 a network login request for each identified associated trader 38. The network login request for each associated trader 38 includes a request to authenticate one of the associated traders 38. In this embodiment, network login requests for each associated trader 38 are automatically generated and submitted to authentication manager 20 for approval. In an alternative embodiment, network login requests for each associated trader 38 are generated in response to commands entered by Broker X. The network login request for each associated trader 38 may include authentication information associated with the associated trader 38, such that the authentication manager 20 may perform an authentication of the associated trader 38. Such authentication information may have been received by broker application 42 from authentication manager 20 during the login process for Broker X. Alternatively, at least a portion of the required authentication information included in the network login request for each associated trader 38 is manually entered by Broker X, which may provide an additional level of security.
At step 128, authentication manager 20 approves the network login request for each associated trader 38 and generates a virtual login session for that associated trader 38. The virtual login session for an associated trader 38 is distinct from whether or not that associated trader 38 is actually logged in to network 10 on its own behalf. As a result of approving the network login request for each associated trader 38, authentication manager 20 retrieves user login data 52 and user profile data 54 regarding each associated trader 38 from memory 50 and communicates the retrieved user profile data 54 to broker application 42 at step 130. The user login data 52 for each associated trader 38 includes various information, such as login IDs and passwords, associated with authorizing such associated traders 38 access to network 10. The user profile data 54 communicated to broker application 42 for each associated trader 38 includes information regarding that trader 38 that can be used to allow Broker X to engage in trading activity via trading network 10 on behalf of that trader 38. For example, user profile data 54 communicated to broker application 42 for each associated trader 38 may identify (1) each trading system 26 to which the trader 38 is permitted access for trading activity, (2) one or more parameters defining the permitted trading activity for the trader 38 in each of such trading systems 26, and/or (3) whether the trader 38 is a passive trader or an active trader.
Attachment
At step 150, Broker X selects, via a GUI provided by broker application 42, one of the associated traders 38 that Broker X wishes to trade or otherwise act on behalf of in a particular trading system 26. The selected trader 38 is referred to herein as Trader Y. At step 152, broker application 42 generates and communicates to broker proxy server 24 an attachment request to “attach” to Trader Y for the particular trading system 26. The attachment request comprises a request to establish and store a relationship between Broker X and Trader Y. The attachment request includes an indication of whether Trader Y is an active trader or a passive trader.
At step 154, broker proxy server 24 determines whether Broker X is authorized to attach to Trader Y (in other words, whether Broker X is authorized to act as a broker on behalf of Trader Y). This may involve broker proxy server 24 communicating an attachment authorization query to authentication manager 20 which identifies Broker X and Trader Y, and receiving from the authentication manager 20 a determination (based on user relationship data 56) of whether Broker X is authorized to engage in trading activity on behalf of Trader Y. If broker proxy server 24 determines that Broker X is not authorized to attach to Trader Y, broker proxy server 24 rejects the attachment request and notifies broker application 42 accordingly at step 156. However, if broker proxy server 24 determines that Broker X is authorized to attach to Trader Y, the method continues to step 158. In some embodiments, broker proxy server 24 assumes that all attachment requests received from broker applications 38 are valid, and automatically approves such requests. In such embodiments, step 154 is not performed.
At step 158, broker proxy server 24 attaches Broker X to Trader Y by establishing a user relationship between Broker X and Trader Y. The established user relationship is stored in table 60 as user relationship data 62 at step 160. User relationship data 62 may also include user relationships between Trader Y and each other broker 40 that is currently attached to Trader Y. In addition, user relationship data 62 may also include user relationships between Broker X and other selected traders 38 to which Broker X has already attached. At step 162, broker proxy server 24 communicates an attachment notification to all interested users 44, including (1) the broker application 42 associated with Broker X; (2) the trader application 36 associated with Trader Y; and (3) the broker applications 42 associated with other brokers 40 monitoring the status of Trader Y, if any, which may include all other brokers 40 currently attached to Trader Y or all other brokers 40 logged in to network 10 who are permitted to act on behalf of Trader Y. The attachment notification indicates that Broker X has attached to Trader Y. At step 164, the relevant broker application(s) 42 and trader application 36 are updated to indicate to respective broker(s) 40 and Trader Y that Broker X has attached to Trader Y, such as by updating a GUI display, for example.
In order for Broker X to engage in trading activity via the particular trading system 26 on behalf of Trader Y, a connection between the broker proxy server 24 is assigned to the user relationship between Broker X and Trader Y. The manner in which such a connection is assigned depends on whether Trader Y is an active trader or a passive trader. Thus, at step 166, broker proxy server 24 determines whether Trader Y is an active trader or a passive trader based on information included in the attachment request.
If Trader Y is a passive trader, the method continues to step 168. At step 168, broker proxy server 24 determines whether Trader Y is already logged in to the particular trading system 26, such as based on the current user status data 66 stored in memory 60. If Trader Y is currently logged into the particular trading system 26, broker proxy server 24 identifies the particular connection 30g through which Trader Y is connected to the particular trading system 26 at step 170. At step 172, broker proxy server 24 establishes and stores as connection data 64 an association between the user relationship between Broker X and Trader Y (established at step 158) and the connection 30g identified at step 170. Thus, when Broker X subsequently sends a message to the particular trading system 26 on behalf of Trader Y, broker proxy server 24 may intercept the message, identify the user relationship between Broker X and Trader Y, identify the appropriate connection 30g associated with the user relationship at step 170, and forward the message to the trading system via the identified connection 30g.
At step 174, broker proxy server 24 communicates a connection notification to all interested users 44, including: (1) the broker application 42 associated with Broker X; (2) the trader application 36 associated with Trader Y; and (3) the broker applications 42 associated with other brokers 40 monitoring the status of Trader Y, if any, which may include all other brokers 40 currently attached to Trader Y or all other brokers 40 logged in to network 10 who are permitted to act on behalf of Trader Y. The connection notification indicates that Broker X is connected to trading system 26 on behalf of Trader Y. At step 176, the relevant broker application(s) 42 and trader application(s) 36 are updated to indicate to respective broker(s) 40 and Trader Y that Broker X is connected to trading system 26 on behalf of Trader Y, such as by updating a GUI display, for example. In particular, the broker application 42 associated with Broker X may provide a GUI allowing Broker X to engage in trading activity in trading system 26 on behalf of Trader Y.
Accordingly, at step 178, Broker X may now engage in trading activity in trading system 26 on behalf of Trader Y via broker application 42 and the connection 30g associated at step 170. Others brokers 40, if any, that are currently attached to Trader Y may continue to engage in trading activity in trading system 26 on behalf of Trader Y. Thus, at step 178, Trader Y, Broker X, and other brokers 40 currently attached to Trader Y may collectively engage in trading activity in trading system 26 on behalf of Trader Y, including collectively managing trading orders in trading system 26. For example, supposing that one of Trader Y, Broker X, or another broker 40 currently attached to Trader Y places a trading order at trading system 26 on behalf of Trader Y, any or all of Trader Y, Broker X, and other brokers 40 currently attached to Trader Y may adjust, cancel or otherwise manage the trading order on behalf of Trader Y.
Alternatively, if it is determined that Trader Y is not currently logged in to the particular trading system 26, at step 180, broker proxy server 24 determines a particular connection 30g through which to communicate with trading system 26. At step 182, broker proxy server 24 sends a trading system login request to the trading system 26 on behalf of Trader Y via the particular connection 30g. The trading system login request is a request to log Trader Y into the trading system 26 on behalf of Broker X. The trading system login request appears to the trading system 26 as if it was received from Trader Y itself. At step 184, the trading system 26 logs in Trader Y and communicates a login notification to broker proxy server 24 via the connection 30g used at step 182.
At step 185, broker proxy server 24 establishes and stores as connection data 64 an association between the user relationship between Broker X and Trader Y (established at step 158) and the connection 30g used at step 182. At step 186, broker proxy server 24 communicates a connection notification to all interested users 44, such as described above with reference to step 174. The connection notification indicates that Broker X is connected to trading system 26 on behalf of Trader Y. At step 188, the relevant broker application(s) 42 and trader application 36 are updated, such as described above with reference to step 176. Accordingly, at step 190, Broker X may now engage in trading activity in trading system 26 on behalf of Trader Y via the connection 30g used at steps 182 and 184. Thus, Trader Y, Broker X, and other brokers 40 currently attached to Trader Y may collectively engage in trading activity in trading system 26 on behalf of Trader Y, including collectively managing trading orders in trading system 26, as discussed above with reference to step 178.
Alternatively, if it is determined at step 166 that Trader Y is an active trader, the method continues to step 192. At step 192, broker proxy server 24 determines whether Trader Y is already logged in to the particular trading system 26, such as based on the current user status data 66 stored in memory 60. If Trader Y is currently logged in to the particular trading system 26, broker proxy server 24 identifies the particular connection 30g through which Trader Y is connected to the particular trading system 26 at step 194. At step 196, broker proxy server 24 establishes and stores as connection data 64 an association between the user relationship between Broker X and Trader Y (established at step 158) and the connection 30g identified at step 194. Thus, when Broker X subsequently sends a message to the particular trading system 26 on behalf of Trader Y, broker proxy server 24 may intercept the message, identify the user relationship between Broker X and Trader Y, identify the appropriate connection 30g associated with the user relationship at step 194, and forward the message to the trading system via the identified connection 30g.
At step 198, broker proxy server 24 communicates a connection notification to all interested users 44, such as described above with reference to step 174. At step 200, the relevant broker application(s) 42 and trader application 36 are updated, such as described above with reference to step 176. Accordingly, at step 202, Broker X may now engage in trading activity in trading system 26 on behalf of Trader Y via the connection 30g identified at step 194. Thus, Trader Y, Broker X, and other brokers 40 currently attached to Trader Y may collectively engage in trading activity in trading system 26 on behalf of Trader Y, including collectively managing trading orders in trading system 26, as discussed above with reference to step 178.
However, if it is determined at step 192 that Trader Y is not currently logged in to the particular trading system 26, broker proxy server 24 does not associate a connection 30g with the user relationship between Broker X and Trader Y (established at step 158). As a result, Broker X is unable to send messages to, or receive messages from, trading system 26 on behalf of Trader Y, at least until Trader Y logs into the trading system 26, as discussed below. Thus, at step 204, broker proxy server 24 waits for Trader Y to log into trading system 26. At some later time, at step 206, Trader Y (via the trader application 36 associated with Trader Y) submits a trading system login request to log into trading system 26, which trading system login request is intercepted by broker proxy server 24. At step 208, broker proxy server 24 assigns, or uses, a particular connection 30g to forward the trading system login request to the trading system 26. At step 210, broker proxy server 24 stores the particular connection 30g as connection data 64 and associates the particular connection 30g with the user relationship between Broker X and Trader Y that was established at step 158. At step 212, the trading system 26 logs Trader Y into the trading system 26 and communicates a login notification to broker proxy server 24 via the connection 30g used at step 208.
At step 214, broker proxy server 24 communicates a connection notification to all interested users 44, such as described above with reference to step 174. The connection notification indicates that Trader Y is connected to trading system 26. At step 216, the relevant broker application(s) 42 and trader application 36 are updated, such as described above with reference to step 176. Accordingly, at step 218, Broker X may now engage in trading activity in trading system 26 on behalf of Trader Y via the connection 30g used at steps 208 and 212. Thus, Trader Y, Broker X, and other brokers 40 currently attached to Trader Y may collectively engage in trading activity in trading system 26 on behalf of Trader Y, including collectively managing trading orders in trading system 26, as discussed above with reference to step 178.
At step 230, a second broker 40, referred to herein as Broker Z, submits an attachment request to “attach” to Trader Y, including a request to establish the requested connection. At step 232, broker proxy server 24 determines whether Broker Z is authorized to attach to Trader Y, such as described above with reference to steps 154 and 156 of
At step 240, broker proxy server 24 identifies that a particular connection 30g is currently assigned, or is being used, for communications between broker proxy server 24 and trading system 26 on behalf of Trader Y. Namely, the identified connection 30g is the connection 30g associated with the user relationship between Broker X and Trader Y at step 172, 185, 196, or 208 of the method of
At step 244, broker proxy server 24 communicates a connection notification to the broker application 42 associated with Broker Z. The connection notification indicates that a connection 30g exists for communicating with trading system 26 on behalf of Trader Y. At step 246, the broker application 42 associated with Broker Z is updated to indicate that Broker Z may now place trading orders or otherwise engage in trading activity in trading system 26 on behalf of Trader Y. In particular, the broker application 42 associated with Broker Z may provide a GUI allowing Broker Z to engage in trading activity in trading system 26 on behalf of Trader Y. Accordingly, at step 248, Broker Z may now engage in trading activity in trading system 26 on behalf of Trader Y via the connection 30g associated with the user relationship at step 242. Thus, Broker Z, Broker X, Trader Y, and other brokers 40 currently attached to Trader Y may collectively engage in trading activity in trading system 26 on behalf of Trader Y, including collectively managing trading orders in trading system 26, as discussed above with reference to step 178.
Detachment and Re-Attachment
At step 260, Broker X logs off of network 10, such as by selecting a “logoff” icon on a GUI display presented to Broker X by broker application 42. At step 262, broker application 42 communicates a logoff notification to broker proxy server 24 indicating that Broker X is logging off or has logged off of network 10. In response to receiving the logoff notification, broker proxy server 24 “detaches” Broker X from Trader Y at step 264, which includes deleting, writing over or otherwise removing the user relationship between Broker X and Trader Y established and stored in memory 60 at step 158 and 160 of the method shown in
At step 266, Broker X logs back into network 10, which may include the performance of any or all of steps 100 through 130 discussed above with reference to the method of
At step 270, broker proxy server 24 determines the current state of the connection 30g, if any, between broker proxy server 24 and the trading system 26 for communicating with trading system 26 on behalf of Trader Y. If broker proxy server 24 determines that the same connection 30g is still assigned, or being used, for communications on behalf of Trader Y, broker proxy server 24, at step 272, (1) re-attaches Broker X to Trader Y by generating and storing as user relationship data 62 a user relationship between Broker X and Trader Y, and (2) re-establishes and stores as connection data 64 an association between the connection 30g and the user relation between Broker X and Trader Y. Accordingly, at step 274, Broker X may now engage in trading activity in trading system 26 on behalf of Trader Y via the same connection 30g as was used before Broker X logged off at step 260.
Alternatively, if broker proxy server 24 determines at step 270 that a new connection 30g has been assigned, or is being used, for communications on behalf of Trader Y, broker proxy server 24, at step 276, (1) reattaches Broker X to Trader Y by generating and storing as user relationship data 62 a user relationship between Broker X and Trader Y, and (2) establishes and stores as connection data 64 an association between the new connection 30g and the user relation between Broker X and Trader Y. Accordingly, the method proceeds to step 274, at which step Broker X may now engage in trading activity in trading system 26 on behalf of Trader Y via the new connection 30g.
Alternatively, if broker proxy server 24 determines at step 270 that no connection 30g is currently assigned, or being used, for communications on behalf of Trader Y—in other words, that Trader Y is not logged into trading system 26—broker proxy server 24, at step 278, (1) reattaches Broker X to Trader Y by generating and storing as user relationship data 62 a user relationship between Broker X and Trader Y, and (2) establishes (or attempts to establish) an association between a connection 30g and the user relationship between Broker X and Trader Y. The manner in which such a connection is assigned depends on whether Trader Y is an active trader or a passive trader. If Trader Y is a passive trader, the process for establishing the association may include one or more steps similar or identical to steps 180 through 190 discussed above with reference to the method of
Particular data stored in table 330 is dynamic over time. For example, the brokers 40 listed in column 344 change over time as brokers 40 attach and detach from various managed traders 38. In addition, the connections listed in column 342 may change over time as connections are assigned, reassigned or otherwise managed by broker proxy server 24.
At step 404, broker proxy server 24 (1) identifies the connection 30g that is being used to communicate messages regarding trading activity of Trader Y with trading system 26; (2) establishes and stores an association between the user relationship between Broker X and Trader Y (established at step 402) and the identified connection 30g; (3) sends a connection notification to all interested users 44, such as described above with reference to steps 194 through 198 of the method of
At step 408, another broker, Broker Z, logs into network 10 and attaches to Trader Y according to the method shown in
At some time, Broker X wishes to place a trading order at trading system 26 on behalf of Trader Y. At step 410, Broker X submits, via a GUI provided by broker application 42, a request to place the trading order at trading system 26 on behalf of Trader Y. At step 412, broker application 42 generates a trading message 500 that specifies Trader Y, as well as various other details of the requested trading order, such as the type of order, the financial instrument, the price, and the size of the order, for example. Trading message 500 generated at step 412 represents (or is similar or identical to) the trading message that would have been generated by the trader application 36 associated with Trader Y if Trader Y, rather than Broker X, had initiated the trading order request.
At step 414, broker application 42 generates a carrier message 502 for trading message 500. At step 416, broker application 42 joins or otherwise associates carrier message 502 with trading message 500. In one embodiment, broker application 42 encapsulates trading message 500 within carrier message 502, as shown in
Returning to
At step 422, carrier message 502 is intercepted by broker proxy server 24. At step 424, broker proxy server 24 de-encapsulates trading message 500 from carrier message 502. At step 426, broker proxy server 24 then delivers trading message 500 to the trading system 26 using the connection 30g associated (at step 404) with the user relationship between Broker X and Trader Y based on information within trading message 500, such as information identifying Trader Y. Trading message 500 may include routing information that may be used to route trading message 500 to the proper portion or module of trading system 26 such that trading system 26 may process trading message 500 appropriately. At step 428, the trading system 26 receives and processes trading message 500, and places the requested trading order in a trading exchange maintained by trading system 26. Trading message 500 appears to the trading system 26 as if it was submitted by Trader Y.
As shown in
At step 438, broker proxy server 24 identifies each broker 40 broker 40 currently attached to Trader Y, including Broker X and Broker Z, based on user relationship data 62 stored in memory 60. At step 440, broker proxy server 24 generates a carrier message 502′ for each broker 40 identified at step 438, including Broker X and Broker Z. As shown in
At step 442, broker application 42 joins or otherwise associates a copy or instance of trading message 500′ with each carrier message 502′. In one embodiment, broker application 42 encapsulates a copy or instance of trading message 500′ within each carrier message 502′. At step 444, the carrier messages 502′ are communicated to each respective broker 40, including Broker X and Broker Z, according to routing information included in each respective carrier message 502′. At step 446, the broker application 42 associated with each broker 40 that receives one of the carrier messages 502′ (including the broker applications 42 of Broker X and Broker Z) de-encapsulates the trading message 500′ from the carrier message 502′ and processes the trading message 500′ accordingly. Thus, by managing user relationship data 62, which indicates which brokers 40 are currently attached to a managed trader 38, broker proxy server 24 may manage the routing of trading messages 500′ to the appropriate users 44.
Although an embodiment of the invention and its advantages are described in detail, a person skilled in the art could make various alterations, additions, and omissions without departing from the spirit and scope of the present invention as defined by the appended claims.
This application is a continuation of U.S. patent application Ser. No. 12/404,662, filed Mar. 16, 2009 (now U.S. Pat. No. 8,725,587 issued on May 13, 2014), which is a continuation of U.S. patent application Ser. No. 10/716,304, filed Nov. 18, 2003 (now U.S. Pat. No. 7,562,045 issued on Jul. 14, 2009), each of which is hereby incorporated by reference herein in its entirety.
Number | Name | Date | Kind |
---|---|---|---|
4949248 | Caro | Aug 1990 | A |
5173939 | Abadi et al. | Dec 1992 | A |
5235642 | Wobber et al. | Aug 1993 | A |
5684950 | Dare et al. | Nov 1997 | A |
6230201 | Guck et al. | May 2001 | B1 |
6408282 | Buist | Jun 2002 | B1 |
6539362 | Patterson, Jr. | Mar 2003 | B1 |
6721746 | Zulpa et al. | Apr 2004 | B2 |
7035819 | Gianakouros | Apr 2006 | B1 |
7146335 | Rose | Dec 2006 | B2 |
D538295 | Noviello | Mar 2007 | S |
7356500 | Waelbroeck et al. | Apr 2008 | B1 |
7457778 | Li | Nov 2008 | B2 |
7562045 | Beadle et al. | Jul 2009 | B2 |
7664675 | Takeda | Feb 2010 | B2 |
7930234 | Grubb | Apr 2011 | B2 |
8027902 | Beadle et al. | Sep 2011 | B2 |
8725587 | Beadle et al. | May 2014 | B2 |
20020023040 | Gilman et al. | Feb 2002 | A1 |
20020083057 | Zulpa et al. | Feb 2002 | A1 |
20020083014 | Brickell et al. | Jun 2002 | A1 |
20020091615 | Salvani | Jul 2002 | A1 |
20020107746 | Jacoby, Jr. | Aug 2002 | A1 |
20020133448 | McGarry et al. | Sep 2002 | A1 |
20030065620 | Galley et al. | Apr 2003 | A1 |
20030088499 | Gilbert et al. | May 2003 | A1 |
20030115291 | Kendall et al. | Jun 2003 | A1 |
20050021836 | Reed et al. | Jan 2005 | A1 |
20120016790 | Beadle et al. | Jan 2012 | A1 |
Number | Date | Country |
---|---|---|
2546418 | Apr 2018 | CA |
1 262 894 | Dec 2002 | EP |
2425197 | Dec 2007 | GB |
11-501423 | Feb 1999 | JP |
2003-526823 | Sep 2003 | JP |
WO 9506918 | Mar 1995 | WO |
WO 99027477 | Jun 1999 | WO |
WO 0207074 | Jan 2002 | WO |
WO 0225533 | Mar 2002 | WO |
WO 02082293 | Oct 2002 | WO |
WO 2007112276 | Oct 2007 | WO |
Entry |
---|
Denning, P.J., “The Science of Computing: The ARPANET after Twenty Years,” American Scientist, vol. 77, No. 6 (Nov.-Dec. 1989), pp. 530, 532-534. |
Barber, M., et al “Do Noise Traders Move Markets/” EFA 2006 Zurich Meetings Paper (Dec. 15, 2005) (abstract). |
O'Brien, P., et al “Analyst Following and Instituional Ownership” Journal o Accounting Research, vol. 28, Studies on Judgement Issues in Accounting and Auditing (1990), pp. 55-76. |
PCT Notification of Transmittal of the International Search Report and the Written Opinion of the International Searching Authority, or the Declaration dated Dec. 15, 2005, for International Application No. PCT/US04/36014, filed Oct. 28, 2004 (8 pages). |
European Communication for Application No. 04819040.9; dated Feb. 15, 2007 (3 pages). |
European Patent Office Examination Report for Application No. 04 819040.9-1238; dated Oct. 24, 2007 (5 pages). |
Notification of Transmittal of the International Search Report and Written Opinion of the International Searching Authority, International Application No. PCT/US04/36125, dated Jan. 18, 2006 (5 pages). |
UK Patent Office Examination Report for Application No. GB0609877.6, dated Jul. 27, 2007 (4 pages). |
USPTO Office Action for U.S. Appl. No. 10/716,304, dated Feb. 19, 2008 (11 pages). |
USPTO Office Action for U.S. Appl. No. 10/716,305, dated Aug. 6, 2008 (59 pages). |
USPTO Notice of Allowance for U.S. Appl. No. 10/716,304, dated Dec. 31, 2008 (7 pages). |
Australian Examiner's Report for Application No. 2004292161, dated Nov. 10, 2009 (2 pages). |
USPTO Office Action for U.S. Appl. No. 10/716,305, dated Jan. 22, 2010 (37 pages). |
Australian Examiner's Report for Application No. 2004292159, dated Jan. 14, 2010 (2 pages). |
Japanese Office Action with English translation for Application No. 2006-541208, dated Mar. 16, 2010 (5 pages). |
Japanese Office Action with English translation for Application No. 2006-541206, dated Mar. 16, 2010 (7 pages). |
Chinese Office Action with English translation for Application No. 2004800402343, dated Apr. 14, 2010 (9 pages). |
European Patent Office Communication and Official Action for Application No. 04796831.8, dated Jun. 2, 2010 (5 pages). |
International Preliminary Report on Patentability for International Application No. PCT/US04/36125, dated May 22, 2006 (4 pages). |
International Preliminary Report on Patentability for International Application No. PCT/US04/36014, dated May 22, 2006 (4 pages). |
USPTO Pre-Brief Appeal Conference Decision for U.S. Appl. No. 10/716,305, Aug. 11, 2010 (2 pages). |
Chinese Office Action with English translation for Application No. 2004800402377, dated Jun. 8, 2010 (14 pages). |
Japanese Office Action with English translation for Application No. 2006-541206, dated Nov. 9, 2010 (6 pages). |
Japanese Office Action with English translation for Application No. 2006-541208, dated Nov. 9, 2010 (7 pages). |
USPTO Notice of Allowance and Fees Due for U.S. Appl. No. 10/716,305, dated May 27, 2011 (8 pages). |
Japanese Office Action with English translation for Application No. 2006-541206, dated May 31, 2011 (4 pages). |
Japanese Office Action with English translation for Application No. 2006-541208, dated May 31, 2011 (5 pages). |
Australian Notice of Acceptance for Application No. 2004292161, dated Aug. 16, 2011 (3 pages). |
Australian Examiner's Report for Application No. 2004292159, dated Sep. 28, 2011 (2 pages). |
Japanese Notice of Allowance for Application No. 2006-541206, dated Oct. 25, 2011 (3 pages). |
Japanese Notice of Allowance for Application No. 2006-541208, dated Oct. 25, 2011 (3 pages). |
Canadian Office Action for Application No. 2546413, dated Mar. 22, 2012 (6 pages). |
Chinese Office Action with English translation for Application No. 200480040237.7, dated Apr. 18, 2012 (13 pages). |
Canadian Office Action for Application No. 2546418, dated Apr. 24, 2012 (2 pages). |
Chinese Office Action with English translation for Application No. 200480040234.3, dated Nov. 30, 2012 (10 pages). |
Chinese Office Action with English translation for Application No. 200480040234.3, dated May 3, 2012 (5 pages). |
USPTO Office Action for U.S. Appl. No. 13/244,994, dated Apr. 6, 2012 (5 pages). |
USPTO Office Action for U.S. Appl. No. 13/244,994, dated Aug. 29, 2012 (25 pages). |
Chinese Office Action with English translation for Application No. 200480040237.7, dated Jul. 13, 2011 (12 pages). |
Australian Examiner's Report for Application No. 2011236031, dated May 17, 2013 (3 pages). |
Japanese Office Action with English translation for Application No. 2011-217630, dated Apr. 9, 2013 (6 pages). |
Australian Examiner's Report for Application No. 2011253641, dated Mar. 5, 2013 (3 pages). |
Canadian Office Action for Application No. 2546418, dated Jul. 29, 2013 (3 pages). |
Canadian Office Action for Application No. 2791148, dated Jul. 11, 2013 (5 pages). |
USPTO Office Action for U.S. Appl. No. 13/244,994, dated Apr. 9, 2013 (24 pages). |
Japanese Office Action with English translation for Application No. 2010-208063, dated Nov. 27, 2012 (4 pages). |
Japanese Office Action with English translation for Application No. 2011-217642, dated Apr. 2, 2013 (4 pages). |
Chinese Office Action with English translation for Application No. 200480040234.3, dated Dec. 14, 2011 (11 pages). |
Canadian Office Action for Application No. 2,546,413,dated Sep. 4, 2013 (7 pages). |
Uspto Office Action for U.S. Appl. No. 13/244,994, dated Oct. 25, 2013 (24 pages). |
Chinese Office Action with English translation for Application No. 200480040237.7, dated Nov. 28, 2013 (9 pages). |
Japanese Office Action with English translation for Application No. 2011-217630, dated Oct. 29, 2013 (6 pages). |
Canadian Notice of Allowance for Application No. 2791148, dated Feb. 20, 2014 (1 page). |
Number | Date | Country | |
---|---|---|---|
20150020166 A1 | Jan 2015 | US |
Number | Date | Country | |
---|---|---|---|
Parent | 12404662 | Mar 2009 | US |
Child | 14275265 | US | |
Parent | 10716304 | Nov 2003 | US |
Child | 12404662 | US |