Research article
Estrategia de interoperabilidad para la transferencia de datos entre sistemas ERP en Cuba
Interoperabilidad strategy for the transfer of data among systems ERP in Cuba
Centro de Informatización de la Gestión de Entidades,
Universidad de las Ciencias Informáticas,
Ciudad de La Habana, Cuba
Centro de Informatización de la Gestión de Entidades,
Universidad de las Ciencias Informáticas,
Ciudad de La Habana, Cuba
Resumen
La interoperabilidad consiste en la disponibilidad de mecanismos que permitan intercambiar procesos y/o datos entre sistemas heterogéneos. En el entorno web, la interoperabilidad constituye una condición necesaria para tener un completo acceso a la información disponible. Según estudios recientes para el 2010 se puede comprobar que la mayoría de las organizaciones se han visto necesitadas de sistemas informáticos capaces de realizar una gestión eficiente de los procesos de la información enfocados a lograr la eficiencia económica; entre ellos podemos mencionar los Sistemas de Planificación de Recursos Empresariales, más conocidos como ERP –por sus siglas en inglés-. El presente trabajo propone una estrategia de interoperabilidad para sistemas ERP que generalice y rija metodológicamente el proceso de interoperabilidad en Cuba y permita solucionar los problemas asociados al intercambio de información. Se plantean las definiciones arquitectónicas, taxonomía a usar, así como el uso de estándares de comunicación internacionales.
Abstract
Interoperability is the availability of mechanisms to exchange processes and / or data between heterogeneous systems. In the web environment, interoperability is a necessary condition to have full access to the information available. Recent studies by 2010 show that most organizations have been in need of systems capable of efficient management information of processes aimed to achieve economic efficiency, could be mentioned the Enterprises Resources Planning Systems, also known as ERP. This article proposes and interoperability strategy that permits to solve the problems associated to information exchange existing in the ERP systems used in Cuba. Giving architectural definitions, taxonomy to use and international communications standards are used.
Palabras Clave:
Interoperabilidad, ERP, Estándares ⓘ
Keyword:
Interoperability, ERP, Standards ⓘ
Introducción
La aplicación de las tecnologías de la información en casi todas las esferas de la sociedad ha provocado que muchas organizaciones, instituciones y empresas se hayan visto necesitadas de tecnologías informáticas capaces de realizar una gestión eficiente de los procesos de la información enfocados a lograr la excelencia económica. Esto ha propiciado el surgimiento de los Sistemas de Planificación de Recursos Empresariales (ERP), los cuales permiten centralizar la gestión integral de las entidades empresariales y presupuestadas de un país. Cuba no queda exenta de este avance tecnológico, y en la actualidad constituye un factor estratégico el desarrollo de un sistema ERP, el cual parte de la idea de contar con una solución a nivel de país y que esté basada en los principios de independencia tecnológica y con funcionalidades generales de los procesos y las particularidades de la economía cubana. Este ERP tiene además, la tarea de desplazar a todos los sistemas de este tipo que usan las entidades cubanas; siendo posible si se logra un proceso de interoperabilidad que le permita absorber toda la información generada hasta el momento, y para ello debe coexistir con el resto de los sistemas hasta que el proceso de interoperabilidad sea completado, y así obtener una comunicación oportuna, íntegra y segura de sus datos. Para lograr que este intercambio se genere, es necesario estandarizar este suceso que tiene como objetivo la homogenización de los datos, la redigitalización permanente de la información y evitar un reprocesamiento de la información.
A continuación se muestran una serie de pasos cuyo objetivo es organizar el proceso de interoperabilidad para sistemas ERP.
PASO 1: Identificación de los procesos a interoperar, así como el orden de prioridad
El primer paso para interoperar con sistemas externos, o sea, exportar e importar información, así como notificar o gestionar sucesos para de esta forma lograr la comunicación y el intercambio entre sistemas; es definir los procesos a interoperar así como el orden de prioridad de los mismos.
Dígase de exportar información, aquella funcionalidad que realizará un usuario a través de la plataforma de interoperabilidad al enviar los datos seleccionados a un sistema destino. De similar forma se determina la información a importar y luego se recepcionan los datos.
Es importante destacar que la identificación de procesos no se realiza solo por parte de los que participan o interactúan con un sistema, sino por todos los que de alguna forma intervienen en el desarrollo de la interoperabilidad. Así mismo, constituye el motor de arranque para la construcción de una solución, y el fruto del acuerdo que se establece entre todos los sistemas que van a intercambiar información.
Los especialistas involucrados se apoyan en el modelo conceptual como parte de la documentación existente en el desarrollo de software. Con el uso de este artefacto se obtiene una visión general del sistema, donde se representan todos sus procesos y la relación que existe entre ellos. A partir de la importancia de cada proceso en el negocio, se selecciona el orden y la prioridad para el inicio de la interoperabilidad.
PASO 2: Arquitectura tecnológica
La arquitectura definida por un equipo de desarrollo tiene como objetivo fundamental dirigir y reglamentar la construcción de una solución.
Una arquitectura es un entramado de componentes funcionales que aprovechando diferentes estándares, convenciones, reglas y procesos, permite integrar una amplia gama de servicios, de manera que pueden ser utilizados eficazmente para obtener una solución.
Según el estándar IEEE1471-2000 (Instituto de Ingenieros Eléctricos y Electrónicos): “La Arquitectura de Software es la organización fundamental de un sistema encarnada en sus componentes, las relaciones entre ellos, el ambiente y los principios que orientan su diseño y evolución”.
El concepto de arquitectura se usa de forma amplia y en campos muy distintos, por lo que su significado es algo complicado. En el campo del software, como se ha mencionado anteriormente, la arquitectura identifica los elementos más importantes de un sistema así como sus relaciones y su principal función es brindar una visión global del sistema.
¿Por qué entonces es importante la arquitectura? Debido a que se necesita para entender el sistema, organizar su desarrollo, plantear la reutilización del software y hacerlo evolucionar. Las arquitecturas software no responden únicamente a requisitos estructurales, sino que pueden estar relacionadas con aspectos de rendimiento, usabilidad, reutilización, restricciones económicas y tecnológicas, e incluso cuestiones estéticas. (Pérez, 2004)
Por lo dicho anteriormente, es importante definir una adecuada arquitectura de software, ya que ésta es el corazón de todo sistema informático y determina cuáles serán los niveles de calidad asociados al desarrollo de la plataforma de interoperabilidad.
Existen muchos tipos de arquitecturas de software, por lo que no es necesario inventar una nueva arquitectura para construir la plataforma de interoperabilidad. Lo habitual es adoptar una conocida en función de sus ventajas e inconvenientes para el caso en cuestión. Este trabajo guía el desarrollo de una solución basada en una arquitectura orientada a servicios web, debido a que es un concepto de arquitectura de software que define la utilización de servicios para dar soporte a los requisitos del negocio. Además, brinda una forma bien definida de exposición e invocación de servicios, facilitando la interacción entre diferentes sistemas propios o de terceros; por lo cual, es la más favorable para la construcción de la plataforma.
La arquitectura que se define para el desarrollo de la plataforma de interoperabilidad, consta de un elemento primordial, los servicios que se consumen durante la implementación.
Definición de los servicios que se necesitan para interoperar
La arquitectura tecnológica está orientada a servicios web y para la implementación de la plataforma de interoperabilidad se deben definir los servicios o tareas que se necesitan.
Los servicios web son piezas de una lógica de negocio, localizadas en alguna parte de Internet o Intranet, que son accesibles a través de protocolos de comunicación, como es el caso de HTTP. Este tipo de servicios, facilita la interconexión de cualquier número de aplicaciones o componentes software para que puedan interoperar, compartiendo información entre organizaciones o individuos que estén interesados en los datos, mediante una plataforma común y un lenguaje definido.
Como se ha mencionado anteriormente, la arquitectura a utilizar para la construcción de la plataforma es orientada a servicios web; y contará con las funcionalidades de exportar e importar datos, las que serán publicadas como servicios web al alcance de otros sistemas existentes en el país que necesitan interoperar.
Para construir esta solución, se consumen otros servicios que no son web precisamente, son simplemente servicios internos del proyecto, los cuales van a ser seleccionados para la implementación de los servicios web que brindará finalmente la plataforma como funcionalidad principal. Durante el proceso de selección de los servicios o tareas que se necesitan para interoperar, hay que tener bien claro cuales se van a utilizar. No es significativa la cantidad de servicios que se utilicen, sino las funcionalidades que deben cubrir a la hora de ser usados.
Otra opción en el uso de este tipo de servicios, es la siguiente: Puede que en cierto sistema donde se vaya a construir una plataforma de interoperabilidad, él o los desarrolladores encargados de implementar la plataforma decidan ellos mismos implementar los servicios que son necesarios para lograr la solución, para de esta forma tener un mejor control y entendimiento de su trabajo. Esto puede suceder y también constituye una posible solución, siempre y cuando estén bien definidos y desarrollados, para que no existan conflictos internos al ser utilizados.
Los servicios que se van a consumir para implementar la plataforma de interoperabilidad, generalmente están publicados en algún lugar dentro de cada sistema que se encuentra desarrollando su solución de interoperabilidad. Puede ser un componente con la funcionalidad de cumplir con esta tarea, o simplemente una cartera de servicios donde se encuentran publicados al alcance de los demás componentes dentro del sistema. Para utilizarlos, solo se debe acceder a ellos, para posteriormente consumirlos y generar las funcionalidades que se desean.
PASO 3: Estándar para el intercambio de información
La selección del estándar a utilizar, es de acuerdo con las características, las ventajas y el impacto que brinda el componente a interoperar. Siempre a partir del estándar XML como base tecnológica.
Soporte tecnológico
XML es una tecnología en auge y cada vez se está utilizando más en las organizaciones. Pero ¿qué es realmente XML?, ¿qué se puede hacer con él? y ¿qué beneficios aporta? XML es un fichero de texto plano que contiene una serie de datos. Esta información está estructurada siguiendo una gramática adecuada, válida según el estándar de definición XML que entienden los diferentes sistemas gestores de datos. Es decir, es un archivo que contiene información organizada de forma concreta compatible con la gran mayoría de las bases de datos. La información se puede utilizar en general para ser compartida o intercambiada con otros sistemas, y en particular para servir a otros entornos que puedan tratarla a su gusto en función de sus necesidades.
De esta manera, y desde un punto de vista más técnico, se puede considerar el lenguaje XML como el estándar perfecto para compartir e intercambiar información entre sistemas distribuidos y heterogéneos; es decir, para lograr la comunicación básica entre ellos.
Para qué se utiliza XML
XML se utiliza como lenguaje intermedio para intercambiar información (obtenerla o servirla). Una vez que se dispone de la información, se puede realizar una aplicación para gestionar y mantener dichos datos, como puede ser una aplicación web interna. Pero la idea es ir más allá y no quedarse solo en la obtención y visualización de datos; el objetivo fundamental es poder manipularlos y almacenarlos de nuevo en sus sistemas (distribuidos en la red) desde una sencilla aplicación. Así, de la misma manera que se pueden obtener datos de distintos sistemas, se puede realizar la operación inversa y alimentar los sistemas a partir de un conjunto XML de información.
Un beneficio que se puede obtener utilizando tecnologías XML, es obtener información en tiempo real y de manera simultánea de diferentes entornos o sistemas de información, independientemente de la naturaleza y la compatibilidad entre estos.
¿Por qué XML se puede utilizar para el desarrollo de servicios web? Dentro de los principales aspectos que influyen, se puede citar que: (Juan Garbajosa Sopeña, 2008)
- Es un estándar abierto, muchas compañías tecnológicas integran en su software compatibilidad con dicho lenguaje. Esta compatibilidad está dada: en los software de escritorio, sistemas operativos y aplicaciones móviles que permiten la relación con XML, haciéndolo muy potente a la hora de permitir la comunicación entre distintas plataformas de software y hardware.
- Simplicidad de sintaxis, esto quiere decir que es muy fácil escribir código en XML.
- Independencia del protocolo de transporte. XML es un lenguaje de marcado de texto, por lo cual no necesita de ningún protocolo de transporte especial, solo requiere un protocolo que pueda transferir texto o documentos simples. Actualmente en el mercado de software, existen muchos protocolos con estas características, como los conocidos: HTTP y SMTP (Protocolo Simple de Transferencia de Correo Electrónico). Precisamente una de las características de los servicios web es su independencia de protocolo de transporte.
Estándares para el proceso
La selección del estándar para interoperar un componente específico, como se ha dicho anteriormente depende de las características particulares de este, por ejemplo:
- Si se quiere intercambiar información de carácter financiero y de negocio se seleccionaría un estándar denominado XBRL, el cual va mas allá de la comunicación básica entre aplicaciones que establece un estándar como XML.
- Si lo que se desea es describir datos ecológicos, se usa en estándar basado en XML conocido como EML.
- Sin embargo, para intercambiar información entre aplicaciones en entornos descentralizados y distribuidos, se utiliza el protocolo estándar basado en XML: SOAP (Protocolo de Acceso a Objetos Simples). Este ofrece ventajas, por ejemplo: no depende de un sistema en concreto, puede comunicar aplicaciones que estén escritas en cualquier lenguaje, atraviesa cortafuegos corporativos y permite la interoperabilidad entre distintas aplicaciones. (Isaza E., 2007)
- Además, se puede intercambiar metainformación entre herramientas de modelado, basadas en UML y repositorios de metainformación basadas en MOF (Manual de Organización y Funciones); en distribuidos entornos heterogéneos, utilizando el XMI (XML Intercambio de Metadatos).
Para seleccionar los estándares que se necesitan en la construcción de la plataforma de interoperabilidad, hay que enfocarse en el proceso a interoperar, analizar su funcionamiento, analizar los estándares que se proponen y que se especializan en el tratamiento de los datos, para posteriormente seleccionar el adecuado para el desarrollo de la solución.
PASO 4: Esquema de seguridad.
Como se ha citado anteriormente, la estrategia está dirigida a la búsqueda de una solución de comunicación e interacción para sistemas ERP, pero que utilizan la estrategia de interoperabilidad, basada en servicios web XML.
Algunas de las características de los servicios web, como la accesibilidad a la información, el intercambio dinámico y la autonomía, no están acordes con los modelos y controles tradicionales de la seguridad. Esta situación genera desafíos para modificar los mecanismos de confidencialidad e integridad de los datos que son transmitidos por los protocolos de servicios web. La funcionalidad del principio de la integridad puede variar por la manera como está representada la información, el modelo de disponibilidad cambia sobre la base de los ataques de denegación de servicio, que ahora puede explotar vulnerabilidades de los protocolos registrados para descubrir servicios. Los sistemas de seguridad perimetrales como los cortafuegos, no son adecuados para proteger las arquitecturas basadas en servicios, debido a que estas técnicas son dinámicas. (Isaza E., 2007)
Lo fundamental en este paso es definir adecuadamente el esquema de seguridad, como parte de la arquitectura que se centra en la seguridad de la información que manejará el producto. El objetivo principal de definir cuidadosamente un esquema de seguridad es lograr la integridad, confidencialidad y autenticidad de los datos.
- Integridad: Propiedad que busca mantener los datos libres de modificaciones no autorizadas.
- Confidencialidad: Propiedad de prevenir la divulgación de información a personas o sistemas no autorizados.
- Autenticidad: Propiedad que busca mantener la originalidad y veracidad de los datos.
Para desarrollar el esquema de seguridad que va a controlar y proteger la plataforma de interoperabilidad, se recomienda tener en cuenta varios aspectos esenciales, tales como:
- Los estándares de seguridad: Se determinan según el nivel de garantía que se desee dar al producto. Existen innumerables estándares para la seguridad de los sistemas, pero se recomiendan seis clases de ellos, por su reconocimiento internacional. De estos se eligen los que sean convenientes para la seguridad de la plataforma de interoperabilidad. Se pueden encontrar estándares para la administración de la seguridad de la información, para la evaluación de la seguridad en sistemas, para el desarrollo de aplicaciones, para servicios financieros, para riesgo, para autenticación. Entre los estándares de seguridad XML que soportan los servicios web están: el XML Digital Signature (XML DSig), XML Encryption, XML Key Management, Security Authorization Markup Language (TC-SAML), WS-Security, XML Advanced Electronic Signatures (XAdES).
- Los protocolos de comunicación: Se utilizan para realizar la transmisión de datos entre dos sistemas; es decir, son las reglas y procedimiento utilizados en una red para establecer la comunicación entre los nodos que disponen de acceso a la red. Los protocolos gestionan dos niveles de comunicación distintos. Las reglas de alto nivel definen como se comunican las aplicaciones, mientras que las de bajo nivel definen como se transmiten las señales por cable.
- Lista de chequeo: Es una de las principales técnicas de control de la seguridad donde se listan las actividades a realizar o requisitos a cumplir en un sistema. Es decir, la lista de chequeo va a permitir que se mantenga un control sobre los aspectos que inciden en la seguridad de la solución, en este caso para la plataforma de interoperabilidad en desarrollo. Por lo planteado anteriormente, se propone la utilización de esta técnica.
- Las herramientas criptográficas: Son una forma de mantener la escritura oculta y garantizar la protección o el ocultamiento de la información frente a observadores no autorizados. Con estas herramientas se puede cifrar y descifrar información mediante técnicas especiales. Se emplea frecuentemente para permitir un intercambio de mensajes que sólo puedan ser leídos por personas a las que van dirigidos y que poseen los medios para descifrarlos. A continuación se muestran algunos ejemplos de herramientas para cifrar y descifrar datos:
Ofuscador de código: Es una herramienta criptográfica que puede resultar útil a la hora de realizar una solución de interoperabilidad. Permite el ocultamiento de la información a transmitir, es decir, trata de hacerla ilegible al ojo humano para de esta forma otorgarle seguridad. Con la utilización del ofuscador de código se evita que la información pueda ser modificada por un intruso, ocultándola de tal forma que es prácticamente imposible descompilarla, e incluso se dificulta enormemente interpretarla correctamente aún si se obtiene el código fuente.
Todas las herramientas que se muestran, son muy significativas para mantener la seguridad de la información; pero se propone la utilización de un ofuscador de código, como escudo de protección para los datos que van a ser intercambiados a través de la plataforma.
PASO 5: Implementación.
En este paso se explica cómo se procede con la implementación de la plataforma de interoperabilidad. Es decir, el desarrollo de todos los aspectos que guían la implementación del producto hasta su funcionalidad operativa.
Desglose de la solución
Para un mayor entendimiento, el desarrollo de la solución que se presenta se puede dividir en varios aspectos, uno de estos es la construcción del ambiente de configuración para la gestión de los procesos a interoperar, es aquí donde se adicionan, modifican, eliminan, y se define la estructura que finalmente puede tener el estándar de intercambio de información. Es importante destacar que por la seguridad que requiere este componente, dígase estructura de intercambio, acceso a la información del sistema; se definirán permisos especiales para su acceso.
Otro aspecto que se debe tener en cuenta es el desarrollo de un componente donde se puedan gestionar todo lo referente al trabajo con XML y demás estándares que se utilicen. A este se le puede llamar gestor de plantillas y no constituye un ambiente al que pueda acceder el usuario de aplicación, es usado por los desarrolladores para organizar los elementos que forman las taxonomías.
Por último se puede mencionar el ambiente de interoperabilidad, el cual cuenta con las funcionalidades de Exportar e Importar información. Es aquí donde el usuario puede interactuar directamente con la plataforma y ordenar la interoperabilidad del proceso que se desee.
Lenguajes y herramientas
El lenguaje de programación a utilizar para la implementación de la plataforma de interoperabilidad puede ser variado. En el mundo existen muchos de estos, todo depende de la experiencia en cuanto a su uso por parte de los desarrolladores, para de esta manera facilitar el trabajo. Se recomienda que el equipo de desarrolladores se adapte al lenguaje en el cual está implementado el componente al que pertenece la solución en desarrollo; para evitar complicaciones en cuanto a la compatibilidad de los artefactos, las herramientas y el tiempo de capacitación.
En caso de no existir dependencias con el uso del lenguaje, se propone la utilización de PHP debido a sus características y por poseer una clase que se encarga de gestionar XML. El framework que se utilice, tiene que ser compatible con el lenguaje de programación adoptado por el equipo de desarrollo, en caso de ser PHP se recomienda Zend framework.
Aplicación de la propuesta de solución
La propuesta se aplicó en el desarrollo de la Plataforma de Interoperabilidad del proyecto ERP-Cuba, logrando exportar satisfactoriamente los comprobantes de operaciones del subsistema Contabilidad financiera como primera versión de los procesos a interoperar. Resultados que se pueden comprobar en el primer piloto de intercambio con el sistema VERSAT-SARASOLA, desarrollado por la Empresa Teico-Soft de la provincia Villa Clara. La plataforma se encuentra actualmente en perfeccionamiento y desarrollo de nuevos procesos para el intercambio de datos. Se han realizado talleres con las entidades implicadas, entre ellos se puede mencionar el 1er Taller Nacional de Interoperabilidad, desarrollado en la Universidad de las Ciencias Informáticas (UCI) y cuyo objetivo fue la definición de una estrategia de interoperabilidad para la transferencia de datos entre sistemas de gestión de entidades en Cuba; destinado a todos los miembros de las entidades o instituciones que participen en la definición del estándar de interoperabilidad, entre ellos se pueden destacar VERSAT-SARASOLA, CITMATEL, TRANSOFT, GET-MINTUR, CIMEX, TELEMAR, GECYT y SICS.
Impacto social
La propuesta permite que se garantice el intercambio de información entre los diferentes sistemas actualmente desplegados en el país y el sistema CEDRUX, como escenario de aplicación de la propuesta. Ha permitido la construcción de una Plataforma de Interoperabilidad, además de proveer una comunicación en un lenguaje común a través de un estándar de intercambio, permitiendo absorber toda la información generada y evitando la perdida, redigitalización y reprocesamiento de los datos.
Ha posibilitado estandarizar el proceso de interoperabilidad en cuanto a protocolo de comunicación, procesos a interoperar y orden de los mismos, estándar de intercambio y esquema de seguridad. Representa una documentación de referencia para el desarrollo de la interoperabilidad en Cuba.
Conclusiones
Después de haber realizado un estudio del estado del arte y las tendencias actuales en Cuba y el mundo, se hace necesaria la definición de un proceso de interoperabilidad que garantice el intercambio de información entre los sistemas integrales de gestión usados en Cuba. Como producto de la aplicación se puede garantizar el desarrollo de una plataforma de interoperabilidad que permita optimizar, organizar y estandarizar el proceso de interoperabilidad en el país.
Si bien aún restan una cantidad importante de problemas por resolver en materia de interoperabilidad, ya hoy se cuenta con una estrategia que servirá como material de consulta a las entidades cubanas inmersas en el proceso de transmisión y recepción de información, además de notificar o gestionar sucesos; así como exportar e importar datos.
Bibliografía - Bibliography
Álvarez, Miguel Angel. 2003. MAESTROSDELWEB.
Billy, Carlos. 2004. Introducción a la Arquitectura de Software. 2004.
Borges, Alejandro E. 2007. COIT.
González, Benjamín. 2004. desarrolloweb.com.
Carriere, Tim Mallalieu y Jeromy. 2004. microsoft. microsoft.
CULIACAN, TECNOLOGICO DE. 2005. MITECNOLOGICO.
Faría, Daniela A. Torres. 2009. LDC.
Gómez, Diego. 2008. Cómo documentar la arquitectura de software. 2008.
Isaza E., Gustavo A. 2007. UCALDAS.
Lebrún, Carlos Arturo Vega. 2007
Marañón, Gonzalo Álvarez. 1998.
Paul, Clements. 1996. A Survey of Architecture Description Languages. 1996.
Tejada, Licenciada Eugenia Saenz de. 2005.
Google Scholar Index
Article
Estrategia de interoperabilidad para la transferencia de datos entre sistemas ERP en Cuba
Publisher: