1. Field of the Invention
The present invention relates to an agent system which executes supervisory control of an object system such as an power system on a communication system coupled through an information network including Local Area Network (LAN), Wide Area Network (WAN), and Internet network etc., (This will be referred to as an “network” hereinafter.).
2. Description of the Related Art
An agent system is a system in which an agent (movable program) moves to each node (computer) of an object system and performs appropriate processing at an appropriate position. A related invention is described in, e.g., Jpn. Pat. Appln. KOKAI Publication No. 10-257661. In this power system supervisory control system, for relay setting of the power system supervisory control system by an agent, a program module, i.e., an agent moves to each apparatus in the power system to set the protection relay apparatus, thereby executing efficient supervisory control of the power system distributed in a wide area.
In such conventional agent systems, however, there is prepared only a mechanism which causes each agent to independently move among the apparatuses and execute target processing. For this reason, to execute operation for which a plurality of agents must cooperatively perform processing, it is necessary to have not only a thorough knowledge about the process flow of the operation but also that about the internal configuration of each agent. In addition, a program which causes the agents to cooperatively perform processing must be added to each agent.
In the conventional agent systems, even when an agent has been rewritten to processing unintended by the agent sender due to some reason during movement through the network, the agent receiving side has no mechanism for determining the intension of the agent sender. Hence, processing that is not intended by the agent sender may be executed on the agent receiving side.
Furthermore, when a number of agents are sent to a given apparatus, agent processing with high priority and that with low priority are executed in the same way.
An power system protection system using a GPS is disclosed in Jpn. Pat. Appln. KOKAI Publication No. 11-341706. However, this invention realizes system protection using data obtained by adding time data acquired from the GPS to electrical quantity data of the protection relay.
It is an object of the present invention to provide an agent system in which a plurality of agents cooperative to execute a single purpose.
According to an aspect of the present invention, there is provided an agent system having a plurality of agents each of which executes predetermined processing while moving through a plurality of nodes connected to an information network, characterized in that the plurality of nodes respectively have a plurality of agent platforms which receive and execute the agents, one of the agent platform and the node has synchronization means, and when the plurality of agents which are running on the same node should synchronously execute operation, the plurality of agents on the same node execute processing synchronously by sending a synchronization request message to the synchronization means.
The embodiments of the present invention will be described below with reference to the accompanying drawings. An agent system of the present invention can be applied not only to a specific object system but also various kinds of systems. In the following embodiments, cases wherein the agent system is applied to protection and control of an power system will be described.
The system shown in
The agent indicates an application program (in some cases, a movable program having unique data). This will be referred to as an “agent application” hereinafter.
The computer 14 functions as the interface between the protection relay 19 and the information network 11. The computer 14 has an agent platform 151. The agent platform 151 is a mechanism which provides an environment to receive an agent application and cause it to operate. A server 12 (installed in a control center (not shown)) sends an agent application to the agent platform 151 and acquires an electrical quantity of the protection relay 19.
The functions of a synchronization agent 16 and the functions of first and second agent applications 17 and 18 which execute synchronization processing using the synchronization agent 16 will be described with reference to
The synchronization agent has the following functions.
(1) Message Processing Function (When a synchronization request is received from an agent application, the synchronization agent searches the next message storage area and checks whether an agent application to which a sync signal is to be sent is registered. When an agent application is registered, the synchronization agent sends a sync signal to the object agent. When no agent application is registered, the synchronization agent stores the request in the next message storage area).
(2) Function as Message Storage Area (Function of Storing a Synchronization Request)
Each of the first and second agent applications 17 and 18 has a portion which receives a sync signal sent from the synchronization agent 16 by the message processing function and a portion where processing to be executed upon receiving a sync signal is described. In the following embodiments, assume that the first agent application 17 acquires amplitude, and the second agent application 18 acquires phase.
In an agent platform 152 of the server 12, the synchronization agent 16 and the first and second agent applications 17 and 18 (not shown) are generated. The synchronization agent 16 and the first and second agent applications 17 and 18 are sent from the server 12 to the computer 14 through the information network.
More specifically, the first agent application 17 which acquires an electrical quantity (amplitude) of the protection relay 19 and the second agent application 18 which acquires an electrical quantity (phase) of the protection relay 19 are sent from the server 12 to the computer 14 through the information network 11 and received by the agent platform 151 when the electrical quantity (amplitude and phase) of the protection relay 19 should be acquired.
The synchronization agent 16 sent to the computer 14 in advance executes synchronization processing between the first agent application 17 and the second agent application 18. More specifically, the synchronization agent 16 simultaneously sends sync signals to the first agent application 17 and second agent application 18. Agent application processing to be executed upon receiving a sync signal is defined for each agent application. In this system, it is defined in advance that the first agent application 17 should acquire amplitude, and the second agent application 18 should acquire phase, as described above. In addition, the synchronization agent 16 has a program which prompts processing for synchronization processing between the agent applications 17 and 18. In many cases, the synchronization agent 16 is resident in the agent platform 151. However, when the synchronization agent 16 is resident, the resource of the computer 14 is considerably consumed. To prevent this, the server 12 or agent platform 151 can determine the necessity of the synchronization agent 16 and generate or erase it, or move it to another node, like other agent applications.
The process flow of the entire system will be described with reference to
Upon receiving this message (a), the synchronization agent 16 checks whether the internal message storage area of the synchronization agent 16 has a message (b) from the second agent application 18, which indicates that “the second agent application 18 requires synchronization with the first agent application 17”. If the message is stored, the synchronization agent 16 can confirm that both the first agent application 17 and the second agent application 18 require synchronization with each other. Hence, the synchronization agent 16 simultaneously sends sync signals (c) and (d) to the two agent applications. Upon receiving the sync signals (c) and (d), the first agent application 17 and second agent application 18 execute predetermined processing (acquisition of amplitude and phase at that moment), return to the server 12, and make a report of the acquired amplitude and phase.
If the synchronization agent 16 has received no message (b) from an agent B yet, the synchronization agent 16 temporarily stores the message in the message storage area. After receiving from the second agent application 18 the message (b) indicating that “the second agent application 18 requires synchronization with the first agent application 17”, the synchronization agent 16 simultaneously sends the sync signals (c) and (d) to the first and second agent applications 17 and 18.
If the synchronization agent 16 is not resident in the agent platform 151, the absence of the synchronization agent 16 can be known when the agent application asks the agent platform 151 to refer to the synchronization agent. The subsequent processing of the agent application (for example, executing another processing or standing by until the synchronization agent arrives at the agent platform 151) is defined in the agent application by the user.
In a system using no synchronization agent 16 (i.e., a conventional agent system), a mechanism which makes synchronization with another agent application must be described in detail as a program to be added to the agent application. In addition, the first and second agent applications 17 and 18 must have, e.g., the following processing.
(1) The first agent application 17 seeks the second agent application 18 as a synchronization partner.
(2) Upon finding the second agent application 18, the first agent application 17 sends a sync signal to the second agent application 18. The second agent application 18 that has received the sync signal executes predetermined processing.
(3) The first agent application 17 executes processing that should be executed upon receiving a sync signal.
In the first embodiment, the synchronization agent 16 is introduced. Hence, a synchronization request method for the synchronization agent 16, e.g., a method of invoking the API of the synchronization agent 16 only needs to be added to the first and second agent applications 17 and 18. Accordingly, the agent programming amount is reduced. In addition, bugs in the synchronization program can be prevented.
The synchronization agent 16 needs to be resident only in the agent platform 151 that requires the synchronization function. Since the synchronization agent 16 is separated from the agent platform 151, the agent platform can be made compact.
Immediately before sending the first and second agent applications 17 and 18, the synchronization agent 16 is sent from the server 12 to the desired agent platform 151 and made resident in the agent platform 151. When the processes of the first and second agent applications 17 and 18 in the agent platform 151 are ended, and the synchronization agent 16 becomes useless, it can be returned to the server or erased. Accordingly, the synchronization agent 16 can be managed consistently, and the degree of freedom increases.
In the second embodiment as well, since the synchronization function 36 is introduced, the first and second agent applications 37 and 38 only need to have a notification method for the second agent application 38 or first agent application 37 as a synchronization partner and the synchronization function 36. Accordingly, the agent programming amount is reduced, and bugs in the synchronization program can be prevented, as in the case of
If the synchronization function is required by computers (nodes) arranged in correspondence with many or all protection relays 39, the synchronization function is added as one of the functions of an agent platform 351 in advance, as in this embodiment. This reduces the load for management.
Unlike the system shown in
In the third embodiment, an agent platform 43 and a synchronization agent 44 that runs on the agent platform 43 are arranged in a server 42 connected to a LAN 41, as shown in
A first agent application 471 which runs on an agent platform 461 of the computer 451 is arranged on the agent platform 461. A second agent application 472 which runs on an agent platform 462 of the computer 452 is arranged on the agent platform 462. A case will be exemplified, in which synchronization between the first agent application 471 and the second agent application 472 is established by the synchronization agent 44 in the server 42.
When synchronization is to be established between the first agent application 471 (the agent application executes reclosing of the protection relay 481 upon receiving a sync signal) that exists in the computer 451 and the second agent application 472 (the agent application executes reclosing of the protection relay 482 upon receiving a sync signal) that exists in the computer 452 (reclosing is executed in an order of first to second agents (this will simply be expressed as “A→B” in the following embodiments)), the first agent application 471 sends, to the synchronization agent 44 that exists in the server 42, a message (a) indicating that “the first agent application 471 requires synchronization with the second agent application 472 in the order of A→B”. If the synchronization agent 44 has already received, from the second agent application 472, a message (b) indicating that “the second agent application 472 requires synchronization in the order of A→B”, the synchronization agent 44 sequentially sends sync signals (c) and (d) to the first and second agent applications 471 and 472. If no message (b) has been received from the second agent application 472 yet, the synchronization agent 44 stores the message (a) from the first agent application 471. When the message (b) indicating that “the second agent application 472 requires synchronization with the first agent application 471 in the order of A→B” is received from the second agent application 472, the synchronization agent 44 simultaneously sends the sync signals (c) and (d) to the first and second agent applications 471 and 472.
Upon receiving the sync signals (c) and (d), the first and second agent applications 471 and 472 execute reclosing of the corresponding protection relays in accordance with the predetermined processing. In this system, since the synchronization agent sends the sync signals (c) and (d) in this order, reclosing is sequentially executed in the order of the protection relays 481 and 482.
In the third embodiment, the synchronization agent 44 is arranged in the server 42. Hence, the first and second agent applications 471 and 472 that are present in the individual computers 451 and 452 can be synchronized with each other.
In the third embodiment, synchronization processing is executed using the synchronization agent. In a system configuration with a few number of times of synchronization, as in a system with few faults, the synchronization agent needs to be prepared only when synchronization processing is necessary. Hence, the efficiency increases.
Conventionally, reclosing is manually executed. In this system, however, reclosing can be executed at a much more accurate timing. In this system, therefore, a unique effect that the system can be stabilized as compared to reclosing by the conventional method can be obtained by applying the agent to system protection.
In the fourth embodiment as well, since the synchronization function 54 is introduced, the first and second agent applications 17 and 18 that are present in individual computers 551 and 552 can be synchronized with each other. Unlike
In this case, a scheme for sending a sync signal from a server through a telephone line as in
In the fifth embodiment, a first synchronization agent 651 which runs on an agent platform 641 of the computer 631 is sent to the computer 631 and caused to control synchronization processing of a first agent application 661 arranged on the agent platform 641, as shown in
A case will be exemplified, in which synchronization between the first agent application 661 in the computer 631 and the second agent application 662 in the computer 632 is established between the first synchronization agent 651 and ht second synchronization agent 652.
In the agent system shown in
When it is found that the second agent application 662 as a synchronization partner is present in the computer 632, the first synchronization agent 651 sends, to the second synchronization agent 652 in the computer 632, a message (c) indicating that “the first agent application 661 requires synchronization with the second agent application 662 in the order of A→B”.
Upon receiving the message (c), the second synchronization agent 652 stores this message (c). In addition, the second synchronization agent 652 sends a message (d) indicating that “synchronization is not established yet” to the first synchronization agent 652 and waits for a message from the second agent application 662. The first synchronization agent 651 also sends a message (e) indicating that “synchronization is not established yet” to the first agent application 661.
When a message (f) indicating that “the second agent application 662 requires synchronization with the first agent application 661 in the order of A→B” is received from the second agent application 662, the second synchronization agent 652 sends, to the first synchronization agent 651, a message (g) indicating that “synchronization between the first agent application 661 and the second agent application 662 is established” and then sends a sync signal (i) to the second agent application 662. Upon receiving the message (g), the first synchronization agent 651 sends a sync signal (h) to the first agent application 661 and deletes the stored message (a) from the first agent application 661.
In the fifth embodiment, the synchronization agents 651 and 652 placed in the computers 631 and 632 exchange information about synchronization, as described above. Hence, when the first and second agent applications 661 and 662 which exist in individual computers should synchronously execute processing, one of the agent applications can easily establish synchronization with the other only by sending a message to the synchronization agent that is resident in the same computer without being aware of the computer in which the other agent application is present.
In the sixth embodiment as well, by introducing the synchronization functions 751 and 752, synchronization between the first and second agent applications 761 and 762 present in the individual computers 731 and 732 can easily be established. If synchronization processing is to be frequently executed, bugs in the synchronization program can be prevented by adding the synchronization function to each agent platform because the server need not send a synchronization agent every time.
Referring to
On the other hand, a computer 802 connected to the same LAN 880 as that of the computer 801 has the same configuration as that of the computer 801.
The processing start time may be set to the time synchronization function 831 not by the server 840 but by the agent application 821 that has moved to the platform 811. This also applies to the time synchronization function 832.
According to the seventh embodiment, even when a plurality of agents are present on individual computers, processes can be simultaneously executed at the same time.
As the eighth embodiment in
As in the seventh embodiment, processing is started by setting the processing start time and notifying the object agent of the event. According to this configuration, since time synchronization functions 831 and 832 are adjusted to the same reference time, agents 821 and 822 start processing at the same time.
According to the eighth embodiment, even when a plurality of agents are present on individual computers, processes can be simultaneously executed at the designated reference time. In the configuration using GPS, a time with very high accuracy can be realized.
The purpose of this system is the same as that of the system shown in
In this configuration, the time synchronization server 1071 notifies the time synchronization client 1072 of the time of its own in consideration of a network delay, thereby adjusting the time synchronization client 1072 to the same reference time as that of the time synchronization server 1071 (the time of the time synchronization server 1071). The time synchronization functions 1031 and 1032 acquire the reference time from the time synchronization server 1071 and time synchronization client 1072, respectively, to adjust their times to the reference time.
As in the seventh embodiment, processing is started by setting the processing start time and notifying the object agent of the event. According to this configuration, since the time synchronization functions 1031 and 1032 are adjusted to the same reference time, agents 1021 and 1022 start processing at the same time.
According to the ninth embodiment, even when a plurality of agents are present on individual computers, processes can be simultaneously executed at the designated reference time. As compared to the configuration shown in
The purpose of the system according to the 10th embodiment is also the same as that of the system shown in
In the above configuration, the time synchronization server 1171 notifies the time synchronization clients 1172 and 1173 of the time of its own in consideration of a network delay whereby the time synchronization clients 1172 and 1173 are adjusted to the same reference time as that of the time synchronization server 1171 (the time of the time synchronization server 1171). The time synchronization functions 1131 and 1132 acquire the reference time from the time synchronization clients 1172 and 1173, respectively, to adjust their times to the reference time.
As in the seventh embodiment, processing is started by setting the processing start time and notifying the object agent of the event. According to this configuration, since the time synchronization functions 1131 and 1132 are adjusted to the same reference time, agent applications 1121 and 1122 start processing at the same time.
According to the 10th embodiment, a plurality of agents on individual computers can simultaneously execute processing at the same time. This configuration can also suppress the cost as compared to the configuration in
The purpose of the system according to the 11th embodiment is also the same as that of the system shown in
In the above configuration, the time synchronization function 1231 inquires of the NTP client 1262 about time to adjust the time of its own. Upon receiving the inquiry, the NTP client 1262 acquires the reference time from the NTP server 1261 and returns the reference time to the time synchronization function 1231 whereby the time synchronization function 1231 adjusts itself to the reference time. This also applies to the time synchronization function 1232.
As in
According to the 11th embodiment, a plurality of agents on individual computers can simultaneously execute processing at the designated reference time at a low cost and an accuracy similar to that of the system using GPS shown in
The purpose of the system according to the 12th embodiment is also similar to that of the system shown in
As in
According to the 12th embodiment, even when a plurality of agents are present on computers located far apart, such as computers connected through a public communication network, processes can be simultaneously executed at the same time.
The 13th embodiment is a system using a GPS as a reference time providing apparatus in the configuration shown in
In the 13th embodiment as well, processing is started by setting the processing start time and notifying the object agent of the event, as in
According to the 13th embodiment, a plurality of agents on computers located far apart, such as computers connected through a public communication network, can simultaneously execute processing at the designated reference time. In the configuration using GPS, a very high time accuracy can be realized even between remote places.
Referring to
In the 14th embodiment as well, processing is started by setting the processing start time and notifying the object agent of the event, as in
According to the 14th embodiment, a plurality of agents on computers located far apart, such as computers connected through a public communication network, can simultaneously execute processing at the designated reference time at a relatively low cost and an accuracy similar to that of the system using GPS according to the 13th embodiment.
(1) Occupation Request Receiving Section (This section receives a shared data occupation request sent from an agent application (a) and stores the request in an occupation request storage table to be described next (b)).
(2) Occupation Request Storage Table (This table stores an occupation request for shared data managed by the management agent).
(3) Occupation End Receiving Section/Occupation Permission Originating Section (Upon receiving occupation end information sent from the agent application that occupies the shared data (c), the occupation end receiving section/occupation permission originating section extracts one occupation request from the occupation request storage table (d) and notifies the agent application that has sent the request of occupation permission (e)).
(4) Data Access Interface (The agent application that has received the occupation permission accesses the shared data through this interface (f)).
For example, the first agent application sent from a server 147 to the computer 1421 that manages the protection relay 146 transfers, to the management agent 145, “name of data”, “write/read processing”, and “parameters necessary for write/read”. The management agent 145 executes data access to the protection relay 146. Alternatively, the second agent application 1442 present in the computer 1422 different from the computer 1421 sends a message to the management agent 145. The management agent 145 executes data access processing to the protection relay 146 upon receiving the message and returns a result to the second agent application 1442 as a message.
In write access to the protection relay 146, the management agent 145 sets protection for data to inhibit access from another device (occupation) and cancels the protection when the write processing is ended (end of occupation). In read access, however, no protection is set so that read access from another device is possible, unlike the write access.
As described above, when the setting value of the protection relay 146 is unitarily managed by the management agent 145, exclusive data access processing can easily and properly be executed.
Assume that when the first agent application 1441 is going to access the setting value data of the protection relay 146 ((a) in
The second agent application that is present on a computer, e.g., the computer 1442 different from that of the management agent 145 can also receive the same service as described above.
As described above, when protection for the setting value data of the protection relay 146 is canceled, a message representing it can be received from the management agent 145. Since processing independently of the processing using the setting value data can be executed first, the processing efficiency of the agent increases. Simultaneously, when a plurality of accesses occur during protection, and the protection is canceled later, a message representing the cancel of protection is transmitted to the access requesting sources in the chronological order of accesses or in descending order of access request priorities (if the priority can be set at the time of request).
If processing needs to be executed when the setting value of the protection relay is rewritten (for example, to notify the server of the change in setting value), the first agent application 1441 registers in the management agent 145 that “processing is executed when the setting value is rewritten” (a). Accordingly, when the setting value of the protection relay 146 is rewritten, the management agent 145 sends a message (c) indicating that “the setting value is rewritten” to the first agent application 1441. Upon receiving this message, the first agent application 1441 requests the management agent 146 to read the setting value (a) and receives the rewritten setting value (b) from the protection relay 146 through the management agent 146 (c). The second agent application 1442 that is present on a computer, e.g., the computer 1442 different from that of the management agent 145 can also receive the same service as described above.
If this setting value rewrite notification system is not present, the first agent application 1441 must poll the protection relay 146 at an appropriate timing (for example, at a predetermined period) to detect whether the value of the setting value is rewritten. The setting value rewrite notification system makes the polling processing unnecessary and increases the processing efficiency of each agent.
For the agent system according to the 15th embodiment, a management function having the same functions as described above may be added to the agent platform in place of the management agent in
In this system, a case is sometimes likely to occur in which the agent application may interrupt processing until a notification is received from the management agent or management function and resume processing after receiving the notification. In this case as well, processing for it need not be realized by the agent application. Hence, the processing by the agent application is simplified.
In this system, the management agent manages shared data. When the computer 1421 has, for example, a function of acquiring the information of the protection relay 146 in real time and providing the information to an external device, the management agent may manage the shared function.
In the 16th embodiment, when a given agent application is to be sent to a computer far apart in the agent system, the agent application is prevented from erroneously performing operation unwanted by the agent sender.
More specifically, to more reliably transmit an agent application that may cause a serious problem according to the processing result, a plurality of copy agent applications are generated before the agent application arranged in a certain computer is moved to another computer through the information network. The plurality of agent applications are moved through a plurality of paths on the information network. Another computer determines the propriety of each agent application on the basis of its arrival situation and then executes processing.
As shown in
An agent platform 1532 of the computer 1522 does not permit to start processing when one agent application has arrived. When all the agent applications sent from the server 1521 have arrived, the agent platform 1532 causes a representative agent application to start processing (reclosing). Note that the remaining copy agent applications are discarded.
Instead of starting processing when all the agent applications sent from the server 1521 have arrived at the computer 1522, processing may be started when half of the agent applications have arrived (more than half of agent applications have arrived). Alternatively, processing may be permitted on the basis of not only the number of arriving agent applications but also whether all or more than half of the arriving agent applications have the same contents.
Accordingly, even when information on a certain path is rewritten due to an fault or security breakthrough, the probability that the agent application has processing contents that are unwanted by the agent application sender is lower than that when processing is executed by sending only one agent application because a plurality of agent applications having the same contents are generated and moved through different paths.
Referring to
As shown in
As described above, the maximum number n of agents receivable by the agent platform 1631 is registered. When the number of agents exceeds the number n, reception is rejected. Since the maximum number of agent applications to be simultaneously run is limited, the processing efficiency of each agent application in that computer increases.
In addition, a queue 165 for agents that are waiting for reception is prepared in the agent platform 1631. When the agent platform 1631 has received the maximum number n of agent applications, any new agent applications including, e.g., an agent application 166 moved from the computer 1622, are not received. The agent applications (a), (b), (c), . . . which are not received wait in the queue 165. When some of agent applications 1 to n that are received and running move or disappear, the agent platform 1631, e.g., sequentially receives predetermined agent applications from the queue 165 and makes them processable. The queue 165 is prepared on, e.g., the memory of the computer or on an external storage device.
In this way, the number of agent applications to be simultaneously received is limited to n. If agent applications more than n are sent, they are added to the queue 165. Conversely, when an agent application completes processing in the computer and moves to another computer or disappears, the agent platform receives the first agent application in the queue 165 and causes the agent application to start processing.
Hence, when agent applications are put into the queue 165 instead of causing the agent platform 1631 to receive them, the processing efficiency of each agent application in the computer can be increased while reducing the overhead for movement of the agent applications.
Alternatively, a function of managing priority is added to the agent platform, and priority is set for each agent. When the agent platform 1631 has received the maximum number n of agents, the order of agent applications in the queue 165 is determined in accordance with the priority order of the respective agent applications when they are put into the queue 165.
When the agent platform 1631 has the function of changing the order of agent applications in the queue in accordance with the priority order instead of arranging them as put into the queue 165, the order of agent applications in the queue is changed in accordance with the priority order. Since an agent application with higher priority can be received by the agent platform soon, the wait time of important processing can be shortened.
Instead of setting the order of agent applications in the queue in accordance with the priority, if the agent platform 1631 has received the maximum number n of agent applications, and an agent application that has arrived later has priority higher than that of any one of the n currently running agent applications, the agent application with higher priority may be preferentially run by moving to the queue 165 the lowest-priority agent application in the agent applications that is running and receiving the agent application with higher priority In this way, the function of, when the maximum number n of agent applications are running in the computer 1621, and an agent application having priority higher than that of any one of the running agent applications has arrived, moving to the queue 165 the lowest-priority agent application that is running and causing the agent application with higher priority to execute processing is added to the agent platform 1631. Accordingly, since the agent application with higher priority is preferentially received by the agent platform, the wait time in the queue is further shortened.
The agent application 172 acquires the information of the protection relay 174 and then calculates the setting value on the basis of the information. Assume that since a computer 1701 in which the agent application is currently present has low processing performance, the agent application 172 should move to another computer and then calculate the setting value. It is supposed to be normal that the agent application has potential moving destinations in advance. However, if computers where agent applications are to be processed have no restrictions, the platform may decide the moving destination.
The platform on which the agent application executes calculation permits reception of the agent application (calculation of the setting value) on the basis of the performance of the platform itself. For example, referring to
A conventional platform that has no such function may execute complex processing even when its computer has low performance. As a result, the computer may become a bottleneck in the entire system, resulting in degradation in the system performance.
When each platform has the function of determining reception of an agent, as in this system, the load on the entire system can be distributed. Hence, the processing efficiency of the entire system increases.
Referring to
(1) Event Notification Receiving Section (Upon receiving an event notification request from an agent application (a), this section stores the request in an event notification request storage section to be described next (b)).
(2) Event Notification Request Storage Section (An area where the request from the agent application is stored).
(3) Event Receiving/Notifying Section (This section receives occurrence of an event (c), simultaneously searches the event notification request storage section (d), and sends an event occurrence notification to an agent application which is registered in advance to be notified of the event (e)).
A protection relay 204 is connected to the computer 201. Electrical quantity acquisition and opening the power system can be done through the protection relay 204.
An agent application 2071 which always monitors the electrical quantity and, if an fault is detected, notifies another agent application of the event through the event processing function, an agent application 2072 which disconnects the system upon receiving the event occurrence notification, and an agent application 2073 which notifies a server 206 at the control center of the fault upon receiving the event occurrence notification are sent from the server 206 to the platform 202. The agent applications 2072 and 2073 have the functions shown in
(1) Event Notification Receiving Section (Upon receiving the event occurrence from the event processing function (e), this section executes the following processing (f)).
(2) Contents of Event Processing The agent applications 2072 and 2073 register themselves in the event processing function to receive an event notification when an event, i.e., an fault in the power system has occurred (a and a′ in
According to the 19th embodiment, various kinds of events can be systematically managed using the event processing function. When this embodiment is applied to an power system, an application program can independently create an fault detection function and relay operating function. Hence, various functions can easily be implemented.
Referring to
In the conventional system (
To the contrary, in the present invention (
The operation of this system will be described next. At the time of an fault, the server 224 sends the agent application 225 and specifies the cause of the fault on the basis of information that the agent application 225 has brought. This agent application goes round through the platforms 2231, 2232, and 2233 in this order. An instruction is given to the agent application in advance to make it skip any destination that the agent application cannot reach. The agent application 225 that has arrived at the platform 2231 first acquires the information of the protection relay 2221. The platform 2231 is going to move the agent application 225 to the platform 2232. Assume that the path to the computer 2212 is disconnected.
In the 20th embodiment, communication by a platform has a timeout time. Communication that gives no response even when the time has been out is determined as a failure. Processing corresponding to the failure is executed.
(1) Main Process (The function of a conventional platform. However, if communication with an external device is required to, e.g., move an agent, the function generates the following communication process instead of executing communication by itself (a)).
(2) Communication Process (This process is generated by the main process (a) to actually communicate with an external device (b)).
(3) Timer (When the main process generates a new communication process, the main process sets a timeout time in the timer (a). At the timeout time, the communication process is stopped (c). The main process is notified of the timeout (d′)).
In the system according to the 20th embodiment, the main process that has received the timeout notification moves the agent application 225 to the next destination, i.e., the platform 2233. With this operation, the agent application 225 does not waste the wait time.
According to the 20th embodiment, the result of communication performed by the platform, e.g., movement of an agent, can be obtained within a predetermined time. The present invention is particularly effective when the agent is applied to a system that requires quick processing, like an power system protection system.
According to the present invention, the following effects are obtained.
(1) An agent system having a plurality of agents each of which executes predetermined processing while moving through a plurality of nodes connected to an information network is characterized in that the plurality of nodes respectively have a plurality of agent platforms which receive and execute the agents, one of the agent platform and the node has synchronization means, and when the plurality of agents which are running on the same node should synchronously execute operation, the plurality of agents on the same node execute processing synchronously by sending a synchronization request message to the synchronization means. A synchronization agent or synchronization function for establishing synchronization between the plurality of agents is arranged in the agent platform of the node (computer). An agent to be synchronized sends a message to the synchronization agent or the like and waits for a reply whereby the plurality of agents are synchronized. In the conventional scheme, the agent itself must have a mechanism for synchronization with another agent. In the present invention, since the synchronization agent or the like is introduced, the agent only needs to request the synchronization agent to execute synchronization processing. That is, when the synchronization agent or synchronization function is introduced, the agent only needs to have a notification method for the other agent to be synchronized and the synchronization agent. With this configuration, the programming amount of the agent is reduced. In addition, bugs in the synchronization program can be prevented.
(2) An agent system characterized by comprising: a plurality of agents each of which executes predetermined processing while moving through a plurality of nodes connected to an information network; and synchronization means arranged in the information network, wherein the plurality of nodes respectively have a plurality of agent platforms which receive and execute the agents, and when the plurality of agents which should synchronously execute operation are running on different nodes, the plurality of agents on the different nodes synchronously execute processing by sending a synchronization request message to the synchronization means. A synchronization agent or synchronization mechanism is arranged in the information network (e.g., a server). The synchronization agent or synchronization mechanism has a function of establishing synchronization with an agent on another node (computer). For this reason, it is easy to establish synchronization between agent applications present on different nodes (computers).
(3) An agent system having a plurality of agents each of which executes predetermined processing while moving through a plurality of nodes connected to an information network is characterized in that the plurality of nodes respectively have a plurality of agent platforms which receive and execute the agents, one of the agent platform and the node has synchronization means, and when the plurality of agents which should synchronously execute operation are running on different nodes, the agents to be synchronized send a synchronization request message to the synchronization means in the same node, and the synchronization means sends the synchronization request message to the synchronization means in another node, and the plurality of agents on the different nodes synchronously execute processing. To make synchronization between agents present on different nodes (computers), the synchronization agents or synchronization functions in the respective computers exchange synchronization information. Hence, synchronization can easily be established only by sending a message to the synchronization agent or function that is resident in the same computer without being conscious of, e.g., the positions of computers where the agents are present.
(4) An agent system having a plurality of agents each of which executes predetermined processing while moving through a plurality of nodes connected to an information network is characterized in that the plurality of nodes respectively have a plurality of agent platforms which receive and execute the agents, each of the plurality of platforms has a time synchronization function which controls a processing execution time of the agent, and each of the plurality of nodes has an apparatus which provides a reference time to the time synchronization function. In the conventional scheme, when the plurality of agents present on individual computers are to execute processing at the same time, each agent itself must have a mechanism for time synchronization with the remaining agents. However, according to the present invention, the agent only needs to use the time synchronization function prepared in the agent platform in advance. Accordingly, the programming amount of the agent and the number of bugs can be reduced. That is, when time synchronization processing in which the plurality of agents execute processing at the same time should be executed, it is only necessary to use the time synchronization function prepared in each agent platform in advance. Hence, time synchronization can easily be established without preparing, in each agent, a mechanism for time synchronization with the remaining agents.
(5) The system of (4) is characterized in that a GPS is used as the reference time providing apparatus. When time synchronization processing in which the plurality of agents execute processing at the same time should be executed, it is only necessary to use the time synchronization function prepared in each agent platform in advance. Since the time synchronization function synchronizes with the GPS, accurate time synchronization can easily be established without preparing, in each agent, a mechanism for time synchronization with the remaining agents.
(6) An agent system having a plurality of agents each of which executes predetermined processing while moving through a plurality of nodes connected to an information network is characterized in that the plurality of nodes respectively have a plurality of agent platforms which receive and execute the agents, a time synchronization function which is arranged in the platform to control an execution time of the agent, a time synchronization server which provides a reference time to each node in the system, and a time synchronization client which provides, to time synchronization function, the reference time provided by the time synchronization server. When time synchronization processing in which the plurality of agents execute processing at the same time should be executed, it is only necessary to use the time synchronization function prepared in each agent platform in advance. Since the time synchronization functions time-synchronize with each other through the time synchronization server and time synchronization client, accurate time synchronization can easily be realized at a relatively low cost without preparing, in each agent, a mechanism for time synchronization with the remaining agents.
(7) The system of (6) is characterized in that the time synchronization server of the agent system is operated on a dedicated computer on a network connected by a communication network. When time synchronization processing in which the plurality of agents execute processing at the same time should be executed, it is only necessary to use the time synchronization function prepared in each agent platform in advance. Since the time synchronization functions time-synchronize with each other through the time synchronization client whose time is adjusted by the time synchronization server, accurate time synchronization can easily be realized at a relatively low cost without preparing, in each agent, a mechanism for time synchronization with the remaining agents.
(8) The system of (7) is characterized in that an NTP (Network Time Protocol) server is used as the time synchronization server, and an NTP client is used as the time synchronization client. When time synchronization processing in which the plurality of agents execute processing at the same time should be executed, it is only necessary to use the time synchronization function prepared in each agent platform in advance. Since the time synchronization functions time-synchronize with each other through the NTP client, accurate time synchronization can easily be realized at a relatively low cost without preparing, in each agent, a mechanism for time synchronization with the remaining agents.
(9) A system of (4) is characterized in that time synchronization to a remote site connected through a communication line is established. When time synchronization processing in which the plurality of agents on computers in remote sites execute processing at the same time should be executed, it is only necessary to use the time synchronization function prepared in each agent platform in advance. Time synchronization can easily be established without preparing, in each agent, a mechanism for time synchronization with the remaining agents.
(10) A system of (5) is characterized in that time synchronization to a remote site connected through a communication line is established. When time synchronization processing in which the plurality of agents on computers in remote sites, e.g., computers connected through a public communication network, execute processing at the same time should be executed, it is only necessary to use the time synchronization function which is prepared in each agent platform in advance and synchronizes with the GPS. Accurate time synchronization can easily be realized without preparing, in each agent, a mechanism for time synchronization with the remaining agents.
(11) A system of (4) is characterized in that a radio control clock is used as the reference time providing apparatus. When time synchronization processing in which the plurality of agents on computers in remote sites, e.g., computers connected through a public communication network, execute processing at the same time should be executed, it is only necessary to use the time synchronization function which is prepared in each agent platform in advance and synchronizes with the radio control clock. Accurate time synchronization can easily be realized at a relatively low cost without preparing, in each agent, a mechanism for time synchronization with the remaining agents.
(12) An agent system having a plurality of agents each of which executes predetermined processing by accessing shared data present on a predetermined node or using a shared function provided by a predetermined node while moving through a plurality of nodes connected to an information network is characterized in that the plurality of nodes respectively have a plurality of agent platforms which receive and execute the agents, and one of the agent platform and the node has management means only through which the shared data or shared function can be accessed. A share management agent which manages data or a function used by a plurality of agents is introduced. The management agent consistently manages a shared resource such that the shared data or function is accessed only through this agent. With this configuration, excluding processing of access can easily and accurately be executed.
(13) The system of (12) is characterized in that the management means has a function of setting protection against another access when data or function managed by the management means is being used, and notifying the agent that has accessed the data or the function during protection of that the data or function is accessible after canceling the protection. Upon detecting access to protected data or function, when the protection is canceled, the share management agent notifies the agent that has accessed that the protection is canceled. Since the agent can execute processing irrelevant to the shared data processing or shared function first, the processing efficiency of the agent increases.
(14) The system of (12) is characterized in that each agent registers, in the management means in advance, to receive a notification when the shared data is partially rewritten or a predetermined function of the shared function is invoked, and when the shared data is actually rewritten, or the function is actually invoked, a notification is sent. When the data is actually rewritten or when the shared function is actually used, a notification is sent from the management agent. For this reason, the agent itself need not execute polling processing to confirm whether the data value is rewritten or the shared function is used. Hence, the processing efficiency of the agent increases.
(15) The system of (13) or (14) is characterized in that each agent interrupts processing until the notification is received from the management means, and resumes the processing after the notification is received. When the processing of the agent is determined in consideration of a change in state of shared data or use of the shared function, the management agent or management function resumes the processing of the agent when the data is actually rewritten or when the shared function is actually used. For this reason, the agent itself need not execute polling processing to confirm whether the state of the shared data has changed or the shared function is used. Hence, the processing efficiency of the agent increases.
(16) An agent system having a plurality of agents each of which executes predetermined processing while moving through a plurality of nodes connected to an information network is characterized in that when the agent is to be moved from one node to another node, a plurality of copies of the agent are generated, the plurality of generated agents are moved to the moving destination node through different paths on the information network, and desired processing is started on the moving destination node after all the agents have arrived or a majority of the agents have arrived. A plurality of agents are generated, and processing is started when all (or a majority) of them have arrived at the destination. Even when the information is rewritten due to some fault or security breakthrough, the agent is very unlikely to execute processing that is not intended by the agent transmitter, as compared to a case wherein only one agent is transmitted. Hence, the reliability of the agent application increases, and the security level increases.
(17) An agent system having a plurality of agents each of which executes predetermined processing while moving through a plurality of nodes connected to an information network is characterized in that the plurality of nodes respectively have a plurality of agent platforms which receive and execute the agents, and the number of agents to be simultaneously received by one agent platform is limited to a predetermined number. The maximum number of agents receivable by an agent platform is registered in that platform. When the number of agents exceeds the maximum number, reception of agents is rejected. Since the maximum number of agent applications that simultaneously run is determined, the processing efficiency of each agent in that computer increases.
(18) The system of (17) is characterized in that each agent platform has a queue for agents that are waiting for reception, and when an agent platform has already received the maximum number of agents, an agent that is not received is put into the queue, and when an agent which is received and running moves or disappears, the agent in the queue is received by the agent platform. The queue for agents that are waiting for reception is prepared in the agent platform. The platform has a function of putting agents into the queue when agents beyond the maximum number are to be received. Since the agents are put into the queue without being received, the processing efficiency of the agent in the computer is increased while reducing the overhead for movement of the agents.
(19) The system of (18) is characterized in that priority is set for each agent, and when the agents are to be put into the queue because the destination agent platform has already received the maximum number of agents, the order of the agents in the queue is determined in accordance with the priority of each agent. The platform has a function of setting the order of agents in the queue in accordance with not the order as put into the queue but the priority of each agent. Even when an agent with higher priority is put into the queue, the order in the queue is changed in accordance with the priority. Hence, an agent with higher priority is received by the agent platform at an earlier stage. The wait time for important processing can be shortened.
(20) The system of (18) is characterized in that priority is set for each agent, and when the destination agent platform has already received the maximum number of agents, and the priority of an agent that has arrived later is higher than that of an agent that is currently running, an agent with lowest priority in the running agents is moved to the queue, and the agent with higher priority is received. The platform has a function of, when the maximum number of agents are running in the computer, and an agent with higher priority than those of the running agents has arrived, moving a running agent with lowest priority to the queue and executing the processing of the agent with higher priority. Since an agent with high priority is preferentially received by the platform, the wait time in the queue is further shortened.
(21) An agent system having a plurality of agents each of which executes predetermined processing while moving through a plurality of nodes connected to an information network is characterized in that the plurality of nodes respectively have a plurality of agent platforms which receive and execute the agents, and each platform permits/inhibits reception by determining a function and characteristic of a received agent. The platform determines the function and characteristic of a received agent and permits/inhibits reception. A platform with low processing performance rejects reception of an agent that will execute complex processing. Hence, the platform with low processing performance can be prevented from becoming a bottleneck in the entire system. As a result, the processing efficiency of the entire system increases.
(22) An agent system having a plurality of agents each of which executes predetermined processing while moving through a plurality of nodes connected to an information network is characterized in that the plurality of nodes respectively have a plurality of agent platforms which receive and execute the agents, each agent platform has an event function and, when an event has occurred, sends a message to an agent that has been registered in advance in the event function so as to cause the agent to perform operation in accordance with the event. Since various kinds of events can be consistently managed by the event processing function, applications can be independently generated for the respective functions. Hence, a system having various functions can easily be implemented.
(23) An agent system having a plurality of agents each of which executes predetermined processing while moving through a plurality of nodes connected to an information network is characterized in that the plurality of nodes respectively have a plurality of agent platforms which receive and execute the agents, when an agent platform is to move the agent to the next moving destination, communication that gives no response even after elapse of a predetermined time is forcibly disconnected. When a timeout time is set for communication processing between a desired agent platform and an external device, it is guaranteed that the processing of the agent is ended within a predetermined time. When an agent platform communicates with another program, the maximum response time can be predicted in advance. Accordingly, an agent can be applied to a system that requires quick processing, like protection system of power system.
As described above, processing which requires real-time responses in a distributed environment can easily be realized by an agent having a real time function. An application only needs to designate the timing and operation. A very large effect that the prior art does not have can be obtained.
Finally, as a unique effect obtained when the agent is applied to power system protection, an example in which the agent is applied to a failure extension protection system will be described. The power system stabilizing system is a system which controls the apparatuses of an power system, such as a power generator and breaker in case of a serious fault, thereby stabilizing the system. To stabilize the system, each of the distributed apparatuses requires delicate control for the operation order of the apparatuses, timing, and certainty. When the agent is used, this function can easily be realized. In addition, even when the configuration of the system has changed, the agent system of the present invention can easily cope with the change.
The present invention relates to an agent system.
Number | Date | Country | Kind |
---|---|---|---|
2000-230847 | Jul 2000 | JP | national |
The present application is a divisional of application Ser. No. 10/355,184, filed Jan. 31, 2003, which is a Continuation Application of PCT Application No. PCT/JP01/06538, filed Jul. 30, 2001, which was not published under PCT Article 21(2) in English. The present application is based upon and claims the benefit of priority from the prior Japanese Patent Application No. 2000-230847, filed Jul. 31, 2000, the entire contents of which are incorporated herein by reference.
Number | Date | Country | |
---|---|---|---|
Parent | 10355184 | Jan 2003 | US |
Child | 11559855 | Nov 2006 | US |
Number | Date | Country | |
---|---|---|---|
Parent | PCT/JP01/06538 | Jul 2001 | US |
Child | 10355184 | Jan 2003 | US |