Sistema Integrador para la Comunicación Financiera para el Banco Nacional de Cuba Adolfo Miguel Iglesias Chaviano, Yadira Calimano Meneses Resumen. Desde hace muchos años, en el mundo empresarial, se intercambia información de todo tipo y con varias finalidades. El sector bancario no ha estado fuera de dicha tendencia, de hecho es uno de los que más transfiere información. En 1973 se creó la Sociedad de Telecomunicaciones Financieras Interbancarias Mundiales, a través de la cual el sector financiero lleva a cabo sus operaciones de negocios de forma rápida, segura y fiable. Más de 9000 entidades bancarias, instituciones de valores y clientes corporativos confían en ella y diariamente intercambian millones de mensajes financieros estandarizados. El presente trabajo describe las características de un sistema integrador para la comunicación financiera entre el Banco Nacional de Cuba con otros bancos teniendo en cuenta los mensajes estandarizados que propone la Sociedad de Telecomunicaciones anteriormente mencionada. Para llevar a cabo la construcción de la solución informática, se utilizó el Proceso Unificado de Rational como metodología de desarrollo de software, Java como lenguaje de programación y Eclipse como entorno de desarrollo. Los principales marcos de trabajos utilizados fueron Spring, Hibernate y Dojo Toolkit. Con la implementación de dicho sistema se garantizó el principio contable de registrar el hecho económico en el momento que ocurre, se redujo el esfuerzo de los operadores bancarios y el riego de cometer errores en el proceso de conformación de los mensajes. Todo ello gracias a la automatización de la creación y el procesamiento de los mismos. Por otra parte, se puede decir que la aplicación es flexible ante los cambios que sufre anualmente el formato estandarizado de los mensajes, característica que no se lograba con el sistema informático utilizado anteriormente. El sistema desarrollado podría ser un componente reutilizable por otros desarrolladores que trabajen en el mismo lenguaje y necesiten construir aplicaciones con el mismo objetivo. Palabras Claves. Comunicación financiera, mensajes financieros estandarizados, Sistema Integrador para la Comunicación Financiera. I. INTRODUCCIÓN En el mundo empresarial se intercambia información de todo tipo y con varias finalidades. Las instituciones bancarias y financieras no están ajenas a este proceso. Inicialmente cada entidad generaba la información a su manera, lo cual entorpecía la comunicación y entendimiento entre ellas. Posteriormente se unen esfuerzos para crear mecanismos de comunicación, de ahí surgen los más de 100 estándares que actualmente pueden ser utilizados con este objetivo. El eXtensible Business Reporting Language (XBRL), el Financial Information eXchange (FIX), la Society for Worldwide Interbank Financial Telecommunication (SWIFT) son algunas de los estándares desarrollados para facilitar la comunicación financiera. XBRL es un estándar abierto que soporta el modelado de información. Utiliza la sintaxis XML1 y tecnologías relacionadas con XML, para articular el significado semántico de su expresión. Un uso de XBRL es definir e intercambiar información, como una ficha financiera. Es un estándar para comunicar información financiera y de negocio. Estas comunicaciones son definidas por un conjunto de metadatos que nacen de taxonomías [1]. FIX es una especificación abierta y libre para intercambiar información electrónica relacionada con el comercio. Pertenece a una industria orientada a la estandarización de mensajes para el sector financiero. El mensaje está compuesto por un encabezado, cuerpo del mensaje y un tráiler. La especificación FIX se encuentra por la versión 5.0 y tiene una gran aceptación a nivel mundial ya que más de 100 compañías e instituciones la utilizan. Sin embargo pocas de estas instituciones utilizan la última versión de FIX. SWIFT surge como institución en 1973 y su primer paso fue el establecimiento de un lenguaje de mensajes sobre los pagos de clientes, transferencias financieras y reportes [2]. En los años 80, creó la primera norma ISO 7775. Luego se creó la norma ISO 15022 como una evolución de la norma anterior. La innovación fundamental de la ISO 15022 fue el enfoque orientado a negocio que le proporcionaron a los mensajes (ISO15022, 2008). La ISO 20022, la cual se está adoptando internacionalmente, cambia radicalmente la 1 XML: Extensible Markup Lenguage, es un metalenguaje extensible de etiquetas desarrollado por el World Wide Web Consortium (W3C). CCIA’2010 estructura de los mensajes, pues las primeras normas se basan en mensajes de texto plano y ésta en el formato XML. SWIFT es únicamente un transmisor de mensajes. No posee fondos ni gestiona cuentas en nombre de los clientes, ni tampoco almacena información financiera de forma permanente. Al actuar como transmisor, sirve de vehículo para los mensajes transmitidos entre dos instituciones financieras. Esta actividad implica el intercambio seguro de datos privados, al tiempo que se garantiza su confidencialidad e integridad [3]. En los bancos cubanos el intercambio de información financiera se basa principalmente en la norma ISO 15022 del estándar SWIFT. El Sistema Bancario Cubano (SBC) está compuesto por el Banco Central de Cuba (BCC), 9 bancos comerciales, 16 instituciones financieras no bancarias, 13 oficinas en representación de bancos extranjeros en Cuba y 4 oficinas en representación de instituciones financieras no bancarias. El Banco Nacional de Cuba (BNC) es uno de los bancos pertenecientes al SBC. Su misión fundamental lo convierte en un banco muy peculiar, pues es la institución la que tramita las operaciones que el Estado Cubano asume centralmente, como son: los alimentos, el combustible, los insumos para la zafra, las medicinas y la educación. Es la que recibe los créditos gubernamentales y bancarios para canalizar fondos a la Caja Central y emite las garantías que respaldan las operaciones comerciales [4]. Dicha institución utiliza la norma ISO 15022 del estándar de mensajes SWIFT para establecer el mecanismo de comunicación financiera con los bancos radicados dentro y fuera del país. Para ello usa como mediador al BCC. Los sistemas informáticos que respaldan la ejecución de los procesos de negocio del BNC son: • SABIC: Sistema Automatizado para Banca Internacional de Comercio, en su versión MS-DOS • SLBTR: Sistema de Liquidación Bruta en Tiempo Real, en su versión MS-DOS. • SISCOM: Sistema de Comunicación de mensajería SWIFT. El SABIC es el sistema encargado de la gestión de cuentas, clientes, letras de cambios, transferencias, créditos, préstamo, negociaciones, conciliaciones, entre otros procesos contables. El SLBTR es una aplicación desarrollada por los especialistas e informáticos del BCC, teniendo en cuenta la ISO 15022; pero realizándole algunas modificaciones a la estructura de los mensajes propuesta por el estándar, creando así un nuevo estándar de comunicación: el SLBTR. El objetivo principal de este sistema nos es más que garantizar la automatización de las transacciones realizadas por el BNC y otros bancos del país, así como asegurar la irrevocabilidad y precisión de los movimientos de fondos interbancarios. El SISCOM es un producto para el procesamiento y enrutamiento de mensajería SWIFT a través de la red SWIFT FIN. El sistema utiliza como interfaz, los servicios de un servidor SWIFT en conjunto con el Alliance Access (AA) instalado [5]. El AA es la interfaz de mensajería principal de SWIFT que permite conectar las aplicaciones a los servicios 2 de mensajería de SWIFT mediante su amplia gama de adaptadores disponibles [6]. La red SWIFT FIN no es más que el medio de comunicación de los mensajes de texto, utilizando el servicio FIN que brinda SWIFT. El servicio de mensajería FIN permite el intercambio de mensajes de texto plano (compatibles con la norma ISO 15022). Este estándar abarca una amplia variedad de sectores comerciales, y es utilizado y aceptado ampliamente por toda la comunidad financiera. FIN funciona en modo store-and-forward (almacenamiento y reenvío) y ofrece amplias funcionalidades de valor añadido [7]. A partir del análisis realizado al SISCOM, la observación de los procesos de negocio del BNC, el análisis de los documentos oficiales y las entrevistas realizadas a los especialistas de la propia entidad, se detectaron irregularidades en el proceso de transmisión y recepción de información financiera con otros bancos: • Teniendo en cuenta la existencia de un sistema de gestión de los procesos contables (SABIC) sin puntos de integración con el sistema utilizado para enviar y recibir los mensajes SWIFT (SISCOM), los operadores del banco deben introducir los mismos datos tanto en un sistema como en el otro; necesitando así un tiempo considerable y el doble de esfuerzo para realizar las operaciones bancarias que llevan consigo la generación y recepción de mensajes. • El SISCOM no se puede integrar con el nuevo sistema de gestión bancaria desarrollado para el BNC, por lo que ocurre el mismo problema presentado con el SABIC. • Producto a los cambios que ocurren anualmente en la norma ISO 15022 del estándar SWIFT, se requieren varios días de trabajo para actualizar dichos cambios en el SISCOM, así como especialistas bien capacitados. • Al BNC le urge eliminar estos problemas porque se está viendo afectada la operatividad diaria del banco y sus trabajadores están haciendo un sobreesfuerzo por cumplir con las responsabilidades del mismo. El objetivo del presente trabajo es desarrollar un sistema integrador para la comunicación financiera (SICOF) que facilite la creación y procesamiento de mensajes SWIFT bajo la norma ISO 15022 en el BNC y a su vez que sea flexible ante los cambios de dicha norma. II. MATERIALES Y MÉTODOS Durante el proceso de investigación se estudió la documentación oficial del BNC y se realizaron visitas a dicha institución para observar y entender los procesos de negocio que allí se llevaban a cabo, en particular el proceso de comunicación entre bancos. También se entrevistaron especialistas funcionales, tanto del BNC como del BCC y se analizaron las características de los sistemas informáticos utilizados en el BNC y algunas de las aplicaciones propuestas por SWIFT. Todo ello posibilitó conocer y entender las necesidades de la institución y así tenerlas en cuanta a la hora de definir el alcance del nuevo sistema. En la actualidad para llevar a cabo el desarrollo de un sistema informático se hace necesario la utilización de CCIA’2010 procesos de desarrollo de software, herramientas y marcos de trabajos. A continuación se mencionan las utilizadas: Se utilizó como metodología de desarrollo de software, el Proceso Unificado de Rational (RUP, por sus siglas en inglés) y como lenguaje de modelado UML. RUP es un marco de trabajo genérico que puede especializarse para una gran variedad de sistemas de software, para diferentes áreas de aplicación, diferentes tipos de organizaciones, diferentes niveles de aptitud y diferentes tamaños del proyecto [8]. Se siguieron las etapas de desarrollo, los flujos de trabajos y algunos de los artefactos que propone RUP. Los principales artefactos generados fueron: las descripciones de caso de uso, los diagramas de caso de uso, de actividades, de estados, de clases del diseño, de componente y los casos de prueba como base para realizar las pruebas de caja negra. Para el modelado del sistema se utilizó Visual Paradigm en su versión 6.1 y para la implementación del mismo, se utilizó Java como lenguaje de programación, el Eclipse IDE 3.5 y sus extensiones como herramienta de desarrollo, el Subversion 5.0 para gestionar las versiones y facilitar el desarrollo en equipo y SQL server 2005 como gestor de base de datos. El Eclipse IDE es una plataforma de código abierto (open source), multiplataforma y muy utilizada en el desarrollo de software. Unas de las principales características que brinda es la posibilidad de incorporarle extensiones que faciliten la implementación del software. Las extensiones utilizadas en el desarrollo del sistema fueron WTP, Aptana, Spring IDE e Hibernate Tools. El SubVersion es un software para compartir información. Su funcionamiento se basa en un repositorio donde se guarda la información, la cual es accedida y modifica por un número de usuarios. SQL server 2005 SQL Server 2005 es una plataforma global de base de datos que ofrece administración de datos empresariales con herramientas integradas de inteligencia empresarial (BI). El motor de la base de datos SQL Server 2005 ofrece almacenamiento más seguro y confiable tanto para datos relacionales como estructurados, lo que le permite crear y administrar aplicaciones de datos altamente disponibles y con mayor rendimiento para utilizar en su negocio [9]. Los principales marcos de trabajo (framework) utilizados fueron: Spring Framework, Hibernate, Dojo Toolkit. Spring Framework fue utilizado como componente base para la arquitectura del sistema, Hibernate para acceder a los datos guardados en el gestor de base de datos y Dojo Toolkit para confeccionar e incorporarle comportamiento a las interfaces gráficas de las páginas web. III. RESULTADOS Y DISCUSIONES A. Condiciones para el desarrollo del sistema Antes de desarrollar cualquier sistema informático, se deben valorar un grupo de condiciones que afectan el alcance y la arquitectura del mismo. Para el desarrollo del sistema se 3 tuvo en cuenta que: • Se desarrolla un sistema de gestión bancaria, SAGEB, que utiliza el lenguaje Java, la especificación Java Estándar Edition (JSE) y Java Enterprise Edition (JEE). Se utilizará en el despliegue una arquitectura cliente-servidor sobre un ambiente web. • La comunicación del BNC con otros bancos, se realiza bajo norma ISO 15022 del estándar SWIFT y el estándar SLBTR. • La comunicación con otros bancos bajo el estándar cubano SLBTR se realizará a través de un sistema que provee el BCC. • El SISCOM se utilizará como canal de comunicación para transmitir y recibir los mensajes SWIFT. • Para la guardar la información referentes a los mensajes SWIFT se debe utilizar el gestor de base de datos SQL Server 2005. B. Arquitectura del sistema El SICOF está dividido en tres partes fundamentales: 1. Núcleo del sistema. 2. Componentes para la interacción con el usuario. 3. Componente para la integración con el SAGEB. El núcleo del sistema, como su nombre lo indica, posee las funcionalidades básicas y más importantes del mismo. Con el objetivo de lograr una mayor cohesión en la estructura del núcleo se dividió en componentes, de los cuales se presentan los tres principales: • Componente SWIFT: Permite la configuración y validación de los formatos de los mensajes SWIFT y las reglas semánticas. También brinda las funcionalidades necesarias para la persistencia de mensajes enviados y recibidos. • Componente Transformación: Permite la creación automática de mensajes SWIFT utilizando los datos que se gestionan en las operaciones de negocio ejecutadas desde el SAGEB a partir de ficheros de transformación XSLT 2. Igualmente es capaz de recuperar los datos necesarios para ejecutar las operaciones de negocio del SAGEB, una vez que se reciban mensajes SWIFT. • Componente de Comunicación: Permite la transmisión y recepción de mensajes SWIFT utilizando como canal de comunicación la base de datos del sistema SISCOM. Los componentes dedicados a la interacción con el usuario permiten crear mensajes SWIFT, revisarlos y conformar plantillas para agilizar su creación. Se pueden consultar los mensajes recibidos e indicar su procesamiento. Otra de las funcionalidades disponibles, es el monitoreo de mensajes; pues se pueden observar los estados por donde transitan. El tercer componente contiene las interfaces necesarias para la integración con los módulos de negocio del SAGEB. Esta integración se realiza mediante la invocación directa entre clases Java; ya que el SAGEB está desarrollado sobre este lenguaje. A continuación se muestra gráficamente como se 2 XSLT: Extensible Stylesheet Language Transformations, está diseñado para transformar los datos XML a otro formato. CCIA’2010 encuentran organizados los componentes del sistema. Figura 1. Componentes del SICOF. C. Mecanismo de comunicación con la red SWIFT A través del componente de comunicación se realiza la transmisión y recepción de mensajes SWIFT. El mecanismo de envío desarrollado hasta el momento, consiste en transmitir los mensajes, interactuando con la base de datos del SISCOM. La interacción se realiza a través de procedimientos almacenados y la ejecución de consultas SQL. Una vez enviados los mensajes a la base de datos del SISCOM se valida el contenido de estos. Posteriormente los mensajes pasan en forma de lotes al servidor AA del BCC y finalmente este servidor se encarga de incorporarlos a la red SWIFT. En el proceso de recepción, los mensajes SWIFT enviados al BNC son detectados por el servidor AA en el BCC y colocados en la base de datos del SISCOM del BNC. Una vez detectada la llegada de mensajes SWIFT por el SICOF, se extraen de la base de datos y se procesa su contenido. En la Fig.2 se muestra el mecanismo descrito anteriormente. 4 D. Despliegue del sistema El sistema es utilizado como un subsistema del SAGEB, por lo que se desplegará en una Arquitectura cliente-servidor sobre un entorno Web. Las peticiones serán por el protocolo HTTPs. Las computadoras clientes deben ser Pentium IV con una memoria RAM de 256 Mb y 80 Gb de disco duro. El sistema operativo puede ser Linux o Windows aunque este último es el requerido por el BNC. El navegador Web debe ser el Mozilla Firefoz 3.5 o superior. El servidor donde estará ejecutándose la aplicación debe contar con un procesador Core duo, una memoria RAM de 4 Gb como mínimo y 120 Gb de disco duro. El sistema operativo puede ser Linux o Windows server. La máquina virtual que debe instalarse es la JRE 6.0 y el servidor web debe ser Apache Tomcat 6.0. También es necesario tener instalado los módulos del SISCOM que permiten la transmisión de mensajes SWIFT. El servidor de base de datos debe tener un procesador Core duo con una memoria RAM de 4 Gb como mínimo. La capacidad del disco duro debe ser mayor de 250 Gb. El sistema operativo debe ser Windows Server 2003 y el SQL Server 2005 como gestor de base de datos. La Fig.3 ilustra el modelo de despliegue anteriormente descrito. Figura 3. Modelo de despliegue. Figura 2. Mecanismo de comunicación con la red SWIFT. E. Discusión Unos de los logros alcanzados con el sistema desarrollado es que no se viola el principio contable, pues se registra el hecho económico en el momento que ocurre. También se logra una disminución del esfuerzo y riesgo de cometer errores por parte de los operadores del sistema cuando ejecutan operaciones de negocio que llevan consigo la creación de mensajes. Todo esto es posible gracias al mecanismo de creación automática de los mensajes. El SICOF es flexible ante las modificaciones que sufre la ISO 15022 del estándar SWIFT ya que se pueden actualizar CCIA’2010 los formatos de los mensajes SWIFT y las definiciones de las reglas semánticas. Otra de las ventajas del sistema es que seguiría funcionando la creación automática de los mensajes a pesar de cambios que puedan ocurrir en los procesos de negocio, pues éstos cambios serían transparentes con solo actualizar los ficheros de transformación. Cualquier otro sistema de comunicación entre bancos, que utilice Java como lenguaje de programación y sea desarrollado bajo el estándar de mensajería anteriormente mencionado, podría hacer uso del núcleo del sistema, por lo que se convierte en un componente reutilizable. Además, el SICOF podría se integrado con otros sistemas de gestión bancaria pues cuenta con la estructura de clases para ello, solamente sería necesario crear mecanismos de integración distintos al implementado actualmente. RECONOCIMIENTOS Se reconoce el trabajo realizado por el equipo de desarrollo del proyecto SAGEB, en particular a las personas que trabajaron en la implementación del SICOF. REFERENCES [1] [2] [3] [4] [5] [6] [7] [8] [9] XBRL. 2008. [En línea] 2008. [Citado el: 15 de 12 de 2009.] http://xbrl.squarespace.com/storage/WhatIsXBRL-2008-05-17.pdf. ISO15022. ISO15022. [En línea] 2008. [Citado el: 10 de noviembre de 2009.] http://www.iso15022.org/ISO15022XML/General/MessageStandardsEvol ution.pdf. SWIFT. 2009. SWIFT. [En línea] 2009. [Citado el: 12 de 1 de 2010.] BNC. MANUAL DE INSTRUCCIONES Y PROCEDIMIENTOS. La Habana : s.n., 2007. SIBANC. Manual de Usuario del SISCOM. La Habana : s.n., 2006. Solutions. Solutions. [En línea] 2008. [Citado el: 10 de noviembre de 2009.] http://www.swift.com/solutions/connectivity/connectivity_products/allianc e_access/detailed_features.page?lang=es. SWIFT. Servicios de mensajería de SWIFT. 2008. Ivar Jacobson, Grady Booch, James Rumbaugh. El Proceso Unificado de Desarrollo de Software. Madrid : Addison Wesley, 2000. Corporation, Microsoft. Microsoft SQL Server. Microsoft SQL Server. [En línea] Microsoft Corporation, 2010. [Citado el: 20 de julio de 2010.] http://www.microsoft.com/spain/sql/productinfo/overview/what-is-sqlserver.mspx. Adolfo Miguel Iglesias Chaviano (27 de marzo 1983, Cienfuegos). Es graduado como Ingeniero en Ciencias Informáticas en Ciudad de La Habana en el año 2007. Se le otorgó el premio Julio Antonio Mella por ser uno de los mejores graduados de la Universidad. Actualmente es profesor universitario, teniendo como categoría docente: Instructor. También se desempeña como Arquitecto de Software en el proyecto productivo, Sistema Automatizado para la Gestión Bancaria, en la Universidad de la Ciencias Informáticas (UCI). Se le otorgó un reconocimiento por el excelente desempeño en el proyecto, Sistema Automatizado para la Gestión Penitenciaria en Venezuela. Ha impartido las asignaturas de pregrado para Ingeniero en Ciencias Informáticas: Gestión de Software y Patrones de Diseño. Ha tutorado cinco tesis de diploma dentro de las cuales se encuentra: Integración con sistemas internos y externos en aplicaciones empresariales, Procesamiento por lotes para el Sistema Bancario Cubano y Análisis y Modelado de los procesos de Novedades y Contingencias, Requisas y Decomisos y Control de armamentos para el Sistema Penitenciario Venezolano. Ha culminado los cursos de postgrados siguientes: 5 Programación paralela y distribuida, Arquitectura de redes y computadoras, Nociones de contabilidad, Diseño de experimento, Estadísticas, Gestión del conocimiento, Gestión de proyectos. Culminó el Diplomado Formación de investigadores. Se centra en las siguientes líneas de investigación: Arquitectura de software en sistemas empresariales sobre la plataforma Java Enterprise Edition (JEE), Desarrollo de aplicaciones para la banca y Desarrollo de sistemas para la Comunicación financiera entre sistemas bancarios. Yadira Calimano Meneses (21 de diciembre de 1985, Villa Clara) Es graduado como Ingeniera en Ciencias Informáticas en Ciudad de La Habana en el año 2008. Actualmente es profesora universitaria, teniendo como categoría docente: Instructor. También se desempeña como Analista de Software en el proyecto productivo, Sistema Automatizado para la Gestión Bancaria, en la Universidad de las Ciencias Informáticas (UCI). Se le otorgó un reconocimiento por el excelente desempeño en el proyecto, Sistema Automatizado para la Gestión Penitenciaria en Venezuela. Ha impartido las asignaturas de pregrado para Ingeniero en Ciencias Informáticas: Ingeniería de Software I y II e Historia de la Informática. Ha tutorado tres tesis de diploma dentro de las cuales se encuentra: Propuesta de modelo para la Gestión de Recursos Humanos en la implantación del Sistema Integral de Gestión Cedrux, Análisis y Diseño del subsistema Cuentas de Clientes del proyecto Modernización del Sistema Bancario Cubano y Propuesta de un procedimiento para evaluar la factibilidad de las posibles alternativas de desarrollo de software en proyectos de la UCI. Ha culminado los cursos de postgrados siguientes: Modelación con BPMN, Gestión de Proyecto, Bases de Datos Avanzada, Negociación y Gestión de la Contratación, Sistemas Informáticos Inteligentes. Se centra en las líneas de investigación siguientes: Ingeniería de Requisitos, Análisis de factibilidad técnica, Desarrollo de aplicaciones para la banca y Desarrollo de sistemas para la Comunicación financiera entre sistemas bancarios.