1. Instituto Tecnológico de la Laguna
Ingeniería en Sistemas Computacionales
TOPICOS AVANZADOS DE PROGRAMACIÓN
SEMESTRE: Ene-Jun / 2013 GRUPO: “B” 17 – 18 Hrs
UNIDAD: 1 TAREA: 1
Ediciones de Java
ALUMNO:
11130515 Iván Alfonso García Ramírez
PROFESOR:
Ing. Luis Fernando Gil Vázquez
Torreón, Coah. a 3 de Febrero de 2013
2. ITL Tópicos Avanzados de Programación Ene-Jun/2013
Resumen
La presente investigación describe las diferentes colecciones de API’s y
especificaciones de la plataforma Java, para crear aplicaciones en diversos
dispositivos y entornos.
Existen Java SE (ó J2SE), que es la especificación utilizada para crear aplicaciones
de escritorio; Java ME, usada para crear aplicaciones para dispositivos móviles
(celulares, PDA’s, etc.); JavaFX, que se presenta como un competidor directo para
Flash y Silverlight para el desarrollo de RIA’s (Aplicaciones Enriquecidas para
Internet); Java Embedded, para crear aplicaciones en dispositivos embebidos; Java DB,
para acceso a datos; Java EE, para creación de aplicaciones empresiariales altamente
escalables en entornos web.
Introducción
¿Qué es Java?
Java es un lenguaje de programación y la primera plataforma informática creada por Sun
Microsystems en 1995. Es la tecnología subyacente que permite el uso de programas
punteros, como herramientas, juegos y aplicaciones de negocios. Java se ejecuta en más
de 850 millones de ordenadores personales de todo el mundo y en miles de millones de
dispositivos, como dispositivos móviles y aparatos de televisión. Java, como lenguaje,
soporta la Programación Orientada a Objetos, es multiplataforma, y es software libre,
¿Por qué conocer las diferentes ediciones de Java?
Como desarrolladores de software, estamos obligados a conocer todas las posibilidades
que una plataforma de desarrollo nos provee, sus fortalezas y ventajas sobre el uso de
otras herramientas.
Java SE
Java Platform, Standard Edition o Java SE (conocido anteriormente hasta la versión 5.0
como Plataforma Java 2, Standard Edition o J2SE), es una colección de APIs del
lenguaje de programación Java útiles para muchos programas de la Plataforma Java.
Orientado al desarrollo de aplicaciones cliente / servidor. No incluye soporte a
tecnologías para internet. Es la base para las otras distribuciones Java
Paquetes de propósito especial
java.applet: Creado para soportar la creación de applet Java, el paquete
java.applet permite a las aplicaciones ser descargadas sobre una red y
ejecutarse dentro de una sandbox. Las restricciones de seguridad son impuestas
fácilmente en la sandbox. Un desarrollador, por ejemplo, puede aplicar una firma
digital a un applet, en consecuencia etiquetándola como segura. Haciéndolo
permite al usuario conceder permiso al applet para realizar operaciones
restringidas (tales como acceder al disco duro local), y elimina alguna o todas
las restricciones de la sandbox. Los certificados digitales son emitidos por
agencias como Thawte o Entrust.
java.beans: Incluidos en el paquete java.beans hay varias clases para
desarrollar y manipular beans, componentes reutilizables definidos por la
arquitectura JavaBeans. La arquitectura suministra mecanismos para manipular
propiedades de componentes y lanzar eventos cuando esas propiedades cambian. La
mayoría de las APIs en java.beans están pensadas para su uso en herramientas de
edición de beans, en la cual los beans puedan combinarse, personalizarse y
manipularse. Un tipo de editor bean es el diseñador GUI en un entorno de
desarrollo integrado (IDE).
java.awt: La Abstract Window Toolkit contiene rutinas para soportar operaciones
básicas GUI y utiliza ventanas básicas desde el sistema nativo subyacente.
Muchas implementaciones independientes de la API Java implementan todo excepto
AWT, el cual no es usado por la mayoría de las aplicaciones de lado de servidor.
Este paquete también contiene la API de gráficos Java 2D.
java.rmi: El paquete java.rmi suministra invocación a métodos remotos Java para
soportar llamadas a procedimientos remotos entre dos aplicaciones Java que se
ejecutan en diferentes JVM. Esto es esencial para tener en cuenta en la
certificación
java.security: Soporte para seguridad, incluyendo el algoritmo de resumen de
mensaje, está incluido en el paquete java.security.
java.sql: Una implementación de la API JDBC (usada para acceder a bases de datos
SQL) se agrupa en el paquete java.sql.
Pag. 2
3. ITL Tópicos Avanzados de Programación Ene-Jun/2013
javax.rmi: suministra el soporte para la comunicación remota entre aplicaciones,
usando el protocolo RMI sobre IIOP. Este protocolo combina características de
RMI y CORBA.
org.omg.CORBA: Suministra el soporte para comunicación remota entre aplicaciones
usando general inter ORB protocol y soporta otras características de common
object request broker architecture. Igual que RMI y RMI-IIOP, este paquete es
para llamar métodos remotos de objetos en otras máquinas virtuales (normalmente
por la red). De todas las posibilidades de comunicación CORBA es la más portable
entre varios lenguajes. Sin embargo es también un poco difícil de comprender.
javax.swing: Swing es una colección de rutinas que se construyen sobre java.awt
para suministrar un toolkit de widgets independiente de plataforma. Swing usa
las rutinas de dibujado 2D para renderizar los componentes de interfaz de
usuario en lugar de confiar en el soporte GUI nativo subyacente del Sistema
operativo. Swing es un sistema muy rico por sí mismo, soportando pluggable looks
and feels (PLAFs) para que los controles(widgets) en la GUI puedan imitar a
aquellos del sistema nativo subyacente. Los patrones de diseño impregnan el
sistema, especialmente una modificación del patrón modelo-vista-controlador, el
cual afloja el acoplamiento entre función y apariencia. Una inconsistencia es
que (para J2SE 1.3) las fuentes son dibujadas por el sistema nativo subyacente,
limitando la portabilidad de texto. Mejoras, tales como usar fuentes de mapas de
bits, existen. En general, las layouts(disposiciones de elementos) se usan y
mantienen los elementos dentro de una GUI consistente a través de distintas
plataformas.
javax.swing.text.html.parser: Suministra el parser de HTML tolerante a errores
que se usa para escribir varios navegadores web y web bots.
Java EE
La plataforma Java Enterprise Edition (Java EE) son un conjunto de especificaciones
que facilitan el desarrollo y despliegue de aplicaciones empresariales multi-capa.
Java EE ofrece un conjunto de especificaciones y técnicas que proporcionan soluciones
completas, seguras, estables y escalables para el desarrollo, despliegue y gestión de
aplicaciones de múltiples niveles de funcionalidad basadas en servidores. Se reduce el
costo y complejidad de desarrollo, lo cual resulta en servicios que se pueden
desplegar y extender fácilmente.
Java ME
La plataforma Java Micro Edition (Java ME), o anteriormente Java 2 Micro Edition
(J2ME), es una especificación de un subconjunto de la plataforma Java orientada a
proveer una colección certificada de APIs de desarrollo de software para dispositivos
con recursos restringidos. Está orientado a productos de consumo como PDAs, teléfonos
móviles o electrodomésticos.
Java ME se ha convertido en una buena opción para crear juegos en teléfonos móviles
debido a que se puede emular en un PC durante la fase de desarrollo y luego subirlos
fácilmente al teléfono. Al utilizar tecnologías Java el desarrollo de aplicaciones o
videojuegos con estas APIs resulta bastante económico de portar a otros dispositivos.
La tecnología Java ME se creó originalmente para paliar las limitaciones asociadas a
la creación de aplicaciones para pequeños dispositivos. Con este fin Oracle ha
definido los fundamentos de la tecnología Java ME para adaptarse a entornos limitados
y hacer posible la creación de aplicaciones Java que se ejecuten en pequeños
dispositivos con memoria, visualización y potencia limitadas.
Java DB
Java DB es una distribución soportada por Oracle de la Base de Datos de código abierto
Apache Derby. Soporta el estándar ANSI/ISO SQL a través de JDBC y las API’s de Java
EE. Java DB está incluida en el JDK.
Características
Funcionalidad completa y fácil de usar
Transacciones protegidas y recuperables a fallos
Insertable en aplicaciones
Java puro y portable a través de CDC FP 1.1, Java 5, Java 6, Java 7 (todos los
dispositivos, desde tablets hasta mainframes)
Incluido en el JDK
Pag. 3
4. ITL Tópicos Avanzados de Programación Ene-Jun/2013
Compacto (2.6 MB)
Java TV
Java TV es un famework basado en Java orientado a su uso en decodificadores de TV,
apoyándose en componentes llamados Xlets. Actualmente es usado solo en la
Configuración del Dispositivo Conectado, específicamente para el desarrollo de
aplicaciones para iTV (Televisiones Inteligentes.
La API incluye las clases de Xlet en el paquete javax.tv.xlet. Otros paquetes que la
API pública incluye son:
javax.tv.graphics: prove un lienzo simple de renderizado.
javax.tv.loactor: provee un localizador in la forma de una URL para servicios y
multimedia.
javax.tv.service: define un mecanismo para servicios de información, bases de
datos y API’s que representan los elementos del SI, como los canales de TV y la
multimedia disponible para reproducir.
JavaFX
JavaFX es una familia de productos y tecnologías de Sun Microsystems, adquirida por
Oracle Corporation, para la creación de Rich Internet Applications (RIAs), esto es,
aplicaciones web que tienen las características y capacidades de aplicaciones de
escritorio, incluyendo aplicaciones multimedia interactivas. Las tecnologías incluidas
bajo la denominación JavaFX son JavaFX Script y JavaFX Mobile, aunque hay más
productos JavaFX planeados.
Las aplicaciones JavaFX pueden ser ejecutadas en una amplia variedad de dispositivos.
En su versión (JavaFX 1.3, abril 2010) permite crear aplicaciones de escritorio, para
celulares, la Web, TV, consolas de videojuegos, reproductores Blu-ray, entre otras
plataformas planeadas. En octubre de 2011 fue lanzada la versión 2.0. Para el
desarrollo de aplicaciones JavaFX un lenguaje declarativo, tipado llamado JavaFX
Script, además puede integrarse código Java en programas JavaFX. JavaFX es compilado a
código Java, por lo que las aplicaciones JavaFX pueden ser ejecutadas en computadores
con la máquina virtual de Java instalada (JRE), o celulares corriendo Java ME.
Java Card
Dentro de la categoría de SmartCards con microprocesador se encuentran las llamadas
JavaCards o Java SmartCards. Una JavaCard es una SmartCard capaz de ejecutar programas
desarrollados en Java. Originalmente, las aplicaciones para SmartCards eran escritas
en lenguajes específicos de los proveedores de SmartCards (normalmente el ensamblador
del microprocesador utilizado, o eventualmente C). El lema "escribe una vez, corre en
cualquier lado" hizo que Java fuese una solución a este problema. La primera JavaCard
en salir al mercado fue producida por Schlumberger, aún antes de que Sun fijara el
standard.
En pocas palabras, una JavaCard es una tarjeta con microprocesador que puede ejecutar
programas (llamados applets) escritos en un subset del lenguaje Java.
Los componentes principales dentro de una JavaCard son el microprocesador y las
memorias. La arquitectura básica de una JavaCard consiste de Applets, JavaCard API,
JavaCard Virtual Machine (JCVM) [SUN2] / JavaCard Runtime Environment (JCRE) [SUN1], y
el sistema operativo nativo de la tarjeta.
La máquina virtual corre sobre el sistema operativo de la tarjeta, y se puede ver como
una abstracción del mismo. Sobre la máquina virtual se encuentra el JavaCard
Framework, que es un conjunto de clases necesarias para el funcionamiento del JCRE y
JavaCard API, así como clases utilitarias comerciales o extensiones propietarias del
fabricante de la tarjeta. Finalmente, haciendo uso de este ambiente se encuentran los
applets.
Java Embedded
Java para dispositivos embebidos (Java Embedded) es integrado generalmente por los
fabricantes de dispositivos. No está disponible para descarga o instalación por
clientes, Debe verificar con el fabricante de su dispositivo sobre la disponibilidad
de esta tecnología en su dispositivo.
Dispositivos embebidos, o sistemas embebidos, son sistemas computacionales
especializados que constituyen componentes de enormes sistemas electromecánicos con
los que interactúan. Pueden variar desde los chips en su tarjeta de identificación de
la oficina o tarjeta de crédito, hasta componentes de sistemas de servidor de enormes
dimensiones. Muchos de los dispositivos conectados y sofisticados que facilitan
Pag. 4
5. ITL Tópicos Avanzados de Programación Ene-Jun/2013
nuestras actividades diarias son “embebidos”. Algunos ejemplos comunes incluyen
tarjetas SIM, teléfonos VOIP, reproductores de Blu-Ray, televisiones, etc. Java
Embedded de Oracle provee la plafarma de desarrollo y tiempo de ejecución para
billones de estos dispositivos.
Conclusiones
La plataforma Java permite desarrollar cualquier tipo de aplicación para prácticamente
cualquier tipo de dispositivo. No es ni un lenguaje ni plataforma amarrado a un
sistema operativo, es además de código abierto y dispone de una gran comunidad de
desarrolladores.
Conocer esta plataforma brindará un enorme campo laboral, y una gran ventaja en el
mundo del desarrollo de software.
Referencias
“Java SE”, Wikipedia.org, Página Web
http://es.wikipedia.org/wiki/Java_SE
Fecha Consulta: 02 de Febrero de 2013
“Versiones y distribuciones de Java: J2SE, J2EE, J2ME. ¿Java 6, Java 7, cuál es mejor
usar? (CU00606B)”, AprendeAProgramar.com, Página Web
Fecha Consulta: 02 de Febrero de 2013
“Java Enterprise Edition”, Jatun S.R.L. Innovación & Desarrollo, Página Web
http://www.jatun.com/web/company/training/javaee5
Fecha Consulta: 02 de Febrero de 2013
“Java Micro Edition”, Wikipedia.org, Página Web
http://es.wikipedia.org/wiki/Java_Micro_Edition
Fecha Consulta: 02 de Febrero de 2013
“¿Qué es J2ME o Java ME?”, Oracle Inc., Página Web
http://www.java.com/es/download/faq/whatis_j2me.xml
Fecha Consulta: 02 de Febrero de 2013
“Java DB”, Oracle, Inc., Página Web
http://www.oracle.com/technetwork/java/javadb/overview/index.html
Fecha Consulta: 02 de Febrero de 2013
“Java TV”, Wikipedia.org, Página Web
http://en.wikipedia.org/wiki/Java_TV
Fecha Consulta: 02 de Febrero de 2013
“JavaFX”, Wikipedia.org, Página Web
http://es.wikipedia.org/wiki/JavaFX
Fecha Consulta: 02 de Febrero de 2013
“Descarga e Instalación de JavaFX”, Oracle Inc., Página Web
http://java.com/es/javafx/javafx_install.jsp
Fecha Consulta: 02 de Febrero de 2013
“Programación de Java Cards”,Daniel Perovich, Leonardo Rodríguez, Martín Varela,
Documento PDF en Web
http://www.fing.edu.uy/inco/grupos/mf/Proyectos/Grado/JavaCard/progjavacard.pdf
Fecha Consulta: 02 de Febrero de 2013
“How do I get Java for Embedded Devices?“, Oracle Inc., Página Web
http://java.com/en/download/faq/java_embedded.xml
Fecha Consulta: 02 de Febrero de 2013
Pag. 5