Upload
edinso-perez
View
21
Download
2
Embed Size (px)
Citation preview
JBOSSServidor de aplicaciones
Introducción
Conceptos básicos Servidor de aplicaciones J2EE Open Source implementado en Java.
Multiplataforma.
Desarrollo: JBoss Inc. → Red Hat en 2006.
Implementa todo el paquete de servicios de J2EE.
Versión estable actual (11/2011): JBOSS 7.x.
Vamos a usar la JBOSS 5.1.0 GA
http://www.jboss.org/jbossas
Introducción
Conceptos básicos Licencia de código abierto (GPL/LGPL).
Cumple los estándares.
Incrustable, orientado a arquitectura de servicios.
Flexibilidad consistente.
Middleware para cualquier objeto de Java.
Ayuda profesional 24x7 de JBOSS.
Soporte completo para JMX.
Introducción
¿Qué ofrece JBOSS? EJB 3.0: Implementa la especificación EJB 3.0.
JBoss AOP: Orientado a Programación Orientada a Aspectos (en Java AspectJ).
Hibernate: Servicio de persistencia de objeto/relaciones y consultas para Java.
JBoss Cache: Aumenta el rendimiento de aplicaciones → Se cachean objetos Java más frecuentemente accedidos.
Introducción
¿Qué ofrece JBOSS? JBoss IDE: IDE Eclipse para el JBoss AS.
JBoss jBPM: WorkFlow. Soporta tres lenguajes de procesos:
• PDL• BPEL• Pageflow
JBoss Portal: plataforma para albergar y servir una interfaz de portales Web. (Prtlets: JSR-168)
Introducción
¿Qué ofrece JBOSS? Tomcat: Contenedor de servlets.
JBoss Mail Server: Servidor de correo (JEMS).
JBoss MQ: Colas de mensajes (JMS).
JForum: Paquete dedicado a foros: soporte RSS, hilos y mensajes individuales, caché configurable, internacionalización, instalación gráfica, etc.
Introducción
Configuraciones (Modos) minimal: Servicios mínimos para que funcione Jboss. Sin contenedor web, EJB ni JMS.
default: Tiene los servicios usados más frecuentemente.
all: Arranca todos los servicios disponibles. Incluyendo los servicios de clustering y RMI/IIOP.
standard: Configuración de servicios certificada JavaEE 5.
web: Configuración ligera de contenedor web.
Introducción
Estructura de directorios bin: arranque, cierre, y otros scripts y ejecutables.
client: JAR's que serán utilizados por los distintos. clientes de los EJB's utilizados en JBoss.
docs: contiene documentación acerca de Jboss.
lib, common: JAR's requeridos en cualquier modo.
server: modos all, default, minimal, standard, web.
Introducción
Estructura de directorios [modo]/conf: Contiene el fichero 'bootstrap.xml' (configuración de servidor).
[modo]/data: Almacena contenido en el sistema. Mantiene datos persistentes aunque se reinicie el servidor. Ejemplo → Hypersonic: BD embebida guardan datos aquí.
[modo]/deploy: Contiene aplicaciones 'deployables' (WARs, EARs, JARs, etc.)
[modo] = all, default, minimal, standard, web.
Introducción
Estructura de directorios [modo]/lib: Contiene librerías JAR.
[modo]/log: Ficheros de logs.
[modo]/tmp: Ficheros temporales. Al desplegar aplicaciones, JBOSS escribe sus ficheros de despliegue aquí.
[modo]/work: Usado por Tomcat para las JSP compiladas.
[modo] = all, default, minimal, standard, web.
Introducción
Instalación y ejecución Instalar Java
Descargar JBOSS (jboss-5.1.0.GA.) aquí.
Descomprimir el ZIP en /usr/local/jboss
Arrancar JBOSS: • cd /usr/local/jboss/bin• ./run.sh o /etc/init.d/jboss start
Prueba: Consola de administración de JBOSS: http://localhost:8080/admin-console
Introducción
Consola de administración
Introducción
Instalación y ejecución Es posible elegir arrancar las instancias de JBOSS:
• ./run.sh -c nombre_instancia
Es habitual copiar la instancia default y pegarla como “deusto” (por ejemplo):
• sudo cp -r -p default/ deusto• ./run.sh -c deusto• Siempre tendremos default limpio por si tenemos que recuperar alguna configuración inicial. ;)
Configuración
Ficheros de configuración conf/jboss-service.xml – Configura servicios que provee JBOSS cuando se arranca. conf/standardjboss.xml – Configuración por defecto para EJBs. conf/standardjbosscmp-jdbc.xml – Datasources por defectos, databases, tipos de datos de BD, etc. conf/bootstrap.xml – Contenedores que se desplegarán en la fase de arranque. (AOP, JMX, etc.) conf/java.policy– Políticas simples de seguridad de Java.
Configuración
Ficheros de configuración conf/jbossjta-properties.xml – Propiedades por defecto del gestor de transacciones. conf/standardjboss.xml – Configuración por defecto para EJBs. conf/jndi.properties – Propiedades iniciales del contexto de JNDI. conf/jboss-log4j.xml – Configuración de log4j. login-config.xml – Ejemplo de configuración de seguridad en la parte del servidor cuando se utiliza JAAS como sistema de seguridad.
Configuración
Directorio deploy Directorio de despliegue de aplicaciones. Soltar dentro de deploy la aplicación (WAR, EAR, etc.) → JBOSS la despliega. Eliminar aplicación → JBOSS la repliega. Contiene ficheros de configuración de despliegues:
• mail-service.xml, transaction-service.xml, etc.• *-ds.xml: Para JBOSS son datasources. Por ejemplo: hsqldb-ds.xml: configura los datasource oara la base de datos embebida Hypersonic.
Configuración
Configuración de un Datasource Crear fichero nombre-ds.xml: oracle-ds.xml Pegar el fichero en el directorio deploy. JBOSS lo despliega como un datasource. Ejemplos de datasources:
/usr/local/jboss/docs/examples/jca• db2-400-ds.xml• oracle-ds.xml• mssql-ds.xml• msaccess-ds.xml• Muchos más...
Seguridad
JAAS Java Authentication and Authorization Service Interfaz que permite a las aplicaciones Java acceder a servicios de control de autenticación y acceso. Diferentes formas de seguridad:
• Ficheros de properties.• Base de datos.• Etc.
EJEMPLO JAAS1
EJB
Conceptos básicos Enterprise JavaBeans Su especificación detalla cómo los servidores de aplicaciones proveen objetos desde el lado del servidor (EJB):
• Comunicación remota utilizando CORBA• Transacciones• Control de la concurrencia• Eventos utilizando JMS • Servicios de nombres y de directorio• Seguridad
EJB
Tipos de EJBs EJB de Entidad (Entity EJBs): Encapsulan objetos del lado del servidor que almacena los datos para su persistencia.
EJB de Sesión (Session EJBs): Lógica de negocio.
EJB dirigidos por mensajes (Message-driven EJBs): beans con funcionamiento asíncrono.
EJB
Funcionamiento de EJB Se disponen en contenedor EJB dentro del JBOSS.
Cada EJB facilita una clase de implementación Java y dos interfaces Java → Remote y Home.
• Home: Permite crear las instancias de EJB de entidad o sesión a través del método create que puede ser sobrecargado.
• Remote: Especifica los métodos de instancia públicos encargados de realizar las operaciones.
EJB
Arquitectura básica
EJB
EJEMPLO DE EJB
Servicios web
WS en JBOSS No requiere ninguna aplicación externa (Axis2).
JBOSS contiene un contenedor de WS.
Se despliegan como WARs.
Se implementan a través de Java Annotations (javax.jws.*).
Para ver los servicios web disponibles en JBOSS:http://localhost:8080/jbossws/services
Servicios web vs EJB
¿Cuando usar unos u otros? EJB implican clientes Java. WS pueden consumirse desde plataformas distintas.
Los servicios web no necesitan redistribuir ningún cliente, basta con el WSDL publicado accesible por HTTP y actualizado continuamente.
A nivel interno se recomienda EJB.
Para clientes externos se recomienda WS.
EJB mejor rendimiento que servicios web.
JSF
Conceptos básicos Java Server Faces: especificación desarrollada por la Java Community Process como JSR 127.
Tecnología y framework para aplicaciones web Java que simplifica el desarrollo de interfaces de usuario.
Usa JavaServer Pages (JSP) para desplegar páginas.
Puede ser integrado con las bibliotecas de componentes JSF JBoss RichFaces o ICEFaces.
JSF
Incluye APIs para componentes de una interfaz de usuario y administrar su estado, manejar eventos, validar entrada, definir un esquema de navegación de las páginas y dar soporte para internacionalización y accesibilidad.
Conjunto por defecto de componentes para la interfaz de usuario.
Dos bibliotecas de etiquetas personalizadas para JavaServer Pages que permiten expresar una interfaz JavaServer Faces dentro de una página JSP.
JSF
Incluye Un modelo de eventos en el lado del servidor.
Administración de estados.
Beans administrados.
JSF
Implementaciones JSF Reference Implementation de Sun Microsystems.
MyFaces: proyecto de Apache Software Foundation.
Rich Faces:
ICEFaces: http://www.icefaces.org/main/home/
jQuery4jsf: Basados en uno de los más populares framework javascript → jQuery.
PrimeFaces
JBOSS SEAM
Implementaciones Framework desarrollado por JBoss,
Combina a los 2 frameworks EJB3 y JSF.
Desarrollo WYSIWYG es facilitado a través del uso de las JBoss Tools.
Jboss Tools: Conjunto de plug-ins diseñados para el entorno integrado de desarrollo Eclipse.
http://www.seamframework.org/Home
Temas pendientes
Lista de temas Conectar Apache2 con JBOSS.
JSP que sirva contenido estático del Apache.
FINJBOSS
Iker [email protected]