Какая виртуальная машина времени (RTSJ) наиболее предпочтительна?
Кажется, есть только несколько JVM, которые являются реализациями Спецификации реального времени для Java (RTSJ). Sun/Oracle Java Real-Time System стоит более 6000 долларов, а IBM WebSphere в реальном времени - более 7000 долларов, поэтому многие разработчики Java могут никогда не использовать ни одну из них. Похоже, что JRockit от Oracle является бесплатной реализацией Java в реальном времени с предсказуемым, детерминированным поведением, хотя я не уверен, поскольку их документация довольно сложна для маркетингового языка. Другие меньшие виртуальные машины реального времени кажутся рискованными из-за того, что они разрабатываются небольшими организациями и имеют меньшую базу пользователей.
Какие виртуальные машины реального времени являются предпочтительными? Какие из них наиболее используются, заслуживают доверия и любимы разработчиками?
5 ответов
Обновление (март 2012 г.). Похоже, что Oracle незаметно разобрала команду разработчиков JavaRTS.
На этот вопрос нет хорошего ответа. Конечно, критической массы недостаточно, чтобы сказать, что в настоящее время существует самая популярная RT JVM.
Системы обороны США Я знаю об использовании JavaRTS, IBM WebSphere RT и PERC. Авиационные платформы используют aicas JamaicaVM. На сегодняшний день большинство из этих людей не слишком озабочены стоимостью лицензирования. Они обеспокоены гораздо более высокими программными рисками. Я работал с рядом этих программ и обнаружил, что продукты имеют высокое качество, и есть поддержка (иногда экстраординарная) от поставщиков.
- Радар AN/FPS-85 использует JavaRTS, и хотя это относительно низкий счет, это приложение с достаточно высокой критичностью
- Система вооружения Aegis ВМС США использует PERC
- DDG-1000 ВМС США использует IBM WebSphere RT
- JamaicaVM от aicas используется на платформах авионики, но они по понятным причинам разбираются в особенностях
Многие из поставщиков сосредоточились на конкретных клиентах или доменах, и их проекты и инфраструктура поддержки, как правило, соответствуют этому. Если у вас есть конкретный профиль приложения, возможно, мы сможем дать вам лучший ответ.
Высокие затраты на лицензирование, на которые вы ссылаетесь, отражают высокие ожидания пользователей этих продуктов и относительно низкую плотность спроса. Сообщество разработчиков (как оно есть) также является более фрагментарным, поскольку системы с ограничениями в режиме реального времени или критическими для безопасности, как правило, имеют большую чувствительность (защита, авиация, SCADA) или защищенную частную собственность (автомобильная промышленность) или и то, и другое. Одним из отличных форумов для теории и практики Java в реальном времени является ежегодная конференция JTRES, представляющая собой сплоченную группу ученых и технически подкованных поставщиков.
Относится к SO: Только примитивы в Java, которые используют RTSJ.
Это правда, что существует всего несколько виртуальных машин, которые реализуют RTSJ. JavaRT от Oracle, WebSpere от IBM в режиме реального времени и aicas JamaicaVM, но PERC от Atego - не один из них, даже удаленно. PERC имеет некоторые собственные расширения для программирования в реальном времени. JRocket от Oracle также не является виртуальной машиной реального времени.
И PERC, и JamaicaVM, хотя обе они принадлежат более мелким компаниям, чем IBM или Oracle, имеют значительную базу пользователей. Большинство разработчиков менее знакомы с PERC и JamaicaVM, потому что они используются в основном для встроенных приложений, а не для настольных или серверных приложений. JamaicaVM используется крупными корпорациями, такими как Boeing, Siemens, Zeiss и Lockheed Martin, и существует на рынке более десяти лет.
Если вы хотите опробовать спецификацию в реальном времени для Java, вы можете загрузить JamaicaVM Personal Addition. Его можно использовать на любой платформе Linux, которая находится в сети. Он доступен бесплатно по http://www.aicas.com/jamaica-pe.html.
JamaicaVM не только поддерживает RTSJ
, но также он имеет полностью упреждающий сборщик мусора. Это означает, что можно писать код в реальном времени, не прибегая к использованию областей памяти с ограниченной и бессмертной областями памяти. JamaicaVM также имеет статический или опережающий (AoT) компилятор, поэтому JIT-компилятор не ограничивает производительность в реальном времени. Можно еще использовать RealtimeThreads
, RawMemoryAccess
, AsyncEventHandlers
и другие функции RTSJ, которые способствуют программированию в реальном времени.
Если вы хотите попробовать использовать RTSJ, JamaicaVM предлагается в некоммерческой версии бесплатно. Он доступен для Linux на x86. Вы можете найти ссылку на это на веб-странице aicas: www.aicas.com.
Несмотря на то, что Azul Zing не является реализацией RTSJ (а скорее реализацией J2SE), они утверждают, что эта JVM способна запускать приложения в реальном времени благодаря беспрерывному сборщику мусора C4.
Больше на C4:
В Aonix наиболее часто используется реализация RTSJ. У них есть широкий спектр Java-решений в режиме реального времени от CDC до уровня Java SE.