When the solution matters*

| Clientes | Historias de éxito | Buscador de soluciones | Perfiles |

Compañía General de Esencias

El suave perfume de los Servicios Web
Por Tito Ciuro

 

Este mes les contamos otra historia que huele a éxito: Tito Ciuro, un joven y talentoso programador igualmente conocido en ambas orillas del Atlántico, nos comenta el avance que representó para él la llegada de los Servicios Web en 4D. Además de demostrar que gracias a una programación rigorosa 4D cumple con todos los requisitos de complejidad, simultaneidad y seguridad de una aplicación critica, también nos presenta un uso original de los servicios Web, con los que no solo se alimenta la aplicación con datos externos, sino y sobretodo se realiza la sincronización interna de varios servidores empresariales, sin utilizar la tecnología habitual de los plug-ins (4D Open for 4D) o de la comunicación ODBC.

 

Acerca de Compañía General de Esencias, S.L.

Compañía General de Esencias, S.L. (CGE) está especializada en la creación y desarrollo de fragancias para perfumes y detergentes. Fue fundada en Barcelona en el año 1948 como empresa familiar, desarrollando en un principio toda su actividad en el mercado español. Actualmente exporta a 14 paises...

 

Introducción del sistema informático

Desde 1985, el sistema informático de CGE utiliza Apple Macintosh y desde 1991 se ha estado utilizando 4D como base de datos para almacenar la información de los tres departamentos principales: Compras/Ventas/Producción, Laboratorio y Contabilidad.

Cada departamento dispone de un programa específico: MacEssence (Compras/Ventas/Producción), MacLabintosh (Laboratorio) y MacNum (Contabilidad).

MacEssence gestiona todo lo relacionado con compras, ventas, fabricación, inventario, facturación, expedición y estadísticas.

MacLabintosh es una herramienta para perfumería. Permite gestionar todo lo relacionado con las fragancias, así como su clasificación y contiene un potente y flexible motor de búsqueda que permite seleccionar las fragancias clasificadas.

MacNum es el programa de contabilidad general, multi-ejercicio y multi-empresa, que incluye un módulo de contabilidad analítica.

Sin interconexión hay problemas y más problemas...

Hasta el año 2003 CGE utilizaba la versión 4D 6.8, la cual no ofrece un mecanismo automático de fácil implementación para interconectar las bases de datos. Esa falta de interconexión entre bases de datos genera una serie de problemas:

- Problema #1: la falta de sincronización genera datos redundantes. Al no poder disponer de ciertos datos en tiempo real, es necesario guardar una copia de esos datos en las bases de datos que requieran acceso a ese tipo de información. El problema más obvio que surge es el de propagar las modificaciones, ya que es un proceso manual que entorpece el flujo natural de los datos.

- Problema #2: para sincronizar los datos se han de exportar vía documentos. Hasta la versión 2003, la manera más común de transmitir datos entre dos o más bases de datos es la de exportar vía documentos. La base de datos emisora exporta, es decir, genera un documento con los datos (p.ej.. delimitados por tabulador) y la base de datos receptora importa el documento para añadir, modificar o borrar los datos que sean necesarios. Este proceso entorpece el trabajo, ya que se tiene que hacer una pausa para poder realizar la operación de mantenimiento.

- Problema #3: hasta que no se importan los datos, la información no está al día. Al no haber una conexión automática entre las diferentes bases de datos, los datos modificados en una base no se propagan hasta que se realiza la operación de exportación/importación. La falta de sincronización da lugar a ambigüedades, ya que según qué base de datos se consulte, la información puede ser dispar.

- Problema #4: la existencia de datos redundantes complica la gestión de la base de datos. Es decir, no solamente se necesitan tablas adicionales para guardar los datos, sino que además se necesitan métodos/rutinas para mantener esta infraestructura adicional.

La presencia de esta serie de problemas complicaba la tarea entre departamentos, al mismo tiempo que limitaba la posibilidad de ampliar y mejorar las aplicaciones.

 

Una salvación llamada "Servicios Web"

Una de las grandes alegrías que me llevé cuando leí la ficha técnica de 4D 2003 era la incorporación de "Servicios Web". Este tipo de servicio utiliza el protocolo SOAP (Simple Object Access Protocol), una tecnología que permite la comunicación entre aplicaciones distintas, independientemente de la plataforma y del lenguaje de desarrollo. En un principio, algunas de las ventajas que ofrece son las siguientes:

- Interoperatividad: eliminación de los datos redundantes. Sincronización al momento.

- Agilidad: comunicación en tiempo real. Simplificación de la gestión de los datos.

- Transparencia: propagación automática de los datos entre diferentes sistemas.

- Universalidad: la interoperatividad es independiente del sistema operativo utilizado, ya sea Mac, Windows, Linux, etc.

- Simplicidad: aprender a utilizar los Servicios Web es fácil y permite incorporarlos a la aplicación existente.

Todo esto suena muy bien, pero ¿se trata de una exageración o por el contrario cumple con las promesas? Veamos si CGE se ha podido beneficiar de esta supuesta maravilla que pretende ser los “Servicios Web”...

Interoperatividad

En este apartado, el beneficio ha sido muy importante ya que se han podido eliminar la redundancia de datos y ha permitido automatizar procesos que antes eran muy difíciles de implementar de una manera ágil y transparente. Ejemplos:

Comunicación MacLabintosh <---> MacEssence

- Traspaso de una fórmula de Laboratorio a Producción.

- Actualización de los precios de las materias primas en tiempo real.

- Obtención de los clientes del Departamento de Ventas para el etiquetado de muestras.

- Obtención del punto de inflamación (Flash Point) para realizar el estudio de inflamabilidad del almacén.

- Obtención de los kilos vendidos de un producto. En Laboratorio, permite identificar los productos que más se venden.

Comunicación MacEssence ---> MacNum

- Envío de la factura de Ventas a MacNum, creándose el asiento contable, añadiendo la factura al Libro del I.V.A. y actualizando la tesorería.

Comunicación MacEssence ---> Chem-SD

- Análisis en tiempo real de la fragancia que va a ser etiquetada para la venta. Permite obtener las frases de riesgo y otra información para el correcto etiquetado del producto.

Comunicación MacEssence ---> Servicio Web bancario (externo a CGE)

- Permite obtener las últimas cotizaciones monetarias para el Departamento de Exportación.

Agilidad

Eliminar el proceso de exportación e importación ha facilitado la labor a todos los departamentos de la empresa. El beneficio es obvio.

Transparencia

Los usuarios no son conscientes del vaivén de datos que fluyen entre las tres aplicaciones. Para ellos, los datos aparecen totalmente integrados en la aplicación que utilizan, cuando en realidad se han obtenido de una o más bases de datos.

Universalidad

Esta ventaja se hizo patente el día en que se incorporó un programa llamado Chem-SD, escrito en Visual Basic/.NET y ejecutado en un PC con Windows XP. Chem-SD tiene en cuenta las últimas directrices de la UE para analizar las fragancias en venta.

Gracias a los servicios web que incorpora, ha sido muy sencilla la implantación de un sistema en el que MacEssence obtiene los datos de Chem-SD necesarios para etiquetar correctamente los envases de las fragancias. Sin la posibilidad de utilizar los Servicios Web, hubiera sido un auténtico puzzle a resolver, y a que la naturaleza del problema requiere una comunicación en tiempo real entre los dos sistemas. Los Servicios Web lo solucionan de una manera brillante.

Simplicidad

Los Servicios Web que se han ido incorporando en MacEssence, MacLabintosh y MacNum se han realizado sobre la marcha. 4D permite incorporar los Servicios Web en cualquier momento y por partes, es decir, no se trata de tener que decidir “todo o nada”. Se pueden ir mejorando las rutinas lentamente e incorporando las ventajas que los Servicios Web ofrecen, paulatinamente.. En mi caso particular, empecé adaptando algunas rutinas a los 5 minutos de empezar a leer acerca de los Servicios Web.

Conclusión

La incorporación de los servicios web en el sistema informático de CGE ha permitido optimizar el flujo de información entre las tres aplicaciones principales, reducir los costes de mantenimiento del sistema en general, permitir la incorporación de sistemas operativos y aplicaciones de otros vendedores y finalmente, la incorporación ad-hoc de nueva funcionalidad según se necesite, vía publicación de métodos especializados.

La apuesta inicial de incorporar servicios web ha sido muy beneficiosa y ha traspasado con creces los objetivos que se habían marcado inicialmente, permitiendo a CGE crecer sin temor a quedarse con un sistema informático obsoleto en poco tiempo.

 

                                                                           Tito Ciuro
 
                                                                         Miami – Abril 2005

 

Servicios Web aplicados
Anexo práctico


El autor nos ofrece dos complementos a su primer relato, que detallan aspectos prácticos del uso de Servicios Web entre varias bases 4D. Queremos agradecerle su entusiasmo comunicativo y su espíritu de reparto y de pedagogía. Sus textos permitirán a lectores que experimentan dificultad con la documentación actual en inglés hacerse una idea precisa de la accesibilidad y del interés de los servicios Web en sus propias aplicaciones.

 

El primer anexo detalla una conexión básica Servidor Servicios Web / Cliente Servicios Web con los requisitos y pasos intermedios. Se trata de enviar datos elementales, variables, campos, arrays, entre dos bases 4D conectadas... por un simple canal http.

Lea ahora la Parte 1

 

En la segunda entrega, exploramos la comunicación de objetos complejos mediante BLOBs. Estas estructuras, tambien conocidas como "Bags", son colecciones de objetos que incluyen campos, arrays, variables, listas jerárquicas, registros, punteros e incluso otros Bags. Cualquier valor almacenado va relacionado con una etiqueta, lo cual permite extraerlo facilmente. Con Bags, podemos llevar los Servicios Web a otro nivel, consiguiendo una flexibilidad excelente sin aumentar la complejidad de la aplicación. El nivel técnico de este segundo anexo es más avanzado e interesará también a los desarrolladores ya experimentados con los Servicios Web. Una base de ejemplo se proporciona junto con el artículo.

Lea ahora la Parte 2

 

 


El departamento de expedición desea expedir. Da la orden.

MacEssence recoge toda la información concerniente al pedido en cuestión.

Expedición envía el pedido a MacNum, para que éste lo desglose, generando el asiento correspondiente, añadiendo la factura al libro del I.V.A. y actualizando la tesorería. Una vez realizada esta operación, devuelve el número de factura a Expedición.

Expedición contacta con Chem-SD para obtener todos los datos necesarios (frases de riesgo/seguridad) que irán en las etiquetas.

Expedición procede a imprimir las etiquetas, los albaranes y las facturas.

Todo con un clic.


Internacional | Empresa | Contactar 4D | Mapa del Sitio | © 4D, S.A. 2008 | Tamaño de fuente: [A] [A] [A] *Cuando la solución es lo que importa