Este artículo proporciona detalles sobre la instalación sobre Apache Geronimo. Aquí encontrarás información acerda de los pre-requisitos de software, en donde descargar Geronimo, y como adaptar la instalación para usar puertos distintos a los predeterminados.
En este documento también encontrarás detalles sobre la instalación y configuración de distintas topologías, como 2-capas (2-tier), con el servidor web remoto.
Este artículo esta organizado de acuerdo a las secciones siguientes:
- #Software pre-requisito
- #Descargando Geronimo
- #Plataformas probadas
- #Cambiando los puertos predeterminados
- #Cambiando al usuario predefinido y su contraseña
- #Topologías
Software pre-requisito
- J2SE SDK (http://java.sun.com/)
- Apache Maven (http://maven.apache.org/maven-1.x/start/download.html).
Descargando Geronimo
El código fuente y binarios de Geronimo v1.1 puede encontrarse en
http://geronimo.apache.org/downloads.html
Construyendo desde el código fuente
Expando al código fuente (.zip ó tar.gz) e ingresa a la línea de comandos, en el directorio <geronimo_home>.
Para poder hacer la construcción (build), emplea al siguiente comando
maven -Dmaven.test.skip=true -Dmaven.itest-skip=true m:rebuild-all
Las dos propiedades de sistema le solicitan a Maven el ignorar toda prueba y sólo hacer la construcción.
Instalando Geronimo desde los binarios
Dependiendo de la plataforma en donde planeas instalar y ejecutar a Apache Geronimo, descarga la imagen de instalación apropiada.
Elige al formato de compresión compatible con tu sistema (zip, tar, gz), mediante clic directo en la liga; descárgalo y exapnde al binario en tu disco duro, dentro de un nuevo directorio. La instalación de Apache Geronimo es tan simple como la expansión de archivos .zip ó .tar. Desde una línea de comandos, ingresa al directorio <geronimo_home> e inicia al servidor mediante el siguiente comando,
java -jar server.jar
Plataformas probadas
Las plataformas en donde Apache Geronimo v1.1 ha sido probado son:
SO |
Plataforma |
Versión Java |
---|---|---|
Open Suse 10.0 |
Intel 32bit |
Sun Java 1.4.2_11 |
Fedora Core v5 |
Intel 32bit |
Sun Java 1.4.2_11 |
Ubuntu 6.06 |
Intel 32 bit |
Sun Java 1.4.2_12 |
Debian 3.1r2 |
Intel 32 bit |
Sun Java 1.4.2_12 |
Gentoo 2006.0 |
Intel 32 bit |
Sun Java 1.4.2_12 |
Cambiando los puertos predeterminados
El puerto HTTP es el estándar de red que los contenedores Web usan. Este número de puerto tiene que ser usado en cualquier URL HTTP que llama a aplicaciones Web en ejecución bajo Geronimo. Los módulos de servidor e inicio de Geronimo están controlados mediante el archivo config.xml, donde el puerto por defecto es 8080. Existen diversas razones para cambiar puertos de red, como la ejecución de múltiples instancias de Geronimo.
Para configurar al puerto por defecto, edita al archivo <geronimo_home>/var/config/config.xml. Abre el archivo en un editor de texto. Observarás al archivo como se muestra a continuación:
<?xml version="1.0" encoding="UTF-8"?> <!-- ======================================================== --> <!-- Warning - This XML file is re-generated by Geronimo when --> <!-- changes are made to Geronimo's configuration, therefore --> <!-- any comments added to this file will be lost. --> <!-- ======================================================== --> <attributes xmlns="http://geronimo.apache.org/xml/ns/attributes-1.1"> <module name="geronimo/rmi-naming/1.1-410806/car"> <gbean name="RMIRegistry"> <attribute name="port">1099</attribute> </gbean> <gbean name="NamingProperties"> <!-- Check whether this really works if host name is 0.0.0.0 --> <attribute name="namingProviderUrl">rmi://0.0.0.0:1099</attribute> </gbean> </module> <module name="geronimo/j2ee-server/1.1-410806/car"> </module> <module name="geronimo/j2ee-security/1.1-410806/car"> <gbean name="JaasLoginServiceRemotingServer"> <attribute name="host">0.0.0.0</attribute> <attribute name="port">4242</attribute> </gbean> <gbean name="JMXService"> <attribute name="protocol">rmi</attribute> <attribute name="host">0.0.0.0</attribute> <attribute name="port">9999</attribute> <attribute name="urlPath">/jndi/rmi://0.0.0.0:1099/JMXConnector</attribute> </gbean> </module> <module name="geronimo/axis/1.1-410806/car"/> <module name="geronimo/openejb/1.1-410806/car"> <gbean name="EJBNetworkService"> <attribute name="host">0.0.0.0</attribute> <attribute name="port">4201</attribute> </gbean> </module> <module name="geronimo/j2ee-corba/1.1-410806/car" load="false"> <gbean name="NameServer"> <attribute name="dbDir">var/cosnaming.db</attribute> <attribute name="port">1050</attribute> </gbean> <gbean name="Server"> <attribute name="args">-ORBInitRef, NameService=corbaloc::localhost:1050/NameService</attribute> </gbean> <gbean name="UnprotectedServer"> <attribute name="args">-ORBInitRef, NameService=corbaloc::localhost:1050/NameService</attribute> </gbean> </module> <module name="geronimo/system-database/1.1-410806/car"> <gbean name="DerbyNetwork"> <attribute name="host">0.0.0.0</attribute> <attribute name="port">1527</attribute> </gbean> </module> <module name="geronimo/activemq-broker/1.1-410806/car"> <gbean name="ActiveMQ.tcp.default"> <attribute name="host">0.0.0.0</attribute> <attribute name="port">61616</attribute> </gbean> </module> <module name="geronimo/activemq/1.1-410806/car"/> <module name="geronimo/directory/1.1-410806/car" load="false"> <gbean name="geronimo.server:name=DirectoryService"> <attribute name="host">0.0.0.0</attribute> <attribute name="port">1389</attribute> </gbean> </module> <module name="geronimo/ldap-realm/1.1-410806/car" load="false"/> <module name="geronimo/tomcat/1.1-410806/car"> <gbean name="TomcatEngine"> <reference name="TomcatValveChain" /> </gbean> <!-- To enable accesslogging change the load="false" below to load="true" --> <gbean name="FirstValve" load="false"></gbean> <gbean name="TomcatResources"/> <gbean name="TomcatWebConnector"> <attribute name="host">0.0.0.0</attribute> <attribute name="port">8080</attribute> <attribute name="redirectPort">8443</attribute> </gbean> <gbean name="TomcatAJPConnector"> <attribute name="host">0.0.0.0</attribute> <attribute name="port">8009</attribute> <attribute name="redirectPort">8443</attribute> </gbean> <gbean name="TomcatWebSSLConnector"> <attribute name="host">0.0.0.0</attribute> <attribute name="port">8443</attribute> </gbean> </module> <!-- n.b. be sure the gbean deployer is explicitly loaded before j2ee-deployer so that defaultEnvironment overrides work properly --> <module name="geronimo/geronimo-gbean-deployer/1.1-410806/car"/> <module name="geronimo/j2ee-deployer/1.1-410806/car"> <gbean name="WebBuilder"> <attribute name="defaultNamespace">http://geronimo.apache.org/xml/ns/j2ee/web/tomcat-1.1</attribute> </gbean> </module> <module name="geronimo/openejb-deployer/1.1-410806/car"> <gbean name="EJBBuilder"> <attribute name="listener">?name=TomcatWebContainer</attribute> </gbean> </module> <module name="geronimo/client-deployer/1.1-410806/car"/> <module name="geronimo/axis-deployer/1.1-410806/car"/> <module name="geronimo/javamail/1.1-410806/car" load="false"> <gbean name="SMTPTransport"> <attribute name="host">localhost</attribute> <attribute name="port">25</attribute> </gbean> </module> <module name="geronimo/sharedlib/1.1-410806/car"> <gbean name="SharedLib"> <attribute name="classesDirs">var/shared/classes</attribute> <attribute name="libDirs">var/shared/lib</attribute> </gbean> </module> <module name="geronimo/tomcat-deployer/1.1-410806/car"/> <module name="geronimo/welcome-tomcat/1.1-410806/car"/> <module name="geronimo/webconsole-tomcat/1.1-410806/car"/> <module name="geronimo/uddi-tomcat/1.1-410806/car" load="false"/> <module name="geronimo/remote-deploy-tomcat/1.1-410806/car" /> <module name="geronimo/hot-deployer/1.1-410806/car" /> </attributes>
Para cambiar al puerto predeterminado, busca al código que se muestra a continuación en el archivo config.xml, y cambia el número de puerto.
<gbean load="false" name="FirstValve"/> <gbean name="TomcatResources"/> <gbean name="TomcatWebConnector"> <attribute name="host">0.0.0.0</attribute> <attribute name="port">9000</attribute> <attribute name="redirectPort">8443</attribute> </gbean>
<module name="geronimo/activemq/1.1/car"/> <module name="geronimo/jetty/1.1/car"> <gbean name="JettyWebConnector"> <attribute name="host">0.0.0.0</attribute> <attribute name="port">9000</attribute> <attribute name="redirectPort">8443</attribute>
Guarda al archivo, con lo que, al iniciar al Servidor Geronimo podrás apuntar tu explorador web a
Cambiando al usuario predefinido y su contraseña
Apache Geronimo se instala con el usuario predeterminado - system y contraseña - manager. Existen tres opciones para cambiar al usuario y contraseña predeterminados.
- Editando los archivos .properties.
- A través de la consola.
- Creando un nuevo security realm.
Editando los archivos .properties
Abre el archivo <geronimo_home>/var/security/groups.properties y edita su contenido. Agrega cualquier nombre de usuario que requieras y guarda al archivo.
admin=usuario1,usuario2
A continuación, abre el archivo <geronimo_home>/var/security/users.properties. Puedes cambiar la contraseña para la cuenta system existente ó agregar nuevos usuarios. Cuando se agreguen nuevos usuarios, el nombre de usuario debe ser el mismo que se agregó al archivo groups.properties.
usuario1=contraseña1
usuario2=contraseña2
En este ejemplo, dos usuarios han sido agregados, usuario1 y usuario2. La cuenta predeterminada system ha sido eliminada. Tanto usuario1 como usuario2 pueden acceder a la consola y a las herramientas de activación en la línea de comandos.
A través de la consola
Ingresa a la consola y haz clic en Console Realm dentro del panel de navegación de consola - folder de seguridad.
Esto te llevará a la pantalla de Console Realm Users and Groups.
Haz clic en la liga Create New User para agregar un nuevo usuario, o bien, en los nombres de usuarios para editar a los existentes.
Haz clic en la liga Create New Group para agregar a un nuevo usuario al grupo.
Una vez que el nuevo usuario y contraseña han sido agregados, cierra sesión de la consola e intenta ingresar con el nuevo usuario y su contraseña.
La creación de tu propio security realm esta siendo cubierta en las tareas administrativas, bajo la documentación principal 1.1.
Topologías
En el mundo globalizado actual, las organizaciones modernas enfrentan muchas oportunidades y retos día a día. Muchos de esos retos pueden probar (onus) la infraestructura TI de la organización, por lo que su configuración es crucial. El servidor de aplicaciones Apache Geronimo soporta aplicaciones enterprise de-tamaño-pequeñas-a-medianas, proporcionando soporte robusto y seguro para las especificaciones J2EE más recientes. Esta sección destacará las distintas opciones de configuración que pueden ser usadas en tu ambiente de producción.
Sistema de dos capas (two-tier)
La siguiente figura muestra una máquina cliente accesando una aplicación mantenida en el servidor Geronimo. Aunque la figura indica sólo una máquina cluente, varias máquinas pueden estar conectadas al servidor permitiendo que usuarios en esas máquiinas tengan acceso a las aplicaciones Web mantenidas en Geronimo, mediante un explorador Web estándar.
El perfil cliente de la aplicación puede variar desde una interfaz simple de línea de comandos a una interfaz compleja que puede ser creada mediante tecnología popular GUI. Estas aplicaciones pueden acceder la capa Web mediante la conexión al servidor, usando sus propias conexiones HTTP, ó pueden tener acceso a objetos de la capa de negocios y EIS con el apoyo del contenedor de aplicación cliente Geronimo.
Características de la aplicación cliente Geronimo : -
- Separado del servidor Geronimo.
- La comunicación con el servidor Geronimo es sobre la red.
- Proporciona dependencia y mapeo de administración para la aplicación cliente y resolución de referencia.
Sistema de tres capas (three-tier)
La arquitectura de sistema de tres capas es más escalable que la de dos capas, y soporta cientos de usuarios y organización. También incrementa la flexibilidad y libertad.
Configurando con Apache HTTPd
Actualmente el servidor Web Apache es el mejor software servidor HTTP, más preferido, y de mayor uso en Internet. En tu ambiente de producción, usando Geronimo con servidor Web Apache te debería dar ventajas sólidas, como se indica a continuación.
- Clustering y Balanceo de Carga
Clustering permite, a un servidor de aplicaciones, el soportar múltiples nodos con failover, compartición de datos de sesión, y balanceo de carga a lo largo de varios nodos de red. El balanceo de carga de una aplicación puede hacerse con el apoyo incluido en el servidor Apache.
- Codificador SSL
Las ventajas de proxies de servidor Web son que te ofrecen una manera de obtener afinidad de servidor para mensajes encriptados-SSL, sin la necesidad de hardware adicional. Cabe señalar que el extenso procesamiento SSL pone una carga extra en el proxy. Lo anterior será controlado por el servidor Apache mientras Geronimo brinda atención a la lógica de negocio de la aplicación.
- Compartición de Carga de Aplicación
En muchos sistemas que proporcionan servicios, los servidores Apache y Geronimo trabajan juntos para atender las peticiones HTTP. Apache atiende las peticiones para las páginas estáticas (incluyendo archivos HTML, JPEG, y GIF), mientras Geronimo atiende peticiones de páginas dinámicas (servlets ó JSPs) con la ayuda de Tomcat/Jetty. Los servidores Geronimo también pueden atender páginas estáticas, pero en sistemas combinados, son comúnmente configurados para atender peticiones dinámicas.
Resumen
El uso del servidor de aplicaciones Geronimo te permite construir una infraestructura enterprise segura, que cumple con los requisitos y estándares más recientes. Este artículo te proporcionó una perspectiva a la posibilidad de adaptar la configuración que parte de la instalación estándar de Geronimo, mostrando algunas alternativas en su instalación.