viernes, 28 de marzo de 2008

Workflow - Scarab

Hola, muchas veces en las empresas en que trabajamos es necesario implementar un sistema que haga un seguimiento a distintos casos o actividades, es decir la construcción o implementación de un workflow. Ahora ustedes se preguntaran ¿Que es un Workflow? , en simples palabras, un workflow es el seguimiento a un flujo de trabajo ver aquí para más información.

Los Workflow deben cumplir con los siguientes objetivos (copiado de wikipedia):
  • Reflejar, mecanizar y automatizar los métodos y organización en el sistema de información
  • Establecer los mecanismos de control y seguimiento de los procedimientos organizativos
  • Independizar el método y flujo de trabajo de las personas que lo ejecutan
  • Facilitar la movilidad del personal
  • Soportar procesos de reingeniería de negocio
  • Agilizar el proceso de intercambio de información y agilizar la toma de decisiones de una organización, empresa o institución

Ahora que ya sabemos lo que es un workflow, y que además necesitamos implementar uno, veremos como lo haremos.
Existen muchos workflow en el mercado, en el siguiente link hay una lista de ellos, son proyectos Open Source - Workflow Engine in Java.

Nos centraremos en una aplicación Open Source llamada Scarab de tigris.org, escrita en Java y altamente configurable, trabaja con distintas bases de datos como Oracle, Postgre, Mysql, Hipersonic, etc., Prototype como librería de Ajax, y los mejores estándares abiertos de tecnología J2EE, como base de Workflow ocupa WfmOpen, La meta de este proyecto (WfmOpen) es proporcionar una puesta en práctica ligera basada en un motor del worflow J2EE. el cual funcionará en una variedad de plataformas y con licencia GPL.

Tambien el código fuente se integra fácilmente con ides como eclipse y netbeans, trabajando con ant y maven a gusto del desarrollador, velocity Macro para las paginas y turbine como motor.

Bueno pongamos manos a la obra y descarguemos el proyecto desde este link

bajemos la ultima versión estable, la 0.21, en formato tar.gz o zip, y lo descomprimimos en el directorio donde tengamos nuestros desarrollos, esto nos generara un árbol de archivos como el siguiente:

slack@ulinux:~/desarrollo/scarab-0.21$ ls -la

total 364
drwxr-xr-x 10 slack slack 4096 2008-03-28 10:26 .
drwxr-xr-x 45 slack slack 4096 2008-03-24 10:06 ..
drwxr-xr-x 3 slack slack 4096 2008-03-27 16:06 bin
drwxr-xr-x 2 slack slack 4096 2008-03-28 09:40 build
-rwxr-xr-x 1 slack slack 10104 2008-03-12 22:38 .classpath
drwxr-xr-x 8 slack slack 4096 2008-03-12 22:36 extensions
-rwxr-xr-x 1 slack slack 9646 2007-02-09 16:28 INSTALL
drwxr-xr-x 2 slack slack 4096 2008-03-12 22:36 lib
-rwxr-xr-x 1 slack slack 175 2007-02-09 16:28 LICENSE
-rwxr-xr-x 1 slack slack 28373 2007-02-09 16:28 maven.xml
-rwxr-xr-x 1 slack slack 18837 2007-02-09 16:28 MIGRATION
-rwxr-xr-x 1 slack slack 14209 2008-03-27 11:44 minimal.properties
-rwxr-xr-x 1 slack slack 3868 2007-02-09 16:28 minimal.xsl
-rwxr-xr-x 1 slack slack 370 2008-03-12 22:38 .project
-rwxr-xr-x 1 slack slack 55009 2008-03-27 15:07 project.properties
-rwxr-xr-x 1 slack slack 28509 2007-02-09 16:28 project.xml
-rwxr-xr-x 1 slack slack 4139 2007-02-09 16:28 project.xsl
-rwxr-xr-x 1 slack slack 3194 2007-02-09 16:28 README
drwxr-xr-x 9 slack slack 4096 2007-02-09 16:34 src
drwxr-xr-x 9 slack slack 4096 2007-02-09 16:34 tomcat
-rwxr-xr-x 1 slack slack 98872 2007-02-09 16:31 velocity.log
-rwxr-xr-x 1 slack slack 14120 2007-02-09 16:28 wizzard.properties
-rwxr-xr-x 1 slack slack 3956 2007-02-09 16:28 wizzard.xsl
drwxr-xr-x 3 slack slack 4096 2007-02-09 16:34 www
drwxr-xr-x 7 slack slack 4096 2008-03-12 22:36 xdocs

y al montarlo el eclipse quedaría así este proyecto:



Entonces ahora tendremos que tener instalada y arriba Mysql la cual ocupa por defecto para el arranque inicial, la podriamos cambiar modificando el archivo minimal.properties de la raiz del proyecto, si ocupamos ANT debemos ir a la carpeta build del proyecto y correr con ant el archivo buid.xml, como muestra la siguiente imagen:



Antes de comenzar a deployar la aplicación debemos crear una base de datos llamada scarab en mysql con usuario root por default, luego en el navegador derecho de opciones de ant hacemos doble click en la opción por defecto marcada como deploy [default] y luego que termine en la consola de hacer este deploy si todo va bien debemos generar el war con la opcion war de ant, esto nos generara una carpeta con el nombre target en la raiz del proyecto y dentro de esta el archivo scarab.war que debemos llevar al webapp de tomcat.

Saludos y mucha suerte !!

miércoles, 12 de marzo de 2008

Hacker o Cracker?


Uno de los temas que tiene mucho que ver en esto de la informática y que no está muy claro todavía, es acerca de los hackers. Estas personas tienden a ser confundidas con otro tipo de individuos que son todo lo contrario a ellos...

En esta primera parte abarcaremos lo que es un hacker - ¿ Acaso no son los hackers los que se pasan tratando de romper las cuentas de hotmail a la gente?

¿Qué es lo primero que pensamos cuando escuchamos la palabra Hacker?.En un tipo frente a una computadora metiéndose a otra para desconfigurarla o robarle información, o en un tipo programando virus para infectar tu máquina y así perder toda tu información. Muchos usuarios de Internet les temen a estos tipos que incluso cuando saben que tienen uno en su lista de contactos, lo borran y borran todo lo relacionado con este, creyendo evitar así ser espiados, este tipo de personas asociados a un mundo medio under ground, de musica rock, bar de rene, o de la noche, etc... no somos tan malos, jjj.



En cambio otros (especialmente los principiantes) adoran a estos hackers y pasan días enteros buscando información de como convertirse en uno de ellos, y cuando se topan con uno quieren convertirse en su pupilo y aprender todas la magias que encierra a estos individuos denominados hackers por la sociedad.

Pero oh! Error señores, estos no son los verdaderos hackers. Los hackers de verdad no destruyen.... Construyen.

Todos estos individuos que se la pasan saboteando equipos no son más que Crackers que se dedican a crackear cuentas con el único fin de perjudicar a otros. Los Hackers en cambio son tipos rudos en la programación y tecnología o en la creación de soluciones a problemas, autodidactas, etc.

La sociedad ha denominado hackers a los crackers y esto a los hackers de verdad no les causa la menor de las gracias pues ellos están para construir, desarrollar soluciones, y descubrir fallos de seguridad en los sistemas que investigan, no para destruir y sabotear.

Un hacker no dice: Soy un Hacker!. la comunidad de hackers es la que lo denomina como tal, por sus características y esfuerzo al realizar una aplicación o al contribuir a la solución de un problema.

"Los hackers resuelven problemas y construyen cosas, y creen en la libertad y la ayuda voluntaria mutua. Para ser aceptado como hacker, deberás comportarte como si tuvieras esta actitud en tu interior. Y para comportarte como si tuvieras esta actitud, deberás creerte de verdad dicha actitud".

"Pero si piensas en cultivar las actitudes de hacker sólo como una forma de ganar aceptación en esta cultura, te estás equivocando. Transformarse en la clase de persona que cree estas cosas es importante para ti para ayudarte a aprender y mantenerte motivado. Como en todas las artes creativas, el modo más efectivo de transformarse en un maestro es imitar la mentalidad de los maestros no sólo intelectualmente, sino también emocionalmente".

Los hackers son autodidactas, y es para ellos todo un reto el resolver un problema. Entre mas grande sea el problema a resolver, mas interesante se hace el reto para un hacker de solucionarlo.

Linux es un ejemplo de una plataforma creada por hackers. Linux es un sistema operativo muy usado por los hackers, en el desarrollan aplicaciones, y crean soluciones a distintos problemas que tiene la comunidad linux, como la falta de algunas aplicaciones o la actualización de otras, etc. Estas aplicaciones van desde una página web hasta un sistema operativo completo.

La comunidad hacker esta en la red, y se encuentra en distintas comunidades y foros en lo ancho del Internet. Algunos son Moderadores y pasan largas jornadas leyendo problemas y aportando soluciones. Otros participan en proyectos de software y aportan código u optimizan código para los proyectos, en realidad son comunidad abierta al conocimiento.

Los hackers son los que le han dado forma a lo que hoy conocemos como Internet y su aportación es muy importante en el desarrollo informático. No solo son programadores, los hay desarrolladores y podría decir que también algunos solo son autodidactas y adictivos a la informatica.

Así que si la próxima vez quieres robar una cuenta de Hotmail y ser un gran hacker.. serás mas bien un cracker! (¡lamer es el término adecuado!). En vez de robar mejor: "aporta y crea soluciones para la comunidad... se autodidacta, sé un hacker!!.

Saludos y Suerte !!