HomeApache Geronimo v1.0 > Documentación > Apache Geronimo v1.0 - Guía de Usuario > Arquitectura


Article translated by: Waldo Ramírez Montaño
_*Artículo original en inglés, donado por:* Hernan Cunico_

Visión general de Apache Geronimo

Apache Geronimo es un servidor de aplicaciones J2EE robusto, completamente funcional. Geronimo integra una cantidad de otros proyectos _"código abierto" (open ource)_, como se les describe en la lista siguiente:

  • Jetty
    Jetty es un servidor de aplicaciones Web, que soporta Java Servlet 2.4 y JavaServer Pages 2.0. Puede consultar mayor detalle de Jetty en la siguiente URL:
    http://jetty.mortbay.org/
  • Apache Tomcat
    Tomcat es un servidor de aplicaciones Web, que soporta Java Servlet 2.4 y JavaServer Pages 2.0. Puede consultar mayor detalle de Tomcat en la siguiente URL:
    http://tomcat.apache.org/
  • Apache Derby
    Derby es un Sistema de Administración de Bases de Datos Relacionales (Relational Database Management System, RDBMS) con pequeño "perfil" (footprint), completamente funcional, con soporte JDBC. Puede consultar mayor detalle de Derby en la siguiente URL:
    http://db.apache.org/derby
  • Apache Axis
    Axis en una implementación del Protocolo de Acceso de Objeto Simple (Simple Object Access Protocol, SOAP). Axis proporciona soporte para Servicios Web (Web Services) e Interoperabilidad de Servicios Web (Web Services Interoperability, WS-I). Puede consultar mayor detalle de Axis en la siguiente URL:
    http://ws.apache.org/axis/
  • ApacheDS
    ApacheDS es una implementación del Protocolo Ligero de Acceso a Directorios (Lightweight Directory Access Protocol, LDAP). ApacheDS proporciona servicios LDAP v3, métodos de autenticación segura y extensiones para Seguridad de la Capa de Transporte (Transport Layer Security, TSL) entre otros. Puede consultar mayor detalle de ApacheDS en la siguiente URL:
    http://directory.apache.org/
  • TranQL
    TranQL es un marco de trabajo para la construcción de máquinas persistentes. Puede consultar mayor detalle de TranQL en la siguiente URL:
    http://tranql.codehaus.org/
  • OpenEJB
    OpenEJB es un Sistema Contenedor de EJB, modular, configurable y extendible, así como un Servidor EJB.
    http://www.openejb.org/
  • MX4J
    MX4J es una implementación de las Extensiones de Administración Java (Java Management Extensions, JMX) y del API Remoto JMX (JMX Remote API, JSR-160). Puede consultar mayor detalle de MX4J en la siguiente URL:
    http://mx4j.sourceforge.net/
  • ActiveMQ
    ActiveMQ es un proveedor de Servicio Mensajería Java (Java Messaging Service, JMS) y Fábrica de Mensaje (Message Fabric) que soporta clustering, multicast, XA y persistencia, entre otros. Puede consultar mayor detalle de ActiveMQ en la siguiente URL:
    http://activemq.codehaus.org/
  • Spring framework
    Spring es un marco de trabajo para aplicaciones J2EE que pretende reducir el esfuerzo de desarrollo para la construcción de aplicaciones a partir de componentes de Inversión de Control (Inversion of Control, IoC). Puede consultar mayor detalle del marco de trabajo Spring en la siguiente URL:
    http://www.springframework.org/

Regresar a la sección superior

Visión general de GBeans

Como introducción, casi todo en Apache Geronimo es un Geronimo Bean, ó más amigable, un GBean. Apache Geronimo esta construido en un kernel ligero que proporciona integración centralizada. El propósito de su kernel es el administrar el ciclo de vida de los GBeans, así como sus dependencias.

GBeans son los cimientos a partir de los cuales esta hecho Apache Geronimo. Como se mencionó previamente, casi todo en Geronimo es un GBean, esto es, contenedores, aplicaicones, conectores, etc, tal que un GBean pueda agregar con certeza a otros GBeans, en especial a los de gran dimensión. Una instancia de servidor Geronimo es básicamente una colección de GBeans, tal que el kernel de Geronimo pudiese ser, en esencia, un contenedor de GBean.

GBeans pueden mantener estados, definir dependencias (internas y externas) y reaccionar a ciertos eventos del ciclo de vida. Esta capacidad puede ser usada para guardar el estado actual del GBean y recobrar a dicho estado en un tiempo posterior. GBeans también pueden ser administrados a través de una interfaz de administración (línea de comandos ó la Consola Geronimo), permitiéndoles poder ser iniciados, detenidos y editados, al vuelo.

GBeans podrían registrar interés en el estado de otros GBeans con características particulares. Cuando un GBean con dichas características es iniciado, una referencia a dicho GBean es inyectada en el GBean que registró interés. Este proceso es conocido como *inyección de dependencia* lo cual provoca que GBeans sean un marco de trabajo poderoso para la construcción de sistemas vagamente acoplados (loosely coupled).

En pocas palabras, el marco de trabajo GBeans proporciona:

  • Componentes con modelo estilo Inversión de Control (IoC) (Inversion of Control).
  • Acoplación de identidad lógica en un modelo de clasificación.
  • Atributos administrados, con propósitos de configuración/instrumentación.
  • Atributos persistentes, las propiedades son almacenadas en estado fuera de línea (offline).
  • Operaciones lógicas que pueden ser re-mapeadas.
  • Referencias a y dependencias en otros GBeans.
  • Modelo de ciclo de vida.

La siguiente figura ilustra el ciclo de vida de GBeans.

Regresar a la sección superior