Apache OFBiz
August 18, 2022 | Author: Anonymous | Category: N/A
Short Description
Download Apache OFBiz...
Description
linux en la empresa Desarrollo de sistemas corporativos
Apache OFBiz Javier Torres
Apache OFBiz reduce drásticamente drásticamente el código requerido para obtener una aplicación, con un alto nivel de abstracción, que nos permite concentrarnos en la implementación del modelo de negocio y no en la programación misma.
l p . m o c . e r a w t f o s @ x u n i l
l hablar de sistemas para corporaciones, apare- commerce, SCM, MRP, CMMS/EAM, etc? Además que sea cen siglas tales como ERP, CRM, E-Business/ fácil de instalar, congurar, adaptar y desarrollar desarrollar.. E-commerce, SCM, MRP, CMMS/EAM y Bueno, sí existe una solución informática que da resmás, que básicamente hacen referencia a: puestas puest as a estas nec necesidad esidades, es, es Apache Open Ope n for Business Busi ness Project, también conocido como Apache OFBiz. El misERP: Sistemas de Planicación de Recursos de la Em- mo es un proyecto de automatización de software empre presa (Enterprise Resource Planning). Planning). sarial Open Source, bajo la licencia Apache versión 2.0. CRM: Administración de la relación con los clientes clientes Apache OFBiz es un sistema OOTB (Out Of The (Customer Relationship Management) Box), es decir instala y se lo usa, sin más vueltas. Ofrece E-Bussines / E-Commerce: Negocios Electrónicos o una gran cantidad de funcionalidades, incluyendo: Comercio Electrónico. SCM: Gestión de la Cadena de Suministro • Comercio electrónico avanzado MRP: Planicación de Requerimientos de Materiales • Administración de catálogo (MRP - Material requirements planning - Manufacturing • Gestión de promociones y precios Resource Planning) • Administrac Administración ión de órdenes de pedido (Compras y Ventas) CMMS/EAM:: Sistemas de Administración de Manteni- • Gestión de clientes CMMS/EAM miento Automatizado (CMMS Computerized Mainte- • Gestión de almacenes - depósitos nance Management Systems). Administración de Activos • Cumplimiento de movimiento automático de stock,
A • • • • •
•
Empresariales (EAM Enterprise Asset Management)
•
Uno se preguntaría, ¿existe un sistema Open Source orientado a dar soluciones del tipo ERP, CRM, E-Business/E- •
46
Linux+ 3/2008
agrupación de selecciones, envío. Gestión Contable (factura,empaque el pago,y la facturación de cuentas, activos jos) Administración de los procesos de fabricación
linux en la empresa Desarrollo de sistemas corporativos
•
•
•
•
Administración general de trabajo requerido y empleado – esfuerzo de trabajo (eventos, tareas, proyectos, solicitudes, etc.) Gestión de contenidos para el producto contenido, páginas web, de contenido general, blogs, foros, etc. Un módulo maduro de punto de venta (POS) usando XUI como una interfaz de cliente enriquecida Y mucho más, más, ¡todo ¡todo un un proyecto proyecto Open Source!
Tecnologías Nos basaremos basaremos en las tecnologí tecnologías as ampliament ampliamentee conocidas y usadas como Php/Perl y Java para explicar lo que sería Apache OFBiz. Como todos sabemos Php/Perl se concentra en el desarrollo rápido y en obtener resultados, es un lenguaje interpretado, interpretad o, y que carece de una estructura bien denida, mientras Java hace hincapié en la separación de código, es un lenguaje que tiene una estructura bien denida, generalmente separa la presenta pres entación, ción, de la lógica lógica y la la de acce acceso so a la base base de datos, típicamente incluye muchas librerías, clases, propiedades de archivos, denición de archivos, y demás. Apache OFBiz combina la velocidad de Php/Perl, con la estructura Java, obteniendo algo bastante interesante. Logrando reducir drásticamente el código requerido para obtener nuestra aplicación, creando un alto nivel de abstracción, que nos permite concentrarnos en la implementación del modelo de negocio y no en la programación misma. OFBiz se construye utilizando el modelo MVC (Model-View-Controller), esto quiere decir que un controlador analiza las peticiones primero, y después determina qué hacer. La lógica de negocio de OFBiz no se rige a las páginas particulares (como en PHP), objetos particul part iculares ares (com (comoo en Java Java), ), o las petic peticiones iones par par-ticulares del servidor (como en servlets de Perl o de Java del cgi), se crean generalmente serv serviicios, que son pedazos pequeños, reutilizables reutilizables del código que se pueden escribir en una variedad de lenguajes, incluyendo Java, Jython (una im plementa plem entación ción de alto alto nivel, dinámic dinámico, o, orientado orientado a objeto del lenguaje Python, escrito en Java), beanshell bean shell,, o el mini lengu lenguaje aje de OFBi OFBiz. z. Los
servicios pueden entonces llamarse directamente desde la aplicación web, de forma automática, dentro de otros servicios, de workows declarados, o remotamente vía el SOAP o el RMI.
Instalar Apache OFBiz La instalación consiste en tan solo bajar la aplicación desde el proyecto Apache OFBiz y de luego instalar Java. Se ejecuta un script de instalación, se congura, se lo hace correr y nada más, queda listo para que la empresa mejore su productividad. Las siguientes instrucciones de instalación son en particular para una distro Debian GNU/ Linux llamada Etch, con una base de datos PostgreSQL, sin embargo embargo los pasos a seguir son similares en las demás distribuciones. Para instalar Java SDK se comienza agregando non-free en los repositorios de Debian Etch (en /etc/apt/ sources.list),, y luego se ejecuta en consola: sources.list) apt-get update apt-get install sun-java5-jdk
sun-java5-jre sun-java5-
bin sun-java5-plugin
svn co http://svn.apache.org/repos
Instalar PostgreSQL Por defecto el sistema Apache OFBiz tiene congurado e integrado una base de datos Java embebida llamada Derby. La misma es buena para demostrar demostrar,, proba probar, r, y desa desarrol rrollar lar pequeñas implementaciones. Pero se recomienda no utilizar Derby, ya que no es fácil de administrar, ni optimizar, y no posee una buena performance. OFBiz soporta una gran cantidad de base de datos, tanto comerciales como Open Source, entre las comerciales tenemos a Oracle, MS SQLServer, y dentro de las Open Source Postgre o MySQL, generalmente se recomiendan estas últimas. En esta instalación elegimos PostgreSQL, por ninguna razón en particu particular, lar, simplemente por mayor anidad. Escribi Escribirr en la consola de nuestro Debian: apt-get install postgres8.1 luego hay que congurar el mismo mínimamente como sigue: •
export JAVA_HOME="/usr /lib/jvm/java-1.5.0
-sun-1.5.0.10/"
/asf/ofbiz/trunk ofbiz
En
/etc/postgresql/8.1/main/post-
gresql.conf descomentar la línea que dice listen_addresses = 'localhost'
•
En
/etc/postgresql/8.1/main/pg_hba.
conf modicar
Para nalizar esta parte, se debe agregar una línea en el archivo /etc/prole, para se cargue desde el arranque, como sigue: •
la línea que dice
host all
all 127.0.0.1/32 md5” por “host all all 127.0.0.1/32 trust
Reiniciar postgresql de la siguiente manera: /etc/init.d/postgresql-8.1 /etc/init.d/postgresql-8 .1 restart
• /lib/jvm/java-1.5.0-sun-1.5.0.10/" La instalación de Apache OFBiz consiste en • descargar directamente desde el desarrollo del proyecto, proye cto, util utilizan izando do un clie cliente nte SVN (subv (subverersión, un sistema controlador de versionado), por consi consiguie guiente nte insta instalamos lamos el sopor soporte te SVN • (subversión): apt-get install subversion subversion-tools • export JAVA_HOME="/usr
Creamos la carpeta donde se trabajará y descargar allí el proyecto: mkdir workspace
Crear usuario ofbiz en GNU/Linux: useradd ofbiz passwd ofbiz
Crear el usuario ofbiz en PostgreSQL: su postgres createuser ofbiz exit
Crear base de datos con el usuario ofbiz: su ofbiz createdb ofbiz exit
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/
cd workspace
Figura 1. Certifcado 1. Certifcado de OFBiz
Figura 2. Confrmación 2. Confrmación de Certifcado de OFBiz
www.lpmagazine.org
Figura 3. Logueo 3. Logueo en OFBiz
47
linux en la empresa Desarrollo de sistemas corporativos
wget http://jdbc.postgre http://jdbc.postgresql.org sql.org
escribir lo siguiente: java
/download/postgresql
-install -readers=seed
•
-8.1-409.jdbc3.jar
Editar
...workspace/ofbiz/framework/
entity/cong/entityengine.xml
cambiar donde dice: datasource-name=” localderby” por datasource-name=” localpostgres” y agregar 5432 en: ......... .......... Entity Entity of of an an Open Open For Business Business Project Project Component Component< > persons"> < > > < > > < > > < > > < > > < > available"> < > > < > > < > Entity"> < > > < > >
Figura 4. Primera 4. Primera impresión de Apache OFBiz
> > > > >
Figura 5. E-Commerce de Apache OFBiz
48
Linux+ 3/2008
linux en la empresa Desarrollo de sistemas corporativos
Congurado en: Containers XML File Referenciado en: Containers XML File, JNDI Referenciado en: Navegadores Web (Browser, Properties File, Service Engine XML File si corre directamente) • IIOP (Shark, etc) - 2000 • AJP13 - 8009 Congurado en: Carol Properties Congurado en: Containers XML File (carol.iiop.url ) Referenciado en: Conguración por medio Referenciado en: Containers XML File Apache mod_jk plugin • BSH Client - 9989, 9990 (estas deberían • JRMP (JNDI, RMI, etc) - 1099 estar generalmente deshabilitadas o al menos protegidas por un rewall) Configurado en: Carol Properties (carol. jrmp.url) Congurado en: Containers XML File Listado 2. Contenido de entitygroup.xml
Primeros pasos Una vez que tenemos corriendo nuestro Apache OFBiz, hay que escribir la siguiente dirección web desde un navegador de Internet como Firefox, o bien cualquier otro browser: http: //localhost:8080/e //localh ost:8080/example xample
Lo primero que nos aparecerá es el certicado (ya que es una página segura). Por defecto no está congurado el certicado, y no aparecerán datos del mismo. Le damos Aceptar. Si se desea congurar el certicado se deberá utilizar herramientas de gestión de certicados digitales como Keytool, que es la herramienta sugerida en la documentación del proyecto OFBiz, y por último modicar la conguración general del OFBiz. En este instante nos encontramos con una ventana de solicitud de usuario y contraseña, el usuario y contraseña por defecto son:
> > >
• usuario: admin • passwd: ofbiz ofbiz
>
Una vez logueados vemos la Figura 4. Y podemos apreciar que todo se encuentra organizado
Listado 3. Contenido de services.xml >Hello Hello 3 Services Services< >
en solapas (pestañas), donde encontramos las diferentes aplicaciones a personalizar como ser la parte contable, de marketing, de usua-
> >Create Create a HelloPerson HelloPerson< > > -->
>Create Create a HelloPersonHobby HelloPersonHobby which which links a a person person and and a hobby > < > >
�
Listado 4. Contenido de Hello3Services.xml
>
< > >
Figura 6. Capas de OFBiz
www.lpmagazine.org
49
linux en la empresa Desarrollo de sistemas corporativos
rios, almacén, manufactura, entre otras. A esta altura, ya tenemos todo un sistema robusto a nuestra disposición, para hacer y deshacer a nuestro gusto, con todas la ventajas que tiene una aplicación Open Source. Si colocamos la dirección http://localhost:8080/ecommerce, en el browser, obtendremos un completo comercio electrónico (con los datos cargados), como se aprecia en la gura 5. Éste no está totalmente traducido al español, por más que cambiemos el idioma, ya que por defecto se muestra en inglés. Pero no hay problema, fácilmente se adapta a las necesidades de uno, ya que estamos frente a una aplicación Open Source, bien documentada.
tras, que se encuentran en el archivo Si desea que OFBiz envíe e-mail de noticacioCurrencyData.xml) por defecto se en- nes habría que congurar: mail.notication cuentra en dólares americanos (USD): s.enabled=Y currency.uom.id.default=USD para poner en pesos argentinos (ARS, según Estructura de desarrollo el archivo CurrencyData.xml): CurrencyData.xml): Apache OFBiz funcionalmente es construido sobre un framework común, que puede currency.uom.id.default=ARS ser dividido en las siguientes capas (y como se aprecia en la Figura 6): Código de País (los existentes se pueden ver en la tabla Geo, son 3 letras de países según Capa de Presentación ISO, los mismos los encontramos en el archi- Apache OFBiz usa el concepto de screen screenss vo GeoData.xml): por defecto se encuentra en (pantallas) para representar las páginas de Estados Unidos (USA): country.geo.id.de pres presentac entac ión de Apache Ap ache OFBiz OFBiz.. Cada pági pági-fault=USA para pasarlo a argentina (ARG) na es, normalmente, representada como un Conguraciones bastaría con country.geo.id.default=ARG screen. Una página en Apache OFBiz conGenerales de OFBiz siste en un conjunto de componentes, y los A continuación veremos algunas conguracio- Confguración de Servidor de Correo mismos pueden ser un header (encabezado), nes generales básicas. La conguración de correo electrónico se la un footer (pie de página), etc.. Las páginas realiza en el archivo antes mencionado: son mostradas combinando todos los comConfguraciones Regionales pone ntes como lo espec ifica la defin definició iciónn Las conguraciones regionales pueden ser .../framework/common del screen. Los componentes pueden ser /cong/general.properties conguradas en el siguiente archivo de con- Java Server Pages (JSP), páginas FTL consguración: truidas por plantillas FreeMarker, Forms, y tiene los parámetros a tocar son: Servidor Menus y Tree Widgets (especificaciones SMTP: es el que nos permitirá enviar co- prop propias ias de OFBiz). OF Biz). rreo, y se realiza de la siguiente manera:
.../framework/common
/cong/general.properties
mail.smtp.relay.host
=mi_servidor_
y donde encontramos los diferentes parámetros smtp Si el servidor smtp necesita autenticaa congurar: ción habría que descomentar y completar las siguiente líneas: • Código de Moneda (utilizado (utilizado para para expresar el precio, se puede consultar mail.smtp.auth.user = usuario la tabla Uom, son códigos de 3 le- mail.smtp.auth.password = contraseña
�
� �
Figura 8. Estructura de Directorio de una aplicación Figura 7. Diagrama de Desarrollo - OFBiz
50
- OFBiz
Linux+ 3/2008
linux en la empresa Desarrollo de sistemas corporativos
Capa de Lógica de Negocio La capa de aplicación o lógica dene los servicios servici os provisto prov istoss por por el usua usuario. rio. Los ser servici vicios os pued pueden en ser de varios tipos: java methods, SOAP, simple services, workow, etc. Un servicio es responsable por aspecto aspectoss como una invocació invocación, n, transacc transacción, ión, seguridad, etc. Apache Ofbiz usa un conjunto bien den denido ido de tecno tecnologí logías as Open Open Sour Source ce y stanstandards como Java, J2EE, XML, SOAP, etc. Capa de Datos Las capas de datos son responsables de los accesos y almacenamiento de la base de datos, y de además proveer una interfaz a la capa lógica. Los datos son accedidos como objetos pero por un camino relacional. Cada entidad (representa una la de la base de datos) es provista por la capa de lógica como un valor genérico. El valor genérico no es especicado, así los campos son accedidos por el nombr nombree de la colu columna. mna.
El Desarrollo en Apache OFBiz A continuación haremos un recorrido supercial, 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 denida 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 prim er programa programa que uno escr escribe, ibe, en cualquier cualquier entorno de desarrollo, en este caso lo podemos encontrar en 3 versiones (que va de un ejemplo básico bási co a uno basta bastante nte avan avanzado) zado),, en el siti sitioo www.opensourcestrategies.com/ofbiz. Lo primero a llevar a cabo en una aplicación como lo muestra el diagrama (gura 7), es la denición 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). directorio). En el ejemplo a estudiar dene una base de datos con 3 tablas, una para datos de una persona (HelloPerson), una para los hobbys (HelloHobby)
y una última que relaciona las tablas anteriores (HelloPersonHobby), como se muestra en el Listado 1. Observamos que tiene sintaxis totalmente legible, no hace falta mayores explicaciones. Luego se coloca en el archivo entitygroup.xml el nombre de las tablas creadas, como se muestra en el Listado 2. Siguiendo el diagrama (Figura 7), pasamos a otra capa donde se dene el servicio en el archivo services.xml (ver Listado 3). Apreciamos que dene dos servicios, uno en Java y otro en XML (el minilang de OFBiz). La im plementa plem entación ción del serv servicio icio en XML (el archivo archivo Hello3Services.xml) sería como se muestra en el Listado 4. Con esto simplemente quería poner en maniesto la simpleza y las pocas líneas necesarias, y el alto nivel de abstracción que posee, la posibilidad de trabajar con Java, entre otras cosas. Este artículo no tiene la nalidad de un curso de Apache OBFiz, simplemente un pantallazo y una primera impresión impresión del mismo. Como vimos no hace falta para desarrollar en OFBiz, ni siquiera un gran conocimiento en Java, html, PostgreSQL, o XML, teniendo una base mínima,
lo usan, sin embargo bastantes sitios públicos y unos pocos sitios comerciales que declaran usar OFBiz como son: 1-800-Flowers.com, Action Envelope, American Heart Association, Grocery List Builder , Ameniti Luxury Travel Club, CellularOne (ash front-end), Chocolate Secrets, City Deals, Compliance Online Store, DKNY,, Gracious Style, ImagINwood, Juniper DKNY Music + Soundesign, La Belle Ecole, Messer Group (German, French), Old Glory, Parago, Partner Homes, Peacock Alley, Salton, Shirt Painter (German), Silver Wings Plus Club, Steiner Sports, totes >>ISOTONER, Ulta, Undersun Consulting, Xinit Systems, World Franchise Council, entre otros. Para una lista más detallada de los mismos podemos dirigir dirigirnos nos a: http://docs.ofbiz.org/
ya es suciente. Con respecto a la Base de datos, una vez instalada, nos olvidamos totalmente que usamos por ejemplo un motor Oracle o PostgreSQL, como se observó anteriormente. OFBiz presenta además unas herramientas web, para manipular la base de datos, bastante interesante (Figura 9).
•
Plataformas de desarrollo La mayoría o la totalidad de la implementación 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, podríamos 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 aplicación, parar y hacer correr la aplicación, editarla, encontrar archivos, etc. Se encuentra bastante documentación disponible en Internet de cómo desarrollar en OFBiz utilizando estos entornos de desarrollos.
display/OFBIZ/Apache+OFBiz+User+List.
También podemos encontrar productos basados en Apache OFBiz como: • •
• • •
Codesquare Helix Mvelopes (FREE TRIAL!) (Comercial-Service (Comercial-Service)) Atlassian JIRA (Comercial) Opentaps Open Source ERP + CRM (GPL/Comercial) Neogia (GPL) SourceTap CRM (GPL/Commercial) NeuLionn SA NeuLio SAV VANNA XtraMin XtraMindd Mietta 2.
Conclusiones Si uno quiere implementar un sistema informático de gran envergadura, robusto, totalmente orientado a las corporaciones, que de entrada cuente con un 80% de la solución informática, y que además con pocas líneas de programación se llegue a la solución deseada, sin dudarlo usaría una solución 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 niños. Espero que este material sea de utilidad, como cultura general o bien paraa come par comenzar nzar a desa desarro rrollar llar con est estaa fabu fabulosa losa creación de Apache, en la actualidad considerado ocialmente un proyecto de alto nivel, o TLP (top level project), para la Apache Software Foundation.
¿Quiénes usan Apache OFBiz? Es difícil decir quienes usan y cómo usan Apache OFBiz debido a que no muchos te dicen si
En la Red
Sobre el autor Ing. Javier Torres - Alias Javix - Coordinador y Co-fundador de la comunidad de software libre de Salta Argentina (Salta-
http://ofbiz.apache.org/ http://www.opensourcestrategies.com/ ofbiz/tutorials.php Figura 9. Herramientas 9. Herramientas Web - OFBiz
www.lpmagazine.org
LUG). Un gran admirador y seguidor de Debian y Ubuntu, en estaciones de traba jo y en servidores.
51
View more...
Comments