Electronic Communication Network
20200020033 · 2020-01-16
Inventors
- Anton Gunzinger (Zürich, CH)
- Edgar Blum (Niederrohrdorf, CH)
- Hans Burkhard (Kloten, CH)
- Rico Piantoni (Wila, CH)
- David Müller (Hinwil, CH)
- Markus Berner (Brugg, CH)
- Samuel Zahnd (Frauenfeld, CH)
Cpc classification
H04J3/0638
ELECTRICITY
International classification
Abstract
An electronic communication network comprises a server platform and client data processing devices. Each client data processing device is configured to submit electronic messages to the server platform, provided with a timestamp. The server platform is configured to process incoming electronic messages strictly in a sequence corresponding to the timestamp. The electronic communication network comprising at least one switch, wherein the switch is arranged to receive electronic messages from a plurality of the client data processing devices. the switch comprises a buffer and is configured to store the electronic messages produced by the client data processing devices in the buffer, and to transfer the electronic messages in a manner sorted according to the timestamp provided to each electronic message by the time generator of the client data processing device submitting the electronic message, so that the electronic message with the oldest time is transferred first.
Claims
1. An electronic communication network comprising: a server platform and a plurality of client data processing devices; wherein each client data processing device is configured to submit electronic messages to the server platform, and the server platform is configured to process these electronic messages; wherein each client data processing device comprises a time generator and is configured to provide each electronic message with a timestamp which represents the point in time of the submission of the electronic message; and wherein the server platform is configured such that incoming electronic messages are processed by the server platform strictly in a sequence corresponding to the timestamp; the electronic communication network comprising at least one switch, wherein the switch is arranged to receive electronic messages from a plurality of the client data processing devices, comprises a buffer and is configured to store the electronic messages produced by the client data processing devices in the buffer, and to transfer the electronic messages in a manner sorted according to the timestamp provided to each electronic message by the time generator of the client data processing device submitting the electronic message, so that the electronic message with the oldest time is transferred first.
2. The electronic communication network according to claim 1, wherein at least one client data processing device comprises a network card, via which the client data processing device is connected to the server platform, and wherein the time generator is integrated into the network card.
3. The electronic communication network according to claim 2, wherein the time generators integrated into the network cards of all client data processing devices use identical hardware.
4. The electronic communication network according to claim 2, wherein the time generators of the client data processing devices run with a network clock cycle defined by the server platform.
5. The electronic communication network according to claim 1, wherein the time generators are continuously repeatedly synchronisable during operation, by way of the server platform or a trustworthy external source.
6. The electronic communication network according to claim 1, wherein the switch is configured to wait for a certain time before transfer of an electronic message, in order to compensate for possible running time differences of different electronic messages.
7. The electronic communication network according to claim 1, comprising two or more levels of switches which are linked to one another in a tree-like manner, wherein each switch on the two or more levels of switches comprises a buffer and is configured to store electronic messages produced by the client data processing devices in the buffer and to transfer the electronic messages in a manner sorted according to the timestamp provided to each electronic message by the time generator of the client data processing device submitting the electronic message, so that the electronic message with the oldest time is transferred first.
8. The electronic communication network according to claim 1, comprising a second server platform which is configured such that all electronic messages in the server platform and in the second server platform are processed independently of one another and according to defined rules which are identical for the first server platform and the second server platform.
9. The electronic communication network according to claim 1, wherein the server platform or each server platform comprises a prioritiser which carries out a sorting according to the timestamp and/or suppresses identical electronic messages arriving multiple times.
10. The electronic communication network according to claim 1, wherein each trader data processing device is configured to monitor the number of unacknowledged electronic messages submitted to the trading platform and is configured such that a predefined maximal number of such unacknowledged electronic messages is not exceeded at any time.
11. The electronic communication network according to claim 10, wherein a sorting of the electronic messages according to the sequence corresponding to the timestamp is carried out in a unit with a buffer, and wherein the size of the buffer is selected such that it can accommodate the predefined maximum number of electronic messages.
12. The electronic communication network according to claim 10, wherein the server platform is structured in a tree-like manner with network nodes, and wherein sufficient buffer memory is present in each network node, in order to intermediately store all unanswered electronic messages of the clients data processing devices assigned to the network node.
13. An electronic communication network comprising a server platform; and a plurality of client data processing devices; wherein each client data processing device is configured to submit electronic messages to the server platform, and the server platform is configured to process these electronic messages; wherein each client data processing device is configured to monitor the number of unacknowledged electronic messages submitted to the server platform and is configured such that a predefined maximal number of such unacknowledged electronic messages is not exceeded at any time.
14. The electronic communication network according to claim 13, wherein the server platform comprises a switch with at least one buffer, and wherein the size of the buffer or buffers is selected such that the switch can store at least the maximal number of electronic messages.
15. The electronic communication network according to claim 13, wherein a predefined credit balance is given to the client data processing device, that a credit is deducted on sending each electronic message and is credited again on receiving an acknowledgement of receipt of the electronic message, and that the client data processing device cannot send electronic messages as long as the credit balance is used up.
16. An electronic communication network, comprising a first server platform, a second server platform; and a plurality of client data processing devices; wherein each client data processing device is capable of generating electronic messages and sending them; wherein each client data processing device is connected to the first as well as second server platform, so that each electronic message gets to the first as well as to the second server platform; and wherein the system is configured such that the first server platform as well as the second server platform processes incoming electronic messages according to defined rules which are identical for the first and the second server platform; and wherein the first and the second server platform in each case comprise a prioritiser which suppresses the electronic messages which are identical to an already arrived electronic message.
17. The electronic communication network according to claim 1, wherein a state of the system can be represented by a number of data elements, and wherein the trading system is configured to send state data in each case representing the current state of the data element, in packets, in a continuous manner during operation and intermittently with the sending of electronic messages, to at least all client data processing devices, at least until a data packet has been sent for each data element representing the state of the system.
18. The electronic communication network according to claim 17, configured to send the state data in a continuously running manner, by way of the sending of state data for each data element beginning from afresh in each case after the sending of a data packet for each data element.
19. The electronic communication network according to claim 17, wherein each client data processing device is configured to process an electronic message concerning a data element, when state data for this data element is present, and to reject this electronic message when no state data for this data element is present.
20. The electronic communication network according to claim 7 comprising several levels of switches, wherein each client data processing device is connected to the server platform data processing device via an identical number of switches.
Description
DESCRIPTION OF THE DRAWING
[0066] Embodiment examples and principles of the invention are hereinafter explained by way of the Figures. There are shown in:
[0067]
[0068]
[0069]
[0070]
[0071]
[0072]
DETAILED DESCRIPTION
[0073] Network architecture which is favourable for the rapid communications for stock exchange systems is represented in
[0074] The switching logic of the at least one switch can optionally be such that it only permits messages from a client data processing device to the server platform data processing device, from the server platform data processing device to a certain client data processing device and from the server platform data processing device to all client data processing deviceswhich means that the communication pattern resulting in the electronic stock exchange trade is implemented in the switching logic of the network at the very beginning.
[0075] A division of the function of the matcher onto several matchers is also possible, and this is represented symbolically in
[0076] The uppermost switch (i.e. the uppermost network node) can moreover optionally have a further output which stores all relevant messages which are transferred by this switch, in an archive A and thus makes this information available for example to the backoffice, for further processing. This option exists independently of whether only one matcher or, as in
[0077] The inner circuitry of a switch S is represented symbolically in
[0078] In
[0079] A message (data packet; in particular with an order) is transmitted from the client C.sub.0 . . . C.sub.n via a transmitter Tx (a transmitter component). Thereby, a conversion for example into a serial data format takes place. This is received in the switch S and again converted in parallel (KDRx.sub.0 . . . KDRx.sub.n) and written into the buffer (UB.sub.0 . . . UB.sub.n). Thereby, a dedicated buffer is assigned to each first receiver (KDRx.sub.0 . . . KDRx.sub.n; i.e. to each downlink), in the drawn embodiment example. It would also be possible to provide a central buffering in alternative embodiments.
[0080] The first arbiter UA decides on which packet is transferred further and controls the multiplexer UM accordingly. The data is now converted by the first switch transmitter KUTx again into a serial protocol, transmitted and converted again into parallel format by a matcher receiver MRx. The message reaches the matcher M via an optional matcher buffer MB.
[0081] If now the matcher M sends a message (for example the acknowledgment of receipt of an order) to a specific client Co . . . Cn, then this message is converted via a matcher transmitter MTx again into a serial format, transmitted and received by the second switch receiver KURx and converted again into a parallel format. The second arbiter DA, by way of the address, now decides which client C.sub.0 . . . C.sub.n is to obtain the message, and closes the respective switch DD.sub.0, DD.sub.1 . . . or DD.sub.n. The message is subsequently transmitted via a second switch transmitter KTDx.sub.0 . . . KDTx.sub.n to the respective client-receiver Rx.sub.0 . . . Rx.sub.n and is now available to the client C.sub.n for further processing.
[0082] Apart from the specific communication between the matcher and a specific client C.sub.0 . . . C.sub.n and which has been described above, there is yet the broadcast case: matcher to all clients C.sub.0 . . . C.sub.n. This case differs from the specific case in that the second arbiter DA recognizes that it is the case of a broadcast message and now closes all switches DD.sub.0 . . . DD.sub.n, so that finally the data packets are transmitted to all clients C.sub.0 . . . C.sub.n.
[0083] According to the first aspect, each client is provided with a time generator, here in the form of a precisely synchronized clock CLK.sub.0 . . . CLK.sub.n. The time reference for this clock can thereby be set by the matcher or by the uppermost network node (the uppermost switch), by way of this periodically sending out reference time messages, which then reset the local clocks CLK.sub.0 . . . CLK.sub.n. The actual clock cycle can thereby be produced by a local oscillator or also by the global network clock cycle which in turn is set by the matcher M. According to the first aspect, each message from the client C.sub.0 . . . C.sub.n is now provided with a timestamp, and the network system ensures that older messages always arrive at the matcher first of all; the network therefore sorts the messages on account of the time. This function here is effected by way of the first arbiter UA transferring the older message first of all. The arbiter must await at least the time (waiting time) which arises due to unequal construction manners (e.g. cable lengths, component tolerances), so that this selection take its course fairly. Only then can the arbiter make its decision. The messages are therefore ordered strictly according to time, on each uplink or at least on the uplink of the uppermost network node, and with this arrive at the trading system M in the correct temporal sequence (also via several switch levels).
[0084] Even with such architecture, it may still occur that individual clients C.sub.0 . . . C.sub.n send many messages, and a switch S thus become overloaded. This would be manifested in a buffer overflow in one of the buffers UB.sub.0 . . . UB.sub.n. A credit system can be introduced according to the second aspect, in order to prevent this: the trading system allots credits to all clients C.sub.0 . . . C.sub.n. A credit permits the client to send an order (or more generally: a message). The number of credits is so large that an individual client can still operate at full speed in the case of a non-loaded system and that the individual buffers do not overflow even with a highly loaded system. A credit is deducted per message and is only credited when an acknowledgment of receipt has been sent from the matcher to the client.
[0085] A system which is redundant according to the third aspect of the invention is shown in
[0086] The matcher M is duplicated to M*, as well as the network with the switches Si,j with Si,j*, in
[0087] The received message flows are transferred to the respective other trading system (PS(t) and PS*(t)), in order to ensure that both trading systems are in possession of all information, even with a partial failure of the network. So that their individual message flows are not favoured by the transmission, these are delayed by a delay time TD and TD*. The prioritisers P and P* now ensure that messages with earlier timestamps are taken first of all. Identical messages (which arrive via the two independent networks) are moreover suppressed in the prioritiser P. One can therefore guarantee that identical, temporarily ordered message flows are transmitted to the actual trading systems M and M*.
[0088] For reasons of redundancy, in each case two clocks CLK; CLK* can also be present on the part of the client data processing devices C.sub.0 . . . C.sub.n. For example, both matchers can continuously inform over the course of time, and the information of the one matcher M serves for the synchronization of the one clock CLK, whilst the other matcher M* synchronizes the other clock CLK*. However, only the one time basis is used for the timestamp of the message sent twice, so that the timestamp is completely identical on both channels. For example, one can envisage a certain one of the clocks being responsible for the timestamps, as long as it functions, or one can ascertain as to which is more reliable via suitable algorithms, etc.
[0089] The implementation into a system as is represented in
[0090] As in the case of
[0091] The connections C1 . . . Cm in
[0092] A further challenge is the resynchronisation of a client C.sub.0 . . . C.sub.n or of a matcher in the case that such a unit is also to participate again in the current trading affairs after an interruption. A lot of data which is based on the already executed transactions is produced by the complete trading system in normal operation. In the case of a restart, this places very high demands upon all participants, due to the fact that they need to synchronize again. This, as a rule was effected in the past by a reference picture of the current status and a tracking of all transactions since the reference picture. However, in this manner it can last a very long time until the unit is synchronized again, if the system is operated at the very limits of its capacity and no longer has any capacity for the tracking.
[0093] According to the fourth aspect of the invention, the synchronization is effected in steps. The functioning manner is explained in
[0094] The array as is represented in
[0095] The fields which have a grey background in
[0096] At least one individual entry can be synchronized for example after each transaction in the trading system (point in time t). If the trading system is not used to capacity, then several entries can also be effected. If now a new transaction (for example a change of an existing order, due to a part having been implemented by a purchase or sale) is effected on an entry which was already renewed (point in time t+1 in
[0097] The trading system does not need to be bothered at all as to whether of the client data processing devices C.sub.0 . . . C.sub.n or partner trading systems are presently re-synchronizing thanks to this mechanism; the trading system simply does its task and arbitrary subsystems can autonomously resynchronize again. A large number of clients can simultaneously resynchronize in an autonomous manner thanks to this procedural manner.