Как OSGi управляет взаимодействием компонентов, работающих в отдельном JVMs?

Разница между ref и out заключается не в CLR, а в самом языке C #. Ref и Out отличаются тем, что «компилятору требуется разное поведение» для каждого из них. Перегрузка метода также не допускается во время компиляции.

Как вы можете видеть из кода, единственное изменение - это адресная ссылка именно этой строки (если вы установите значение 10, это будет равно 10).

IL_0002:  ldc.i4.s   20
13
задан oxbow_lakes 17 December 2008 в 19:25
поделиться

7 ответов

Да, OSGi только имеет дело с пакетами и сервисами, работающими на том же VM. Однако нужно отметить, что это - отличная функция OSGi, что это упрощает запуск нескольких приложений (управляемым способом и совместным использованием общих модулей) на той же JVM вообще.

Когда дело доходит до доступа к сервисам вне клиентов JVM в настоящее время нет никакого стандартизированного решения. Paremus Infiniflow и полученный проект с открытым исходным кодом использование Newton подход SCA. Предстоящие 4,2 выпуска спецификаций OSGi обратятся к одной стороне проблемы, а именно, как использовать универсальное программное обеспечение распределения таким способом, которым это может привести удаленные сервисы в JVM клиента.

Поскольку кто-то упомянул R-OSGi, этот подход также имеет дело с другой стороной проблемы, будучи, как управлять зависимостями между распределенными платформами OSGi. Так как R-OSGi не является универсальным программным обеспечением распределения, но явно занимается проблемами жизненного цикла и управлением зависимостью пакетами OSGi.

6
ответ дан 1 December 2019 в 22:58
поделиться

Насколько я знаю, OSGi не решает эту проблему из поля. Существуют OSGi-пакеты, например, Удаленные OSGi, которые позволяют программисту распределять сервисы через сеть.

4
ответ дан 1 December 2019 в 22:58
поделиться

Еще нет, я думаю, что это работается на для следующего выпуска.

Но некоторые компании уже реализовали распределенный osgi. Один я знаю, Infiniflow Paremus (http://www.paremus.com/products/products.html). В linkedin они также работают над этим.Более подробная информация: Создание архитектуры следующего поколения Linkedin с osgi и здесь: Матовый raible: здание linkedin архитектура следующего поколения

Вот сводка изменений для OSGI 4.2: Некоторые мысли о проекте OSGi R4.2, существует раздел по RFC 119, имеющему дело с распределенным OSGi.

3
ответ дан 1 December 2019 в 22:58
поделиться

AFAIK, пакеты работают в той же JVM, но не загружаются с помощью того же загрузчика класса (это, почему можно использовать две различных версии того же пакета одновременно).

Для взаимодействия с компонентами в другой JVM необходимо использовать сетевой протокол, такой как rmi.

2
ответ дан 1 December 2019 в 22:58
поделиться

@Patriarch24

Принятый ответ на этот вопрос, казалось бы, указал бы иначе (если я не неправильно читаю его). Кроме того, взятый от FAQ:

Платформа услуг OSGi обеспечивает функции для изменения состава динамично на устройстве множества сетей, не требуя перезапуска

(Акцент мое собственное). Хотя в том же FAQ это описывает OSGi как в - VM.

Почему я так смущен этим? Почему не ясен такой основной вопрос о старой десятилетием технологии?

1
ответ дан 1 December 2019 в 22:58
поделиться

Союз OSGi работает над стандартом для распределенного OSGi:

http://www.osgi.org/download/osgi-4.2-early-draft2.pdf


Даже существует ранняя реализация Apache этого нового стандарта:

http://cxf.apache.org/distributed-osgi.html

2
ответ дан 1 December 2019 в 22:58
поделиться

Исходная проблема OSGI была более связана с распределением кода (и затем конфигурация пакета), чем к распределению выполнения.

Люди, смотрящие на распределенные компоненты, скорее смотрят на SCA

1
ответ дан 1 December 2019 в 22:58
поделиться
Другие вопросы по тегам:

Похожие вопросы: