2008年4月29日 星期二

論文(二)





時間過得很快,從決定題目到現在已經過了一個多月,
總算有了一點進度,在分散式的模擬系統當中,最關鍵的是
做好模擬時間的同步,畢竟,時間是驅動模擬最主要的因素,
也決定了模擬的正確性,當然,許多的機制已經被討論過了
(Banks,et al. 1996,Fujimoto 1990, Fujimoto 1993,2000),

我套用的機制是:
分散的模擬單元間,彼此藉由中控的middleware,來交換
訊息,亦即會影響到對方的Event,例如,當一個M9導彈旅
在某時間發射一枚導彈時 ,他將此事件發佈(publish)到一個
主題(topic)上,需要瞭解這事件的對應模擬單元,例如,
愛國者飛彈連、EWR空中預警雷達,在事先訂閱(subscribe)
這個主題後,便會收到這則事件,並在下一個時間點做出
相對的反應(事件),例如,發射飛彈攔截之類的,並再把這則
事件發佈到主題上讓其他模擬單元知曉,以此類推讓不同模擬
單元間進行互動。

基於以上的做法,最重要的是如何做好時間的管理,
亦即如何保證在中午12點發生的事件前,不會先執行
下午一點的事件,簡單的來說,就是做好在middleware上
根據事件發生的先後順序進行排序。

survey的結果,藉由JMS
所提供的publish/subscribe功能,在BEA
weblogic所提供的JMS實作產品中,有排序的機制,方法並不難,
但是我try了很久.......囧

1.灌好weblogic server
2.設定好相對的JMS管理物件
(ConnectionFactory、JNDI、TOPIC)
3.設定好要用來排序的 Message Property(在此為Destination key)
4.撰寫publish/subsribe的程式
在程式碼中加上這一行


msg.setIntProperty("EventTime",66);

5.run!

一開始學J2SE、專題寫J2ME、研究所寫J2EE
我的人生真是Java三部曲,好宅,科科~~~

沒有留言: