cougaar學習筆記之---序列化Asset到MySQL中

   目標:將Task中的DirectObject指向的Asset序列化在MySQL中.
   基本步驟:
       1. 開發DatabaseService
       2. 開發LogicProvider(AssetPersistenceLogicProvider)--爲什麼要用LogicProvider, 實現數據轉換的同步.
       3. 爲每種特殊的Asset提供相應的AssetPersistence
   詳細說明:
   1. 開發DatabaseService--參數bol2中的例子
   DatabaseService的功能:提供數據庫服務, 包括:excuteQuery, excuteStmt. 即提供CRUD服務.
   實現方式:使用Cougaar中標準的Service的方式來實現。
   實現細節:
      * DataBaseService: 服務接口
      * DataBaseServiceImpl: 服務實現
      * DataBaseServiceProvider: 服務提供者(實現的ServiceBroker接口)
   服務註冊:
      通過以上的方式, 已經實現的一個服務, 需要將這個服務註冊到ServiceBroker上。可以在任何一個組件的Load方法中插入以下代碼來註冊:
DatabaseServiceProvider dbServiceProvider
    = new DatabaseServiceProvider(getServiceBroker());
getServiceBroker().addService(DatabaseService.class, dbServiceProvider);

   服務使用:
      這後, 可以通過上面這個SB來獲取自定義的服務:
dbService = (DatabaseService) sb.getService(this,DatabaseService.class, null);
  

   2. 開發LogicProvider
   功能: 監聽特殊的Asset, 並調用相應的AssetPersistence
   實現方式:使用Cougaar中標準的LogicProvider的方式來實現
   實現細節:
       * AssetPersistLogicProvider: 監聽特殊的Asset, 並調用相應的AssetPersistence(實現EnvelopeLogicProvider, ABAChangeLogicProvider接口).
       * AssetPersistenceDomain: Load AssetPersistLogicProvider(實現DomainAdapter接口).
       * 需要在LDMDommains.ini中註冊AssetPersistenceDomain:
AssetPersistDomain=com.justep.business.content.model.persistence.AssetPersistDomain


   3. 開發特殊的AssetPersistence
   功能:實現特殊的Asset的SQL語句, 之後調用DatabaseService,將數據存儲到MySQL中,或查詢出來.  

 

發佈了21 篇原創文章 · 獲贊 2 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章