2013-5-26-모바일인지-sequenceDiagram(Agent제작자기준).svg source
Retired DISLab
Title : Action Logger가 사용하는 경우 participant TestProgram note left of TestProgram : CLIENT participant AgentProgram participant BlackboardMonitor participant BlackboardReceiver participant BlackboardService note left of BlackboardService : BLACKBOARD participant Blackboard participant AnotherClients TestProgram -> AgentProgram: <<create>> AgentProgram -> BlackboardMonitor: getInstance(context:Context) BlackboardMonitor -> BlackboardReceiver: registerReceiver() BlackboardMonitor -> BlackboardService: bindService() BlackboardMonitor --> AgentProgram:BlackboardMonitor Instance AgentProgram -> BlackboardMonitor: registerAgent(this:Agent) TestProgram -> AgentProgram: subscribe(bbName:String, dataName:String, operation:String)[A] AgentProgram -> BlackboardMonitor: subscribe(bbName:String, dataName:String, operation:String, this:Agent) TestProgram -> AgentProgram: update(bbName:String, dataName:String, data:String)[B] AgentProgram -> BlackboardMonitor: update(bbName:String, dataName:String, data:String) BlackboardMonitor -> BlackboardService: update(bbName:String, dataName:String, data:String) BlackboardService -> Blackboard: getData(dataName:String):String Blackboard --> BlackboardService: current data value BlackboardService -> Blackboard: putData(bbName:String, data:String) BlackboardService -> BlackboardReceiver: broadcast[C] BlackboardService -> AnotherClients: broadcast[C] BlackboardReceiver -> BlackboardMonitor: getListenerIterator():Iterator BlackboardMonitor --> BlackboardReceiver: Listeners Array List Iterator BlackboardReceiver -> AgentProgram: notified(bbName:String, oldValue:String, newValue:String, operation:String)[D]