viernes
abr302004
MVM, la característica que revolucionará el Java
viernes, abril 30, 2004 at 8:05AM
¡ WAO ! La verdad es que los ingenieros de la Sun no descansan en innovar su herramienta de programación Java, el reconocido lenguaje de programación de redes, tal como hace unos dias nos decía Martín al hacer una breve referencia a esta nueva característica del Java que, por lo que se detalla, dará un salto significativo en la evolución del Java.
Esta nueva característica llamada MVM (Mutitasking Virtual Machine), permitirá alojar varias aplicaciones Java un mismo Virtual Machine, lo que traducirá en incrementos en el rendimiento de las aplicaciones realmente impresionantes.
Pero en lugar de seguirles hablando de esta excitante característica mejor les presento una extracción de la entrevista a Grzegorz Czajkowski ingeniero de la Sun Laboratories y líder del proyecto ?Barcelona? que dio nacimiento al MVM.
Traducción de una parte de la entrevista:
P: ¿Qué es MVM ?
R: MVM son las siglas de ?Multitasking Virtual Machine? (Máquina Virtual Multitareas). Este es un prototipo de investigación que actualmente está siendo desarrollado en los laboratorios de la Sun. El objetivo es crear un Java Virtual Machine capaz de albergar múltiples tareas, lo cual incrementa la escalabilidad de la plataforma Java, y provee un completo entorno operativo para programas en Java.
P: ¿ Qué significa ?un completo entorno (sistema) operativo para programas en Java? ?
R: Un número de tareas de programación, muchas de ellas relacionadas a la programación de sistemas, que (en la actualidad) no pueden ser realizadas utilizando las librerias Java estándar. Asi por ejemplo para lograr la gestión de recursos (de hardware) actualmente es necesario utilizar código nativo ó lenguajes para ?scripting?. Nosotros estamos trabajando para solucionar esta situación, proveyendo abstracciones e interfaces que actualmente no se encuentran en la plataforma Java.
P: ¿ Cómo miden ustedes la escalabilidad ?
R: Nosotros utilizamos tres patrones para medir la escalabilidad: Tiempo de arranque, tamaño de la memoria, y rendimiento ? (es decir) que tan rápido la aplicación se ejecuta.
P: ¿ Cómo trabaja el MVM ?
R: En la actualidad, si usted quiere correr varias aplicaciones en la misma computadora, usted necesita iniciar varios JVMs, uno para cada aplicación. Las aplicaciones podrían correr código similar, pero este no es compartido. El próximo lanzamiento del J2SE 1.5 dará algún soporte a la distribución de procesos-cruzados. No obstante, el diseño del MVM abre mayores oportunidades para la distribución (de recursos), lo que en consecuencia conduce a una mayor escalabilidad.
Con MVM, un solo JVM tendrá la habilidad de albergar varias aplicaciones, pero cada aplicación no se enterará de la presencia de sus vecinos. Esto es similar a un sistema operativo que alberga varios procesos aislados. De la misma forma, MVM provee la habilidad para albergar múltiples aplicaciones Java en una máquina de tal manera que ninguna de ellas pueda acceder los datos de la otra.
Bajo esta premisa básica, nosotros fuimos a través del runtime JVM e hicimos la misma pregunta alrededor de cada componente, ?¿ Puede este compartirse ?? Si este podía compartirse, entonces lo hicimos. Si no podía compartirse, entonces nosotros replicábamos o modificábamos algo para lograr una máxima distribución.
P: ¿ Qué resultados han obtenido con el prototipo MVM ?
R: Nosotros hemos visto impresionantes reducciones en el tiempo de arranque (de la aplicación) que va de un 60 a un 90 porciento !!, dependiendo del tipo de aplicación. Así, por ejemplo, si usted tenía que esperar seis segundos para que alguna (aplicación) subiera en un entorno no-compartido, con MVM solo tendría que esperar dos segundos.
En términos de tamaño de memoria, nosotros hemos logrado reducciones que van de un tercio hasta la mitad !! para algunas aplicaciones. Si usted anteriormente tenía varios recursos de servidores de aplicaciones utilizando tradicionales JVMs que consumían 200 MB de memoria, con MVM usted solo necesitaría 100 MB de espacio.
La ganancia en rendimiento proviene de dos fuentes. Primero, debido a que MVM comparte los datos, cuando una aplicación carga una clase, la otra puede utilizar esa clase sin tener que pasar por el proceso de cargar desde memoria, categorizar y verificar de nuevo el archivo (que contiene la clase). Y segundo, debido a que nosotros ponemos varios componentes Java en el mismo proceso, podemos evitar el proceso de conmutación cuando ellos se comunican. Por ejemplo, MVM habilita la colocación de una base de datos y servidor de aplicaciones puramente en Java, en un solo proceso. Esto solo representa un incremento de un 11 por ciento en rendimiento, y el tiempo de respuesta a una solicitud (por ejemplo http request) es reducida en un 36 porciento.
..............................
Más información acerca del proyecto Barcelona, de donde proviene el MVM, puede encontrarse en:
http://research.sun.com/projects/barcelona.
Esta nueva característica llamada MVM (Mutitasking Virtual Machine), permitirá alojar varias aplicaciones Java un mismo Virtual Machine, lo que traducirá en incrementos en el rendimiento de las aplicaciones realmente impresionantes.
Pero en lugar de seguirles hablando de esta excitante característica mejor les presento una extracción de la entrevista a Grzegorz Czajkowski ingeniero de la Sun Laboratories y líder del proyecto ?Barcelona? que dio nacimiento al MVM.
Traducción de una parte de la entrevista:
P: ¿Qué es MVM ?
R: MVM son las siglas de ?Multitasking Virtual Machine? (Máquina Virtual Multitareas). Este es un prototipo de investigación que actualmente está siendo desarrollado en los laboratorios de la Sun. El objetivo es crear un Java Virtual Machine capaz de albergar múltiples tareas, lo cual incrementa la escalabilidad de la plataforma Java, y provee un completo entorno operativo para programas en Java.
P: ¿ Qué significa ?un completo entorno (sistema) operativo para programas en Java? ?
R: Un número de tareas de programación, muchas de ellas relacionadas a la programación de sistemas, que (en la actualidad) no pueden ser realizadas utilizando las librerias Java estándar. Asi por ejemplo para lograr la gestión de recursos (de hardware) actualmente es necesario utilizar código nativo ó lenguajes para ?scripting?. Nosotros estamos trabajando para solucionar esta situación, proveyendo abstracciones e interfaces que actualmente no se encuentran en la plataforma Java.
P: ¿ Cómo miden ustedes la escalabilidad ?
R: Nosotros utilizamos tres patrones para medir la escalabilidad: Tiempo de arranque, tamaño de la memoria, y rendimiento ? (es decir) que tan rápido la aplicación se ejecuta.
P: ¿ Cómo trabaja el MVM ?
R: En la actualidad, si usted quiere correr varias aplicaciones en la misma computadora, usted necesita iniciar varios JVMs, uno para cada aplicación. Las aplicaciones podrían correr código similar, pero este no es compartido. El próximo lanzamiento del J2SE 1.5 dará algún soporte a la distribución de procesos-cruzados. No obstante, el diseño del MVM abre mayores oportunidades para la distribución (de recursos), lo que en consecuencia conduce a una mayor escalabilidad.
Con MVM, un solo JVM tendrá la habilidad de albergar varias aplicaciones, pero cada aplicación no se enterará de la presencia de sus vecinos. Esto es similar a un sistema operativo que alberga varios procesos aislados. De la misma forma, MVM provee la habilidad para albergar múltiples aplicaciones Java en una máquina de tal manera que ninguna de ellas pueda acceder los datos de la otra.
Bajo esta premisa básica, nosotros fuimos a través del runtime JVM e hicimos la misma pregunta alrededor de cada componente, ?¿ Puede este compartirse ?? Si este podía compartirse, entonces lo hicimos. Si no podía compartirse, entonces nosotros replicábamos o modificábamos algo para lograr una máxima distribución.
P: ¿ Qué resultados han obtenido con el prototipo MVM ?
R: Nosotros hemos visto impresionantes reducciones en el tiempo de arranque (de la aplicación) que va de un 60 a un 90 porciento !!, dependiendo del tipo de aplicación. Así, por ejemplo, si usted tenía que esperar seis segundos para que alguna (aplicación) subiera en un entorno no-compartido, con MVM solo tendría que esperar dos segundos.
En términos de tamaño de memoria, nosotros hemos logrado reducciones que van de un tercio hasta la mitad !! para algunas aplicaciones. Si usted anteriormente tenía varios recursos de servidores de aplicaciones utilizando tradicionales JVMs que consumían 200 MB de memoria, con MVM usted solo necesitaría 100 MB de espacio.
La ganancia en rendimiento proviene de dos fuentes. Primero, debido a que MVM comparte los datos, cuando una aplicación carga una clase, la otra puede utilizar esa clase sin tener que pasar por el proceso de cargar desde memoria, categorizar y verificar de nuevo el archivo (que contiene la clase). Y segundo, debido a que nosotros ponemos varios componentes Java en el mismo proceso, podemos evitar el proceso de conmutación cuando ellos se comunican. Por ejemplo, MVM habilita la colocación de una base de datos y servidor de aplicaciones puramente en Java, en un solo proceso. Esto solo representa un incremento de un 11 por ciento en rendimiento, y el tiempo de respuesta a una solicitud (por ejemplo http request) es reducida en un 36 porciento.
..............................
Más información acerca del proyecto Barcelona, de donde proviene el MVM, puede encontrarse en:
http://research.sun.com/projects/barcelona.
in
j2se
j2se 
Reader Comments