19
Página 1 | 19 Sistemas Distribuidos Dr. Alain Ramírez Reporte (JBoss)

JBOSS Introduccion

  • Upload
    kaori

  • View
    35

  • Download
    2

Embed Size (px)

DESCRIPTION

Breve descripción de Jboss, una Plataforma de Desarrollo Java, el cual esta construido sobre eclipse.

Citation preview

Page 1: JBOSS Introduccion

P á g i n a 1 | 19

Sistemas Distribuidos

Dr. Alain Ramírez

Reporte (JBoss)

Page 2: JBOSS Introduccion

P á g i n a 2 | 19

CONTENIDO.

1. INTRODUCCIÓN A JBOSS……………………………………………………3

2. ESTRUCTURA DE JBOSS…………………………………………………….5

3. TIPOS DE APLICACIONES DESPLEGABLES EN JBOSS……………….8

4. MONITOREO EN JBOSS……………………………………………………..12

5. CONECTORES EN JBOSS…………………………………………………..15

6. CLÚSTER EN JBOSS…………………………………………………………17

Page 3: JBOSS Introduccion

P á g i n a 3 | 19

INTRODUCCIÓN A JBOSS

JBoss es toda una plataforma de desarrollo Java. El conjunto de productos se

conoce como JBoss Enterprise Middleware Stack Enterprise Platform.

Algunos de sus productos:

JBoss Enterprise Application Platform (EAP): Plataforma para desplegar

tanto servicios como aplicaciones construidas co n la tecnología Java.

JBoss Enterprise Portal Platform (EPP): Plataforma para construir y

desplegar portales Java, permitiendo personalizar e interactuar con

aplicaciones empresariales Java.

Algunas de sus Herramientas y frameworks de desarrollo son:

JBoss Developer Studio: Es un entorno de Desarrollo (IDE) que toma como

base Eclipse e integra sus herramientas de desarrollo JBoss Tools.

Seam: Framework de desarrollo que permite la simplificación entre la

integración de tecnologías de JSF y EJB.

Hibernate: Framework de persistencia el cual maneja el concepto Object

Relational Mapping (ORM)

JBoss Application Server (AS).

Es un servidor de aplicaciones Java, construido sobre el micro contenedor JBoss.

Este micro contenedor es un contenedor ligero para la gestión, configuración

despliegue de clases puras de Java, también conocidas como POJO (Plain Old

Java Objects). El micro contenedor se basa en la Programación Orienta a Aspectos

(conocido como JBoss AOP). Integra servicios empresariales tales como JSP´s,

Servlets, EJB´s, y en general un entorno empresarial Java EE.

Permite la ejecución de aplicaciones móviles, permitiendo aprovechar varios

servicios de un ambiente empresarial sin necesidad de un servidor JEE completo.

Utiliza el concepto de inyección de dependencia utilizando POJOs para crear

servicos. La configuración se puede lograr mediante archivos XML o Anotaciones.

JBoss Developer Studio (JBDS).

Es el entorno de desarrollo comercial de JBoss, el cual está construido sobre

eclipse. JBoss cuenta con un plug-in para Eclipse, el cual ofrece varias de las

características que soporta JBDS, con el soporte de la comunidad JBoss y Eclipse.

El plug-in se conoce como JBoss Tools y permite la integración con tecnologías

como:

Page 4: JBOSS Introduccion

P á g i n a 4 | 19

Hibernate.

JBoss Seam

Rich Faces

JBoss AS

JBoss Portal.

JBoss utiliza el archivo bootstrap.xml para cargar e inicializar los servicios. Este

archivo contiene las rutas (URL) de los servicios disponibles.

Un ejemplo del archivo bootstrap.xml válido sería el siguiente:

Page 5: JBOSS Introduccion

P á g i n a 5 | 19

Algunos de los servicios que se observan son:

Classloader.xml: Archivo con las clases de carga básicas y el classpath de la

instancia.

Aop.xml: Contiene los beans JBossAOP, advicers JMX y temas relacionados

con AOP.

Loggin.xml: Configuración del framework log4j para salida de mensajes.

En JBoss AS podemos configurar múltiples instancias o perfiles en la misma

instalación. La instalación de JBoss EAP 5 incluye las siguientes instancias: all,

default, minimal, production, standard, web.

Además, podemos utilizar las opciones de –b para indicar la IP con la cual se enlazará la instancia. La IP 127.0.0.1 indica que solo es accesible para el localhost y la IP 0.0.0.0 indica que la instancia puede ser accedida desde cualquier equipo.

ESTRUCTURA DE JBOSS

Page 6: JBOSS Introduccion

P á g i n a 6 | 19

bin: Contiene los scripts y archivos necesarios para el arranque y detención de JBoss, tales como run.bat, shutdown.bat (Windows) y run.sh, shutdown.sh (Unix) y run.conf que es el archivo donde establecemos los parámetros de la JVM.

common: Esta carpeta tiene un directorio lib, el cual contiene las librerías que dan soporte a la versión del servidor, en este caso, JEE 5, además de librerías para soporte de frameworks como Hibernate. lib: Contiene las librerías para el correcto funcionamiento del micro contenedor de Jboss. Esta carpeta no se debe modificar a menos que sea un requerimiento específico del servidor de aplicaciones.

server: Esta carpeta es donde crearemos, configuraremos y daremos mantenimiento a las instancias que utilicemos en JBoss.

Una instancia o perfil es una configuración con cierto número de servicios.

default: Esta es la instancia más utilizada por los desarrolladores, ya que está enfocada en brindar servicios JEE 5, con el cual podemos manejar EJB 3.0, JPA, Anotaciones, entre varias características más.

Page 7: JBOSS Introduccion

P á g i n a 7 | 19

production: Esta instancia ya está habilitada con los servicios de clúster y pre-configurada para utilizarse en ambientes productivos. all: Contiene todos los servicios habilitados, incluyendo clúster. Es un buen punto de partida para instancias con servicios de clúster. standard: Soporta el estándar JEE 5, incluyendo servicios Web y llamadas remotas (RMI) web: Soporta la tecnología de Servlets y JSP’s, con soporte para JTA, JNDI, entre otras. Esta instancia no está obligada a cumplir con el estándar JEE 5.

conf: Contiene los archivos de carga e inicialización de nuestra instancia. Únicamente se cargan una vez al momento de arrancar nuestra instancia. Aquí se encuentra el archivo bootstrap.xml. deploy: En esta carpeta se encuentran los servicios que podemos utilizar en la instancia respectiva, además aquí se encuentran los distintos tipos de aplicaciones que podemos desplegar como son .war, .ear o .sar.

Page 8: JBOSS Introduccion

P á g i n a 8 | 19

deployers: En esta carpeta se encuentran los Mbeans (servicios) que permiten desplegar las aplicaciones, como pueden ser .war, .ear y .sar. lib: Contiene las librerías comunes que se pueden utilizar para las aplicaciones que residan en esta instancia. Estas librerías son leídas solo la primera vez al cargar la instancia. *otras: Existen otras carpetas, como la carpeta de log, tmp, work y data. Las cuales nos permiten examinar el trabajo realizado por la instancia, incluyendo sus aplicaciones.

TIPOS DE APLICACIONES DESPLEGABLES EN JBOSS

.war (Web Archive): Este tipo de archivos empaquetan una aplicación Web Java y suelen contener Servlets, JSPs, descriptores como web.xml, jbossweb. xml, css, javascript, entre otros archivos. .ear (Enterprise Archive): Este tipo de archivos empaquetan una aplicación Empresarial Java y suelen contener además de la parte Web, archivos .jar con EJBs, descriptores como application.xml y jboss-app.xml. .sar (JBoss Services Archive): Este tipo de archivos empaquetan un servicio JBoss, los cuales se utilizan comúnmente dentro del servidor JBoss y están basados en JMX. *-ds.xml: Este tipo de archivos contienen los datos de conexión a bases de datos externas y pueden ser reutilizados por todas las aplicaciones o servicios de la instancia.

A nivel ríaz: Archivos públicos como *.html, *.jsp, *.css, *.js, entre otros. Este directorio base contiene comúnmente todos los elementos públicos de una aplicación web. Estos archivos pueden ser accedidos desde un navegador Web.

WEB-INF: Esta carpeta contiene los elementos de configuración, páginas, librerías y clases de nuestra aplicación Web. Ningún

Page 9: JBOSS Introduccion

P á g i n a 9 | 19

archivo de esta carpeta puede ser accedido desde el navegador Web, ya que son privados. WEB-INF/web.xml y jboss-web-xml: Contiene la configuración de la aplicación web, definición de componentes Web tales como Servlets, Listeners, Filtros, etc. El archivo jboss-web.xml permite definir algunos recursos a utilizar, como pueden ser dtaSources, EJB´s, entre otro tipo de recursos. WEB-INF/lib: contiene las librerías (.jar) que serán utilizadas por la aplicación. En le caso de JBoss, ya no es necesario integrar los .jar de JEE 5, ya que el servidor ya tiene el soporte para este tipo de tecnología.

Estructura de Archivos .ear

Un .ear contiene una aplicación empresarial Java, la cual consta de: Aplicación

Empresarial Java = Archivo .war + EJB-JAR.

La estructura de un .ear es:

/*war (Archivos .war)

/* .jar (Archivos EBJ-JAR)

/META-INF/application.xml (Descriptor de despliegue del módulo EAR).

En este archivo se declaran los distintos módulos Web y EJB que forman la

aplicación empresarial.

Estructura de Archivos .sar

Los archivos SAR (Service Archive) tienen un objetivo distinto a los archivos .jar,

.war o.aer.

Los archivos .sar son utilizados únicamente en el servidor de aplicaciones JBoss.

Los archivos .sar son utilizados para desplegar servcios en el servidor de

aplicaciones JBoss sin depender de otros componentes.

La arquitectura de los archivos .sar está basada en Java eXtension Management

(JMX).

Durante el arranque del servidor de aplicaciones, el servicio de despliegue sar

(SARDeployer) inicia e instancia las clases que permiten manejar estos servicios a

través de JMX.

Los componentes registrados vía JMX se pueden observar en la consola de

JBoss.

Page 10: JBOSS Introduccion

P á g i n a 10 | 19

En la figura se pueden observar algunos de los componentes que pueden ser monitoreados vía JMX (Java Management eXtensions). El API de JMX es un estándar de Java para la gestión y monitoreo de recursos tales como:

Aplicaciones y dispositivos locales o remotos.

Servidores y servicios locales o remotos. La Máquina Virtual (JVM) local o remota.

Algunos de los puntos fundamentales de JMX son:

• La API JMX permite acceder a información que es publicada por una aplicación Java.

• Para poder acceder a dicha información se deben crear clases Java

conocidas como Mbeans. • JBoss implementa sus servicios como Mbeans, lo que permite que

puedan ser monitoreados. • Existen herramientas para usar JMX de JBoss y monitorear su estado.

Page 11: JBOSS Introduccion

P á g i n a 11 | 19

En JBoss los archivos de tipo dataSource se describen en archivos *-ds.xml y se depositan en la carpeta de deploy de la instancia respectiva. Estos archivos permiten especificar los valores para conectarnos a una base de datos.

Un dataSource de tipo XADataSource permite ejecutar transacciones distribuidas, es decir, en una misma transacción se incluyen varias Bases de Datos.

Page 12: JBOSS Introduccion

P á g i n a 12 | 19

MONITOREO EN JBOSS

JBoss tiene varias opciones para monitorear los servicios del servidor, desde herramientas de línea de comandos hasta consolas visuales. Las consolas Web y JMX han sido parte de JBoss en versiones anteriores y continúan en la versión 5, además se tienen las consolas Admin Console y Tomcat. Las herramientas de monitoreo visuales se pueden acceder con la ruta: http://localhost:8080. Tipos de consola en JBoss.

Consola de Administración.

Consola JMX.

Consola Web.

Consola Tomcat.

CONSOLA DE ADMINISTRACIÓN.

Esta consola permite administrar, monitorear, generar alertas y operaciones de

control sobre JBoss. También nos permite hacer tareas como: Reinicio de JBoss,

despliegue de aplicaciones .war, .ear entre otras, manejo de estadísticas, entre

otras muchas actividades de administración.

Page 13: JBOSS Introduccion

P á g i n a 13 | 19

El Panel de Control se compone de las siguientes opciones:

Summary: Resume las propiedades generales de un recurso, por ejemplo JNDI, así como sus métricas más relevantes.

Configuration: Esta opción permite la edición y creación de nuevos recursos.

Metrics: Esta opción despliega las estadísticas y métricas del recurso seleccionado.

Control: Si está habilitado, se pueden utilizar acciones especiales relacionadas con el recurso seleccionado. Por ejemplo, hacer un flush en un pool de conexiones.

CONSOLA JMX.

Provee una vista de los servicios del microkernel de JBoss listándolos como servicios registrados activos (Mbeans). Los MBean pueden representar un dispositivo, una aplicación o cualquier recurso que necesite ser monitoreado. Un MBean incluye un conjunto de propiedades para leer o escribir, tales como: Uso de la memoria, CPU, monitoreo del recolector de basura, un conjunto de operaciones que se pueden invocar, entre otras características.

Page 14: JBOSS Introduccion

P á g i n a 14 | 19

CONSOLA WEB.

Es similar a JMX, excepto que contiene un applet interactivo que permite capturar métricas del sistema. La consola Web soporta crear notificaciones y eventos listener. Los monitores que se crean son MBeans. Cuando ocurre un evento, el MBean listener manda una notificación ya sea a la consola estándar de JBoss o vía email. En esta consola también se pueden observar gráficas en tiempo real del uso de los recursos de los MBeans y en general de JBoss. Debido a que la consola Web y JMX son accesibles únicamente de manera local a la instancia o nodo de trabajo, varios administradores prefieren utilizar software de terceros, tal como es JBoss ON (JBoss Operations Network).

Page 15: JBOSS Introduccion

P á g i n a 15 | 19

CONSOLA JCONSOLE.

Jconsole es una aplicación de utilería que viene como parte de jdk 5 o superior y provee información relacionada con una VM(Virtual Machine) ya sea local o remota. Para utilizar Jconsole y Jboss de manera local, basta abrir la aplicación JConsole y conectarse a la instancia que fue levantada. Con ello se podrán analizar el uso de la memoria, los hilos que se encuentran ejecutando, el número de clases cargadas en memoria, el uso del CPU y varios detalles más de la máquina virtual ligada al proceso analizado.

CONECTORES EN JBOSS.

Conectores en la Capa WEB.

JBoss soporta los siguientes conectores en la capa WEB: HTTP1.1, HTTPS, APJ 1.3

HTTP 1.1: Permite establecer una comunicación directa entre el cliente y servidor, su

puerto por default es 8080, y está habilitado por default.

HTTPS: Permite establecer una comunicación encriptada entre el cliente y el servidor, su

puerto por default es 8443, no está habilitado por default.

Page 16: JBOSS Introduccion

P á g i n a 16 | 19

APJ 1.3: Tambien conocido como Apache Java Protocol, permite conectar el servidor web

Apache y apache Tomcat, vía el conector mod_jk (o vía mod_proxy), su puerto por

default es 8009, está habilitado por default.

Conectores en la Capa de Servicio.

JBoss EAP al ser una plataforma de servicios, está construida de componentes bajamente acoplados y unidos a través del microcontenedor. JBoss soporta múltiples servicios y estos servicios están comúnmente ligados a un puerto y una ip, o una combinación de ellos. Dependiendo del tipo de servicio, es el puerto que se utiliza. Algunos ejemplos son: JNDI (Java Naming and Directory Interface):

Es básicamente un directorio donde se pueden buscar los componentes de una aplicación empresarial Java.

El puerto por default es el 1099. JMS (Java Messaging Service):

Es una tecnología que permite interactuar con distintos sistemas y mantenerlos sincronizados a todos ellos.

Utiliza el concepto de colas de mensajes. Utiliza los modelos de mensajes como son: publish-subscribe y point-to-point.

JBoss Messaging reemplaza a JBossMQ en la versión 5 de JBoss.

Page 17: JBOSS Introduccion

P á g i n a 17 | 19

CLÚSTER EN JBOSS.

Un Clúster es un conjunto de instancias agrupadas bajo un mismo nombre. El clúster se utiliza para garantizar entre otras cosas, la disponibilidad de los servicios y aplicaciones publicadas en el servidor JBoss.

Algunas de las características de un clúster son:

Todas las instancias está idénticamente configuradas.

Cada nodo tiene un identificador único y pertenecen al mismo grupo.

Todos los nodos se pueden comunicar entre sí.

Todos los nodos comparten el estado entre ellos. La configuración de un clúster nos permite manejar dos conceptos fundamentales:

Balanceo de Cargas: Esto se puede lograr ya sea por hardware o por software, en nuestro caso utilizaremos Apache.

Tolerancia a fallos: En caso de que un nodo falle, la petición se re direcciona al nodo que se encuentre activo, en nuestro caso utilizaremos Apache para lograr esta configuración.

AMBIENTE DEL CLÚSTER Podemos observar que Apache es ahora es el responsable de procesar las peticiones y re direccionar la petición al nodo del clúster JBoss más indicado (Balance de cargas) o al nodo que esté disponible (fail-over). El concepto de clúster maneja una terminología muy particular. A continuación mencionaremos varios de estos conceptos:

Page 18: JBOSS Introduccion

P á g i n a 18 | 19

Escalabilidad: Entre más usuarios conectados a nuestra aplicación, más recursos se necesitan. La escalabilidad nos permite incrementar el hardware y el software necesario para dar soporte a un mayor número de usuarios.

Alta Disponibilidad: Los servicios deben estar accesibles en los tiempos indicados y con una garantía predictiva de disponibilidad.

Balanceo de Cargas: El objetivo es mejorar el performance de la aplicación, seleccionando de manera dinámica bajo cierto algoritmo, el nodo que tiene menos carga y que permite procesar la petición del usuario.

Sesión de afinidad (sticky): Un nodo es el que atiende de principio a fin la sesión de un usuario.

Tolerancia a Fallos: En caso de que falle algún nodo, las sesiones de los usuarios se transfieren a algún servidor disponible en el clúster.

Page 19: JBOSS Introduccion

P á g i n a 19 | 19

INTEGRACIÓN ENTRE APACHE Y JBOSS.

Apache es uno de los servidores web más utilizados a nivel mundial. Posee una arquitectura muy flexible y por lo tanto permite configurarlo para integrarlo con distintas tecnologías, en nuestro caso con el servidor de aplicaciones Java JBoss. JBoss maneja internamente un servidor web Apache Tomcat embebido para el procesamiento de las peticiones Web. En resumen Apache es un software muy robusto y conocido para el manejo de aplicaciones Web estáticas, mientras que la integración con JBoss nos permitirá ejecutar nuestras aplicaciones dinámicas Java. En ambos casos los servidores se pueden configurar para manejar el concepto de Clúster.