GPGP Mechanisms Specification9
This file is last updated Tue Aug 24 18:22:02 EDT 1999.
These FSMs are implemented using the GPGPCoordination bean, i.e., add GPGPCoordination bean when you use beanbox tool to make your agent.Mech 1, option All
The FSM: GPGP_Mech1_All script: gpgp_1_all.script triggering KQMLMessage: none triggering FSMEvent: none receives KQMLMessage Type: GPGP_Mech1_All send KQMLMessage Type: GPGP_Mech1_All content for type GPGP_Mech1_All: String representation of a Taems object, contains the private view of the sender agent. receives FSMEvent Type: New_TG_Arrival send FSMEvent Type: GPGP_Mech1_All content for type New_TG_Arrival: Taems obj for the agent's private view (calculated via ConTaemsTask) content for type GPGP_Mech1_All: the KQMLMessage just received (for the GPGP bean to parse and update the agent's partial global view) Description: this FSM simply do the following 1. upon receiving event New_TG_Arrival, send out message GPGP_Mech1_All 2. upon receiving message GPGP_Mech1_All, send out event GPGP_Mech1_All FSM is created during GPGPCoordination init(). It never finishes.Mech 1, option Some
The FSM: GPGP_Mech1_Some script: gpgp_1_some.script triggering KQMLMessage: none triggering FSMEvent: none receives KQMLMessage Type: GPGP_Mech1_Some send KQMLMessage Type: GPGP_Mech1_Some content for type GPGP_Mech1_Some: same as GPGP_Mech1_All, but a partial private view (some), not all receives FSMEvent Type: New_TG_Arrival, CR_Detected send FSMEvent Type: GPGP_Mech1_Some, GPGP_Detect_CR content for type New_TG_Arrival: none (because nothing is needed right now, the 'some' view is in the content of event CR_Detected) content for type CR_Detected: Taems obj for the agent's partial view (calculated via ConTaemsTask) content for type GPGP_Detect_CR: none (just a signal to the bean that asks for more calculation) content for type GPGP_Mech1_Some: the GPGP_Mech1_Some KQMLMessage just received Description: 1. upon receiveing event New_TG_Arrival, send out event GPGP_Detect_CR; then, upon receiving event CR_Detected, send out message GPGP_Mech1_Some 2. upon receiving message GPGP_Mech1_Some, send out event GPGP_Mech1_Some FSM is created during GPGPCoordination init(). It never finishes.Mech 2, option All
The FSM: GPGP_Mech2_All script: gpgp_2_all.script triggering KQMLMessage: none triggering FSMEvent: none receives KQMLMessage Type: GPGP_Mech2_All send KQMLMessage Type: GPGP_Mech2_All content for type GPGP_Mech2_All: String representation of a Taems object that contains the quality information about the newly finished tasks/methods/commitments. receives FSMEvent Type: Quality_Acquired send FSMEvent Type: GPGP_Mech2_All content for type Quality_Acquired: Taems obj that contains the newly finished tasks/methods/commitments. its String representation is going to be the message content content for type GPGP_Mech2_All: the newly received KQMLMessage GPGP_Mech2_All. Description: 1. upon receiving event Quality_Acquired, send out message GPGP_Mech2_All 2. upon receiving message GPGP_Mech2_All, send out event GPGP_Mech2_All FSM is created during GPGPCoordination init(). It never finishes.Mech 2, option TG
The FSM: GPGP_Mech2_TG script: gpgp_2_tg.script triggering KQMLMessage: none triggering FSMEvent: none receives KQMLMessage Type: GPGP_Mech2_TG send KQMLMessage Type: GPGP_Mech2_TG content for type GPGP_Mech2_TG: same as in the FSM GPGP_Mech2_All receives FSMEvent Type: Quality_Acquired send FSMEvent Type: GPGP_Mech2_TG content: same as in the FSM GPGP_Mech2_All Description: 1. upon receiving event Quality_Acquired, send out message GPGP_Mech2_TG 2. upon receiving message GPGP_Mech2_All, send out event GPGP_Mech2_TG FSM is created during GPGPCoordination init(). It never finishes.Mech 2, option Min
The FSM: GPGP_Mech2_Min script: gpgp_2_min.script triggering KQMLMessage: none triggering FSMEvent: none receives KQMLMessage Type: GPGP_Mech2_Min send KQMLMessage Type: GPGP_Mech2_Min content: same as in FSM GPGP_Mech2_All receives FSMEvent Type: Quality_Acquired send FSMEvent Type: GPGP_Mech2_Min content: same as in FSM GPGP_Mech2_All Description: 1. upon receiving event Quality_Acquired, send out message GPGP_Mech2_Min 2. upon receiving message GPGP_Mech2_TG, send out event GPGP_Mech2_Min FSM is created during GPGPCoordination init(). It never finishes.Mech 3
The FSM: GPGP_Mech3 script: gpgp_3.script triggering KQMLMessage: GPGP_Mech3 triggering FSMEvent: Found_RCR receives KQMLMessage Type: GPGP_Mech3 send KQMLMessage Type: GPGP_Mech3 content for type GPGP_Mech3: String representation of Taems that contains the following: the (local) commitment for the redundant local task, the task itself (including the list of its subtask methods). Note that currently the commitment would be for one of the task's methods, not the task itself. receives FSMEvent Type: Found_RCR, Engage_RCR, Vote_Decided send FSMEvent Type: GPGP_Mech3, GPGP_Receive_RCR content for type Found_RCR: The Taems objects that contains the redundancy coordination relationship, i.e., the task with list of its subtask methods, plus the local commitment for the method that satisfies the task. content for type Engage_RCR: the same as Found_RCR content for Vote_Decided: none (the agents know whose commitment is selected without communication) content for GPGP_Mech3: the KQMLMessage from message GPGP_Mech3 content for GPGP_Receive_RCR: same as GPGP_Mech3 Description: 1. triggered by event Found_RCR, send message GPGP_Mech3; then wait there (when receiving GPGP_Mech3 messages, send event GPGP_Mech3) until event Vote_Decided is received. FSM finishes there. 2. triggered by message GPGP_Mech3, send event GPGP_Receive_RCR, wait until event Engage_RCR is received. Then send message GPGP_Mech3 and wait again (during the waiting time, if receiving GPGP_Mech3 messages, send event GPGP_Mech3), until event Vote_Decided is received, and the FSM finishes there. Additional Notes: 1. The simple redundancy coordination relationship is defined as this: a task T has q_max qaf and all its subtasks are independent methods. One of the method is in the schedule and a local commitment is thus in place. 2. The enabler sends its local commitment, but the receiver should read it in as a non-local commitmentMech 4
The FSM: GPGP_Mech4 script: gpgp_4.script triggering KQMLMessage: GPGP_Mech4 triggering FSMEvent: Found_HPCR receives KQMLMessage Type: GPGP_Mech4 send KQMLMessage Type: GPGP_Mech4 content for type GPGP_Mech4: the String representation of the Taems object that encodes the information about this coordination relationship, namely the (local) commitment about the enabling task/method, and the enables NLE itself (which should contain the name of the non-local task/method expecting this commitment). receives FSMEvent Type: Found_HPCR send FSMEvent Type: GPGP_Mech4 content for type Found_HPCR: The Taems object that encodes the information about this coordination relationship (its String representation will be the content of GPGP_Mech4 messages): the (local) commitment and the NLE. It needed, the method nodes can be included in the Taems object as well. (I have the perception that the new Taems won't work if you just have an NLE node but nothing else in it). content for type GPGP_Mech4: the GPGP_Mech4 KQMLMessage it just received Description: 1. triggered by event Found_HPCR, then send out message GPGP_Mech4, and the FSM finishes 2. triggered by message GPGP_Mech4, then send out event GPGP_Mech4, and the FSM finished Additional Notes: 1. the enabler agent sends the commitment proactively. It is a one-shot operation. The receiver (enablee) either takes it or leave it. There is no feedback/negotiation. 2. The enabler sends its local commitment, but the receiver should read it in as a non-local commitmentMech 5
The FSM: GPGP_Mech5 script: gpgp_5.script triggering KQMLMessage: GPGP_Mech5 triggering FSMEvent: Found_SPCR receives KQMLMessage Type: GPGP_Mech5 send KQMLMessage Type: GPGP_Mech5 content: same as GPGP_Mech4, but uses facilitates NLE instead of enables receives FSMEvent Type: Found_SPCR send FSMEvent Type: GPGP_Mech5 content: same as GPGP_Mech4, but uses facilitates NLE instead of enables Description: 1. triggered by event Found_SPCR, then send out message GPGP_Mech5, and the FSM finishes 2. triggered by message GPGP_Mech5, then send out event GPGP_Mech5, and the FSM finished