Upload
cesar-pajares
View
473
Download
13
Embed Size (px)
DESCRIPTION
JBoss AS jeap - Curso JBoss JB366 Día 1 Visión general de JBoss Application Server
Citation preview
19 Octubre 2009Curso JBoss JB366
César Pajares – ECM /CMS [email protected]
Visión general de JBoss Application Server
JbossProfessional Open Source
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
19 Octubre 2009Curso JBoss JB366
César Pajares – ECM /CMS [email protected]
Visión general de JBoss AS JEAP
Servidores de Aplicaciones
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.
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
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.
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?
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.
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.
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
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.
19 Octubre 2009Curso JBoss JB366
César Pajares – ECM /CMS [email protected]
Visión general de JBoss AS JEAP
Arquitectura Tres capas
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
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.
19 Octubre 2009Curso JBoss JB366
César Pajares – ECM /CMS [email protected]
Visión general de JBoss AS JEAP
Java Environment
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.
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
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
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)
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
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
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
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
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.
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.
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.
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”).
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.
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)
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.
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.
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.
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
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
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
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
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
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)
19 Octubre 2009Curso JBoss JB366
César Pajares – ECM /CMS [email protected]
Visión general de JBoss AS JEAP
Qué es JBoss
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
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
19 Octubre 2009Curso JBoss JB366
César Pajares – ECM /CMS [email protected]
Visión general de JBoss AS JEAP
Arquitectura
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
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
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
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
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
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
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
19 Octubre 2009Curso JBoss JB366
César Pajares – ECM /CMS [email protected]
Visión general de JBoss AS JEAP
JMX is based on MVC
19 Octubre 2009Curso JBoss JB366
César Pajares – ECM /CMS [email protected]
Visión general de JBoss AS JEAP
Jboss Enterprise Middelware Suite
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
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
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
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
…
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
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
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
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)
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
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)
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.
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
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
19 Octubre 2009Curso JBoss JB366
César Pajares – ECM /CMS [email protected]
Visión general de JBoss AS JEAP
GET JBOSS 5!
Questions?