1. 程式人生 > >cougaar學習筆記之---序列化Asset到MySQL中

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中,或查詢出來.