Evento/Tema: Implementaciones libres de J2SE: estado actual. II Conferencia Internacional de Software Libre (España). Fecha: 17 / 02 / 2006 Abraham Otero.

Slides:



Advertisements
Presentaciones similares
Sun Microsystems desarrolló, en 1991, el lenguaje de programación orientado a objetos que se conoce como Java. La intención de Sun era crear un lenguaje.
Advertisements

SERVICIOS WEB EN.NET INTEGRANTES: ADRIANA BLANCO PEÑA MIRIAM SORIANO HERNANDEZ ALVARO PETROVICH CID CONTRERAS LUIS RAMIREZ PALESTINO.
Características Generales y Entornos de Desarrollo
Framework de.Net Infraestructura sobre la que se reúne todo un conjunto de lenguajes y servicios que simplifican el desarrollo de aplicaciones Entorno.
Lenguaje Unificado de Modelado
Programación Interactiva Introducción a Java
Tecnologías para desarrollo de aplicaciones web. Un caso de uso
INTRODUCCIÓN A JAVA.
CONCEPTES AVANÇATS DE SISTEMES OPERATIUS Departament dArquitectura de Computadors (Seminaris de CASO) Autors MOVING JAVA INTO MOBILE PHONES Josep Pinyol.
FLAN “F- LINKS AND NODES”
Introducción a la Programación
"java del lado del servidor" Servlet y JSP Java Server Pages.
RMI Remote Method Invocation
UNIVERSIDAD LATINA (UNILA) ENCAPSULACION Y HERENCIA
Preguntas tipo test (Tema I)
JAVA FX Es un paquete de software que te permitirá desarrollar aplicaciones web para diferentes plataformas, desde un ordenador ordinario hasta teléfonos.
Jesús Arellano. La plataforma Java Micro Edition, o anteriormente Java 2 Micro Edition(J2ME), es una especificación de un subconjunto de la plataforma.
Juan Antonio Siqueiros Pérez
Introducción al Software
Interacción Persona Ordenador
ESTRUCTURA DE LOS SISTEMAS OPERATIVOS
Java Mayra M. Méndez Anota.
Historia de PHP Programación en Internet II. Historia de PHP Programación en Internet II Universidad de Guadalajara | Centro Universitario de la Costa.
Tecnologías para el desarrollo de aplicaciones Web
TRADUCTOR DE UN PROGRAMA
Programas informáticos. Software Se denomina software al conjunto de programas y procedimientos necesarios para hacer posible la realización de una tarea.
STARUML.
Requerimientos /Metas:
Visualizador de imágenes remotas Alumno: Juan Pablo García Ortíz Director: Vicente Gonzalez Ruiz.
Introducción a la Programación. Lenguaje de Máquina.
Como Desarrollar SW Distribuido de Calidad
Bases de Datos Orientadas a Objetos (BDOO)
J2EE Java Enterprise edition eilin chang Matthew pabon Gabriel vega.
Generación de páginas en forma dinámica utilizando Apache Tomcat®. Expositores: Luis Ehlen Luis Báez Grupo 8 Programación de Sistemas Profesor: Agustín.
Lenguajes de programación Web
TIPOS DE SOFTWARE Se denomina software a un programa, equipamiento lógico o soporte lógico necesario para hacer posible la realización de una tarea con.
Ejecución de un programa escrito en Java Java es un lenguaje que se ejecuta con un intérprete a diferencia de Pascal o C que se compilan para producir.
CERTIFICACION E-LEARNING
Curso de Java La tecnología Java
CONCEPTES AVANÇATS DE SISTEMES OPERATIUS Departament d’Arquitectura de Computadors (Seminaris de CASO) Autors JavaOS para el negocio José Manuel García.
Leonard Camacho. DCom  Tecnología propietaria de Microsoft.  Extiende el modelo COM de Microsoft.  La “D” es debido al uso de su versión DCE/RCP, conocida.
INTRODUCCIÓN A JAVA. Índice ¿Qué es Java? La plataforma Java 2 La Máquina Virtual de Java Características principales ¿Qué ventajas tengo como desarrollador?
Foro Nacional de Certificación y Firma Electrónica Ing. Gonzalo Ron Vera Seguridad en aplicaciones con Tecnología Java.
Web Services bajo J2EE WASP Server for Java de Systinet
SOFTWARE.
FRAMEWORK VS Código fuente
Java ??? Ing. Rolando Steep Quezada Martínez
Programación de Dispositivos Móviles “Conceptos de J2ME” Rogelio Ferreira Escutia.
Programación Java y Desarrollo de Aplicaciones
EI, Profesor Ramón Castro Liceaga UNIVERSIDAD NACIONAL AUTONOMA DE MÉXICO DIPLOMADO DE DESARROLLO DE SISTEMAS CON EL PARADIGMA DE ORIENTACIÓN A OBJETOS.
INTRODUCCIÓN A LA INGENIERÍA DEL SOFTWARE
Unidad ll Equipo 2 Juan Carlos Martínez Ramos
PROGRAMAS INFORMATICOS
Almacenamiento virtual de sitios web “HOSTS VIRTUALES”
Cristian Fonnegra Marin
Metodología de la programación
LE, EI, Profesor Ramón Castro Liceaga SISTEMA DE UNIVERSIDAD ABIERTA Instalación y prueba de Java.
MARIANA PRECIADO VILLA TELECOMUNICACIONES 11º3
Introducción al proceso de verificación y validación.
Compilador Es un programa informático que traduce un programa escrito en un lenguaje de programación a otro lenguaje de programación, generando un programa.
Tema 1 – Introducción a las Redes informáticas
DISEÑO DE COMPONENTES Y DESARROLLO BASADO EN COMPONENTES
 Un dispositivo móvil es aquel aparato pequeño que puede estar conectado a una red sea permanente o intermitente pueden ser:  Teléfono móvil  GPS 
¿ Por que utilizar Java y la POO
Proceso de desarrollo de Software
VI. EVALUACIÓN DE LOS RECURSOS
Integrantes Miguel Betancourt Alexis Tacuri.  Activiti es una plataforma para la formación de flujos de trabajo y procesos empresariales dentro del.
Capítulo 1: El lenguaje de programación Java Material de clase adaptado por: Mauricio Cabezas Algoritmia y Programación.
Conociendo el modelo Cliente-Servidor
Entorno de Trabajo e Introducción a Java Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Versión Práctica 1.
Transcripción de la presentación:

Evento/Tema: Implementaciones libres de J2SE: estado actual. II Conferencia Internacional de Software Libre (España). Fecha: 17 / 02 / 2006 Abraham Otero y Álvaro Sánchez-Mariscal/ javaHispano

2 Agenda La plataforma Java ¿qué es? Implementaciones libres de J2SE: GCJ + Classpath Kaffe IKVM JNode Discusión y conclusiones

3 ¿Qué es la plataforma Java? Un conjunto de especificaciones que definen todas y cada una de las tecnologías de la plataforma. También definen el lenguaje, el formato binario de los bytecodes, la máquina virtual y las librerías estándar (JDK). Hay múltiples implementaciones de las especificaciones. Pero Java no es un software, una implementación concreta.

4 El Java Java Community Process es el organismo que crea y mantiene las especificaciones. Cualquier individuo u organización puede pertenecer a él. Dos comités ejecutivos (CE) se encargan de aprobar las especificaciones: Uno se encarga de J2SE y J2EE y el otro de J2ME. Cualquier miembro del JCP es elegible para los CE. Java Community Process: organización

5 Java Community Process: composición

6 Composición: Java Community Process: organización

7 Un Java Specification Request (JSR) define una tecnología de la plataforma. Consta de: Una especificación: un documento que describe la tecnología, su necesidad, y cómo afectará al resto de la plataforma. Una implementación de referencia (IR). Demuestra que la tecnología es factible. Un test de compatibilidad (TC): batería de pruebas que permiten verificar si una implementación cumple la especificación. Java Specification Request

8 Cualquiera, pertenezca o no al JCP, puede proponer JSR. Puede implementarse un JSR bajo cualquier licencia sin necesidad de pagar royalties. Algunos JSR antiguos no pueden certificarse si se implementan bajo una licencia libre: el JSR debe estar bajo la versión 2.5 o 2.6 del JCP. En lo que a J2SE atañe, sólo se puede certificar Java 1.5. La certificación para una implementación sin ánimo de lucro sería completamente gratuita. Java Specification Request

9 La plataforma Java puede considerarse un conjunto de estándares. Lo que aquí vamos a analizar es el estado actual de las implementaciones libres del “estándar” (especificación) J2SE. Más información en A Otero, "Estándares libres y Java: ¿Es el JPC un organismo que crea estándares libres?. II Congreso javaHispano, páginas Madrid, Java es un conjunto de “estándares”

10 Agenda La plataforma Java ¿qué es? Implementaciones libres de J2SE: GCJ + Classpath Kaffe IKVM JNode Discusión y conclusiones

11 Sólo analizamos las que han conseguido logros considerables. Tomamos como baremo principal de dichos logros las aplicaciones Java que han sido capaces de compilar y/o ejecutar. El realizar un estudio exhaustivo desborda los límites de espacio que tenemos: hay, al menos, unas dos docenas. Implementaciones libres de J2SE

12 Agenda La plataforma Java ¿qué es? Implementaciones libres de J2SE: GCJ + Classpath Kaffe IKVM JNode Discusión y conclusiones

13 Implementación de la FSF que se integra dentro de la colección de compiladores GCC. Permite compilar código Java a código máquina y a bytecode, y bytecode a código máquina. Libgcj proporciona las librerías estándar Java, un colector de basura y un intérprete de bytecode. Libgcj se basa en Classpath, proyecto que también pertenece a la FSF y que es empleado como librerías por todas las implementaciones libres que analizaremos. GCJ + Classpath

14 Classpath puede considerarse: Totalmente compatible con los JDK 1.0 y 1.1 Compatible, a excepción de Swing, con 1.2 y 1.3 Respecto a la compatibilidad con 1.4: Dos paquetes, 54 clases, 85 métodos y 11 constructores; 5 clases, 2 campos 1 constructor mal implementado el Classpath % compatible con 1.4 (esta versión se publicó tras escribir el artículo). GCJ + Classpath

15 Classpath, rama que incluye tipos genéricos (Java 1.5): Faltan 22 paquetes, 118 clases, 15 interfaces, 8 enumeraciones, 57 campos, 396 métodos y 66 constructores. 13 clases, 4 campos, 4 constructores y 3 métodos estan mal implementados. Libgcj se funde regularmente con Classpath. En la actualidad no proporcionan datos concretos de su compatibilidad con las librerías base. GCJ + Classpath

16 GCJX, en desarrollo, incluirá soporte para las nuevas características de Java 1.5. Actualmente es capaz de analizar correctamente código 1.4, y soporta bastantes características de 1.5, aunque con bastantes bugs, y sin soporte completo para tipos genéricos. GCJ ha permitido ejecutar Openoffice.org, Eclipse, Tomcat, Jonas, Ant… GCJ + Classpath

17 Carece de keytool, jarsigner, javap, serialver, native2ascii… Algunas de estas herramientas se están desarrollando en Classpath::Tools Sólo gjdoc (javadoc) tiene archivos liberados. Soporta Applets y JNLP mediante gcjwebplugin … pero no tiene gestor de seguridad ni soporte amplio. No soporta JDWP (Java Debug Wire Protocol) Planeado para el futuro. GCJ + Classpath

18 Agenda La plataforma Java ¿qué es? Implementaciones libres de J2SE: GCJ + Classpath Kaffe IKVM JNode Discusión y conclusiones

19 Una de las primeras implementaciones (1996), llegó a ganar el premio de JavaWorld a la mejor JVM en Pasó un mal momento cuando el fundador del proyecto lo abandonó y, poco más tarde, quebró la compañía que lo respaldaba (Transvirtual Technologies ). Es una máquina virtual basada en intérprete y JIT. Inicialmente tenía sus propias librerías que se han fusionado con Classpath. Kaffe

20 Su principal problema es la carencia casi total de documentación. Posee ciertas herramientas equivalentes a javap, serialver, rmic, rmiregistry, javadoc... Pero no soporta JDWP. Ha permitido ejecutar, entre otros, Eclipse, Tomcat, JBoss, Resin, HSQLDB, Berkeley DB, Prevayler, SwingWT, Ant, Rhino y varios drivers JDBC y proyectos de Apache Jakarta. Kaffe

21 Agenda La plataforma Java ¿qué es? Implementaciones libres de J2SE: GCJ + Classpath Kaffe IKVM JNode Discusión y conclusiones

22 Es una implementación de Java para Microsoft.NET y Mono (Novell y Miguel de Icaza). Licencia tipo Apache. Puede interpretar bytecode dinámicamente o traducirlo a IL (Intermediate Language). No proporciona compilador ni herramientas de apoyo al desarrollo, sólo entorno de ejecución. Soporta completamente Java 1.4, aunque no 1.5 IKVM

23 Se base en Classpath, pero debe añadir cierto código específico para AWT. Por tanto, está detrás de las demás en cuanto compatibilidad de librerías. Este punto no es prioritario para los desarrolladores. Ha ejecutado Eclipse, Jython y JBoss, entre otros. IKVM

24 Agenda La plataforma Java ¿qué es? Implementaciones libres de J2SE: GCJ + Classpath Kaffe IKVM JNode Discusión y conclusiones

25 Java New Operating System Design Effort, sistema operativo con licencia LGPL desarrollado en Java cuyo propósito es permitir ejecutar aplicaciones Java. En la actualidad es funcional y soporta una gran parte del hardware más común para PCs. Sólo proporciona un entorno de ejecución, no compiladores o herramientas de apoyo al desarrollo. JNode

26 Emplea Classpath para obtener las librerías. En lo que destaca es en soporte del lenguaje: completo hasta 1.5: JNode

27 Agenda La plataforma Java ¿qué es? Implementaciones libres de J2SE: GCJ + Classpath Kaffe IKVM JNode Discusión y conclusiones

28 El principal factor limitante de todas las implementaciones es el soporte de Swing. Es imprescindible para obtener un JDK A excepción de este punto ya hay compatibilidad con 1.4. Aunque todavía queda camino para llegar hasta 1.5. Respecto al lenguaje, a nivel de compilador se soporta 1.4 al completo, y de ejecución 1.5 (JNode). Discusión y conclusiones

29 Los principales impedimentos a la hora de ejecutar aplicaciones Java en un entorno libre son: Swing (emplear SWT o AWT). No es imposible hacerlas funcionar: OpenOffice.org 2.0 ¡Dependencias con paquetes com.*!. Por otro lado, esta tarea no es fácil y requiere, habitualmente, bastante trabajo manual (“hacks”). Discusión y conclusiones

30 Tanto Kaffe como GCJ se orientan a conseguir un entorno de ejecución, no un JDK completo. Escasean las herramientas libres de soporte al desarrollo. Si ejecutar aplicaciones en un entorno completamente libre es complejo, desarrollarlas es casi imposible. Discusión y conclusiones

31 Harmony, implementación de Apache, es una gran promesa de futuro. No tiene ningún desarrollo funcional (es muy reciente). No podrán utilizar código de los anteriores por incompatibilidad de licencias. Pero tiene el apoyo de Apache… …y de un número creciente de empresas: IBM e Intel ya han contribuido. Discusión y conclusiones

32 En cualquier caso, hay éxitos innegables: Eclipse, OpenOffice.org, JOnAS, JBoss, Tomcat, Resin, Ant, etc. Estamos muy cerca de tener esa implementación completa. Los principales candidatos son: Kaffe + Classpath (Roxo). CCJ + Classpath. Harmony. Discusión y conclusiones

Muchas gracias por su atención. Contacto: Abraham Otero Quintana