Я имею в виду интеллектуальную систему, которая может динамически выбирать из доступных сервисов OSGi.То есть выберите реализацию или другую в зависимости от некоторого параметра времени выполнения.Например, уведомить работающий алгоритм, который меняет оператора после нескольких итераций, или в зависимости от распределения нагрузки в системе или чего-либо еще.
while(stopCriterion){
operator.doSomething(); //There exist many operator implementations
}
Мой первый подход - использовать DS для предоставления сервисов и связывания сервисов.с 0..n и динамической политикой.Затем из внешнего интеллектуального компонента уведомите алгоритм, который служба использует в каждой итерации (возможно, используя EventAdmin ).
operator[selected].doSomething();
Это может помочь мне уменьшить сложность, когда необходимо выполнить много экспериментов с множеством различных реализаций сервиса.Кроме того, я планирую использовать спецификацию Remote Services с Eclipse Communication Framework для проведения исследований в области распределенных алгоритмов и тому подобного, поэтому также возможно динамическое появление новых реализаций во время выполнения
ОднакоЯ не знаю, является ли это хорошей идеей или существует другой лучший механизм для динамического выбора, какую реализацию использовать.Я думаю, что использование ServiceTracker вместо DS не является хорошим вариантом, но я открыт для предложений:)
Заранее спасибо.