ULACIT UNIVERSIDAD LATINOAMERICANA DE CIENCIA Y TECNOLOGIA LICENCIATURA EN INFORMATICA CON ENFASIS EN GESTION DE RECURSOS TECNOLOGICOS “Estrategia de adopción de una Arquitectura Orientada a Servicios en el Banco Nacional de Costa Rica” Sustentante: Luis Diego Masís Sanabria Cédula: 1-1002-0367 PROYECTO DE GRADUACION PARA OPTAR POR EL GRADO DE LICENCIATURA EN INFORMATICA CON ENFASIS EN GESTION DE RECURSOS TECNOLOGICOS Profesor tutor: Lic. Marco Vinicio Ureña Irola Nota obtenida: 100. San José – Costa Rica ENERO 2005 ii Dedicatoria A mi hijo Cristhian y mi esposa Mixy, por el amor tan profundo que me brindan día con día, y por las horas de sacrificio que invirtieron en este proyecto. iii Agradecimientos Deseo agradecer a Dios, por cuanto Él encierra todo lo bueno y justo, a mis padres, porque ellos son los arquitectos que forjaron mi destino, a mi asesor académico, Lic. Marco Vinicio Ureña por todo el apoyo brindado. iv DECLARACIÓN JURADA Yo, Luis Diego Masís Sanabria alumno de la Universidad Latinoamericana de Ciencia y Tecnología (ULACIT), declaro bajo la fe de juramento y consciente de la responsabilidad penal de este acto, que soy el autor intelectual de la tesis de grado titulada: “Estrategia de adopción de una Arquitectura Orientada a Servicios en el Banco Nacional de Costa Rica”, por lo que libero a la ULACIT, de cualquier responsabilidad en caso de que mi declaración sea falsa. Brindada en San José-Costa Rica en el día 03 de febrero del año dos mil cinco. ____________________________________ Ing. Luis Diego Masís Sanabria Cédula número 1-1002-0367 v ULACIT UNIVERSIDAD LATINOAMERICANA DE CIENCIA Y TECNOLOGIA TRIBUNAL EXAMINADOR Reunido para los efectos respectivos, el Tribunal Examinador de la Escuela de Postgrados compuesto por: Tutor: Lic. Marco Vinicio Ureña Irola Director de Carrera: Wilberth Molina Pérez Presidente del Tribunal: Mauricio Vega Díaz vi Resumen ejecutivo En el contexto de Plan Estratégico de Tecnologías de Información, la Gerencia General de Banco Nacional de Costa Rica ha definido objetivos ambiciosos, enfocados principalmente en la disminución de los costos que representa la infraestructura tecnológica actual y en los tiempos necesarios para implementar los servicios que requiere la organización. De esta manera se pretende aprovechar de la mejor manera las oportunidades que el mercado presenta. En este sentido, es claro que la organización, y en especial la Dirección Corporativa de Tecnología y Operaciones, debe responder a una dinámica que se torna cada vez más compleja y que en general exige explotar y equilibrar las capacidades de planificación y reacción ante las necesidades de los clientes. La industria de TI se ha enfrentado a estos problemas desde hace mucho tiempo, y como parte de sus posibles respuestas, ha analizado a profundidad el concepto de Arquitectura Orientada a Servicios en el marco de las posibilidades tecnológicas actuales. Este enfoque arquitectónico proporciona una manera diferente de construir sistemas pensando en la reutilización de servicios y otorgando gran importancia a los modelos de negocio, de manera que disminuye el tiempo de implementación de nuevos servicios transaccionales y se logra una mayor sincronización entre los procesos de negocio y de TI. La revisión de la situación actual de los sistemas financieros confirma que existe una amplia gama de características que han impedido un crecimiento ordenado en los sistemas financieros de la Institución. Sin embargo, al analizar el conjunto de variables definidas para esta investigación, se ha determinado un ambiente propicio para la adopción y consolidación de una Arquitectura Orientada a Servicios en el Banco, a vii través de un proceso dividido en tres grandes etapas que inician con la modernización de la Plataforma de Integración de Aplicaciones existente y la implementación de la iniciativa de Conector Universal. Al margen de estas propuestas, la tecnología por sí misma no es suficiente para garantizar la adopción de un modelo arquitectónico a nivel organizacional, de esta manera se han identificado áreas estratégicas que la administración debe considerar para lograr los objetivos del Plan Estratégico y se ha propuesto, para su evaluación, un portafolio de proyectos que pretende concentrar los esfuerzos de la organización en las actividades relevantes del proceso. En este orden de ideas, este documento revela un nivel más detallado de la situación actual del Banco y una estrategia complementaria a este diagnóstico. viii Índice de contenidos Índice de contenidos ...................................................................................................... viii Índice de cuadros .............................................................................................................. x Índice de gráficos.............................................................................................................. x CAPITULO I .................................................................................................................... 1 1.1. Introducción ............................................................................................................... 2 1.2. Justificación del tema................................................................................................. 3 1.2. Justificación del tema................................................................................................. 3 1.3. Planteamiento del problema....................................................................................... 5 1.3.1. Formulación del problema .................................................................................. 7 CAPITULO II ................................................................................................................... 8 2.1. Modelos de desarrollo versus el mercado actual ....................................................... 9 2.2. Arquitectura de Software – Definición.................................................................... 12 2.3. Arquitectura Orientada al Servicio – Definición ..................................................... 14 2.4. Razones para impulsar la adopción de SOA............................................................ 17 2.5. Elementos generales para adoptar SOA................................................................... 19 2.6. Consideraciones técnicas al adoptar SOA ............................................................... 22 CAPITULO III................................................................................................................ 25 3.1 Tipo de investigación................................................................................................ 26 3.2. Matriz de diseño de investigación ........................................................................... 27 3.3. Matriz de operacionalización de variables............................................................... 29 3.4. Sujetos y fuentes de información............................................................................. 31 3.4.1. Definición de población.................................................................................... 31 3.5. Instrumentos de recolección de datos ...................................................................... 32 3.6. Alcances y limitaciones de la investigación ............................................................ 33 3.6.1. Alcances............................................................................................................ 33 3.6.2. Limitaciones...................................................................................................... 33 CAPITULO IV ............................................................................................................... 34 4.1. Análisis de la información .................................................................................. 35 4.1.1. Redundancia funcional ..................................................................................... 35 4.1.2. Islas tecnológicas .............................................................................................. 36 4.1.3. Segmentos funcionales ..................................................................................... 38 4.1.4. Dominios tecnológicos ..................................................................................... 40 4.1.5. Costos de operación y mantenimiento. ............................................................. 41 4.1.6. Vida útil de los sistemas. .................................................................................. 42 4.1.7. Implementación de un nuevo servicio. ............................................................. 45 4.1.8. Penetración de reutilización mediante la integración de aplicaciones.............. 46 4.2. Interpretación de resultados ................................................................................ 47 4.2.1. Diagnóstico basado en la observación. ............................................................. 47 4.2.2. Oportunidad de impulsar SOA. ........................................................................ 49 CAPITULO V................................................................................................................. 51 5.1. Conclusiones....................................................................................................... 52 5.2. Recomendaciones ............................................................................................... 54 5.2.1. Estrategia de adopción de SOA en el Banco Nacional............................... 54 ix 5.2.2. A la Gerencia General del Banco Nacional de Costa Rica......................... 54 5.2.3. A la Dirección Corporativa de Tecnología y Operaciones. ........................ 55 5.2.4. A la Dirección Desarrollo de Sistemas de Información. ............................ 56 CAPITULO VI ............................................................................................................... 57 6.1. Identificación de la propuesta ............................................................................. 58 6.2. Identificación de áreas estratégicas..................................................................... 58 6.2.1. Estrategia de negocios ...................................................................................... 58 6.2.2. Arquitectura ...................................................................................................... 59 6.2.3. Proyectos y aplicaciones................................................................................... 60 6.2.4. Organización y gobierno................................................................................... 60 6.3. Portafolio de proyectos propuesto para la adopción incremental de SOA ......... 61 Glosario de términos....................................................................................................... 65 Bibliografía ..................................................................................................................... 68 ANEXOS ........................................................................................................................ 70 x Índice de cuadros Cuadro #1. Sistemas financieros del Banco Nacional................................................... 32 Cuadro #2: I Etapa. Publicación y consumo de servicios (2005-2006) ........................ 62 Cuadro #3: II Etapa. Arquitectura del negocio (2006-2007) ........................................ 63 Cuadro #4: III Etapa. Transformación de TI y el negocio (2007 en adelante) ............. 63 Índice de gráficos Gráfico #1: Interconexión de N Aplicaciones. .............................................................. 10 Gráfico #2: Proceso de adopción de SOA en la empresa. ............................................. 20 Gráfico #3: Funcionalidad común entre sistemas financieros del banco....................... 36 Gráfico #4: Modelos de comunicación con el Sistema Financiero Bancario. ............... 37 Gráfico #5: Modelos utilizados para la comunicación front end – Sistemas Centrales. 38 Gráfico #6: Categorías de los sistemas financieros en el BNCR................................... 39 Gráfico #7: Dominios para el desarrollo de aplicaciones.............................................. 40 Gráfico #8: Dominios para administrar bases de datos. ................................................ 41 Gráfico #9: Costo de operación y mantenimiento de los sistemas financieros. ............ 42 Gráfico #10: Año de entrada al umbral de vida útil de los sistemas financieros........... 43 Gráfico #11: Distribución de versiones de Oracle utilizadas en sistemas financieros. . 43 Gráfico #12: Versiones de Microsoft SQL Server utilizadas en sistemas financieros. . 44 Gráfico #13: Sistemas financieros que han alcanzado el umbral de vida útil. .............. 45 Gráfico #14: Tiempo estimado para implementar un nuevo módulo en los sistemas. .. 46 Gráfico #15: Arquitectura conceptual del Conector Universal. .................................... 50 Gráfico #16: “Roadmap” del Portafolio de Proyectos para el Banco Nacional. ........... 64 CAPITULO I FORMULACION 2 1.1. Introducción El propósito fundamental de esta investigación es analizar los sistemas operacionales y de apoyo existentes en el Banco Nacional de Costa Rica, determinar sus características principales y con base en estas formalizar un conjunto de recomendaciones que permitan a la institución consolidar una Arquitectura Orientada a Servicios, que haga posible la creación ágil y eficiente de nuevos sistemas. Adicionalmente, esta investigación presenta como objetivo conexo la consolidación definitiva de la Plataforma de Integración de Aplicaciones implementada por el banco, consolidación que consiste en el aumento de su utilización para el desarrollo de nuevos productos y/o mejoras funcionales a los sistemas existentes. De esta manera se pretende que no sea considerada simplemente “otra plataforma” dentro de la complejidad tecnológica de la institución y que, por el contrario, permita mejorar la comunicación e interoperabilidad de las plataformas existentes en la institución. 3 1.2. Justificación del tema De acuerdo con la realidad actual, la semántica del negocio como un todo se encuentra completamente dispersa a lo largo de las plataformas, haciendo difícil su reutilización sin construir interfaces o dependiendo en exceso de los distintos dominios tecnológicos. Esta situación se debe a que los sistemas no fueron pensados para utilizar la funcionalidad que implementan en forma atómica, es decir que dicha funcionalidad depende más de lo normal del contexto y del sistema que la ejecuta. Cuando una plataforma tecnológica comienza su tramo final del ciclo de vida, todos los sistemas implementados comienzan a generar mayores costos operacionales. Es común ver cómo tecnologías que han llegado a su fin, se mantienen operativas porque esa tecnología no ha sido en forma oportuna migrada, pagando en consecuencia un alto costo de mantenimiento. Desafortunadamente, volver a escribir los sistemas operacionales con años de evolución y estabilidad no es una tarea sencilla, es por eso que muchos administradores de TI postergan la decisión de migrarlos. De acuerdo con las necesidades del negocio, la funcionalidad de los sistemas debe ser encapsulada en componentes, los cuales deben ser ubicados en un único punto integrador conocido como middleware, al especializar a los sistemas cliente en la exposición y captura de datos, y a los sistemas centrales en la persistencia de datos. De esta manera se logra el objetivo de consolidar la Plataforma de Integración de Aplicaciones del banco con funciones claras y no se dedica a ser simplemente “otra plataforma” dentro de la complejidad tecnológica de la institución, abriendo el camino para la adopción de arquitecturas orientadas a servicios también conocidas como SOA. Dentro de los beneficios esperados de esta propuesta se encuentran los siguientes: 4 • Mayor flexibilidad ante los cambios repentinos del negocio por cuanto se promueve la utilización de servicios, en lugar de la creación de sistemas. Es decir que si surge la necesidad de un nuevo sistema de información, existirá toda una gama de servicios que ya han sido implementados para otros sistemas en el middleware y el nuevo sistema simplemente tendría necesidad de consumirlos o extender la funcionalidad existente. • Mayor nivel de reutilización en la organización, pues se elimina el nacimiento aislado de sistemas de información que gestionan individualmente toda su funcionalidad. Se pretende que cada sistema se empiece a orientar hacia la arquitectura propuesta y que inicie un proceso de reducción de funcionalidades redundantes. • Menor impacto ante cambios tecnológicos mediante la unificación de las reglas del negocio. Si los cambios que se originan son a nivel interno, dentro de la lógica del negocio se modifica el middleware como único punto concentrador y no se debe modificar cada sistema que posea de manera redundante esta lógica. • Mayor capacidad para ensamblar servicios antes que programar sistemas, pues esta arquitectura propone la visualización de los componentes tecnológicos como piezas individuales que pueden ser unidas de acuerdo con la necesidad de un nuevo servicio. • Garantizar la correcta utilización de la Plataforma de Integración de Aplicaciones adquirida por la institución, pues sin estrategias formalmente definidas la tecnología no es efectiva. • Promover una mejor interoperabilidad de los sistemas debido a que se elimina la cadena de dependencia de “muchos a muchos” en la relación tecnológica de los sistemas de la institución. 5 1.3. Planteamiento del problema El Banco Nacional de Costa Rica es una entidad del Estado fundada el 9 de octubre de 1914 con el nombre de Banco Internacional de Costa Rica. La vocación inicial de la institución se orientó hacia el desarrollo agrícola y rural del país, la cual se ha conservado a lo largo de toda su vida, sin perjuicio del estímulo que ha prestado a las restantes actividades productivas de la Nación. El 5 de noviembre de 1936 se le cambió el nombre a Banco Nacional de Costa Rica y desde entonces se ha consolidado como un verdadero banco de desarrollo con una proyección positiva en la vida económica, social y financiera del país. La Institución actualmente cuenta con más de 140 agencias a lo largo del territorio nacional, ofreciendo sus servicios en los rincones más alejados del país. Bajo la administración del Lic. William Hayden Quintero, el Banco Nacional obtuvo el año 2003 una utilidad récord de más de doce mil millones de colones, y es reconocido como el Banco más grande de Centro América y el Caribe. Su organización se encuentra conformada por una casa matriz, ubicada en su edificio principal en el centro de San José y 6 Bancos regionales, a saber: • Banco Regional San José Este. • Banco Regional San José Oeste. • Banco Regional de Guanacaste-Puntarenas. • Banco Regional de Cartago Sur. • Banco Regional de Heredia-Limón. • Banco Regional de Alajuela. La casa matriz es responsable de emitir las directrices que rigen el funcionamiento de todos los Bancos regionales, estandarizando así el servicio ofrecido por la Institución. La misma se encuentra conformada por diferentes Direcciones 6 Corporativas, entre las cuales se destaca la Dirección Corporativa de Tecnología y Operaciones, responsable de ofrecer el soporte tecnológico necesario para que la Institución continúe a la vanguardia del sector financiero costarricense. Durante muchos años, la Dirección Corporativa de Tecnología y Operaciones se ha encargado de brindar a la institución todos los servicios referentes al desarrollo y mantenimiento de las soluciones tecnológicas que posibilitan la gestión del negocio bancario. De esta manera se ha dado respuesta a las necesidades del banco a nivel de desarrollo de software, infraestructura de seguridad y comunicaciones y el soporte y operación de los sistemas en producción. A pesar de que la gestión de la Dirección de Tecnología ha sido un apoyo invaluable para el desarrollo y fortalecimiento de la institución, al igual que en la mayoría de las organizaciones, los sistemas operacionales y de apoyo del Banco Nacional de Costa Rica fueron construidos a lo largo del tiempo, utilizando distintas plataformas de desarrollo y diferentes modelos arquitectónicos (monolíticos, clienteservidor, tres capas y otros), dando origen a un complejo modelo de interoperabilidad. La realidad actual de los sistemas del banco plantea una comunicación de “muchos a muchos”, lo cual se traduce en una fuerte inversión de tiempo y recursos en el mantenimiento, no solo de la solución tecnológica en sí misma, sino también entre estas relaciones. Por ejemplo; en la actualidad cada uno de los canales de distribución de la institución posee un componente tecnológico que le permite comunicarse al sistema de cuentas corrientes y de ahorros, con el objetivo de obtener información genérica como las cuentas relacionadas a un cliente. Adicionalmente cada uno de estos canales (Sistema de cajas, E-Banking, banca telefónica, cajeros automáticos) utiliza transacciones distintas a nivel de ese sistema central para obtener la misma información. En un escenario hipotético, en el cual fuera necesario modificar el concepto de consulta de cuentas de un cliente, se deben modificar N transacciones y N canales relacionados, lo cual eleva los costos y sin duda aumenta la probabilidad de errores u omisiones. 7 Uno de los objetivos planteados por la Dirección de Tecnología para el año 2005 es simplificar esta interoperabilidad mediante la consolidación de una Arquitectura Orientada al Servicio, a través de la integración de dominios tecnológicos. Esta integración está fundamentada en una solución llamada Plataforma de Integración de Aplicaciones (PIA). La idea central de esta iniciativa es consolidar las reglas de negocio en un único punto, bajo la premisa de la reutilización; ello significa que si bien es cierto no todos los sistemas necesitan la misma información, se puede contar con una transacción general que obtiene las cuentas del cliente y brinda el resultado de la ejecución especializada al sistema que lo solicitó. Si bien en el corto plazo, el desafío es integrar a los distintos dominios tecnológicos (plataformas), fundamentado principalmente en la continuidad del negocio, para mediano y largo plazo se ha definido el objetivo de lograr la convergencia de las reglas del negocio hacia la capa intermedia y la especialización tanto de los sistemas de cara al cliente como de los sistemas centrales del banco, de manera tal que se minimicen las relaciones complejas de los sistemas del banco entre canales y sistemas centrales. La meta es desarrollar un modelo y una disciplina la cual permita que los sistemas operacionales no evolucionen dentro de compartimientos en sí mismos, sino como un conjunto de piezas perfectamente desacopladas, que son construidas con diversas tecnologías y pueden ser reemplazadas individualmente. Como parte del portafolio de proyectos principal de la Dirección de Tecnología, se encuentra la primera etapa de esta consolidación que consiste en desarrollar una investigación la cual permita analizar las diferentes soluciones de software que posee el banco con la intención de establecer un proceso de convergencia tecnológica, todo esto mediante definición de métricas y análisis del ciclo de vida de las plataformas actuales. 1.3.1. Formulación del problema ¿Cómo planificar a nivel estratégico la adecuación de los sistemas computacionales del Banco Nacional de Costa Rica a una arquitectura de sistemas orientada a servicios?. CAPITULO II MARCO TEORICO 9 2.1. Modelos de desarrollo versus el mercado actual Durante las últimas décadas, los departamentos de TI de las empresas se han dado a la tarea de construir una infraestructura que soporte la operación normal, tanto a lo interno de la organización como a lo externo, para brindar un valor agregado a los clientes quienes utilizan los bienes o servicios proporcionados. Debido a que la ciencia de la computación e informática se encuentra en continuo crecimiento, el camino que estas empresas han debido transitar para llegar hasta este punto no ha sido fácil ni económico; pues las organizaciones se han visto obligadas a aprender de los errores y aciertos de la industria. El resultado de este proceso, ha sido la construcción y mantenimiento de muchas aplicaciones al interior de las empresas, cada una responsable de sus propias tareas. Con el nacimiento del comercio electrónico – amparado ampliamente por el crecimiento exponencial experimentado por los medios digitales como Internet y tecnología que la ha sabido utilizar – el mercado mismo presiona a las organizaciones para crear rápidamente sistemas más complejos con menos dinero. Cuando la organización cuenta con una infraestructura de TI que soporta la operación, la construcción de estas aplicaciones va a requerir de servicios funcionales que probablemente fueron de forma previa implementadas como parte de otro sistema. Ante esta necesidad, los arquitectos de software tienen dos opciones para implementar el servicio: 1. Reutilizar la funcionalidad ya implementada en otros sistemas. La complejidad de esta opción es alta, debido a que los otros sistemas no fueron diseñados para integrarse con múltiples plataformas y/o tecnologías. Si se encuentra una alternativa técnica de realizar la reutilización, se debe asumir tanto el riesgo de alterar un sistema en producción que está funcionando sin problemas, como la posibilidad de generar inconvenientes de interoperabilidad en el nuevo sistema. 10 2. Volver a implementar la funcionalidad requerida, utilizando el producto o tecnología particular donde se está construyendo el sistema. Aunque probablemente tome mucho más tiempo de desarrollo, en teoría es la más sencilla y la más segura. En la mayoría de los casos la segunda opción es la preferida para los arquitectos de software. A corto plazo se visualiza como una buena decisión, pero a largo plazo genera inconvenientes como los siguientes: • Funcionalidad replicada a lo largo de muchas plataformas y sistemas. • Se presenta mayor dificultad para migrar los sistemas internos, pues existen múltiples conexiones desde otros sistemas que dependen de estos para ejecutar correctamente su funcionalidad. • Debido a la falta de una estrategia formal para integración de aplicaciones, se generan múltiples puntos de falla, que pueden provocar problemas en la operación o incluso detener a muchos sistemas fácilmente. Gráfico #1: Interconexión de N Aplicaciones. Fuente: Elaboración propia. 11 De acuerdo con este planteamiento, es importante analizar las prioridades que define el negocio con relación a la TI. A nivel global, Information Week indica mediante West(2004) que “los impulsores del negocio, en el caso de las TI, han seguido siendo los mismos desde hace años: mejorar las eficiencias y comunicaciones de la empresa, optimizar la toma de decisiones y apoyar la colaboración.”. A nivel local PriceWaterHouseCoopers(2004) indica que dentro de las prioridades estratégicas para TI que posee la Gerencia General del Banco Nacional de Costa Rica, se encuentran; entre otras, las siguientes: • Contar con un backoffice robusto, que elimine aplicaciones e interfaces y proporcione información en tiempo real. • Reducción de la estructura tecnológica en propiedad del Banco y su alto costo de operación • Adopción de las mejores prácticas bancarias, en lugar de la implantación tecnológica de las prácticas actuales • Disminución de los tiempos de entrega de servicios y productos técnicos. (p.25). Como se puede observar los objetivos estratégicos definidos por la administración de la institución están sincronizados con lo observado en la industria; por lo tanto es indispensable que los proyectos e iniciativas que planifique la Dirección Corporativa de Tecnología y Operaciones brinden respuesta rápida y contundente a estos temas. 12 2.2. Arquitectura de Software – Definición A pesar de ser un tema de tanta importancia y contar con una amplia aceptación como parte de las estrategias de TI, no existe una definición de arquitectura de software que satisfaga a todos los involucrados en este proceso. De acuerdo con las últimas investigaciones en la historia de la ingeniería del software, en el año 1968 Edsger Dijkstra; quien trabajaba en la Universidad Tecnológica de Eindhoven en Holanda, formuló una primera definición cuando indicó la necesidad de que se establezca una estructuración correcta de los sistemas de software antes de iniciar su construcción escribiendo el código desordenadamente. A pesar de que Dijkstra no utiliza el término “arquitectura” para describir el diseño conceptual del software, sus trabajos sientan los fundamentos de las definiciones que se analizarán a continuación. Existe una definición reconocida por la industria en general, publicada por Clements(1996), la cual se refiere a la arquitectura de software de la siguiente manera: Es a grandes rasgos, una vista del sistema que incluye los componentes principales del mismo, la conducta de esos componentes según se la percibe desde el resto del sistema y las formas en que los componentes interactúan y se coordinan para alcanzar la misión del sistema. La vista arquitectónica es una vista abstracta, aportando el más alto nivel de comprensión y la supresión o diferimiento del detalle inherente a la mayor parte de las abstracciones. Es importante hacer la aclaración que en este caso “componente” no se refiere a la implementación tecnológica en una herramienta de desarrollo determinada, como por ejemplo COM, CORBA, Enterprise Java Beans y otras. En este caso un componente es una entidad a la que los arquitectos prefieren llamar “componente” antes que “objeto”, para evitar que se confunda con el paradigma de desarrollo orientado a objetos. La definición formal de Arquitectura de Software que utiliza la industria; por común acuerdo, la brinda la IEEE(2000) dentro del estándar 471-2000, la cual indica que “la Arquitectura de Software es la organización fundamental de un sistema encarnada en sus componentes, las relaciones entre ellos y el ambiente y los principios que orientan su diseño y evolución”. 13 De esta manera se puede indicar que la arquitectura de software se refiere a la estructura general del sistema, mediante una estructura consistente compuesta por componentes y las relaciones entre ellos. Inevitablemente estas cuestiones estructurales se relacionan con las tareas diseño, pues la arquitectura es una forma de diseño de software que se manifiesta en las primeras etapas de la concepción de un sistema; con la diferencia que este diseño se presenta a un nivel más abstracto que los algoritmos y las estructuras de datos. Se pueden mencionar se encuentran los siguientes componentes: • Protocolos de comunicación. • La sincronización y el acceso a datos. • La asignación de funcionalidad a elementos del diseño. • Distribución física. • Composición de los elementos de diseño. • Escalabilidad y rendimiento. • Selección entre alternativas de diseño. • Confiabilidad. • Usabilidad. Es importante mencionar que el concepto clave de la arquitectura es la organización (tomando este concepto de forma cualitativa o estructural), mientras que la ingeniería tiene fundamentalmente que ver con procesos sistemáticos que son susceptibles de cuantificarse, por esa razón el concepto de la arquitectura concierne a un alto nivel de abstracción. En síntesis la Arquitectura de Software representa la clave para comprender, organizar y comunicar un sistema, además, permite implantar conceptos como reutilización y facilita el desarrollo de la solución. 14 2.3. Arquitectura Orientada al Servicio – Definición Como se analizó anteriormente, la reutilización es uno de los fundamentos que justifica la concepción del propio concepto de arquitectura. Apoyado en este principio, una estrategia de aplicaciones empresariales definida de manera correcta deberá facilitar la integración de dichas aplicaciones entre sí. Esta tendencia de arquitectura de software es conocida como Arquitectura Orientada al Servicio (SOA) y básicamente consiste en una serie de patrones de arquitectura de acuerdo con las mejores prácticas promovidas por la industria para permitir y motivar la construcción de servicios, más que de aplicaciones o sistemas independientes. Estos servicios serán los encargados de exponer una funcionalidad bien definida a la aplicación que la requiera. De esta manera, una aplicación final simplemente orquesta o coordina la ejecución de un conjunto de estos servicios, añade lógica particular y le presenta una interfaz al usuario final. Microsoft (2004) define SOA como “una arquitectura para propósitos generales, inspirada por la Internet y la Web, con el objetivo de habilitar interoperabilidad extensible y federada, basada en conceptos generales de redes como protocolos e intermediarios” Colan(2004), quien labora para IBM Corporation, indica que SOA es “una propuesta para construir sistemas distribuidos que publiquen su funcionalidad como servicios para ser consumidos por aplicaciones de usuario final o para construir otros servicios” (p.4). Ambas definiciones se apoyan ampliamente en el concepto de servicios, pues exponer procesos de negocio como servicios, es la clave a la flexibilidad de este tipo de arquitectura. El objetivo primordial en este caso es permitir que otras piezas de funcionalidad (aún cuando también se encuentren implementadas bajo esta arquitectura) hagan uso de otros servicios de manera natural, sin importar su ubicación física. De esta manera un sistema evoluciona con nuevos servicios y se mejora a nivel independiente. 15 La Arquitectura Orientada a Servicios resultante, define los servicios de los cuales estará compuesto el sistema, sus interacciones, y las tecnologías con la cuales finalmente serán implementados. Las interfaces que utiliza cada servicio para exponer su funcionalidad deben ser bien definidas y gobernadas por contratos, que definen claramente el conjunto de mensajes soportados, su contenido y las políticas aplicables; para que en conjunto formen parte integral de los procesos de negocio. De acuerdo con su naturaleza, se han identificado cuatro tipos de servicios que se complementan entre sí, conocidos como servicios de entidad, actividad, proceso e infraestructura. Servicios de entidad: Operaciones unitarias y atómicas en una entidad, la cual puede ser una base de datos, un componente, un sistema legado o bien un socio de negocios. Ejemplo: débito a una cuenta, crédito a una tarjeta. Servicios de actividad: Coordinan la operación de varios servicios de entidad como una operación única y atómica. Ejemplo: Pago de tarjeta de crédito, debitando de una cuenta. (Nótese que en este caso el servicio entidad “débito a una cuenta” puede ser ejecutado en una base de datos de la empresa y el de “crédito a una tarjeta” incluso puede ser provisto por un socio de negocios fuera de la empresa). Servicios de proceso: Ejecutan grandes procesos de negocio, los cuales pueden involucrar complejos flujos de trabajo e incluso participación humana. Ejemplo: Aprobación de un crédito. Servicios de infraestructura: proveen una plataforma de funcionalidad general que permite la correcta ejecución de los servicios descritos anteriormente. Ejemplo: administración, seguridad, auditoría y monitoreo. Estos tipos de servicio poseen una característica en común y es que deben ser una aplicación completamente autónoma e independiente. A pesar de esto, no se le puede considerar una isla funcional porque expone una interfaz de llamado basada en mensajes, capaz de ser accedida a través de la red. Generalmente, los servicios incluyen tanto lógica de negocios como manejo de estado (datos), relevantes a la solución del 16 problema para el cual fueron diseñados. La manipulación de este estado es administrada por las reglas de negocio. Como recién se ha mencionado, la comunicación desde y hacia el servicio, es realizada utilizando mensajes y no llamadas a métodos. Estos mensajes deben contener o poseer referencia a toda la información necesaria para entenderlo. La idea es que haya el mínimo posible de llamadas entre el cliente y el servicio. En resumen se puede indicar que un servicio es la evolución en complejidad y funcionalidad de un componente distribuido. Si se compara con un componente distribuido, se puede decir que los servicios: Se encuentran mucho menos acoplados con las aplicaciones cliente que los utilizan. Poseen menor descomposición de funciones. No son implementados necesariamente como parte de una aplicación punto a punto. Son controlados y administrados de manera independiente. Exponen su funcionalidad a través de protocolos abiertos e independientes de la plataforma en la que se encuentran desarrollados, aún cuando esto arriesga ocasionalmente el rendimiento y probablemente se pueda traducir en un incremento del consumo de recursos. Son en cierta medida “transparentes” de su localización en la red, de esta manera buscan mejoras en criterios como escalabilidad y tolerancia a fallos. Tienen sus propias políticas de escalabilidad, seguridad, tolerancia a fallos, manejo de excepciones, configuración y demás. 17 2.4. Razones para impulsar la adopción de SOA Por lo general, las empresas que utilizan como estrategia competitiva la prestación de nuevos y mejores servicios a sus clientes, han realizado una gran inversión en tecnología a lo largo del tiempo. Actualmente se puede decir que este perfil de organizaciones cuenta con un alto porcentaje de procesos de negocio automatizados mediante elementos tecnológicos complejos; los cuales han requerido una gran cantidad de tiempo para su consolidación. De acuerdo con esta realidad se debe cuestionar la necesidad de adoptar un nuevo modelo arquitectónico y enumerar algunos beneficios que proporciona esta inversión. Bea Systems (2004) indica que “SOA es valioso para las empresas que necesitan resolver problemas de negocio críticos utilizando tecnologías de información, incluyendo a las empresas que buscan minimizar la infraestructura redundante y crear una interface de negocios común entre los sistemas orientados a los clientes y a los empleados; negocios que necesitan personalizar información de usuarios basados en roles y flujos de trabajo, y organizaciones que buscan utilizar Internet para aumentar las ganancias mediante venta cruzada y el acceso mediante dispositivos móviles”. De acuerdo con esta teoría se puede indicar que las empresas que adopten una arquitectura de este tipo experimentarán beneficios desde el punto de vista de TI, y lo que es más importante, del negocio mismo. 2.4.1. Beneficios para el negocio Eficiencia: Permite a la organización la transformación de los procesos de negocio en servicios compartidos con un menor costo en el mantenimiento. Adaptabilidad: Hace más sencillo para la empresa el proceso de adopción de cambios, a la vez que se añade flexibilidad y se reduce esfuerzo. Mejorar la capacidad de respuesta: Hace posible una rápida adaptación y despliegue de servicios, lo cual es indispensable para aumentar los niveles de servicio y de esta manera solventar las exigencias de los clientes, los aliados de negocio y los empleados. 18 2.4.2. Beneficios para TI Reducción de complejidad: Por cuanto se fundamenta en garantizar una compatibilidad basada en estándares frente al concepto de integración punto a punto. Aumenta la reutilización: Permite mayor eficiencia en el desarrollo, entrega de proyectos y aplicaciones, debido a la reutilización de servicios compartidos que han sido previamente desarrollados y desplegados. Integra aplicaciones heredadas: De esta manera se publica la funcionalidad residente en estos sistemas como servicios reutilizables, reduciendo de esta manera el costo implícito a su mantenimiento e integración. Más allá de los beneficios que brinda, es indispensable indicar que la industria misma es una fuerza externa que impulsa la adopción de SOA en las organizaciones. La presión ejercida es tal que Gartner (2004), al analizar el futuro de la TI en el mundo y en Latinoamérica, recomienda fuertemente a las empresas: Diseñar arquitecturas y estrategias basadas en la fundamental e inevitable confluencia de: • Infraestructura en tiempo real. • Banda Ancha Wireless. • Dispositivos móviles de bajo costo y bajo consumo de energía. • SOA. (p.39) En la medida que este tipo de arquitectura ha dejado de ser un planteamiento teórico y se ha transformado en una alternativa real para las empresas mediante el uso de Web Services y estándares que los regulan, las organizaciones deben comprender que el año 2005 es un año de preparación para las exigencias que impulsará la industria. Al respecto Gartner (2004) también recomienda “mejorar las habilidades para adoptar las nuevas plataformas y así poder ganar” puesto que “los años clave son el 2006 y el 2007 – el futuro será muy bueno para los que aumenten sus habilidades hoy” (p.39). 19 2.5. Elementos generales para adoptar SOA Es razonable considerar que la adopción de una arquitectura orientada al servicio es un proceso incremental y que debe responder a las necesidades de la organización; es decir que una estrategia de choque a nivel de sustitución de sistemas implica por sí misma la pérdida de una gran parte de la inversión que la organización ha realizado a nivel de software y probablemente de hardware. El negocio de hoy demanda un importante retorno de su inversión en tecnología, lo cual evidencia que la idea de un nuevo modelo de arquitectura que sugiera costos muy elevados será muy difícil de vender a la administración. En términos generales se sugiere que los requerimientos de adopción de SOA consideren lo siguiente: • Mantener los activos existentes, pues estos sistemas raramente pueden ser descontinuados por el valor que le generan a la empresa. Estratégicamente se debe plantear una arquitectura que mantenga ese valor mediante estrategias de integración y que desde el punto de vista táctico permita realizar proyectos incrementales que mejoren, o incluso a largo plazo, sustituyan el modelo aplicativo actual. • Permitir todos los tipos de integración requeridos, el modelo debe responder a necesidades tales como: o Interacción con el usuario: permitir una experiencia de usuario sencilla e interactiva. o Conectividad entre aplicaciones. o Integración de procesos. o Integración de información o Procesos de construcción orientados a la integración. • Permitir implementaciones incrementales y migración de activos, con el objetivo concreto de implementar un retorno de inversión más temprano. 20 • Hacer posible la implementación de nuevos modelos de computación, específicamente modelos fundamentados en portales basados en clientes y computación por demanda (modelos asincrónicos). Como toda decisión estratégica, las organizaciones deben empezar con un plan concreto que describa las necesidades actuales de la empresa y sus futuros requerimientos. Bea Systems (2004) presenta el siguiente diagrama donde ilustra un ejemplo de plan progresivo para implementar SOA. Gráfico #2: Proceso de adopción de SOA en la empresa. Fuente: Bea Systems (traducción). Mediante la exposición de los servicios más altamente reutilizables(o genéricos) para el consumo de los aliados de negocio y los usuarios internos, el departamento de tecnología puede demostrar rápidamente a los involucrados en el proceso el valor real de SOA. Por ejemplo, las empresas pueden exponer servicios B2B en sitios de colaboración para sus aliados de negocio, mientras eliminan infraestructura redundante. Varhol (2004) apoya la iniciativa de iniciar con la publicación y el consumo de los Web Services cuando recomienda que “en primer lugar, se debe entender la tecnología que está detrás de los Web Services y SOA. Esto es importante porque se debe conciliar lo que es posible con lo que es práctico. El conocimiento de los fundamentos de la tecnología detrás de SOA y como pueden ser aplicados dentro de la infraestructura de la organización es esencial para asegurar que cualquier diseño puede ser implementado satisfactoriamente” 21 Esta primera etapa está sujeta a comprender correctamente el negocio, lo cual significa que no solo es necesario contar con una vista general de lo que la empresa hace y cómo lo hace; sino también experimentar directamente las prácticas del negocio y de esta manera, entendiendo los detalles, contar con la información necesaria para diseñar los servicios con un nivel de especialización que soporten esas necesidades. Al respecto Varhol (2004) también añade que la siguiente tarea dentro de esta etapa es “implementar uno o dos servicios de gran valor que llenen las necesidades inmediatas y los requerimientos de arquitectura proyectados a futuro”, puesto que mediante la correcta definición de estos servicios y la medición de cómo están supliendo las necesidades actuales. El éxito que alcance esta primera etapa frecuentemente impulsa la creación de servicios más complejos que transforman los procesos de negocio y administran los flujos de trabajo. Una de las áreas de orquestación de negocios que presenta un crecimiento más rápido es la de aplicaciones de autoservicio, las cuales pueden entregar servicios de compra de productos y servicios. También se pueden implementar servicios que mejoren los procesos administrativos de la empresa. Por ejemplo, muchos subprocesos se inician cuando se realiza contratación de un nuevo empleado; requieren acceso a la red de la organización, a las instalaciones físicas, carné de identificación, activación en sistemas donde deba realizar sus funciones y muchas tareas más. Utilizando SOA el negocio puede modelar el proceso entero de creación de un nuevo empleado, el cual inicia en la solicitud de creación del usuario en los diferentes sistemas de la empresa mediante procesos basados en servicios que soportan el flujo de trabajo, monitorean el estado de las solicitudes y eventualmente elaboran un resumen de los resultados. Una empresa de servicios financieros puede mejorar el servicio al cliente, vinculando las personas y los procesos de clientes mediante una interface de negocios común, sencilla y personalizada; tanto para los sistemas de los clientes como los empleados, permitiendo características indispensables como la reutilización. 22 La tercera etapa de esta estrategia está orientada para buscar transformar las áreas de TI y negocios; para este fin las organizaciones habilitarán SOA a través de la empresa, lo cual implica que las interacciones de todas las aplicaciones estarán basadas en la arquitectura orientada a servicios de la institución y establecer un gobierno eficaz y efectivo de esta arquitectura. Bea Systems (2004) indica al respecto: Para algunas empresas este cambio involucra la publicación de aplicaciones tipo mainframe existentes como servicios en la arquitectura, en vista que almacenan datos críticos de la empresa. Para otras, podrá implicar una reestructuración de la organización en sí misma. Por ejemplo, con la adopción de SOA en la empresa, TI necesitará definir los procesos de gobierno de toda la arquitectura. 2.6. Consideraciones técnicas al adoptar SOA Considerando los beneficios que genera su utilización, es conveniente en la mayoría de los casos modelar el negocio considerando una arquitectura de servicios; sin embargo a nivel tecnológico la implementación de un servicio presenta inconvenientes que deben ser considerados y en la medida de lo posible solucionados para obtener de esta manera una implementación ideal y acorde con las demandas del negocio. De acuerdo con West(2004) una arquitectura de este tipo “ha de incluir atributos de tiempo de corrida que satisfagan las metas del negocio; a saber, disponibilidad, seguridad, interoperabilidad, flexibilidad, desempeño y escalabilidad”. • Disponibilidad y seguridad. SOA supone que en un sistema distribuido se presentarán problemas. A pesar que exista todo un esfuerzo por brindar soluciones de continuidad del negocio nunca se debe partir del hecho que un servicio se ejecutará en un ambiente común en J2EE o Microsoft .NET. Para garantizar la disponibilidad e integridad del sistema se deben integrar las mejores prácticas de la industria con elementos tecnológicos que permitan hacer frente a fallas parciales. 23 Desde el punto de vista de seguridad se debe proporcionar una adecuada protección frente a las interrupciones, con una combinación de fuerte autentificación, restricciones en los procesos de autorización, encriptación de los datos, garantía de confidencialidad del contenido y no repudio de los mensajes; esto incorporado a la infraestructura de seguridad existente en la organización, de manera que se cuente con una adecuada protección de los recursos cruciales dentro de la empresa y mecanismos de monitoreo y defensa contra ataques mal intencionados, que minimicen las interrupciones en el servicio • Interoperabilidad. Este concepto es crucial, puesto que impacta directamente el costo de propiedad y las ganancias del negocio. Dentro de una SOA los procesos prioritarios son los que se encuentran relacionados al negocio y la interoperabilidad con el backoffice. La interoperabilidad de los procesos de negocio comprende la capacidad de intercambiar transparentemente información entre aplicaciones. Mediante el nivel de especialización que requiere este tipo de arquitectura permite un nivel de diferenciación basada en crear o administrar procesos de negocio. Con respecto al backoffice, el departamento de TI debe suministrar un proceso ágil y eficiente para los usuarios y que abarque todos los canales (Internet, IVR, servicio al cliente). • Flexibilidad. La capacidad de adaptarse de manera natural presenta tres requisitos: detectar los cambios en el ambiente, en los sistemas y ejecutar los ajustes necesarios donde se requiera. Al respecto se recomienda monitorear, reaccionar e implementar cambios a través de diferentes mecanismos; por ejemplo se pueden mencionar modificaciones a las políticas que se practican en conjunto con las aplicaciones, estimar el peso o impacto de las modificaciones propuestas, efectuar estos cambios sin interrumpir el ambiente de producción de servicios no relacionados y que adicionalmente reporte el estado y comportamiento de los servicios a un mecanismo de monitoreo integral. 24 • Desempeño. Una aplicación construida sobre servicios Web debe mejorar la productividad de los usuarios. Para planificación de la capacidad el desempeño general debe ser cuantificable y descrito en términos de la inversión de la infraestructura requerida. Las definiciones del desempeño requerido y el subsiguiente monitoreo también deben ser descritos de manera que permitan obtener un más alto nivel, tomando en cuenta la experiencia de los usuarios. • Escalabilidad. Dentro de este tipo de arquitectura los servicios tienen que escalar a través de todos los elementos del sistema sin interrumpir su disponibilidad. Cuando se añade un nuevo recurso, la aplicación que exponga un servicio tiene que sacar ventaja transparentemente de esta incorporación. El ambiente también debe permitir la escalabilidad hacia abajo para prever la subutilización de recursos; y la implementación del concepto de niveles de servicio entre las aplicaciones. CAPITULO III MARCO METODOLOGICO 26 3.1 Tipo de investigación En esta investigación se utiliza el enfoque descriptivo, el cual constituye una herramienta fundamental para cumplir con los objetivos del proyecto, específicamente el objetivo de propuesta relacionado con la recomendación de un proceso de migración de las reglas de negocio de la institución a una nueva arquitectura. De acuerdo con lo indicado por Hernández, Fernández y Baptista (1998) “los estudios descriptivos pueden especificar las propiedades importantes de personas, grupos, comunidades o cualquier otro fenómeno que sea sometido a análisis”, en este caso es importante establecer las características fundamentales de los sistemas definidos como de misión crítica de la institución, por parte de la Dirección Corporativa de Tecnología y Operaciones. Este tipo de investigación mide o evalúa diversos aspectos, dimensiones o componentes del fenómeno o fenómenos por investigar. Desde el punto de vista de un estudio científico, describir se interpreta como medir, por ello se relaciona con una serie de elementos y se mide cada una de ellos independientemente, para así describir lo que se investiga con la mayor precisión posible. Hernández et al. (1998), también indican que: La investigación descriptiva, en comparación con la naturaleza poco estructurada de los estudios exploratorios, requiere considerable conocimiento del área que se investiga para formular las preguntas específicas que busca responder, por lo que puede ser más o menos profunda pero en cualquier caso se basa en la medición de uno o más atributos del fenómeno descrito. (p. 60-62) Por esta razón se ha definido que en este trabajo de investigación se utilizará el tipo de investigación descriptiva para la recopilación de datos, pues con ello se permite la interpretación de la información a un nivel mayor de detalle técnico con el fin de dar resultados más certeros y oportunos. 27 3.2. Matriz de diseño de investigación TEMA Estrategia de adopción de una Arquitectura Orientada al Servicio en el Banco Nacional de Costa Rica PROBLEMA ¿Cómo planificar a nivel estratégico la adecuación de los sistemas computacionales del Banco Nacional de Costa Rica a una arquitectura de sistemas orientada a servicios? OBJETIVOS DE DIAGNOSTICO GENERALES ESPECIFICOS Analizar la situación actual de los 1. Establecer una clasificación de los sistemas financieros de apoyo del Banco sistemas actuales con base en su Nacional de Costa Rica para determinar el importancia para el negocio. ciclo de vida de las plataformas de desarrollo actuales. 2. Ubicar a los sistemas financieros de apoyo de acuerdo con esa clasificación. 3. Identificar la funcionalidad de cada uno de los sistemas clasificados. 4. Establecer el grado de reutilización de la funcionalidad identificada. 5. Analizar el modelo de arquitectura corporativa y el ciclo de vida de las plataformas actuales 28 OBJETIVOS DE PROPUESTA GENERALES Recomendar un ESPECIFICOS proceso gradual de 1. Establecer la estrategia de introducción y consolidación de los convergencia conceptos de SOA en el desarrollo de sistemas con base en la clasificación sistemas de la institución anterior y el grado de reutilización que tecnológica de los presenta su funcionalidad. 2. Recomendar un plan de acción, según corresponda, para cada uno de los dominios tecnológicos de la institución. 3. Recomendar sistemas apropiados para iniciar el tecnológica. ciclo de convergencia 29 3.3. Matriz de operacionalización de variables Variables Definición Conceptual Definición Operacional Indicadores Redundancia funcional Transacciones que residen en un mismo sistema central de la institución que realizan la misma funcionalidad Cantidad actual transacciones para funcionalidad Promedio de redundancia funcional Islas tecnológicas Sistema o plataforma que de acuerdo con las necesidades identificadas, se ha visto en la necesidad de crecer de una manera aislada diseñando su propia lógica para su operación Seleccionar un subconjunto de la funcionalidad más común en los sistemas financieros de apoyo de la institución Analizar las transacciones que realizan esta función. Identificar la presencia de mecanismos propietarios para llevar a cabo la funcionalidad requerida. Segmentos funcionales Dominios tecnológicos Agrupación de sistemas, utilizando como criterio el objetivo que persiguen, para determinar los segmentos donde se ha enfocado la institución. Plataformas de desarrollo utilizadas para la creación y operación de los sistemas del Banco. Cantidad de cada sistema BackEnd. Cantidad de comunicación sistema Instrumentos de recolección de datos de Cuestionario cada conexiones de Cuestionario con sistemas tecnologías de utilizadas por Se debe inventariar la Número de sistemas por área Cuestionario funcionalidad principal para identificada cada sistema operacional y de Porcentaje del total que representa el servicio directo al apoyo. cliente en canales de distribución Identificar las diferentes Número entero de plataformas Cuestionario plataformas de desarrollo diferentes de desarrollo que los sistemas utilizadas en la institución que soportan financieros de apoyo. se han originado en el tiempo. 30 Costos de operación Costo relacionado a la y mantenimiento operación normal y al mantenimiento (nuevas funcionalidades) de un sistema Vida útil de los Tiempo estimado en el cual sistemas un determinado sistema pasará a etapa de obsolescencia Implementación de De acuerdo con el criterio de un nuevo servicio expertos, el tiempo promedio que toma desarrollar una nueva funcionalidad en la institución Penetración de la Presencia e impacto de la reutilización a través reutilización e integración de de la integración de aplicaciones en la institución aplicaciones Diferencia de versión entre el software actual y la última del mercado Diferencia promedio de versión en los productos tecnológicos utilizados Costo de operación y Cuestionario mantenimiento por sistema Costo total de operación y mantenimiento de los sistemas. Determinar los costos de operación y mantenimiento que significa para la institución la operación de los sistemas descritos. Identificar la vida útil de cada Cantidad de sistemas que han Cuestionario sistema financiero de apoyo de superado su vida útil Variancia entre la vida útil la institución. estimada y el tiempo actual de producción promedio de Cuestionario Consultar con el dueño o Tiempo administrador del sistema el implementación de servicios. promedio de tiempo promedio para la Tiempo implementación un nuevo implementación de servicios módulo de complejidad por sistema normal. de estrategias Cuestionario Analizar la presencia de una Presencia iniciativa dirigida a la formales de reutilización e reutilización y la integración. integración de aplicaciones. de sistemas Una vez determinada su Cantidad presencia se debe identificar el incorporados a la iniciativa beneficio de esta iniciativa Cantidad de transacciones reutilizadas para la institución 31 3.4. Sujetos y fuentes de información 3.4.1. Definición de población Se entiende por población un conjunto de elementos que pueden ser desde personas, animales, empresas, organizaciones, objetos y otros. Así con el estudio se pretende conocer las características del conjunto y generalizar los resultados o conclusiones que se obtengan. Una población posee la característica de ser finita o infinita. La población finita tiene un número limitado de elementos, mientras que una población infinita la forman un número ilimitado. Como existen sujetos encargados de cada uno de los sistemas financieros de la institución, y este número es limitado, se procedió a definir como la siguiente población finita: “los sistemas financieros que apoyan la gestión del Banco Nacional de Costa Rica”. Esta definición excluye claramente a sistemas de apoyo administrativo y logístico, pues la estrategia de la administración de la institución es la compra de este tipo de sistemas. A continuación se detalla cada uno de los 23 sistemas que se considerarán en esta investigación: Consecutivo Descripción Arquitectura 1 ARCHIVO VIRTUAL N capas 2 BACOSI (imágenes de cheques) N capas 3 BN CONECTIVIDAD Cliente Servidor 4 BN BANCA TELEFONICA Monolítico 5 BN PAGUESE N capas 6 BN SINPE N capas 7 BN VEP N capas 8 BN VIAJES N capas / Cliente Servidor 9 BUC N capas 10 CALL CENTER Cliente Servidor 32 11 DDO N capas 12 FINESSE Cliente Servidor 13 FIRMAS Cliente Servidor 14 INTERNET BANKING CORPORATIVO N capas 15 INTERNET BANKING PERSONAL N capas 16 MOPAA Cliente Servidor 17 PIA N capas 18 SFB Monolítico 19 SARCLI Cliente Servidor 20 SETBN Monolítico 21 SIACC Cliente Servidor 22 SISAE N capas 23 TARJETAS DE CREDITO Cliente Servidor Cuadro #1. Sistemas financieros del Banco Nacional Fuente: Dirección Desarrollo de Sistemas, BNCR 3.5. Instrumentos de recolección de datos Debido a que en la Dirección Corporativa de Tecnología y Operaciones existen encargados técnicos de cada uno de los sistemas en la población y que la cantidad de información por obtener de los ingenieros es similar, se utilizó como instrumento de recolección de datos el cuestionario, el cual fue planteado con preguntas muy generales al principio, hasta otras muy concretas al final. El cuestionario se aplicó a los funcionarios a partir de la tercera semana de octubre de año 2004. Para su aplicación se procedió a realizar una breve explicación del objetivo del estudio y de la importancia que tiene contestar adecuadamente cada pregunta. El último cuestionario fue entregado por los ingenieros de la Institución en la tercera semana de noviembre del año 2004. 33 3.6. Alcances y limitaciones de la investigación 3.6.1. Alcances La presente investigación plantea como alcance realizar un diagnóstico de la situación actual de los sistemas financieros que apoyan la gestión del Banco Nacional. Con base en ese diagnóstico y la teoría planteada por la industria, se debe determinar la factibilidad de aplicar una Arquitectura Orientada a Servicios en la Institución y una propuesta de estrategia para su adopción. 3.6.2. Limitaciones • En esta investigación no se considera la resolución de aspectos tecnológicos para implementar soluciones particulares, por cuanto este aspecto forma parte de un plan táctico y operativo más detallado. • Una gran cantidad de información sensible de la Institución no será difundida en este documento, por cuanto violenta las políticas de Seguridad Informática de la Institución. • El planteamiento de las Arquitecturas Orientadas a Servicios es reciente en la industria, por lo cual en Costa Rica no se conoce algún caso de éxito para tomar como referencia práctica. Por esta razón, el enfoque de esta investigación tiene un alto elemento teórico. CAPITULO IV ANALISIS E INTERPRETACION DE RESULTADOS 35 4.1. Análisis de la información A continuación se detallan los criterios más importantes que se infieren una vez realizada la recopilación de los datos, los cuales permiten examinar en detalle las variables planteadas con el objetivo de identificar características importantes acerca de la situación actual de los sistemas financieros de apoyo que operan en la institución. 4.1.1. Redundancia funcional El crecimiento de los sistemas transaccionales del banco ha sido, históricamente, una secuencia de buenas intenciones que han originado excelente calidad funcional de cara al usuario final, pero con un alto porcentaje de redundancia para las transacciones que son más comunes en la institución. Como se muestra en el gráfico #1, una consulta de cuentas relacionadas a una identificación presenta ocho diferentes opciones para escoger, cada una basada en las necesidades particulares del sistema que la solicitó. Desde el punto de vista de integración lo ideal es que se cuente con una definición clara y universal de esta consulta, la cual sea publicada como un servicio que satisfaga las necesidades de todos los sistemas que la utilizan. Para que este planteamiento de integración sea válido, el middleware debe identificar claramente que sistema “cliente” requiere de sus servicios y, de acuerdo con las necesidades descritas por este sistema, cómo debe comportarse y retornar la información suficiente para que se cumpla el objetivo inicial de la transacción. Un ejemplo claro de esta problemática, amparado en la información recolectada, es el caso de la transferencia de fondos. Cuando ha sido necesario habilitar la transferencia entre monedas nuevas como el Euro, se ha necesitado modificar al menos cinco diferentes programas que brindan esta solución en el sistema central, modificar la interfase de los sistemas con dicho sistema y adicionalmente modificar la capa de presentación. 36 Banco Nacional de Costa Rica Funcionalidad común en sistemas financieros Diciembre 2004 a) Cuentas cliente b) Tarjeta crédito c) Préstamos de un cliente d) Recibos pendientes e) Saldo de cuenta f) Movimiento de cuenta g) Transferencia de fondos h) Pago de servicios i) Pago tarjeta crédito j) Pago préstamo k) Avance efectivo l) Aporte BN-Vital m) Inversión BN-Fondos 0 2 4 6 8 Gráfico #3: Funcionalidad común entre sistemas financieros del banco. Fuente: Elaboración propia A la luz de estos datos se encuentra que para cada funcionalidad común identificada se tiene como mínimo tres componentes tecnológicos que la resuelven y un máximo de ocho, lo cual indica una fuerte tasa de redundancia. 4.1.2. Islas tecnológicas Producto de la investigación se ha identificado una gran cantidad de mecanismos para comunicarse con los sistemas más importantes de la institución, lo cual se agrava cuando se toma en cuenta que el SFB, reconocido como el sistema más importante en la institución, cuenta con 5 formas diferentes de comunicación y al menos 14 interfaces formales identificadas (no se tomó en cuenta para el estudio el intercambio de información asincrónico, como el envío de archivos mediante FTP). 37 De acuerdo con el gráfico #2, se interpreta que el modelo de comunicación más utilizado en la institución lo representan los programas “sockets” basados sobre TCP/IP, esto supone un alto esfuerzo de integración con el sistema central, debido a que tradicionalmente estos programas se han desarrollado a lo interno de la institución de forma “artesanal”. Desde el punto de vista de la administración esta información se traduce en un aumento en los costos de construcción de los sistemas y un periodo de entrega más largo. Banco Nacional de Costa Rica Modelos de comunicación con SFB Diciembre 2004 21% Socket MCSII 7% 51% COMS PIA 21% Gráfico #4: Modelos de comunicación con el Sistema Financiero Bancario. Fuente: Elaboración propia Los sistemas de colocación del banco (SIACC y Tarjeta de Crédito) y el sistema central de convenios se encuentran implementados utilizando bases de datos relacionales, sin embargo el mecanismo por el cual los sistemas cliente establecen comunicación con los mismos tampoco está regulado. Dentro de la variedad de posibilidades de comunicación que existen actualmente se encuentran consultas directas a la base de datos al emplear lenguaje SQL, consumo de procedimientos almacenados implementados en su mayoría con necesidades particulares del sistema que lo solicitó, programas de tipo “socket” de comunicación para envío de tramas y hasta la comunicación con la Plataforma de Integración de Aplicaciones mediante el concepto de middleware. 38 Como se puede analizar de los datos presentados en el gráfico #3, existen alrededor de 8 interfases que se establecen mediante “socket”, 21 establecidas mediante procedimientos almacenados y 6 consultas directas a la base de datos. Este caso y sus consecuencias son similares a los expuestos para el SFB, desde el punto de vista de incremento en tiempos de entrega y costos, con el agravante de que si existen consultas directas a la base de datos, la aplicación depende 100% de esta capa para su ejecución. Banco Nacional de Costa Rica Modelos utilizados por las aplicaciones Front End para comunicarse con sistemas centrales Diciembre 2004 10 9 8 7 6 5 4 3 2 1 0 10 Tarjetas Crédito Convenios 6 5 3 3 3 2 2 2 2 1 0 SP Consulta PIA Socket Gráfico #5: Modelos utilizados para la comunicación front end – Sistemas Centrales. Fuente: Elaboración propia 4.1.3. Segmentos funcionales Debido a la gran cantidad de servicios que presta la institución, y al crecimiento histórico que ha experimentado, se han desarrollado una gran cantidad de sistemas centrales que administran y regulan la prestación de cada servicio en particular. Adicionalmente se han implementado sistemas para la atención del cliente, utilizando la mayoría de canales de distribución para una institución financiera tales como Internet, cajeros automáticos, banca por teléfono (IVR), ventanilla, entre otros. 39 Proporcionalmente, la institución cuenta con un 26% de sus sistemas financieros de apoyo enfocados a la atención del cliente en forma directa y un 35% de esos sistemas enfocados a la persistencia de datos de cada uno de los servicios en particular, tal y como se puede visualizar en el gráfico #4. Si se toma en cuenta que los sistemas para apoyo operativo y el middleware apoyan la gestión entre los sistemas cliente y los sistemas centrales, se puede inferir que un 91% de los sistemas financieros están enfocados a la atención del cliente. Banco Nacional de Costa Rica Sistemas financieros por categoría Diciembre 2004 Canal de distribución 4% 9% 26% Apoyo operativo Sistema central Middleware 35% 26% Apoyo a toma de decisiones Gráfico #6: Categorías de los sistemas financieros en el BNCR. Fuente: Elaboración propia 40 4.1.4. Dominios tecnológicos A través del tiempo la institución ha implementado sus servicios financieros haciendo uso de diversas plataformas tecnológicas, de acuerdo con la necesidad imperante en ese momento y las posibilidades dadas por la misma industria. Como los dominios aplicativos pueden ser distintos a los dominios de base de datos que permiten la operación del sistema, se ha dividido esta variable en dominios para desarrollo de aplicaciones y dominios para persistencia de datos. Para el desarrollo de aplicaciones se identificaron 5 grandes plataformas de desarrollo de software, lo cual indica una amplia diversidad de conocimiento necesario para el mantenimiento de la plataforma tecnológica del banco y un elevado costo por concepto de licenciamiento, soporte y otros. Como se observa en el gráfico #5 existe una amplia penetración de las plataformas Microsoft y Oracle para desarrollo de aplicaciones; sin embargo el SFB está desarrollado en plataforma Unisys en el lenguaje de programación llamado Linc; razón por la cual a pesar que representa un 12% del total, su implementación es vital para la institución. Banco Nacional de Costa Rica Dominios para desarrollo de aplicaciones Diciembre 2004 8% 12% 12% 20% Unisys Sybase Microsoft Oracle Siebel 48% Gráfico #7: Dominios para el desarrollo de aplicaciones. Fuente: Elaboración propia 41 En cuanto a la persistencia de datos se identificaron 3 grandes plataformas para implementar esta administración. De acuerdo con lo expuesto en el gráfico #6 existe una amplia penetración de las plataformas Microsoft y Oracle, pero aplica la misma observación que se realizó para la plataforma Unisys en el caso anterior. Banco Nacional de Costa Rica Dominios para administrar bases de datos Diciembre 2004 26% 13% 0% Unisys Sybase Microsoft 61% Oracle Gráfico #8: Dominios para administrar bases de datos. Fuente: Elaboración propia 4.1.5. Costos de operación y mantenimiento. En la medición de esta variable se deben destacar algunas revelaciones importantes. Por ejemplo, los expertos consideraron que un 83% de los sistemas analizados presentan costos de operación y mantenimiento de menos de US $100,000 anuales. Este porcentaje es representado por 19 sistemas, los cuales a pesar de su costo relativamente bajo requieren de recursos especializados para el mantenimiento de la tecnología que poseen, tal y como se analizó en lo que respecta a las islas tecnológicas. Tomando como referencia los costos estimados por los expertos, y haciendo una proyección conservadora de los costos, la cual consiste en tomar en cuenta para todos la cifra intermedia entre el límite inferior y superior del rango indicado, se obtiene aproximadamente un costo de US $2,300,000.00, equivalente a más de mil millones de colones, inversión que indudablemente la institución debe realizar de la mejor manera, para garantizar su permanencia como líder del mercado. 42 Banco Nacional de Costa Rica Costo de operación y mantenimiento de los sistemas Diciembre 2004 Muy bajo (Menos de 25,000) 2, 9% 1, 4% Bajo (25,000 a 99,999) 1, 4% 9, 39% Medio (100,000 a 249,999) Alto (250,000 a 500,000) Muy Alto (Más de 500,000) 10, 44% Gráfico #9: Costo de operación y mantenimiento de los sistemas financieros. Fuente: Elaboración propia 4.1.6. Vida útil de los sistemas. La medición de esta variable se realizó utilizando como punto de partida los dominios tecnológicos descritos anteriormente. El aspecto más importante que se necesita describir es la situación actual de los sistemas financieros en relación con el software sobre el cual han sido desarrollados; y de esta manera identificar la existencia de algún riesgo relacionado con versiones obsoletas. Como el objetivo de la investigación es proponer una estrategia fundamentada en datos reales, se consideraron los elementos que permitieran tener un escenario completo a un alto nivel. De acuerdo con las estimaciones de los expertos en cada sistema, un 82.5% de los sistemas fueron diseñados para contar con una vida útil superior a los 4 años. No obstante es necesario destacar que; del total de los sistemas, un 40% han alcanzado el umbral de su vida útil para el año 2004. Como se observa en el gráfico #8, para el año 2005 otro 22% de los sistemas alcanzará su umbral, por lo cual se puede deducir que a finales de ese año un 62% de los sistemas de la institución se encontrarán al menos cerca del final de su vida útil. 43 Banco Nacional de Costa Rica Año de entrada al umbral de vida útil estimada de los sistemas financieros Diciembre 2004 4% 4% 2004 o inferior 40% 30% 2005 2006 2007 22% 2008 Gráfico #10: Año de entrada al umbral de vida útil de los sistemas financieros. Fuente: Elaboración propia. Otro aspecto interesante en este análisis tiene que ver con la tecnología que hace posible el funcionamiento de estos sistemas. Al respecto es importante mencionar en primera instancia el caso de las versiones de Oracle que soportan la ejecución de algunos de los sistemas de misión crítica de la institución. Como se observa en el gráfico #9, las versiones utilizadas en producción para el funcionamiento de los sistemas son muy inferiores a las versiones recomendadas por Oracle, como 9i ó 10g. Banco Nacional de Costa Rica Distribución de versiones de Oracle en los sistemas financieros Diciembre 2004 17% 7.3.4 8.1.6 50% 8.1.7.4 33% Gráfico #11: Distribución de versiones de Oracle utilizadas en sistemas financieros. Fuente: Elaboración propia. 44 Cuando se analiza la situación de los sistemas financieros que utilizan la plataforma Microsoft SQL Server para su operación, el comportamiento difiere de la plataforma Oracle en cuanto a que la mayoría utiliza la última versión publicada por el proveedor. Como se puede observar en el gráfico #10, los sistemas que no utilizan la última versión al menos emplean la anterior y esto significa que todas las versiones de este producto en la institución son plataformas soportadas por Microsoft Corporation. Banco Nacional de Costa Rica Distribución de versiones de SQL Server en los sistemas financieros Diciembre 2004 43% 7.0 2000 57% Gráfico #12: Versiones de Microsoft SQL Server utilizadas en sistemas financieros. Fuente: Elaboración propia. Es de suma importancia destacar que los sistemas que han pasado el umbral de su vida útil y que son un riesgo potencial, a pesar de la estabilidad demostrada durante años de operación, son de los más importantes para la operación de la institución. En el gráfico #11 se muestran sistemas centrales de la trascendencia del SFB o tarjeta de crédito y también canales de distribución como el sistema de cajas, banca por Internet, cajeros automáticos y banca telefónica superando el umbral de su vida útil, algunos de ellos antes del año 2004. Otro dato relevante para la institución es que la Plataforma de Integración de Aplicaciones; parte esencial del middleware de la institución, es de reciente implantación y no entrará al umbral de su vida útil sino hasta el año 2007. 45 Banco Nacional de Costa Rica Sistemas financieros que han alcanzado el umbral de vida útil Diciembre 2004 2004 2002 2000 Año umbral de vida útil 1998 1996 1994 1992 1990 1988 SFB Tarjet a de crédito BN-Int ernet Banking Corporat ivo BN-Banca Telef ónica BNConectividad BN-Int ernet Banking Sistema de cajeros (Finesse) SETBN Firmas Gráfico #13: Sistemas financieros que han alcanzado el umbral de vida útil. Fuente: Elaboración propia. 4.1.7. Implementación de un nuevo servicio. Para analizar esta variable se utilizó como parámetro el desarrollo de un nuevo módulo para cada sistema en estudio; entendiendo la palabra módulo como un conjunto de nuevas funcionalidades relacionadas. Este aspecto presenta una gran ventaja desde el punto de vista de análisis de datos, pues la comprensión del tamaño y la complejidad de cada módulo están relacionadas con el sistema al que pertenece. De acuerdo con los datos analizados en esta investigación, se ha determinado que aproximadamente un 74% de los sistemas tienen prevista una duración de más de un mes para construir un nuevo módulo, tal como está representado en el gráfico #12. A simple vista este dato parece no tener mucha relevancia, sin embargo si se toma en cuenta que la medición considera sistemas centrales y canales, además normalmente los servicios que se publican implican relación entre ellos; se podrá dimensionar lo difícil de obtener que el desarrollo se lleve a cabo en la misma línea de tiempo para diferentes sistemas. Este aspecto y la complejidad de implantar los cambios realizados, indica que el problema no se limita a la construcción de los servicios en sí, sino también a la reutilización y la integración que se haga entre ellos. 46 Banco Nacional de Costa Rica Tiempo promedio para implementar un nuevo módulo en sistemas financieros Diciembre 2004 Muy bajo (2 semanas) 9% 17% Bajo (2-4 semanas) 26% 9% Normal (1-2 Meses) Alto (2-3 Meses) Muy Alto (+ 3 Meses) 39% Gráfico #14: Tiempo estimado para implementar un nuevo módulo en los sistemas. Fuente: Elaboración propia 4.1.8. Penetración de reutilización mediante la integración de aplicaciones Desde el año 2001 la Dirección de Desarrollo de Sistemas ha impulsado y fortalecido el tema de la Integración de Aplicaciones, esfuerzos que se tradujeron en realidad en el año 2003 con la puesta en producción de la Plataforma de Integración de Aplicaciones. La plataforma ha permitido a la Institución solventar una serie de problemas presentados en sus sistemas de banca por Internet, sin embargo a la fecha sólo este sistema utiliza formalmente los lineamientos definidos por esta iniciativa y también es el único sistema integrado en dicha plataforma. Ello significa que existe un amplio potencial de crecimiento en dicha tecnología que está siendo subutilizado y que podría brindar mayor valor agregado de cara a los conceptos de reutilización e integración. Por esta razón no existe hasta el momento una transacción reutilizada entre varios sistemas, pues solamente el caso mencionado se encuentra alineado a la plataforma. 47 4.2. Interpretación de resultados 4.2.1. Diagnóstico basado en la observación. De acuerdo con esta investigación se puede indicar que el Banco Nacional posee una arquitectura donde predominan las islas tecnológicas, las cuales a su vez han generado una gran cantidad de mecanismos para comunicarse entre sí. Estas interfaces de comunicación no están reguladas y mientras no se aplique una medida correctiva al respecto, seguirán creciendo de la misma manera. Esta tendencia se evidencia claramente en las fechas de implantación de los sistemas financieros, las cuales revelan que desde la creación del SFB en el año 1990 hasta la implementación de los nuevos sistemas del año 2004, no se ha planteado una solución efectiva a esta problemática. Producto de esta proliferación de islas tecnológicas, y de la misma presión del negocio, el banco ha necesitado crecer en este modelo arquitectónico y fortalecerlo para garantizar aspectos tan importantes como la continuidad del negocio y el servicio al cliente; lo cual ha generado que se implementen múltiples piezas de código que realizan una función similar incluso dentro de un mismo sistema central. Esta redundancia funcional ocurre cuando un sistema cliente requiere una transacción previamente desarrollada para otro, pero con algunos datos de más o un comportamiento particular en determinada circunstancia; en ese momento la decisión más rápida y sencilla de implementar es la creación de una nueva transacción. Con el paso del tiempo esta situación ha dificultado el mantenimiento de los sistemas centrales de la Institución y la implementación de nuevos servicios, pues para su creación normalmente requiere un desarrollo completo en el sistema central. Como se mencionó en el apartado 2.1 del marco teórico, parte de la estrategia de la Gerencia General de la Institución es precisamente adoptar las mejores prácticas promovidas por la industria, con el objetivo de eliminar aplicaciones e interfaces. Si se logra concretar una propuesta que impulse la nueva arquitectura, se avanza en la reducción de interfaces entre aplicaciones y complejidad tecnológica, puesto que de 48 acuerdo con el apartado 2.5.2 del marco teórico, uno de los beneficios que provee una Arquitectura Orientada a Servicios es precisamente el impulso que, por sus propias características, este tipo de patrones brindan al concepto de reutilización. El tema de gobernabilidad de TI es otro aspecto complejo por considerar en la situación actual de la Institución, porque cuando existe una regla de negocio publicada de distintas maneras en los sistemas centrales, y con el agravante de ser consumidas mediante distintas interfaces, se genera un gran esfuerzo técnico y administrativo para mantener y operar esta arquitectura. Mediante la implementación y el fortalecimiento de las mejores prácticas en cuanto a la reutilización se espera que SOA brinde dentro de sus beneficios la reducción de la complejidad de la administración y gobierno de TI. Al observar los dominios tecnológicos que han surgido en la organización se puede concluir que a nivel de sistemas centrales existen tres tecnologías predominantes con una amplia penetración en la estructura operativa de la Institución. También se determinó que los sistemas centrales basados en la plataforma Unisys han consumido su vida útil hace mucho tiempo; y debido a su tecnología “mainframe” cuentan con un alto costo de operación, desarrollo de nuevas funcionalidades y licenciamiento. Los sistemas centrales basados en plataformas Oracle han mostrado un comportamiento anormal con respecto a la versión utilizada del producto. En el caso del Sistema de Tarjeta de Crédito cuenta con la versión 7.3.4, la cual ya no es cubierta por el fabricante del software en caso de requerir soporte técnico. En general, de acuerdo con la investigación realizada se determinó que al concluir el año 2005 al menos un 62% de los sistemas financieros de la Institución habrán agotado su vida útil; y si se toma en cuenta que la plataforma tecnológica sobre la cual fueron desarrollados también presenta problemas de actualización, se podrá observar la necesidad de llevar a cabo una acción inmediata con estos sistemas, especialmente los de misión crítica. 49 4.2.2. Oportunidad de impulsar SOA. Este conjunto de hechos demostrados hacen que la adopción de SOA adquiera mayor valor al considerar el apartado 2.6 del marco teórico “Elementos generales para adoptar SOA”. En ese apartado se mencionó la importancia de mantener el valor de los activos existentes para no provocar una mayor inversión; por lo cual de acuerdo con la teoría, estos sistemas son casos adecuados para iniciar un ciclo de convergencia tecnológica en el cual se publique la funcionalidad de cada sistema central como servicios en la nueva arquitectura, mientras se inicia el proceso de sustitución paulatina de la plataforma tecnológica sobre la cual operan. Otro resultado de la investigación fue observar que, a pesar de los múltiples esfuerzos llevados a cabo por la Dirección Corporativa de Tecnología y Operaciones, no se ha logrado la consolidación definitiva de la utilización de la Plataforma de Integración de Aplicaciones como el corazón transaccional de la Institución. A pesar de la estabilidad y rendimiento demostrado durante más de un año, en este momento solamente se encuentra integrado el sistema de E-Banking dicha plataforma. Muchos de los principios importantes que este sistema busca consolidar en la organización (como reutilización, entre otros) no han logrado la penetración requerida, de manera que problemas mencionados anteriormente como la redundancia funcional, no hallan una respuesta oportuna en esta implementación tecnológica. Finalmente se identificó una iniciativa de la DCTO desde el punto de vista tecnológico para publicar y consumir Web Services, denominado “Conector Universal”. Este componente de software ha sido conceptualizado como una capa de comunicaciones intermedia entre la Plataforma de Integración de Aplicaciones y las organizaciones externas al banco. Esta interface será implementada mediante la utilización de estándares de la industria para el catálogo y publicación de los servicios. De acuerdo con BNCR (2004) “El conector universal provee un modelo de integración de aplicaciones más centralizado, donde un hub de integración se coloca entre los sistemas del Banco y los de sus socios de negocios. 50 La diferencia con el escenario actual está, en que cada sistema no necesita de una nueva conexión construida a su medida, sino que todos los sistemas externos utilizarán un único punto de entrada a los sistemas del Banco. Esta conexión, estará basada en estándares de la industria (como XML, SOAP, WSDL) lo que implica que la interconexión con aplicaciones en otros sistemas operativos, lenguajes de programación, manejo de excepciones, manejo de errores y demás, es de muy bajo costo de mantenimiento”. Gráfico #15: Arquitectura conceptual del Conector Universal. Fuente: Banco Nacional de Costa Rica. CAPITULO V CONCLUSIONES Y RECOMENDACIONES 52 5.1. Conclusiones La investigación realizada ha demostrado que la Dirección Corporativa de Tecnología y Operaciones del Banco Nacional cuenta con una gran cantidad de elementos por resolver en su infraestructura tecnológica para el año 2005, y de esta manera garantizar que el banco está preparado para los retos que la industria visualiza para el año 2006. A pesar de contar con un alto porcentaje de sistemas enfocados al cliente, los sistemas financieros más importantes de la institución son los sistemas centrales que administran los productos y servicios básicos para su operación; entre estos destacan los sistemas de cuentas corrientes, ahorros, inversiones, tarjetas de crédito, préstamos y pago de servicios diversos. Estos sistemas se encuentran en producción hace varios años y han mostrado un excelente desempeño y gran estabilidad, sin embargo poseen características como un alto costo de operación y versiones de software declaradas obsoletas por los fabricantes, las cuales hacen necesaria una estrategia para alinearlos a los objetivos planteados por la Gerencia General. En este caso se menciona alinear los sistemas en lugar de sustituirlos, pues también se ha logrado concluir que los dominios tecnológicos presentes en la Institución están bien definidos y estables. De acuerdo con lo estudiado en la teoría, no es recomendable desestabilizar la operación normal mediante la sustitución inmediata de los activos existentes, sino que se debe plantear una solución que permita realizar tácticamente proyectos incrementales que mejoren, o a largo plazo, sustituyan el modelo aplicativo actual. Se ha logrado determinar la necesidad de disminuir la redundancia funcional y las islas tecnológicas presentes en la plataforma tecnológica de la Institución, pues estos factores dificultan el desarrollo de nuevos servicios y su implantación en producción, mientras que aumentan los costos de mantenimiento y operación. 53 La tecnología por sí misma no es suficiente para lograr los cambios requeridos en la Institución; esto queda demostrado cuando se toma en cuenta que la implementación y funcionamiento de un middleware de excelentes características técnicas como la Plataforma de Integración de Aplicaciones, no ha logrado solventar en dos años los problemas descritos en esta investigación. Por el contrario, si no existe una estrategia clara para cambiar el modelo arquitectónico del banco, la PIA presentará a corto plazo los mismos problemas que aquejan al resto de los sistemas. La implementación del Conector Universal, a pesar de encontrarse basado 100% en Web Services, no acerca por sí sola a la organización a una Arquitectura Orientada a Servicios, pues está claro desde el punto de vista de la industria que SOA no se puede entender como el simple uso de Web Services. La situación actual del Banco Nacional de Costa Rica es propicia para aprovechar los beneficios que brinda la adopción de una Arquitectura Orientada a Servicios para reducir el impacto inmediato de un cambio de tecnologías y brindar el tiempo necesario para continuar con el ciclo de convergencia. En este caso, plantear una estrategia que permita la utilización y posicionamiento de la Plataforma de Integración de Aplicaciones y la implementación del concepto de Conector Universal serán determinantes para obtener el éxito en esta iniciativa. 54 5.2. Recomendaciones 5.2.1. Estrategia de adopción de SOA en el Banco Nacional Una estrategia es una visión de largo plazo que tiene como objetivo organizar la toma de decisiones, estableciendo el orden de prioridades en que se deben evaluar las posibles soluciones según los objetivos estratégicos, los cuales deben ser medidos con la obtención de metas también llamadas indicadores de logro. El objetivo de esta estrategia es proporcionar al Banco Nacional de Costa Rica una adecuada preparación para los retos tecnológicos que se presentarán en el mercado financiero y la industria de la tecnología a largo plazo, mediante la adopción de una Arquitectura Orientada a Servicios, la cual permita eliminar aplicaciones e interfaces, proporcione información en tiempo real, reduzca los costos de operación de la infraestructura y disminuya los tiempos de entrega de productos y servicios. 5.2.2. A la Gerencia General del Banco Nacional de Costa Rica • Incorporar el tema de adopción de una Arquitectura Orientada a Servicios como parte del Plan Maestro de Implementación del Banco Nacional para los años 2005, 2006 y 2007; con el fin de definir una alta prioridad al proceso. • Definir el comité de Arquitectura del Negocio, encargado de la ejecución de los proyectos necesarios para la adopción de SOA en la institución. • Promover y patrocinar la ejecución de los proyectos propuestos por la DCTO, para alcanzar los objetivos planteados en torno a la reducción de costos, aplicaciones y desarrollos hechos en casa. • Llevar a cabo las medidas administrativas pertinentes para que la organización se identifique plenamente con el proceso. 55 5.2.3. A la Dirección Corporativa de Tecnología y Operaciones. • La DCTO debe plantear dentro de su Plan Estratégico de Tecnologías de Información (PETI) la adopción de una Arquitectura Orientada a Servicios como un medio para alcanzar los objetivos planteados por la Gerencia. • Fomentar el “empowerment” al negocio, para que éste se involucre de lleno en el proceso de adopción de la nueva arquitectura; desde el punto de vista de patrocinio como la ejecución misma de proyectos que la promuevan. • Crear un comité de Arquitectura de TI que trabaje bajo la dirección del comité de Arquitectura del Negocio. Este comité debe velar por el cumplimiento de las metas fijadas para el proceso de adopción de SOA a nivel de TI y garantizar que los proyectos ejecutados por esta Dirección, generen un verdadero valor agregado al negocio. • Garantizar la ejecución correcta de proyectos de infraestructura que aseguren la correcta operación de la SOA del Banco Nacional y cumplimiento de contratos de servicios con proveedores. • Divulgar en todos los niveles de la jerarquía organizacional la nueva arquitectura y fomentar el desarrollo de iniciativas que la utilicen. • Impedir en la medida de lo posible el crecimiento de la infraestructura de mainframes y sistemas centrales hasta tanto se tenga claridad de los pasos por seguir con esos sistemas. • Enfocar la inversión de recursos internos en los sistemas financieros de la Institución. Sistemas de apoyo logístico u operativo pueden ser adquiridos y adaptados, de manera que el enfoque de la Dirección sea exclusivamente hacia el negocio bancario. 56 5.2.4. A la Dirección Desarrollo de Sistemas de Información. • La DDSI debe coordinar el correcto crecimiento de los sistemas que tiene actualmente a su cargo, considerando el tema de SOA de antemano, de manera que los esfuerzos realizados en el modelo arquitectónico actual sean estrictamente necesarios. • Ejecutar proyectos tecnológicos que busquen la adopción y consolidación de SOA en la organización. • Apoyar fuertemente los proyectos institucionales los cuales busquen la transformación del negocio y de TI, de manera que se asegure al banco que los proyectos están siendo orientados en todo momento donde deben. • Fortalecer las iniciativas tecnológicas alineadas a los estándares de la industria, tales como PIA y el Conector Universal. • Organizar un plan de permanente capacitación para todas las áreas del Banco Nacional en temas relevantes para la nueva arquitectura. • Dictar lineamientos y estándares acordes a la nueva arquitectura, así como eliminar los desarrollos sobre programas tipo socket y otros mecanismos artesanales de comunicación. • Garantizar la penetración y utilización de las mejores prácticas para el desarrollo y reutilización del software, tanto del desarrollado sobre la nueva arquitectura como en los modelos de desarrollo tradicional. CAPITULO VI PROPUESTA ESTRATEGIA DE CONVERGENCIA TECNOLÓGICA 58 6.1. Identificación de la propuesta Una vez analizada la situación actual de los sistemas del Banco Nacional de Costa Rica y emitidas las conclusiones y recomendaciones que esta investigación ha originado; se propone la siguiente estrategia de implementación de una Arquitectura Orientada a Servicios en la Institución. El enfoque por seguir para definir la estrategia de implementación es el siguiente: • Identificar las áreas estratégicas que debe organizar el Banco para la implementación del nuevo concepto arquitectónico. • Definir objetivos de cada una de las áreas de acuerdo con el marco teórico. • Definir la implementación de los objetivos de cada área mediante la ejecución de actividades originadas por esta iniciativa u otras que se encuentran en ejecución. • Agrupar y priorizar los proyectos mediante un portafolio de proyectos, cuya ejecución exitosa debe ser responsabilidad del grupo de Arquitectura Corporativa de la Institución. 6.2. Identificación de áreas estratégicas 6.2.1. Estrategia de negocios De acuerdo con el análisis llevado a cabo en la Institución; y conforme lo indica la teoría, el principal esfuerzo que se debe llevar a cabo gira en torno al nuevo enfoque centrado totalmente en los modelos de negocio; sin embargo este esfuerzo no se centraliza en los departamentos de TI sino que trasciende al plano estratégico de la organización. 59 El Banco Nacional necesita articular la estrategia de negocios mediante la identificación y categorización de los procesos críticos del negocio para formar un marco de trabajo para SOA. Una vez identificados los problemas del negocio se deben definir soluciones coherentes y repetitivas; es hasta este momento donde se piensa en una implementación mediante la incorporación de tecnología. La estrategia de negocios debe indicar claramente la visión del negocio con respecto a la prestación de servicios financieros, de manera que se posea certeza de los nichos de mercado en los que el banco desea incursionar, mantenerse o incluso retirarse. Una vez identificados esos sectores a nivel gerencial, se deben definir tácticamente los productos y servicios que se brindarán al cliente para garantizar un nivel de excelencia en el servicio. 6.2.2. Arquitectura El Banco Nacional debe implementar un marco de trabajo para su arquitectura que permita ensamblar componentes y servicios para una entrega rápida y dinámica de las soluciones tecnológicas que necesita el negocio. Es evidente que dentro del concepto de marco de trabajo están implícitos los patrones que soportan el nuevo modelo arquitectónico. Desde el punto de vista de SOA, la Plataforma de Integración de Aplicaciones debe ser fortalecida para transformar su enfoque netamente transaccional y convertirlo en una plataforma que soporte y exponga servicios, mediante la incorporación de los estándares de la industria para el análisis, diseño, construcción, publicación, descubrimiento y consumo de Web Services. Es importante indicar la necesidad de analizar este proceso de fortalecimiento basado en la plataforma tecnológica actual que soporta PIA, o bien determinar si para el negocio es preferible la incorporación de otros componentes que fortalezcan y complementen esta plataforma. Este análisis debe ser enfocado desde los puntos de vista estratégico, económico, operativo y técnico. 60 6.2.3. Proyectos y aplicaciones Paralelo al crecimiento de la nueva arquitectura, se debe vigilar que el desarrollo de nuevos proyectos y aplicaciones sean planificadas como servicios, desde el punto de vista conceptual. En otras palabras, las nuevas aplicaciones deben ser planteadas para ser utilizadas por todos los sectores del negocio, lo cual debe detener el crecimiento de la redundancia funcional y los mecanismos caseros para comunicar sistemas en la Institución. La Dirección Corporativa de Tecnología y Operaciones debe ser la encargada de promover esta iniciativa y de provocar la disminución de redundancia funcional en la Institución, mediante iniciativas que tácticamente permitan una sustitución incremental de los principales problemas de la Institución. 6.2.4. Organización y gobierno Los procesos mencionados hacen necesaria la definición de roles y responsabilidades en torno a la adopción de la nueva arquitectura. Por esta razón es necesaria la creación de un comité de Arquitectura del Negocio, compuesto por funcionarios que posean un alto dominio del negocio bancario y con una visión clara del rumbo que deben tomar las iniciativas financieras de la Institución. Este comité será el responsable de definir los roles y responsabilidades de cada dependencia funcional involucrada en el proceso; además de orquestar todos los esfuerzos que lleva a cabo la organización, de manera tal que las iniciativas de TI se encuentren apoyando oportunamente al negocio financiero del banco. Se sugiere que este comité cuente con un representante a nivel ejecutivo de las siguientes áreas funcionales: - Proyectos institucionales. - Banca electrónica. - Banca de negocios. - Banca de desarrollo. - Banca de inversión. - Crédito. - Operaciones. - Tecnología. 61 6.3. Portafolio de proyectos propuesto adopción incremental de SOA para la Como se analizó en el punto 2.5 del marco teórico “Elementos generales para adoptar SOA” el proceso de adopción de este tipo de arquitecturas debe ser incremental y enfocado a diferentes segmentos de la organización, en medio de un proceso ordenado de evolución. El énfasis inicial del proceso es fortalecer la Plataforma de Integración de Aplicaciones mediante la utilización de patrones de desarrollo de servicios y la incorporación de los componentes tecnológicos que permitan la utilización de los Web Services como su mecanismo estándar de comunicación. Adicionalmente el proceso evolutivo requiere la implementación del concepto de “Conector Universal” del banco, el cual tendrá como objetivo servir de interface entre la PIA y el mundo fuera del banco, para la publicación de Web Services externos. Con la implementación de estos dos elementos; más otros proyectos de negocios e infraestructura necesarios, se puede iniciar el primer ciclo de publicación y consumo de servicios entre el banco y sus aliados de negocio. Los sistemas recomendados para iniciar este ciclo son BN-Convenios y BN-Ventanilla de Pagos, por cuanto ambos sistemas se utilizan para publicar transacciones con socios de negocios, pero utilizando software “hecho en casa” y sockets de comunicación. Para ambos sistemas se propone un proceso de modernización que elimine las interfaces propietarias y adapte los estándares de la industria a su funcionamiento normal. Con respecto al resto de los objetivos, se propone al Banco Nacional la ejecución del siguiente portafolio de proyectos cuyo objetivo es agrupar las principales iniciativas en los tres segmentos de la organización descritos por la teoría y adaptados a la realidad de la Institución. 62 Cuadro #2: I Etapa. Publicación y consumo de servicios (2005-2006) Nombre del proyecto Objetivos • PKI Definir una infraestructura de llave pública y privada de acuerdo con los estándares de la industria, para la autenticación, autorización y no repudio de la mensajería entre las personas y los sistemas transaccionales y de apoyo de la Institución. Fortalecimiento de PIA • Fortalecer la infraestructura tecnológica de PIA • Publicar transacciones comunes en el Middleware • Definir lineamientos para garantizar su crecimiento y la reutilización del código transaccional • Definir estándares para comunicación con los BackEnd • En conjunto con el proyecto del Conector Universal, definir el mecanismo de publicación interna de Web Services. • Conector Universal Definición de estándares y lineamientos que gobiernen cualquier Web Service publicado o consumido por la Institución. • Definir niveles de servicio para la infraestructura de Web Services de la Institución. • Definir la infraestructura de comunicaciones y seguridad necesaria para cumplir con los niveles de servicio definido. • Promover el B2B mediante la modernización de BN-Convenios y Ventanilla de Pagos Virtual. Modernización interfaces • de sistemas centrales Analizar los servicios brindados por los sistemas de cuentas, inversiones, tarjeta de crédito y préstamos: para publicarlos como Web Services en la infraestructura de PIA. • Disminuir al mínimo las islas funcionales y la redundancia funcional presente en la Institución. Definición de • Arquitectura de Negocios Divulgación de los conceptos y lineamientos de la Arquitectura Orientada a Servicios en todos los niveles: Gerencia, Direcciones Corporativas, Unidades Operativas, entre otras. • Definición de los roles participantes en la Arquitectura Corporativa de Negocios, al lado de los arquitectos de TI. • Plan de comunicación del rumbo estratégico del banco, para modelar el negocio de la mejor manera. • Definición de métricas para evaluar el desempeño y el ROI de la implementación de SOA. • Modificar la estructura organizacional y prepararla para el diseño de servicios conjunto entre la DCTO y la Dirección de Negocios. 63 Cuadro #3: II Etapa. Arquitectura del negocio (2006-2007) Nombre del proyecto Diseño de servicios de Objetivos • Negocio mediante TI Implementar el resultado del proyecto “Definición de Arquitectura de Negocios”. • Tomar los proyectos propuestos para el año 2006 y modelarlos de acuerdo con los nuevos lineamientos definidos para SOA. • Ejecutar el control de calidad de los procesos definidos, de manera que sean corregidos y/o modificados de acuerdo con la experiencia que se adquiera en ese momento. Convergencia de canales • hacia SOA Impulsar la modernización de canales mediante el alineamiento a SOA. • Eliminar mecanismos “hechos en casa” para acceder sistemas centrales. • Implementar modelos de negocio más complejos en la infraestructura de SOA, tales como flujos de trabajo y orquestaciones de negocio. • Disminuir los costos de mantenimiento y creación de nuevos servicios para los sistemas financieros de la institución. Cuadro #4: III Etapa. Transformación de TI y el negocio (2007 en adelante) Nombre del proyecto Diseño de servicios de Objetivos • Negocio mediante TI (2) Modernización sistemas centrales Asegurar los procedimientos y estándares necesarios para garantizar la gobernabilidad de TI de • Garantizar la total adopción de SOA a lo largo de la Institución. • Analizar la mejor vía para transformar la funcionalidad brindada y por los sistemas centrales; ya sea un proceso de sustitución, mainframes migración o transformación. • Reducción de costos de operación y mantenimiento de la infraestructura tecnológica del Banco Nacional. • Garantizar el menor impacto posible para la Arquitectura Orientada a Servicios de la Institución. • Disminuir los costos de mantenimiento y creación de nuevos servicios para los sistemas financieros del banco. 64 De acuerdo con el conocimiento del negocio generado por esta investigación, se sugiere que la ejecución de este portafolio sea incremental a través del tiempo, tal y como se puede observar en la siguiente figura: Gráfico #16: “Roadmap” del Portafolio de Proyectos para el Banco Nacional. Fuente: Elaboración propia. 65 Glosario de términos B2B. Por sus siglas en ingles: Business to Business. Modalidad de comercio electrónico en el que las operaciones comerciales se realizan entre empresas y no con usuarios finales. Algunos, muy pocos, utilizan el acrónimo español EAE. Back office. Término utilizado frecuentemente para describir el conjunto de procesos humanos y tecnológicos que se realizan en las organizaciones como apoyo al servicio al cliente y que soporta su operación. Front end. Término equivalente a interface de usuario en el contexto de software. Frecuentemente se le llama de esta manera a la parte “cliente” de un programa y a la parte que corre en el servidor se le llama Back end. FTP. Por sus siglas en inglés: File Transfer Protocol. Es un protocolo de Internet que permite transferencia de archivos. Se utiliza en modo cliente-servidor: conectados a un servidor remoto que ofrece dicho servicio, el programa cliente permite solicitar la transferencia de archivos en cualquiera de las dos direcciones. IVR. Por sus siglas en inglés: Interactive Voice Response (Respuesta Interactiva de Voz). Es una tecnología de telefonía, mediante la cual un cliente utiliza un teléfono de tonos para interactuar con un sistema de información sin la intervención de un operador humano. Un ejemplo de esta tecnología es BN-Banca Telefónica del Banco Nacional. J2EE. Por sus siglas en inglés: Java 2 Platform Enterprise Edition. Es una plataforma desarrollada por Sun Microsystems para aplicaciones en Internet, que permite desarrollar, desplegar y administrar aplicaciones en múltiples capas. Se puede decir que J2EE es la siguiente generación de aplicaciones Java. Microsoft .NET. Conjunto de nuevas tecnologías en las que Microsoft ha estado trabajando durante los últimos años con el propósito de mejorar sus sistemas operativos, su modelo de componentes y obtener un entorno específicamente diseñado para el 66 desarrollo y ejecución del software en forma de servicios que puedan ser tanto publicados como accedidos a través de Internet de forma independiente del lenguaje de programación, modelo de objetos, sistema operativo y hardware utilizado tanto para desarrollarlos como para publicarlos. Este entorno es lo que se denomina la plataforma.NET, y los servicios antes mencionados son a los que se denomina servicios Web. Middleware. Término genérico para describir el Software que conecta dos o más aplicaciones separadas con el propósito de brindar servicios unificados. Frecuentemente la conexión entre aplicaciones se realize mediante el trasiego de datos entre sistemas de cara al usuario (Front End) y sistemas centrales (Back End). SFB. Por sus siglas: Sistema Financiero Bancario. Sistema central de cuentas corrientes, ahorros e inversiones del Banco Nacional de Costa Rica implementado con tecnología Mainframe. SIACC. Por sus siglas: Sistema Administrador de la Cartera Crediticia. Sistema central de préstamos del Banco Nacional de Costa Rica implementado con tecnología Oracle. SOA. Por sus siglas en inglés Service Oriented Architecture. Es una arquitectura de aplicaciones donde todas las funcionalidades son definidas como servicios, utilizando un lenguaje descriptivo y que poseen interfaces que pueden ser invocadas para ejecutar procesos de negocio. Un cliente con cualquier dispositivo, sistema operativo o lenguaje de programación puede utilizar estas interfaces, pues deben ser independientes de las plataformas en las que se ejecutan, Sockets. En Unix y otros sistemas operativos se le llama socket a un tipo especial de software que se encarga de conectar las aplicaciones con un protocolo de red determinado. TI. Por sus siglas: Tecnologías de Información. 67 Web Services. El término Web Services describe una manera estandarizada de integrar aplicaciones basadas en Internet mediante la utilización de mecanismos unificados de describir los datos (XML), transferirlos (SOAP), listar (UDDI) y describir (WSDL) los servicios disponibles. Utilizado primordialmente para la comunicación entre empresas y con sus clientes, este tipo de servicio permite el trasiego de datos sin un conocimiento profundo de la tecnología utilizada por quien lo consume. 68 Bibliografía Bea Systems (2004). Why Adopt SOA. http://www.beasys.com/framework.jsp?CNT=index.htm&FP=/content/solutions/soa/ Fecha de acceso: 12 de noviembre. Clements, Paul. (1996).A Survey of Architecture Description Languages. http://csdl.computer.org/comp/proceedings/iwssd/1996/7361/00/73610016abs.htm. Fecha de acceso: 25 de agosto. Colan, Mark. (2004). Characteristics of Service-Oriented Architecture. New York, NY: IBM Corporation. Gartner (2004). El futuro de la TI en el Mundo y en Latinoamérica. Buenos Aires: Technology Value Partners. Hernández R, Fernández C, Baptista P. (1998). Metodología de la Investigación Colombia: Mc Graw Hill. Institute of Electrical and Electronics Engineers (IEEE). (2000). IEEE Recommended Practice for Architectural Description of Software-Intensive Systems. http://standards.ieee.org/reading/ieee/std/se/1471-2000.pdf. Fecha de acceso: 25 de junio. Microsoft Corporation (2004). Service-Oriented Architecture. Redmond, WA: Microsoft Press. PriceWaterHouseCoopers (2004). Plan estratégico de tecnología de la información para el Banco Nacional de Costa Rica. Análisis de la situación actual. San José: Banco Nacional de Costa Rica. 69 Varhol (2004). SOA: Get it Right the First Time http://www.ftponline.com/weblogicpro/2004_05/magazine/features/pvarhol/. Fecha de acceso: 24 de noviembre. West, Kenneth (2004). Es… la SOA. http://www.netmedia.info/informationweek/articulos.php?id_sec=46&id_art=4941. Fecha de acceso: 08 de diciembre. ANEXOS 1. Complementos al Marco teórico 1.1. Campos de la Arquitectura de Software Actualmente la Arquitectura de Software es un conjunto heterogéneo de áreas de investigación teórica y de formulación práctica. La Arquitectura comenzó siendo una abstracción descriptiva que no investigó utilizando procesos sistemáticos, analizó las relaciones que la vinculaban con los requerimientos previos, o los pasos metodológicos que seguían para llevar a cabo el diseño del software. Como elemento fundamental dentro de la concepción de la abstracción planteada por una Arquitectura de Software es la reutilización. Se puede analizar como uno de los objetivos primordiales de esta área el proporcionar una “bodega” estructurada con este tipo de información reutilizable de diseño a un alto nivel. Esta información permite que las decisiones de alto nivel inherentes a cada uno de los subconjuntos lógicos establecidos por la misma arquitectura no necesiten ser reinventadas, re-validadas y re-descritas. Un razonamiento arquitectónico también consiste en esgrimir un argumento sobre los elementos estructurales de un sistema, los cuales conforman los aspectos que debe resolver la disciplina en su margen de acción, dentro de los cuales se puede citar: Diseño o selección de la arquitectura: ¿Cómo crear o seleccionar una arquitectura en base de requerimientos funcionales, de rendimiento o de calidad? Representación de la arquitectura: ¿Cómo comunicar una arquitectura? Este problema se ha manifestado como el problema de la representación de arquitecturas utilizando recursos lingüísticos, pero el problema también incluye la selección del conjunto de información a ser comunicada. Evaluación y análisis de la arquitectura: ¿Cómo analizar una arquitectura para predecir cualidades del sistema en que se manifiesta? En este apartado también se analiza el mismo hecho de comparar y escoger entre diversas arquitecturas en competencia. Desarrollo y evolución basados en arquitectura: ¿Cómo construir y mantener un sistema dada una representación de la cual se cree que es la arquitectura que resolverá el problema correspondiente? Recuperación de la arquitectura: ¿Cómo hacer que un sistema “legacy”1 evolucione cuando los cambios afectan su estructura; para los sistemas de los que se carezca de documentación confiable? Para este proceso se debe llevar a cabo lo que se llama una “arqueología arquitectónica” para determinar y documentar su arquitectura. Debido a la complejidad de los sistemas, la forma de documentar una Arquitectura es mediante Vistas, es decir, mediante descripciones simplificadas del sistema desde una perspectiva particular. El modelo más conocido de vistas es el que define RUP2 (4+1) vistas que comprende: Vista del Diseño Vista del Proceso Vista de la Implementación Vista del Deployment Vista de Casos de Uso En síntesis la Arquitectura de Software representa la clave para comprender, organizar y comunicar un sistema, además, permite implantar conceptos como reutilización y facilita el desarrollo de la solución. 1 Aplicación Legacy: Cualquier aplicación basada en tecnologías y hardware más antiguos, la cual continúa brindando servicios esenciales en una organización. 2 Por sus siglas, Racional Unified Process. 1.2. Modelos de negocio basados en SOA Considerando los beneficios que genera su utilización, es conveniente en la mayoría de los casos modelar el negocio considerando una arquitectura de servicios; sin embargo a nivel tecnológico la implementación de un servicio presenta inconvenientes que deben ser considerados y en la medida de lo posible solucionados para obtener de esta manera una implementación ideal y acorde con las demandas del negocio: • Tiempo de llamado: debido principalmente a la infraestructura de comunicaciones, el tamaño de los mensajes y otros. Este punto implica que la utilización de mensajería de red confiable sea obligatoria para evitar problemas comunes asociados a la pérdida de paquetes en una red (como las retransmisiones), pues inciden directamente en los tiempos de respuesta. • Respuesta del servicio: la respuesta que el servicio pueda brindar es afectada de forma directa por elementos externos, como problemas en la red, errores en la configuración y demás. Se deben considerar estos elementos en la etapa de diseño, conceptualizando los mecanismos de contingencia que minimicen el riesgo de falla en las aplicaciones y servicios que dependen de él. • Tolerancia a fallas: Al margen de lo citado, es totalmente necesario que el modelo deba soportar comunicaciones no confiables, mensajes impredecibles, reintentos, mensajes fuera de secuencia y otros, sin embargo los mismos deben ser evitados para no sacrificar en una proporción mayor el tiempo de respuesta. Con el objetivo de brindar flexibilidad en este aspecto, el servicio debe publicar una interfaz (Ejemplo: WSDL3) fácilmente localizable dentro de la red. La idea es que la interfaz se encuentre ampliamente documentada para facilitar y promover su utilización y que a su vez ésta funja como un contrato del servicio, donde se describa cada una de las funciones que publica e incluso aspectos como niveles de prestación de dicho servicio. 3 Por sus siglas: Web Service Description Language. El diseño exitoso de una arquitectura orientada a servicios debe utilizar una plataforma de mensajería confiable, la cual aísle de la implementación funcional muchos de los problemas anteriormente mencionados y que incluya las siguientes características: • Entrega garantizada de mensajes. • Seguridad del contenido de los mensajes. • Calidad del Servicio. • Escenarios “en línea” y “fuera de línea”. Una comunicación basada en mensajes por lo general implica que no existen sesiones por lo cual los clientes no almacenan un estado en el servicio, con la idea de brindar mayor escalabilidad, lo cual necesariamente implica que la autenticación se debe dar a nivel de cada mensaje. 2. Proceso de recolección de Información. 2.1. Instrumento aplicado. El siguiente cuestionario se aplicó a 18 diferentes profesionales de la Dirección de Desarrollo de Sistemas del Banco Nacional de Costa Rica. Cada uno de ellos es especialista en uno o más sistemas financieros que apoyan la gestión del Banco Nacional de Costa Rica- Periodo: El cuestionario se aplicó entre la segunda y la cuarta semana del mes de noviembre de 2004. CUESTIONARIO Estimado compañero(a): Muchas gracias por su tiempo. El siguiente cuestionario tiene como objetivo recopilar de forma objetiva y con fines académicos, información acerca de los sistemas que posee la institución y aspectos tecnológicos relacionados al mismo, lo cual permitirá un proceso de análisis y evaluación de resultados. Por favor observe las siguientes instrucciones: 1. Lea de forma pausada cada una de las preguntas del cuestionario 2. Marque su respuesta con una “X”, en caso de seleccionar una opción que solicita detalle exponga de forma concisa su opinión. 3. Para preguntas de selección múltiple, se indicará esta característica en el enunciado. 4. Seleccione el sistema que tiene a su cargo y conteste el cuestionario con este sistema en mente. Fecha: _______________________________. Sistema: _______________________________. 1. De las siguientes categorías de sistemas ¿En cuál categoría se clasifica el sistema que usted ha seleccionado? 1. ( ) Canal de distribución, servicio a clientes (E-Banking, Cajeros, etc). 2. ( ) Sistema de apoyo operativo (Call Center, Recursos humanos, etc). 3. ( ) Sistema central (Cuentas, Tarjetas, Préstamos, etc). 4. ( ) Sistema integrador (Middleware). 5. ( ) Otros________________________________ 2. ¿En cuál lenguaje de programación utilizado en la institución se implementó este sistema? 1. ( ) Linc. 2. ( ) Power Builder. 3. ( ) Visual Studio 6.0 o .NET 4. ( ) Oracle Developer. 5. ( ) Siebel 2000. 6. ( ) Otros________________________________ 3. ¿Qué tecnología utiliza este sistema para administrar la persistencia de sus datos? 1. ( ) DMSII. Versión: ___________________. 2. ( ) Oracle. Versión: ___________________. 3. ( ) SQL Server. Versión: ___________________. 4. ( ) Otro______________ Versión: ___________________. 4. ¿En qué año fue implementado el sistema?: __________. 5. Cuando el sistema fue construido, ¿cuál fue la proyección de su vida útil?: 1. ( ) Menos de 1 año 2. ( ) De 1 a 2 años 3. ( ) De 2 a 3 años 4. ( ) De 3 a 4 años 5. ( ) Más de 4 años 6. ¿Cuánto tiempo tomó el desarrollo de este producto? (tomando como punto de partida el análisis y como punto final la implantación final del producto en producción): Menos de 3 meses Entre 3 y 6 meses Entre 12 y 18 meses Más de 18 meses Entre 6 meses y 12 meses 7. De la cantidad de componentes o programas que fue necesario desarrollar para este sistema, los que partieron totalmente de cero representan aproximadamente: De 0% a 20% De 21% a 40% De 61% a 80% De 81% a 100% De 41% a 60% 8. De los siguientes elementos, ¿cuál le presentó a nivel tecnológico la mayor dificultad en la implementación (desarrollo) del sistema?: 1. ( ) Utilización de la tecnología adquirida 2. ( ) Integración con sistemas centrales 3. ( ) Construcción de funcionalidad base (monitoreo, auditoria, seguridad, etc.) 4. ( ) Protocolos de comunicación e infraestructura 5. ( ) Otros________________________________ Nota: Si el sistema seleccionado se encuentra en las categorías “Apoyo interno” o “Canal de distribución”, favor contestar las siguientes preguntas. En caso de encontrarse en las categorías “Sistema central” o “Integrador” diríjase a la pregunta 12. 9. Considerando todo tipo de conexión a otros sistemas con que cuenta la aplicación, sea a nivel transaccional o de consulta, ¿cuántas conexiones posee este sistema a otras aplicaciones? Menos de 3 Entre 3 y 5 Entre 9 y 10 Más de 10 Entre 6 y 8 10. La siguiente lista presenta una serie de transacciones identificadas como de amplia utilización en la institución, por favor indique si el sistema que usted analiza utiliza alguna, ya sea explícitamente en el sistema o como un proceso interno para llevar a cabo otro. (puede seleccionar más de una opción). a) ( ) Consulta de cuentas de un cliente b) ( ) Consulta de tarjetas de crédito de un cliente c) ( ) Consulta de préstamos de un cliente d) ( ) Consulta de recibos pendientes e) ( ) Consulta de saldos (cuentas corrientes y ahorro) f) ( ) Consulta de movimientos (cuentas corrientes y ahorro) g) ( ) Transferencia de fondos h) ( ) Pago de servicios i) ( ) Pago de tarjeta de crédito j) ( ) Pago de un préstamo k) ( ) Avance de efectivo l) ( ) Aporte BN-Vital m) ( ) Inversión BN-Fondos 11. La aplicación analizada utiliza el (los) siguiente(s) mecanismo(s) para establecer la comunicación con el sistema central indicado (puede seleccionar varios mecanismos): 9.1.Sistema Financiero Bancario (SFB) ( ) Socket propio ( ) MCSII ( ) COMS ( ) Plataforma de Integración 9.2.Tarjeta de Crédito ( ) Procedimiento almacenado ( ) Consulta tabla/vista ( ) Plataforma de Integración ( ) No aplica 9.3.Sistema Administrador de la Cartera Crediticia ( ) Procedimiento almacenado ( ) Consulta tabla/vista ( ) Plataforma de Integración ( ) No aplica ( ) No aplica 9.4.BN-Conectividad ( ) Procedimiento almacenado ( ) Consulta tabla/vista ( ) Plataforma de Integración ( ) Socket conectividad ( ) No aplica 12. Una “bodega” de servicios comunes hubiera facilitado el desarrollo del sistema en mención. i. ( ) Muy de acuerdo ii. ( ) De acuerdo iii. ( ) Ni de acuerdo ni desacuerdo iv. ( ) En desacuerdo v. ( ) Muy en desacuerdo 13. Cuando se debe implementar un nuevo módulo para este sistema, el tiempo promedio que se debe invertir solamente en el desarrollo y pruebas es: i. ( ) Muy bajo (Menos de dos semanas) ii. ( ) Bajo (De dos a cuatro semanas) iii. ( ) Normal (De uno a dos meses) iv. ( ) Alto (De dos a tres meses) v. ( ) Muy alto (Más de tres meses) 14. Según su criterio, el costo económico de brindar mantenimiento y operar este sistema (considerando recurso humano, hardware, licencias, soporte, etc.) es: i. ( ) Muy bajo (Menos de US $25,000.00 anuales) ii. ( ) Bajo (Entre 25,000.00 y 99,999.99 US $ anuales) iii. ( ) Medio (Entre 100,000.00 y 249,999.99 US $ anuales) iv. ( ) Alto (Entre 250,000.00 y 500,000.00 US $ anuales) v. ( ) Muy alto (Más de US $500,000.00 anuales) 15. Con respecto a la distribución de nuevas versiones del software que soporta el sistema se puede decir que es: 1. ( ) Inmediata, los clientes se actualizan en tiempo real 2. ( ) Sencilla, con un instalador estándar. 3. ( ) Normal, requiere la generación de un instalador y cambios manuales. 4. ( ) Compleja, requiere la generación de instaladores y guías para ejecución. 5. ( ) Muy compleja, se debe trasladar prácticamente todo el sistema. 16. De acuerdo con su criterio y a su conocimiento del comportamiento transaccional del sistema, el promedio de consultas mensuales que resuelve corresponde a : 1. ( ) Menos de 10,000 2. ( ) De 10,000 a menos de 25,000. 3. ( ) De 25,000 a menos de 100,000. 4. ( ) De 100,000 a menos de 500,000. 5. ( ) Más de 500,000. 17. De acuerdo con su criterio y a su conocimiento del comportamiento transaccional del sistema, el promedio de transacciones mensuales que resuelve el sistema corresponde a: 1. ( ) Menos de 10,000 2. ( ) De 10,000 a menos de 25,000. 3. ( ) De 25,000 a menos de 100,000. 4. ( ) De 100,000 a menos de 500,000. 5. ( ) Más de 500,000 Muchas Gracias por su colaboración. 2.2. Tabulación de los resultados. Banco Nacional de Costa Rica Cuadro #5: Clasificación por sistema Diciembre 2004 Canal de Apoyo distribución operativo 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 BN-Conectividad SFB PIA DDO Call Center MOPAA BN-Viajes Tarjeta de crédito Sistema de cajeros (Finesse) SETBN Ventanilla de pagos Base Única de Clientes BN-SINPE BN-Paguese Apuestas electrónicas BN-Banca Telefónica SIACC BN-Internet Banking Personal Archivo Virtual Sistema de imágenes SARCLI Firmas BN-Internet Banking Corporativo TOTALES Sistema central Apoyo a toma Middleware de decisiones 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 6 6 8 1 2 Banco Nacional de Costa Rica Cuadro #6: Redundancia funcional. Diciembre 2004 a) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 BN-Conectividad SFB PIA DDO Call Center MOPAA BN-Viajes Tarjeta de crédito Sistema de cajeros (Finesse) SETBN Ventanilla de pagos Base Única de Clientes BN-Sinpe BN-Paguese Apuestas electrónicas BN-Banca Telefónica SIACC BN-Internet Banking Personal Archivo Virtual Sistema de imágenes SARCLI Firmas BN-Internet Banking 23 Corporativo TOTALES b) c) d) 1 1 1 1 1 1 1 8 f) g) 1 h) i) j) k) 1 1 1 1 1 1 1 1 1 1 1 1 5 1 7 1 1 1 1 1 1 1 1 e) 1 1 1 1 1 1 1 l) m) a) Cuentas del cliente b) Tarjeta de crédito c) Préstamos de un cliente d) Consulta recibos pendientes e) Saldos de cuenta f) Movimientos de cuenta g) Transferencia de fondos h) Pago de servicios i) Pago tarjeta crédito 1 1 j) Pago préstamo k) Avance efectivo l) Aporte BN-Vital m) Inversión BN-Fondos 1 1 1 1 1 1 1 1 1 1 1 1 1 1 3 1 6 1 4 1 5 1 3 1 4 1 5 1 5 1 3 1 3 Banco Nacional de Costa Rica Cuadro #7: Dominios tecnológicos. Diciembre 2004 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 BN-Conectividad SFB PIA DDO Call Center MOPAA BN-Viajes Tarjeta de crédito Sistema de cajeros (Finesse) SETBN Ventanilla de pagos Base Única de Clientes BN-Sinpe BN-Paguese Apuestas electrónicas BN-Banca Telefónica SIACC BN-Internet Banking Archivo Virtual Sistema de imágenes SARCLI Firmas BN-Internet Banking Corporativo TOTALES Aplicación Unisys Sybase Microsoft Oracle Siebel 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 3 3 12 5 2 Base de datos Unisys Sybase Microsoft Oracle 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 3 0 1 1 1 1 1 1 15 5 Banco Nacional de Costa Rica Cuadro #8: Costos operacionales. Diciembre 2004 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 BN-Conectividad SFB PIA DDO Call Center MOPAA BN-Viajes Tarjeta de crédito Sistema de cajeros (Finesse) SETBN Ventanilla de pagos Base Única de Clientes BN-Sinpe BN-Paguese Apuestas electrónicas BN-Banca Telefónica SIACC BN-Internet Banking Personal Archivo Virtual Sistema de imágenes SARCLI Firmas BN-Internet Banking Corporativo TOTALES Muy bajo Bajo Medio 1 Alto Muy Alto 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 9 1 1 10 1 2 1 86 Banco Nacional de Costa Rica Cuadro #9: Vida útil de los sistemas. Diciembre 2004 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 BN-Conectividad SFB PIA DDO Call Center MOPAA BN-Viajes Tarjeta de crédito Sistema de cajeros (Finesse) SETBN Ventanilla de pagos Base Única de Clientes BN-Sinpe BN-Paguese Apuestas electrónicas BN-Banca Telefónica SIACC BN-Internet Banking Archivo Virtual Sistema de imágenes SARCLI Firmas BN-Internet Banking Corporativo TOTALES Año 1 1999 1990 2002 2003 2001 2002 2002 1996 2000 2000 2002 2004 2001 2004 2001 1998 2001 2001 2003 2001 2002 2000 1998 1-2 2-3 3-4 +4 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 1 3 1 19 Banco Nacional de Costa Rica Cuadro #10: Implementación de un nuevo servicio. Diciembre 2004 Inmediata 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 BN-Conectividad SFB PIA DDO Call Center MOPAA BN-Viajes Tarjeta de crédito Sistema de cajeros (Finesse) SETBN Ventanilla de pagos Base Única de Clientes BN-Sinpe BN-Paguese Apuestas electrónicas BN-Banca Telefónica SIACC BN-Internet Banking Personal Archivo Virtual Sistema de imágenes SARCLI Firmas BN-Internet Banking Corporativo TOTALES Sencilla Muy Compleja compleja Normal 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 3 15 1 5 0 88 Banco Nacional de Costa Rica Cuadro #11: Islas tecnológicas - SFB. Diciembre 2004 SFB Socket MCSII COMS PIA 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 BN-Conectividad SFB PIA DDO Call Center MOPAA BN-Viajes Tarjeta de crédito Sistema de cajeros (Finesse) SETBN Ventanilla de pagos Base Única de Clientes BN-Sinpe BN-Paguese Apuestas electrónicas BN-Banca Telefónica SIACC BN-Internet Banking Personal Archivo Virtual Sistema de imágenes SARCLI Firmas BN-Internet Banking 23 Corporativo TOTALES No aplica 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 7 3 1 1 3 13 89 Banco Nacional de Costa Rica Cuadro #12: Islas tecnológicas – Tarjeta de crédito. Diciembre 2004 Tarjetas de crédito SP Consulta PIA Socket 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 BN-Conectividad SFB PIA DDO Call Center MOPAA BN-Viajes Tarjeta de crédito Sistema de cajeros (Finesse) SETBN Ventanilla de pagos Base Única de Clientes BN-Sinpe BN-Paguese Apuestas electrónicas BN-Banca Telefónica SIACC BN-Internet Banking Personal Archivo Virtual Sistema de imágenes SARCLI Firmas BN-Internet Banking 23 Corporativo TOTALES No aplica 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 3 3 6 2 5 90 Banco Nacional de Costa Rica Cuadro #13: Islas tecnológicas – SIACC. Diciembre 2004 SIACC SP Consulta PIA Socket No aplica 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 BN-Conectividad SFB PIA DDO Call Center MOPAA BN-Viajes Tarjeta de crédito Sistema de cajeros (Finesse) SETBN Ventanilla de pagos Base Única de Clientes BN-Sinpe BN-Paguese Apuestas electrónicas BN-Banca Telefónica SIACC BN-Internet Banking Personal Archivo Virtual Sistema de imágenes SARCLI Firmas BN-Internet Banking 23 Corporativo TOTALES 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 10 1 2 1 2 4 91 Banco Nacional de Costa Rica Cuadro #14: Islas tecnológicas – BN-Conectividad. Diciembre 2004 BN-Conectividad SP Consulta 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 BN-Conectividad SFB PIA DDO Call Center MOPAA BN-Viajes Tarjeta de crédito Sistema de cajeros (Finesse) SETBN Ventanilla de pagos Base Única de Clientes BN-Sinpe BN-Paguese Apuestas electrónicas BN-Banca Telefónica SIACC BN-Internet Banking Personal Archivo Virtual Sistema de imágenes SARCLI Firmas BN-Internet Banking 23 Corporativo TOTALES No PIA Socket aplica 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 5 2 1 0 3 17