Esta vez tenemos para todos los gustos. Por una lado un artículo para aquellos que están empezando con Java y quieren realizar aplicaciones que se conecten a una base de datos a traves de los drivers JDBC. Para ello Abraham ha escrito un completo tutorial con el que aprenderás todos lo que necesitas saber.
En otro campo un poco mas avanzada Luis Ramón Álvarez nos ha enviado un artículo sobre Ofbiz, un entorno de desarrollo web con el cual es muy sencillo crear desarrollos empresariales. En este artículo tenemos una explicación de como instalarlos sobre Orion y MySQL para que podamos empezar a trabajar con él.
Para acabar, y desde hace ya unos días, hemos vuelto a publicar un tutorial de J2ME que en el pasado tuvimos que quitar. Gracias a Manuel Jesús Prieto por volver a confiar en nosotros para hacer llegar al público este gran tutorial.
Un saludo y seguimos esperando esas lineas que seguro teneis escritas y estáis pensando en publicar ;-)
Copyright (c) 2004, PRONOIDE. Este documento puede ser distribuido solo bajo los términos y condiciones de la licencia de Documentación de javaHispano v1.0 o posterior (la última versión se encuentra en /licencias/).
Introducción
El objetivo de este artículo es el de instalar la plataforma de desarrollo de aplicaciones de negocio Ofbiz para que trabaje bajo el servidor de aplicaciones java OrionServer y la base de datos MySQL. Hemos seleccionado la combinación Orion Server y MySql pues según la documentación del proyecto es una de las combinaciones con mejor rendimiento y mayor escalabilidad (ver Obfiz/setup/setup.html). para hacernos una idea bastante aproximada del rendimiento que muestra Ofbiz en este entorno, que es en el que se basa nuestra experiencia.
Instalación de los componentes
Primero ha de instalarse el paquete de desarrollo java. Para esta experiencia se ha utilizado el j2sdk-1_4_2_03. Igualmente es necesario instalar el servidor Orion. En este caso se utilizará la versión 2.0.2. En cuanto a la base de datos, se utilizará como se ha dicho MySql, la versión 4.0.17. Este software e instrucciones para su instalación puede obtenerse en las direcciones de la sección 'recursos' .
La elección de las versiones se basa en la última versión estable disponible a la hora de realizar este documento.
Existe un problema cuando Orion sirve las aplicaciones Ofbiz utilizando el compilador estándar que acompaña al JDK, puesto que al compilar las páginas jsp en ocasiones se generan métodos de más de 64kb y se produce un error similar a este:
500 Internal Server Error Error parsing JSP page /catalog/control/EditProduct Error creating jsp-page instance: java.lang.ClassFormatError: __jspPage20_product_EditProduct_jsp (Code of a method longer than 65535 bytes)
Para solventar este inconveniente, se debe utilizar otro compilador. El compilador de IBM Jikes solventa el error y ademas de ser totalmente compatible, se optimizan sensiblemente los tiempos de compilación. La última versión disponible es la 1.18 y puede obtenerse en 'http://www-124.ibm.com/developerworks/oss/jikes'
Para instalar el compilador Jikes ha de descomprimirse el fichero zip y añadir a la variable de sistema path la entrada [directorio jikes]/bin.
Por último, se instalará el entorno de desarrollo Ofbiz. Para ello basta descomprimir el fichero ofbiz[version]-apps.zip. La última versión disponible es la 2.1.1, y es la que se utilizará.
Después de tener instalados el Java, el servidor y el própio Ofbiz se continuará con la configuración de los mismos. El paquete Ofbiz puede obtenerse en 'http://www.ofbiz.org'.
Configuración del servidor Orion
Para asociar Orion con el compilador Jikes se debe incluir la siguiente línea en el archivo de configuración server.xml. Este fichero contiene la configuración de Orion, directorios de trabajo, compiladores, logs, ect y se encuentra en [directorio orion]/config.
Más adelante se copiará el fichero server.xml que viene incluido en ofbiz, por lo que realizaremos esta operación más adelante. Es necesario tambien que el fichero tools.jar se encuentre en el directorio raiz de Orion. Utilizando este archivo Orion será capaz de servir aplicaciones que utilicen java. Este fichero se encuentra en el directorio 'lib' del paquete java. Si el paquete java se ha instalado en el directorio por defecto, se encontrará el fichero en c:\j2sdk1.4.2_03\lib\tools.jar.
Tambien se precisa que los siguientes archivos .jar se copien en el directorio orion/lib. Estos archivos se encuentran el [directorio ofbiz]/lib/jotm y son:
Otro fichero jar que será necesario para que las aplicaciones lo utilicen es el xerces.jar. Este jar contiene clases para el manejo de ficheros XML y bastará con copiarlo del directorio raiz de Orion a orion/lib.
El siguiente paso es modificar los ficheros de configuración de Orion para que sea el servidor que utilice Ofbiz. La distribución de Ofbiz incluye una série de ficheros de configuración para diversos servidores, y entre ellos se encuentran los necesarios para la configuración del Orion. Tambien existe un fichero bat 'ofbiz.bat' que se encarga de ejecutar el ofbiz y el orion conjuntamente.
Estos ficheros se encuentran en [directorio Ofbiz]/setup/orion/config:
Se copiarán estos ficheros en el directorio orion/config y se puede introducir ahora en server.xml la línea que relaciona Orion con el compilador Jikes. El fichero ofbiz.bat lo copiaremos en el directorio raiz de Orion.
Configuración de Ofbiz
No es necesario configurar el servidor Orion para la conexión a la BB.DD, ya que de ello se engarga el própio Ofbiz. Para configurar el acceso desde Ofbiz hay que modificar el fichero entityengine.xml situado en [directorio ofbiz]/commonapp/etc. Este fichero guarda la configuración para el acceso a la base de datos y en el vienen distintas configuraciones para la conexión con distintas bases de datos. Para seleccionar la conexión con MySql hay que realizar los siguientes cámbios:
Comprobar el datasource para MySql. En el fichero entityengine.xml debe aparecer lo siguiente:
<datasource name="localmysql" helper-class="org.ofbiz.core.entity.GenericHelperDAO" field-type-name="mysql" check-on-start="true" add-missing-on-start="true" use-foreign-keys="false" join-style="theta-oracle"> <sql-load-path path="commonapp/db" prepend-env="ofbiz.home"/> <sql-load-path path="ecommerce/etc" prepend-env="ofbiz.home"/> <inline-jdbc jdbc-driver="org.gjt.mm.mysql.Driver" jdbc-uri="jdbc:mysql://[direccion servidor]/[nombre de la BB.DD]" jdbc-username="[nombre del usuario]" jdbc-password="[clave del usuario]" isolation-level="Serializable"/> </datasource>
La base de datos que vaya a utilizarse, debe crearse manualmente en MySql antes de comenzar a trabajar, puesto que ofbiz no la crea por su cuenta.
Y por último, crear una etiqueta 'delegator' en el mismo fichero. El atributo name tiene asignado el valor 'default' para que Ofbiz utilice este delegator que apunta a MySql por defecto.
Para iniciar el servidor Orion y Ofbiz se ejecutará el archivo ofbiz.bat desde el directorio raiz de Orion.
La primera ocasión el la que se ejecuta Ofbiz, se crea automáticamente en la base de datos todas las tablas relacionadas con las distintas entidades predefinidas. Estas tablas se crearán sin datos.
Una vez completado el inicio, desde un navegador deberá accederse a "http://localhost:8080/webtools" (si estamos en la misma máquina donde se ejecuta Ofbiz) y aparecerá la página "Core Application WebTools". La primera acción que realizaremos con Ofbiz es rellenar las tablas de la base de datos con los valores predefinidos. En la pantalla de inicio de webtools aparece el enlace "NOTE: If you have not already run the installation data loading script, click here to run it.". Al pulsarlo, aparece otra pantalla en la que debemos pulsar el botón "Load data" y luego el enlace "Yes, load now" que aparecerá en la parte inferior. Una vez terminado el proceso de carga de datos, podremos acceder a las aplicaciones pulsando en el enlace "Login". Por defecto existe el usuario "admin", con clave "ofbiz".
APLICACIONES DISPONIBLES
La distribución de Ofbiz viene acompañada de algunas aplicaciones completas y otras que se encuentran en fase de desarrollo. Las funcionalidades que aportan esas aplicaciones son lo suficientemente amplias para que sean algo más que simples ejemplos.
Una característica de estos ejemplos es que están relacionados entre si, por ejemplo, la aplicación de comercio electrónico está muy relacionada con la aplicación del catálogo y, a su vez, los productos del catálogo están relacionados con una instalación (almacén, tienda, ect), que a su vez se crean en otra aplicación. Los usuarios de todas estas aplicaciones se crean y mantienen en otra aplicación específica (Party).
Entidades (Party)
En esta aplicación se definen las entidades (personas, grupos, clientes, organizaciones o similares) que van a existir en los demás módulos. Cada entidad podrá tener asignados distintos roles, ya sean estos predefinidos o definidos para la ocasión.
También pueden definirse grupos de usuarios, asignando a los grupos personas o clientes en distintos roles. Dentro de estos grupos, se establecen los distintos roles que van a tener sus integrantes y luego es posible asignárselos a cada componente.
Se puede realizar el seguimiento de los pedidos realizados por cada persona, cliente o grupo, ya sean pedidos efectuados desde la aplicación de comercio electrónico, o desde la aplicación de pedidos.
Permite realizar un seguimiento de las visitas que han realizado los usuarios a las aplicaciones, almacenando datos como la fecha y hora y el lugar desde el que se hizo la petición (una dirección I.P) para tener un histórico de los accesos efectuados.
Comercio electrónico (eCommerce)
Esta es una aplicación válida tanto para B2B (business-to-business, usada para describir el comercio electrónico que surge entre 2 entidades de negocios) como para B2C (business-to-consumer, usada para describir comercio electrónico que surge entre compañías y consumidores, tales como compra on-line). Incluye la utilización de HTTPS para cuestiones de seguridad.
El catálogo se organiza en una estructura tipo árbol, con la posibilidad de asignar al mismo producto más de una categoría superior. Así mismo, una subcategoría del catálogo puede asociarse a más de una categoría superior. Existen categorías especiales, como los productos más solicitados, productos en oferta y similar.
El catálogo admite cualquier número de categorías y productos, y cada elemento del catálogo llevará asociado un periodo de valided expresado mediante dos fechas.
Permite la búsqueda de productos por palabras claves o por categorias asi como la navegación por el catálogo siguiendo una estructura tipo árbol. Por defecto, se mostrarán 10 productos a la vez, con posibilidad de avanzar a los diez siguientes o retrocer a los diez anteriores, pudiendo configurarse el número de productos mostrados cada vez con facilidad.
Los productos del catálogo pueden asociarse a plantillas, de modo que cada uno se muestre al cliente de la forma mas adecuada a las características del producto. Las plantillas se pueden asociar a categorias, y las sub-plantillas a diferentes productos. Además, es posible asociar una pequeña imagen a cada producto, con la posibilidad de mostrar otra mas detallada. Asi mismo, es posible definir cuales son los datos que han de mostrarse sobre los productos, incluidos atributos seleccionables. Tiene la funcionalidad de asociar distintas imágenes a la primera carácterística seleccionable. Por ejemplo, si la primera característica es el color del producto, se podria asignar una imagen a cada color.
Permite una rapida creación de los pedidos y la modificación de los mismos, y según se vayan añadiendo productos al pedido, se mostrarán los productos cross-sell y up-sell, además de los posibles productos sustitutivos que haya en el catálogo. También puede realizar pedidos utilizando otros realizados anteriormente.
Otra característica muy interesante es el uso de paquetes con descuentos, ofertas especiales, regalos y descuentos por volumen de compra. Esto último se define por medio de reglas definidas por el administrador.
Catálogo (Catalog)
Desde la aplicación del catálogo se pueden gestionar cuantos catálogos distintos sean precisos y luego, asociarlos a las distintas tiendas virtuales (aplicación eCommerce).
Dentro de cada catálogo se podrán definir la estructura tipo árbol que ordenará los productos. Los productos se definen con gran cantidad de características, definiendo sus datos, plantillas para mostrarlos y asignándoles precios y disponibilidad. Asi mismo pueden crearse variantes de un mismo producto, como por ejemplo tamaños y colores, añadiendo variantes a un producto padre.
Una caracteristica que se le asigna a todos los elementos del catálogo es un periodo de validez. Por ejemplo, periodo en el que es válido un precio, fecha en la que debe aparecer una categoría en el catálogo y fecha en la que debe desaparecer y similares.
Instalaciones (Facility)
Esta aplicación, mas pequeña que las anteriores, permite al usuario crear y administrar las distintas instalaciones que pueda necesitar, ya sean almacenes, tiendas, oficinas, edificios o similares. Permite la creación de grupos de instalaciones, por ejemplo, una cadena de tiendas.
A cada instalación se le pueden asignar diversos productos de un catálogo, para realizar un inventario de lo disponible en cada instalación, y llevar un control sobre la recepción de los mismos.
Pedidos (Order)
Esta aplicación permite realizar un seguimiento de los distintos pedidos realizados desde la aplicación de comercio electrónico o desde la misma aplicación de pedidos, mostrando totales, pedidos por cliente, e informes de ventas.
Cuenta con la posibilidad de crear pedidos desde la misma aplicación, por lo que podría funcionar independientemente de la aplicación de comercio electrónico.
Permite configurar los costes de envíos, los impuestos aplicados y las diferentes formas de pago. Esta configuración se aplicará también en la parte de comercio electrónico.
Conclusiones
Ofbiz se presenta como un eficaz framework para el desarrollo de aplicaciones de comercio electrónico, con muchas posibilidades para adecuarlo a cualquier necesidad, como pueda ser un CRM, un gestos de pedidos o gestor de proyectos.
Actualmente se encuentra en desarrollo la versión 3.0, que mejora (y cambia) con respecto a la distribución aqui comentada. Por lo tanto, sirva este artículo como un primer contacto con Ofbiz, puesto que la nueva versión, actualmente disponible en CVS, tiene un proceso de instalación distinto, incluyendo que la distribución viene acompañada con el servidor de aplicaciones gratuito Jetty.
Este tutorial hace una introducción al API estándar de java para acceder a las bases de datos: JDBC. Contiene varios códigos de ejemplo y cubre los principios básicos del acceso a bases de datos.
Acaba de salir a la luz la versrión RC1 de Tapestry 3.0.
Tapestry es un potente framework para el desarrollo de aplicaciones web que se plantea como alternativa a los entornos de script como JSP o Velocity, así como de JSF.
Con ýl se pueden crear aplicaciones web extremadamente dinýmicas con una cantidad mínima de código, siguiendo una filosofýa basada en componentes.
Tambrión está a punto de llegar a las librerýas Tapestry in Action, el primer libro sobre Tapestry, que ya puede adquirirse en formato electrýnico.