# WildFly

WildFly (formalmente WildFly Application Server), anteriormente conocido como JBoss AS, o simplemente JBoss, es un servidor de aplicaciones Java EE de código abierto implementado en Java puro, más concretamente la especificación Java EE. Al estar basado en Java, JBoss puede ser utilizado en cualquier sistema operativo para el que esté disponible la máquina virtual de Java. JBoss Inc., empresa fundada por Marc Fleury y que desarrolló inicialmente JBoss, fue adquirida por Red Hat en abril del 2006. En febrero de 2007, Marc Fleury deja Red Hat.
WildFly es software libre y de código abierto, sujeto a los requisitos de la GNU Lesser General Public License (LGPL), versión 2.1.
El proyecto se nutre de una red mundial de colaboradores. Los ingresos de la empresa están basados en un modelo de negocio de servicios. JBoss implementa todo el paquete de servicios de J2EE.
El 20 de noviembre de 2014, JBoss Application Server se renombra WildFly. La JBoss Community y otros productos JBoss de Red Hat como JBoss Enterprise Application Platform no se renombran. Pese al cambio, JBoss sigue siendo en 2016 el término más usado para referirse al producto, tanto en términos de trabajo como en la web, debido a esto.
Desde entonces la URL http://www.jboss.org/ sirve JBossDeveloper, el portal para desarrolladores de JBoss/WildFly, pasando http://wildfly.org/ a ser la web oficial del producto.

## Proyectos
### Servidor de aplicaciones JBoss

JBoss AS es el primer servidor de aplicaciones de código abierto, preparado para la producción y certificado J2EE 1.4, disponible en el mercado, ofreciendo una plataforma de alto rendimiento para aplicaciones de e-business. Combinando una arquitectura orientada a servicios SOA, con una licencia GNU de código abierto, JBoss AS puede ser descargado, utilizado, incrustado y distribuido sin restricciones por la licencia.
Las características destacadas de JBoss incluyen :
* Producto de licencia de código abierto sin coste adicional.
* Cumple los estándares.
* Confiable a nivel de empresa
* Incrustable, orientado a arquitectura de servicios.
* Flexibilidad consistente
* Servicios del middleware para cualquier objeto de Java.
* Soporte completo para JMX.

#### EJB 3.0

Implementa la especificación inicial de EJB 3.0.

#### JBoss AOP

JBoss AOP está orientado a trabajar con Programación Orientada a Aspectos. Esto permitirá añadir fácilmente servicios empresariales (transacciones, seguridad, persistencia) a clases Java simples.

#### Hibernate

Hibernate es un servicio de persistencia objeto/relaciones y consultas para Java. Hibernate facilita a los desarrolladores crear las clases de persistencia utilizando el lenguaje Java - incluyendo la asociación, herencia, polimorfismo y composición y el entorno de colecciones Java.

#### JBoss Cache

JBoss Cache es un producto diseñado para almacenar en caché los objetos Java más frecuentemente accedidos de manera que aumente de forma notable el rendimiento de aplicaciones e-business. Eliminando accesos innecesarios a la base de datos, JBoss Cache reduce el tráfico de red e incrementa la escalabilidad de las aplicaciones.
JBoss Cache proporciona dos APIs de caché que se ajustan a nuestras necesidades. La API de JBossCache ofrece una caché tradicional basada en nodos y estructurada en árbol, y la API JBossCacheAOP, edificada sobre la API de JBossCache, proporciona capacidad para la replicación de objetos Java de grano fino, con el máximo beneficio del rendimiento.

#### JBoss IDE

Brinda un IDE Eclipse para JBoss AS. De esta forma la depuración y otras tareas asociadas al desarrollo de aplicaciones puede ser realizadas desde el entorno de Eclipse.

#### JBoss jBPM

Gestor de procesos de negocio, también denominado "WorkFlow".
jBPM es una plataforma para lenguajes de procesos ejecutables, cubriendo desde gestión de procesos de negocio (BPM) bajo workflow hasta orquestación de servicios. Actualmente jBPM soporta tres lenguajes de procesos, cada uno enfocado a un ambiente y funcionalidad específica:
* jPDL.
* BPEL.
* Pageflow.
jBPM soporta a estos lenguajes de procesos sobre una sola tecnología: Máquina Virtual de Procesos(PVM)

#### Gatein

Es una plataforma de código abierto para albergar y servir una interfaz de portales Web, publicando y gestionando el contenido así como adaptando el aspecto de la presentación.
Como características principales categorizadas cabe destacar:
Tecnología y arquitectura
* JEMS: hace uso del potencial de JBoss Enterprise Middleware Services : JBoss Application Server, * JBoss Cache, Jgroups e Hibernate.
* DB Agnóstico: funciona con cualquier SGBD soportado por Hibernate.
* SSO/LDAP: hace uso de las soluciones de single sign on (SSO) de Tomcat y JBoss.
* Autenticación JAAS: módulos de autenticación adaptables vía JAAS.
* Caché: utiliza cacheado en la capa de visualización para mejor rendimiento.
* Clusterizable: soporte de Cluster que permite que un portal pueda ser desplegado en varias instancias.
* Hot-Deployment: hace uso de las características de autodespliegue dinámico incluido en JBoss.
* Instalador SAR: instalación basada en web que hace que la instalación y configuración inicial sea muy sencilla.
Estándares soportados
* Portlet Specification and API 1.0 (JSR-168)
* Content Repository for Java Technology API (JSR-170)
* Java Server Faces 2.0 (JSR-252)
* Java Management Extensión (JMX) 1.2
* Compatibilidad 100% con J2EE 1.4 al utilizar JBoss AS.
Contenedor de Portales
* Múltiples Instancias de Portales: habilidad para ejecutar múltiples portales desplegados en un único contenedor.
* IPC (Inter-Portlet Communication): la API habilita a los portlets crear enlaces a otros objetos como páginas, portales o ventanas.
* Dynamicity: permite a administradores y usuarios crear y eliminar objetos como portlets, páginas, portales, temas y composición en tiempo de ejecución.
* Internacionalización: permite utilizar recursos de internacionalización para cada portlet.
* Servicios empotrables: la autenticación realizada por el contenedor de servlets y JAAS posibilita cambiar el esquema de autenticación.
* Arquitectura basada en Páginas: permite for the grouping/division of portlets on a per-page basis.
* Soporte de Frameworks existentes: los Portlets pueden utilizar Struts, Spring MVC, Sun JSF-RI, AJAX o MyFaces.
Temas y Layouts
* Temas y Layouts fácilmente intercambiables: los temas y layouts nuevos que contienen imágenes se pueden desplegar en ficheros WAR.
* API Flexible: la API de Temas y Layout están diseñados para separar la lógica de negocio de la capa de presentación.
* Estrategia de layout por página: a cada página se le puede asignar layouts distintos.
Funcionalidades de Usuarios y Grupos
* Registro y validación de usuarios: parámetros configurables del registro permite la validación de usuarios vía email previa a la activación.
* Acceso de usuarios: hace uso de la autenticación del contenedor de servlets.
* Crear/Modificar usuarios: habilita a los administradores crear/modificar perfiles de usuarios.
* Crear/Modificar roles: habilita a los administradores crear/modificar roles.
* Asignación de roles: habilita a los administradores asignar roles a los usuarios.
Gestión de Permisos
* API extensible de permisos: permite asignar permisos de acceso a portlets basados en la definición de roles.
* Interfaz de administración: asignación de permisos a roles en cualquier momento para portlets, páginas o instancias de portal desplegados.
Sistema de gestión de contenidos
* Compatible JCR: el CMS utiliza Apache Jackrabbit, una implementación en código abierto del estándar Java Content Repository API.
* Soporte de almacenamiento en SGBD o en el sistema de ficheros.
* Soporte externo de contenidos tipo Blob (binarios): se puede configurar el almacenamiento en el sistema de ficheros de contenido binario de gran tamaño y los nodos con las referencias y propiedades residan en el SGBD.
* Control de versiones: Todo contenido modificado/creado es autoversionado con el historial de cambios, que pueden ser revisados en cualquier momento.
* Contenidos mostrados en URLs amigables para los motores de búsqueda: http://yourdomain/portal/content/index.html (enlace roto disponible en Internet Archive; véase el historial, la primera versión y la última). (sin incluir las acciones de los portlets)
* URLs del portal sencillas: mostrar descarga de binarios con URLs fáciles de recordar. (http://domain/files/products.pdf (enlace roto disponible en Internet Archive; véase el historial, la primera versión y la última).)
* Soporte de múltiples instancias de Portlets HTML: permite que instancias extra de contenido estático del CMS sean publicadas en ventanas distintas.
* Soporte de directorios: crear, mover, eliminar, copiar y subir árboles completos de directorios.
* Funciones de Ficheros: crear, mover, copiar, cargar y eliminar ficheros.
* Explorador de directorios embebido: cuando se copia, mueve, elimina o se crean nuevos ficheros, los administradores pueden simplemente navegar por el árbol de directorios hasta encontrar la colección en la que se realizará la acción.
* Arquitectura fácil de usar: todas las acciones que se pueden realizar sobre ficheros pueden hacerse a base de clicks de ratón.
* Editor HTML: con modo WYSIWYG, previsualización y edición de código HTML. Soporta la creación de tablas, fuentes, zoom, enlaces a imágenes y URLs, soporte de películas flash, listas con viñetas o numéricas...
* Soporte de editor de estilos: el editor WYSIWYG muestra la hoja de estilo actual del Portal, para un sencillo intercambio de clases.
* Soporte de Internacionalización: los contenidos pueden ser asignados para una zona regional determinada y ser mostrada en función de la configuración de usuario o basado en las opciones del navegador web .
Tablón de mensajes
* Respuesta inmediata mediante un solo click.
* Respuesta con cita: se puede citar un tema existente al responder.
* Control del flujo: previene el abuso de envío masivo de mensajes mediante una ventana de tiempo configurable.
* Creación de categorías contenedoras de foros.
* Operaciones sobre Foros: se puede crear un foro y asignarlo a una categoría específica, además se puede copiar, mover, modificar y eliminar.
* Reordenación de foros y categorías: se puede establecer el orden en el que se quiere que aparezcan los foros y categorías en las páginas.

#### JGroups

Se trata de una biblioteca de comunicaciones orientada a la creación de aplicaciones de mensajería.

##### Tomcat

Tomcat es un contenedor de servlets utilizado como la implementación de referencia oficial para las tecnologías de JavaServer Pages y Java Servlet. Las especificaciones de estas tecnologías las desarrolla Oracle bajo el proceso de Comunidad Java.

#### JBoss Mail Server

Es el servidor de correo para la arquitectura de JBoss; se utiliza principalmente con JEMS.

#### JBoss MQ

Para la mensajería en JMS.

#### JBoss Messaging

Provee un servicio de mensajería robusto y de alto rendimiento, soporta esquemas de integración que van desde simples mecanismos entre aplicaciones hasta grandes Arquitecturas de Servicios (SOA) y Canales de Servicios Empresariales (ESB).

#### Rubia Forums

Es el paquete dedicado especialmente a los foros como su nombre indica. Es un foro de discusión en Java similar en prestaciones y aspecto a phpBB. Tiene licencia BSD, soporte para bases de datos MySQL, PostgreSQL y HSQLDB, una interfaz altamente configurable, soporte para un número ilimitado de grupos de usuarios con permisos distintos, notificaciones por correo electrónico de actividad en los posts, soporte para internacionalización, etc.
Las novedades incluyen: soporte RSS para foros, hilos y mensajes individuales, caché configurable, soporte para HSQLDB, mejoras de rendimiento y estabilidad, internacionalización configurable para cada usuario, instalación gráfica por medio de una interfaz web, así como nuevas opciones de administración relacionadas con la seguridad y los permisos de uso, entre otras características.