The present invention relates to the field of methods of transmitting data, in particular in the stock market field.
In the field of stock market data transmission, it is known to use a three-level architecture as shown in
In order for the clients 3a, 3b, 3c to be able to react as quickly as possible to fluctuations of the stock market 1, it is important for the distribution server 2 to transmit the update data emerging from the stock market in a quick, efficient and integral fashion.
When the distribution server contains an original order book in a first instant t, and the stock market issues data to update the order book in the instant t+1, it is necessary to send, as soon as possible, the new order book obtained by updating the original order book.
An order book 4 has, in a known fashion, of a double list of purchases and sales as shown in
A first known solution provides for the updating of the order book in the distribution server with a view to generating an updated order book, and then sending this entire updated order book to the clients 3a, 3b, 3c.
This method has the disadvantage of requiring the transmission of the entire order book, which corresponds to a considerable transmission of data and, therefore, to a considerable transfer time.
This transfer time is sometimes incompatible with the real-time processing requirements of clients 3a, 3b, 3c.
One of the aims of the present invention is therefore to maintain an order book updated in the clients' 3a, 3b, 3c workstation while avoiding the transmission of all the data in the updated order book.
Patent application FR-2 755 559 describes, in particular, a method of transmitting updated data from a central server to at least one subscriber workstation, by means of a digital communication network in which each subscriber can connect his/her workstation to a server. The method of transmitting updated data comprises a step of comparing the previously stored data with the transmitted data and, in particular, a step of saving the transmitted data instead of the stored data only when they are different.
The method described in patent application FR-2 755 559 particularly enables cost reductions, since only the different data are saved in the memory of the client workstation, in contrast to saving all the data transmitted replacing the data stored in accordance with the previously mentioned method.
The invention relates to a method that makes it possible further to reduce the costs and increase the security of the transmission by minimising the amount of data transmitted and by maintaining an organised order book on the client workstations.
This aim is achieved according to one aspect of the invention by a method of remotely updating an original order book comprising order data indexed according to at least one parameter stored in a distribution server. The method includes receiving update data including at least one parameter attribute in the distribution server. Then, according to the method, the next step consists of comparing the update data with at least part of the original order book and identifying, according to the comparison, at least one index of the attribute of the update data, as well as a first action regarding the original order at index level. Finally, the method comprises transmitting the index and the first action relating to the original order at index level to at least one client workstation.
When performed in this way, the method according to the invention makes it possible only to transmit the data that has changed, unlike the method described in the French patent application mentioned above, which transmitted all the data and only saved the data that had been modified in the client workstation.
The embodiment of the method according to the invention is possible in particular thanks to the presence of the indexes. Indeed, according to the method set out in the invention, the comparison of the indexes is what makes it possible to identify the data that have been modified, and thereby to enable the selection of the modified data only in order to transmit them alone.
The first action is preferably determined from among deletion, insertion or modification in the original order book.
The parameter corresponds, for example, to the sale or purchase price and makes it possible to index the order book, each line of the book corresponding to a unique index.
According to a first embodiment of the invention, the update data comprise at least one data element relating to a second update action associated with the attribute of the parameter, the first action relating to the original order at index level being identical to the second action.
In this case, update data are received, for example, in the form of an insertion order at a given price corresponding to the second update action. According to the invention, the index at which this insertion should take place is then determined, and this index as well as the order for insertion at the level of this index are transmitted to the client. According to the invention, if an insertion order is received, this same type of insertion action is transmitted to the client.
According to a second embodiment of the invention, the update data comprise an updated order book, the first action relating to the original order book at index level being determined by the difference between the updated order book and the original order book.
In this case, the stock market transmits data in the form of an image that directly corresponds to the updated order book. This updated order book is then received by the distribution server. In this case, the updated attributes are compared with the attributes of the original order book in order to determine the differences, and the differences, the actions, for example such as insertion, modification or deletion, associated with the differences are deduced. These differences then form an action at index level that will be transmitted to the client workstations.
The invention will be understood better from reading the description, provided below for purely explanatory reasons, of an embodiment of the invention, made in relation to the appended figures, in which:
The following terms are defined in the framework of the present application:
A “stock market operation by differential” relates to a line update, insertion or deletion.
A “stock market operation by image” relates to the reception of an updated order book image.
It is also understood that, according to the present application, the transmissions between different computer stations can be carried out by a transmission network. In particular, the transmissions between the stock market and the distribution server are preferably carried out by a data transmission network, and the transmissions between the distribution server and the client workstations are preferably carried out by a data transmission network.
“Quantity”
“Price”
“Timestamping”
“Agent code”
“Price type”
It also comprises lines made up of attributes 40.
It is also possible to define a “Key” parameter corresponding to a series of attributes that make it possible to define a line in a unique fashion.
The index 41 of line 1 , 2, 3, . . . , n corresponding to the position of the line in a series of lines is also defined.
In the field of stock market data transmission, the lines are always classified according to price and then by order of insertion. The prices are classified in ascending order for Purchases and in descending order for Sales. In the case of identical prices, they are classified in ascending order of insertion for purchases and for sales. These price attributes 40 form an indexing parameter 102 and therefore allow indexing of the order book 4. It is evident that other indexing parameters can be considered according to the invention.
The order book ultimately includes of all the purchase and sale orders.
As shown in
line creation action: all the attributes 40 that constitute a line (thereby including the fields that allow the construction of the key parameter) must necessarily be supplied.
line deletion action: the attribute or attributes 40 that allow the constitution of the Key parameter must be supplied.
line modification action: the attribute or attributes 40 that allow the constitution of the Key parameter must be supplied in addition to those to be modified.
Initially, the key indexing parameter referenced by step 102 in
Example of a line Key made up of three attributes:
Example of constructing the Key with the help of attributes:
Secondly, the type of action to be applied is managed according to step 103, shown in diagrammatic fashion in
According to the invention, and for each of the actions mentioned above—deletion, modification, insertion—, the line corresponding to the action to be applied is searched. For this purpose, the line index is determined according to steps 104, 105 and 106, respectively for the actions of deletion, modification and insertion. The line index is determined in the list of lines for a given direction (Purchase or Sale). It is a question of reconstructing, for each of the scanned lines, a so-called “updated key”, which is then compared with the previously constructed key, called “original key”. In the framework of a deletion or modification operation, the chosen index is then the index of the line in which the key is identical to the supplied key.
In the framework of an insertion operation, the chosen index must make it possible to retain the consistency of the price classification. In the framework of a purchase limit, the limits are classified in descending order by price. When scanning the limits, starting with the first limit, the index returned will be the index of the first limit found in which the price is strictly lower than the price of the received limit. In the framework of a sale limit, the limits are classified in ascending order by price. When scanning the limits, starting with the first limit, the index returned will be the index of the first limit found in which the price is strictly higher than the price of the received limit.
The following algorithm is an example of searching for a line index using the “Key” parameter:
The line index is determined in the list of lines for a given direction (Purchase or Sale).
The following algorithm is an example of a line index search with the price parameter dedicated to the Purchase direction:
The following algorithm is an example of a line index search with the price parameter dedicated to the Sale direction:
Lines are deleted together with their index. The deletion step is shown by reference 107 in
The following algorithm is an example of deleting a limit:
Line attributes are modified by selecting the line via its index for a given direction (Purchase or Sale), and then by modifying it with the new attributes supplied. The modification step is illustrated by step 108 in
The following algorithm is an example of modifying the Quantity attribute of a line:
The insertion of a line, shown in a diagrammatic fashion by reference 109 in
The following algorithm is an example of inserting a line:
The index and update data are transmitted to the client workstation according to step 110 depicted in
When the distribution server 2 retransmits the stock market data to the clients 3a, 3b, 3C, the emission of the update data comprises, in addition to stock market data, the index of the line to which the action refers. In this way, client workstations can skip steps 102 and 104 to 106, and be dedicated exclusively to steps 107 to 109. This invention therefore results in optimised client treatment.
The following is an example of transmitting updated data in the original order book as shown in
As shown in
The updated data is processed differently if original data exist in the price distribution server database. In addition, it is advisable to check according to step 201 that the original book exists.
If it does not exist, a general deletion order is issued to the client workstations according to the step bearing reference 204 in
This method has the aim of defining a series of actions (creation, modification, deletion). When applied to the original data, these actions make it possible to form the updated order book according to step 205 (
The lines in the original book and in the received book are compared according to step 202. The two order books are compared respectively for the so-called purchase lines and for the so-called sale lines. The purchase lines of the original data are compared with the purchase lines of the updated data. The same applies to sales.
The lines are compared with their matching index. After comparison, an action constituting future updated data can be generated: it is therefore determined in step 203 whether an action was generated. There are four possible scenarios:
the updated line is identical to the original line. No action is generated.
the updated line is different to the original line. A modification action is then generated on the identified line (this results in a step 205).
the updated line is present but the original line is not. An insertion action is then generated on the identified line (this results in a step 205).
the original line is present but the updated line is not. A deletion action is then generated on the identified line (this results in a step 205).
The following algorithm is an example of comparing a line:
The comparison is carried out in two stages for a notion of optimisation. A first test is only comparing the price of the limits. If this comparison turns out to be positive, all the attributes that make up the limits will be compared.
The following algorithm is an example of comparing Limits for generating actions:
If no action is generated, the original data are strictly identical to the updated data. In this case, no update information is sent to the client applications, since no data needs to be updated. The original data are no longer updated.
If no original data is present, the action of deleting the entire book is then sent to the client applications. At this stage, we are certain that the client applications have an order book that is identical to that of the server.
The original data (present or not) are then replaced with the updated data.
The updated data sent to the client applications result from the comparison phase or step 202. These data can comprise actions such as insertion, deletion or modification. These updated data result from the comparison between the received image of the order book and the original order book. Each of these actions is optimised because the line index is supplied. These client applications, as in the previously described embodiment of the invention, are dedicated exclusively to steps 107 to 109. As in the preceding embodiment of the invention, the indexes of the lines to be inserted, deleted or modified determined at the time of comparing the lines, are transmitted to the client workstations.
If the updated data sent to the client applications comprise insertion actions only, the client applications are dedicated exclusively to step 109 of the preceding embodiment of the invention.
The following is an example of transmitting updated data in the original order book as shown in
| Number | Date | Country | Kind |
|---|---|---|---|
| 0513147 | Dec 2005 | FR | national |