omo escolher em tempo de execução entre vários serviços OSGi de maneira inteligent

Eu tenho em mente um sistema inteligente que pode escolher entre os serviços OSGi disponíveis dinamicamente. Ou seja, escolha uma implementação ou outra, dependendo de algum parâmetro de tempo de execução. Por exemplo, notifique para um algoritmo em execução que altera um operador após várias iterações ou dependendo do balanceamento de carga em um sistema ou o que fo

while(stopCriterion){
    operator.doSomething(); //There exist many operator implementations
}

Minha primeira abordagem é usar o DS para expor os serviços e vincular serviços com 0..n edinâmic policy. Então, de um @ exterinteligent, notifique o algoritmo que serviço usa em todas as iterações (usando EventAdmin, talvez?)

operator[selected].doSomething();

Isso poderia me ajudar a reduzir a complexidade quando muitas experiências com muitas implementações de serviços diferentes devem ser executadas. Além disso, estou planejando usar a especificação de Serviços Remotos comEclipse Communication Frameworkazer pesquisas em algoritmos distribuídos e coisas assim, assim também é possível o aparecimento dinâmico de novas implementações em tempo de execuçã

No entanto, não sei se é uma boa ideia ou se existe outro mecanismo melhor para selecionar dinamicamente qual implementação usar. Eu acho que usando ServiceTracker o DS não é uma boa opção, mas estou aberto a sugestões:)

Desde já, obrigado

questionAnswers(2)

yourAnswerToTheQuestion