introducción a jboss

32
JBOSS Servidor de aplicaciones

Upload: iker-canarias

Post on 05-Dec-2014

12.215 views

Category:

Technology


3 download

DESCRIPTION

Introducción, configuración e instalación del Servidor de aplicaciones JBoss(sobre Ubuntu). Se repasan EJBs, Servicios Web, JBOSS Seam, seguridad con JAAS, etc. todo orientado a JBOSS.

TRANSCRIPT

Page 1: Introducción a JBoss

JBOSSServidor de aplicaciones

Page 2: Introducción a JBoss

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

Page 3: Introducción a JBoss

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.

Page 4: Introducción a JBoss

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.

Page 5: Introducción a JBoss

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)

Page 6: Introducción a JBoss

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.

Page 7: Introducción a JBoss

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.

Page 8: Introducción a JBoss

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.

Page 9: Introducción a JBoss

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.

Page 10: Introducción a JBoss

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.

Page 11: Introducción a JBoss

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

Page 12: Introducción a JBoss

Introducción

Consola de administración

Page 13: Introducción a JBoss

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. ;)

Page 14: Introducción a JBoss

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.

Page 15: Introducción a JBoss

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.

Page 16: Introducción a JBoss

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.

Page 17: Introducción a JBoss

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...

Page 18: Introducción a JBoss

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

Page 19: Introducción a JBoss

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

Page 20: Introducción a JBoss

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.

Page 21: Introducción a JBoss

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.

Page 22: Introducción a JBoss

EJB

Arquitectura básica

Page 23: Introducción a JBoss

EJB

EJEMPLO DE EJB

Page 24: Introducción a JBoss

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

Page 25: Introducción a JBoss

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.

Page 26: Introducción a JBoss

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.

Page 27: Introducción a JBoss

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.

Page 28: Introducción a JBoss

JSF

Incluye Un modelo de eventos en el lado del servidor.

Administración de estados.

Beans administrados.

Page 29: Introducción a JBoss

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

Page 30: Introducción a JBoss

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

Page 31: Introducción a JBoss

Temas pendientes

Lista de temas Conectar Apache2 con JBOSS.

JSP que sirva contenido estático del Apache.

Page 32: Introducción a JBoss

FINJBOSS

Iker [email protected]