[go: up one dir, main page]

MXPA00011694A - Distributed computing environment using real-time scheduling logic and time deterministic architecture - Google Patents

Distributed computing environment using real-time scheduling logic and time deterministic architecture

Info

Publication number
MXPA00011694A
MXPA00011694A MXPA/A/2000/011694A MXPA00011694A MXPA00011694A MX PA00011694 A MXPA00011694 A MX PA00011694A MX PA00011694 A MXPA00011694 A MX PA00011694A MX PA00011694 A MXPA00011694 A MX PA00011694A
Authority
MX
Mexico
Prior art keywords
communication
time
computer
node
future
Prior art date
Application number
MXPA/A/2000/011694A
Other languages
Spanish (es)
Inventor
Randy D Woods
David M Jachim
Wayne P Dupree
Gerrit H Verniers
Stephen G Churchill
George P Fernandez
Original Assignee
The Dow Chemical Company
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by The Dow Chemical Company filed Critical The Dow Chemical Company
Publication of MXPA00011694A publication Critical patent/MXPA00011694A/en

Links

Abstract

A system is presented for a plurality of computer nodes in mutual data communication to execute logic in a coordinated manner. The approach features aligning the definition of the time in the nodes so that each node has essentially the same definition of time,defining a schedule of communications for each computer node, with the schedule having future moments defined for initiating each communication, communicating each schedule to its respective node, and initiating each communication at the time defined in the schedule. The computer network has a message carrier supporting multiple communication paths;a plurality of computers coupled to the message carrier, a clock system for maintaining time synchronism among the computers;and a scheduler coupled to the message carrier for determining the sequence of communication between the computers. The message carrier establishes communication between selected computers based on the time-deterministic tasks being performed by the computers. A computer node in the plurality of computer nodes executes logic in coordination with the other nodes by defining a communication request list of each communication needed by the computer node with any other computer node respective to a future time period, sending the communication request list to the master scheduler, receiving back a communication schedule back from the master scheduler, defining a local task schedule from the communication schedule, and then executing the communication at the scheduled time.

Description

DISTRIBUTED COMPUTER ENVIRONMENT USING LOGIC OF PROGRAMMING IN REAL TIME AND ARCHITECTURE DETERMINIST OF TIME This invention is directed to the field of data processing control systems, in particular to integrated systems where a plura of computers execute their logic in a coordinated manner within a network. The primary application of the system described in this description is for the computerized control of machines deployed on a large physical scale (eg, a chemical manufacturing faci), although benefits are allowed to facies related to multiple computer processors, parallel computer processors and network computer processors. When computer demands or geographic constraints require the physical distribution of computing facies, (for example, to control processes in a large, geographically dispersed chemical plant), implementation factors (such as product qua) of the centralized coordination of computing tasks. This invention describes a system and method for allowing a plura of geographically dispersed computers to be networked to allow coordinated interactivity in time. This resulting network allows the coordination of the task and facites the implementation of other beneficial quaes for the task that is being carried out by the system; quaes such as redundancy, security and high production. One embodiment of a system that shows such real-time, substantive networking in a series of remote, physically distributed field units in a process control system is described in U.S. Patent 5,428,769, issued June 27. of 1995 and titled ("Process control interface system that has triply redundant remote field units") by Glaser, Robert S., Today, Robert S., Fernandez, G. Paul and Grai, Timothy J. While the system is suitable for many process control situations, the methodology of networking is effectively addressed to each system in each period of time on the presumption that there is a need to do so, however, 'many of these management cycles are unnecessary if all the variables for exchange are stable, a more elegant scenario from the point of view of the efficiency of the network would provide communications only when the state of the inputs or outputs requires The physical distribution of computing facies, combined with the centralized coordination of computing tasks, is also a transcendent concept in high performance processors, characterized by parallelism. Vector processors, as discussed in sections 7.1 and 7.2 ("Vector Processors") of Computer Architecture A Quantitative Approach, by John L. Hennessy and David A. Patterson (Morgan Kaufmann; San Mateo, California 1990, pages 351 -363) are a manifestation of such systems; and the processor-memory pair is approximated as the Cm * design discussed from pages 11 to 18 in Parallel Processing-The Cm * Experience, by EF Gehringer, DP Siewíorek and Z. Segall (Digital Press, through Editorial Inc. Rockport, Massachusetts, 1987) provide a second example of this type of approach. The centralized coordination of computing tasks in a context scheduled for the future also affects traditional project programming concepts, as discussed on pages 569 to 584 of the text Productions and Operations Management, by J. William Gavett (Harcort, Brace and World, New York, 1968). The development of process control systems is characterized by an ever-increasing incorporation and handling of large issues in the system being controlled, which requires that a comparatively large amount of logic be executed in a comparatively greater amount of data for be executed in a time frame that can not be expanded. This can be achieved to some extent by peripherals that process logic more quickly and retain more data in the localized physical store, but there are substantial costs to obtain this solution. What is needed to solve the ability of future systems to effectively expand their comprehensive treatment of the control situation is to truly provide a solution path to allow a very large number of distributed computers to run massive amounts of logic in a way mutual, which is synchronous in time through a whole network. The present invention provides said method and system. The invention provides a method implemented for computer, to allow a plurality of computer nodes in mutual data communication, to execute the logic in a coordinated manner: (a) by aligning the time definition between the computer nodes, so that each computer node has essentially the same "understanding" of time; (b) defining a communications program for each computer node, where the program has a different time in the future, defined to start each respective communication; (c) communicating each program to its respective computer node; and (d) initiating each communication from each node at the time defined in its program. The described modality provides a computer network architecture having a message carrier with a plurality of computers coupled to it; a clock system (accessible by all computers on the network) to maintain the synchrony of time between computers; and a programmer to determine the sequence of communications between computers, making the message carrier establish communication between selected computers, based on time-determining tasks that are carried out by the computers. The described modality additionally provides a global time system to align the time direction in the series of computers to a globally defined reference. The described embodiment additionally provides a method implemented by computer to allow a plurality of member nodes to execute the logic in a coordinated manner. The modality described above also provides concurrency in communications between computers, by means of a message carrier. The described modality additionally provides a method implemented by computer to program tasks for resource objects, in a plurality of resource objects that function as a collective group. The described modality provides a method by which different computers can align their time definition, adjusting the oscillation speed of their oscillator. The computer network architecture is enabled with a message carrier that supports multiple communication paths; a plurality of computers coupled to the message carrier; each computer being programmed to perform time determining tasks, cycling through a plurality of different operating states, including a communication state; a clock system, accessible by all computers, to maintain the synchrony of time between computers; and a programmer coupled to the message carrier, to determine the communication sequence between the computers, allowing the message carrier to establish communication between selected computers, based on the time-determining tasks that are carried out by the computers. A computer node (element for computing with an independent central processing unit) in the plurality of computer nodes, can execute logic in coordination with the other nodes, when connected with a message carrier, together with the other computer nodes, when (a) master programming capability is also provided in a computer node to establish a master programmer; (b) definition, in each computer node, of a communication request list of each communication that the computer node needs, with any other computer node, referring to a future period of time; sending the communication request list from each computer node to the master programmer, by means of the message carrier; 8d) reception, in each computer node, of a communications program from the master programmer, through the message carrier; and (e) define a program of local tasks in each computer node, from the communications program. The above approach allows a plurality of member nodes in a system to execute a large amount of logic in a coordinated fashion, in a group of distributed platforms. When the above is done, the step of defining a time value of the reference moment, in a modality, is carried out by the master programmer. In doing so, the step of defining a list of communication requests in each member node, in one modality, limits communications to a maximum number in the future period of time, and each communication has an attribute of time duration and the value of the duration time attribute is less than a fixed maximum value, in order to obtain efficient operation. The use of a global time system, in one modality, allows a universal understanding of time through a large number of different computer nodes (member nodes) in an extended system. The method of programming involves a process of scheduling tasks for resource objects (member) into a plurality of resource objects that function as a collective group, and this process implemented on a computer (called an "apparent critical resource" process) involves steps of: defining a series of future tasks for the collective group, defining each resource object necessary for each future task in the series of future tasks; define each necessary interaction between any two resource objects, in relation to the series of future tasks; define a use case for each resource object, when obtaining each interaction, when the use case has an attribute value of duration of use; define an access to a resource object and an access object accessed, with respect to each use case; determine a summed access time value for each resource object accessed, as a sum of all duration tax values for all use cases, in relation to that resource object and the resource object to which it is assigned access define a series of increments in the future, sequential time, within a programming period in a program; program, at the closest available time, in the first increment of future time, a future resource interaction event, based on the first future task available in the series of future tasks, between: (a) the resource object to which access, which has the highest added access value, with respect to the series of future tasks; and (b) the accessed resource object that has the highest summed access value, in relation to the series of future tasks (if there is a use case between the accessed resource object and the accessed resource object, the future resource interaction event in the program record has a start time equal to the earliest available time in the program, an attribute identifier of resource object accessed, which depends on the resource object accessed, an attribute resource object identifier accessed, which depends on the accessed resource object, and the use duration attribute value mentioned above); remove from the programming candidates the respective use case to the resource object accessed in the scheduled future resource interaction event, and the member object identifier attribute to be accessed, in the future, scheduled resource interaction event to redefine the series of future tasks to those future tasks for which no interactions have been scheduled; repeat the steps of determining the summed value added, determining a summed access value, scheduling a future communication task and removing all use cases from scheduled resource objects, until all use cases have been programmed, which can be be programmed in the first increments of future time; and recurrently performing the steps of determining the summed accessed value, determining a summed access value, scheduling a future resource interaction event, removing all the respective resource objects to scheduled resource objects, and repeating those steps until all the events of resource interaction have been programmed, which can be programmed in each future time increment, and until all the resource interaction events have been programmed, in the programming period.
In one embodiment, the message carrier has a plurality of channels to allow concurrency in communication events, the programming step being dependent on the plurality of channels, as a group; where the earliest available time is with respect to any channel in the message carrier. In some embodiments each member node has a variable speed oscillator, to set a local clock to align it with a global clock in the network. Also provided are a time alignment logic and an oscillator speed adjustment logic, for execution by the computer circuit, to obtain fast time alignment of the particular member node (computer node). The message carrier used in the described mode is enabled with a network topology that can be manifested (in the preferred embodiment) with a crossbar switch or, in an alternative mode, with a radio frequency communication system. Additional aspects and advantages of the present invention will become more fully apparent when reading the detailed description of the preferred embodiment and the accompanying drawings. Figure 1 presents a diagram of the data flows between the various elements in a distributed network. Figure 2 illustrates a distributed network of computing elements, which are resident in physically different locations throughout the world. The figure includes a network of computing elements, a master programmer and a common time source. Figure 3 represents a diagram of a network in a collector structure. Figure 4 shows a distributed computing environment, where the network is implemented in an annular topology. Figure 5 shows a diagram of a network in a switched star topology, which is a preferred network architecture mode. Figure 6 presents a diagram of data structures communicated between the counting elements and a master scheduler. Figure 7 illustrates a flow diagram of the process implemented in the master scheduler, when scheduling communications between two separate computing elements. Figure 8 presents a simplified diagram of the programming logic (application program in execution by the electric circuit) implemented in the master programmer in the programming of communications between two separate computing elements. Figure 9 presents a detailed flow diagram of the programming logic, which is followed in the master programmer. Figure 10 presents a bar graph illustrating the first scheduled communication between two separate counting elements, after the first connection is programmed. Figure 11 shows a bar graph illustrating the scheduled communications between counting elements, after all the connections that can be programmed in the first step are programmed. Figure 12 shows a bar graph illustrating the scheduled communications between computing elements, after all the connections have been programmed. Figure 13 provides a detailed composition of the message bearer, the master programmer, the clock and the member nodes. Figure 14 shows the relationships between the technologies that have been combined in the first modality, with emphasis on those that are very critical for the application. Figure 15 presents a flow diagram of the logic that is executed in each of the computing elements, in order to facilitate communication between the member nodes. Figure 16 illustrates a diagram of the data flows between the various elements, in a distributed network, where communications are facilitated by radiofrequency. As an introduction to this part of the specification, the system and method of the present invention implement centralized programming of tasks performed in a cooperative manner; operations of events determined in time, and effective synchronization and alignment, in real time, from the respective oscillators, to the plurality of computers (also called "member nodes"), in the network. In this sense, the time-determining network involves communication between separate computing elements, based on time instead of at a certain event (examples of events are the reception of a signal or the detected availability of a particular collector). The centralized programming of tasks performed in a cooperative manner, operations of time-determining events and the real-time synchronization and alignment of the oscillators with respect to the plurality of computers in the network requires that computers share an essentially common view of the datological representation of a real moment, in real time. This means, for example, and assuming for this example (without limitation to the scope of the present invention) a system with a requirement of precision with amplitude of one millionth of a second, that two different computers in the system perceive essentially that, when the moment of time in real time, defined by an undisputed source regarding the network is 08: 00: 0000000 hours, the first of the two computers has a datological representation of the moment in real time between 07: 59: 9999995 and 08:00 : 0000005; and that the second of the two computers has a datological representation of the moment, in real time, between 07: 59: 9999995 and 08: 00: 0000005, and that the second of the computers also has a datological representation of the moment in real time between 07: 59: 9999995 and 08: 00: 0000005; As you can see, the difference in the datological representation of the moment in real time, between the two computers is greater than a millionth of a second. When computers in a distributed computing network share an essentially common view of the real-time datum representation, they can be programmed to perform specific tasks over time. The tasks involving multiple computers can then be programmed centrally, and a basis is established for activities that depend on time, to be invoked in geographically dispersed computers in a deterministic manner. In this sense, determinism in real-time operations characterizes the occurrence of a predefined event at a predefined moment of real time. The use of such temporary coordination in communications between computers also facilitates the use of active redundancy. In active redundancy there are two or more computers that are essentially essentially identical, exchanging the results of those executions, optionally arbitrating the derived results independently to arrive at a mutual conclusion, of common compression, for further use; and acting to perform the result concurrently. This process proceeds very effectively when the data received by each computer is shared with the other or the other computers that execute the same logic, before arbitrating the results; so that there must be a certain mechanism by which the time of beginning the arbitration process is mutually determined. In the present invention, the mechanism to provide time synchronization between redundant computers and to program the tasks related to a communication case, is (1) to provide an essentially identical datum representation of the moment in real-time, between the computers; (2) use a programming approach to define on each computer the moment in time when the communication case will occur on that computer; and (3) then implement the appropriate tasks of sending, receiving and linking in each system involved in the case of communication, in the time defined for the case of communication. In that way, the time at which the arbitration task referred to will take place is predetermined after the communication tasks have been programmed (as opposed to the wait approach to determine the start time of the arbitration task, after the communication tasks have actually been executed). The programming approach is implemented by executing the programming logic. The concept of the logic refers to an application program (computer program) whose purpose is obtained in the execution by an electrical circuit enabling system (usually denoted by the term "computer"). The programming logic used to program communications is based on the analysis of resource demands (for example, specific computers, data space within each computer, execution time on each computer and specific circuits within each computer) that are is putting in the program. This programming logic is used to program network communications, but has further application in the programming of any resources that require mutual interaction, and is especially suitable for applications in real time. The programming logic is additionally designed to be efficient with respect to the resources it is responsible for programming, and predictable in terms of the amount of time necessary to generate its output, a program, from the inputs (which is a collection of connection requests between any two computers in the network). To obtain that task, the logical programmer schedules the available resources with the maximum demand for the time in which the program is being created. Reflecting the nature of (1) assessing the resources with the highest demand at each point of the program, and (2) giving precedence to the resources that have the highest demand, the method of the particular programmer logic, described in this specification, is called also here: "apparent critical resource", or logical ACR programmer. In this sense, in the preferred modality, the programmer logic is not iterative in the sense that, once a particular task is programmed, it is NOT removed from the program in order to obtain an alternative to its placement in the program. It is this quality that allows the preferred logic type ACR programmer, logical programmer, is well suited for applications of real type. In the application of the programmer logic to the programming of network communications, there are transmission resources and reception resources that have to be considered. Each time communication of a network is programmed, a transmission resource is associated with a reception resource. In the network communications program, there are responsibilities that are handled by the master programmer, and those that are managed by the member nodes. Figure 1 presents a data flow diagram 130 of the general elements and associated data flows between the various general elements in a distributed network, and shows a message carrier 100, a first member node 107 and a second member node 108 , a master scheduler 106 for coordinating communications between the member nodes 107, 108, via the data communication path 101 and the path 102 data communication, clock alternatives (like clock 109 and alternative clock 110) to obtain synchronization between member nodes 107, 108 (via communications path 104, communications path 105, communications path 101 and communications path 102) and tables and changes of primary data needed to effectively interact in this distributed computing environment (via data communication path 118, data communication path 117, data communication path 119, data communication path 120, and path 121 of data communication). The clock 109 is distributed to the member nodes through the message carrier, from the master scheduler (alternatively, the message carrier 100 could distribute an alternative local clock 110 to the member nodes 107, 108 and the master scheduler 106). This allows all nodes attached to the message bearer to share a common time view. In this sense, the clock 109 represents a global clock for use around the physical globe (for example, in North America, in Europe and in Asia) where the alternative clock 110 represents a clock that has been designated for the network referenced only by the message carrier 100, and where a computer executing aspects of message carrier 100, arbitrarily defines the time for its affiliated computers in the distributed network. Clock 109 or clock 110 periodically outputs a common clock signal, either through link 104 or 105, respectively. Each member node 107, 108 is responsible for receiving the common clock signal; "synchronizing" effectively (aligning the time definition in the node to a high tolerance with the respective time definition in the common clock signal to create a time base of the system operating in synchrony with an established clock frequency and the point anchor), to the common clock signal; receiving an appropriate local event table 114, 116 from the master scheduler 106, formulating a respective task execution list, based on the table 116,114 of local events received, and any additional tasks not described in the table of local events 114, 116; executing the task execution list, generating the communication request list 113, 114, and transmitting the communication request list to the master scheduler 106. Each member node 107, 108 generates a connection request list 113, 115, with based on the required tasks of the node 107, 108, and sends those requests in a prescribed time through the message carrier 100 to the master scheduler 106. The master scheduler 106 combines the connection request lists 113, 115 from the nodes members, to a mixed request list 111, which uses them to generate a pattern or communications program represented in the master event table 112. This master event table 112 is then decomposed into sections applicable to each of the member nodes 107, 108, and sent through the message carrier 100 (also at prescribed times) to the member nodes 107, 08, for storage in the local event tables 114, 116. The local event tables 114, 116 are used in the member nodes 107, 108 to control the time for the applicable tasks that depend on time, including communications with other member nodes. Figure 2 illustrates a distributed network 220 of computing elements that are resident in physically different locations throughout the world, to show a case of the situation abstracted in the data flow diagram 130 of Figure 1. This figure includes a network of computers 201-214 and two time sources in clock 203 and clock 214, representing respective time sources for clocks 109, 110 of the data flow diagram; in this sense, Figure 2 shows the clock 203 as the basis for the definition of time for all systems in North America and Eurasia, while the clock 2o6 defines a basis for the definition of time for the globally less scattered domain of computers 206, 207, 208, 209 and 214 in Africa. It should be noted that the clock 214"maps" the clock 110 in the context of the data flow diagram of Figure 1. Figure 2 thus illustrates two possible configurations for distributed computing environments (which facilitates message carriers). 100, master programmers 106 and clocks 104, 105, associated). A distributed computing environment can be located in a geographically limited area or dispersed throughout the world. When it is spread across large geographic areas, the clock 203 is preferably a satellite time control distribution system, such as the Global Positioning System. Figure 3 shows a diagram of a network in a collector structure 330. Figure 3 shows the fundamental components of Figure 1, except that the message carrier 100 is a collector 300 connecting the member nodes 107 ,. 108 ,. to the master programmer 106. Figure 4 shows a distributed computing environment, where the network is implemented in an annular topology 430. Figure 4 shows the fundamental components of Figure 1, except that the message carrier 100 is a ring enabled by the ring segments 402, 403, 405 and 401, to effectively connect the member nodes 107, 108, to the master scheduler 106. Fig. 5 presents a diagram of a network in a switched star topology 530, which is an architecture mode of preferred network. Figure 5 also shows the fundamental components of Figure 1, except that the message carrier 100 is explicitly a switched network, implemented in a star topology, which connects the member nodes 107, 108 and the master scheduler 106, and that this master programmer 106 is embedded in network switch 501. This diagram shows the preferred embodiment as it could be used in a large manufacturing process (a manufacturing process refers to making the products in an apparatus whose movable components are modified in real time, using control signals from a system of computer control, which performs readout measurements of logic, from the apparatus, and outputs control signals) through a large number of input / output processing devices, and computing platforms in a potentially distributed arrangement in geographical. The star topology network 530 enables the reading of measurements and outputs control signals with respect to the apparatus to manufacture, through the 510 input / output (I / O) interface, the I / O 511 interface, the I / O interface 522, the I / O interface 519, the I / O interface 512, the I / O interface 513, the I / O interface 520, and the I / O interface 521. The I / O interface 510, the I / O interface 511, the I / O interface 512 and the I / O interface 513 are all linked by a ring interrupt 508, and the ring interrupt 509 controls the computer 504 and computer historian 505 through local network 515. Similarly, the 522 I / O interface, the 519 I / O interface, the I / O 520 interface and the 521 I / O interface they are all joined by means of a ring interrupt 518 and the ring interrupt 517 to control the computer 506 and the historian computer 507, through the local network 514. The I / O interface 510, the interface z of I / O 511, the I / O interface 512, the I / O interface 513, the ring interrupt 508, the ring interrupt 509, the 504 control computer, the 505 historian computer and the 515 local network they operate with local logical integrity and elevated datological cohesion in real time. Similarly, the I / O interface 522, the I / O interface 519, the I / O interface 520, the I / O interface 521, the ring interrupt 518, the ring interrupt 517, the computer control 506, the historian computer 507 and the local network 514, work with local logical integrity and high datological coherence in real time. Consistency is enabled between: (a) the I / O 510 interface, the 511 I / O interface, the interface I / O 512, the I / O interface 513, the ring interrupt 508, the ring interrupt 509, the control computer 504, the computer historian 505 and the local network 515; and (b) the I / O interface 522, the I / O interface 519, the interface of I / O 520, the I / O interface 521, the ring interrupt 518, the ring interrupt 517, the control computer 506, the historian computer 507 and the local network 514, through the sending of messages, by the network switch 501, which implements: (1) communications for the provision of an essentially identical datum representation of the moment, in real time, between the computers; (2) the master programmer 106 processes to define the control computer 506, the computer historian 507, the control computer 504, the computer historian 505, the user interface 503, the network support 502 and the network switch 501, at each moment of time, when each case of communication between any two of the 506 computer occurs, the computer historian 507, the control computer 504, the computer historian 505, the user interface 503, through the use of the network switch 501, and (3) the appropriate tasks of sending, receiving and linking, respectively, to the components involved in the communication case, in the time defined for the communication case.
The network support 502 is also coordinated as a node in the switched star topology 530, as a single information source to define the acceptable communication partners in the switched star topology 530, and also to accumulate and provide access to the information Diagnostics in the 530 switched star topology. The network switch 501 refers to the network support 502 for the list of acceptable communication partners in the switched star topology 530, and confirms the communication case requests against this list, by defining the tasks of sending, receiving and link. In one embodiment, the I / O interface 522, the I / O 520 interface and the I / O interface 521 are facilitated by a process control system, such as that described in U.S. Patent 5,555,424 (24 Sederlund and co-inventors) issued September 10, 1996 and entitled "Computer memory system, with extended Harvard architecture, with variable programmable locator increment", by Sederlund, Edward R .; Lindesmith, Robert, J .; Root, Larry A .; Dupree, Wayne P .; and Thomas, Lowell V. This patent is expressly incorporated herein by reference in the present application, to show a manner of making and using the present invention. In a preferred embodiment, the E / O interface is provided. 522, the I / O 519 interface, the I / O 520 interface and the I / O 521 interface, using a redundant process control, computer system, in a general process control system, using two computers process controllers (such as the process control computer described in 24Sederlund and co-inventors, as described in U.S. Patent 5,583,757 (Baca, Jr. and co-inventors) issued December 10, 1996, and entitled "Signal Resolution Method input for process control computers, actively redundant ", by Baca, Jr., Eloy, Dupree Wayne P., Brinwis, Donald, J, Kanse, Johannes C, Pelletier, Douglas P., and Schulze Oscar E. That patent is expressly incorporated herein by way of reference, in the present application, to show a way of making and using the present invention.A modality of a system for obtaining data access for the process control computer described in 24Sedelund and coinv This is described in US Patent 5,568,615 (15 Sedelund and co-inventors) issued October 22, 1996 and entitled "Stealth Interface for Process Control Computers" by Sederlund, Edward R .; Thomas, Nadene T .; Lindesmith, Robert J .; and Cowles, Russell W. That patent is expressly incorporated herein by reference, in the present application, to show a way of making and using the present invention. One embodiment of a system that provides a remote field unit, for use with the process control computer described in 24 Sederlund and co-inventors, is described in U.S. Patent 5,428,769 (69Glaser and co-inventors), issued June 27, 1995 and entitled "Process control interface system, which has remote, triply redundant field units", by Glaser, Robert S .; Today, Robert S .; Fernández, G. Paul; and Grai, Timothy J. This patent is expressly incorporated herein by reference in the present application, to show a way of making and using the present invention. One embodiment of a system that provides an interface for reading electric current in power distribution systems, for use with the field unit described in 69Glaser and co-inventors, is described in US Patent 5,151,866 (66Glaser and co-inventors) issued September 29. of 1992 and entitled "High Speed Energy Analyzer", by Glaser, R. Steven and Bade, Jeffrey M. That patent is expressly incorporated herein by reference in the present application, to show a way of making and using the present invention. . One mode of a system that provides a high-speed gate for use with the redundant process control computer system, described in Baca and co-inventors, and the system to obtain access to the data for the process control computer described in 24 Sederlund and co-inventors, is described in: (a) U.S. Patent 5,519,603 (Allbeny, Jr. and co-inventors) issued May 21, 1996 and entitled "Intelligent communication system for process and method control that has the ability to align corresponding data series in time" by Allbery, Jr., James D .; Troisi, Peter A .; Johnson, Susan J .; Cullen, James H .; Butier, Richard L .; Ferreira, James P .; The I ¡are, Joseph, Patel, Chiman L .; James E .; and Schultz, Dale, H .; (b) U.S. Patent 5,428,745 (45 de Bruijn et co-inventors), issued June 27, 1995 and entitled "Secure communications system for restoring limited communication in time between first and second computers, before the end of the time period of communication, using new random number "by De Bruijn, Ronny P., Verboven, Marc LK; van Weele, Leonardus A .; Vermeire, Roger R .; Schulze, Oscar E .; Schultz, Dale, H .; Y Bell, Brian G .; and (c) US Patent 5,561,770 (70 de Bruijn et co-inventors), issued October 1, 1996 and entitled "System and method for determining whether to transmit an order to control a computer, checking the status of the enabling indicator associated with an identified variable. in the order "de De Bruijn, Ronny P .; van Weele, Leonardus A .; Verbove, Marc L. K .; Vermeire, Roger R .; Schulze, Oscar E .; Bell, Brian G .; and Schultz, Dale H. These patents are expressly incorporated herein by reference in the present application, to show a way of making and using the present invention. One embodiment of a system providing human interface training for use with the redundant process control computer system and the interfaces described in the above patents is described in U.S. Patent No. 5,631,825 (van Weele and co-inventors) , issued May 20, 1997 and entitled "Operator station for manufacturing process control system", by van Weele, Leonardus A .; de Bruijn, Ronny, P .; Vermeire, Roger R .; Zemering, Christo and Lenting, Ben. That patent is expressly incorporated herein by reference in the present application, to show a way of making and using the present invention. While this human interface system could be used as a user interface in each of the I / O 522 interface, the I / O 519 interface, the I / O 520 interface, and the E / O interface. Or 521, it should be noted that the user interface 503 is preferably designated by network switch 501, to the entire series of systems in a particular case of switched star topology 530. The system modalities that provide real-time interpretation of the application program code executed by the above systems are described (a) in United States patent 5,491,625 (Pressnall and co-inventors), issued on February 13, 1996 and entitled "Display system of information for computerized process control, actively redundant "by Pressnall, Dana W .; Polishak, Jeffery T .; Felix, Bradley K .; Durisin, Michael, J .; and Ellison, Joseph; and (b) in U.S. Patent 5,408,603 (Van de Lavoir and co-inventors), issued April 18, 1995 and entitled "Information system and method for global process control", by Van de Lavoir, Ronny; Follón, Marinus (Neerpelt, BE); and Ravenscroft, lan. These patents are incorporated herein by reference in the present application, to show a way of making and using the present invention. A large graphic monitoring system, which provides a human interface, is deployed in the preferred mode, along with the operator station. This graphic monitoring system is described in US Patent 5,726,668 (Clement) issued March 10, 1998 and entitled "Programmable Graphics Panel", by John L. Clement. That patent is expressly incorporated herein by reference in the present application, to show a way of making and using the present invention. In a highly preferred conceptualized mode, the I / O 510 interface, the I / O 511 interface, the I / O 522 interface, the I / O 519 interface, the I / O 512 interface, the I / O 513 interface, the I / O 520 interface, the I / O 521 interface , ring interrupt 508, ring interrupt 509, control computer 504, computer historian 505, ring interrupt 518, ring interrupt 517, control computer 506, computer historian 507, interface I / O 522, the I / O interface 519, the I / O interface 520, the I / O interface 521, the ring interrupt 518, the ring interrupt 517, the control computer 506, the network 502, network switch 501 and computer historian 507 are implemented using a dedicated context cyclic computer, as described in US patent application 08 / 797,967, which was filed on February 12, 1997 by Wayne Dupree, Jeffery Lucas, Larry Root, Gerrit Verniers and Stephe Churchill, entitled "A dedicated cyclic context computer a "with the system of 69Glaser and co-inventors, which facilitates the instrumentation of the field interface. This patent application is expressly incorporated herein by reference in the present application, to show the contemplated preferred way of making and using the present invention. The context cyclic processor provides a substantial number and variety of input and output circuits, each of the specialized circuits with at least one dedicated record to retain the process and the configuration status of relevant resources, attributes or aspects associated with the circuit or with the function, while another context is active; with the combination of specialized circuit and one or more dedicated registers that establish the electric circuit base for the context. Contexts also include the specific affiliate logic for the circuit. A plurality of contexts share common assets with the CPU. When necessary, a coprocessor for use with the cyclical context computer is described in U.S. Patent 5,655,133 (Dupree and co-inventors) issued August 5, 1997 and entitled "Superscalar Harvard Architecture Computer, with Mass Multiplexer" by Dupree, Wayne P .; Churchill Stephen G .; Gallant, Jeffrey R .; Root, Larry A .; Bressette, William J .; Orr, lll, Robert A .; Ramaswamy Srikala; Lucas, Jeffrey A .; and Bleck, James. That patent is expressly incorporated herein by reference in the present application, to show the contemplated preferred way of making and using the present invention. The network switch 501 also preferably uses a cross-bar switch 516 (bar X), capable of implementing at least 99 parallel and simultaneous communication links. The master scheduler 106 is implemented in the network switch 501 to provide a common clock signal (such as an access to the clock 109 or a clock display 110) and is further responsible for the distribution of the common clock signal; the collection of the requests of each of the member nodes 108, 107 (in this case of the network 530, the control computer 506, the computer historian 507, the control computer 504, the computer historian 505, the user interface 503, the network support 502 and the network switch 501, are all instances of member nodes 107 and 108 in the data flow context of Figure 1); the programming of the communication tasks for each of the member nodes 108, 107; the transmission of the program to each of the member nodes 108, 107 and the implementation of the connections between the member nodes 108, 107. The purpose of distributing a common clock signal is such that each member node 108, 107 in the network 530 has the same understanding of time. This aspect of having the same understanding of time is crucial in this invention, since the programming of tasks is carried out based on time. Thus, the common clock signal is used to effectively synchronize and align all member nodes 108, 107 at a common time in time. On a predefined periodic basis, master scheduler 106 on network switch 501 sends a message that propagates to each of the member nodes 108, 107, to define the beginning of a period of time. The collection of requests from each member node 108, 107 (any of the control computer 506, the historian computer 507, the control computer 504, the 505 computer historian, the 503 user interface, the 502 network support, the 501 network switch) occurs once each programming period. The master scheduler 106 in the network switch 501 sets aside the time to receive requests from each member node 108, 107 (any of the control computer 506, the historian computer 507, the control computer 504, the 505 historian computer, the user interface 503, the network support 502 and the network switch 501), each programming period. The requests originate from the member nodes 108, 107, which will need the requested communications. The master scheduler 106 in the network switch 501 receives each of these requests and considers them in its programming logic. Each request contains information about the source, destination and duration of the communication. In addition, each request can contain a priority indicator, as well as information needed to supply your message to a particular application that is running on the destination node. After the task of collecting the connection requests of all the member nodes 108, 107 ends, the result is collected in a mixed request list 111. Note that it is also possible that the annotations in the mixed request list 111 originate within the master scheduler 106 in the 501 network switch itself; it is also possible that the particular connection requests have a repetitive nature, such that multiple connections in a series of future time periods are invoked from a single connection request. The master scheduler 106 in the network switch 501 then programs the communications that will occur in the future. The method that is used in order to effect the scheduling of the communications is not critical in the operation of the deterministic time network, although the apparent critical resource approach, discussed in this specification, is the preferred approach. The logic implements the assignment times for the requested communications. The determination of when to stop the programming process during the programming period can occur in one of three ways: first: all communication requests that can be scheduled are, and therefore, no more programming work is pending; second, there is no more time remaining in which to carry out the programming (the processor must stop the programming process in order to continue with his next task); and third: there have been more requested connections than could be programmed in the available programming window of the increment of time (a bandwidth exhaustion), in which case the excess requests are retained as a waiting queue for the next attempt to program. The resulting program is stored in a master event table 112. This master event table 112 contains the initial time 621 of the scheduled communication, in addition to some of the same information, similar to that of the mixed request list 111. Note that it is also possible that certain tasks are preloaded in the master event table 112, in order to derive the programming process, as required to maintain certain time control requirements in a task. The master scheduler 106 on the network switch 501 then communicates with the local event table 114, 116 (that portion of the program belonging to a particular member node 107, 108) to each appropriate member node 107, 108. For each event that appears in the master event table 112 that includes an appropriate member node 108, 107, as the source or as the destination, there is an entry in the local event table 114, 116. Each member node 108, 107 (either the control computer 506, the computer historian 507, the control computer 504, the computer historian 505, the user interface 503, the network support 502 and the network switch 501), which is involved in any communication, receives its own local event table 114, 116. The master scheduler 106 on the 43d switch 501 then implements the connections according to the times that are assigned and appear in the master event table 112. The processing of those connections when using the preferred mode of the non-blocking switch, leads to the situation in which there may be multiple connections that are implemented concurrently. The mixed request list 111, which resides in the master scheduler 106 in the network switch 501, can contain both continuously repetitive connections to be implemented without contingencies, as well as dynamically requested connections (implemented when requested, usually initiated by one of the nodes). of the network). This connection request list contains, as a minimum, a source or origin specifier, a destination specifier, and a duration specifier (see figure 6 showing registration details 600). Other parameters pertinent to the programming are optionally included as specifiers, such as priority 617. Figure 6 shows the composition of the primary tables and the messages 600 used in the programming and in the task coordination process. The connection request list 115 has the origin 614, the destination 615, the duration 616 and possibly the priority 617, such as fields 610 on the two member nodes 108, 107, and when combined in the mixed request list 111, on the master scheduler 106 on the network switch 501. The programmer logic 611 in the master scheduler 106 uses the data from these fields 610 to build a pattern or program in the form of a master event table 112 with fields 612 for the source 618, the destination 619, the duration 20 and the start time 621, for each of the connections. Note that the programmer logic 611 takes the origin 614, the destination 615 and the duration 616 of the connection request list 111, while the start time 621 is a product of the programming process itself. The local event tables 114, 116 are simply substrings of the master event table 112, decomposed to those portions applicable to the respective member node 108, 107 (either of the control computer 506, the historian computer 507, the control computer 504 , the history computer 505, the user interface 503, the network support 502 and the network switch 501) -no manipulation of the fields 613 is required. The virtual paths 601, 602, 603, 606, 607 and 608 show the flow of information from fields 610 of the connection request list to fields 613 of the local event table. Virtual path 604 shows the entry of the priority 617 to the programmer; and the virtual path 609 shows the start time 621, 625, as communicated from the programmer logic 611. These data are then used by the programmer logic 611 to derive a program or pattern to serve the requested connections. The output of the programming process of the programmer logic 611 is recorded in master event table 112 which, in turn, is divided into tables 116 of local events for distribution to the network nodes (see Figure 1). The event tables contain fields 613 for source 622, destination, 623, duration 624 and start time 625. Within the network nodes are joined together the local event tables 114, 116 with the lists of local tasks and the logical it executes them to make sure that all the necessary work can be completed and that all time control corresponds to (or is not in conflict with) the one specified by the programmer logic 611. Figure 7 summarizes the general programming process 710. Connection requests are collected during a defined request acceptance period. After a defined period of time, the collection of connection requests must be processed. Additional connection requests are not prohibited, but a cut-off point must be established. Figure 7 shows the basic steps involved in the master scheduler 106 in the network switch node 501, which are necessary in the programming of the connection requests. The first three steps 701-703 provide the definition of time aligned on all nodes. In step 704, the connection requests of all the member nodes 107, 108 (the nodes that send their requests as a communication at predefined times in their local task programs, from the previous programming operations) are received.
In step 705 the connection request process ends, so that a program for the future can be defined when the programming process is applied to those requests that were collected from the member nodes 108, 107 during a particular time increment window , which is about to conclude. The program connection request step 706 may begin once the requests have been collected (more detail in Figure 8). Once the program is completed, the applicable portions of the program are extracted from the master event table 112, in the creation of the local event tables 114, 116 in step 707, which are then transported to the nodes 107, 108 in step 708, for later implementation in step 709. For distributed computing environments, in general, connections between nodes 107, 108 may be necessary at any time, which means that connection requests may be original in any moment and some service time must be tolerated in the connection annex. There are four processes then, which are executed repetitively at a speed according to the desired response in the network 530: pick up the connection requests; programs the connection requests; distribute the resulting program to the network nodes; and communicate through the 530 network, through the established requested connections (see table 1).
TABLE 1 FOUR PROGRAMMING STEPS Table 2 shows the time control relationship between these four processes that, as noted, are always advancing.
TABLE 2 - THE PROGRAMMING LINE Notice in the column to the right of Table 2, that communications are always being made after a few initial iterations establish a basis for communications. For any particular communication in a window of time increment, the program for the communications that is being implemented was transferred in a previous window of time increment, the requests were programmed in a window of time increment before the transfer of the program, and requests were requested even before programming. There may be variations of time control in this line; but it looks like the line used in the preferred mode. The logic used in the currently preferred mode has been designed with two objectives in mind: an efficient program must be produced and the number of cycles required to generate the program must be linked to a reasonable level. Efficient programming involves a simple process, based on the premise that the efficiency of the resulting program is primarily a function of the efficiency at which the most busy resources in the program have been used. This makes it sure that, at all times in the programming process, priority will be given to the resources with the highest demand remaining. In order to derive a pattern or program in an acceptable amount of time, the logic was designed to schedule each request once and only once (the iterative logic was considered unacceptable) and with moderate handling requirements for each connection request. The basic process in programming 806, as shown in Figure 8, is to: (1) define a criteria to measure the demand for resources; (2) classify resources according to their criticality; (3) provide service to those connections that may be served in this step and in the order of criticality of the resource. (4) advance to complete previously served petitions, thereby releasing the applicable resources; (5) Repeat steps 2 through 4 until all requests have been served or until there is no opportunity to service more requests. Any requests that were not possible to serve in this programming step can be sent again during the next programming step. The flow diagram in Figure 8 indicates the process used in the apparent critical resource programmer logic. The first step is to define the criteria by which the use of the resource will be measured 800. For the preferred embodiment, the transmission and reception channels are the resources that are programmed, and the duration of use for each of these resources is the selected criterion. Once the resources for their use have been evaluated, they are classified by use 801. This allows the resources that are used very strongly, to be programmed first in step 802. When all the resources that can be programmed have been programmed ( existing requested connections may not require or allow simultaneous use of all resources), the time increment programming window is advanced to step 803, until applicable resources become available. If there are more connection requests to be served and more time in the program to serve those requests, this process is repeated after step 804 resolves the issue regarding the need for another iteration through steps 801 to 803). The subprocess 806 of the programmer logic proceeds to step 805 upon exit by resolution through step 804, which has completed the programming case. Figure 9 presents a more detailed overview of the apparent critical resource sub-process 950 (ACR) of the preferred mode for the programmer logic. The diagram includes the steps mentioned in Figure 8 and certain additional actions necessary for conditional operation and exceptional handling as the preferred implementation of the process shown in Figure 8. Step 901 represents the starting point for the preferred ACR process. In step 902, the ACR table is constructed and a determination is made in step 903 regarding the presence of unscheduled requests based on the values of the SAV in the ACR table (a quick exit to step 918 is executed if the values indicate that there are no requests in the ACR table). If there are requests, the ACR sub-process 950 proceeds to calculate the window size in step 904, searches for a specific request in step 905 and checks the existence of the specific request and the parts for communication in step 906. If there are the request and the parties, the process proceeds to sum the event in the table of events, in step 912, and modify the ACR path in step 913, before proceeding to the next request in step 914. If the value is high is not zero in step 915, the process proceeds again to step 904.
If the high value is zero in step 915, the time definition (future) is advanced in the ACR, in step 916; the bandwidth in step 917 is checked to see if there is enough time to allow further programming in this programming operation, and the process returns to step 914 for the next request. If, in step 906, there is no receiver for communication, an alternative receiver is defined in step 907 and evaluated in step 908. If step 908 does not define an alternative receiver, an alternative transmitter is selected in step 919 and evaluated in step 920; if it is acceptable (step 920), step 921 selects the receiver with the maximum ACR value and returns the process to step 908; and if not acceptable (step 920) the process proceeds to step 916. When an alternative is defined in step 908 the process proceeds to the program through steps 909, 910 and 911 through step 912. The virtual datological process, at to be executed by these steps, can best be described by considering an example regarding the list of communication requests for a hypothetical network consisting of five nodes, shown in Table 3: TABLE 3 INITIAL REQUEST LIST Suppose that the duration is measured in some arbitrary unit of time, perhaps in milliseconds, and that there are n different priority levels, from 1 to n, where 1 is the most urgent and n the least urgent. First, notice that with a transmission type network (where all transactions need to share bandwidth, such as a carrier-wide multiple access network, with collision detection, or CSMA / CD network, the service time needed to complete previous requests would require a minimum Theoretical integration of 246 time units The incorporation of a non-blocking switch allows the simultaneous operation of the five transmission resources and the five reception resources.When analyzing the benefit of implementing a non-blocking network, the logical programmer of the example first determines the demands on the each of the resources, when building a table, like table 4.
TABLE 4: INITIAL SUMMARY ACCESS VALUES The summed or SAV access values are simply the row or column totals for the transmitter (X in the rows of the table) and the receiver (R in the columns of the table), the interaction times and reflect the total demands on the particular resource, as measured in the arbitrary units of duration. Note now that the theoretical minimum time required to service the requests has dropped from 246 time units to 104, selecting a non-blocking switch solution. The minimum service time for these requests is probably restricted by transmitter 3, since transmitter 3 has the highest VAS and the other transmitters can typically be served while the transmitter is being served 3. Although the theoretical lower limit may be 104 units of time, the actual minimum service time may be longer and may even depend on the order in which the connections are served. However, the next objective is to determine the optimal programming method in order to maximize the capabilities of the existing network (minimize the required service time). Assume for this particular example that the resulting program, regardless of the number or composition of the requests, applies to a future window of time increment of time, with a duration of 150 units of time. The example begins by looking at the connections that will be made at time = 0 for that program of 150 units. The primary objective, judging from the SAVs, is to program some request that involves the transmitter 3 and the receiver 1. Referring again to the initial request list, the logic programmer of the example finds a request that involves the transmitter 3 and the receiver 1 , which lasts 16 units of time. Since the programmer logic of the example is currently programming the connections at time = 0, and the logic programmer of this example has 150 units of time * the logic programmer of the example concludes that the 16-digit request fits within the programming window of increase of time and register the transaction in the Table of Events of table 5.
TABLE 5 INTERMEDIATE EVENTS TABLE Illustratively, the table 5 can be shown as the programming diagram 1001 of figure 10. The programmed transmitter element 1002 and the programmed receiver element 1003 denote the scheduled tasks. The request list should then reflect somewhat the fact that this last request has been served. That modified request list may now resemble the one shown in Table 6.
TABLE 6 - INTERMEDIATE REQUEST LIST Since transmitter 3 and receiver 1 are now busy for time = 0, their status should indicate that, so that | a Table SAV updated, after some reformatting, can now resemble table 7: TABLE 7 INTERMEDIATE ADDITIONAL ACCESS VALUE TABLE Note that the SAVs for transmitter 3 and receiver 1 have been adjusted to reflect the request served. This is because the programmer continues to give programming precedence to the resources with the maximum impact on the program. This happens at the expense of the needs of the other resources and, at some point, the inefficiencies injected into resources with low SAVs can cause those resources to have a greater impact on the remaining portion of the program than those resources that had the maximum impact at the beginning. . For that reason the protocol is called apparent critical resource programming (the precedence of programming is always given to the resources that appear to be in the critical path at the time of consideration), or ACR programming. It is now evident that the logical programmer of the example should try to program a request for the transmitter 6 to the receiver 4; the next two resources concurrent with respect to the programming impact, which are available for programming.
There is this request, so that the logical programmer of the example executes it, so that the tables now look like tables 8, 9 and 10: TABLE 8 - INTERMEDIATE REQUEST LIST TABLE 9 - INTERMEDIATE EVENTS TABLE TABLE 10 - INTERMEDIATE ACCESS ACCESS VALUE TABLE Note that the Event Table is effectively a classified list (chronologically) of the requests scheduled from the list of requests. For that reason the intermediate stages for each programming step are not shown. By repeating the process as before, the programmer logic of the example programs a communication case request 1 to 2 (that is, a connection from transmitter 1 to receiver 2) and the tables are modified to the following tables 11 and 12: TABLE 11 - LIST OF INTERMEDIATE REQUEST TABLE 12 - INTERMEDIATE ACCESS ACCESS VALUE TABLE The logical programmer of the example then searches for the communication case request from 2 to 5, but said request was not made. There are several alternatives in determining the next combination to be attempted, and the optimal solution selected is based on the desired transactions between the bandwidth efficiency and the processing costs. (Co-impact of minimum bandwidth, a simple fixed rule can be selected, and for the preferred modality, an alternative is selected for the existing transmitter, until all receiver selections have been exhausted, after which the particular transmitter and the next transmitter is selected, and the maximum impact receiver is reconsidered, see Figure 9). Using this logic, the communication case request 2 to 3 is sought, but it is not found; then the communication case request from 4 to 5 is searched, found and selected. The SAV table is updated and it is determined that no other connection can be made at time = 0. The Table of events is now shown in Table 13.
TABLE 13 - INTERMEDIATE EVENT TABLE Again these four connections can be illustrated illustratively in the program diagram 1101 in FIG. 11. The programmed transmitter element 1002 and the programmed receiver element 1003, of FIG. 10, have been designated programmed elements 1102 and 1103, respectively, and they are joined by programmed elements 1104 and 1105 (communication from 5 to 4), 1106 and 1107 (communication from 1 to 2) and 1108 and 1109 (communication from 4 to 5). The logician involved in advance time arrives to advance to the next chronological end. In this case, the communication case connection from 4 to 5 is the next chronological end, so that the example advances in time to time = 9, and at that time transmitter 4 and receiver 5 are enabled again. The request and the SAV Table are now shown in tables 14 and 15.
TABLE 14 - INTERMEDIATE REQUEST LIST TABLE 16 - INTERMEDIATE ACCESS ACCESS VALUE TABLE SAV transmitter channel SAV receiver The logical programmer in the example now searches for the communication case request from 1 to 2, but the only case of communication from 1 to 2 had already been programmed, so that the example looks for a communication case request from 1 to 5, that the example finds and programs. The new SAV Table is then table 17.
TABLE 17 - INTERMEDIATE ACCESS ACCESS VALUE TABLE The logic programmer of the example then searches for the communication case request from 2 to 2, a communication case request from 2 to 3, a communication case request from 4 to 2 and a communication case request from 4 to 3 , before determining that again it is time to advance the time. The example advances the time from 15 to 16, and at that time Table SAV resembles table 18.
TABLE 18 - INTERMEDIATE ACCESS ACCESS VALUE TABLE The logic programmer of the example then programs a communication case request of 3 to 1, which turns out to be the only request that can be programmed in Time = 16. The tables, after the logical programmer of the example advances time to time = 17, they look like in tables 19, 20 and 21.
TABLE 19 - INTERMEDIATE ACCESS VALUE TABLE TABLE 20 - INTERMEDIATE REQUEST LIST Nothing can be programmed at time = 17, so the example advances at time = 18, where the communication case request from 5 to 4 ends.
TABLE 21 - INTERMEDIATE ADDED ACCESS VALUE TABLE After unsuccessfully searching the communication case request from 5 to 4, there is a communication case request of 5 to 2, a communication case request of 1 to 4 is found and the tables now look like the boxes 22 and 23: TABLE 22 - INTERMEDIATE ADDED ACCESS VALUE TABLE TABLE 23 - LIST OF INTERMEDIATE REQUEST The programmer logic of the example now advances time to time = 26, for which the programmer logic of the example defines the table 24.
TABLE 24 - INTERMEDIATE ADDED ACCESS VALUE TABLE The logic programmer of the example now programs a communication case of 5 to 3, which is all that can be programmed at this time. Then the time is advanced to 27, then to 28 and the SAV table resembles table 25.
TABLE 25 - INTERMEDIATE ACCESS ACCESS VALUE TABLE Since there are no communication case requests of 3 to 1, the logic programmer of the example programs a communication case request of 3 to 2 and a communication case request of 5 to 1, and advances the time to 31 and then to 48, and at that time Table SAV becomes Table 26.
TABLE 26 - INTERMEDIATE ACCESS ACCESS VALUE TABLE The logical programmer of the example then programs the communication case request from 3 to 4, and advances the time to 49, which results in table 27.
TABLE 27 - INTERMEDIATE ACCESS ACCESS VALUE TABLE The logic programmer of the example programs a communication case request of 2 to 1 and advances the time to 67, which gives the table 28.
TABLE 28 - INTERMEDIATE ACCESS ACCESS VALUE TABLE The logic programmer in the example now schedules the communication case request from 3 to 3, and advances the time to 73, as shown in Table 29.
TABLE 29 - INTERMEDIATE ADDED ACCESS VALUE TABLE The logical programmer of the example then programs the communication case request from 4 to 1, and advances the time to 75, which results in the table 30 TABLE 30 - INTERMEDIATE ACCESS ACCESS VALUE TABLE This allows the next communication case request from 3 to 4 to be programmed by the logic programmer of the example, after the logic programmer in the example advances at time = 86, which results in the data in table 31.
TABLE 31 - INTERMEDIATE ACCESS ACCESS VALUE TABLE The logical programmer of the example now programs the remaining communication case request from 5 to 1, advances the time to 91, programs the first communication case request from 3 to 5, advances the time to 94, then to 95, and programs the final request, another communication case request from 3 to 5. The resulting Event Table then looks like table 32.
TABLE 32 - FINAL EVENTS TABLE Note that the entire list of requests is completed in 104 units of time, the minimum theoretical amount of time required to serve these particular requests. Illustratively, the final program is shown as the programming diagram 1201 in Fig. 12. Element 1002 programmed as transmitter and programmed receiver element 1003 of Fig. 10 have been denoted as programmed elements 1202 and 1203; the programmed elements 1104 and 1105, 1106 and 1107 and 1108 and 1109 of Figure 11 are denoted as the programmed elements 1204, 1205, 1206, 1207, 1208 and 1209; and new elements 1216-1217 are shown for the case of communication from 1 to 4, 1214-1215 for the case of communication from 5 to 2; 1212-1213 for the case of communication from 3 to 1; 1220-1221 for the case of communication from 3 to 2, 1222-1223 for the case of communication from 5 to 1; 1226-1227 for the case of communication from 2 to 1; 1224-1225 for the case of communication from 3 to 4; 1228-1229 for the case of communication from 3 to 3; 1230-1231 for the case of communication from 4 to 1, 1232-1232 for the case of communication from 3 to 4; 1234-1235 for the case of communication from 5 to 1, and 1238-1239 for the case of communication from 3 to 5. Three of the interactions are shown without drawing element identifiers (having the communication from 1 to 5 a duration of 2 , having the communication of 5 to 3 a duration of 1 and having the communication of 3 to 5 a duration of 4. Note that transmitter 3, the critical resource, is programmed solid until time = 104, a criterion that must be satisfied to In order to achieve the minimum theoretical programming time, note also that receiver 1, the second most critical resource, was programmed solid until time = 94. Although this logic does not always produce the theoretically optimum program, it is designed to be efficient with the resources that have the maximum demands, if the programming process had been applied to a window of 100 units of time increment in time, instead of the 150 unit time increment window s, it would have been prevented that the very final request had been programmed in this time increment window; but it would have been lined up until the programming process for the next time increment window was resumed. The previous example showed a list of requests where all the requests had priority levels of 1. In one mode, four different priority levels are supported. All the requests of maximum level are programmed in agreement with the logical one, before it is considered followed for programming the other requests of priority. Once all the guaranteed requests have been programmed, the connection requests of the other three priorities are programmed, around the guaranteed requests that are already in the program. When there are connections already in the program, the process of calculating the size of the time increment window is a bit more complex, but the logic is essentially the same. Although the ACR (or SAV) value is still the predominant factor in deciding what is programmed, the connection requests between the same two concurrent resources are selected based on the priority. This means, for example, that the ACR logic can choose to program a communication case request from 4 to 5, of low priority, before programming a communication case request of 4 to 2, of medium priority; but never before programming a communication case request from 4 to 5, of medium priority. Since there are requirements for certain connections to happen at a particular time, instead of simply in some time increment window, it can be accommodated for these requests to derive the programming. These fixed-time connections are entered into the Event Table before programming begins and the scheduled connections must be worked around the fixed connections. These fixed-time connections obviously have the highest priority of any of the requests. In the previous example, advancing the time was simply a matter of finding the next chronological end of an already programmed connection. However, the process of advancing time consumes cycles that could be better spent performing other functions. The network scheduler in the preferred mode uses a minimum time increment of 256 units (with a time increment programming advantage of more than 25,000 units, instead of the 150 unit increment time window described above), for reduce the processing requirements. While this has an obvious negative impact on programming efficiency, there is also a less obvious positive impact. On average more resources are candidates for programming in each increment of time, as a result of having more final processing between increments. With more resources contending simultaneously, resources with higher critical impact values are less likely to be preceded by some other resource that had simply been finalized before. The final result of this commitment is that computation cycles are saved, but bandwidth efficiencies are not substantially impacted. In the previous example all the requests were programmed in their entirety; there was no need to interrupt the requests. In case any of the requests had a duration greater than the defined window of time increment (150 units of time in the previous example), however, it would have been segmented into at least two portions to allow programming. If a long message can not be avoided by design, decomposing the message and using a low priority attribute in this situation, long messages of lower priority are less likely to be preceded by higher priority messages that contain the same resources. In the preferred mode, requests greater than 1023 units are broken down into "complete" blocks of 1000 units and an optional "partial" block of up to 1023 units of duration. In the preferred embodiment, the itineraries (the particular messages used to transport the program) are themselves programmed messages due to their variation and potentially large size. The agents (the messages used to collect connection requests) however, are small and are handled as fixed-time connections (they are not programmed, literally). The programming line used in the preferred mode involves collecting the agents and programming the itineraries in the first time increment window, when the second, third and fourth time increment windows are used as described (to program the messages, transport the program and implement the connections, respectively). Turning now to FIG. 13, a more detailed representation of the components with respect to a member node 107, 108 is illustrated. While FIG. 13 takes up many of the elements of FIGS. 1 and 5, the details of the types of logic are shown. to allow the concurrent transmission and reception of messages with respect to the other nodes. In this sense, the transmission logic 1301 and the reception logic 1302 are shown for the master programmer 106, with the accompanying transmission logic 1319 and the reception logic 1320 in the member node 107, and the transmission logic 1321 also accompanying and the reception logic 1322 in the member node 108.
The paths 1311, 1305 and 1306 show message paths with vectors, which exit the message carrier 100 (with the transverse rod switch 516). Said message approaches are obtainable with a context cycle computer, such as the one previously discussed, which allows a particular node 107, 108, 106 to enter the interspersed transmission and reception of messages. Other details showing the local scheduler 1307, the oscillator 1308, the CPU 1309 and the VCXO (voltage controlled crystal oscillator) 1309 are shown for the node 107, together with the list 1303 of local tasks, previously discussed, and the program 1304 of local tasks, which has also been discussed in general. Returning now to figure 14, attention is drawn to three technologies that, when combined, illustrate an abstract, unique and valuable characterization of considerations in computers with distributed network, in real time, to further add the nature of the present invention in its full perspective. In this sense, the key technologies refer to the high synchronization between computers; the deterministic operation of time, which includes network communications; and centralized scheduling of distributed tasks, particularly those involving network communications. This diagram shows the 1400 mutual relationships between the various technologies implemented in the preferred modality, with emphasis on those technologies that are considered critical for implementation.
The fundamental technologies that, when combined, give an architecture that can be used to compute in real time in a distributed computing environment are: (1) The deterministic event control of time 1422; (2) high synchronization 1423 between the systems; and (3) centralized 1421 programming of the tasks, critical for the operation of the systems in real time, in the distributed environment. The relationships between the technologies are shown using arrows; when the arrows point from enabling technology to enabled technology, and when the term "enabling" is used loosely here to describe an improvement in the utility of that technology, or in the simplicity of applying the technology. Note that many of the technologies are mutually beneficial, as illustrated by a double-headed arrow. The following table explains the relationships between implementation characteristics, such as virtual links of Figure 14 between aspects and goals of high synchronization 1423, priority determination 1424, time deterministic event control 1422, security 1426, the limit check 1425, the centralized programming 142, the physical circuit switching 1434, the non-blocking tree topology 1429, the reliability 1428, the active redundancy 1427 and the low cost 1435, are mutually related to each other in an abstract characterization.
TABLE 33. INTERACTIONS OF KEY TECHNOLOGICAL ASPECTS Quality Connection Drawing 1401 Centralized programming ensures that all network interactions occur at prescribed times. The first requirement for the determinism of time, by this description, is to have the nodes of the network in high synchrony. None of the network nodes can know the needs of the entire network; so, in the absence of the central programmer, the alternatives are to withdraw all the dynamics or implement a tolerant solution of the variability. Incorporating programming with centralized connection, priority determination and limit checking, critical time interconnections (high priority) can be deterministic of time, while high volume interconnections (low priority) can exist through designs that tolerate variability. 1402 In a distributed computing environment, the deterministic network can be achieved with either high synchrony systems or by providing bandwidth with sufficient excess to carry out the supply in time, in a worst case time determination, and a bandwidth demand situation. Because such situation analysis of the worst case is difficult, and because providing excess bandwidth can be expensive, synchronization is a technology that enables time determination. Additionally, the difficulty in obtaining a desired level of synchronization is usually proportional to the degree to which communications are indeterminate. 10 1403 Active redundancy allows time determinism primarily with respect to fault recovery. It is difficult to handle the possible failure scenarios in the absence of redundancy, but it is also difficult to manage the recovery of failure in a system determinist of time, with passive redundancy. The determinism of time facilitates the use of active redundancy since one of the greatest challenges for active redundancy is in ensuring that all sides work in the same way.
Additionally, with a deterministic time environment, a redundant element of a system can be diagnosed as dysfunctional simply by noting that the appropriate actions are not occurring in the prescribed times. The deterministic time network comprises time-based communication between separate computing elements. The fact that communications are programmed based on time facilitates the use of active redundancy. In the active redundancy there are two or more computers, each of which executes identical logic by means of its own sequence of program instructions, exchanging the results of this execution, and then arbitrating to arrive at a result. Due to the fact that the data received by each computer must be shared with the other computers that execute the same logic, before arbitrating this data, there must be some mechanism by which the time is determined to begin the arbitration process. The mechanism that has been selected is to provide time synchronization between redundant computers and to schedule tasks related to communications based on time. Of that way, we know the time in which the task of arbitration can begin. 1404 One of the most difficult challenges in implementing active redundancy is the handling of variation between the sides. All sides of a redundant system It is expected that they will be matched at defined checkpoints, and discrepancies must be resolved in order to retain the value in redundancy. All sides must know when a checkpoint has been reached and the rules must be defined to allow differences to be resolved. With centralized scheduling, variations in connection requests, either in content or time control, can be reduced or even eliminated, thereby increasing the likelihood that all sides can maintain operational equivalence. On the other hand, centralized programming imposes a tremendous dependence on the availability of that programming element. Centralized programming becomes much more viable in the presence of redundancy. 1405 Centralized programming requires that all connection requests be assembled together for analysis. This allows limited checking to verify that (1) certain undesirable combinations from node to node are prohibited and (2) the traffic levels (possibly to a particular priority) between certain combinations of nodes, do not exceed the predefined levels. 1406 The limit check increases the security of the distributed computing system by ensuring that certain restrictions are not violated. These limit checks help against malicious attacks, when certain systems should not be allowed to interact with others, and against accidental complications, such as overloading a system, with legitimate low-priority data or with unintentional overloads of high-priority data. 1407 Priority determination of messages increases the usefulness of the limit check. Not only can time-determining maximum priority data be made without excessively restricting lower priority messages, but security measures can be put into effect that take into account the priority of the message. 1408 Limit testing improves the overall reliability of the system by preventing certain safety risks while retaining the determinism of time. In the absence of limit checking, certain network failures could spoil the network, such as when a node accidentally requested an excessive amount of traffic at the highest priority level. 1409 In the implementation of the limit check, the highest priority traffic against the production minima is tested to ensure that no error in one channel prevents the sending of messages of highest priority between any nodes, without including the node with errors. 1410 Non-blocking network architectures allow the network to perform productions greater than the production available at any particular node in the network. This translates into greater bandwidth at any particular price, when compared to blocking architectures. 1411 Security can often be implemented more easily when a centralized security agent can be entrusted with the administration of security policies. Specifically in the preferred embodiment, the central scheduler receives security tables and the interconnector systems can delegate the security task to the central authority, allowing the administration to be carried out in one place, instead of in two. Additionally, the same security policies do not have to be implemented again in as many environments as they may exist in the star. 1412 When introducing a centralized programmer, the programming logic can be implemented in such a way that it maintains the priority determination on the received connection requests. 1413 The determination of priority simplifies the task of implementing the determinism of time. This is due to the fact that large but not frequent tasks, such as loading programs, can be put into operation at a low priority, eliminating the analysis that this high-impact operation would have on simpler but more critical tasks of peer-to-peer communications. . 1415 In networks that use a transmission protocol, all network nodes have the opportunity to see the data that goes to all the other nodes (although encryption can make this observation rather futile). Blocking protocols are not always implemented in broadcast protocols; but non-blocking protocols prevent the possibility of issuance, thus avoiding obvious security risks. 1416 One of the obvious ways to obtain reliability is the introduction of redundancy. 1417 The high production, which is the primary objective of the high bandwidth, is positively impacted in two ways by the introduction of the priority determination. First: there is the perception of high production since the data that have the maximum value are J_ provided in a more timely manner by the determination of invocation priority. Second: larger volumes of data can be allowed knowing that high priority data, which frequently must be provided in a timely manner, will not be sacrificed by allowing large volumes of low priority traffic to be requested. 1418 Active redundancy requires that a faulty element be able to recover from the shutdown time. This often involves changing historical data from the elements that did not fail. In order to minimize the impact of this exchange, a priority determination can be introduced that ensures that the item being recovered can be recovered, and that it does so without substantial dmental impact on the healthy items. 1419 Certain architectures and topologies are inherently at risk of network disruption in the presence of system failures. The use of a non-blocking architecture and physical circuit switching, while not the only means to obtain greater reliability, offers a level of isolation from network node failures.
Turning now to Figure 15, the general process 1500 executed respectively for programming on each member node 108, 107 (either of the control computer 506, the historian computer 507, the control computer 504, the computer historian 505, the user interface 503, network support 502 and network switch 501). Each member node 108, 107 is responsible for receiving the common clock signal; synchronize with that common clock signal; receive the table of local events 114, 116 from the master scheduler 106 in the network switch 501, formulate the task execution list, based on the table of local events 114, 116 received, and join in any additional tasks that do not are described in the table of local events 114, 116; execute the task execution list; generating the communication request list and transmitting the communication request list to the master scheduler 106 on the network switch 501. Steps 1501 and 1502. Since the network depends largely on a global time base, the first step 1501 in a member node 108, 107 is to receive the common clock signal. The clock signal is communicated as a message from the master scheduler 106 on the network switch 501, to each of the member nodes 108, 107. The member node 108, 107 receives this clock signal in step 1501, stamps the Real time of reception and validates the integrity of this message. The validated message is used as input to the synchronization process and, in step 1502, the difference between the expected and actual times of receipt of the time message is optionally determined (optionally if the nature of the time message is a pulse, in place of a message that carries data). Steps 1503 and 1504. Each member node 108, 107 must now be synchronized to the common clock signal. The process of effecting this synchronization can be divided into two separate tasks: first, in step 1503 the adjustment of a voltage controlled oscillator (1308), at a frequency that matches the origin of the common clock signal; and second, in step 1504, the time alignment so that the start of each time period that is defined by the common clock signal, occurs at the same time in the member nodes 108, 107, as in the master scheduler 106. , on the network switch 501. The step 1505.- Once the synchronization of a member node 108, 107 to the master scheduler 106 in the network switch 501 is completed, the member node 108, 107 should receive the event table local 114, 116 of the master scheduler 106, on the network switch 501. The table of local events 114, 116 contains the program for the communications that are including this member node. Note that the reception of the table of local events 114, 116, is programmed to itself by the master scheduler 106 in the network switch 501. Therefore, the first time the node will receive the table of local events 114 , 116, must be available to receive that message at any possible time when the table of local events 114, 116 could be received. Step 1506.- The next step for member node 108, 107 is to formulate the task execution list. The task execution list is formulated from the local event table 114, 116 and the additional tasks to be performed by the member node 108, 107 that are not described in the local event table 114, 116. The table of local events 114 116, which is communicated from the master scheduler 106 to the network switch 501, provides the time control associated with the transmission and reception tasks. In order to formulate the task execution list, the following steps must be carried out: Sub-step 1506A: Adjust the initial time received from the scheduler 106 in the network switch 501, to take into account the propagation delay. The time control that is received from the master scheduler 106 in the network switch 501 is relative to the master scheduler 106 in the network switch 501. Although the member node 108, 107 is synchronized with the master scheduler 106 in the network switch network 501, there is still an inherent delay in propagation through the media that is communicating. This delay must be taken into account by the master scheduler 106 in the network switch 501, by the member node or the time increment communication window, it must be large enough for the inherent delay to be included as a header or initial portion of the time granted for the connection. In the preferred embodiment, this delay is taken into account by the member node. Sub-step 1506B.- Program tasks that are dependent on communication tasks. There are tasks that must be programmed before a transmission (for example, the transfer of data to be transmitted from memory); there are also tasks that must be scheduled after a reception (for example, the arbitration of data between multiple and different sources in a redundant computing environment and the transfer of data to memory). The member node 108, 107 is responsible for programming these tasks. Subpasol 506C- Schedules tasks that are not described by the table of local events 114, 116 nor are they dependent on communications. There are tasks to be accomplished by member node 108, 107 in addition to tasks related to communication. These tasks can be for the operation of another I / O, localized display, etc. Step 1507: The next step for member node 108, 107 is to execute the task execution list. Each task in the list contains the task to be executed, the initial time for the task, and any parameters that are necessary in order to successfully complete the task. Step 1508.- The member node 108, 107 may now formulate the communication request list, which is a list of the member nodes 108, 107 to which the member node 108, 107 wishes to communicate. The information that is included in this communication request list is the source node identifier, the destination node identifier and the total duration of the communication. Step 1509.- This communication request list is communicated to the master scheduler 106 in the 501 network switch for consideration in its programming. At this point the member node 108, 107 has performed all the necessary functions in a particular time period. The next step 1510 is to determine whether or not it is time to receive the next reference moment message. If so, the entire process is repeated beginning with the first step 1501 of receiving the reference moment message. If it is not time to receive the next reference moment message, then the member node logger can proceed to step 1505. As a contemplated embodiment, Figure 16 presents the data flow diagram 130 in general of Figure 1, as a data flow diagram 1600, where communications are made through radio frequency means, and transmissions 1601, 1602 and 1603 are made through radio frequency transmitters and receivers. The present invention is enabled by the use of machines that are considered to be special-purpose computers, created in a mode by combining a computer with a computer program code (alternatively called, for example, application or logical program).; where logical denotes the software in and for the execution by an electrical circuit enabling system) directed to the particular process control function so that, when connected to a source of electrical energy, it is powered by electricity and activated to execute its computer program code (software), the special purpose computer executes the particular function related to the present invention by following the instructions of the computer program code. The computer has electrically activated components, denoted as a central processing u at least one physical memory, connected to the central processing u an optional input keyboard, connected to the central processing u an optional output display (which may include , without limitation, a printer, printing terminal where the output is printed on paper, cathode ray tube mor and / or flat panel mor) connected to the central processing u a generator of computer clock pulses, and a connection to electrical power, to power all the electrically activated components of the computer. The central processor additionally has a control manifold and specific computer circuits for temporarily holding data (eg, a register or an accumulator) or for executing a fundamental data processing operation (eg, an addition circuit); the specific computer circuits are connected in communication with the control manifold via interlocking circuits, which can be individually in a conductive (communication) or non-conductive (no communication) configuration; the collective configurations of all latching circuits at a particular time define a particular state of the central processor; and the state of the central processor is modified respectively and changed as the individual instructions of the computer program code are sequentially accessed by the central processing uand the output of the clock generator is directed to the hookers. The computer also optionally has a computer program code in the form of a commercially available operating system, which functions as a computer program code platform, to enable the execution of the special-purpose computer program code, addressed to the Particular function of the present invention In general, the present invention, in this embodiment, is implemented in the preferred embodiment by and through a plurality of computers that had been programmed to contribute to the technology by effecting the specifically useful purpose and practical application of the described system; each computer works as a means to perform the functionality provided by the functionality of the computer program code. In some embodiments, some communication links within an extended form of the special-purpose computer may be implemented by electrical, optical or radio frequency communication interfaces, and communication media that collectively use transmitter and receiver components, electrically powered , which are directly or indirectly linked to at least one central processing u The computer program code resident within a computer provides at least a component part of that machine. The computer program code may be in the form of, without limitation, interleaved modules, routines and subroutines, program objects and / or interactive processes installed. In some emerging computer designs, enabled by specific integrated circuit technology for modern application (ASIC), the computer program code may be expressed, at least partially, in physical wiring circuits, reminiscent of traditional wiring gate devices , which execute simplified logical scenarios without the need for a clock pulse. The figures of this description show many structural relationships between key modules and components within the computer program code, and other aspects of the invention that allow the functionality of the machine of the present invention to be obtained.; In this sense, the computer elements of the system are constructed from a combination of peripherals (hardware) and application programs (software). The present invention has been described in an illustrative manner. In this sense, it is evident that those who are experts in the field, once they obtain the benefit of the preceding description, can make modifications in the specific modality described herein, without departing from the spirit of the present invention. Such modifications should be considered within the scope of the present invention, which is limited only by the scope and spirit of the claims that follow.

Claims (9)

1. - A method, implemented by computer, to enable a plurality of computer nodes in mutual data communication to execute a logic in a coordinated manner, characterized in that it comprises: aligning the time in real time between the plurality of computer nodes, in a manner that each computer node has essentially the same real-time time; define a communications program for each computer node; said program having a different time in the future, defined to start each respective communication; communicate each program to its respective computer node; and initiate each communication from each node at the time defined in your program.
2. A computer network architecture, characterized in that it comprises: a message carrier that supports multiple communication trajectories; a plurality of computers coupled to the message carrier; the computers being programmed to perform time determinism tasks, cycling through a plurality of different operating states, including a communication state; a clock system accessible to all computers, to maintain the synchrony of time between these computers; and a programmer coupled to the message carrier, to determine the sequence of communication between the computers, causing the message carrier to establish communication between selected computers, based on the tasks of time determinism that are carried out by the computers.
3. A method implemented by computer, to allow a computer node in a plurality of computer nodes to execute a logic in coordination with the other nodes in said plurality of computer nodes, characterized in that it comprises: connecting a message carrier to each computer node in the plurality of computer nodes; provide master programming capability in a computer node, to establish a master programmer; define, in each computer node, a communication request list of each communication required by said computer node, with any other computer node, with respect to a future period of time; send the communication request list from each computer node to the master programmer, through the message carrier; receive in each computer node a communication program from the master programmer, by means of the message carrier; define, in each computer node, a program of local tasks from the communication program.
4. A method implemented by computer, to allow a plurality of member nodes to execute a logic in a coordinated manner, characterized in that it comprises: connecting a message carrier to each member node in said plurality of member nodes; provide a master programmer in data communication with each of the member nodes, through the message carrier; defining a reference moment time value for the plurality of member nodes; communicating the time value of reference time to each member node and the master programmer through the message carrier; defining a communication request list in each member node, showing each necessary communication for said member node with any other member node in a future period of time; communicating the communication request list from each member node to the master programmer, by means of the message carrier; defining, in the master programmer, scheduled communications between member nodes, at communication event times with respect to said time value of the reference moment, and also with respect to each communication appearing in the list of each communication request list received; define, in the master programmer, a communication program for each member node with respect to scheduled communications; send the communication program from the master programmer to each respective member node, through the message carrier; defining, in each member node, the difference in time between the time value of the reference time and the time when the time value of the reference time is communicated to the member node; define, in each member node, a program of local tasks from the communication program and from the time difference for the member node, so that the member node communicates with other member nodes through the message carrier, in the scheduled communication event times; execute the programmed communications between the member nodes with respect to each scheduled communication, by means of the message carrier, in accordance with the respective local task programs.
5. The method according to claim 4, further characterized in that the step of defining a time value of the reference moment is carried out by the master programmer.
6. The method according to claim 4, further characterized in that the step of defining a communication request list in each of the member nodes limits the communications to a maximum number in the future time period.
7. The method according to claim 4, further characterized in that each communication has a duration time attribute and the value of the duration time attribute is less than a fixed maximum value.
8. The method according to claim 4, further characterized in that the step that defines a time value of the reference moment for the plurality of member nodes is effected by means of a global time system.
9. A method implemented by computer, to allow a plurality of member nodes to execute a logic in a coordinated manner, characterized in that it comprises: connecting a message carrier to each member node in the plurality of member nodes; each node having a central processing unit; provide a master programmer in data communication with each member node, through the message carrier; defining a time value of the reference moment, as a moment in time for the plurality of member nodes; communicating the time value of the reference moment to each member node and the master programmer, by means of the message carrier; defining in a communication request list in each member node, each access to any other member node, necessary for the member node when performing a future task increment with respect to a future period of time; communicating the communication request list from each member node to the master programmer, through the message carrier; defining in the master scheduler, a communication event data object with respect to each access to any other member node, necessary for the member node when obtaining a future task increment; said communication event data object having an identification attribute value of the accessing member; an identification attribute value of the accessed member and an attribute value of the access duration; collect, in the master programmer, all defined communication event data objects, to a series of communication events; determining in the master scheduler a summed access value for each member node in the communication event series, as a sum of all access duration attribute values, in all communication event data objects having a value of identification attribute of the member accessed, with respect to the member node; determining in the master scheduler a summed access value for each member node in the communication event series, such as the sum of all access duration attribute values in all communication event data objects having a value of identification attribute of the accessing member, with respect to the member node; program in the master programmer and in the earliest available time in a program, a task of future communication regarding the time value of the reference moment, between the accessing member node, which has the highest added access value with respect to the series of communication events, and the member node accessed, with respect to the identification attribute value of the member accessed in the communication event data object having the lifetime attribute value of the affiliated access, higher for all communication objects data of the communication event, with respect to the accessing member node; said communication task having a task start time equal to the time soonest available in the program; an accessing member node identifier attribute, with respect to the accessing member, and an accessing member node identification attribute, with respect to the accessing member node; remove in the master scheduler the data object of the communication event with respect to the dentifier attribute of the member node accessed in the programmed future communication task, and the identifier attribute of the member node accessed in the scheduled future communication task, to redefine the series of communication events to those communication event data objects that have not been programmed; and repeating in the master programmer, with respect to the redefined communication event series, the steps of determining a summed accessed value, determining a summed access value, scheduling a future communication task and removing all data objects from the event of communication with respect to the programmed member nodes, until all data objects of the communication event have been programmed in a communication program for each member node; sending said communication program from the master programmer to each respective member node, through the message carrier; defining, in each member node, the difference in time between the time value of the reference moment and the time when said time value of the reference moment is communicated, to the member node; define, in each member node, a program of local tasks • from the communications program and from said difference in time for the member node, so that the member node communicates with the other member nodes through the message carrier in the times programmed for the communication event; and executing the scheduled communications between the member nodes, with respect to each scheduled communication event, through the message carrier, in accordance with the local task programs. JO.- A computer-implemented method for programming communications between member objects in a plurality of member objects that function as a collective group, characterized in that it comprises the steps of: providing a computer; define in the computer, for each member object, a data object of the communication event with respect to each access to any other member object, necessary for the aforementioned member object, to obtain an increase of future task; the communication event data object having an identification attribute value of the accessing member, an identification attribute value of the accessed member and an access value attribute value; collect on the computer all data objects of the communication event, defined, in a series of communication events; determining on the computer a summed access value for each member object in the communication event series, as a sum of all the access duration attribute values on all data objects of the communication event having an attribute value of identification of the member accessed, with respect to the member object; determine on the computer an accessing value summed for each member object in the series of communication events, such as the sum of all access duration attribute values in all data objects of the communication event that have an attribute value of identification of member who accesses, with respect to the member object; define a series of sequential increments of future time, within a programming period with respect to a program; program in the computer, in the first time available in the first of the future time increments, a future communication task based on the data object of the communication event available in the series of communication events, between: the member object that access, which has the maximum value of access added with respect to the series of communication events, and the accessed member object that has the maximum value accessed added with respect to the series of communication events, if there is an event data object of communication between the accessed member object and the accessing member object; said future communication task having a task start time equal to the soonest available time in the program, an identifier attribute of the accessing member object, with respect to the accessing member object; an attribute that identifies the member object accessed, with respect to the member object accessed, and the attribute value of the access duration; withdraw from the scheduling candidates, on the computer, the data object of the communication event with respect to the identifier attribute of the member object accessed in the scheduled task of future communication, and the identifier attribute of the member object that accesses the scheduled task of future communication, to redefine the series of communication events to those communication event data objects that had not been programmed; repeat on the computer, with respect to the redefined communication event series, the steps of determining an added value added; determine a summed access value, program a future communication task and remove all data objects from the communication event that refer to the programmed member objects, until all data objects of the communication event that could be programmed in said first increment of future time; and executing recurrently on the computer, with respect to the series of redefined communication events, and sequentially with respect to each of the rest of the plurality of future time increments, the steps of determining a summed accessed value; determine a value that accedes added; program a future communication task and remove all data objects from the communication event referring to the programmed member objects, and repeat said steps until all data objects of the communication event have been programmed, which can be programmed in each increment of future time, and until all the data objects of the communication event have been programmed in said programming period. 11. The method according to claim 10, further characterized in that said definition is confined to the future task increments that are necessary within a predefined period of time; and said programming is with respect to the aforementioned predefined time period. The method according to claim 11, further characterized in that it further comprises the step of connecting a message carrier to each member object in the plurality of member objects; the message carrier having a plurality of channels to allow concurrency in said communication events; said step of programming being related to the plurality of channels, as a group, where said closest available time refers to any channel in said message carrier. 13. The method according to claim 12, further characterized in that the member object is a member node that is in data communication with the message carrier; the member node having a central processing unit. 14. A method implemented in a computer to program tasks for resource objects in a plurality of resource objects that function as a collective group, characterized in that it comprises the steps of: providing a computer; define in the computer a series of future tasks for the collective group; define on the computer each necessary resource object for each future task in the series of future tasks; define in the computer each necessary interaction between any two resource objects with respect to the series of future tasks; define in the computer a use case for each resource object in obtaining each of these interactions; said use case having an attribute value for the duration of use; define on the computer a resource object that accesses and an access object accessed, with respect to each use case; first determine on the computer a time value that access added for each resource object accessed, such as the sum of all duration attribute values for all use cases, with respect to that resource object, when it is the object of accessing resource; determine second, on the computer, a summed time value added for each accessed resource object, such as the sum of all use duration attribute values for all interactions between the accessed resource object and the resource object who accesses; define in the computer a series of future, sequential time increments, within a programming period, with respect to a program; program in the computer, in the closest available time, in the first of the future time increments, a future resource interaction event, based on the first available future task in the series of future tasks, between: the resource object that accesses, that has the maximum value that accedes added, in relation to the series of future tasks; and the accessed resource object, which has the maximum value accessed in addition, with respect to the series of future tasks, if there is a use case between the accessed resource object and the accessed resource object; having said future resource interaction event a start time equal to the closest available time in the program; an attribute that identifies the resource object that it accesses with respect to the resource object that it accesses; an access object identifier attribute accessed, with respect to the accessed resource object; and the attribute value of the duration of use; remove from the scheduling candidates, on the computer, the use case that refers to the resource object accessed in the resource interaction event, future, scheduled, and the identifier attribute of the member object that accesses in the interaction event of future resources scheduled, to redefine the series of future tasks to those future tasks for which no interactions were scheduled; repeat on the computer, with respect to the series of future tasks redefined, the steps of determining a summed accessed value, determining a summed access value, scheduling a future communication task, and removing all use cases that refer to objects of programmed resources, until all the use cases that can be programmed, have been programmed, in said first increment of future time; and running recurrently, on the computer, with respect to the series of future tasks redefined, and sequentially with respect to each of the remaining future time increments in said plurality, the steps of determining a summed accessed value; determine a value that accedes added; schedule a future resource interaction event; remove all resource objects that refer to scheduled resource objects, and repeat those steps until all the resource interaction events that can be scheduled for each future time increment have been scheduled, and until all the scheduled resource events have been programmed. resource interaction events, in said programming period 15.- An apparatus implemented by computer to allow a plurality of computer nodes, in mutual data communication, to execute a logic in a coordinated manner, characterized in that it comprises: means to align in real time, the plurality of computer nodes, so that each computer node has essentially the same real-time time; means to define a communications program for each computer node; said program having a different time in the future, defined to start each respective communication; means to communicate each program to its respective computer node; means to initiate each communication from each node at the time defined in its program; 16. An apparatus implemented by computer, which has a message carrier, characterized in that it comprises: a plurality of member nodes; each member node being in communication of data with the message carrier; each member node having: a central processing unit; time phase logic to receive from the message carrier a reference moment message, which has a time value of the reference time, and to define the difference in time between the time value of the reference time and the time of reference. reception of the message of the reference moment; communication definition logic, to identify each internodal communication necessary for the member node in a future period of time, and to establish a communication request list regarding all internodal communications; communication request sending logic to communicate the communication request list through the message carrier, to a master programmer; logical receiver of communication task, to receive a communication program through the message carrier, from the master programmer; task integration logic to define a local task program from the communication program and the difference in time; and logical implementation of communications to communicate through the message carrier with other member nodes according to the local task program; and a master programmer, in data communication with the plurality of member nodes, through the message carrier; said master programmer having a logic 10 executed by a central processing unit; having said programmer logic; logical definition of the reference moment, to define the time value for the reference moment, as a moment in time; Logic of communication of the reference moment to create a reference moment message having the time value for the reference moment, and to communicate said reference moment message through the message carrier, to each node 20 member; logical receiver of communication request, to receive each communication request list of each of the member nodes, through the message carrier; logical definition of the communication program, for Programming the communications between the member nodes, at the times for the communication event, with respect to the time value for the reference time, and also with respect to each internodal communication listed in said received communication request list, and to define additionally a communication pattern for each member node, with respect to the scheduled communications; and logical that responds to the communication pattern of the member node, to send said communication program to each respective member node, through the message carrier. 17. The apparatus according to claim 16, further characterized in that each member node further comprises a variable speed oscillator. 18. The apparatus according to claim 16, further characterized in that each member node additionally comprises logical alignment in time and logical adjustment of the speed of the oscillator. 19. The apparatus according to claim 16, further characterized in that the message carrier comprises a crossbar switch. 20. The apparatus according to claim 16, further characterized in that the message carrier comprises a network topology. 21. The apparatus according to claim 16, further characterized in that the message carrier comprises a radio frequency communication system. 16 SUMMARY A system for a plurality of computer nodes in mutual data communication is presented, to execute a logic in a coordinated manner. The approach involves aligning the definition of time on the nodes, so that each node has essentially the same definition of time; define a communications program for each computer node, the program having future moments defined to start each communication; communicate each program to its respective node, and initiate each communication at the time defined in the program. The computer network has a message carrier that supports multiple communication paths; a plurality of computers coupled to the message carrier; a clock system to maintain the synchrony of time between computers; and a programmer coupled to the message carrier, to determine the communication sequence between the computers. The message carrier establishes the communication between selected computers, based on the deterministic tasks of time that are being carried out by the computers. The computer node in the plurality of computer nodes executes the logic node in coordination with the other nodes, defining a communication request list of each communication necessary for the computer node with any other computer node, with respect to a period of future time; sending the communication request ta to the master programmer; going back to a communication program from the master irogrammer, defining a program of local tasks from the communication program, and then executing the communication in the programmed time.
MXPA/A/2000/011694A 1998-05-26 2000-11-27 Distributed computing environment using real-time scheduling logic and time deterministic architecture MXPA00011694A (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US60/086,737 1998-05-26

Publications (1)

Publication Number Publication Date
MXPA00011694A true MXPA00011694A (en) 2001-09-07

Family

ID=

Similar Documents

Publication Publication Date Title
EP1084470B1 (en) Distributed computing environment using real-time scheduling logic and time deterministic architecture
US6748451B2 (en) Distributed computing environment using real-time scheduling logic and time deterministic architecture
US8108512B2 (en) System and method for accessing and using a supercomputer
Stankovic A perspective on distributed computer systems
Singh et al. Zeno: Eventually Consistent Byzantine-Fault Tolerance.
Ramamritham Allocation and scheduling of precedence-related periodic tasks
Shin et al. Real-time computing: A new discipline of computer science and engineering
EP0135499B1 (en) A method for achieving multiple processor agreement optimized for no faults
CN115550384B (en) Cluster data synchronization method, device, equipment and computer-readable storage medium
CN101601214B (en) Method and system for facilitating recovery in a coordinated timing network
JP4124547B2 (en) Method and system for replication support in a remote method invocation system
JP2005196763A (en) Simplified paxos
WO2003073278A2 (en) Clustering infrastructure system and method
Grammenos et al. CPU scheduling in data centers using asynchronous finite-time distributed coordination mechanisms
Mendizabal et al. Efficient and deterministic scheduling for parallel state machine replication
Li et al. Kubernetes-container-cluster-based architecture for an energy management system
Ghosh et al. Designing a decentralized fault-tolerant software framework for smart grids and its applications
CN116954944A (en) Distributed data stream processing method, device and equipment based on memory grid
Fohler Adaptive fault-tolerance with statically scheduled real-time systems
US20060184947A1 (en) Distributed system, computer and state transition control method for distributed system
Deyerl et al. In search of a scalable Raft-based replication architecture
MXPA00011694A (en) Distributed computing environment using real-time scheduling logic and time deterministic architecture
Fetzer et al. Fail-aware failure detectors
Suliyanti et al. Evaluation of an actor model-based consensus algorithm on NEO blockchain
GB2417868A (en) An asynchronous distributed system with a synchronous communication subsystem which facilitates the generation of global data