Apache OFBiz
Apache OFBiz
Apache OFBiz
Apache OFBiz
Javier Torres
Apache OFBiz reduce drsticamente el cdigo requerido para obtener una aplicacin, con un alto nivel de abstraccin, que nos permite concentrarnos en la implementacin del modelo de negocio y no en la programacin misma.
l hablar de sistemas para corporaciones, apare- commerce, SCM, MRP, CMMS/EAM, etc? Adems que sea cen siglas tales como ERP, CRM, E-Business/ fcil de instalar, configurar, adaptar y desarrollar. E-commerce, SCM, MRP, CMMS/EAM y Bueno, s existe una solucin informtica que da resms, que bsicamente hacen referencia a: puestas a estas necesidades, es Apache Open for Business Project, tambin conocido como Apache OFBiz. El mis ERP: Sistemas de Planificacin de Recursos de la Em- mo es un proyecto de automatizacin de software emprepresa (Enterprise Resource Planning). sarial Open Source, bajo la licencia Apache versin 2.0. CRM: Administracin de la relacin con los clientes Apache OFBiz es un sistema OOTB (Out Of The (Customer Relationship Management) Box), es decir instala y se lo usa, sin ms vueltas. Ofrece E-Bussines / E-Commerce: Negocios Electrnicos o una gran cantidad de funcionalidades, incluyendo: Comercio Electrnico. SCM: Gestin de la Cadena de Suministro Comercio electrnico avanzado MRP: Planificacin de Requerimientos de Materiales Administracin de catlogo (MRP - Material requirements planning - Manufacturing Gestin de promociones y precios Resource Planning) Administracin de rdenes de pedido (Compras y Ventas) CMMS/EAM: Sistemas de Administracin de Manteni- Gestin de clientes miento Automatizado (CMMS Computerized Mainte- Gestin de almacenes - depsitos nance Management Systems). Administracin de Activos Cumplimiento de movimiento automtico de stock, Empresariales (EAM Enterprise Asset Management) agrupacin de selecciones, empaque y envo. Gestin Contable (factura, el pago, la facturacin de Uno se preguntara, existe un sistema Open Source oriencuentas, activos fijos) tado a dar soluciones del tipo ERP, CRM, E-Business/E- Administracin de los procesos de fabricacin
46
Linux+ 3/2008
Tecnologas
Nos basaremos en las tecnologas ampliamente conocidas y usadas como Php/Perl y Java para explicar lo que sera Apache OFBiz. Como todos sabemos Php/Perl se concentra en el desarrollo rpido y en obtener resultados, es un lenguaje interpretado, y que carece de una estructura bien definida, mientras Java hace hincapi en la separacin de cdigo, es un lenguaje que tiene una estructura bien definida, generalmente separa la presentacin, de la lgica y la de acceso a la base de datos, tpicamente incluye muchas libreras, clases, propiedades de archivos, definicin de archivos, y dems. Apache OFBiz combina la velocidad de Php/Perl, con la estructura Java, obteniendo algo bastante interesante. Logrando reducir drsticamente el cdigo requerido para obtener nuestra aplicacin, creando un alto nivel de abstraccin, que nos permite concentrarnos en la implementacin del modelo de negocio y no en la programacin misma. OFBiz se construye utilizando el modelo MVC (Model-View-Controller), esto quiere decir que un controlador analiza las peticiones primero, y despus determina qu hacer. La lgica de negocio de OFBiz no se rige a las pginas particulares (como en PHP), objetos particulares (como en Java), o las peticiones particulares del servidor (como en servlets de Perl o de Java del cgi), se crean generalmente servicios, que son pedazos pequeos, reutilizables del cdigo que se pueden escribir en una variedad de lenguajes, incluyendo Java, Jython (una implementacin de alto nivel, dinmico, orientado a objeto del lenguaje Python, escrito en Java), beanshell, o el mini lenguaje de OFBiz. Los
Para finalizar esta parte, se debe agregar una lnea en el archivo /etc/profile, para se cargue desde el arranque, como sigue:
export JAVA_HOME="/usr /lib/jvm/java-1.5.0-sun-1.5.0.10/"
En /etc/postgresql/8.1/main/postdescomentar la lnea que dice listen_addresses = 'localhost' En /etc/postgresql/8.1/main/pg_hba. conf modificar la lnea que dice host all
gresql.conf all 127.0.0.1/32 md5 por host all all 127.0.0.1/32 trust
/etc/init.d/postgresql-8.1 restart
La instalacin de Apache OFBiz consiste en descargar directamente desde el desarrollo del proyecto, utilizando un cliente SVN (subversin, un sistema controlador de versionado), por consiguiente instalamos el soporte SVN (subversin):
apt-get install subversion subversion-tools
Instalar el controlador jdbc para postgres8.1 de Java, para ello hay que ubicarse en una carpeta en particular dentro del OFBiz que instalamos, y descargar un paquete:
cd ..ofbiz/framework /entity/lib/jdbc/
www.lpmagazine.org
47
Editar
...workspace/ofbiz/framework/
entity/config/entityengine.xml
cambiar donde dice: datasource-name= localderby por datasource-name= localpostgres y agregar 5432 en:
......... .......... <inline-jdbc jdbc-driver="org.postgresql.Driver" jdbc-uri="jdbc:postgresql://127.0.0.1: 5432/ofbiz" jdbc-username="ofbiz" jdbc-password="ofbiz" .......... .....
Para finalizar hay que realizar la carga inicial de datos usando las rutinas de instalacin de OFBiz a travs de Ant o directamente con Java y ejecutando el archivo ofbiz.jar. Por defecto la instalacin carga los Seed Data (datos que una aplicacin requiere para que la misma corra, estos son creados y mantenidos dentro de la base de datos) y un conjunto de datos de una empresa Demo, que son definidos en los archivos entityengine.xml y ofbiz-componet.xml. Para correr la instalacin tenemos dos opciones desde la lnea de comando, dentro del directorio donde est el OFBiz: ant run-install, o bien: java -jar ofbiz.jar -install Se puede elegir nicamente cargar los Seed Data y no cargar el conjunto de datos de la la empresa Demo. Para esto habra que
48
Linux+ 3/2008
Primeros pasos
Una vez que tenemos corriendo nuestro Apache OFBiz, hay que escribir la siguiente direccin web desde un navegador de Internet como Firefox, o bien cualquier otro browser: http: //localhost:8080/example Lo primero que nos aparecer es el certificado (ya que es una pgina segura). Por defecto no est configurado el certificado, y no aparecern datos del mismo. Le damos Aceptar. Si se desea configurar el certificado se deber utilizar herramientas de gestin de certificados digitales como Keytool, que es la herramienta sugerida en la documentacin del proyecto OFBiz, y por ltimo modificar la configuracin general del OFBiz. En este instante nos encontramos con una ventana de solicitud de usuario y contrasea, el usuario y contrasea por defecto son: usuario: admin passwd: ofbiz
Una vez logueados vemos la Figura 4. Y podemos apreciar que todo se encuentra organizado en solapas (pestaas), donde encontramos las diferentes aplicaciones a personalizar como ser la parte contable, de marketing, de usua-
www.lpmagazine.org
49
Si desea que OFBiz enve e-mail de notificaciones habra que configurar: mail.notification
s.enabled=Y
Estructura de desarrollo
Apache OFBiz funcionalmente es construido sobre un framework comn, que puede ser dividido en las siguientes capas (y como se aprecia en la Figura 6):
Apache OFBiz usa el concepto de screens (pantallas) para representar las pginas de presentacin de Apache OFBiz. Cada pgina es, normalmente, representada como un Configuraciones screen. Una pgina en Apache OFBiz conGenerales de OFBiz siste en un conjunto de componentes, y los A continuacin veremos algunas configuracio- Configuracin de Servidor de Correo mismos pueden ser un header (encabezado), nes generales bsicas. La configuracin de correo electrnico se la un footer (pie de pgina), etc.. Las pginas realiza en el archivo antes mencionado: son mostradas combinando todos los comConfiguraciones Regionales ponentes como lo especifica la definicin Las configuraciones regionales pueden ser .../framework/common del screen. Los componentes pueden ser configuradas en el siguiente archivo de confi/config/general.properties Java Server Pages (JSP), pginas FTL consguracin: truidas por plantillas FreeMarker, Forms, y tiene los parmetros a tocar son: Servidor Menus y Tree Widgets (especificaciones .../framework/common SMTP: es el que nos permitir enviar co- propias de OFBiz). /config/general.properties rreo, y se realiza de la siguiente manera: y donde encontramos los diferentes parmetros smtp Si el servidor smtp necesita autenticaa configurar: cin habra que descomentar y completar las siguiente lneas: Cdigo de Moneda (utilizado para expresar el precio, se puede consultar mail.smtp.auth.user = usuario la tabla Uom, son cdigos de 3 le- mail.smtp.auth.password = contrasea
mail.smtp.relay.host =mi_servidor_
Cdigo de Pas (los existentes se pueden ver en la tabla Geo, son 3 letras de pases segn ISO, los mismos los encontramos en el archivo GeoData.xml): por defecto se encuentra en Estados Unidos (USA): country.geo.id.de fault=USA para pasarlo a argentina (ARG) bastara con country.geo.id.default=ARG
Capa de Presentacin
50
Linux+ 3/2008
Capa de Datos
Las capas de datos son responsables de los accesos y almacenamiento de la base de datos, y de adems proveer una interfaz a la capa lgica. Los datos son accedidos como objetos pero por un camino relacional. Cada entidad (representa una fila de la base de datos) es provista por la capa de lgica como un valor genrico. El valor genrico no es especificado, as los campos son accedidos por el nombre de la columna.
A continuacin haremos un recorrido superficial, de los pasos generales a seguir, para el desarrollo de las aplicaciones en Apache OFBiz, para ello nos basaremos en la Figura 7 (diagrama de desarrollo). Antes seguir hay que tener presente que Apache OFBiz, tiene muy bien definida la estructura de directorios y archivos, a la que tenemos que ajustarnos. En la Figura 8, apreciamos a la estructura de directorio, incluyendo los archivos mencionados en el diagrama de desarrollo. La estructura de directorios fue sacada de un ejemplo, el mundialmente conocido como Hola Mundo!!! (Hello World), que es el primer programa que uno escribe, en cualquier entorno de desarrollo, en este caso lo podemos encontrar en 3 versiones (que va de un ejemplo bsico a uno bastante avanzado), en el sitio www.opensourcestrategies.com/ofbiz. Lo primero a llevar a cabo en una aplicacin como lo muestra el diagrama (figura 7), es la definicin de la base de datos, que se la realiza escribiendo un archivo llamado entitymodel.xml, (ubicar el mismo en la Figura 8 estructura de directorio). En el ejemplo a estudiar define una base de datos con 3 tablas, una para datos de una persona (HelloPerson), una para los hobbys (HelloHobby)
Conclusiones
Plataformas de desarrollo
La mayora o la totalidad de la implementacin se la puede realizar simplemente trabajando con los archivos XML, y para ello cualquier editor de texto que trabaje con la sintaxis de estos formatos es bueno, podramos decir que VIM es un buen candidato para los amantes de las consolas. Por otra parte podemos usar entornos de desarrollos como Eclipse (con algunos plugins) y NetBeans, ya que con los mismos puedo hacer un seguimiento de la aplicacin, parar y hacer correr la aplicacin, editarla, encontrar archivos, etc. Se encuentra bastante documentacin disponible en Internet de cmo desarrollar en OFBiz utilizando estos entornos de desarrollos.
Si uno quiere implementar un sistema informtico de gran envergadura, robusto, totalmente orientado a las corporaciones, que de entrada cuente con un 80% de la solucin informtica, y que adems con pocas lneas de programacin se llegue a la solucin deseada, sin dudarlo usara una solucin como la propuesta por el proyecto Apache OFBiz. Si bien presenta una curva de aprendizaje bastante elevada, una vez superada, es todo un juego de nios. Espero que este material sea de utilidad, como cultura general o bien para comenzar a desarrollar con esta fabulosa creacin de Apache, en la actualidad considerado oficialmente un proyecto de alto nivel, o TLP (top level project), para la Apache Software Foundation.
Es difcil decir quienes usan y cmo usan Apache OFBiz debido a que no muchos te dicen si
Sobre el autor
Ing. Javier Torres - Alias Javix - Coordinador y Co-fundador de la comunidad de software libre de Salta Argentina (SaltaLUG). Un gran admirador y seguidor de Debian y Ubuntu, en estaciones de trabajo y en servidores.
En la Red
http://ofbiz.apache.org/ http://www.opensourcestrategies.com/ ofbiz/tutorials.php
www.lpmagazine.org
51