65
19 Octubre 2009 Curso JBoss César Pajares – ECM /CMS Manager [email protected] Visión general de JBoss Application Server Jboss Professional Open Source

JBoss AS jeap - Curso JBoss JB366 Día 1

Embed Size (px)

DESCRIPTION

JBoss AS jeap - Curso JBoss JB366 Día 1 Visión general de JBoss Application Server

Citation preview

Page 1: JBoss AS jeap - Curso JBoss JB366 Día 1

19 Octubre 2009Curso JBoss JB366

César Pajares – ECM /CMS [email protected]

Visión general de JBoss Application Server

JbossProfessional Open Source

Page 2: JBoss AS jeap - Curso JBoss JB366 Día 1

19 Octubre 2009Curso JBoss JB366

César Pajares – ECM /CMS [email protected]

Visión general de JBoss AS JEAP

AgendaIntroducción a los servidores de aplicaciones

¿Qué es un servidor de aplicaciones?Características AS, Arquitectura J2EE

JAVA EnviromentIntroducción a JavaPlataformas JavaJAVA EE (J2EE), Tecnología, Especificaciones, Arquitectura

Jboss Enterprise Middelware SuiteQué es JbossArquitectura, JMX MicrokernelIntroducción al producto

Page 3: JBoss AS jeap - Curso JBoss JB366 Día 1

19 Octubre 2009Curso JBoss JB366

César Pajares – ECM /CMS [email protected]

Visión general de JBoss AS JEAP

Servidores de Aplicaciones

Page 4: JBoss AS jeap - Curso JBoss JB366 Día 1

19 Octubre 2009Curso JBoss JB366

César Pajares – ECM /CMS [email protected]

Visión general de JBoss AS JEAP

Introducción a los servidores de aplicaciones• Introducción a los servidores de aplicaciones.• Términos más utilizados y los conceptos que usaremos más adelante.

Aplicaciones de empresa

El concepto de servidor de aplicaciones está relacionado con el concepto de sistema distribuido. Un sistema distribuido permite mejorar tres aspectos fundamentales en una aplicación: la alta disponibilidad, la escalabilidad y el mantenimiento.

La alta disponibilidad hace referencia a que un sistema debe estar funcionando las 24 horas del día los 365 días al año. Para poder alcanzar esta característica es necesario el uso de técnicas de balanceo de carga y de recuperación ante fallos (failover). La escalabilidad es la capacidad de hacer crecer un sistema cuando se incrementa la carga de trabajo (el número de peticiones). Cada máquina tiene una capacidad finita de recursos y por lo tanto sólo puede servir un número limitado de peticiones. Si, por ejemplo, tenemos una tienda que incrementa la demanda de servicio, debemos ser capaces de incorporar nuevas máquinas para dar servicio. El mantenimiento tiene que ver con la versatilidad a la hora de actualizar, depurar fallos y mantener un sistema. La solución al mantenimiento es la construcción de la lógica de negocio en unidades reusables y modulares.

Page 5: JBoss AS jeap - Curso JBoss JB366 Día 1

19 Octubre 2009Curso JBoss JB366

César Pajares – ECM /CMS [email protected]

Visión general de JBoss AS JEAP

¿Qué es un servidor de aplicaciones?• Tipo de servidor que permite el procesamiento de datos de una aplicación de cliente.• En informática se denomina servidor de aplicaciones a un servidor en una red de ordenadores que ejecuta ciertas aplicaciones

Las principales ventajas de la tecnología de los servidores de aplicación es la centralización y la disminución de la complejidad del desarrollo de aplicaciones, dado que las aplicaciones no necesitan ser programadas; en su lugar, estas son ensambladas desde bloques provistos por el servidor de aplicación.Aunque es aplicable a todas las plataformas, actualmente el término es prácticamente un sinónimo de la plataforma J2EE de Sun Microsystems. De todas maneras, abarca servidores de aplicaciones basadas en web, como plataformas para el comercio electrónico, sistemas de gestión de contenido o creadores de sitios web.

Usualmente se trata de un dispositivo de software que proporciona servicios de aplicación a las computadoras cliente. Un servidor de aplicaciones generalmente gestiona la mayor parte (o la totalidad) de las funciones de lógica de negocio y de acceso a los datos de la aplicación

Page 6: JBoss AS jeap - Curso JBoss JB366 Día 1

19 Octubre 2009Curso JBoss JB366

César Pajares – ECM /CMS [email protected]

El estándar J2EE permite el desarrollo de aplicaciones de empresa de una manera sencilla y eficiente.

Una aplicación desarrollada con las tecnologías J2EE permite ser desplegada en cualquier servidor de aplicaciones o servidor web que cumpla con el estándar. Un servidor de aplicaciones es una implementación de la especificación J2EE.

Visión general de JBoss AS JEAP

¿Qué es un servidor de aplicaciones?

Como consecuencia del éxito del lenguaje de programación Java, el término servidor de aplicaciones usualmente hace referencia a un servidor de aplicaciones Java EE.

WebSphere (IBM) y WebLogic (Oracle, antes BEA Systems) están entre los servidores de aplicación Java EE de software privado más conocidos. EAServer (Sybase Inc.) es también conocido por ofrecer soporte a otros lenguajes diferentes a Java, como PowerBuilder. El servidor de aplicaciones JOnAS, desarrollado por el consorcio ObjectWeb, fue el primer servidor de aplicaciones libre en lograr certificación oficial de compatibilidad con J2EE. JBoss es otro servidor de aplicaciones libre y muy popular en la actualidad, así como el GlassFish de SUN. Mucha gente confunde Tomcat (The Apache Software Foundation) como un servidor de aplicaciones; sin embargo, es solamente un contenedor de servlets.

Page 7: JBoss AS jeap - Curso JBoss JB366 Día 1

19 Octubre 2009Curso JBoss JB366

César Pajares – ECM /CMS [email protected]

Visión general de JBoss AS JEAP

La arquitectura J2EE:Java EE provee estándares que permiten a un servidor de aplicaciones servir como "contenedor" de los componentes que conforman dichas aplicaciones. Estos componentes, escritos en lenguaje Java, usualmente se conocen como Servlets, Java Server Pages (JSPs) y Enterprise JavaBeans (EJBs) y permiten implementar diferentes capas de la aplicación, como la interfaz de usuario, la lógica de negocio, la gestión de sesiones de usuario o el acceso a bases de datos remotas.

La portabilidad de Java también ha permitido que los servidores de aplicación Java EE se encuentren disponibles sobre una gran variedad de plataformas, como Unix, Microsoft Windows y GNU/Linux.

El término servidor de aplicaciones también ha sido aplicado a otros productos no-J2EE. Por ejemplo, con el aumento de la popularidad de .NET, Microsoft califica a su producto Internet Information Server como un servidor de aplicaciones. Adicionalmente, se pueden encontrar servidores de aplicación de código abierto y comerciales de otros provedores; algunos ejemplos son Base4 Server y Zope.

¿Qué es un servidor de aplicaciones?

Page 8: JBoss AS jeap - Curso JBoss JB366 Día 1

19 Octubre 2009Curso JBoss JB366

César Pajares – ECM /CMS [email protected]

Visión general de JBoss AS JEAP

Características comunes

¿Qué es un servidor de aplicaciones?

• Los servidores de aplicación Incluyen también middleware (o software de conectividad) que les permite intercomunicarse con variados servicios, para efectos de confiabilidad, seguridad, etc.

• Los servidores de aplicación también brindan a los desarrolladores una Interfaz para Programación de Aplicaciones (API), de tal manera que no tengan que preocuparse por el sistema operativo o por la gran cantidad de interfaces requeridas en una aplicación web moderna.

• Los servidores de aplicación también brindan soporte a una gran variedad de estándares, tales como HTML, XML, JDBC, SSL, etc., que les permiten su funcionamiento en ambientes web (como Internet) y la conexión a una gran variedad de fuentes de datos, sistemas y dispositivos.

Page 9: JBoss AS jeap - Curso JBoss JB366 Día 1

19 Octubre 2009Curso JBoss JB366

César Pajares – ECM /CMS [email protected]

Visión general de JBoss AS JEAP

¿Qué es un servidor de aplicaciones?

Ventajas de los servidores de aplicaciones

• Integridad de datos y códigos: al estar centralizada en una o un pequeño número de máquinas servidoras, las actualizaciones están garantizadas para todos sus usuarios. No hay riesgos de versiones viejas.* Configuración centralizada: los cambios en la configuración de la aplicación, como mover el servidor de base de datos o la configuración del sistema, pueden ser hechos centralmente.

• Seguridad: se consideran más seguras.

• Performance: limitando el tráfico de la red solamente al tráfico de la capa de presentación, es percibido como un modelo cliente/servidor que mejora la performance de grandes aplicaciones.

Page 10: JBoss AS jeap - Curso JBoss JB366 Día 1

19 Octubre 2009Curso JBoss JB366

César Pajares – ECM /CMS [email protected]

Visión general de JBoss AS JEAP

¿Qué es un servidor de aplicaciones?

Frente a la tradicional estructura en dos capas de un servidor web (ver Figura 2) un servidor de aplicaciones proporciona una estructura en tres capas que permite estructurar nuestro sistema de forma más eficiente. Un concepto que debe quedar claro desde el principio es que no todas las aplicaciones de empresa necesitan un servidor de aplicaciones para funcionar. Una pequeña aplicación que acceda a una base de datos no muy compleja y que no sea distribuida probablemente no necesitará un servidor de aplicaciones, tan solo con un servidor web (usando servlets y jsp) sea suficiente.

Figura 2. Arquitectura en dos capas frente a tres capas utilizando el servidor de aplicaciones

Page 11: JBoss AS jeap - Curso JBoss JB366 Día 1

19 Octubre 2009Curso JBoss JB366

César Pajares – ECM /CMS [email protected]

Visión general de JBoss AS JEAP

La arquitectura J2EE: Cliente web (contenedor de applets): Es usualmente un navegador e interactúa con el contenedor web haciendo uso de HTTP. Recibe páginas HTML o XML y puede ejecutar applets y código JavaScript.

Aplicación cliente: Son clientes que no se ejecutan dentro de un navegador y pueden utilizar cualquier tecnología para comunicarse con el contenedor web o directamente con la base de datos.

Contenedor web: Es lo que comúnmente denominamos servidor web. Es la parte visible del servidor de aplicaciones. Utiliza los protocolos HTTP y SSL (seguro) para comunicarse.

Servidor de aplicaciones: Proporciona servicios que soportan la ejecución y disponibilidad de las aplicaciones desplegadas. Es el corazón de un gran sistema distribuido.

Page 12: JBoss AS jeap - Curso JBoss JB366 Día 1

19 Octubre 2009Curso JBoss JB366

César Pajares – ECM /CMS [email protected]

Visión general de JBoss AS JEAP

Arquitectura Tres capas

Page 13: JBoss AS jeap - Curso JBoss JB366 Día 1

19 Octubre 2009Curso JBoss JB366

César Pajares – ECM /CMS [email protected]

Visión general de JBoss AS JEAP

N Niveles – Modelo Aplicación empresarial

Caso real:Ayuntamiento de Madrid

TIER

Page 14: JBoss AS jeap - Curso JBoss JB366 Día 1

19 Octubre 2009Curso JBoss JB366

César Pajares – ECM /CMS [email protected]

Visión general de JBoss AS JEAP

¿ JBoss es un servidor de aplicaciones?Es un servidor de aplicaciones J2EE de código abierto implementado en Java puro. Al estar basado en Java, JBoss puede ser utilizado en cualquier sistema operativo que lo soporte. Los principales desarrolladores trabajan para una empresa de servicios, JBoss Inc., adquirida por Red Hat en Abril del 2006, fundada por Marc Fleury, el creador de la primera versión de JBoss. El proyecto está apoyado por 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.Por ejemplo, Los Sims online utilizan JBoss para sus juegos multiusuario.

Page 15: JBoss AS jeap - Curso JBoss JB366 Día 1

19 Octubre 2009Curso JBoss JB366

César Pajares – ECM /CMS [email protected]

Visión general de JBoss AS JEAP

Java Environment

Page 16: JBoss AS jeap - Curso JBoss JB366 Día 1

19 Octubre 2009Curso JBoss JB366

César Pajares – ECM /CMS [email protected]

Visión general de JBoss AS JEAP

Introducción a JAVA• Lenguaje orientado a objetos:

• Similar a C++ pero:• Sin punteros: todos los objetos se pasan por referencia.• Con interfaces Clases abstractas sin ninguna implementación ni

variables.• Herencia múltiple permitida sólo para las interfaces.• Compilado a byte-code y ejecutado por máquina virtual (Java Virtual

Machine).• Independiente del Sistema Operativo.• Gestión de memoria automática por recolector de basura (Garbage

Collector).• Mecanismo de seguridad integrado.• Multihilo.• Librerías, APIs y servicios para todo.

Page 17: JBoss AS jeap - Curso JBoss JB366 Día 1

19 Octubre 2009Curso JBoss JB366

César Pajares – ECM /CMS [email protected]

Visión general de JBoss AS JEAP

• Plataformas de Java:– Java Micro Edition (JME):

• Entorno de ejecución reducido para dispositivos móviles.– Java Standard Edition (JSE):

• Aplicaciones “standalone”: línea de comando o escritorio.– Java Enterprise Edition (JEE):

• Entorno de ejecución para aplicaciones corporativas distribuidas y/o cliente-servidor.

• Dos tipos de instalación:– Java Runtime Environment (JRE):

• Sólo JVM y librerías estándar.• Para ejecutar aplicaciones Java.

– Java Development Kit (JDK):• JVM, librerías estándar, compilador, códigos fuente y otras herramientas

para desarrollo.

Introducción a JAVA

Page 18: JBoss AS jeap - Curso JBoss JB366 Día 1

19 Octubre 2009Curso JBoss JB366

César Pajares – ECM /CMS [email protected]

Visión general de JBoss AS JEAP

The Java™ Platform

High-EndServer

Java Technology Enabled Desktop

WorkgroupServer

Java Technology Enabled Devices

Page 19: JBoss AS jeap - Curso JBoss JB366 Día 1

19 Octubre 2009Curso JBoss JB366

César Pajares – ECM /CMS [email protected]

Visión general de JBoss AS JEAP

The JavaTM Platform

OptionalPackages

Java 2Enterprise

Edition(J2EE)

Java 2StandardEdition(J2SE)

JVM

Java Card APIs

CardVM

OptionalPackages

Personal Basis Profile

Personal Profile

Foundation Profile

CDC

MIDP

CLDC

KVM

Java 2 Platform Micro Edition(J2METM)

Page 20: JBoss AS jeap - Curso JBoss JB366 Día 1

19 Octubre 2009Curso JBoss JB366

César Pajares – ECM /CMS [email protected]

Visión general de JBoss AS JEAP

May 1998 Dec 1999 Sept 2001 Nov 2003 May 20060

1

2

3

4

5

6 Evolución de Java EE

JPEProject

J2EE 1.2Servlet, JSP, EJB, JMS, JTA, JNDI, RMI/IIOP

J2EE 1.3EJB 2.0, Connector Architecture, JCA

J2EE 1.4Web Services, Management, Deployment, JCA 1.5,J2SE 1.4 y J2SE 5.0

Java EE 5Anotaciones,EJB 3.0,Persistence API,JSF 1.2, JSTLSOAP 1.2, WSDL 2.0, WS-*,JAXB 2.0,J2SE 5.0 y JavaSE6

Robustez

Web Services

Facilidad de Desarrollo

& SOA

Enterprise Java Platform

Introducción a JAVA

Page 21: JBoss AS jeap - Curso JBoss JB366 Día 1

19 Octubre 2009Curso JBoss JB366

César Pajares – ECM /CMS [email protected]

The J2EE Framework

ExternalApplication

Java Technologies

Visión general de JBoss AS JEAP

Introducción a JAVA

Page 22: JBoss AS jeap - Curso JBoss JB366 Día 1

19 Octubre 2009Curso JBoss JB366

César Pajares – ECM /CMS [email protected]

Java Standard Edition Platform 5 (Java SE 5) Enterprise JavaBeans (EJB) 3.0 JavaServer™ Faces 2.0 APIs Java Servlet 2.5, JSP 2.1, JSTL 1.1 JAAS 1.0, Java ACC 1.0 Web Services Metadata for the Java Platform 1.0 Java API for XML Processing (JAXP) 1.2 Java API for XML-Based Web Services (JAX-WS) 2.0 Java Architecture for XML Binding (JAXB) 2.0 Streaming API for XML (StAX) 1.0 WS-I Basic Profile 1.0 Java EE Application Deployment 1.0, Java EE Management 1.0 JDBC 3.0 & 4.0 Drivers to Oracle, Sybase, IBM DB2, Msft SQL Server, MySQL, Derby Web 2.0 and AJAX support Generic JMS Resource Adapter (TIBCO, MQSeries, Sonic, ...) Open ESB Starter Kit that includes JBI, BPEL engine.......

APIs y Especificaciones J2EE

Introducción a JAVA

Page 23: JBoss AS jeap - Curso JBoss JB366 Día 1

19 Octubre 2009Curso JBoss JB366

César Pajares – ECM /CMS [email protected]

Visión general de JBoss AS JEAP

Introducción a JAVA• Recordatorio Programación Orientada a Objetos:

– Programa = conjunto de objetos que colaboran entre sí enviándose mensajes.

Programa

Subrutinas...

Datos

Datos

Datos

Datos

accesodirecto

PROCEDU

RAL

Objeto

DatosObjeto

Datos

Objeto

Datos

Objeto

DatosORI

ENTA

DO A

OBJ

ETO

S

mensajes

Page 24: JBoss AS jeap - Curso JBoss JB366 Día 1

19 Octubre 2009Curso JBoss JB366

César Pajares – ECM /CMS [email protected]

Visión general de JBoss AS JEAP

Introducción a JAVA• ¿Qué es un objeto?

– Un objeto representa un concepto o entidad del dominio.– En la práctica, se definen otros objetos por necesidades de diseño e

implementación.– Encapsulan comportamiento y estado:

• Comportamiento Código de programa.– Operaciones sobre el propio objeto y envío de mensajes a otros objetos.– Mensajes de dos tipos: “acción para cambiar estado” o “leer estado”. Tienen

parámetros y valor de retorno (otros objetos).– Java: métodos. Programación procedural: procedimiento.

• Estado Datos.– Información interna del objeto.– Java: propiedades. Programación procedural: variables.

Page 25: JBoss AS jeap - Curso JBoss JB366 Día 1

19 Octubre 2009Curso JBoss JB366

César Pajares – ECM /CMS [email protected]

Visión general de JBoss AS JEAP

Introducción a JAVA• Clases Java:

– Una clase es una especificación de la estructura y comportamiento de un conjunto (tipo) de objetos “similares”.

– Elementos de la clase tienen control de acceso:• private: sólo la propia clase y sus objetos pueden ver el elemento.• protected: la propia clase y todas las que hereden de ella y sus objetos.• - (por defecto): visible para todas las clases del paquete y sus objetos..• public: visible para todas las clases y objetos de la aplicación.

Page 26: JBoss AS jeap - Curso JBoss JB366 Día 1

19 Octubre 2009Curso JBoss JB366

César Pajares – ECM /CMS [email protected]

Visión general de JBoss AS JEAP

Introducción a JAVA• Clase Java:

public class Proveedor extends Contacto {protected static Log log;static {

log = LogFactory.getLog(Proveedor.class);}

private boolean preferido;

public Proveedor(Integer id, String nombre, boolean preferido) {super(id, nombre);this.preferido = preferido;

}

public boolean esPreferido() {return preferido;

}}

Herencia. Clase padre es Contacto.

Variable global.Sólo visible en Proveedor e hijos.

Bloque de inicialización clase.

Propiedad de objeto.Visible en Proveedor.

Constructor público de objeto.

Llamada explícita a constructor de Contacto.

Referencia explícita a propiedad de objeto.

Método público de objeto.Ref. implícita a

prop. de objeto.

Page 27: JBoss AS jeap - Curso JBoss JB366 Día 1

19 Octubre 2009Curso JBoss JB366

César Pajares – ECM /CMS [email protected]

Visión general de JBoss AS JEAP

Introducción a JAVA EE (J2EE)• ¿Qué es?

– Plataforma para desarrollo de aplicaciones corporativas:• Entorno de ejecución para aplicaciones corporativas distribuidas y/o

cliente-servidor.• Servicios y APIs avanzados.• Énfasis en integración con otros sistemas.• Aplicaciones divididas en componentes que se ejecutan en

“contenedores” especializados.

– Ámbito y alcance:• Especificaciones de tecnologías, protocolos, servicios y procesos.• Kit de tests de compatibilidad (TCK).• Implementación de referencia (Sun Java System Application Server).• Guías, mejores prácticas y ejemplos (“blueprints”).

Page 28: JBoss AS jeap - Curso JBoss JB366 Día 1

19 Octubre 2009Curso JBoss JB366

César Pajares – ECM /CMS [email protected]

Visión general de JBoss AS JEAP

Introducción a JAVA EE (J2EE)• Alternativas a J2EE:

– CORBA: Gran complejidad, amplia infraestructura…– .NET: Propiedad de Microsoft…

• Beneficios de J2EE:– Fuerte apoyo de la industria y fundaciones OpenSource.

• Sin problemas de patentes o royalties.– Basado en la plataforma Java Standard Edition.

• Independencia de SO.– Java Specification Requests (JSR) y Java Community Process (JCP).

• Independencia política.– Múltiples fabricantes Posible cambiar de proveedor.– Madurez (desde 1997).– Soluciones OpenSource para todo.

Page 29: JBoss AS jeap - Curso JBoss JB366 Día 1

19 Octubre 2009Curso JBoss JB366

César Pajares – ECM /CMS [email protected]

Visión general de JBoss AS JEAP

Introducción a JAVA EE (J2EE)• Especificaciones:

– JSR-244: Java Platform Enterprise Edition 5 Specification• JSP Standard Tag Library (JSR-52)• JSP 2.1 (JSR-245)• StAX (JSR-173)• Web Services Metadata (JSR-181)• JAXB (JSR-222)• JAX-RPC 2.0 (JSR-224)• Common Annotations (JSR-250)• JavaServer Faces (JSR-252)• EJB 3.0 / New persistence API (JSR-220)

Page 30: JBoss AS jeap - Curso JBoss JB366 Día 1

19 Octubre 2009Curso JBoss JB366

César Pajares – ECM /CMS [email protected]

Visión general de JBoss AS JEAP

Introducción a JAVA EE (J2EE)• Arquitectura JEE:

– Componentes distribuidos se ejecutan en contenedores especializados y se comunican con protocolos de red.

• Cada contenedor puede estar en una máquina separada.• Un contenedor puede estar en cluster de máquinas.• Modelo más habitual: 3 capas.

Page 31: JBoss AS jeap - Curso JBoss JB366 Día 1

19 Octubre 2009Curso JBoss JB366

César Pajares – ECM /CMS [email protected]

Visión general de JBoss AS JEAP

Introducción a JAVA EE (J2EE)• Tres tipos de contenedores:

– Contenedor de applets:• Ejecutado en el cliente, incrustado en el navegador web.• Importantes restricciones de seguridad.• Utilizar solamente si es imprescindible.

– Prácticamente, el único caso de uso es:acceder a recursos de la máquina del usuario no disponibles por web (Javascript, normalmente).Ejemplos: ficheros, aplicaciones, impresoras, escáneres, lectores de tarjetas, etc.

• Consejos:– Procurar reducir las librerías al mínimo.– Firmar el applet con keytool del JDK usando un certificado X.509 válido.

– Contenedor EJB.• Componentes Enterprise Java Bean.

– Contenedor web.• Componentes: Servlets y JSPs.

Page 32: JBoss AS jeap - Curso JBoss JB366 Día 1

19 Octubre 2009Curso JBoss JB366

César Pajares – ECM /CMS [email protected]

Visión general de JBoss AS JEAP

Introducción a JAVA EE (J2EE)• Tres tipos de contenedores (cont.):

– Componentes contenedor EJB:• Encapsulan el modelo de entidades, la lógica de persistencia en BD y la

lógica de negocio.• Comunicación a través de RMI y CORBA/IIOP.• No se suele utilizar por su mayor complejidad.

Alternativa más habitual:– Entidades son Javabeans persistentes con Hibernate.– Lógica de negocio en Javabeans de servicios de Spring.

– Componentes contenedor web:• Encargados de interactuar con un cliente por navegador web (protocolo

HTTP).– Las peticiones HTTP son procesadas por servlets.– Las páginas HTML de respuesta las generan los JSPs.

• En la práctica, se utilizan frameworks web:– Procesadores de peticiones JSF, Struts, Spring MVC.– Páginas HTML asistidas con librerías de tags.

Page 33: JBoss AS jeap - Curso JBoss JB366 Día 1

19 Octubre 2009Curso JBoss JB366

César Pajares – ECM /CMS [email protected]

Visión general de JBoss AS JEAPJava Naming & Directory Interface

Java DataBase Connectivity

Java Authentication and Authorization Service

Java Transaction API

Java Management Extensions

JavaMail – SMTP, TLS, SSL

Enterprise Java Bean

Java Message Service

Common Object Request Broker Architecture

Simple Object Access Protocol

Remote Method Invocation

Servlets

Java Server Pages

Extensible Markup Language

Page 34: JBoss AS jeap - Curso JBoss JB366 Día 1

19 Octubre 2009Curso JBoss JB366

César Pajares – ECM /CMS [email protected]

WAR y EAR Deployment

EJBJMS JTA

Servlets JDBC JNDI

JMX

Visión general de JBoss AS JEAP

Page 35: JBoss AS jeap - Curso JBoss JB366 Día 1

19 Octubre 2009Curso JBoss JB366

César Pajares – ECM /CMS [email protected]

¿Qué Módulos aporta J2EE?• Empaquetan componentes o aplicaciones J2EE.• Tres tipos:

– Archivos JAR (Java ARchive)– Archivos WAR (Web Application ARchive)– Archivos EAR (Enterprise Application ARchive)

Visión general de JBoss AS JEAP

Page 36: JBoss AS jeap - Curso JBoss JB366 Día 1

19 Octubre 2009Curso JBoss JB366

César Pajares – ECM /CMS [email protected]

¿Qué Módulos aporta J2EE?Visión general de JBoss AS JEAP

Archivos JAR (Java ARchive)

• Permite agrupar distintos archivos java en uno solo.• Sigue el formato ZIP• Incorporado en la versión 1.1 del JDK• Contienen:

– Clases java– Recursos que emplean las clases

• Es el empleado para empaquetar componentes EJBs, respetando una estructura de directorios

Page 37: JBoss AS jeap - Curso JBoss JB366 Día 1

19 Octubre 2009Curso JBoss JB366

César Pajares – ECM /CMS [email protected]

¿Qué Módulos aporta J2EE?Visión general de JBoss AS JEAP

Archivos WAR (Web Application ARchive)

• Permiten empaquetar en una sola unidad aplicaciones web java completas.– Servlets y JSPs– Contenido estático

• Html• Imágenes• etc.)

– Otros recursos web

Page 38: JBoss AS jeap - Curso JBoss JB366 Día 1

19 Octubre 2009Curso JBoss JB366

César Pajares – ECM /CMS [email protected]

¿Qué Módulos aporta J2EE?Visión general de JBoss AS JEAP

Archivos EAR (Enterprise Application ARchive)

• Archivos desplegables en servidores de aplicaciones J2EE• Contienen

– Archivos WAR– EJBs (Empaquetados dentro de ficheros JAR)

Page 39: JBoss AS jeap - Curso JBoss JB366 Día 1

19 Octubre 2009Curso JBoss JB366

César Pajares – ECM /CMS [email protected]

Visión general de JBoss AS JEAP

Qué es JBoss

Page 40: JBoss AS jeap - Curso JBoss JB366 Día 1

19 Octubre 2009Curso JBoss JB366

César Pajares – ECM /CMS [email protected]

Visión general de JBoss AS JEAP

What is JBoss?• JBoss federates open source projects under the JBoss

Professional Open Source ™ model• JBoss Inc. employs the lead developers of

– JBoss Application Server: J2EE based– Tomcat– Hibernate– JBossCache/JGroups: – Nukes, – ? workflow, rules, new clients, connectors?

• JBoss inc, the new safe choice– 24/7 Support– Indemnification– Certification – J2EE, JASP

Page 41: JBoss AS jeap - Curso JBoss JB366 Día 1

19 Octubre 2009Curso JBoss JB366

César Pajares – ECM /CMS [email protected]

Visión general de JBoss AS JEAP

The JBoss Project• JBoss AS Full J2EE support, EJB, JMX, JMS, JCA, JAAS• Hibernate O/R Mapping solution. • Tomcat JSP/Servlet/Web server. • JBossIDE Eclipse integration, tag driven development.

Debugging. • JBossCache Distributed data. • JGroups Reliable multicast and cluster communication • Nukes JBoss portal and CMS. • JBossAOP Aspect-Oriented Programming with JBoss 4.0. • Javassist Simple bytecode manipulation library

Page 42: JBoss AS jeap - Curso JBoss JB366 Día 1

19 Octubre 2009Curso JBoss JB366

César Pajares – ECM /CMS [email protected]

Visión general de JBoss AS JEAP

Arquitectura

Page 43: JBoss AS jeap - Curso JBoss JB366 Día 1

19 Octubre 2009Curso JBoss JB366

César Pajares – ECM /CMS [email protected]

Visión general de JBoss AS JEAP

Arquitectura

Client JVM

JMX M

icrokernel

Server JVM

EJB Container MBean

011101010101

RemoteInvoker

Typed Interface

Client Proxy

RemoteInvoker

EJB Container MBean

Service MBean

Invocation

Port 1234

Port 4321Client

– Internally invocation objects are routed within the kernel

Page 44: JBoss AS jeap - Curso JBoss JB366 Día 1

19 Octubre 2009Curso JBoss JB366

César Pajares – ECM /CMS [email protected]

Visión general de JBoss AS JEAP

Server JVM

MBean Server

Serv

ice

MBe

an

Serv

ice

MBe

an

Serv

ice

MBe

an

• Microkernel design Independent cycling and loading

• Hot Deployment of services and applications Unified ClassLoaders, total Class visibility/cyclability Service Archives (SARs) for easy configuration and net deployment

JMX Architecture

Page 45: JBoss AS jeap - Curso JBoss JB366 Día 1

19 Octubre 2009Curso JBoss JB366

César Pajares – ECM /CMS [email protected]

Visión general de JBoss AS JEAP

Data Sources

EJB Containers

WARDeployer

Deployers: Bringing in the Services Microkernel

DeploymentScanner

MainDeployer

EJBDeployer

EARDeployer

SARDeployer

*.xAR

Naming Service

Security Service

Message Service

TransactionService

Page 46: JBoss AS jeap - Curso JBoss JB366 Día 1

19 Octubre 2009Curso JBoss JB366

César Pajares – ECM /CMS [email protected]

Visión general de JBoss AS JEAP

JAR 3RAR 3

Custom SAR

Custom SAR

Microkernel benefits for SOA architecture• Microkernel approach ideal for ISV and OEM

– Easily remove the services you don’t need– Tight footprint and modular codebase and hot deploy/remove/redeploy– JBoss is a TRUE Service Oriented Architecture (SOA)

Data Sources

Microkernel

DeploymentScanner

MainDeployer EARDeployer

SARDeployer

*.xAR

Naming Service

Security Service

TransactionService

Data Sources

EJB ContainersWARDeployer

Microkernel

DeploymentScanner

MainDeployer

EJBDeployer

EARDeployer

SARDeployer

*.xAR

Naming Service

Security Service

Message Service

TransactionService

JAR 1 RAR 3

EAR 2

WAR 1Application A Application B

Page 47: JBoss AS jeap - Curso JBoss JB366 Día 1

19 Octubre 2009Curso JBoss JB366

César Pajares – ECM /CMS [email protected]

Visión general de JBoss AS JEAPDeployers: Working from the Network

Microkernel

DeploymentScanner

Microkernel

DeploymentScanner

HTTP Scan HTTP Scan

MainDeployer MainDeployer

Load Services

DeploymentPackagesWeb Server

Administrator

Machine 2Machine 1

Page 48: JBoss AS jeap - Curso JBoss JB366 Día 1

19 Octubre 2009Curso JBoss JB366

César Pajares – ECM /CMS [email protected]

Visión general de JBoss AS JEAP

DeploymentPackages

Web ServerAdministrator

Microkernel

DeploymentScanner

MainDeployer

Machine 4Microkernel

DeploymentScanner

MainDeployer

Machine 3

• Microkernels and netboot enable new grid control– Domain of applicability: Robot control, Storage area networks, Next generation

routers – Mars Lander syndrome hardware ships with software

• Burn kernel in flash ram– Deploy applications from centralized repository– Remote load at a later time– It changes the way robot/router grids are built, deployed and managed.

Microkernel

DeploymentScanner

MainDeployer

Machine 2

Microkernel

DeploymentScanner

MainDeployer

Machine 1

Microkernel

DeploymentScanner

MainDeployer

Machine 5

Microkernel

DeploymentScanner

MainDeployer

Machine 6

Deployers: Working from the Network

Page 49: JBoss AS jeap - Curso JBoss JB366 Día 1

19 Octubre 2009Curso JBoss JB366

César Pajares – ECM /CMS [email protected]

Visión general de JBoss AS JEAP

JMX is JBOSS Backbone

• JBoss uses JMX for an intra-application communication• JBoss components are MBeans• JBoss startup is using JMX to (dynamically) load and start

JBoss components• JBoss Classloader is a MBean as well as used as the

MBean Classloader

Page 50: JBoss AS jeap - Curso JBoss JB366 Día 1

19 Octubre 2009Curso JBoss JB366

César Pajares – ECM /CMS [email protected]

Visión general de JBoss AS JEAP

JMX is based on MVC

Page 51: JBoss AS jeap - Curso JBoss JB366 Día 1

19 Octubre 2009Curso JBoss JB366

César Pajares – ECM /CMS [email protected]

Visión general de JBoss AS JEAP

Jboss Enterprise Middelware Suite

Page 52: JBoss AS jeap - Curso JBoss JB366 Día 1

19 Octubre 2009Curso JBoss JB366

César Pajares – ECM /CMS [email protected]

Visión general de JBoss AS JEAP

Middleware is composed of software that act as intermediaries between different application components, to ease programming, integration, and management.

Application Application

Middleware Middleware

Network

caching

fault tolerance

replication

security

logging

transactions

JEMS Jboss Enterprise Middleware Services

Page 53: JBoss AS jeap - Curso JBoss JB366 Día 1

19 Octubre 2009Curso JBoss JB366

César Pajares – ECM /CMS [email protected]

Visión general de JBoss AS JEAP

JEMS Jboss Enterprise Middleware Services

• Middleware can also be viewed in the component model– Encapsulated software

that performs a service– Accessed either locally or

remotely

Application

Netw

ork

Directory Services

Security

Page 54: JBoss AS jeap - Curso JBoss JB366 Día 1

19 Octubre 2009Curso JBoss JB366

César Pajares – ECM /CMS [email protected]

Visión general de JBoss AS JEAP

JBoss AS 5.x J2EE Application Server

• J2EE 1.5 Certified• 100% Pure Java

any hardware and OS with compliant JVM• JMX-Microkernel

customizable footprint (i.e. plug-n-play services) enhanced performance via co-located services

• Monitoring and Management web-console provides real-time graphs & email alerts Scriptability of JMX modifications and invocations

• Enterprise-Ready Clustering simple cluster-wide deployment dynamic cluster composition fault-tolerance

• state replication• silent failover

Page 55: JBoss AS jeap - Curso JBoss JB366 Día 1

19 Octubre 2009Curso JBoss JB366

César Pajares – ECM /CMS [email protected]

Visión general de JBoss AS JEAP

JBoss AS 5.x J2EE Application Server

Aspectized User Applications

JVM

JBoss AS 5 Runtime

JBoss Microcontainer

POJO

Java

EE

OSG

i

MBe

an

Sprin

g

Virtual Deployer Framework Transactions

Security

Clustering

MessagingComponent Deployers

Web Server

WS

OR MappingEnterprise Services

jboss-beans

.earspring beans

OSGibundle.war

service.xml

Page 56: JBoss AS jeap - Curso JBoss JB366 Día 1

19 Octubre 2009Curso JBoss JB366

César Pajares – ECM /CMS [email protected]

Visión general de JBoss AS JEAP

Apache Tomcat JSP/Servlet Engine

• Proven most popular JSP/Servlet engine on the planet! JBoss Inc. supported by inside of JBoss AS or standalone

• Performant optimize communications with EJBs via JMX* uses Eclipse compiler for even faster JSPs

• Flexible attach static webservers via AJP 1.3 (mod_jk 1.2.x) hot-deployment & re-deployment encrypted session support through SSL

Page 57: JBoss AS jeap - Curso JBoss JB366 Día 1

19 Octubre 2009Curso JBoss JB366

César Pajares – ECM /CMS [email protected]

Visión general de JBoss AS JEAP

Hibernate Object-Relational Mapping & Persistence Framework

• Database Independence Dynamically generates vendor-specific SQL Supports most databases (Oracle, MS-SQL, DB2, Sybase, etc.)

• Transparent Persistence Any POJO can be a persistent class

• No interfaces have to be implemented• No persistent superclass has to be extended

Override with hand-written SQL or stored procedures Support for “detached objects”

•Eliminate DTOs (Data Transfer Objects)

• Basis for EJB3.0 entity beans (EJB3 spec not yet final) EJB3 has 15% of the functionality available in Hibernate3

Page 58: JBoss AS jeap - Curso JBoss JB366 Día 1

19 Octubre 2009Curso JBoss JB366

César Pajares – ECM /CMS [email protected]

Visión general de JBoss AS JEAP

EJB3 Enterprise Java Beans• Simplification of the persistence model

• Light-weight persistence modelIn terms of programming and deployment model as well as runtime performance

• Testability outside of the containersCreate test clients that would use entities in a non-managed environment

• Domain modelling through inheritance and polymorphism• Object/Relational (O/R) mapping • Extensive querying capabilities

Page 59: JBoss AS jeap - Curso JBoss JB366 Día 1

19 Octubre 2009Curso JBoss JB366

César Pajares – ECM /CMS [email protected]

Visión general de JBoss AS JEAP

JBoss jBPM 3.0 Business Process Management System• Declarative business process definition

Graph Oriented Programming Avoids miscomunication between business analyst & developer Allows steps to be added/removed to/from process without softwareredesign!

• State Management Persistent representation of current process state Context variables associated with each process instance

• Integration Web Services, JCA, JMS, Database, IIOP Can run outside a J2EE Application Server Standards-based technology : Java & XML

• Future (jBPM 3.0) BPEL support Visual Process Designer (JBoss Eclipse IDE 1.5)

Page 60: JBoss AS jeap - Curso JBoss JB366 Día 1

19 Octubre 2009Curso JBoss JB366

César Pajares – ECM /CMS [email protected]

Visión general de JBoss AS JEAP

Portal Platform ServicesJBoss Portal provides essential portal platform services

Page 61: JBoss AS jeap - Curso JBoss JB366 Día 1

19 Octubre 2009Curso JBoss JB366

César Pajares – ECM /CMS [email protected]

Visión general de JBoss AS JEAP

JBoss Portal 2.7• Robust Portal Framework

JSR-168 Compliant Single-Sign-On (SSO) Support Content aggregation and personalization Java Server Faces, MyFaces, and Spring MVC support

• Built on JBoss AS Scalability and Clustering of Portals and Portlets Data Access & Persistence Handled by Hibernate• Supports most popular databases (Oracle Database, MySQL, Microsoft SQL Server, DB2,..)

• Portal Administration Manage Users, Groups, Portal/Portlet Layout

• Content Management Manage Files, Folders, Versions Integrated HTML Editing and WebDAV Support

• Community Portlets Included: Forums, Content Mgt, User Mgt, etc. Additional portlets to be built by community (shared)

Page 62: JBoss AS jeap - Curso JBoss JB366 Día 1

19 Octubre 2009Curso JBoss JB366

César Pajares – ECM /CMS [email protected]

Visión general de JBoss AS JEAP

JBoss IDE Integrated Development Environment• Eclipse Plug-ins for JEMS

• Current Features Automated XDoclet and Packaging Deployment of Enterprise Applications Debugging of Enterprise Applications JSP/XML/HTML editors J2EE wizards JBossAOP extension

• Future (JBoss IDE 1.5 targeted Q4 05) Hibernate Wizards & Mapping Visualization JBoss jBPM Visual Process Designer

• JBoss AS is compatible with many IDEs My Eclipse, IntelliJ IDEA, NetBeans, JBuilder, etc.

Page 63: JBoss AS jeap - Curso JBoss JB366 Día 1

19 Octubre 2009Curso JBoss JB366

César Pajares – ECM /CMS [email protected]

Visión general de JBoss AS JEAP

JGroups Reliable Multicast Communications Toolkit

• Reliability for group messages Fragmentation Re-transmission Message ordering

• Configurable transport layer (LAN or WAN) UDP, TCP, TCP_NIO, TUNNEL, JMS, LOOPBACK Defaults to IP-Multicast over UDP

• Dynamic group composition Additions & Removals

• Message encryption available via SSL• Basis for JBoss Cache / clustering state replication• Future

Buddy Replication / Sub-partitioning

Page 64: JBoss AS jeap - Curso JBoss JB366 Día 1

19 Octubre 2009Curso JBoss JB366

César Pajares – ECM /CMS [email protected]

Visión general de JBoss AS JEAP

JBoss Cache Distributed Transactional Caching

• Caches POJOs No interfaces to implement! No superclasses to sub-class!

• Synchronous or asynchronous replication

• Transactional changes across group

• Automatic fine-grained replication via TreeCache AOP

• Cache persistence via file, SleepyCat, or JDBC

• Superset of jCache (JSR-107) standard

• Built on JGroups technology for superior reliability

Page 65: JBoss AS jeap - Curso JBoss JB366 Día 1

19 Octubre 2009Curso JBoss JB366

César Pajares – ECM /CMS [email protected]

Visión general de JBoss AS JEAP

GET JBOSS 5!

Questions?