# Apache Beehive

Apache Beehive (colmena de abejas de Apache, en español) es un marco de aplicación de Java diseñado para hacer que el desarrollo de las aplicaciones basadas en Java EE sea más rápido y más fácil. Utiliza los distintos proyectos de código abierto en Apache tales como XMLBeans. Aprovecha las últimas innovaciones en Java 5 que incluyen JSR-175 que es una facilidad para anotar clases, métodos y campos para que pueden ser tratadas de manera especial por herramientas de tiempo de ejecución. Se basa en el marco por BEA Systems Weblogic Workshop para su serie 8.1. BEA más tarde decidió donar el código a Apache, para que un público más amplio pudiese obtener la oportunidad de utilizar la BeeHive.

## Historia

La versión 8.1 de Weblogic Workshop de BEA incluye un número de importantes mejoras frente a la versión 7.0. La versión anterior estuvo más centrada en crear servicios web sólidos rápidamente. Sin embargo, 7.0 no tenía muchos clientes, y no pudo causar gran revuelo en el mercado. Sin embargo, para la versión 8.1, BEA creó un conjunto nuevo IDE que ayudó a programadores a desarrollar aplicaciones basadas en Java EE más rápidamente. En esto fue significativamente mejor que 7.0 al tener características más avanzadas y obtener varios premios y ganar muchos elogios de la crítica. Sin embargo, se estaba gestando una nueva revolución en el Universo de Java en forma de Eclipse y parecía que todo el mundo estaba moviéndose hacia él. Aunque Workshop 8.1 no tuvo éxito en la medida que pretendía, el marco del taller (Weblogic Workshop Framework) que fue desarrollado para la versión 8.1 fue reconocido como un buen marco (framework) sólido. A fin de que se puede utilizar con otros servidores de aplicaciones basados en Java EE, BEA decidió abrir el código del proyecto mediante la Apache Software Foundation.

## Componentes de colmena
### Netui Page Flows

Page Flows (flujos de página) es un marco de aplicación de Apache Struts que permite facilitar herramientas y actualizaciones automáticas de los archivos de configuración.

### Controles

Este es el corazón del marco de la colmena (Beehive). Un control puede definirse como un programa que puede utilizarse por el desarrollador para obtener acceso rápido a recursos de nivel empresarial, como Enterprise JavaBeans (EJB), servicios web, etc. Por ejemplo, considere acceder a unas viejas judías Java (JavaBeans) legacy EJB 2. Involucraba mucho código de placa (boiler-plate) como obtener acceso a una interfaz de inicio y, a continuación, crear/encontrar un EJB utilizando métodos de buscador y, a continuación, acceder a los métodos remotos de la JavaBean. Mediante un control se simplificó esto porque ello hizo la mayor parte del boiler plate o del código de la rutina para el desarrollador, que luego podría concentrarse más en la lógica empresarial en lugar de preocuparse por los detalles técnicos sobre la tecnología Java EE. Si el desarrollador es lo suficientemente avanzado, incluso entonces sería útil porque entonces el desarrollador podría concentrarse en cosas más útiles como construir un patrón de diseño fachada para un conjunto complejo de APIs de aplicaciones. En esencia un control de una judía de EJB 2 legacy aseguraba que el desarrollador podría simplemente utilizar el control y llamar a cualquier método de negocio de EJB, de la misma forma que lo haría cualquier otra clase Java. Cuando llegó EJB 3, tal simplificación ya era proporcionada por la especificación EJB misma,
y los controles de Beehive eran de poco uso sistemático aquí.

### Webservices

Este es el tercer componente de la colmena y permite a los desarrolladores crear servicios web utilizando meta-datos/anotaciones rápidamente. En esencia mediante el uso de metadatos y anotaciones, se pueden crear servicios web complejos utilizando características como: conversación, estado, etc., rápidamente y, puesto que todos las metadatos y anotaciones están en un archivo, es más fácil la depuración y el mantenimiento. Mediante este enfoque cualquier clase de Java plain puede convertirse en un servicio web simplemente mediante la adición de anotaciones en los archivos de código fuente de Java. Esto se basa en JSR-181 que se basa en JSR-175.