2010-10-29 14 views
19

Parece haber solo un puñado de JVM que son implementaciones del Real-Time Specification for Java (RTSJ). El Sistema Sun/Oracle Java Real-Time tiene más de $ 6000 y el WebSphere en tiempo real de IBM supera los $ 7000, por lo que muchos desarrolladores Java nunca tendrán la oportunidad de utilizar ninguno de ellos. JRockit de Oracle parece ser una implementación gratuita en tiempo real de Java con un comportamiento predecible y determinista, aunque no estoy seguro, ya que su documentación es bastante pesada en el lenguaje de marketing. Otras JVM en tiempo real más pequeñas parecen arriesgadas por el hecho de que las organizaciones pequeñas las desarrollan y tienen bases de usuarios más pequeñas.¿Cuál es la JVM en tiempo real (RTSJ) más preferida?

¿Qué JVM en tiempo real son las preferidas? ¿Cuáles son los más utilizados, confiables y queridos por los desarrolladores?

+0

JVM de Sun tiene una versión de prueba, también se puede aplicar para uso académico, si usted está haciendo algún proyecto de investigación. JRockit no parece un sistema RTSJ en absoluto, no lo implementa. Probablemente dará algunas características de tiempo real suave, como el recolector de basura determinístico, pero parece que eso es todo lo que tiene. ¿Cuáles son sus requisitos de latencia? Si no es inferior a ~ 200 microsegundos, se puede lograr incluso sin JRT. – Stas

+1

En realidad, al usar OpenJDK en Ubuntu, he medido una gran cantidad de inestabilidad en las encuestas. Con tiempos de envío/recepción de ida y vuelta de ~ 17 ms, existe la misma cantidad de fluctuación en un número relativamente pequeño de encuestas. Obviamente, el hardware tiene un gran juego en jitter, y mis requisitos van a ser muy diferentes a los requisitos de otras personas, por lo que me gustaría alejarme de ellos y obtener respuestas generales con respecto a las JVM en tiempo real. Espero aprender y proporcionar información sobre el desarrollo de Java en tiempo real al encontrar primero una JVM determinista confiable y predecible. – Matt

+1

El mismo sondeo realizado en C puro produjo solo ~ 10% de inestabilidad. – Matt

Respuesta

28

Actualización (marzo de 2012): Oracle parece haber desarmado silenciosamente a su equipo de desarrollo de JavaRTS.

No hay una buena respuesta a esta pregunta. Ciertamente, no hay suficiente masa crítica para decir que existe una RT JVM más popular actualmente.

Sistemas de defensa de EE. UU. Conozco el uso JavaRTS, WebSphere RT de IBM y PERC. Las plataformas de aviación usan aicas JamaicaVM. La mayoría de esas personas no han estado demasiado preocupadas por los costos de licencia, hasta la fecha. Les preocupan los riesgos mucho más altos del programa. He trabajado con varios de estos programas, y considero que los productos son de alta calidad y hay soporte (a veces extraordinario) por parte de los proveedores.

Muchos de los vendedores se han centrado en clientes o dominios específicos, y sus diseños La infraestructura de soporte tiende a coincidir con eso. Si tiene un perfil de aplicación específico en mente, tal vez podamos darle una mejor respuesta.

Los altos costos de licencia que usted cita reflejan las altas expectativas que tienen los usuarios de estos productos y la densidad relativamente baja de la demanda. La comunidad de desarrolladores (tal como es) también es más fragmentaria porque los sistemas con restricciones en tiempo real o críticas a la seguridad suelen ser de mayor sensibilidad (defensa, aviación, SCADA) o valor de propiedad protegido (automotriz) o ambos. Un excelente foro para la teoría y la práctica de Java en tiempo real es el anual JTRES conference, que es un grupo muy unido de académicos y proveedores expertos en tecnología.

Relacionados en SO: Primitives-only in Java, who uses RTSJ.

0

Aonix es el que más ha utilizado la implementación de RTSJ. Tienen una amplia gama de soluciones java en tiempo real desde CDC hasta Java SE level.

+0

¿Por qué son los más utilizados en comparación con Java RTS, IBM, etc. de Sun? ¿Es porque el Anoix Perc Raven de Atego "satisface los más altos niveles de criticidad, incluso el Nivel A como se define en las directrices de seguridad del software DO-178B requeridas por la FAA para sistemas aerotransportados?" ¿Son menos costosos? ¿Son los más probados? – Matt

+0

¿Tiene alguna evidencia cuantificable de que Aonix (ahora Atego) es el más utilizado? – andersoj

+1

También tenga en cuenta que no todas las PERC JVM son completamente compatibles con RTSJ. Esto puede ser irrelevante para muchos usuarios, pero la gente de Atego ha hecho lo suyo para que sus clientes obtengan lo que necesitan, y se desvía del RTSJ cuando se pone en el camino. Estoy de acuerdo con eso, y los diversos clientes de ellos con los que he trabajado no tienen ningún problema. Creo que es justo decir que el CTO de Atego (y un líder técnico en RT Java) tiene algunas preocupaciones importantes con las especificaciones de RTSJ. – andersoj

7

Es verdad, que hay pocas máquinas virtuales que implementan el RTSJ. JavaRT de Oracle, WebSpere en tiempo real de IBM y aicas JamaicaVM, pero PERC de Atego no es uno de ellos, ni remotamente. PERC tiene algunas extensiones propietarias para programación en tiempo real. JRocket de Oracle tampoco es una VM en tiempo real.

Tanto PERC como JamaicaVM, aunque son de compañías más pequeñas que IBM u Oracle, tienen bases de usuarios sustanciales. La mayoría de los desarrolladores están menos familiarizados con PERC y JamaicaVM porque se utilizan principalmente para aplicaciones integradas, no de escritorio o de servidor. JamaicaVM está siendo utilizado por grandes corporaciones como Boeing, Siemens, Zeiss y Lockheed Martin, y ha estado en el mercado por más de diez años.

Si desea probar la especificación en tiempo real para Java, puede descargar la adición personal de JamaicaVM. Se puede usar en cualquier plataforma Linux que esté en la red. Está disponible de "http://www.aicas.com/jamaica-pe.html" de forma gratuita.

JamaicaVM no solo es compatible con el RTSJ, sino que también tiene un recolector de basura totalmente preventivo. Esto significa que uno puede escribir código en tiempo real sin tener que recurrir al uso de áreas de memoria con alcance e inmortal. JamaicaVM también tiene un compilador estático o por adelantado (AoT), por lo que el rendimiento en tiempo real no está inhibido por un compilador JIT. Todavía se puede usar RealtimeThreads, RawMemoryAccess, AsyncEventHandlers y otras características del RTSJ que promueven la programación en tiempo real.

3

Si desea probar el uso del RTSJ, JamaicaVM se ofrece en una versión no comercial de forma gratuita. Está disponible para Linux en x86. Puede encontrar una referencia a esto en la página web de Aicas: www.aicas.com.

Cuestiones relacionadas