Professional Documents
Culture Documents
Universidad uniminuto
Santiago de Cali, valle del cauca.
2014
Introduccin.
Caractersticas de las aplicaciones web
El usuario puede acceder fcilmente a estas aplicaciones empleando un navegador web
(cliente) o similar.
Si es por internet, el usuario puede entrar desde cualquier lugar del mundo donde tenga
un acceso a internet.
Pueden existir miles de usuarios pero una nica aplicacin instalada en un servidor, por lo
tanto se puede actualizar y mantener una nica aplicacin y todos sus usuarios vern los
resultados inmediatamente.
Emplean tecnologas como Java, JavaFX, JavaScript, DHTML, Flash, Ajax... que dan gran
potencia a la interfaz de usuario.
Emplean tecnologas que permiten una gran portabilidad entre diferentes plataformas.
Por ejemplo, una aplicacin web flash podra ejecutarse en un dispositivo mvil, en una
computadora con Windows, Linux u otro sistema, en una consola de videojuegos, etc.
Java servlets.
Java Servlets son programas en java que son pre compilados por el programador, entonces
puestos en el servidor de pginas (web server) que los carga, compila y ejecuta al momento que
un usuario remoto lo solicita, generalmente a travs de una pagina html.
Es de tomar muy en cuenta que cuando el servidor de paginas carga y ejecuta un servlet, lo va
mantener activo en memoria en su propio proceso por toda la vida del servidor de pginas (es
decir mientras no se recete el servidor).
Procedimiento
Para el desarrollo de la implementacin del laboratorio se necesitan los siguientes:
Libreras Drools - 4.0.7
Aplicacin Drools Brms - 4.0.7 GA
JBoss 4.2.2 GA
Eclipse 3.6 Estructuras de Datos que contiene el plugin de JBoss IDE instalado.
Prerrequisitos
Para la realizacin de este tutorial es necesario que se encuentre familiarizado con el desarrollo de
aplicaciones Java en el ambiente de desarrollo Eclipse. Adems se espera un conocimiento mnimo
sobre WebServices y desarrollo de aplicaciones Web en jsf 2.0.
Objetivos
Identificar reglas de negocio.
Proponer e implementar estrategias para integrar las aplicaciones existentes con las reglas
de negocio.
Utilizar Drools JBRMS como administrador de reglas de negocio e incorporarlo a
aplicaciones existentes con el fin de desacoplar las reglas de negocio de las aplicaciones.
Instalacin de JBoss AS.
JBoss es un servidor de aplicaciones J2EE de cdigo abierto implementado en Java puro. Al estar
basado en Java, JBoss puede ser utilizado en cualquier sistema operativo para el que est
disponible Java.
Para instalar slo es necesario descomprimir los archivos en una carpeta de su sistema
preferiblemente en una ruta que no tenga espacios entre los nombres.
http://www.jboss.org/jbossas/downloads
Para nuestro caso se utilizara la versin de jboss 4.2.2
Para realizar la instalacin del servidor jboss se realizan los siguientes pasos.
1. Descargar instalador de la pgina principal de jboss.
2. La carpeta descargada se encuentra comprimida en un archivo de extensin .rar, para lo
cual es necesario descomprimir en ubicacin que se desea instalar el servidor, por
recomendacin se debe instalar en disco c.
3. Se debe configurar la variable de entorno.
* En la caja Nombre de variable: JBOSS_HOME.
* En la caja Valor de variable: la ubicacin donde hayas instalado el servidor.
4. Reiniciamos pc.
Ejecucin.
La ejecucin de JBoss es relativamente sencilla, dentro del directorio bin de la instalacin de JBoss
se encuentran los archivos de arranque en forma de "scripts" para Shell. El archivo de ejecucin
run.sh es utilizado para iniciar JBoss en ambientes *nix con los parmetros 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 parmetros son aquellos
definidos en la configuracin de JBoss e incluyen: bases de datos para trabajar con JBoss,
ubicacin de registros, parmetros JNDI, EJB's disponibles y cargados, entre otra informacin.
Esta pantalla es donde se ejecuta JBoss que permanecer congelada por el trmino en que este
activo JBoss, a esta pantalla se enviarn entre otras cosas: los errores de ejecucin y resultados de
agregar EJB's al directorio deploy de Jboss.
Para finalizar JBoss basta ejecutar Ctrl-C bajo la pantalla en cuestin y Jboss ser terminado, en el
proceso desplegando ciertos mensajes de terminacin.
Como consola de administracin se puede acceder en el equipo a la siguiente direccin ip local,
mostrando la consola web. http://localhost:8080/.
Configurando:
Debido a que se va a utilizar el Droold BRMS para la administracin de las reglas se deben copiar
dentro del servidor de aplicacin JBOSS las libreras necesarias. Para esto se siguen los siguientes
pasos:
Descargue el archivo .zip con las libreras de Drools que se indic la pgina de instaladores
Descomprima este archivo
Copie los siguientes jars:
o drools-core-4.0.7.jar (Se encuentra en la carpeta donde descomprimi el archivo).
o mvel-1.3.1-java1.4.jar (Se encuentra en la carpeta /lib donde descomprimi el
.zip).
o Pegue los jars en la carpeta JBOSS_HOME\server\default\lib.
Despliegue de Drools BRMS en el servidor de aplicaciones
Para realizar el despliegue de la interfaz web de administracin de reglas de drools realice los
siguientes pasos:
Descargue el archivo zip de Drools BRMS indicado en la pgina de descargas
Descomprima el archivo (Debi aparecer un archivo denominado drools-jbrms.war)
Copie este archivo y pguelo en la carpeta de deploy en servidor de aplicaciones JBoss
(JBOSS_HOME\server\default\deploy)
Inicie JBoss ejecutando el archivo binario JBOSS_HOME\bin\run.bat
Si le sale una notificacin de Windows, dele click en Desbloquear.
Una vez terminado el despliegue de JBoss, desde su navegador puede ingresar a la
siguiente direccin donde se encuentra el administrador web de drools:
http://localhost:8080/drools-jbrms/
</td>
</TR>
</table>
</body>
</html>
En el servlet queda:
package edu.uniminuto.se.servlet;
import java.io.IOException;
import
import
import
import
import
javax.servlet.RequestDispatcher;
javax.servlet.ServletException;
javax.servlet.http.HttpServlet;
javax.servlet.http.HttpServletRequest;
javax.servlet.http.HttpServletResponse;
import uniminuto.se.variable.Temperatura;
import edu.uniminuto.se.prototipo.reglas.ServicioAnalisis;
/**
* Servlet implementation class ServletGestionTemperatura
*/
public class ServletGestionTemperatura extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public ServletGestionTemperatura() {
super();
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doGet(HttpServletRequest request,
HttpServletResponse response)
*/
Tambin se crea la clase que hace la gestin de reglas con la aplicacin guvnor de drools, es donde
est la regla determinada.
Clase:ServicioAnalisis
paquete: edu.uniminuto.se.prototipo.reglas
import uniminuto.se.variable.Temperatura;
/**
* Clase que representa el anlisis de la variable
*/
public class ServicioAnalisis
{
// ----------------------------------------------------------------// Mtodos
// ----------------------------------------------------------------public static Temperatura ejecutarAnalisis( Temperatura p ) throws
Exception
{
ServerConfig config = ServerConfigLocator.locate( );
File dataDir = config.getServerDataDir( );
File archivo = new File( dataDir, "./analisis/Reglas.properties"
);
Properties prop = new Properties( );
System.out.println( "Cargando el archivo###:" +
archivo.getAbsolutePath( ) );
FileInputStream in = new FileInputStream( archivo );
prop.load( in );
in.close( );
RuleAgent agent = RuleAgent.newRuleAgent( prop );
RuleBase ruleBase = agent.getRuleBase( );
WorkingMemory workingMemory = ruleBase.newStatefulSession( );
workingMemory.insert( p );
workingMemory.fireAllRules( );
return p;
}
}
En el jsp se coloca:
Tambin en el servidor jboss se debe colocar el archivo properties donde se coloca la ruta de
guvnor drool.
Segn la ruta dada en la clase ServicioAnalisis, la ruta es:
"./analisis/Reglas.properties"
Si la carpeta anlisis no se encuentra se crea en data.
Descargue el archivo .zip con las libreras de Drools que se indic la pgina de instaladores
Descomprima este archivo
Copie los siguientes jars:
drools-core-4.0.7.jar (Se encuentra en la carpeta donde descomprimi el archivo).
mvel-1.3.1-java1.4.jar (Se encuentra en la carpeta /lib donde descomprimi el
.zip).
Pegue los jars en la carpeta JBOSS_HOME\server\default\lib.
A continuacin pulsamos sobre la opcin del men Packages, la pantalla muestra varias
opciones en la parte superior representadas por pequeos iconos, Haga click en el cono de
create new package en la ventana que aparece e ingrese un nombre. En la siguiente imagen se
puede observar:
Recordemos que para definir reglas necesitamos un modelo (Clase Java) sobre la cual verificar
condiciones y ejecutar acciones. En nuestro caso se tiene una clase que est en la aplicacin de
sensor. El directorio est en uniminuto.se.variable de la aplicacin web. Se debe crear el
respectivo .jar de esta clase lo cual realizamos el siguiente procedimiento:
Haga click derecho sobre la clase Temperatura en nuestro caso.
Escoja la opcin Export.
Escoja la opcin Java / Jar File.
En la ubicacin de export.
Luego se crea una categora, las categoras no son obligatorias, pero es recomendable cuando
tenemos gran cantidad de reglas. Para ello vamos al Men Admin Create a new category.
Introducimos el nombre (Valortemperatura) y una descripcin, y pulsamos OK. Si no aparece la
nueva categora pulsa sobre la opcin Refreshview.
Llegados a este punto ya podemos definir una regla, para ello en el men que se encuentra
encima del rbol, pulsamos sobre el icono de Drools si nos ponemos sobre este nos muestra un
tooltip con Create New Rule.
Esta regla corresponde a la que habamos definido antes y est escrita en el lenguaje de Drools
(mvel)
Haga click en el botn valdate para que el administrador revise la regla y decida si est
bien escrita de acuerdo a la sintaxis de mvel.
Luego haga click en save changes y save en la ventana nueva que sale.
Volvemos al link de packages, seleccionamos el paquete de Biblioteca, y volvemos a
Generar el paquete (Hacer click en build, valdate and deploy y luego en build package)
Debera salir el mensaje de Package built succesful
Bibliografia
http://cupi2.uniandes.edu.co/site/index.php/tutoriales/drools