Anda di halaman 1dari 9

Servidor de aplicaciones

Un servidor de aplicaciones es un computador en red dedicado a ejecutar ciertas


aplicaciones software. El término también se refiere al software instalado en tal
ordenador para facilitar la ejecución de otras aplicaciones.

Debido al éxito de la plataforma Java, el término "servidor de aplicaciones"


normalmente se refiere a un servidor de aplicaciones J2EE. WebSphere (IBM) y
Weblogic (BEA) son los más conocidos comercialmente. Dentro de los libres JBoss
y Jonas son los dominantes.

El lenguaje elegido para estas grandes operaciones es Java. Los módulos Web son
servlets y Java Servers Pages (JSP), y la lógica de negocio se implementa en
Enterprise JavaBeans (EJB). El servidor Tomcat de Apache es un ejemplo de
contenedor de código abierto que incluye estos módulos.

Los servlets son programas Java que se ejecutan en el servidor.

Enterprise JavaBeans — EJB

Los Enterprise JavaBeans (también conocidos por sus siglas EJB) son una de las
API que forman parte del estandar de construcción de aplicaciones empresariales
J2EE de Sun Microsystems. Su especificación detalla cómo los servidores de
aplicaciones proveen objetos desde el lado del servidor que son, precisamente, los
EJBs:

• Comunicación remota utilizando CORBA

• Persistencia

• Transacciones

• Control de la concurrencia

• Eventos utilizando JMS (Java messaging service)

• Servicios de nombres y de directorio

• Seguridad

• Ubicación de componentes en un servidor de aplicaciones.

Además, la especificación de Enterprise Java Bean define los papeles jugados por
el contenedor de EJB y los EJBs además de disponer los EJBs en un contenedor.
Los EJBs proporcionan un modelo de componentes distribuido estándar para el
lado del servidor. El objetivo de los Enterprise beans es dotar al programador de
un modelo que le permita abstraerse de los problemas generales de una
aplicación empresarial (concurrencia, transacciones, persistencia, seguridad, ...)
para centrarse en el desarrollo de la lógica de negocio en sí. El hecho de estar
basado en componentes nos permite que éstos sean flexibles y sobre todo
reutilizables.

No hay que confundir a los Enterprise JavaBeans con los JavaBeans. Los
JavaBeans también son un modelo de componentes creado por Sun Microsystems
para la construcción de aplicaciones, pero no pueden utilizarse en entornos de
objetos distribuidos al no soportar nativamente la invocación remota (RMI).
Instalación y Configuración del JBOSS

JBoss 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.

Pasos Previos

Instalación del JDK (J2SE)

La base para operar cualquier producto que utiliza "Java" es el "JDK" de la


plataforma correspondiente, puede encontrar instrucciones para plataformas
Linux así como Windows, en las siguientes direcciones:

• JDK para Linux : http://javabasico.osmosislatina.com/java_linux.htm

• JDK para Windows : http://javabasico.osmosislatina.com/java_windows.htm

Los pasos anteriores son los suficientes para el "JDK" en lo que concierne a la
instalación de JBoss, seguramente después tenga que trabajar con la también
sumamente importante variable ambiental CLASSPATH, por ahora lo anterior es
suficiente. (Más sobre CLASSPATH en Utilización de la variable CLASSPATH).

Instalación de JBoss

1. Una vez obtenido el archivo Tar o Exe (sea el sistetema operativo) de


http://www.jboss.org que contiene el binario, este debe ser instalado ( o
descomprimido en Linux) en un directorio temporal ( /tmp por lo general)
para poder iniciar la instalación.

2. El paso anterior genera un directorio por nombre JBoss-


<numero_de_version> dentro del directorio temporal ( /tmp ) si
desciende a este directorio observará el directorio jboss el cual contiene la
distribución de JBoss.

Cabe mencionar que la versión de Tomcat incluida en JBoss es idéntica a la


proporcionada en http://jakarta.apache.org/tomcat , la única diferencia es
que los archivos de configuración para JBoss se encuentran adaptados a
Tomcat.

3. Se recomienda movilizar el directorio jboss al directorio /usr/local,


además se recomienda definir la variable ambiental JBOSS_HOME al archivo
/etc/bashrc , si no esta familiarizado con ambientes *nix, esto significa
agregar la linea: export JBOSS_HOME=/usr/local/jboss;; para
instalaciones Windows esta variable ambiental puede ser definida de la
misma manera que CLASSPATH, descrita en las instrucciones del JDK.

Estructura

bin

Este directorio contiene los ejecutables utilizados por JBoss, el más importante
siendo el "script" de arranque utilizado por éste (run.sh)

client

Contiene los diversos archivos JAR's que serán utilizados por los distintos
clientes de los EJB's utilizados en JBoss. Dichos archivos deben ser agregados a
la variable CLASSPATH del sistema donde radica el cliente; el cliente
generalmente siendo un JSP/Servlet que accesa el EJB, este paradigma gira
alrededor de Stubs/Skeletons de RMI una parte central de EJB's — .

docs

Este directorio contiene documentación acerca de JBoss.

lib

Este directorio contiene los archivos JAR's empleados por JBoss requeridos en
cualquier modalidad.

server

Este directorio contiene tres sub-directorios nombrados: all, default y


minimal; cada sub-directorio contiene los distintos archivos de configuración
necesarios para ejecutar JBoss en diferentes modalidades.
La modalidad all incluye la ejecución de JBoss para emplearse como "Cluster",
ejecución de "Web-Services" y otras funcionalidades más ; el directorio
default como su nombre lo implica, incluye la configuración para ejecutar JBoss
de manera básica, mientras el directorio minimal contiene los valores de
configuración necesarios para ejecutar JBoss con requerimientos mínimos; el
"Script" de arranque proporcionado con JBoss emplea los valores del directorio
default, para emplear otra modalidad es necesario modificar dicho "Script" de
arranque (run.sh).

A continuación se describen los directorios residentes en la modalidad de


arranque default:

conf

Este directorio contiene las diferentes secciones de configuración utilizadas por


JBoss, dependiendo de la modalidad utilizada este directorio puede contener
distintos archivos , sin embargo, sus detalles serán descritos en configuración
de JBoss .

data

Contiene distintos parámetros y archivos de configuración para las Bases de


Datos proporcionadas con JBoss (Hypersonic y la implementación "Messaging"
de JBoss) -- generalmente utilizada para aplicaciones demo.

deploy

Este directorio es ampliamente utilizado ya que aquí se colocan los EJB's para
que sean ejecutados por JBoss, una vez colocado el archivo JAR (en forma de
EJB) en este directorio, JBoss automáticamente expande y ejecuta el EJB.

lib

Contiene los archivos JAR's empleados por JBoss en base a la modalidad tratada.

log

Contiene los distintos registros ("Logs") generados por JBoss.

tmp

Contiene archivos creados por JBoss y utilizados de manera temporal.

work
Contiene las clases y archivos utilizados por JBoss para ejecución.
Ejecución

La ejecución de JBoss es relativamente sencilla, dentro del directorio bin de la


instalación de JBoss se encuentran los archivos de arranque en forma de "scripts"
para Shell.El archivo de ejecución run.sh es utilizado para iniciar JBoss en
ambientes *nix con los parámetros encontrados en el directorio
server/default/conf, de igual manera, el archivo run.bat lo hace para ambientes
Windows.

Debe observar algo similar al siguiente desplegado; los detalles de estos


parámetros son aquellos definidos en la configuración de JBoss e incluyen: bases
de datos para trabajar con JBoss, ubicación de registros, parámetros JNDI, EJB's
disponibles y cargados, entre otra información.

Secuencia:

1. Ejecutar run.sh:

[web@ws_osmosis bin]$ ./run.sh


=========================================================================
JBoss Bootstrap Environment
JBOSS_HOME: /tmp/jboss-3.2.7
JAVA: /usr/local/jdk1.4.2//bin/java
JAVA_OPTS: -server -Dprogram.name=run.sh
CLASSPATH: /tmp/jboss-3.2.7/bin/run.jar:/usr/local/jdk1.4.2//lib/tools.jar
=========================================================================
12:55:10,608 INFO [Server] Starting JBoss (MX MicroKernel)...
12:55:10,610 INFO [Server] Release ID: JBoss [WonderLand] 3.2.7 (build:
CVSTag=JBoss_3_2_7 date=200501280217)
12:55:10,610 INFO [Server] Home Dir: /tmp/jboss-3.2.7
12:55:10,610 INFO [Server] Home URL: file:/tmp/jboss-3.2.7/
12:55:10,623 INFO [Server] Library URL: file:/tmp/jboss-3.2.7/lib/
12:55:10,625 INFO [Server] Patch URL: null
12:55:10,642 INFO [Server] Server Name: default
12:55:10,642 INFO [Server] Server Home Dir: /tmp/jboss-3.2.7/server/default
12:55:10,643 INFO [Server] Server Home URL: file:/tmp/jboss-3.2.7/server/default/
12:55:10,643 INFO [Server] Server Data Dir: /tmp/jboss-3.2.7/server/default/data

........
< 50-70 lineas >
.......
.......
12:55:31,862 INFO [Http11Protocol] Starting Coyote HTTP/1.1 on http-0.0.0.0-8080
12:55:32,074 INFO [ChannelSocket] JK2: ajp13 listening on /0.0.0.0:8010
12:55:32,192 INFO [JkMain] Jk running ID=1 time=0/149 config=null
12:55:32,216 INFO [Server] JBoss (MX MicroKernel) [3.2.7 (build: CVSTag=JBoss_3_2_7
date=200501280217)]
Started in 21s:146ms

2. Esta pantalla donde se ejecuta JBoss permanecerá congelada por el término


en que este activo JBoss, a esta pantalla se enviarán entre otras cosas: los
errores de ejecución y resultados de agregar EJB's al directorio deploy de
JBoss; desde luego este comportamiento es modificable pero por ahora es el
comportamiento "default" de JBoss.

3. Para finalizar JBoss basta ejecutar Ctrl-C bajo la pantalla en cuestión y JBoss
será terminado, en el proceso desplegando ciertos mensajes de terminación.

Configuración

JBoss esta compuesto por diversos archivos de configuración los cuales se


encuentran bajo el directorio /server/<modalidad>/conf de la instalación de
JBoss, este directorio a su vez puede contener varios subdirectorios (como fue
mencionado en la instalación y estructura ), esta sección se basa en el contenido
del directorio default.

A continuación se mencionan los parámetros de los principales archivos para la


modalidad default, lo cual equivale al contenido de l directorio
/server/default/conf.

jboss-minimal.xml

Archivo que contiene los parámetros principales para la configuración "default"


de JBoss; este archivo XML define los valores para la variable CLASSPATH, el
puerto para el servidor JNDI y el directorio donde serán colocados los distintos
EJB's para ser ejecutados, entre otros parámetros.

jboss-service.xml

Archivo que contiene los parámetros principales del Servidor JBoss; este
archivo XML define los valores para la variable CLASSPATH, el puerto para el
servidor JNDI y el directorio donde serán colocados los distintos EJB's para ser
ejecutados, entre otros parámetros como usuarios y roles disponibles para
emplear el sistema "Messaging" proporcionado con JBoss.

jndi.properties
Contiene las Clases que serán utilizadas ("Factory's") para realizar búsquedas
JNDI.

log4j.xml

Contiene los parámetros empleados por el mecanismo Log4J utilizado en JBoss


para generar registros ("Logs").

login-config.xml

Contiene los parámetros JAAS empleados por JBoss para verificar/autentificar


usuarios.

server.policy

Parámetros de seguridad empleados por JBoss.

standardjaws.xml

JAWS es el motor de mapeo Objeto/Relacional empleado por JBoss en CMP


("Container Managed Persistence") EJB's, este archivo contiene sus valores
"Default".

standardjbosscmp-jdbc.xml

Contiene los valores para ser empleados en CMP ("Container Managed


Persistence") EJB's.

standardjboss.xml

Contiene los parámetros estándar de configuración para JBoss tales como:


Tamaño de "Pools" para EJB's, valores de "Cache", numero de "Pools" para
Bases de Datos, Clases empleadas para Control de Transacciones, entre otros
parámetros.