[vc_row][vc_column][vc_column_text]En este artículo, presentamos el sistema de módulos de la plataforma Java 9 ( Java 9 Platform Module System), la tecnología de software más importante de Java desde la concepción. Los Módulos, ayudan a los desarrolladores de todos los niveles a ser más productivos en la construcción, mantenimiento y evolución del software, especialmente en grandes sistemas.[/vc_column_text][/vc_column][/vc_row][vc_row][vc_column][vc_single_image image=»1365″ img_size=»full» alignment=»center»][/vc_column][/vc_row][vc_row][vc_column][vc_column_text]En la figura, por ejemplo, se observa que el modulo A en forma explícita indica que requiere del módulo B, así mismo se indica que el módulo B, sólo exporta el paquete Z. Esto es parte de la modularidad que llega con Java 9.
¿Que es un modulo?
Los Módulos agregan un nivel más a la agrupación con relación a los paquetes. La llave es el módulo, el cual tiene un nombre único, y es un grupo de paquetes relativos y re-utilizables, así como recursos (archivos XML e imágenes), el módulo descriptor específica:
- Nombre del módulo
- Las dependencias del módulo
- Los paquetes que son disponibles para otros módulos (todos los demás paquetes dentro del módulo son implícitamente no disponibles para otros módulos)
- Los servicios que ofrece
- Los servicios que consume
- Con que otros módulos permite la reflexión
El trabajar con módulos en la plataforma Java SE ha sido un reto de implementar, y esto ha tomado muchos años. JSR 277: Java Module System fue propuesto inicialmente en 2005 para Java 7. Esto fue luego reemplazado por JSR 376: jAVA Platform Module System y dirigido a Java 8. La plataforma Java SE es ahora modularizado en Java 9.
Objetivos:
De acuerdo a la especificación de JSR 376, los principales objetivos son:
- Configuración confiable: Los módulos proporcionan mecanismos para declarar en forma explícita las dependencias entre módulos, de forma que pueden ser reconocidas en tiempo de compilación y tiempo de ejecución.
- Una fuerte encapsulación: Los paquetes en el módulo están disponibles en otros módulos solo si hay un uso explícito de ellos. Esto mejora la seguridad de la plataforma porque menos clases son accesibles para ataques potenciales.
- Plataforma Java escalable: Anteriormente, la plataforma Java era una plataforma monolítica que consistía en un gran número de paquetes, haciendo todo un reto el desarrollo, mantenimiento y evolución. La plataforma ahora tiene 95 módulos. Se puede crear una rutina personalizada que consiste solo en los módulos que requiere para su aplicación.
- Mayor integridad de la plataforma: Antes de Java 9, era posible utilizar muchas clases de la plataforma que se suponía no debían estar disponibles para las aplicaciones. Con una mayor encapsulación, las librerías realmente se encuentran encapsuladas y ocultas para las aplicaciones que utilicen la plataforma.
- Mejora del rendimiento: La JVM utiliza varias técnicas de optimización que mejoran el rendimiento de las aplicaciones.
Este artículo se encuentra basado en Understanding Java 9 Modules, artículo publicado del Java Magazine Sep-Oct 2017.[/vc_column_text][/vc_column][/vc_row]