当前位置: 首页 > 工具软件 > Cougaar > 使用案例 >

Cougaar学习之-Domain/LogicProvider

黄彬
2023-12-01

    LogicProvider是cougaar中agent上的一种插入逻辑功能的实现方式,它的特点是:同步(synchronization)。适用范围:适于反应灵敏的操作,如数据格式的转换。
   

    开发步骤:
第一步,代码实现
    代码实现包括两个类**Domain和**LogicProvider。
    1. **Domain
    关键点:
public String getDomainName() {
    return "RcvMessageDomain";  //这个名称将来会用在发布配置中
}

protected void loadLPs() {
    //RceMessageLogicProvider就是对应的**LogicProvider
    addLogicProvider(new RcvMessageLogicProvider(rootPlan, self));
}

    2. **LogicProvider 
    关键点:
public void execute(EnvelopeTuple m, Collection changeReports) {
    Object object = m.getObject();
    if (m.isAdd()) {
     //处理逻辑
     
    } else if (m.isChange()) {
     //处理逻辑

    } else if (m.isRemove()) {
     //处理逻辑

    }
}

    在logicProvider中,可以使用从**domain传递过来的rootPlan来代替BlackboardService的功能,与Blackboard进行交互.


第二步,发布配置
    有两种配置方案,  一种是修改%COUGAAR_INSTALL_PATH%/configs/common/LDMDomains.ini文件,增加类似于"glm=org.cougaar.glm.ldm.GLMDomain"的配置;
    另一种是在Cougaar应用的启动配置中,使用下面的配置
<vm_parameter>
    -Dorg.cougaar.domain.**Domain="**.**.**.**Domain"
</vm_parameter>
   
    注意:修改Cougaar应用的启动配置之后,需要在run/dubug中根据配置文件重新生成cougaar的启动参数。
 

 类似资料: