Какая в реальном времени (RTSJ) JVM является наиболее предпочтительной?

Кажется, есть только несколько JVM, которые являются реализациями Спецификация в реальном времени для Java (RTSJ). Система реального времени Sun/Oracle Java составляет более 6000 долларов США, а IBM WebSphere в режиме реального времени составляет более 7000 долларов, поэтому многие разработчики Java никогда не смогут использовать любой из них. Oracle JRockit, похоже, представляет собой бесплатную реализацию Java в реальном времени с предсказуемым детерминированным поведением, хотя я не уверен, поскольку их документация довольно тяжелая на языке маркетинга. Другие меньшие виртуальные JVM в реальном времени кажутся рискованными в силу того, что они разрабатываются небольшими организациями и имеют меньшие пользовательские базы.

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

Ответ 1

Обновление (март 2012 г.): Oracle, похоже, спокойно разобрал свою команду разработчиков JavaRTS.

На этот вопрос нет хорошего ответа. Конечно, недостаточно критической массы, чтобы сказать, что существует самая популярная RT JVM.

Системы обороны США Мне известно использование JavaRTS, IBM WebSphere RT и PERC. Авиационные платформы используют aicas JamaicaVM. На данный момент большинство из этих людей не слишком обеспокоены расходами на лицензирование. Они обеспокоены гораздо более высокими программными рисками. Я работал с рядом этих программ, и я считаю, что продукты имеют высокое качество, и есть (порой необычная) поддержка со стороны поставщиков.

Многие из поставщиков сосредоточились на конкретных клиентах или доменах, и их проекты и инфраструктура поддержки, как правило, согласуются с этим. Если у вас есть конкретный профиль приложения, возможно, мы сможем получить вам лучший ответ.

Высокие затраты на лицензирование, которые вы цитируете, отражают высокие ожидания пользователей этих продуктов и относительно низкую плотность спроса. Сообщество разработчиков (например, оно есть) также более фрагментарно, потому что системы с критическими в реальном времени или критическими ограничениями обычно имеют большую чувствительность (защита, авиация, SCADA) или охраняемая собственная ценность (автомобильная) или и то, и другое. Одним из превосходных форумов для теории и практики Java в реальном времени является ежегодная конференция JTRES, которая представляет собой сплоченную группу ученых и технически подкованных поставщиков.

Связано с SO: Примитивы только в Java, который использует RTSJ.

Ответ 2

Верно, что существует только несколько виртуальных машин, которые реализуют RTSJ. Oracle JavaRT, IBM в режиме реального времени WebSpere и aicas JamaicaVM, но PERC от Atego не является одним из них, даже не удаленно. PERC имеет некоторые собственные расширения для программирования в реальном времени. Oracle JRocket также не является виртуальной виртуальной машиной в реальном времени.

Как PERC, так и JamaicaVM, хотя они и от небольших компаний, чем от IBM или Oracle, имеют существенные пользовательские базы. Большинство разработчиков менее знакомы с PERC и JamaicaVM, потому что они используются в основном для встроенных приложений, а не для настольных или серверных. JamaicaVM используется крупными корпорациями, такими как Boeing, Siemens, Zeiss и Lockheed Martin, и он работает на рынке более десяти лет.

Если вы хотите опробовать спецификацию в реальном времени для Java, вы можете загрузить личное дополнение JamaicaVM. Он может использоваться на любой платформе Linux, которая находится в сети. Он доступен из " http://www.aicas.com/jamaica-pe.html" бесплатно.

JamaicaVM поддерживает не только RTSJ, но также имеет полностью упреждающий сборщик мусора. Это означает, что можно писать код реального времени, не прибегая к использованию областей области видимости и бессмертия. JamaicaVM также имеет статический или опережающий (AoT) компилятор, так что производительность в реальном времени не блокируется компилятором JIT. Можно использовать RealtimeThreads, RawMemoryAccess, AsyncEventHandlers и другие функции RTSJ, которые поддерживают программирование в реальном времени.

Ответ 3

Если вы хотите попробовать использовать RTSJ, JamaicaVM предлагается в некоммерческой версии бесплатно. Он доступен для Linux на x86. Вы можете найти ссылку на это на веб-странице aicas: www.aicas.com.

Ответ 4

Несмотря на Azul Zing не является реализацией RTSJ (а скорее реализацией J2SE), они утверждают, что эта JVM способна запускать приложения реального времени из-за бесполезного сборщика мусора C4.

Подробнее о C4:

Ответ 5

В Aonix наиболее часто используется реализация RTSJ. Они имеют широкий спектр Java-решений реального времени от CDC до уровня Java SE.