1. Jboss
Professional Open Source
Visión general de JBoss
Application Server
César Pajares – ECM /CMS Manager
cesarpajares@gmail.com
19 Octubre 2009
Curso JBoss JB366
2. Visión general de JBoss AS JEAP
Agenda
Introducción a los servidores de aplicaciones
¿Qué es un servidor de aplicaciones?
Características AS, Arquitectura J2EE
JAVA Enviroment
Introducción a Java
Plataformas Java
JAVA EE (J2EE), Tecnología, Especificaciones, Arquitectura
Jboss Enterprise Middelware Suite
Qué es Jboss
Arquitectura, JMX Microkernel
Introducción al producto
César Pajares – ECM /CMS Manager
cesarpajares@gmail.com
19 Octubre 2009
Curso JBoss JB366
3. Visión general de JBoss AS JEAP
Servidores de Aplicaciones
César Pajares – ECM /CMS Manager
cesarpajares@gmail.com
19 Octubre 2009
Curso JBoss JB366
4. 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.
César Pajares – ECM /CMS Manager
cesarpajares@gmail.com
19 Octubre 2009
Curso JBoss JB366
5. 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.
César Pajares – ECM /CMS Manager
cesarpajares@gmail.com
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
19 Octubre 2009
Curso JBoss JB366
6. Visión general de JBoss AS JEAP
¿Qué es un servidor de aplicaciones?
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.
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.
César Pajares – ECM /CMS Manager
cesarpajares@gmail.com
19 Octubre 2009
Curso JBoss JB366
7. Visión general de JBoss AS JEAP
¿Qué es un servidor de aplicaciones? 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 noJ2EE. 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.
César Pajares – ECM /CMS Manager
cesarpajares@gmail.com
19 Octubre 2009
Curso JBoss JB366
8. Visión general de JBoss AS JEAP
¿Qué es un servidor de aplicaciones?
Características comunes
• 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.
César Pajares – ECM /CMS Manager
cesarpajares@gmail.com
19 Octubre 2009
Curso JBoss JB366
9. 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.
César Pajares – ECM /CMS Manager
cesarpajares@gmail.com
19 Octubre 2009
Curso JBoss JB366
10. 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
César Pajares – ECM /CMS Manager
cesarpajares@gmail.com
19 Octubre 2009
Curso JBoss JB366
11. 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.
César Pajares – ECM /CMS Manager
cesarpajares@gmail.com
19 Octubre 2009
Curso JBoss JB366
12. Visión general de JBoss AS JEAP
Arquitectura
Tres capas
César Pajares – ECM /CMS Manager
cesarpajares@gmail.com
19 Octubre 2009
Curso JBoss JB366
13. Visión general de JBoss AS JEAP
N Niveles – Modelo Aplicación empresarial
TIER
Caso real:
Ayuntamiento
de Madrid
César Pajares – ECM /CMS Manager
cesarpajares@gmail.com
19 Octubre 2009
Curso JBoss JB366
14. 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.
César Pajares – ECM /CMS Manager
cesarpajares@gmail.com
19 Octubre 2009
Curso JBoss JB366
15. Visión general de JBoss AS JEAP
Java Environment
César Pajares – ECM /CMS Manager
cesarpajares@gmail.com
19 Octubre 2009
Curso JBoss JB366
16. 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.
César Pajares – ECM /CMS Manager
cesarpajares@gmail.com
19 Octubre 2009
Curso JBoss JB366
17. Visión general de JBoss AS JEAP
Introducción a JAVA
• 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.
César Pajares – ECM /CMS Manager
cesarpajares@gmail.com
19 Octubre 2009
Curso JBoss JB366
18. Visión general de JBoss AS JEAP
The Java™ Platform
Java Technology
Enabled Devices
César Pajares – ECM /CMS Manager
cesarpajares@gmail.com
Java Technology
Enabled Desktop
Workgroup
Server
High-End
Server
19 Octubre 2009
Curso JBoss JB366
19. Visión general de JBoss AS JEAP
The Java
TM
Platform
Java 2 Platform Micro Edition
(J2METM)
Optional
Packages
Optional
Packages
Java 2
Enterprise
Edition
(J2EE)
Personal
Basis Profile
Java 2
Standard
Edition
(J2SE)
Personal
Profile
Foundation Profile
CDC
César Pajares – ECM /CMS Manager
cesarpajares@gmail.com
JVM
MIDP
CLDC
KVM
Java
Card
APIs
CardVM
19 Octubre 2009
Curso JBoss JB366
20. Visión general de JBoss AS JEAP
Introducción a JAVA
6
Evolución de Java EE
Web
Services
5
Robustez
4
3
2
1
0
JPE
Project
May 1998
J2EE 1.4
Web
Enterprise
Services,
J2EE 1.3
Managemen
Java Platform EJB 2.0,
t,
Connector
Deployment,
J2EE 1.2
Architecture,
JCA 1.5,
Servlet, JSP,
JCA
J2SE 1.4 y
EJB, JMS, JTA,
J2SE 5.0
JNDI, RMI/IIOP
Dec 1999
César Pajares – ECM /CMS Manager
cesarpajares@gmail.com
Sept 2001
Nov 2003
Facilidad de
Desarrollo
& SOA
Java EE 5
Anotaciones,
EJB 3.0,
Persistence
API,
JSF 1.2, JSTL
SOAP 1.2,
WSDL 2.0,
WS-*,
JAXB 2.0,
J2SE 5.0 y
JavaSE6
May 2006
19 Octubre 2009
Curso JBoss JB366
21. Visión general de JBoss AS JEAP
Introducción a JAVA
The J2EE Framework
Java Technologies
External
Application
César Pajares – ECM /CMS Manager
cesarpajares@gmail.com
19 Octubre 2009
Curso JBoss JB366
22. Introducción a JAVA
Java Standard Edition Platform 5 (Java SE 5)
Enterprise JavaBeans (EJB) 3.0
JavaServer™ Faces 2.0 APIs
APIs y Especificaciones J2EE
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
.......
César Pajares – ECM /CMS Manager
cesarpajares@gmail.com
19 Octubre 2009
Curso JBoss JB366
23. Visión general de JBoss AS JEAP
Introducción a JAVA
• Recordatorio Programación Orientada a Objetos:
Programa
acceso
directo
Datos
Subrutinas
...
Datos
Datos
César Pajares – ECM /CMS Manager
cesarpajares@gmail.com
PROCEDURAL
Datos
ORIENTADO A OBJETOS
– Programa = conjunto de objetos que colaboran entre sí enviándose
mensajes.
Objeto
Objeto
Datos
mensajes
Objeto
Datos
Datos
Objeto
Datos
19 Octubre 2009
Curso JBoss JB366
24. 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.
César Pajares – ECM /CMS Manager
cesarpajares@gmail.com
19 Octubre 2009
Curso JBoss JB366
25. 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.
César Pajares – ECM /CMS Manager
cesarpajares@gmail.com
19 Octubre 2009
Curso JBoss JB366
26. Visión general de JBoss AS JEAP
Introducción a JAVA
• Clase Java:
Herencia. Clase padre
es Contacto.
public class Proveedor extends Contacto {
protected static Log log;
static {
log = LogFactory.getLog(Proveedor.class);
}
Variable global.
Sólo visible en
Proveedor e hijos.
Bloque de
inicialización clase.
private boolean preferido;
public Proveedor(Integer id, String nombre, boolean preferido) {
super(id, nombre);
this.preferido = preferido;
}
}
Propiedad de objeto.
Visible en Proveedor.
Constructor público de
objeto.
public boolean esPreferido() {
return preferido;
}
César Pajares – ECM /CMS Manager
cesarpajares@gmail.com
Llamada explícita a
constructor de Contacto.
Referencia explícita a
propiedad de objeto.
Ref. implícita a
prop. de objeto.
Método público
de objeto.
19 Octubre 2009
Curso JBoss JB366
27. 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”).
César Pajares – ECM /CMS Manager
cesarpajares@gmail.com
19 Octubre 2009
Curso JBoss JB366
28. 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.
César Pajares – ECM /CMS Manager
cesarpajares@gmail.com
19 Octubre 2009
Curso JBoss JB366
29. 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)
César Pajares – ECM /CMS Manager
cesarpajares@gmail.com
19 Octubre 2009
Curso JBoss JB366
30. 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.
César Pajares – ECM /CMS Manager
cesarpajares@gmail.com
19 Octubre 2009
Curso JBoss JB366
31. 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.
César Pajares – ECM /CMS Manager
cesarpajares@gmail.com
19 Octubre 2009
Curso JBoss JB366
32. 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.
César Pajares – ECM /CMS Manager
cesarpajares@gmail.com
19 Octubre 2009
Curso JBoss JB366
33. Visión general de JBoss AS JEAP
Java 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
César Pajares – ECM /CMS Manager
cesarpajares@gmail.com
19 Octubre 2009
Curso JBoss JB366
34. Visión general de JBoss AS JEAP
Servlets
JMS
JMX
JNDI
JDBC
JTA
EJB
WAR y EAR Deployment
César Pajares – ECM /CMS Manager
cesarpajares@gmail.com
19 Octubre 2009
Curso JBoss JB366
35. Visión general de JBoss AS JEAP
¿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)
César Pajares – ECM /CMS Manager
cesarpajares@gmail.com
19 Octubre 2009
Curso JBoss JB366
36. Visión general de JBoss AS JEAP
¿Qué Módulos aporta J2EE?
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
César Pajares – ECM /CMS Manager
cesarpajares@gmail.com
19 Octubre 2009
Curso JBoss JB366
37. Visión general de JBoss AS JEAP
¿Qué Módulos aporta J2EE?
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
César Pajares – ECM /CMS Manager
cesarpajares@gmail.com
19 Octubre 2009
Curso JBoss JB366
38. Visión general de JBoss AS JEAP
¿Qué Módulos aporta J2EE?
Archivos EAR (Enterprise Application ARchive)
•
•
Archivos desplegables en servidores de aplicaciones J2EE
Contienen
– Archivos WAR
– EJBs (Empaquetados dentro de ficheros JAR)
César Pajares – ECM /CMS Manager
cesarpajares@gmail.com
19 Octubre 2009
Curso JBoss JB366
39. Visión general de JBoss AS JEAP
Qué es JBoss
César Pajares – ECM /CMS Manager
cesarpajares@gmail.com
19 Octubre 2009
Curso JBoss JB366
40. 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
César Pajares – ECM /CMS Manager
cesarpajares@gmail.com
19 Octubre 2009
Curso JBoss JB366
41. 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
César Pajares – ECM /CMS Manager
cesarpajares@gmail.com
19 Octubre 2009
Curso JBoss JB366
42. Visión general de JBoss AS JEAP
Arquitectura
César Pajares – ECM /CMS Manager
cesarpajares@gmail.com
19 Octubre 2009
Curso JBoss JB366
43. Visión general de JBoss AS JEAP
Arquitectura
Server JVM
Port 1234
RemoteInvoker
RemoteInvoker
Client JVM
Typed Interface
Invocation
011101010101
Client
Client
Port 4321
JMX Microkernel
JMX Microkernel
– Internally invocation objects are
routed within the kernel
EJB Container MBean
EJB Container MBean
RemoteInvoker
RemoteInvoker
Service MBean
Client Proxy
César Pajares – ECM /CMS Manager
cesarpajares@gmail.com
19 Octubre 2009
Curso JBoss JB366
44. Visión general de JBoss AS JEAP
JMX Architecture
• 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
Service
MBean
Service
MBean
Service
MBean
Server JVM
MBean Server
MBean Server
César Pajares – ECM /CMS Manager
cesarpajares@gmail.com
19 Octubre 2009
Curso JBoss JB366
45. Visión general de JBoss AS JEAP
Deployers: Bringing in the Services
Microkernel
DeploymentScanner
DeploymentScanner
MainDeployer
MainDeployer
SARDeployer
SARDeployer
EARDeployer
EARDeployer
EJBDeployer
EJBDeployer
WARDeployer
WARDeployer
Transaction
Transaction
Service
Service
Message Service
Message Service
Security Service
Security Service
Naming Service
Naming Service
EJB Containers
EJB Containers
*.xAR
César Pajares – ECM /CMS Manager
cesarpajares@gmail.com
Data Sources
Data Sources
19 Octubre 2009
Curso JBoss JB366
46. Visión general de JBoss AS JEAP
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)
WAR 11
WAR
EAR 22
EAR
Application A
JAR 11
JAR
RAR 33
RAR
RAR 33
RAR
JAR 33
JAR
Microkernel
DeploymentScanner
DeploymentScanner
MainDeployer
MainDeployer
SARDeployer
SARDeployer
EARDeployer
EARDeployer
Microkernel
Transaction
Transaction
Service
Service
Security Service
Security Service
DeploymentScanner
DeploymentScanner
MainDeployer
MainDeployer
Naming Service
Naming Service
Data Sources
Data Sources
César Pajares – ECM /CMS Manager
cesarpajares@gmail.com
SARDeployer
SARDeployer
EARDeployer
EARDeployer
EJBDeployer
EJBDeployer
WARDeployer
WARDeployer
Custom SAR
Custom SAR
*.xAR
Application B
Transaction
Transaction
Service
Service
Message Service
Message Service
Security Service
Security Service
Naming Service
Naming Service
EJB Containers
EJB Containers
*.xAR
Data Sources
Data Sources
Custom SAR
Custom SAR
19 Octubre 2009
Curso JBoss JB366
47. Visión general de JBoss AS JEAP
Deployers: Working from the Network
Machine 1
Machine 2
Microkernel
Microkernel
DeploymentScanner
Load Services
MainDeployer
MainDeployer
DeploymentScanner
MainDeployer
MainDeployer
HTTP Scan
Web Server
Administrator
César Pajares – ECM /CMS Manager
cesarpajares@gmail.com
HTTP Scan
Deployment
Packages
19 Octubre 2009
Curso JBoss JB366
48. •
•
Visión general de JBoss AS JEAP
Deployers: Working from the Network
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.
Machine 3
Microkernel
Microkernel
Machine 2
Microkernel
DeploymentScanner
DeploymentScanner
Machine 1
Machine 4
DeploymentScanner
DeploymentScanner
DeploymentScanner
DeploymentScanner
Machine 5
MainDeployer
MainDeployer
MainDeployer
MainDeployer
Microkernel
MainDeployer
MainDeployer
DeploymentScanner
DeploymentScanner
DeploymentScanner
DeploymentScanner
MainDeployer
MainDeployer
César Pajares – ECM /CMS Manager
cesarpajares@gmail.com
Web Server
Administrator
Deployment
Packages
Machine 6
MainDeployer
MainDeployer
Microkernel
Microkernel
DeploymentScanner
DeploymentScanner
MainDeployer
MainDeployer
19 Octubre 2009
Curso JBoss JB366
49. 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
César Pajares – ECM /CMS Manager
cesarpajares@gmail.com
19 Octubre 2009
Curso JBoss JB366
50. Visión general de JBoss AS JEAP
JMX is based on MVC
César Pajares – ECM /CMS Manager
cesarpajares@gmail.com
19 Octubre 2009
Curso JBoss JB366
51. Visión general de JBoss AS JEAP
Jboss Enterprise Middelware Suite
César Pajares – ECM /CMS Manager
cesarpajares@gmail.com
19 Octubre 2009
Curso JBoss JB366
52. Visión general de JBoss AS JEAP
JEMS Jboss Enterprise Middleware Services
Middleware is composed of software that act as intermediaries between different
application components, to ease programming, integration, and management.
Application
caching
Application
Middleware
Middleware
fault
tolerance
security
logging
replication
transactions
Network
César Pajares – ECM /CMS Manager
cesarpajares@gmail.com
19 Octubre 2009
Curso JBoss JB366
53. Visión general de JBoss AS JEAP
JEMS Jboss Enterprise Middleware Services
• Middleware can also be
viewed in the
component model
Security
Network
– Encapsulated software
that performs a service
– Accessed either locally or
remotely
Application
Directory
Services
César Pajares – ECM /CMS Manager
cesarpajares@gmail.com
19 Octubre 2009
Curso JBoss JB366
54. 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
César Pajares – ECM /CMS Manager
cesarpajares@gmail.com
19 Octubre 2009
Curso JBoss JB366
55. Visión general de JBoss AS JEAP
JBoss AS 5.x J2EE Application Server
JBoss AS 5 Runtime
service.xml
spring beans
.ear
Aspectized User Applications
OSGi
.war
…
jboss-beans
bundle
Spring
OSGi
Java EE
MBean
POJO
Component Deployers
Enterprise Services
Messaging OR Mapping
Clustering
WS
Security
Web Server
Virtual Deployer Framework Transactions
…
JBoss Microcontainer
JVM
César Pajares – ECM /CMS Manager
cesarpajares@gmail.com
19 Octubre 2009
Curso JBoss JB366
56. 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
César Pajares – ECM /CMS Manager
cesarpajares@gmail.com
19 Octubre 2009
Curso JBoss JB366
57. 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
César Pajares – ECM /CMS Manager
cesarpajares@gmail.com
19 Octubre 2009
Curso JBoss JB366
58. Visión general de JBoss AS JEAP
EJB3 Enterprise Java Beans
• Simplification of the persistence model
• Light-weight persistence model
In terms of programming and deployment model as well as
runtime performance
• Testability outside of the containers
Create 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
César Pajares – ECM /CMS Manager
cesarpajares@gmail.com
19 Octubre 2009
Curso JBoss JB366
59. 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 software
redesign!
• 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)
César Pajares – ECM /CMS Manager
cesarpajares@gmail.com
19 Octubre 2009
Curso JBoss JB366
60. Visión general de JBoss AS JEAP
Portal Platform Services
JBoss Portal provides essential portal platform services
César Pajares – ECM /CMS Manager
cesarpajares@gmail.com
19 Octubre 2009
Curso JBoss JB366
61. 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)
César Pajares – ECM /CMS Manager
cesarpajares@gmail.com
19 Octubre 2009
Curso JBoss JB366
62. 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.
César Pajares – ECM /CMS Manager
cesarpajares@gmail.com
19 Octubre 2009
Curso JBoss JB366
63. 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
César Pajares – ECM /CMS Manager
cesarpajares@gmail.com
19 Octubre 2009
Curso JBoss JB366
64. 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
César Pajares – ECM /CMS Manager
cesarpajares@gmail.com
19 Octubre 2009
Curso JBoss JB366
65. Visión general de JBoss AS JEAP
GET JBOSS 5!
Questions?
César Pajares – ECM /CMS Manager
cesarpajares@gmail.com
19 Octubre 2009
Curso JBoss JB366