JBoss AS jeap - Curso JBoss JB366 Día 1
Upcoming SlideShare
Loading in...5
×
 

JBoss AS jeap - Curso JBoss JB366 Día 1

on

  • 379 views

JBoss AS jeap - Curso JBoss JB366 Día 1

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

Statistics

Views

Total Views
379
Views on SlideShare
379
Embed Views
0

Actions

Likes
5
Downloads
66
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

JBoss AS jeap - Curso JBoss JB366 Día 1 JBoss AS jeap - Curso JBoss JB366 Día 1 Presentation Transcript

  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • Visión general de JBoss AS JEAP Java Environment César Pajares – ECM /CMS Manager cesarpajares@gmail.com 19 Octubre 2009 Curso JBoss JB366
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • Visión general de JBoss AS JEAP Arquitectura César Pajares – ECM /CMS Manager cesarpajares@gmail.com 19 Octubre 2009 Curso JBoss JB366
  • 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
  • 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
  • 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
  • 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
  • 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
  • • • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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