小编Pab*_*cía的帖子

如何以智能方式在多个OSGi服务中选择运行时?

我想到了一个可以动态选择可用的OSGi服务的智能系统.也就是说,根据某些运行时参数选择一个或另一个实现.例如,通知运行的算法,该算法在多次迭代后更改运算符,或者取决于系统中的负载平衡或其他任何操作.

while(stopCriterion){
    operator.doSomething(); //There exist many operator implementations
}
Run Code Online (Sandbox Code Playgroud)

我的第一种方法是使用DS公开服务并使用0..n和动态策略绑定服务.然后,从外部智能组件,通知算法在每次迭代中使用哪种服务(使用EventAdmin,可能?).

operator[selected].doSomething();
Run Code Online (Sandbox Code Playgroud)

当必须执行许多不同服务实现的许多实验时,这可以帮助我降低复杂性.此外,我计划将远程服务规范与Eclipse Communication Framework一起用于研究分布式算法和那些东西,因此也可以在执行时间内动态显示新实现

但是,我不知道这是一个好主意还是存在另一种更好的机制来动态选择使用哪种实现.我认为使用ServiceTracker而不是DS不是一个好选择,但我愿意接受建议:)

提前致谢.

java service osgi declarative

7
推荐指数
1
解决办法
1521
查看次数

标签 统计

declarative ×1

java ×1

osgi ×1

service ×1