Java como Plataforma

Java como Plataforma

En el artículo de los Beneficios de Java hablamos de que es multi-propósito, lo que significa que podemos desarrollar cualquier tipo de aplicación con Java (escritorio, frontend, backend, móbil, SD Card, para embebidos o internet de las cosas). También vimos el diagrama que se muestra a continuación, donde se ejemplifica como está dividida la Plataforma Java.


Ahora hablaremos en detalle de cada uno de los elementos indicados en dicho diagrama.

Lenguaje Java

Aquí está incluida la sintaxis para los conceptos básicos de programación y la Programación Orientada a Objetos en Java. Las principales APIs de Java están incluidas en la Plataforma y las Key APIs.

Plataforma


Java SE

Esta es la plataforma principal de programación Java. Contiene todas las librerías y APIs para el desarrollo y despliegue de aplicaciones de escritorio y para servidor. Es la base para el resto de la plataforma Java. Aquí se incluyen librerías y APIs como Math, Collections, I/O, Date and Time, JDBC, JNI, Swing, Java 2D, AWT, y muchas otras.

Java SE Embedded

Ofrece la misma funcionalidad y soporta las mismas plataformas que Java SE, adicionalmente provee características especificas para dispositivos embebidos. Estas características incluyen:

  • Headless Support: Soporte sin cabeza para embebidos que no cuenten con un monitor de pantalla, teclado o mouse.
  • Footprint JRE pequeño: utilizando compensación adicional y eliminación opcional de archivos, esto resulta en una JRE pequeña (68 MB para toda la JRE, y 29.5 MB para el Footprint JRE pequeño).
  • Optimizaciones de memoria y almacenamiento.

Java ME

En el pasado era una plataforma para desarrollo de aplicaciones móbiles y embebidos como decodificadores. Muchos juegos fueron desarrollados con Java ME antes de los teléfonos inteligentes, pueden profundizar en este tema si lo desean leyendo este artículo de pocketgamer. Java Micro Edition 8 fue reinventado pensando en la creciente industria del Internet de las Cosas (IoT), ofreciendo una plataforma para embebidos y el IoT. Podemos definirlo como una ambiente escalable y flexible especialmente diseñado para desarrollar y desplegar aplicaciones. Se puede utilizar con dispositivos como Raspberry PI o STMicroelectronics STM32F4DISCOVERY (ARM Cortex-M4).

Java ME Embedded

Es un subset del estándard Java ME, pero optimizado para arquitecturas ARM y dirigido a dispositivos con bajo poder y memoría limitada, proveyendo la capacidad de conectar microcontroladores y otros sistemas de recursos limitados. Para ello, la JRE y la Virtual Machine están altamente optimizadas para su uso en embebidos. Este estándard incluye APIs como I/O, Wireless Messaging, Web services, Location y otros.

Java Card

Está diseñado para ejecutarse en dispositivos con recursos extremadamente limitados llamadas tarjetas inteligentes (smart cards), como SIMs (Mobile phone subscriber identity module, por sus siglas en inglés), chips de tarjetas de crédito, entre otros. Java card provee un ambiente seguro que puede utilizarse para agregar autenticación y acceso seguro a sistemas de información que requieren un nivel alto de seguridad. Estas pequeñas aplicaciones que corren en una tarjeta inteligente y dispositivos confiables tienen memoria y capacidades de procesamiento limitados son conocidos como applets.

Key APIs


Java EE

Java Enterprise Edition es differente que Java Standard Edition. Java EE es un conjunto de librerías que se pueden agregar a nuestro proyecto para incrementar sus capacidades. Por ejemplo, desarrollar Web Services (RESTful o SOAP), provee funcionalidad para desarrollar software Java multi-nivel y tolerante a fallas. Es un estándard de la industria para desarrollar aplicaciones Java server-side que sean portables, robustas, escalables y seguras. Un ejemplo del poder de Java EE es el caso de Twitter, tuvo que migrar de Ruby a Java en el 2012 para poder manejar los altos niveles de concurrencia a los que estaban llegando.

Ahora que Oracle le liberado Java EE a Eclipse Foundation este ha pasado a llamarse Jakarta EE.

Java FX

Es una nueva plataforma gráfica que fue lanzada en el 2011 con la intención de reemplazar Swing y crear unas aplicaciones GUI (Graphic User Interface, por sus siglas en inglés) efectivamente con contenido más rico, que incluyeran audio, video, graficos y animaciones. Oracle lo descibe como:

un conjunto de paquetes de gráficos y medios que permite a los desarrolladores diseñar, crear, probar, depurar e implementar aplicaciones de cliente enriquecidas que operan de manera consistente en diversas plataformas.

Un excelente ejemplo del poder de JavaFX es el producto software comercial Deep Space Trajectory Explorer (DTSE) de a.i Solutions, donde crean gráficos en 3D para describir trayectorias interplanetarias, este software es utilizado por empresas como la NASA.

Tags
Java SE 8
Comparte este artículo