A continuación, presentaremos las mejores prácticas para la implementación exitosa de una arquitectura SOA que se han detectado en la industria. Hay que recordar que cada empresa debe tomar en cuenta su situación actual, para adecuarlos a sus necesidades:
•Crear la arquitectura SOA a partir de los objetivos de la empresa.
•Crear estándares corporativos.
•Desarrollar la arquitectura con capas bien definidas.
•Fomentar el reuso de componentes y creación de patrones.
•Modelo de Gobierno de las arquitecturas SOA
•Tomar como punto de partida la situación actual de la empresa.
•Desarrollo de metodologías.
•Entender la semántica de la información y sus fuentes, así como el funcionamiento de la empresa a través de procesos.
Crear la arquitectura SOA a partir de los objetivos de la empresa
Las arquitecturas SOA se convierten en el sistema nervioso empresarial, es decir, se encuentran fuertemente atados a las actividades y procesos que se realizan a lo largo de las empresas e instituciones. Crear una arquitectura SOA no debe ser un proyecto por sí mismo, más bien, requiere un análisis de los objetivos de la empresa y de la situación actual, para determinar el grado de agilidad, eficiencia y niveles de servicio requeridos. La arquitectura SOA, debe proporcionar elementos que permitan medir el desempeño de estos objetivos de negocio, de cada artefacto construido, por ejemplo, si se automatiza un proceso en una herramienta BPM, se deberán incluir indicadores de rendimiento del proceso, como su duración y uso de recursos.
Crear estándares corporativos
XML es el estándar tecnológico fundamental en la creación de arquitecturas SOA. Actualmente es muy adoptado en la industria por su versatilidad, flexibilidad e independencia tecnológica, constituyendo la piedra angular de estándares técnicos muy importantes como son XSD, XSLT, SOAP, UDDI y WSDL; en el caso de los procesos tenemos estándares como XPDL, BPEL, ASAP y SWAP. Adicionalmente a los estándares técnicos es necesario definir los estándares corporativos basados en modelos de integración, metadatos, tipos de servicios web, seguridad, orquestación de servicios, y gestión de procesos. En el mercado ya se encuentra software que funciona como un repositorio corporativo basado en estos estándares, para llevar un control de cada uno de los artefactos, y fometar el reuso de componentes. Es muy recomendable estudiarlos desde el principio, para conocer con detalle cómo colaboran en nuestro beneficio.
Desarrollar la arquitectura con capas bien definidas
El desarrollo de una arquitectura orientada a servicios, debe orientarse a capas con funcionalidad bien definida, un buen inicio son las que hemos descrito en los articulos anteriores. Esto permitirá crear una arquitectura sólida, estandarizada, que cumpla con las necesidades de la empresa, cabe mencionar que, no es necesario contar con cada una de ellas, pero sí considerarla para adoptar una estrategia evolutiva. Esto último, se traduce en la escalabilidad, complejidad y capacidad de procesamiento.
Fomentar el reuso de componentes y creación de patrones
Un factor importante a considerar en las arquitecturas SOA, es el reuso tanto de conocimiento como elementos tecnológicos. Es decir, en estos ecosistema tecnológicos, cada día se crean nuevos elementos y si no se lleva un control adecuado, se pueden perder los beneficios transformándose en un caos. Por esto, es necesario fomentar el reuso de cada uno de ellos, para obtener un mejor retorno de la inversión y nueva funcionalidad con un menor esfuerzo. La definición de los nuevos elementos debe ser ordenada, estandarizada y fielmente documentada. Esto último es de gran importancia, si recordamos que la funcionalidad de la arquitectura de servicios se convierte en la espina dorsal de las empresas.
El primer factor para fomentar el reuso, es a través de un repositorio donde se coloquen los elementos de una arquitectura SOA con servicios como versionado, análisis de impacto, identificación de servicios implementados, reportes de uso, y directorio de servicios. La segunda, es a través de la creación de patrones de diseño, que permita resolver de manera estructurada y estándar las diferentes situaciones
Modelo de gobierno de las
arquitecturas SOA
La agilidad para el cambio en las empresas a su entorno de competencia, es una cualidad que se construye y les proporciona solidez. Anteriormente, la tecnología por sí misma era estratégica y venía acompañada de grandes inversiones en hardware y software con innovaciones incorporadas. Esto ha cambiado. Hoy, la estrategia se centra en la flexibilidad que pueda proporcionar la tecnología en beneficio de la empresa, para permitir una adaptación rápida al cambio, alto grado de colaboración en su beneficio, y reuso de la inversión existente. Construir una arquitectura SOA no es sencillo, requiere de un enfoque sistémico, tanto técnico como de negocio, basado en una planeación estratégica evolutiva que permita alinear la empresa hacia a un solo fin.
Para alcanzar esta alineación, es necesario un nuevo enfoque basado en un modelo de gobierno para SOA. El modelo de Gobierno SOA se enfoca para resolver, gestionar, y unificar los esfuerzos mediante un comité multidisciplinario, con prácticas de colaboración entre los diferentes actores de las empresas. Estas prácticas incluyen esquemas de toma de decisiones, seguimiento de la toma de decisiones, detección temprana de nuevos requerimientos de negocio y tecnología; creación de estándares corporativos, análisis de impacto, interdependencias, metodologías y políticas. El modelo de gobierno puede contar con miembros permanentes o temporales, dependiendo de los objetivos que se estén resolviendo.
Tomar como punto de partida la situación actual de la empresa
Es importante asegurarse que la conformación de la arquitectura orientada a servicios se base en la situación de las empresas, con la finalidad de asegurar su compatibilidad y grado de colaboración con la infraestructura existente. En las empresas, cada situación es única y demanda funcionalidad específica. Es por esto que, si la tecnología que se va a utilizar no se prueba en ambientes reales, se corre el riesgo de crear una arquitectura inflexible, cara, sin control, y dependiente de algún proveedor.
Aunque la tecnología y los estándares ya se encuentran maduros para proveer el valor, las empresas deben evaluar la situación actual de su infraestructura, y decidir sobre la adopción de los estándares encaminados por un lado al reuso de la funcionalidad actual, y proteger la inversión. No es aconsejable adaptar la empresa a la arquitectura SOA.
Entender la semántica de la información y sus fuentes, así como el funcionamiento de la empresa a través de procesos
Es indispensable establecer modelos de la información con que se cuenta en las aplicaciones, y los procesos de negocio que se realizan.Al elaborar la semántica bajo un modelo de entidades de negocio en las empresas, se incluye la descripción de los datos en términos de negocio que sean de utilidad para el entendimiento de la información en los sistemas y cómo pueden colaborar entre ellos. Con esto en mente, se desarrollan los servicios orientados a proporcionar la funcionalidad que deberá compartirse entre ellos.
En el caso de los procesos, estos demandan información de los diferentes sistemas, recursos que necesitan métricas de desempeño, institucionalización de los procesos, definición de interfases, y monitoreo de los mismos, para contar con un método de evaluación que permita tener una mejora continua en la empresa o institución, y conocer el desempeño a través de ellos.
Desarrollo de metodologías
Cuando se habla de arquitecturas orientadas a servicios, no podemos evitar hablar de mejorar los procesos de negocio actuales que rigen a las empresas, por lo que hacerlo de una manera ordenara es crucial. Sin embargo, cabe destacar que las iniciativas de arquitecturas SOA deben surgir de objetivos de negocio, que permitan reconocer el beneficio que se va a obtener del esfuerzo que se realizará. Toda iniciativa SOA, debe basarse en una metodología que permita obtener resultados esperados, y lograr homogeneidad en el funcionamiento, y permitir el equilibrio entre los elementos clave: en el mercado existen metodologías de desarrollo muy probadas que se pueden adaptar para su uso, como lo es el Proceso Unificado, Programación Extrema, Métrica 3, etcétera. También se puede incorporar las mejores prácticas derivadas de modelos de referencia como CMMI, ITIL y COBIT.
Las metodologías se tienen que desarrollar específicamente para las necesidades actuales con base en la infraestructura con que se cuenta. El desarrollo de las metodologías proporciona estructura y orden para abordar la creación de los elementos de SOA, así como el manejo del cambio, diseño de servicios, congruencia, y poder incorporar ayuda de manera más efectiva.
Uno de los errores comunes en el uso de tecnologías, es la falta de adecuación a las realidades de la empresa, no hay que olvidar que la finalidad de la metodología, es convertirse en una herramienta para...
•Establecer políticas.
•Procesos y recursos planeados.
•Asignar responsabilidades.
•Entrenar a la gente.
•Apoyo de la dirección.
•Monitoreo y control.
Conclusiones
Las arquitecturas SOA se derivan de los objetivos de negocio que tienen las empresas y se convierten en su espina dorsal, por lo que es importante planear su creación. Un factor de éxito muy importante es tomar en cuenta la situación actual de la empresa, para crear aquellos elementos SOA que la conformarán. También, dada su alta orientación al negocio, es necesario su control mediante un modelo de gobierno que incluya tanto la parte de negocio como técnica y que alinie todos los esfuerzos bajo un solo fin. La estandarización técnica y de negocio, acompañada de los objetivos de negocio es muy importante para tener éxito y el mejor beneficio posible para las empresas.
Acerca del Autor
Gabriel Rolando Vázquez Pérez, tiene más de diez años de experiencia en Consultoría de la Tecnología de Información en ambientes multiplataformas. Actualmente es arquitecto de arquitecturas SOA y vocero de CrossVision. Se ha desempeñado en el área de consultoría y preventa en las industrias de telecomunicaciones, financiera, sector público, transporte y manufactura. Dentro de Software AG ha desempeñado varios cargos durante su trayectoria tanto a nivel nacional como internacional en las áreas de soporte técnico, preventa, consultoría de estrategia y negocio.
- Log in to post comments