En este tópico, la palabra “modularidad” se refiere a escribir o implementar un programa Java como una serie de módulos funcionales únicos, y trabajar a través de una interface estandarizada. El propósito de categorizar el software en pequeñas piezas de software ayuda a los desarrolladores de software a minimizar el acoplamiento, manejar la complejidad de las aplicaciones y prevenir la complejidad de los sistemas. Sin embargo, surge la pregunta ¿Cómo estos módulos pueden hacer a Java un mejor programa para utilizar?

¿Por que necesitamos modularidad después de todo?

Nuevamente a la misma pregunta, ¿Por qué necesitamos de los módulos en Java 9? La modularidad ayuda a los desarrolladores a trabajar con las pruebas funcionales en forma aislada en forma conjunta al desarrollo paralelo de otros módulos durante el proyecto, lo que hace del ciclo de vida de desarrollo de software más eficiente. Algunas características de la modularidad incluyen:

  • Bajo acoplamiento, que se refiere a unidades autónomas de despliegue
  • Una constante, un ID por módulo y versión
  • Tiempo de compilación estándar, mejoras en el despliegue e información en meta data, que es fácil de identificar por los desarrolladores de software.
  • Un contrato de comunicación con una interface abierta y fácil de entender
  • Una capa de encapsulación, que protege la confidencialidad de la implementación

Por lo tanto, Java, utiliza los módulos para ejecutar las siguientes funciones:

  • Implementar un ciclo de vida transparente y fuerte
  • Trabajar con los módulos en un entorno que soporte el despliegue y re-despliegue sin reinicio del sistema u otras complicaciones.
  • Soportar la modularidad y dependencia en tiempo de compilación
  • Facilidades y equipos para fácil registro y desarrollo de los módulos

Los archivos JAR y la escalabilidad de los módulos

Los archivos JAR y otras opciones de despliegue pueden ser útiles en las opciones actuales de despliegue pero estas no son muy potentes al ser utilizadas con las convenciones de modularidad  con el entorno de ejecución de los JAR. Por lo tanto, solo el nombre del paquete de la clase y el rol en una ruta de clases similares funciona en las convenciones de módulos. Un problema que podemos tener con los JAR es cuando dos o más aplicaciones dependen de una biblioteca de terceros. El entorno sería capaz de acceder a sólo una versión de la biblioteca por medio de instalaciones de clase estándar, lo que conducirá a errores en la aplicación.

Por lo tanto, un sistema de módulos Java bien actualizado y eficaz debería separar las unidades de código con módulos fáciles de entender y poco acoplados, con dependencias claramente categorizadas y aplicadas. Los módulos deben ser actualizados sin dañar otros módulos, y las configuraciones correspondientes a una sub-área deben estar habilitadas, lo que reduciría el tiempo de inicio y la marca del sistema en el entorno.

Soluciones de modularidad adicionales para Java

Pensando en que Java llega con las mejoras mencionadas, mas elementos se han añadido para mejorar el rendimiento y el entorno del tiempo de ejecución.

  • Código fuente: El código fuente puede ser separado en segmentos distintos y en caché, cada uno contiene código específico, con lo cual se logra una mejor gestión de la memoria y la creación de incrementales.
  • Aplicación del tiempo de construcción: Un sistema de construcción apropiado con un único namespace, versión, dependencias y otros.
  • Facilidades en el despliegue: Los entornos de tiempo de ejecución a escala deben ser provistos con soporte de acuerdo a sus especificaciones, siendo uno de ellos un entorno de dispositivo móvil.

Modularidad en Java 9

Java 9 es la última adición al mundo Java, este incorpora algunas de las mejores funcionalidades de modularidad:

  • Código fuente modular: El JRE y el JDK han sido recategorizados en módulos inter operacionales, que mejorará la escalabilidad de tiempo de ejecución incluso en dispositivos más pequeños.
  • Códigos de cache segmentados: Java 9 ha desarrollado un cache de código segmentado que puede categorizar segmentos de código de uso frecuente para futuros  almacenamientos, optimización y ejecución.
  • Implementaciones en la construcción: La propuesta de mejora de Java 201 se realizará mediante la compilación y la imposición de límites en los módulos.
  • Facilidades del despliegue: El proyecto Jigsaw incluye componentes de construcción que soportan los límites de los módulos, restricciones y dependencias durante el despliegue.

Por lo tanto, la modularidad puede mejorar la escalabilidad de Java 9 en más de una forma. Además del mantenimiento general, la modularidad puede resolver problemas y construir una plataforma Java mejorada.


Este artículo se encuentra basado en Java 9: Can modularity build a more scalable Java platform?.

En sus empresas, ¿están considerando utilizar Java 9?

Java 9: ¿Pueden los módulos construir una plataforma Java más escalable?
Si te gusto, comparte ...Email this to someone
email
Share on Facebook
Facebook
Tweet about this on Twitter
Twitter
Share on LinkedIn
Linkedin
Share on Google+
Google+
Etiquetado en:            

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Facebook
A %d blogueros les gusta esto: