2013-5-26-모바일인지-sequenceDiagram(ActionLogger가 사용하는 경우 UPGRADE (위의 비동기적 방식에 맞춤)).svg source
Retired DISLab
Title : ActionLogger가 사용하는 경우 UPGRADE (위의 비동기적 방식에 맞춤) participant Agent1 participant BlackboardMonitorApplication1 participant BlackboardMonitor1 participant BlackboardReceiver1 participant BlackboardService participant Blackboard participant BlackboardReceiver2 participant BlackboardMonitor2 participant BlackboardMonitorApplication2 participant Agent2 BlackboardMonitorApplication1 ->BlackboardMonitorApplication1 : (Auto Generated) BlackboardMonitorApplication1 -> BlackboardMonitor1 : getInstance() BlackboardMonitor1 -> BlackboardReceiver1 : registerReceiver() BlackboardMonitor1 -> BlackboardService : bindService() BlackboardMonitor1 -> Agent1 : <<create>> Agent1 -> Agent1 : init() (Runnable 객체 사용) Agent1 -> BlackboardMonitor1 : registerAgent(this:Agent) Agent1 -> BlackboardMonitor1 : suubscribe(objectName:String, dataName:String, operation:String, this:Agent) BlackboardMonitor1 --> BlackboardMonitorApplication1 : BlackboardMonitor1 Instance BlackboardMonitorApplication2->BlackboardMonitorApplication2: (Auto Generated) BlackboardMonitorApplication2-> BlackboardMonitor2 : getInstance() BlackboardMonitor2-> BlackboardReceiver2: registerReceiver() BlackboardMonitor2-> BlackboardService : bindService() BlackboardMonitor2-> Agent2: <<create>> Agent2 -> Agent2 : init() (Runnable 객체 사용) Agent2-> BlackboardMonitor2: registerAgent(this:Agent) Agent2-> BlackboardMonitor2: suubscribe(objectName:String, dataName:String, operation:String, this:Agent) BlackboardMonitor2 --> BlackboardMonitorApplication2 : BlackboardMonitor2 Instance Agent1 -> BlackboardMonitor1 : update(objectName:Stirng, dataName:String, data:String) BlackboardMonitor1 -> BlackboardService : update(objectName:Stirng, dataName:String, data:String) BlackboardService -> Blackboard : getData(dataName:String):String Blackboard --> BlackboardService : current data value BlackboardService -> Blackboard : putData(ObjectName:String, data:String) BlackboardService -> BlackboardReceiver1 : broadcast BlackboardService -> BlackboardReceiver2 : broadcast BlackboardReceiver1 -> BlackboardMonitor1 : getListenerIterator():Iterator BlackboardMonitor1 --> BlackboardReceiver1 :Listeners Array List Iterator BlackboardReceiver1 -> Agent1 : notified(ObjectName:String, oldValue:String, newValue:String, operation:String) (등록된 Listener일 경우) BlackboardReceiver2-> BlackboardMonitor2: getListenerIterator():Iterator BlackboardMonitor2--> BlackboardReceiver2:Listeners Array List Iterator BlackboardReceiver2-> Agent2: notified(ObjectName:String, oldValue:String, newValue:String, operation:String) (등록된 Listener일 경우)