 full-text |
 print |
 pdf |
 permalink |
Inventors
Tseung, Lawrence C. N.
Application #
266473
Filed
Nov-2-1988
Published
Jul-30-1991
Current US Class
340/825.5 370/432 709/224 714/4 714/748
International Classes
H04L 001/22; G08C 025/04
Field of Search
371/32 371/33 340/825.05 340/825.5 364/200 364/222.2 364/242.95 370/91 370/92 370/94.1 370/94.3
Examiners
Atkinson; Charles E.
Attorney, Agent or Firm
Nixon & Vanderhye
US Patent References
| 4654480 |
|
Method and appar... |
|
| 4654654 |
|
Data network ackno... |
|
| 4706081 |
|
Method and appar... |
|
| 4725834 |
|
Reliable broadcast... |
|
| 4807224 |
|
Multicast data distri... |
|
| 4845658 |
|
Information method... |
|
Referenced by:
View Backward References
Citation
Cite This Patent
More From Subclass 4
More From Class 714
|
Abstract
A system that guarantees reliable data transmission for one-to-many and/or many-to-many communications amongst data processing stations includes several dedicated functions/stations distributed across a communications network. One or more general participant stations connected to a shared communications facility (e.g., a communications network) serves as a source and/or destination of information. A retransmission station receives input data from the general participant stations on a one-to-one basis, generates a special message header, and retransmits the message on the network. A designated recorder station ensures messages sent from the retransmission station are correct. This designated recorder station effectively communicates with the retransmission station on a one-to-one basis over the network, detects missed or corrupted messages, and can request the retransmission station to resend again. The designated recorder station also acknowledges reception of messages from the retransmission station. A playback recorder station listens to and stores the messages from the retransmission station either entirely or selectively. If this station detects missing or corrupted messages, it obtains the correct information from the designated recorder station using one-to-one communications. If a general participant station detects missing or corrupted messages, it obtains the correct information from this playback recorder station using one-to-one communications. A powered off general participant station can regain all the missed messages from the playback recorder station. An optional management station controls orderly start and stop of group communications or conferences and may also handle secure, confidential communications. Examples are provided to show how this guaranteed, reliable, one-to-many or many-to-many system can be applied to overcome previously unsolved problems.
Claims
What I claim is:
1. A method of providing guaranteed reliable broadcast data communications to plural digital signal processing stations connected to a digital communications network, said method comprising the steps of:
(a) originating a digital signal message;
(b) assigning a global identifier to said message;
(c) broadcasting said message together with said assigned global identifier over said communications network;
(d) receiving and acknowledging said broadcasted message with a designated recorder station; and
(e) receiving said broadcasted message correctly with substantially 100% reliability at each of said plural stations without requiring acknowledgements from said plural stations.
2. A method as in claim 1 wherein said receiving step (e) includes the steps of:
receiving said broadcasted message with a playback recorder station different from said designated recorder station;
testing for correct receipt of said broadcasted message by said playback recorder station; and
if said testing step reveals said playback recorder station failed to correctly receive said broadcasted message, requesting said designated recorder station to communicate a version of said message over said network to said playback recorder station so as to guarantee said playback recorder station correctly receives said message.
3. A method as in claim 2 wherein said receiving and acknowledging step (d) includes the steps of introducing a time delay before acknowledging said broadcast message with said designated recorder station, and varying said time delay in response to receipt of requests from said playback recorder station to communicate a version of said message over said network to said playback recorder station.
4. A method of ensuring guaranteed reliable data communications between more than two general participant data processing stations all connected to a digital communications network, said method comprising the steps of:
(a) performing a first phase of message communications, said first phase comprising the following steps:
(a1) originating a digital message at a first of said general participant data processing stations,
(a2) transmitting said digital message over said digital communications network, and
(a3) receiving said digital message communicated by said transmitting step (a2) with a retransmission station connected to said network; and
(b) performing a second phase of message communications, said second phase comprising the following steps:
(b1) assigning a global identifier to said message received by said receiving step (a3), and
(b2) broadcasting said message together with said global identifier from said retransmission station over said communications network,
(b3) receiving said broadcasted message by each of said general participant stations correctly with substantially 100% reliability without requiring acknowledgement of said broadcasted message from any of said general participant stations;
wherein said step (b3) includes the additional step of guaranteeing said broadcasted messages are received by a designated recorder station also connected to said network, including the following steps:
(i) receiving said broadcasted messages with said designated recorder station,
(ii) testing for correct reception of said messages by said designated recorder station, and
(iii) generating a positive acknowledge message with said designated recorder station for those messages said testing step reveals said designated recorder station correctly received.
5. A method of providing guaranteed reliable secure digital message exchanges over a digital communications network to plural general participant data processing stations connected to said network, said method comprising the steps of:
(a) generating a data message with a first general participant station;
(b) sending said data message over said digital communications network from said first general participant station to a further station;
(c) encrypting said data message at said further station with a conference encryption key;
(d) broadcasting said encrypted message over said network to said plural general participant stations using a guaranteed reliable one-to-many technique;
(e) providing a subset of said plural general participant stations beforehand with a preassigned conference decryption key corresponding to said conference encryption key; and
(f) independently decrypting said encrypted message only at said general participant stations within said subset using said preassigned conference decryption key.
6. The method of claim 5 wherein said further station is a management station.
7. The method of claim 5 wherein said encrypting step (c) and broadcasting step (d) are performed by the same combined management/retransmission station.
8. The method of claim 5 wherein said broadcasting step (d) includes the following steps:
(i) broadcasting said message with a retransmission station;
(ii) testing for correct receipt of said broadcasted message at each of said plural general participant stations; and
(iii) communicating said message from said retransmission station to those general participant stations, if any; said testing step (ii) reveals did not correctly receive said broadcasted message.
9. The method of claim 5 wherein said steps (c) and (d) are performed by the same data processing station.
10. The method of claim 5 further including the step of authenticating said first general participant station before performing said encrypting step (c).
11. The method of claim 5 wherein:
said sending step (b) comprises the step of encrypting said message with an individualized encryption key preassigned and corresponding to said first general participant station and communicating said encrypted message to said further station; and
said method further includes the step of decrypting said message at said further station with a decryption key corresponding to said first general participant station individualized encryption key before performing said encrypting step (c).
12. The method of claim 5 wherein:
said sending step (b) includes sending a plurality of fields of said message;
said encrypting step (c) comprises encrypting said plural fields with corresponding plural different encryption keys;
said providing step (e) comprises the step of providing only some of said plural different keys to said authorized general participant stations; and
said decrypting step (f) comprises decrypting some but not all of said plurality of fields encrypted by said encrypting step (c).
13. A method of providing secure one-to-many and many to-many data communications over a digital signal communications network using private and public keys, said network being of the type which permits plural general participant data processing stations to communicate with one another via digital messages, said method comprising the steps of:
(a) encrypting a data message to be broadcasted with a private conference key corresponding to a first general participant station;
(b) broadcasting the enhanced encrypted data message over said communications network to said plural general participant stations connected to said network using a guaranteed reliable one-to-many technique;
(c) pre-authorizing ones of said plural general participant stations beforehand by providing said stations with a public conference key which together with said private conference key forms a private and public key pair; and
(d) decrypting said enhanced encrypted data message at said pre-authorized ones of said plural general participant stations using said public conference key.
14. The method of claim 13 wherein said broadcasting step (b) comprises the following steps:
(i) assigning a global identifier to said encrypted message; and
(ii) broadcasting said message together with said assigned global identifier over said communications network.
15. In a distributed data processing system of the type including a first data processing station connected by a common digital communications network to plural additional stations, said first data processing station being a source of shared data, a method of accommodating sudden changes in demand for computing resources without overloading the first data processing station, said method comprising the following steps:
(a) providing non-shared information in each of said additional data processing stations;
(b) broadcasting shared information as messages from said first data processing station to said additional data processing stations over said communications network using a guaranteed reliable one-to-many technique;
selecting said messages by said additional data processing stations based on the contents of said messages; and
(d) changing the number of said additional data processing stations without significantly affecting the loading of said first data processing station.
16. The method of claim 15 wherein said broadcasting step (b) comprises the following steps:
(i) originating said shared information messages;
(ii) assigning global identifiers to said messages;
(iii) broadcasting said messages together with said assigned global identifiers over said communications network; and
(iv) correctly receiving said messages by each of said additional stations without requiring acknowledgements from said additional stations.
17. A method as in claim 15 wherein said broadcasting step (b) includes the step of correctly receiving each of said messages with each of said plural data processing stations without requiring acknowledgement messages to be generated by said plural stations in response to said broadcasted messages.
18. A method as in claim 17 wherein said correctly receiving step comprises the following steps:
testing for correct receipt of said broadcasted messages at each of said plural stations;
generating request messages only from those of said stations said testing step reveals failed to correctly receive said broadcasted messages; and
retransmitting said incorrectly received messages, if any, over said network from said retransmission station to said stations generating request messages using a known reliable one-to-one communications protocol.
19. A method of providing guaranteed reliable data communications over a digital communications network of the type connected to plural general participant stations to provide demonstrations at each of said plural general participant stations without requiring specialized demonstrator software/hardware to be provided in said plural general participant stations, said method comprising the steps of:
(a) generating a visual display format at a first general participant station;
(b) converting said visual display format at said first general participant station into a display output message representing said display format;
(c) broadcasting said display output message over said network using a guaranteed reliable one-to-many technique;
(d) receiving said broadcasted display output message with each of said general participant stations; and
(e) generating said visual display format independently at each of said plural general participant computers in response to said broadcasted message.
20. A method as in claim 19 further including the steps of:
(f) storing said broadcasted display output message, at a playback recorder station;
(g) communicating said stored message from said playback recorder station to at least one of said plural general participant stations at an arbitrary time subsequent to the time said broadcasting step (c) is performed; and
(h) generating said visual display format at said subsequent time with said one plural general participant computer in response to said communicated message.
21. The method of claim 19 wherein said broadcasting step (c) comprises the following steps:
(i) assigning a global identifier to said message;
(ii) broadcasting said message together with said assigned global identifier over said communications network;
(iii) receiving and storing said broadcasted message; and
(iv) correctly receiving said messages with substantially 100% reliability by each of said plural stations without requiring acknowledgements from said plural stations.
22. The method of claim 19 further including the step of editing the visual/display format generated by at least one of said general participant stations in response to said broadcasted message to include additional features and/or exclude unwanted features.
23. The method of claim 19 further including the step of simultaneously displaying said visual display format and providing audio information at each of said plural general participant stations in response to receipt of said broadcasted message.
24. A method of providing guaranteed reliable broadcast data communications over a digital communications network for an unknown number of plural general participant stations connected to said network, said system comprising the steps of:
(a) selecting a conference number;
(b) generating data to be processed by a subset of said plural general participant stations associated with said conference number;
(c) incorporating said conference number and said generated data into a message;
(d) broadcasting said message over said network using a guaranteed reliable one-to-many technique;
(e) receiving said broadcasted message with said plural general participant stations; and
(f) processing said received generated data at said plural stations within said subset in response to said received conference number.
25. The method of claim 24 wherein said broadcasting step (d) comprises the following steps:
(i) assigning a global identifier to said message;
(ii) broadcasting said message together with said assigned global identifier over said communications network;
(iii) receiving and storing said broadcasted message; and
(iv) correctly receiving said messages by each of said plural stations with substantially 100% reliability without requiring acknowledgements from said plural stations.
26. A method as in claim 24 further including the following steps:
(g) repeating said steps (b)-(f) a plurality of times;
(h) associating a further station with said conference number subsequent to at least one repetition of said steps (d) and (e) such that said further station does not receive at least one of said messages broadcasted by said step (d);
(i) performing said receiving step (e) with said further station for each message broadcasted by said broadcasting step (d) subsequent to the time said associating step (h) is performed; and
(j) providing said further station with all messages broadcasted by said broadcasting step (d) prior to the time said associating step (h) is performed.
27. A method as in claim 26 wherein said providing step (j) includes the following steps:
(j1) receiving each of said broadcasted messages with a playback recorder station connected to said network;
(j2) storing said messages received by said receiving step (j1); and
(j3) communicating stored versions of all messages broadcasted by said broadcasting step (d) prior to the time said associating step (h) is performed over said network from said playback recorder station to said further station.
28. A method of distributing software to plural data processing stations of the type including a base sequence of program control instructions for controlling the operations thereof, said plural stations being connected to a digital communications network, said method comprising the steps of:
(a) providing an update sequence of program control instructions to be distributed;
(b) providing a further sequence of program control instructions;
(c) dividing said update program control instruction sequence into packets having lengths suitable for network transmission;
(d) broadcasting said packets over said network using a guaranteed reliable one-to-many technique;
(e) broadcasting said further program control instruction sequence over said network using said guaranteed reliable one-to-many technique;
(f) receiving said broadcasted packets and said broadcasted further program control instruction sequence at each of said plural data processing stations; and
(g) executing said received further program control instruction sequence at each of said plural stations, including the step of automatically controlling the application of said update program control sequence to said base program control sequence at each of said plural stations under control of said received further program control instruction sequence in response to said received packets.
29. The method of claim 28 wherein said broadcasting steps (d) and (e) each comprise the following steps:
(i) formatting said program control instruction sequence into at least one message;
(ii) assigning a global identifier to said message;
(iii) broadcasting said message together with said corresponding assigned global identifier over said communications network; and
(iv) correctly receiving said message by each of said plural stations with substantially 100% reliability without requiring acknowledgements from said plural stations.
30. A method of monitoring activities on a digital communications network of the type connected to plural general participant data processing stations, said method comprising the steps of: (a) applying inputs to a first general participant station; (b) generating messages at said first general participant station, said generated messages specifying all of said inputs applied by said applying step (a);
(c) broadcasting said generated messages over said digital communications network using a guaranteed reliable one-to-many technique; and
(d) receiving and storing said broadcasted messages with a further playback recorder data processing station connected to said network.
31. The method of claim 30 wherein:
said steps (a)-(c) are performed for each of said plural general participant stations; and
said step (d) comprises the step of receiving said storing said broadcasted messages generated by all of said plural general participant stations.
32. The method of claim 30 wherein said broadcasting step (c) comprises the following steps:
(i) assigning global identifiers to said messages;
(ii) broadcasting said messages together with said corresponding assigned global identifiers over said communications network; and
(iii) correctly receiving said broadcasted messages by said playback recorder station with substantially 100% reliability without requiring acknowledgements from said playback recorder station.
33. In a digital communications network of the type connecting plural data processing stations, a method of providing conferencing for said plural data processing stations, said method comprising the steps of:
(a) selecting a first conference number designating a first subset of said plural stations;
(b) selecting a further conference number different from said first conference number designating a further subset of said plural stations, at least one of said stations being within both said first and further subsets;
(c) broadcasting a first message over said communications network to said plural data processing stations using a guaranteed reliable one-to-many technique, said first message specifying said first conference number;
(d) broadcasting a further message over said communications network to said plural data processing stations using said guaranteed reliable one-to-many technique, said further message specifying said further conference number;
(e) receiving and processing said first broadcasted message with each of said plural data processing stations within said first subset in response to said received first conference number; and
(f) receiving and processing said further broadcasted message with each of said plural data processing stations within said further subset in response to said received further conference number.
34. The method of claim 33 wherein said broadcasting steps (c) and (d) each comprise the following steps:
(i) assigning a global identifier to said message;
(ii) broadcasting said message together with said assigned global identifier over said communications network; and
(iii) correctly receiving said message by each of said plural stations with substantially 100% reliability without requiring acknowledgements from said plural stations.
35. A method as in claim 33 further including the following steps:
(i) repeating said step (c) a plurality of times;
(ii) associating a further station with said first conference number subsequent to at least one repetition of said step (c) such that said further station does not receive at least one of said messages broadcasted by said step (c);
(iii) performing said receiving step (e) with said further station for each message broadcasted by said broadcasting step (c) subsequent to the time said associating step (ii) is performed; and
(iv) providing said further station with all messages broadcasted by said broadcasting step (c) prior to the time said associating step (ii) is performed.
36. A method as in claim 35 wherein said providing step (iv) includes the following steps:
(j1) receiving each of said broadcasted messages with a playback recorder station connected to said network;
(j2) storing said messages received by said receiving step (j1); and
(j3) communicating stored versions of all messages broadcasted by said broadcasting step (c) prior to the time said associating step (ii) is performed over said network from said playback recorder station to said further station
37. A method of managing the broadcast capability of a communications network of the type connected to plural data processing stations, said method comprising the steps of:
(a) communicating messages from a first of said plural stations to a management station over said communications network;
(b) authorizing said communicated messages for broadcast at said management station; and
(c) broadcasting the authorized messages over said communications network to said plural stations using a guaranteed reliable one-to-many technique.
38. The method of claim 37 wherein said broadcasting step (c) comprises the following steps:
(i) assigning global identifiers to said messages;
(ii) broadcasting said messages together with said assigned global identifiers over said communications network; and
(iii) correctly receiving said messages by each of said plural stations with substantially 100% reliability without requiring acknowledgements from said plural stations.
39. In a digital communications system of the type including a communications network connecting plural data processing stations each having an operating state, a method of providing a backup of a first of said data processing stations, said method comprising the steps of:
(a) making a non-volatile copy of said first data processing station initial operating state;
(b) applying inputs to said first data processing station;
(c) changing said first data processing station operating state in response to said applied inputs;
(d) generating messages indicating said applied inputs;
(e) broadcasting said messages over said communications network using a guaranteed reliable one-to-many technique;
(f) receiving and storing said broadcasted messages with a playback recorder data processing station connected to said network; and
(g) recovering from failure of said first data processing station, including the following steps:
(g1) initializing a further one of said data processing stations similar to said first data processing station with said initial operating state copy,
(g2) communicating versions of said stored broadcasted messages from said playback recorder station over said network to said further data processing station,
(g3) processing said inputs indicated by said supplied message versions with said further station in the same order said inputs were applied to said first station by said applying step (b), and
(g4) changing the operating state of said further station from said initial operating state to the operating state of said first station at the time of failure of said first station in response to said processing step.
40. The method of claim 39 wherein said broadcasting step (e) comprises the following steps:
(i) assigning global identifiers to said messages;
(ii) broadcasting said messages together with said assigned global identifiers over said communications network; and
(iii) correctly receiving said messages by said playback recorder station and at least one other of said stations without with substantially 100% reliability requiring acknowledgements from said at least one other station.
41. The method of claim 39 wherein:
said changing step (g4) includes producing outputs in response to said input message versions; and
said method further comprises the steps of:
(i) generating first state change messages indicating said operating state changes effected by said changing step (c);
(ii) generating outputs at said first station in response to said applied inputs and/or said changes;
(iii) generating output messages indicating said generated outputs;
(iv) repeating said steps (e) and (f) for said state change messages and for said output messages; and
(v) ensuring said operating state of said further station does not drift with respect to the first station operating state at the time of said first station failed, including the steps of:
supplying versions of said state change messages and said output messages from said playback recorder station to said further station over said network.
comparing said operating state changes made by said processing step with said state changes indicated by said operating state change message versions, and
comparing said outputs produced by said processing step with said outputs indicated by said output message versions
42. In a digital communications system of the type including a communications network connecting plural data processing stations each having an operating state, a method of providing at least one hot standby station comprising the steps of:
(a) copying of said primary data processing station initial operating state onto a secondary data processing station;
(b) applying inputs to said first data processing station;
(c) changing said first data processing station operating state in response to said applied inputs;
(d) generating messages indicating said applied inputs;
(e) broadcasting said messages over said communications network using a guaranteed reliable one-to-many technique;
(f) receiving said broadcasted messages with said secondary data processing station;
(g) processing said inputs indicated by said supplied messages with said secondary station in substantially the same order said inputs were applied to said first station by said applying step (b), and
(h) changing the operating state of said further station from said initial operating state to the operating state of said first station in response to said input processing performed by said step (g).
43. The method of claim 42 wherein said broadcasting step (e) comprises the following steps:
(i) assigning global identifiers to said messages;
(ii) broadcasting said messages together with said assigned global identifiers over said communications network; and
(iii) correctly receiving said messages by said secondary station with substantially 100% reliability without requiring acknowledgements from said secondary station.
44. A method as in claim 42 wherein said (a) and (f)-(h) are performed by an arbitrary number of plural secondary stations connected to said network.
45. The method of claim 42 wherein
said changing step (h) includes producing outputs in response to said input message versions; and
said method further comprises the steps of:
(i) generating first state change messages indicating said operating state changes effected by said changing step (c);
(ii) generating outputs at said first station in response to said applied inputs and/or said changes;
(iii) generating output messages indicating said generated outputs;
(iv) repeating said steps (e) and (f) for said state change messages and for said output messages; and
(v) ensuring said operating state of said further station does not drift with respect to the first station operating state, including the steps of:
comparing said operating state changes made by said processing step with said state changes indicated by said operating state change message versions, and
comparing said outputs produced by said processing step with said outputs indicated by said output message versions
46. In a distributed processing system of the type including plural data processing stations connected to a common digital communications network, said plural stations each including a means for a processing task different from processing tasks performed by others of said plural stations, a method of efficiently performing on-line transaction processing comprising the steps of:
(a) performing data processing tasks in a distributed manner with said plural data processing stations;
(b) generating a processing request for a first processing task with a general participant data processing station connected to said network;
(c) broadcasting said processing request over said network using a guaranteed reliable one-to-many technique;
(d) receiving said broadcasted processing request message with each of said plural data processing stations;
(e) performing said processing task in response to receipt of said broadcasted message by one of said plural stations preprogrammed to perform said first task; and
(f) communicating a result, if any, of said first processing task performing step over said network to said general participant station.
47. The method of claim 46 wherein said broadcasting step (c) comprises the following steps:
(i) assigning a global identifier to said processing request message;
(ii) broadcasting said message together with said assigned global identifier over said communications network; and
(iii) correctly receiving said messages by each of said plural stations with substantially 100% reliability without requiring acknowledgements from said plural stations.
48. In a distributed data processing system of the type including a communications network connecting plural data processing stations, a method of managing a distributed database comprising the steps of:
(a) storing portions of a unitary database in a distributed manner at said plural data processing stations;
(b) generating plural database change requests, affecting certain of said database portions;
(c) communicating said plural change requests to a retransmission station connected to said network;
(d) serializing said communicated change requests into a sequence;
(e) broadcasting said serialized change requests over said network using a guaranteed reliable one-to-many technique; and
(f) effecting changes to said database portions in the order of said sequence in response to receipt of said broadcasted change requests by the ones of said stations storing said certain database portions, including the following steps:
(f1) testing for conflicts between broadcasted change requests affecting the same database portion, and
(f2) failing to process a change request later in said sequence if said testing step reveals said later change request conflicts with a change request earlier in said sequence.
49. The method of claim 48 wherein said broadcasting step (e) comprises the following steps:
(i) assigning global identifiers to said change requests;
(ii) broadcasting said change requests together with said assigned global identifiers over said communications network; and
(iii) correctly receiving said messages by each of said plural stations with substantially 100% reliability without requiring acknowledgements from said plural stations.
50. In a data processing system of the type including a digital communications network connecting plural data processing stations, a method of distributing database processing comprising the steps of:
(a) generating a plural message containing different types of information;
(b) broadcasting said message over said communications network using a guaranteed reliable one-to-many technique;
(c) receiving said broadcasted first and second message with each of said plural data processing stations; and
(d) selectively accepting said received message with each of said data processing stations in response to said information types said message contains.
51. The method of claim 50 wherein said broadcasting step (b) comprises the following steps:
(i) assigning global identifiers to said messages;
(ii) broadcasting said message together with said assigned global identifier over said communications network; and
(iii) correctly receiving said messages by each of said plural stations with substantially 100% reliability without requiring acknowledgements from said plural stations.
52. A method as in claim 50 wherein:
said method further includes the following steps:
(i) encrypting a first subset of fields within said message with a first encryption key prior to said broadcasting step (b);
(ii) encrypting a second subset of fields within said message with a second encryption key prior to said broadcasting step (b);
(iii) providing a first subset of said stations with a first decryption key corresponding to said first encryption key;
(iv) providing a second subset of said stations with a second decryption key corresponding to said second encryption key;
(v) decrypting said first subset of fields by said first subset of stations with said first decryption key; and
(vi) decrypting said second subset of fields by said second subset of stations with said second decryption key.
53. In a distributed process control system of the type including plural data processing stations connected to a common digital communications network, said plural stations being preprogrammed to perform different processing tasks, a method of eliminating the need for a powerful master data processing station comprising the steps of:
(a) originating processing command messages;
(b) broadcasting said messages over said network using a guaranteed reliable one-to-many technique; and
(c) performing said processing tasks at said plural stations in a distributed manner in response to receipt of said broadcasted messages.
54. The method of claim 53 wherein said broadcasting step (b) includes the following steps:
(i) assigning global identifiers to said messages;
(ii) broadcasting said messages together with said assigned global identifiers over said communications network; and
(iii) correctly receiving said messages by each of said plural stations with substantially 100% reliability without requiring acknowledgements from said plural stations.
55. In a distributed processing system of the type including plural data processing stations connected to a common digital communications network, said plural stations each including means for storing a portion of a unitary database, a method of efficiently processing database requests comprising the steps of:
(a) storing said database in a distributed manner with said plural data processing stations;
(b) generating a database request with a general participant data processing station connected to said network;
(c) broadcasting said database request over said network using a guaranteed reliable one-to-many technique;
(d) receiving said broadcasted database request with each of said plural data processing stations;
(e) accessing said database portion stored by a first of said plural data processing stations in response to said broadcasted database request to provide a result; and
(f) communicating said result of said accessing step (e) over said network to said general participant station.
56. The method of claim 55 wherein said broadcasting step (c) comprises the following steps:
(i) assigning a global identifier to said processing request message;
(ii) broadcasting said message together with said assigned global identifier over said communications network; and
(iii) correctly receiving said messages by each of said plural stations with substantially 100% reliability without requiring acknowledgements from said plural stations.
57. A method as in claim 55 wherein:
first and second ones of said plural data processing stations each store the same portion of said database;
said receiving step (d) includes the steps of receiving said broadcasted message with each of said first and second stations;
said method further includes the following steps:
(i) applying a first volunteer message to said communications network with said first station in response to receipt by said first station of said broadcasted message,
(ii) applying a second volunteer message to said network with said second station in response to receipt by said second station of said broadcasted message, and
(iii) selecting one of said first and second stations in response to said first and second volunteer messages; and
said accessing step (e) and communicating step (f) are performed only by said station selected by said selecting step (iii).
58. A method as in claim 55 wherein said storing step comprises the steps of:
storing a first portion of said unitary database at a first of said plural stations, and
storing a second database portion logically related to said first portion at a second of said plural stations;
said accessing step comprises the step of concurrently accessing said first and second related portions independently at said first and second plural stations, respectively, in response to receipt by said first and second stations of said broadcasted database request; and
said communicating step comprises the step of communicating a result of said accessing step from each of said first and second stations to said general participant station.
59. A system for providing guaranteed reliable broadcast data communications to plural digital signal processing stations connected to a digital communications network, said system comprising:
message originating means connected to said network for originating a digital signal message;
assigning means for assigning a global identifier to said message;
broadcasting means, connected to said network and also connected to receive said originated message and said assigned global identifier, for broadcasting said message together with said assigned global identifier over said communications network;
designated recorder means connected to said network for receiving and acknowledging said broadcasted messages;
receiving means within each of said plural stations connected to said network for receiving said broadcasted message at each of said plural stations; and
guaranteeing means connected to said network for guaranteeing correct reception of said message by each of said plural station receiving means without requiring acknowledgements from said plural stations.
60. A system as in claim 59 wherein said designated recorder means includes means for introducing a time delay before acknowledging said broadcasted message and for varying said time delay in response to receipt of requests for said playback recorder means.
61. A system as in claim 59 wherein said guaranteeing means includes:
a playback recorder station connected to said network for receiving said broadcasted message;
means connected to at least one of said station receiving means for testing for correct receipt of said broadcasted message by said station receiving means; and
providing means, connected to said playback recorder station and communicating with said testing means, for providing said message received by said playback recorder station over said network to said station receiving means if said testing means reveals said station receiving means failed to correctly receive said broadcasted message so as to guarantee correct reception of said message by said station receiving means.
62. A system as in claim 59 wherein:
said system further includes:
transmitting means connected to said originating means and to said network for transmitting said message over said network and;
retransmission receiving means connected to said network and to said broadcasting means for receiving said transmitted message and for controlling said broadcasting means to broadcast said message;
wherein said designated recorder means also connected to said communications network for receiving said broadcasted message and for testing for correct receipt of said broadcasted message, said designated recorder means including means for communicating an acknowledgement message to said retransmission receiving means over said communications network if said testing means reveals said designated recorder means correctly received said broadcasted message;
said retransmission receiving means also for receiving said acknowledgement message; and
control means connected to said retransmission receiving means and to said broadcasting means for controlling said broadcasting means to repeat broadcast of said message in response to failure of said retransmission receiving means to receive said acknowledgement message from said designated recorder station; and
wherein each of said plural stations includes means for inhibiting generation of an acknowledgement message in response to correct receipt of said broadcasted message.
63. A system for providing guaranteed reliable broadcast data communications comprising:
a digital communications network;
plural digital signal processing stations connected to said digital communications network;
means connected to said communications network for applying messages to said communications network;
a retransmission station connected to said network, said retransmission station including:
receiving means for receiving said applied messages,
serializing means connected to said receiving means for serializing said received messages into a sequence, including means for assigning a different identifier to each of said received messages, said assigned identifiers indicating the order for said messages in said sequence, and
broadcasting means connected to said serializing means for broadcasting each of said messages together with said identifier corresponding thereto over said communications network to said plural stations;
means connected to said network for guaranteeing reception of said messages by each of said plural stations; and
processing means operatively associated with each of said plural stations for processing said received messages in the order of said sequence in response to said identifiers associated with said received messages, wherein said guaranteeing means includes:
a designated recorder station comprising:
receiving means connected to said network for receiving said broadcasted messages,
testing means connected to said designated recorder station receiving means for testing for correct reception for said messages by said designated recorder station receiving means, and
acknowledgement message generating means connected to said network and to said testing means for generating a positive acknowledgement message for those messages said testing means reveals said designated recorder station receiving means correctly received.
64. A system for ensuring guaranteed reliable broadcast data communications comprising:
a digital communications network;
plural general participant stations connected to said network;
message originating means within at least one of said general participant stations for originating a message;
broadcasting means connected to said network and connected to receive said originated message for broadcasting said message over said communications network to said plural general participant stations using a guaranteed reliable one-to-many technique; and
playback recorder means connected to said network for receiving and broadcasted message and for storing said received message, said playback recorder means including recovering means for later recovering from the failure of one of said general participant stations to receive said broadcasted message, said recovering means including communicating means for communicating said storing message to said one general participant station over said communications network, said broadcasting means including a designated recorder station connected to said network, said designated recorder station including:
receiving means for receiving said broadcasted message, and
means connected to said receiving means for temporarily storing said received message;
said playback recorder means including testing means for testing for correct receipt of said broadcasted message; and
said designated recorder means further includes communicating means in communication with said testing means for communicating said temporarily stored message over said network from said designated recorder station to said playback recorder means if said testing means reveals said playback recorder means failed to correctly receive said broadcasted message.
Description
FIELD OF THE INVENTION
The invention relates to communicating digital information over a digital communications network. More particularly, the invention relates to a system and method for guaranteed delivery of digital messages from one or many network nodes to many network nodes over a digital network.
BACKGROUND AND SUMMARY OF THE INVENTION
Data communication amongst data processing stations can be classified into the following four categories:
one-to-one
many-to-one
one-to-many; and
many-to-many.
The following is a brief discussion of known techniques for communicating messages in the various categories.
ONE-TO-ONE DATA COMMUNICATION
Communicating a message from one network node to another network node is perhaps the simplest and most reliable type of message communications. Some examples of one-to-one communications include two personal computers communicating with one another over a telephone line, and two digital data terminals communicating with one another over a satellite link. When a data message is transmitted outwards from a transmitting data processing station, this data message may be lost or distorted e.g., 1's turned into 0's) because of electrical interference, loose connections, faulty hardware, slow or busy receiving data processing station or other reasons. To guarantee correct data reception, communication protocols are used. These communication protocols commonly incorporate a technique known as message acknowledgement in which a receiving data processing station sends a message back to the transmitting data processing station to indicate that a message or a group of messages has been correctly received. Negative acknowledgement (NAK) or no acknowledgement prompts the transmitting data processing station to retransmit the message or group of messages--giving the receiving data processing station another chance to correctly receive the message.
Furthermore, this message acknowledgement scheme ensures the transmitting data processing station does not send messages faster than what the receiving data processing station can handle. In part because the transmitting station "knows" which messages have actually been correctly received by the receiving station, this message acknowledgement scheme works very well and provides guaranteed reliable data communications for one-to-one communications.
MANY-TO-ONE DATA COMMUNICATION
It is somewhat more difficult to handle the situation in which many data processing stations are transmitting messages to a common data processing station. A simple example of this many-to-one situation is a "star" type network configuration, in which all network nodes communicate with a central network node. One commonly used technique for many-to-one data communications provides many separate one-to-one data communications pairs, and uses protocols of the type discussed above for one-to-one communications to ensure that each of the many communication pairs are guaranteed to be reliable. This technique assumes that the content of each data communication pair is different, an assumption which holds well in most real life applications (since, for example, the many data processing stations are each typically acting substantially independently of one another).
ONE-TO-MANY DATA COMMUNICATION
In one-to-many data communication, the same information is to be sent to many different data processing stations. This situation is commonly known as "broadcast" or "multicast". Broadcasted messages are typically directed to all network nodes, while multicasted messages are directed to a subset of nodes on the communications network. A number of networks (e.g., token ring, Ethernet, radio, microwave and satellite networks) possess broadcast or multicast capabilities. However, in known systems the multicasted or broadcasted message can still be missed or incorrectly received by one or more network nodes (e g., the message may be distorted due to electrical interference, loose connections, faulty hardware, slow or busy receiving data processing stations, or other reasons). The network communications hardware setup alone cannot be relied upon to guarantee correct data reception, since even the most carefully designed network will occasionally exhibit errors due to one reason or another. For example, Metcalfe et al of XEROX PARC in one of their important early papers, "Ethernet: Distributed Packet Switching For Local Computer Networks" 19 Communications of the ACM No. 7 (July 1976), caution that Ethernet packets may be lost due to interference with other packets, noise, an inactive receiving station, or other effects. The authors state that protocols used to communicate through an Ethernet must assume that packets will be received correctly at intended destinations only with high probability (but not certainty)--and the authors allocate to the source and destination processes the responsibility of taking the necessary steps to assure reliable communications.
Existing one-to-many communications schemes are known as "datagram" service--since they provide no guarantee of data reception and no technique for informing the transmitting node of correct or incorrect reception by individual receiving nodes.
The technique of message acknowledgement so useful for one-to-one communications cannot be used efficiently in one-to-many communications to guarantee proper data reception. For example, if one data processing station sends the same data to 1,000 other data processing stations and then has to wait for 1,000 acknowledgement messages, it may wait for a long time--especially if some of these 1,000 data processing stations were busy temporarily or inoperative at the time the message was sent. Therefore, most of the existing applications requiring guaranteed reliable broadcast/multicast data communications fall back to the one-to-one communication scheme. For example, if the same piece of mail is to be sent to 1,000 other data processing stations, it will be sent separately 1,000 times on a one-to-one basis so that reliable data communication to each station can be guaranteed. While this fall back position substantially reduces efficiency, it does guarantee reliability.
MANY-TO-MANY DATA COMMUNICATION
For many-to-many communications, falling back to one-to-one communication may be impractical--since the number of different one-to-one communications pairs needed to service n network nodes is on the order of n.sup.2. For example, if n data processing stations want to exchange data amongst themselves, they would require ##EQU1## one-to-one communication pairs. For a 10 node network, the number turns out to be 45. For a 100 node network, the number turns out to be 4950. Hence, handling many-to-many communications using the proven guaranteed, reliable one-to-one communications techniques is quite impractical and inefficient for even relatively small networks.
Most prior art techniques nevertheless provide guaranteed, reliable one-to-many and many-to-many communications by reducing them to one-to-one communication pairs. Prior art techniques simply cannot provide guaranteed, reliable, efficient many-to-many data communications.
Many have addressed the issue of guaranteed, reliable many-to-many (broadcast or multicast) communications over a digital communications networks. The following is a brief, non-exhaustive but somewhat representative listing of articles addressing the problem of reliable many-to-many communications:
Mai et al, "Performance Evaluation of an Ethernet LAN With Broadcast and Point-to-Point Data Traffic". 10 Computer Communication No. 6, pp. 283-290 (December 1987);
Waters, A. G., "The Use of Broadcast and Multicast Techniques on Computer Networks", Conference on Electronic Delivery of Data and Software, IERE Publication No. 69, pp. 45-50 (September 1986)--and references cited therein; and
Hughes, "Chat: an N-party talk facility for the Unix 4.2 Operating System", Computer Communications (1988).
Mai et al note that Ethernet-type local area networks are inherently capable of broadcasting messages, but also note that the problem of reliable broadcast has not been completely resolved. One solution proposed by Mai et al is to define a hierarchy of receiving stations, with only certain receiving stations actually participating in broadcast/multicast reception. These certain stations (known as "LS" nodes) are then responsible for passing the received message on to other stations. Mai et al model Ethernet performance assuming that only a set of designated nodes are allowed to send broadcast messages and that the transmitting nodes "know" the addresses of designated "LS" nodes in advance (significant limitations in real world applications). The LS nodes receive the broadcast messages and generate acknowledgements. The LS nodes, in turn, store the broadcast message as a mail message for predefined associated groups. Since only the LS nodes need to provide acknowledgements to the broadcasting node, the number of acknowledgements is reduced. However, this method suffers from several drawbacks, including the limitation that only certain nodes can broadcast messages and the further limitation that the broadcasting node must wait for receipt of acknowledgements from all of the "LS" nodes (in effect, a one-to-one communication process with the number of acknowledging nodes limited to what the system designers consider to be an acceptably low number).
The Waters paper reviews and summarizes several prior art many-to-many communications techniques, and notes that the majority of applications which have been implemented over broadcast networks use one-to-one communications protocols to provide guaranteed reliability. Waters concludes that broadcast techniques enable surprisingly simple ways of solving difficult problems for a variety of different purposes. Relevant prior work described by Waters includes the Project Universe Broadcast Facilities, BANET, Group Communication on the V-System, a reliable broadcast protocol developed by Chang et al, and the various file broadcast mechanisms--each of which is described in greater detail in a paper cited in Waters' bibliography.
The Waters paper discussion of the Project Universe Broadcast Facilities (section 4.1) describes a system in which "Cambridge rings" type networks were linked by a broadcast satellite channel. Broadcast channel numbers were allocated to allow many-to-many communications. However, in this arrangement true broadcast ceased at the satellite access station, and the packets were delivered by the access station to all stations on the local ring network that had previously requested reception of broadcast messages on that particular channel. Thus, the satellite access station in this system must be informed beforehand of which specific nodes are to receive broadcast information, and only the satellite access stations actually participate in true broadcast communications.
The BANET arrangement discussed at section 4.2 of the Waters paper provides reliable one-to-many communications by requiring each receiving station to acknowledge every packet--and thus may be impractical or inefficient for use with a large number of receiving stations (especially since it is not clear what happens if one member of a receiving group fails to reply).
The Waters paper also discusses at section 4.3 an arrangement described previously by Cheriton and Zwaenopol for the V-system (an Ethernet-based distributed processing system). This arrangement is based on guaranteed reliable one-to-one communications, but overcomes some of the inefficiency involved with one-to-one communications for broadcast/multicast by permitting the application program to decide when it has received a sufficient number of replies (acknowledgements) before sending another message (some applications may have lesser reliability requirements than others). This arrangement is highly inefficient if 100% reliable broadcast/multicast communications to a large number of nodes is required.
Waters also describes a reliable broadcast protocol developed by Chang and Maxemchuk--and described in their paper entitled "Reliable Broadcast Protocols", Vol 2. ACM Transactions on Computer Systems, No. 3, pp. 251-273 (August 1984)--which uses broadcast techniques for both transmitting the initial message and transmitting acknowledgements to the message. A single site, called the "token site", transmits an acknowledgement to the broadcast message originator(s). Other stations send negative acknowledgements only and listen for messages and acknowledgements by the token site. The token is passed via an acknowledgement message from one station to another, and each station stores incoming packets. Thus, the number of acknowledgements sent for each message is reduced. However, all stations must constantly listen for acknowledgements sent by the token station, in addition to the broadcasted messages.
Finally, the Waters paper describes at Section 5.1.3 a file distribution scheme developed by Sabnani and Schwartz which uses go-back-N and selective repeat techniques; and a negative acknowledgement broadcast distribution technique developed by Calo and Easton.
The Hughes paper describes an actually implemented utility program called "Chat" for the Unix operating system. While purporting to broadcast/multicast messages, this utility program actually is more of a datagram type solution since it makes no attempt to ensure that a message is properly delivered to all members of a multicast set. This solution is simply not reliable enough for most broadcast/multicast applications.
The present invention solves a major problem in data communication--that of providing guaranteed data reliability for one-to-many and/or many-to-many data communications.
Several different specialized communications functions are performed in accordance with the present invention in a distributed manner across the communications network, with different network nodes performing different functions. Each specialized function can be implemented by a separate data processing station in one embodiment. Or some of the functions can be implemented by the same network node so that a smaller number of data processing stations are used. Or a specialized function can be divided up and implemented by a number of separate data processing stations. In the preferred embodiment, these specialized functions (hereafter referred to as "specialized stations" since in the preferred embodiment each function is performed by a different network station) provide a means for guaranteeing that all stations on the network correctly receive--with substantially 100% reliability--all broadcasted messages. These specialized stations include:
(1) a general participant station;
(2) a retransmission station;
(3) a designated recorder station;
(4) a recorder playback station; and
(5) a management station (optional)
A physical transmission medium/system (e.g., a shared digital communications network) allows common access by all stations connected to it.
A general participant station (that may comprise of one or more personal computers, workstations, specialized or general purpose data processing stations) serves as a source or a destination of information, and determines which of the many group communications or conferences it participates in based on message protocol content (e.g., a conference number field in a special protocol message header of the preferred embodiment).
A retransmission station receives an input message from a general participant data processing station on a one-to-one basis, applies a special protocol message header to the input message, and retransmits (broadcasts) the message for reception by all the data processing stations. The receiving stations individually determine whether the message is received correctly. If there is no error in the received message, the receiving data processing station determines whether the message should be passed along (e.g., to an application program) based on the message header (e.g., conference number field, the sender identifier field, the message type field) or the actual information contained in the message in the preferred embodiment.
In accordance with a further feature of the present invention, guaranteed data reliability for one-to-many and/or many-to-many data communications is provided by introducing a new communications protocol which enables all data processing stations to independently detect missing or corrupted messages, and to receive or recover messages for any given group of (or from any individual) participating data processing stations. Missing messages are detected by examining a message sequence number field in the header of the special communication protocol in the preferred embodiment. Corrupted messages are detected via the CRC field or other error checking/correcting field in the preferred embodiment. The special protocol in the preferred embodiment also contains a time stamp field, a conference number field, a sender identifier field and some other fields. These fields permit any receiving station to recover, for example, all messages transmitted since a given date/time and/or to select messages based on conference number and/or sender.
A designated recorder station ensures messages sent from the retransmission station are correct. This designated recorder station effectively communicates with the retransmission station on a one-to-one basis across the broadcast network--with the message transmission from the retransmission station to the designated recorder station being listened to by all receiving stations. If the designated recorder station detects missed or corrupted messages, it requests the retransmission station to resend the message. This designated recorder station also acknowledges reception of messages from the retransmission station--and can thus slow down or speed up the retransmission station message rate in the preferred embodiment by varying the time interval it waits before it sends acknowledgement messages. The designated recorder station is guaranteed to receive correctly all messages sent by the retransmission station. These correctly received messages are stored by the designated recorder station in temporary storage.
A playback recorder station listens to and stores the messages from the retransmission station. This station comprises of one or more data processing stations (if more than one data processing station is used. Some of the stations can selectively listen to and more or less permanently store messages based on message content and/or intended recipients, e.g., storing all messages with a certain conference number field value). If one of the playback recorder stations detects a missed or corrupted message. It waits to receive at least one more message in the preferred embodiment so that it can determine whether the error was due to the retransmission station or due to the way it received the message. If the error was due to the retransmission station, the designated recorder station should have detected the error and requested the message to be re-sent. If the error was due to playback station reception, the playback recorder data processing stations may request the correct information from the designated recorder stations using a guaranteed, reliable, one-to-one communication technique.
As mentioned previously, communication between the retransmission station and the designated recorder station also uses a guaranteed reliable one-to-one data communication technique. Thus, all the playback recorder data processing stations (which listen to this one-to-one data exchange) are guaranteed to have correct and complete records of the conferences they record. Because several playback recorder data processing stations may be used in the same network, the same data can be stored in more than one playback recorder data processing station to provide redundant messagerecording--so that the information can be retrieved from one playback recorder station when another station ceases to operate. If a general participant data processing station detects missing or corrupted messages, it may obtain the correct information directly from a playback recorder station using a guaranteed reliable one-to-one data communication technique. Thus, all general participant data processing stations are guaranteed to correctly receive all messages from the retransmission station even though they do not send acknowledgement messages directly to the retransmission station.
The playback recorder station also serves an archiving function in accordance with another feature of the present invention. A general participant data processing station can request, for example, all specific conference messages issued since a given date and time. If a general participant data processing station were to have been powered off for awhile. It can regain all missed conference messages when it is powered back on from this playback recorder station.
Optionally, there can be a management station that allows orderly start and stop of group communications or conferences. This station may also handle secure, confidential communications and perform user authentication, conference authorization, network error detection, encryption/decryption key distribution and data encryption for confidential conferences.
The specialized stations/functions provided by the present invention are distributed on the communications network to provide very efficient and guaranteed one-to-many communication. For example, a general participant data processing station may want to send the same message to 1,000 other data processing stations. The general participant station first obtains the use of a conference number (e.g., from the management station) and then sends the message to the retransmission station using a guaranteed, reliable, one-to-one data communication technique. The retransmission station adds a special protocol header to the message and retransmits the message. The 1,000 intended receiving data processing stations listen to the retransmitted message and each selects the message based on the conference number field. Individual receiving stations that do not successfully receive the broadcasted message may request retransmission from the playback recorder station, so that the data is guaranteed to be received even if a particular receiving data processing station was busy or down when the message was initially broadcasted. Thus, in the best case, the data is sent only twice: once from the sending data processing station to the retransmission station; and a second time from the retransmission station to all other stations. (The fact that the data is sent twice is significant. Most prior art dealing with broadcasts try to achieve reliability by sending the data only once).
Guaranteed, reliable, efficient many-to-many data communications can be achieved very easily by a small enhancement to the above described one-to-many technique. The 1,000 data processing stations can all write to the same conference (specified by the same conference number) using the above described one-to-many technique. These 1,000 data processing stations can communicate with one another with guaranteed reliability.
It is also possible to provide additional features to the basic technique, such as to provide security features using the management station. Conferences can be made confidential and the data can be made readable only by a selected group of participant data processing stations through the use of authentication and encryption. There can even be conferences where only certain participant data processing stations can write and many other participant data processing stations are only allowed to read.
Guaranteed reliable one-to-many and/or many-to-many data communications will have great impact on how data processing stations should be designed and used. In many existing applications, one-to-many and/or many-to-many data communications is desirable--but much less efficient one-to-one communications techniques were used in the past because of the lack of guaranteed reliability of known broadcast/multicast techniques. Guaranteed reliability must be available first before useful applications can be developed. Why is guaranteed reliability so heavily emphasized? In some applications, the need for absolutely guaranteed reliability is obvious. For example, in the example of software distribution, even if a few bits out of a few million are received in error, the software program received would be totally worthless. Using it may risk corruption of the data processing station or even the entire network.
Some experiments were done by the inventor to illustrate the effect of reliability. An IBM PC/AT computer was used to receive datagram broadcast messages from an IBM PC computer on the Ethernet. That is, messages were broadcasted without error checking nor message acknowledgement. The speed of the IBM PC is much slower than that of the IBM PC/AT. The error rate was about 1 in 100,000 messages transferred. This is very respectable. Then the IBM PC was used to receive datagram broadcast messages from the IBM PC/AT. The IBM PC lost 60% of the messages because it could not keep up with the IBM PC/AT In other words, if the sender is fast and the receiver is slow, the receiver will lose messages no matter how reliable or error free the hardware may be.
In a typical real life environment, some of the user stations are much less powerful than others and are most likely less powerful than the mainframe or the minicomputers. The situation of the sender broadcasting at a rate faster than a slow receiver can handle could easily arise. There are very few real lift situations that can survive a message loss rate of over 60%.
This is one of the key reasons that unless guaranteed, reliable one-to-many or many-to-many data communications techniques are available, a lot of the real life applications based on broadcast are not possible.
Guaranteed, reliable, efficient one-to-many or many-to-many communications has remained an unsolved problem until now--but not because there is no need for them. In fact, once reliable one-to-many or many-to-many data communications can be guaranteed, many new and/or improved uses of data processing stations will result. Examples of such new or improved uses include:
(1) Stock Market Trading Systems
(2) Software Distribution
(3) Teaching or Demonstrations
(4) Communication with Unknown Group of Receivers
(5) Network Management
(6) Network Security Monitoring
(7) Computer Conferencing
(8) Support of Different Companies
(9) Backup Systems
(10) Hot Standby Systems
(11) On-Line Transaction Processing
(12) Distributed Databases
(13) Corporate Information Systems
(14) Processing Control Systems
(15) Parallel Processing Type Applications
(16) Any other application that benefits from reliable one-to-many and/or many-to-many data communications.
These examples will be discussed in detail in the section on USES OF THE PRESENT INVENTION.
BRIEF DESCRIPTION OF THE DRAWINGS
These and other features and advantages of the present invention may be better and more completely understood by referring to the following detailed description of presently preferred exemplary embodiments in connection with the appended sheets of drawings, of which:
FIG. 1 is a schematic diagram of the presently preferred exemplary embodiment of a communications system S in accordance with the present invention;
FIG. 2 is a schematic diagram illustrating typical communications exchanges in the FIG. 1 system;
FIG. 3 is an exemplary hardware configuration of the structure of an exemplary station shown in FIG. 1;
FIG. 4 is a schematic diagram of an exemplary message format of the communications protocol used by the FIG. 1 embodiment;
FIG. 5 is a schematic logic flow diagram of exemplary program control steps performed by the retransmission station shown in FIG. 1;
FIG. 6 is a detailed schematic flow diagram of the initialization block shown in FIG. 5:
FIG. 7 is a detailed schematic flow diagram of the dispatch and wait loop block shown in FIG. 5:
FIG. 8 is a detailed schematic flow diagram of the processing routine block ACTIM shown in FIG. 7, which is executed when the acknowledgement timer expires;
FIG. 9 is a detailed schematic flow diagram of the processing routine MREC2 shown in FIG. 7, which is performed after a message is received on network B;
FIG. 10 is a detailed flow diagram of the processing routine MREC1 shown in FIG. 7, which is performed after a message is received on network A;
FIG. 11 is a detailed flow diagram of the fatal error handling block shown in FIG. 5;
FIG. 12 is a schematic flow diagram of exemplary program control steps performed by the designated recorder station shown in FIG. 1;
FIG. 13 is a detailed flow diagram of the initialization block shown in FIG. 12;
FIG. 14 is a detailed block diagram of the dispatch and wait loop box shown in FIG. 12;
FIG. 15 is a detailed block diagram of the processing routine RECMG2 shown in FIG. 14, which is executed when a message is received by the designated recorder station;
FIG. 16 is a detailed flow diagram of the processing routine RECMG1 shown in FIG. 14, which is executed when a message is received from one of the playback recorder stations on network A;
FIG. 17 is a detailed flow diagram of the fatal error handling block shown in FIG. 12;
FIG. 18 is a schematic flow diagram of exemplary program control steps performed by the playback recorder station shown in FIG. 1;
FIG. 19 is a detailed flow diagram of the initialization block shown in FIG. 18;
FIG. 20 is a detailed flow diagram of the dispatch or wait loop block shown in FIG. 18;
FIG. 21 is a detailed flow diagram of the ACKTMO processing routine block shown in FIG. 20, which is executed by the playback recorder station when the message acknowledgement timer expires on network A;
FIG. 22 is a detailed flow diagram of the processing routine block MESON2 shown in FIG. 20, which is executed by the playback recorder station when a message is received on network B;
FIG. 23 is a detailed flow diagram of the processing routine |