A pesar de que tradicionalmente haya existido la percepción de que la licencia Java para empresas podía utilizarse de manera gratuita sin restricciones, siempre ha sido necesario considerar diversas circunstancias en torno al desarrollo y el uso de código Java. Se trata de un punto a tener muy en cuenta dentro del software empresarial.
En este ámbito, resulta cada vez más frecuente que las empresas se preocupen por el licenciamiento de esta tecnología. A este hecho contribuyen las nuevas condiciones impuestas por Oracle y las auditorías que este fabricante lleva a cabo.
Así pues, en este escrito se describen los principios básicos relacionados con la licencia Java para empresas. En él se identifican los riesgos asociados a cada escenario, así como las alternativas existentes para garantizar el pleno cumplimiento.
1. Antecedentes de la licencia Java para empresas
Por hacer una breve recopilación histórica, Java fue comercializado originalmente por Sun Microsystems bajo una licencia de software propietaria. No obstante, en mayo de 2007, Sun liberó la mayoría de su tecnología de programación Java bajo la licencia GNU General Public License (GPL).
Así se permitía la posibilidad de ejecutar, analizar, compartir o modificar el software libremente. En enero de 2010, Sun fue adquirida por Oracle y la descarga Java continuó disponible bajo la licencia Oracle Binary Code License (OBCL).
Posteriormente, en mayo de 2011, Oracle introdujo dos licencias comerciales nuevas para descargar Java (Java SE Advanced y Java SE Suite) y en febrero de 2014 una tercera (Java SE Advanced Desktop). Tal y como sucede con otras licencias de Oracle, cada una de estas licencias representa un conjunto de productos, componentes o funcionalidades que pueden ser utilizados como parte de su adquisición.
2. Componentes de Java para versiones anteriores a la 11
En este sentido, en la siguiente tabla se recogen los componentes incluidos para instalar Java Standard Edition (SE), Java SE Advanced, Java SE Advanced Desktop y Java SE Suite para versiones anteriores a la 11:
Componente | Java SE | Java SE Advanced | Java SE Advanced Desktop | Java SE Suite |
---|---|---|---|---|
Java SE Development Kit (JDK) § JavaFX SDK Libraries | Sí | Sí | Sí | Sí |
Java Runtime Environment (JRE Java) § Máquina Virtual Java (Java Virtual Machine o JVM) § Java Standard Libraries § JavaFX Runtime | Sí | Sí | Sí | Sí |
Java Deployment Technologies § Plugin § Web start | Sí | Sí | Sí | Sí |
JRockit Development Kit | Sí | Sí | Sí | Sí |
Java Flight Recorder – for Desktop | No | Sí | Sí | Sí |
Java Flight Recorder – for Server | No | Sí | No | Sí |
Java Mission Control | No | Sí | Sí | Sí |
Java Advanced Management Console | No | Sí | Sí | Sí |
Java SE Enterprise Installer | No | Sí | Sí | Sí |
JRE Usage Tracking | No | Sí | Sí | Sí |
JRockit Real Time con Deterministic GC | No | No | No | Sí |
JRockit Flight Recorder | No | Sí | No | Sí |
JRockit Mission Control § JRockit Mission Control Console observability § JRockit Mission Control Memory Leak Detector observability | No | Sí | No | Sí |
3. Condiciones de la licencia Java para empresas anteriores a Java SE 11
3.1 Componentes comerciales
Por una parte, según los términos de la licencia Oracle Binary Code License Agreement, no pueden utilizarse todas las funcionalidades en Java sin coste. De hecho, en este acuerdo de licencia Java para empresas, se establece explícitamente que hay determinados componentes comerciales que están sujetos a restricciones.
Estos componentes comerciales pueden consultarse directamente en la tabla 1-1 de la página que describe los productos y características de Java SE , y coinciden con los reflejados en la parte final de la tabla del apartado 2: Java Flight Recorder, Java Mission Control, Java Advanced Management Console, MSI Enterprise JRE Installer, JRockit Flight Recorder, JRockit Mission Control Console observability, JRockit Mission Control Memory Leak Detector observability, JRE Usage Tracking y JRockit Real Time con Deterministic GC.
Si se desea utilizar estos componentes, ya sea para operaciones internas de negocio o con propósito comercial, ha de obtenerse una licencia Oracle específica. No obstante, si se hace uso de los mismos en un entorno de desarrollo Java, así como para pruebas, aprender Java o un curso Java, no es necesario adquirir una licencia Java para empresas para satisfacer las condiciones de licenciamiento.
3.2 Computación de propósito general
Por otra parte, la necesidad de asumir un coste por utilizar aplicaciones Java ha dependido también de la infraestructura empleada, siendo gratuito en el caso de computación de propósito general (General Purpose Computing) o suponiendo un gasto en caso contrario.
Un equipo de propósito general para Oracle es aquel que puede realizar por sí mismo todas las tareas habituales de computación para una aplicación con lenguaje Java. Es decir, PCs, portátiles, tablets o smartphones, incluyendo en su caso el uso de Java para Android. En cambio, son considerados dispositivos de no propósito general aquellos como sistemas embebidos o impresoras, plataformas de almacenamiento, electrónica de red… etc.
3.3 Instalación de los componentes de Java SE
Las organizaciones debían ser conscientes de que Oracle no ofrece paquetes de instalación que se correspondan directamente con “Java SE”, “Oracle Java SE Advanced”, “Oracle Java SE Advanced Desktop” u “Oracle Java SE Suite”.
Por el contrario, dependiendo de cada producto concreto que estuviera licenciado, es necesario descargar uno o varios de los siguientes paquetes de software: JRE, JDK, Java Advanced Management Console, Microsoft Windows Installer (MSI) Enterprise JRE Installer, JavaFX Runtime, JRockit JDK, JRockit Mission Control, Java for Business JRE o Java for Business JDK.
Asimismo, hay que tener en cuenta que existen productos de Oracle que han venido ofreciendo implícitamente derechos de uso para utilizar componentes comerciales de Java SE, como por ejemplo:
- WebLogic Server Enterprise Edition, incorporando el derecho de uso de Java SE Advanced.
- WebLogic Suite, incluyendo el derecho de uso de Java SE Suite restringido para WebLogic Server, Oracle Containers for J2EE y Coherence.
Por consiguiente, desde hace tiempo ha sido necesario que las organizaciones conozcan con exactitud qué componentes debían ser licenciados, aunque pudieran descargar Java gratis. Del mismo modo debían conocer cuáles podían utilizarse sin coste, junto con las circunstancias concretas para que esto fuera así.
Así, el uso de cualquier funcionalidad considerada como comercial por parte de Oracle implicaba la obligatoriedad de adquirir una licencia Java para empresas, al igual que sucedía si se utilizaban equipos que no fueran de propósito general.
4. Estrategia para el uso de la licencia Java para empresas con el nuevo modelo
Al igual que sucede con los productos de cualquier fabricante, se antoja fundamental identificar el uso real que se está haciendo de cada programa Java. De esta forma, podrán tomarse las medidas oportunas para asegurar el cumplimento con el menor coste posible. Es necesario determinar, por tanto, cuestiones como las siguientes:
- Dónde se utiliza y para qué sirve Java en su organización.
- Qué componentes han sido usados. Aunque se haya desplegado alguno de los componentes comerciales referidos anteriormente, no supondrán un coste hasta que sean utilizados. Así pues, no habrá inconveniente por el mero hecho de descargar Java 8, descargar Java 7 o descargar JRE.
- Verificar versión Java: comprobar Java para determinar qué ediciones o versiones se han instalado o están en uso.
Asimismo, han de conocerse con claridad los pormenores de la nueva política de licenciamiento de Oracle en torno a lo que es Java, incluyendo aspectos tan importantes como:
- Principales implicaciones del acuerdo de licenciamiento OTN (Oracle Technology Network), que resulta de aplicación a partir de JDK 11. Este acuerdo contemplará, por tanto, la última versión de Java.
- Cuestiones que deben tenerse en cuenta desde abril de 2019 para las versiones anteriores a Java SE 11.
- Esquema de costes para el nuevo modelo de suscripción, según se utilice la plataforma Java en servidores (Java SE) o en desktops (Java SE Desktop).
- Consecuencias de la nueva política de publicación de actualizaciones y parches.
- Cómo afecta el nuevo licenciamiento a la arquitectura de los data centers, considerando los escenarios de virtualización.
- Cómo monitorizar y controlar el uso real de Java.
- Alternativas al uso de Oracle JDK, con sus ventajas e inconvenientes.
5. Conclusiones sobre el uso de la licencias Java para empresas
En definitiva, para poder gestionar con éxito las nuevas reglas de Oracle para la licencia Java para empresas, se torna recomendable que cada organización revise sus implementaciones de Java, de manera que pueda determinar la solución que mejor se adapte a las necesidades de su negocio. De este modo, estará en disposición de acometer aquellos cambios que sean precisos con la mayor agilidad, contemplando la posible adecuación de parte de su infraestructura.
Además, al margen de las anteriores consideraciones, hay que tener en cuenta que a partir de Oracle JDK 17 vuelven a cambiar las condiciones de licenciamiento de Java. A partir de esta versión resulta de aplicación la licencia NFTC (Oracle No-Fee Terms and Conditions). De esta forma, se posibilita el uso de Java sin coste para entornos de Producción y comerciales.
¿Conoce con claridad las condiciones de licenciamiento que aplica Oracle al uso de Java? ¿Ha evaluado las alternativas existentes para la evolución de su escenario basado en esta tecnología? ¿Se considera preparado para abordar una auditoría de Java? En cualquier caso, es recomendable apoyarse en un equipo de expertos en la gestión de licencias de Oracle.
Los especialistas de Evergreen Compliance están a su disposición para enviarle o comentar con usted, sin ningún tipo de compromiso, cualquier información sobre la nueva estrategia para el uso de la licencia Java para empresas, profundizando en los contenidos reflejados en este artículo y colaborando en cualquier cuestión que pueda surgir en su compañía.