Universidad de Guayaquil Facultad de Ciencias Matemáticas y Físicas Carrera de Ingeniería en Sistemas Computacionales y Networking 1 SERVIDORES WEB CON REPOSITORIO SERVLETS JBOSS, TOMCAT, GLASSFISH Integrantes : Angel Calvas, Josue Cardozo, Alexis Enriquez, Jorge Sanchez I. RESUMEN En este documento se define de modo breve los distintos servidores de aplicaciones, incluye secciones donde se analiza las características y funcionalidades de los diferentes aplicativos para desarrollo de aplicaciones en servidores además de ejemplos básicos de cada tecnología y la estructura que maneja cada recurso. Tomcat, Jboss y Glassfish son servidores de aplicaciones que trabajan bajo estándares y especificaciones como JEE y EJB que permiten la ejecución de lenguaje de programación en Java, arquitecturas distribuidas y componentes clienteservidor. INTRODUCCIÓN En este artículo se pretende considerar las alternativas tecnológicas disponibles para el desarrollo de aplicaciones web y servidores de aplicación como lo es Glassfish, Tomcat y Jboss. Esto amplia el conocimiento del lector sobre dichas tecnologías para que identifiquen la utilidad de cada software y pueda realizar una elección acorde a sus proyectos. Un servidor de aplicación es el software que permite el procesamiento de datos y peticiones de una aplicación cliente, trabajan a manera de bloques los cuales se pueden desarrollar de forma independiente y llaman funciones externas las cuales los hacen dinámicos y menos complejos. Universidad de Guayaquil Facultad de Ciencias Matemáticas y Físicas Carrera de Ingeniería en Sistemas Computacionales y Networking II. 2 GLASSFISH Glassfish proviene de una versión comercial llamada el Sun Glassfish Enterprise Server esta es una contenedor de aplicaciones web para correr servlets y paginas JSP una de sus principaes orientación fue que trabaja con JavaEE (“Java Entreprise Editions”) pero también entre unas de sus mejoras es J2EE (“Java 2 Entreprise Editons”) en donde se dice que es un conjunto de especificaciones para APIs, una arquitectura de sitemas distribuida, y las definiciones para el paquete de componentes distribuidos para el desarrollo es un estandar definido para los servicios de desarrollar aplicaciones. En donde esta plataforma se puede utilizar en multiples capas es decir tenemos multiples de herramientas para poder realizar funcionabilidades mutuas en las dos es decir este ambiente fue uno de los que entrudujo en los sistemas distribuidos para ambiente web “multinivel” La seguridad de este componente vital en las aplicaciones empresariales para J2EE y GLASSFISH es de que ofrece mecanismos integrados de seguridad más seguros, que se puedan añadir manualmente. J2EE proporciona mecanismos de autentificación y autorización de acceso a los usuarios, así como recursos para el acceso anónimo si se necesita. Es posible especificar quien tiene acceso a cada método de un Enterprise Bean. pero este ambiente de desarrollo quiso mejorar en donde recluto a Java Server Page, Java Server Face, Entreprise JavaBeans etc.Para realizar aplicación complementarias hechas por su mismo ambiente de desarrollo para aplicaciones web en onde existiría un soporte para cada uno de ellos hecho por Glassfish. III. FUNCIONABILIDAD DE GLASSFISH Funciona como un servidor de aplicaciones web Modulares, Integrables, Extendibles en donde la arquitectura puede descargase e instalar solamente de los módulos que se necesiten para las APPS, lo cual resta el tiempo de inicio, consumo de memoria y espacio en disco. Entre sus posible funciones es ejecutar Glassfish dentro de una máquina virtual sin necesidad de disponer de instalar un servidor de aplicaciones.es decir Glassfish como una librería más en la Java Virtual Machine, seleccionando solo lo que se necesita y probando pequeñas aplicaciones webs sin necesidad de correr todo el AppServer, teniendo en cuenta las limitaciones del .Glassfish tambien nos permite subdividir nuestro servidores de aplicaciones atravez de los dominios estos sirven para agrupar apicaciones que pueden compartir: – Librerías – Logs – Configuraciones Universidad de Guayaquil Facultad de Ciencias Matemáticas y Físicas Carrera de Ingeniería en Sistemas Computacionales y Networking Todos los dominios están almacenados en “glassfish_home/domains” todos los dominios tiene una “Clave maestra” que sirve para administrar el dominio, configurando como activados de manera independiente. 3 libros: Librerías compartidas entre las aplicaciones del dominio applications: Donde están almacenadas la información de las aplicaciones. IV. Los dominios mantienen una estructura de carpetas bien definida. De todas entre unas de las principales tenemos: config: Fichero de configuración del dominio LEVANTAMIENTO DE SERVIDOR GLASSFISH Para poder levantar un servidor en Glassfish tenemos una consola de administración con multiples de funciones. <glassfish_home>/bin/asadmin Debemos indicarle por consola que dominio queremos levanter para asi poder distirguir la omision de dominios en caso que exista uno levantado. Star-domain[<nombredeldominio>] Ahora se ejecuta el comando. Glassfish nos informa del estado del proceso. ● Glassfish levanta un servidor de RMI y un control de log por defecto. ● Lo más relevante de la información del comando es la lista de puertos. Universidad de Guayaquil Facultad de Ciencias Matemáticas y Físicas Carrera de Ingeniería en Sistemas Computacionales y Networking ● Dentro de la consola de administración es fácil para un dominio Stop-domain[<nombre_de_dominio>] V. VERSIONES DE GLASSFISH GLASSFISH V1 Después de un año, ésta fue la primera versión que fue liberada. El principal objetivo de ésta versión, fue desarrollar un servidor de aplicaciones totalmente compatible con Java EE 5, y lo lograron, recibiendo excelentes criticas en esta version . A la vez que se liberaba la primera versión de Glassfish, también se lanzaba un producto correspondiente de Glassfish bajo el Sun Java System 9.0 Platform Edition. Entre una de las diferencias de la versión Open Source y el producto de Sun fue: marca de Sun, mejor instalador, drivers de DataDirect JDBC e indemnización limitada. Todo lo demás era exactamente lo mismo dandole paso a la version GLASSFISH V2 La versión fue liberada en Septiembre del 2007, junto con algunas actualizaciones, éstas incluían mejoras de bugs y algunos parches. El principal enfoque de la versión v2 fue agregar varias características empresariales. Las tres palabras clave que resumen ésta versión son: Rápido, Fácil GLASSFISH V2.1 Diciembre del 2008, dónde se repararon más de 500 problemas. Permite el uso de SailFin 1.0 e incluye muchísimas mejoras de calidad. Las características principales de esta versión son: - Java EE5 4 - Java Web Technologies (Servlet 2.5, JSP 2.1, JSF 1.2) - Metro Web Services Stack - .NET 3.0 Web Services Interoperability - EJB 3.0 - JPA 1.0 (TopLink) - Grizzly (Java NIO) GLASSFISH V3 Esta versión tiene como principales características: altamente modular y extendible. Además de que es totalmente compatible con Java EE 6. Características de esta version: - Java Web Technologies (Servlet 3.0, JSP 2.2, JSF 2.0) - Metro Web Services Stack - .NET 3.5 Web Services Interoperability - EJB 3.1 - JPA 2.0 (EclipseLink) - Grizzly (Java NIO) - Arquitectura Modular Basada en OSGi - CORBA VI. HISTORIA DE GLASFISH En Junio de 2005. Primer lanzamiento del Proyecto donde se tuvo mucha atencion para el desarrollo web pero en el siguiente exactamente en mayo de 2006 fue la primera versión que soporta la especificación Java EE 5.Pero como siempre java siguio desarrolandose y asi en mayo de 2007. Tuvo como proyecto Project SailFin se anuncia en JavaOne como un subproyecto bajo GlassfFish. SailFin es un proyecto que añade nuevas funcionalidades, como el servlet de Session Initiation Protocol (SIP).pero en septiembre de 2007. Aparece la versión 2 (también conocida como Sun Java System Application Server 9.1) con capacidades de cluster y nuevas características de interconexión entre servicios web pero en Diciembre de 2008, Sun Microsystems y la Universidad de Guayaquil Facultad de Ciencias Matemáticas y Físicas Carrera de Ingeniería en Sistemas Computacionales y Networking comunidad lanza GlassFish 2.1 (Sun GlassFish Enterprise Server 2.1), el que sirve como la base para el proyecto Sailfin SIP AppServer project (también conocido como Sun Communication Application Server).Ya en Diciembre de 2009 aparece la versión 3 que soporta la especificación Java EE 6 asta en la actulidad en su foro de Glassfish estan patentando La última versión de GlassFish Server Open Source Edition es 4.0, aparecido en 24/06/2013. Inicialmente fue agregado a nuestra base de datos en 19/06/2010 pero seguira creciendo esta aplicacion por medio crese la necesidad de las empresas que trabajan con esta plataformas exelentes para realizar servidores web. Link http://glassfish-server-open-sourceedition.updatestar.com/es 5 VII. APACHE TOMCAT Apache tomcat comenzó siendo una implementación de servlets, donde fue uniciada por James Duncan Davidson, que trabajabó como arquitecto de software en Sun Microsystem en donde trabajo desde el año (1997- 2001) es autor y co-aoutor de varios libros de software ya que aparte de crear tomcat creo una herramienta llamada HORMIGA que también fue desarollada en el ambiente JAVA dirigió sus intereses de programación y la atención en el sentido de Ruby on Rails . Junto con el conocido gurú Rails Mike Clark, Davidson ha diseñado y construido algunos de los más complejos y robustos Rails temprana aplicaciones que en lo posterior ayudó al proyecto de código abierto. Este apache fue desarrollado bajo el nombre de Jakarta Project por la Apache Software Fundation bajo la licencia Apache 2.0. Se podría definir como la capa web de cualquier aplicación es también conocido como Jakarta Tomcat, es una implementación de software open source de las tecnologías Java servlet y javaServer Pages.Cuando uno realiza la investigacion de esta tecnologia tenemos que terner muy encuenta que existe versions de toncat donde realiza la misma funcion El servidor Jakarta Tomcat es una aplicación web basada en Java creada para ejecutar servlets y páginas JSP (“ Java Server Page)” ,siendo la implementación oficial de referencia de las especificaciones Servlet 2.3 y JavaServer Pages 1.2.Pero antes de continuar es necesario tener un conocimiento básico del concepto de Aplicación Web una aplicación web es un conjunto de programa informático que en lugar de ejecutarse en un ordenador personal en adelante, una aplicación de escritorio, se ejecuta parcialmenteen un servidor remoto, al que se accede a través de Internet o intranet por medio de un navegador web donde te envía a la aplicación web.Aparche tomcat que fue implementado en la versión 2.2 de la especificación servlet. De acuerdo con esta especificación, una aplicación web es una colección de servlets, páginas Java Servelts Page, clases Java, archivos de descripción de la aplicación, documentos estáticos entre uno de ellos HTML, XHTML. Se pueden ser empaquetados y ejecutados en distintos servidores de diferentes Universidad de Guayaquil Facultad de Ciencias Matemáticas y Físicas Carrera de Ingeniería en Sistemas Computacionales y Networking proveedores es decir Se puede ejecutar sobre cualquier sistema operativo, previa instalación de la máquina virtual de Java aunque, también se puede usar con MAMPP (Mac OS X), LAMPP (GNU/Linux), WAMPP (Windows) o XAMPP (cualquier sistema operativo).Este servidor funciona bajo java devolment kit VIII. FUNCIONAMIENTO DE APACHE TOMCAT Para poder realizar el funcionamiento de Tomcat con la licencia de Aparche es necesario tener en nuestro servidores un sistemas operativo de cualquier tipo y en tener el parquete instalodo Java Devolment Kit para realizar la utilización. Funciona mas como un servidor de paginas. El uso de las herramientas ANT y CVS no será abordado en esta ocasión, pero podemos decir que ambas son herramientas para descargar y compilar las versiones de código fuente de Tomcat Los servidor Web basado es una máquina de Java Sun y Apache Tomcat, un servlet de Java y un contenedor de páginas de JavaServer desarrollado. La documentación principal de Tomcat se encuentra en tomcat.apache.org. Tomcat ofrece compatibilidad conforme a los estándares para servlets y JSP. Tomcat puede funcionar como servidor Web independiente o como servidor de aplicaciones. TOMCAT sirve contenido Web estático, implementa automáticamente aplicaciones Web y ejecuta servlets y páginas de JavaServer a partir de un volumen de contenido configurable por el usuario. Las rutas a los documentos son configurables, para que el mismo volumen se pueda 6 compartir entre varios servidores Web y otros dispositivos que sirven contenido diferente. Al igual que los servidores WEBx, TOMCAT tiene tres terminales de salida genéricos para acceder a los servicios externos de los scripts del volumen de contenido. El terminal db se usa para acceder a diversas bases de datos; el terminal fs se usa para acceder a almacenamiento de archivos compartidos (mediante NFS); y el terminal aux se crea para enviar mensajes de correo electrónico a un servidor SMTP.El terminal de registro debe utilizarse para conectar TOMCAT a un sistema de archivos compartido, donde TOMCAT puede almacenar archivos de registro. La configuración del servidor se define mediante diversas propiedades. Estas propiedades están diseñadas para cubrir la mayoría de las variantes de uso de una forma fácil de configurar y, en la mayor parte de los casos, solamente hay que configurar unas cuantas con valores no predeterminados.Para poder realizar un ejemplo de la aplicación Tomcat realizaremos un desarrollo HOLAMUNDO IX. HOLAMUNDO Se creó un arreglo de los nombres de los integrantes del grupo 7 para poder presentar en el navegador una página web con los nombres de cada uno de los integrantes listados. A continuación se debe compilar el archivo HelloWorld.java pero para evitar tener errores en tiempo de compilación se debe de agregar la opción –classpath <Ruta de apache tomcat\lib\*> Universidad de Guayaquil Facultad de Ciencias Matemáticas y Físicas Carrera de Ingeniería en Sistemas Computacionales y Networking Este proceso es necesario para indicarle en qué ruta se encuentra las librerías de Apache tomcat ya que si se lo compila sin hacer lo indicado saldrá error diciendo que no se ha encontrado la librería javax.servlet.* 7 Donde: Servlet-name: es el nombre del servlet Servlet-class: indica el nombre del archivo que acabamos de compilar url-pattern: Se crea una ruta virtual para así poder acceder al servlet Y como paso final iniciamos el servidor web de Apache Tomcat para así poder ver en el navegador lo que se desea presentar. Una vez hecho esto se debe de crear un archivo xml para así poder acceder al servlet sin que exista ningún problema Universidad de Guayaquil Facultad de Ciencias Matemáticas y Físicas Carrera de Ingeniería en Sistemas Computacionales y Networking X. 8 CARACTERITICAS DE APACHE TOMCAT A partir de la versión 4.x Tomcat fue lanzado con el contenedor de servlets Catalina, con el contenedor HTTP "Coyote" y un motor para JSP llamdo "Jasper". Las principales características de estos tres componentes son Catalina donde este componente implementa las especificaciones de servlets y JSP. Para Apache Tomcat el elementos principal es una base de datos de nombres de usuarios, password y roles a estos usuarios permitiendo a Catalina integrarse donde ya existe información de autenticaciónes como describe la especificación de servlets.Mienstras que Coyote es un componente conector que admite el protocolo HTTP 1.1 para el servidor web y que escucha en un puerto TCP especificado por el servidor y envía la solicitud al motor Tomcat para que éste procese la solicitud y envíe una respuesta al cliente.Jasper analiza archivos JSP para compilar el código Java y, si se producen cambios, éste los vuelve a compilar. Desde la versión 5.x se usa Jasper 2 que es JavaServer para webs 2.0. Jasper 2 ha introducido las siguientes novedades: Recompilación al producirse un cambio. Incorpora el compilador JDT de Java. Puesta en común de etiquetas JSP. Universidad de Guayaquil Facultad de Ciencias Matemáticas y Físicas Carrera de Ingeniería en Sistemas Computacionales y Networking Sus características y evolución del producto y sus principales características de cada una de las versiones han sido. Tomcat 3.x que fue una de las primeras en distrbuise esta implementación a partir de Servlet 2.2 y JSP 1.1 utiliza las Recarga de servlets y tiene como unas de sus principales Funciones básicas de HTTP. XI. HTTPS Alojamiento compartido CGI o interfaz de entrada común Servlets de Java SSI Consola de administrador. EVOLUCION APACHE TOMCAT Tomcat 4.x fue implementado a partir de las especificaciones Servlet 2.3 y JSP 1.2 como un Contenedor de servlets rediseñado como Catalina.El motor JSP rediseñado con Jasper y el Conector Coyote.Java Management Extensions (JMX), JSP y administración basada en Struts. Tomcat 5.x fue implementado a partir de las especificaciones Servlet 2.4 y JSP 2.0.Recoleccióno de basura reducida capa envolvente nativa para Windows y Unix para la integración de las plataformas en el análisis rápido JSP. Tomcat 6.x fue implementado de Servlet 2.5 y JSP 2.1 como un soporte para Unified Expression Language 2.1 tambien Diseñado para funcionar en Java SE 5.0 y posteriors es un soporte para Comet a través de la interfaz CometProcessor. Tomcat 7.x fue implementado de Servlet 3.0 JSP 2.2 y EL 2.2 para unas de sus mejoras para detectar y prevenir "fugas de memoria" en las aplicaciones web y limpieza interna de código. Soporte para la inclusión de contenidos externos directamente en una aplicación web. Tomcat 8 como una de las principales características que soporta la última versión estable son: 9 Autenticación de acceso básico. Negociación de credenciales XII. JBOSS Es un servidor de aplicaciones de Java EE con licencia LGPL, compatible con cualquier sistema operativo para el que esté disponible la JVM.[1] es únicamente un "EJB Container" y es por esto que generalmente se utiliza en conjunción con un "WebContainer", en nuestro caso Tomcat. Este lenguaje es de codigo abierto donde puede realizarce en multiples sistmeas operativos sirve para el desarrollo y despliegue de la empresa Java aplicaciones, aplicaciones Web y los servicios y portales . J2EE permite el uso de componentes modulares estandarizados y permite a la plataforma Java para manejar muchos aspectos de la programación automáticamente.Es una aplicacion multiplataforma es muy felixible es decir muy utilizados por lo pragramadores que an utilizado el lenguaje java para realizer aplicaciones web este lenguaje nos ofrece permiso de persistencia de objeto y realciones aument el rendimiento de aplicaciones Universidad de Guayaquil Facultad de Ciencias Matemáticas y Físicas Carrera de Ingeniería en Sistemas Computacionales y Networking XIII. HISTORIA DE JBOSS Marc Fleury empezó el proyecto Jboss en 1999, en el año 2004 fundo la empresa Jboss Inc. que proporcionaba software middleware de código abierto en instalaciones o la nube para desarrollar, implementar y administrar aplicaciones Java. Competían con empresas líderes como las de IBM, BEA systems, Oracle, Sun MicroSystems. En abril del 2006, Red Hat realizo la adquisición de la compañía y en la actualidad se pueden considerar los siguientes productos: 10 Es la solución para la integración de data que permite a las organizaciones acceder a múltiples recursos necesarios al tiempo requerido. Incluye una herramienta de diseño gráfico basado Eclipse. Jboss Web Server Servidor web basado en Tomcat, provee una plataforma de desarrollo para JSP (Java Server Pages), Java Servlets, PHP, and CGI. Red Hat Jboss Enterprise Application Platform Ofrece una plataforma de alojamiento de aplicaciones que proporciona una arquitectura preparada para la nube con una potente gestión y automatización del sistema y una productividad del desarrollador de clase mundial. Red Hat Jboss Web Server Un servidor web que combina el servidor Web Apache y Apache Tomcat para proporcionar una solución única para los sitios web de gran escala y aplicaciones web ligeras de Java. Red Hat Jboss Data Grid Una cuadrícula de datos en memoria para acelerar el rendimiento de las aplicaciones, ofreciendo un acceso rápido distribuido de datos. Jboss Web Server v3 - Inclusión de Tomcat 8. Actualización del Apache HTTP Server v2.4. Actualización: versión de Tomcat7. Actualización: versión de Hibernate. Actualización de versión de mod_cluster. Soporte para Java 8. Adición del mod_security for Apache HTTP Server. - Red Hat Jboss Portal Poderoso pero ligero portal para la construcción de aplicaciones de alto impacto y auto servicio aprovechando al máximo el valor de sus sistemas existentes. Red Hat Jboss Fuse Service Works Plataforma de diseño, desarrollo e integración que permite a las organizaciones la transición y apertura a las nubes hibridas. Red Hat Jboss Data Virtualization Jboss Web Server v2.1 - Soporte Java comunicación cliente-servidor WebSockets full-duplex Jboss Web Server v2 - Inclusión de Tomcat 7. Inclusión de Hibernate. Universidad de Guayaquil Facultad de Ciencias Matemáticas y Físicas Carrera de Ingeniería en Sistemas Computacionales y Networking - Politicas SELinux para Apache HTTPD y Tomcat 6-7. Versiones Actualizadas de Apache HTTPD y Tomcat 6. Actualización: versión de mod_cluster conector. Soporte para Solaris 11 Jboss Web Server v1 Inclusion Apache Tomcat 5 – 6 Soporte para Solaris 9 – 10 mod_cluster (carga balanceada HTTP) Jboss Hibernate XIV. CARACTERÍSTICAS Software de licencia LGPL sin costo adicional. Es un producto de licencia de código abierto (Lesser General Public License), que promueve la distribución de software libre para todos los usuarios. Cumple los estándares. El sistema y los datos se conectan fácilmente, certificados Java EE. Seguro y confiable a nivel de empresa. Plataforma integral con servicios de seguridad para nivel empresarial. Incrustable, Orientado a arquitectura de servicios. Soluciones SOA (Arquitectura Orientada a Servicios) con una alineación directa a los procesos de negocio. Flexibilidad consistente. Innovación de servicios a clientes y una adaptación ágil ante cambios. 11 Servicios de Middleware para cualquier objeto de java. Fácil integración con otros servicios desarrollados en la plataforma de Java. Soporte completo para JVM. Soporte completo para cualquier arquitectura de Máquina Virtual de Java. XV. CONCLUSION Con la profundidad de esta investigación se establece el conocimiento de las tecnologías para desarrollo de aplicaciones web y aplicaciones con repositorio Servlets, las cuales están basadas en código abierto y multiplataforma. Tanto Glassfish, Tomcat y Jboss nos permiten desarrollar diversos servicios sobre aplicaciones web y servidores, pero las características propias como la administración, los servicios que se pueden manejar además de los estándares y complejidad de la programación es lo que nos lleva a la elección de dichas tecnologías dependiendo de las necesidades y requerimientos de nuestros proyectos. XVI. AGRADECIMIENTO Los autores agradecen la colaboración prestada del Ing. Antón por la revisión de este documento, por darnos de la motivación para realizar una investigación a fondo de las tecnologías mencionadas y por trasmitirnos su interés por la materia con sus experiencias y conocimientos claros del este tema. GLOSARIO Java EE Java Platform, Enterprise Edition o Java EE (anteriormente conocido como Java 2 Platform, Enterprise Edition o J2EE hasta la versión 1.4; traducido informalmente como Java Empresarial), es una plataforma de programación—parte de la Plataforma Java—para desarrollar y ejecutar software de aplicaciones en el lenguaje de Universidad de Guayaquil Facultad de Ciencias Matemáticas y Físicas Carrera de Ingeniería en Sistemas Computacionales y Networking programación Java. Permite utilizar arquitecturas de N capas distribuidas y se apoya ampliamente en componentes de software modulares ejecutándose sobre un servidor de aplicaciones.[2] EJB Los Enterprise JavaBeans son una de las API que forman parte del estándar de construcción de aplicaciones empresariales JEE) de Oracle. Su especificación detalla cómo los servidores de aplicaciones proveen objetos desde el lado del servidor.[3] JSP Java Servlet Pages ' (JSP) es una tecnología que ayuda a los desarrolladores de software a crear páginas web dinámicas basadas en HTML, XML, entre otros tipos de documentos. JSP es similar a PHP, pero usa el lenguaje de programación Java. Para desplegar y correr JavaServer Pages, se requiere un servidor web compatible con contenedores servlet como Apache Tomcat o Jetty. Servlets El servlet es una clase en el lenguaje de programación Java, utilizada para ampliar las capacidades de un servidor. Aunque los servlets pueden responder a cualquier tipo de solicitudes, éstos son utilizados comúnmente para extender las aplicaciones alojadas por servidores web, de tal manera que pueden ser vistos como applets de Java que se ejecutan en servidores en vez de navegadores web. CDDL CDDL es una licencia de código abierto (OSI) y libre, producida por Sun Microsystems, basada en la Mozilla Public License o MPL, versión 1.1.[4] LGPL Lesser General Public License es la licencia más ampliamente usada en el mundo del software y garantiza a los usuarios finales (personas, organizaciones, compañías) la libertad de usar, estudiar, compartir (copiar) y modificar el software. Su propósito es declarar que el software cubierto por esta licencia es software libre y protegerlo de intentos de apropiación que restrinjan esas libertades a los usuarios [5] XVII. REFERENCIAS [1] Red Hat Inc. “Jboss Technology” [En línea]. Disponible en: <http://www.jboss.org/>. [2] Oracle Corporation. “Java EE” [En linea]. Disponible en: <http://www.oracle.com>. [3] Oracle Corporation. “EJB” [En linea]. Disponible en: <http://www.oracle.com>. [4] Free Software Fundation, Inc. “Common Development and Distribution License (cddl) version 1.0” [En línea] 2004. Disponible en: <http://opensource.org/licenses/CDDL-1.0>. [5] Free Software Fundation, Inc. “GNU Lesser General Public License” [En línea] 2007.Disponible en: <http://www.gnu.org>. 12