Mostrando las entradas con la etiqueta esb. Mostrar todas las entradas
Mostrando las entradas con la etiqueta esb. Mostrar todas las entradas

3/14/2015

Presidencia del Ecuador - Plataforma de Mediación, Integración e Interoperabilidad con Mule ESB, Bonita BPM y WSO2


La Dirección de Tecnología de la Presidencia del Ecuador necesitaba rediseñar y mejorar sus prácticas de Ingeniera de Software para responder de forma más ágil y efectiva a las necesidades de las diversas unidades de negocio que esta apoya mediante sus servicios informáticos. La Dirección necesitaba rediseñar sus prácticas de TI, contar con un entendimiento profundo de las disciplinas y estilos de arquitectura SOA, ESB, BPM; y poner en práctica nuevos métodos y herramientas para el desarrollo de soluciones, procesos, apis, servicios, rules, entre otros. Necesitaba explorar, aprender y aplicar.

Lo primero que hicimos fue conformar un equipo multidisciplinario; estos fueron nuestros avatares, una idea para romper el molde!!!!


El segundo paso fue recomendar la conformación de un proyecto piloto. Como iniciativa fue identificado un proceso transversal para controlar las actividades de ingreso y egreso de personal; este proceso fue seleccionado mediante la evaluación de diversas variables como el grado de transversalidad del proceso, su valor; entre otros. Con este proceso automatizado se podrá evitar la demora en los procesos de ingreso y egreso de personal, disminuir el papel, respetar los canales regulares de aprobación, proporcionar mayor trazabilidad y conocer el estado del proceso en cualquier etapa que este se encuentre; mejorando la  coordinación y cooperación entre los departamentos; el establecimiento de acuerdos de servicios; en resumen, proporcionando mayor control y gobernabilidad en los recursos utilizados para su optimización y racionalización continua.

Como tercer paso, establecimos un marco metodológico y una caja de herramientas Open Source para rediseñar y actualizar las prácticas de TI de la unidad. Estos métodos y herramientas fueron insertados en la organización con el objeto de crear nuevas capacidades; para luego ponerlas en práctica en un proyecto piloto. La metodología abordo gaps, arquitectura, políticas, inmersión en SOA, ESB, BPM, entre otros; cada uno con herramientas metodológicas que fomentaran la colaboración, la participación, la empatía, la definición, la ideación, el prototipado y la evaluación continua de las soluciones propuestas.

Luego realizamos una inmersión en la aplicación real de las disciplinas SOA, ESB, BRE, MOM, CEP, BPM y BAM sobre una pila de productos Open Source.

Mas allá de contarles sobre los beneficios obtenidos, lo interesante fue lo aprendido, los enfoques y recomendaciones estratégicas que pueden soportar. Aquí algunas recomendaciones para disminuir los riesgos de proyectos BPM.
  1. Seleccione un proyecto piloto de valor estratégico para la organización.
  2. Establezca políticas iniciales.
  3. Establezca un marco metodológico y herramientas de amplio espectro para abordar las verticales de servicios, apis, rules, procesos, entre otros.
  4. Conforme una arquitectura mínima viable.
  5. Conforme un modelo organizacional de nueva generación.
  6. Conforme una Plataforma de Mediación, integración e interoperabilidad.
  7. Utilice la notación gráfica BPMN 2.0 para modelar procesos.
  8. Desarrolle un programa de formacion especializado, profundo y con patrones.

Para finalizar quiero agradecer a todo el equipo de mijao y de la presidencia por su hospitalidad y energía. Exploramos, prototipamos y aprendimos juntos!!!

Aquí algunos detalles que puedo compartir.




saludos;

10/28/2013

Plataforma de Datos Públicos Enlazados - Interoperabilidad y Gobierno Electronico

Hace algunos días, tuve la oportunidad de presentar en el Segundo Seminario de Interoperabilidad "Venezuela SIO 2013" realizado en la Universidad de Carabobo las premisas, conceptos y estrategias que pueden ser utilizadas para conformar una Plataforma de Datos Públicos Enlazados que permita que el Estado y cualquier país pueda establecer las bases para compartir datos autoritativos de forma estándar. La esencia de dicha propuesta está en la aplicación de los estilos y disciplinas de arquitectura SOA, ESB y los principios de web semántica y linked data.

En esta presentación, describo de forma pragmática la necesidad y urgencia que tiene el Estado de conformar una plataforma de datos públicos enlazados; que esté integrada por la porción del conocimiento autoritativo de las instituciones que la integran. Al instanciar esta plataforma, el ciudadano no tendría que entregar ningún documento que haya sido generado o emitido por el propio Estado,  dado que este documento o dato puede ser consultado por cualquier institución que lo requiera, gracias a la publicación de datos realizada por la autoridad o institución dueña del dato o documento.

Agradezco al Centro Nacional de Tecnologías de Información por la invitación y la oportunidad de impulsar estos conceptos tan necesarios en nuestros países.



Algunas Reflexiones
  1. La interoperabilidad es la base que sostiene el concepto de gobierno electrónico.
  2. La integración no significa que el estado pueda medir su efectividad y eficiencia.
  3. No es un sueño, es una realidad técnicamente posible.
Saludos;

2/05/2013

Preguntas que debemos hacernos en un proyecto de Integracion SOA, ESB, BPM

He leído muchas veces la importancia de hacer buenas preguntas; en ese sentido, cuando abordamos proyectos de integración se presentan muchos problemas por no tomar en cuenta variables que son importantes para una buena implementación. Aquí algunas preguntas que como arquitectos debemos hacernos cuando necesitemos enfrentarnos a servicios de integración.
  1. Que protocolo de transporte disponibiliza el servicio?  (Por ejemplo: HTTP, HTTPS, JMS, SMTP, TCP/IP)
  2. Que protocolo de comunicación utiliza el servicio?. (Por ejemplo: HTML, XHTML, SOAP, XML, JSON)
  3. Qué tipo de patrón de mensajería utiliza el servicio?  (Por ejemplo: Síncrono o Asíncrono)
  4. El acceso al servicio requiere autentificación y autorización?
  5. Qué tipo de seguridad utiliza el servicio? (Por ejemplo: ws-security, token, request).
  6. El servicio tiene asociada alguna política? (Por ejemplo: Solo puede ser invocado desde una direccion ip especifica, algunos datos deben estar encriptados, el response time del servicio no puede exceder de 200 ms, solo puede ser invocado una sola vez al día).
  7. Como se gestionaran los errores que pueden presentarse en el servicio? (Por ejemplo: soap faults, xml, texto, entre otros.)
  8. Qué tipo de notificación deberá ser aplicada al generarse una excepción de disponibilidad del servicios (timeout, no disponible, entre otros). Por ejemplo: sms, correo electrónico.
  9. Quien será el responsable o gestor de servicio? (Por ejemplo: nombre, correo electrónico, teléfono, entre otros)
  10. El servicio requiere algún tipo de transformación (mapeo) o utilización de alguna expresión de salida?
  11. Cuáles son los datos que pueden ser provistos por el servicio?
  12. El servicio requiere algún componente transaccional?
  13. Se debe aplicar alguna estrategia de cache en el servicio?
  14. Como se gestionará la auditoria y logging del comportamiento del servicio en tiempo de ejecución?
  15. Cual será el Service Level agreement del servicio? (Por ejemplo: timeresponse minimo)
  16. Cual será la disponibilidad del Servicio?
  17. Cuentan con un formato para especificar los servicios proveedores?
  18. Cuál es el grado de complejidad del servicios?
  19. Cuál es el tiempo estimado para su desarrollo?
  20. Que recursos son necesarios para desarrollar los servicios?
Saludos;

9/25/2011

Hacia una Ley de Interoperabilidad

Desde hace años, he estado impulsado la necesidad y urgencia del desarrollo de una plataforma de  servicios de interoperabildiad para el Estado Venezolano. La "PIN" como la llamo es un medio, que permitirá que se establezcan las condiciones necesarias para el desarrollo y adopción de políticas, principios, estándares, normas y procedimientos para el acceso e intercambio electrónico de datos e información entre los órganos,   ciudadanos y entes de un Estado.

Desde mi punto de vista no han existido avances consistentes en Venezuela e incluso en América Latina dado que en la mayoria de países no se ha definido como una necesidad la prestación de servicios de interoperabilidad. En el campo del gobierno electrónico sigue persistiendo la idea que la creación y difusión de información mediante portales como principal acción, sin embargo los medios y políticas para el intercambio de datos e información no han sido una realidad en muchos de nuestros países.

Es mi país, existen grandes brechas en el intercambio de información, sin embargo el conocimiento es el verdadero reto. Como pueden los entes gubernamentales tomar decisiones sin un modelo de información homologado que responda a los intereses de las sociedades, y no a simples reportes de gestión?. Como podemos evaluar la mejora en una área especifica si no tenemos la capacidad de ver el bosque?. Como podemos realizar un ejercicio de tomas de decisiones ágiles y consistentes si en nuestros países todavía domina el Universo del Excel o el Calc?. Como podemos mejorar si no tenemos la capacidad de medir?. Porque no empezamos a evaluar tecnologías que permitan la medición en tiempo real?. Como podemos avanzar si no existe una política concreta para la gestión de conocimiento en TI?

Una plataforma de interoperabilidad puede convertirse en un medio para conocer de forma consistente el estado en tiempo real de las acciones de gobierno de un Estado, construyendo un canal que nos permita evaluar si vamos a buen puerto, sin estamos cumpliendo con las metas que requiere la sociedad, si somos efectivos y eficientes en nuestra gerencia.

Sobre sus componente generales
Una plataforma de interoperabilidad esta conformado por diversos componentes que la integran, entre los mas importantes:
  1. Una plataforma integrada de consulta de datos, que contribuya con la reutilización de datos, información y funcionalidades en un estado.
  2. Una plataforma integrada de mediación de servicios de interoperabilidad la cual contribuirá con la mediación y la orquestación de servicios.
  3. Un mapa nacional de servicios de información interoperable, que proveerá un único punto de acceso a los diferentes servicios de información interoperables provistos por los órganos y entes del Estado, fomentando paulatinamente su conocimiento, reutilización, integración e interoperabilidad.
  4. Una plataforma integrada de automatización de procesos interinstitucionales, que podrá administrar el ciclo de vida de procesos transversales de interés estratégico para el Estado.
El Futuro que desearía para mi hija, para mi país, para mi continente
Actualmente estoy trabajando en una propuesta técnica que aborda inclusive elementos de gestión de cambio porque estoy convencido que la calidad de vida de una sociedad esta profundamente ligada al uso efectivo, eficiente e inteligente de las tecnologías de informacion. Reflexionando en este sentido, yo desearía para mi país:
  1. Que cada institución desarrolle y adopte los estilos de arquitectura y disciplinas requeridas para asegurar la interoperabildiad de sus sistemas de informacion.
  2. Que cada institución pueda compartir conocimiento sobre su perspectiva.
  3. Que el estado establezca políticas consistentes y de altura para garantizar la aplicacion de normas.
  4. Que el ciudadano común tenga acceso a portales únicos e integrados como: denuncias.pais tramites.pais, datos.pais.
  5. Que el estado pueda medir en tiempo real la gestión de sus instituciones y el cumplimiento cualitativo y cuantitativo de sus políticas.
  6. Que el estado cuente con un modelo de informacion agnóstico que responda a las necesidades de sus ciudadanos.
  7. Que el estado cuente con plataforma de interoperabilidad por sectores: Plataforma Nacional de Interoperabilidad para Alimentacion, Plataforma Nacional de Interoperabilidad para Vivienda, Plataforma Nacional de Interoperabilidad para Seguridad, Plataforma Nacional de Interoperabilidad para Tramites.
  8. Que el estado pueda medir, mejorar y optimizar procesos transversales de interés estratégico.   
En Venezuela hemos comenzado a dar pasos
Hace meses tuve la oportunidad de desarrollar desde el punto de vista técnico y arquitectónico un borrador de propuesta de ley de Interoperablidad para el Estado Venezolano, el cual esta siendo impulsado por el Ministerio del Poder Popular para Ciencia, Tecnología e Industrias Intermedias. Una propuesta que contiene elementos innovadores que podrían a futuro convertirse en una referencia a nivel latinoamericano.

La propuesta de ley permitirá a grades rasgos:
  1. Garantizar el desarrollo de un estándar común de interoperabilidad en el Estado.
  2. Establecer las condiciones necesarias para el desarrollo y adopción de políticas, principios, estándares, normas y procedimientos para el acceso e intercambio electrónico de datos e información entre los órganos y entes del Estado.
  3. Promover el desarrollo de servicios de información interoperables adaptados a las necesidades de los ciudadanos y los procesos del Estado.
Como ciudadano de esta tierra, felicito todas las iniciativas que se están dando desde el Centro Nacional de Tecnologías de Información (CNTI) y el CNIT (Centro Nacional de Innovación Tecnológica) instituciones que están dando los primeros pasos hacia el fin ultimo: "Una plataforma Nacional de Interoperabilidad dirigida a mejorar la calidad de vida de sus ciudadanos mediante el uso efectivo, eficiente e inteligente de las TI". Desde aquí muchas energías positivas!!!

Saludos;

6/12/2011

3 Políticas de TI para crear organizaciones agiles

Desde hace algunos años he estado incentivando desde diversos medios la adopción de disciplinas y arquitecturas de TI dirigidas a mejorar el desempeño de las organizaciones en la administración de sus servicios informáticos. En mi andar por organizaciones de diversos ramos (publicas y privadas) siempre he evidenciado con preocupación la falta de acciones de direccionamiento tecnológicos y la existencia de programas de agilidad operacional en las organizaciones. Si el direccionamiento tecnológico fuera una política organizacional formal, se entendería que este es un instrumento de cambio necesario para evolucionar las practicas de TI.

Sin entrar en mayores aristas para describir la problemática actual, es una necesidad urgente comprender que las organizaciones publicas (sobre todo estas!) y privadas cambien sus practicas de TI actuales, adoptando nuevos paradigmas, paradigmas mas acordes con nuestros tiempos.

Un instrumento que puede ayudar en el cambio de una dirección de TI es el establecimiento de políticas. En este post comparto tres políticas que desde mi punto de vista pueden impulsar la transformación de las practicas de TI de una organizacion. El objetivo es crear una organizacion ágil, efectiva y eficiente mediante el uso de las TI.

Por ultimo antes de entrar en las políticas, una pequeña reflexión: "Las organizaciones son sistemas vivos que deben evolucionar y mejorar continuamente, y el direccionamiento tecnológico es un instrumento para cumplir con esta premisa". Tu puedes ser un agente de cambio!!!.

Políticas Organizacionales
  • Las aplicaciones que se desarrollen en la organizacion deben implementar un enfoque arquitectónico orientado en servicios, conocido como Arquitectura Orientada en Servicios (Service Oriented Architecture SOA, con el objeto de promover la reutilización de sus diseños y funciones de negocio. Este estilo requiere del establecimiento de políticas, prácticas y frameworks que permitirán que las funcionalidades de los módulos pueda proveer y ser consumidas como un conjunto de servicios. Los servicios podrán invocarse, publicarse y descubrirse y deberán estar abstraídos de su implementación mediante la utilización de una sola forma estándar de interface. Este estilo de arquitectura garantizara la reutilización de servicios, su integración con otros servicios, disminución de los esfuerzos de desarrollo,  mayor mantenibilidad, basado en contratos estandarizados, evita el acoplamiento, promueve el desarrollo de capas uniformes, entre otros beneficios.
  • Los intercambios de datos entre sistemas heterogeneos deberan ser mediados mediante un Bus de Servicios Organizacional (ESB - Enterprise Service Bus) que proveerá una plataforma de integración y comunicaciones flexible para solucionar problemas de integración que requieran ser atendidos por la organizacion. El ESB simplifica la comunicación y ofrece un conjunto de servicios de manera unificada. El ESB soporta los principios SOA. Este provee diversos estándares y protocolos de comunicación, adaptadores y conectores, mensajería sincrónica, asincrónica, punto a punto, publicación-suscripción, entre otros, ademas permite la orquestación y coreografía de servicios y procesos, uso de enrutadores, filtros, transformadores, un modelo de seguridad integral, entre otros beneficios.
  • Las reglas de negocio de la organizacion deberán ser gestionadas de forma centralizada mediante la utilización de un motor de reglas organizacional (Business Rule Engine, BRE por sus siglas en inglés). Estas reglas deberan ser expuestas sobre una plataforma de servicios.

12/13/2010

Mi propuesta hacia un nuevo enfoque: "Aplicaciones orientadas en procesos" - BPM en acción

"Los sistemas de información deben convertirse en medios para medir el desempeño y aprendizaje organizacional".
 
Cuando iniciamos la conceptualizacvion y diseño de sistemas de información, generalmente utilizamos casos de uso o historias de usuario para describir las diversas interacciones humanas o automatizadas que son requeridas para cumplir con sus requerimientos funcionales y no funcionales. Por años, la mayoría de estos sistemas de información han tenido una fuerte dependencia funcional, con lo cual no incorporan una vision de procesos, inclusive sistemas ERP o de RRHH no cuentan con mecanismo para adicionar el escalamiento y tiempo en la cual la actividad debe ser ejecutada, conocido en el argot de TI como acuerdos de servicios (SLA).

Simplificando mis argumentos, los sistemas de información raramente responden a procesos, ni a una visión transversal. Es muy comun observar que las actividades no incluyen características como: tiempo máximo de respuesta o atención de una tarea, escalamiento, persistencia de variables para la toma de decisiones, utilizacion de metricas, entre otros. Los sistemas de información generalmente son islas funcionales las cuales promueven la perdida de esfuerzos, gobernabilidad y valor.

Es necesario cambiar la forma en que son conceptualizados y diseñados los sistemas de información hoy en día. El desarrollo de un sistema de información debe comenzar con el modelado de procesos, utilizando los casos de uso o historias de usuario para describir las interacciones con mayor detalle. Este enfoque tiene mayores beneficios. En primer lugar considera los procesos, mecanismo que son utilizados para lograr el cumplimiento de una meta u objetivo organizacional, es decir la aplicación esta conectada explicitamente con un objetivo estratégico y no con una necesidad especifica, que generalmente no aporta valor a la organización. En segundo lugar, se incorporan acuerdos de servicios y reglas de negocio obligando a ser considerados en su especificación. Por ultimo, el sistema de información incorporando una visión orientada a la toma de decisiones y la medición de variables.

Sobre este enfoque, es necesario:
  1. Identificar las decisiones que pueden ser tomadas basadas en la medición de métricas, indicadores, factores críticos de éxito, entre otros.
  2. Identificar los procesos a los cuales apoyara el sistema de información.
  3. Modelar los procesos. El sistema de información debe responder a las condiciones establecidas en los procesos. Recomiendo utilizar la notación gráfica BPMN 2.0.
  4. Los procesos debe incluir el establecimiento de acuerdos de servicios para medir los tiempos y esfuerzos requeridos.
  5. Los procesos debe incluir el establecimiento de reglas de negocio.
  6. El sistema de información debe incluir en su modelo de implementacion los acuerdos de servicios y reglas de negocio.
  7. Identificar los indicadores de gestión y resultado que el sistema de información debe gestionar.
  8. Iniciar el desarrollo.

Desde mi perspectiva es necesario cambiar de paradigma, lo que llamo el "Desarrollo de Sistemas de Información Orientado en Procesos". Actualmente me encuentro escribiendo sobre este enfoque mediante la utilización de una metodología, la cual compartiré con la comunidad próximamente.

Saludos;

Cerrando el año, mis contribuciones y aportes en TI para mi país: Hacia SOA, ESB y BPM - Interoperabilidad


Desde hace casi dos años, tuve la oportunidad de ocupar un cargo gerencial donde podía proponer, conceptualizar y desarrollar ideas para impulsar los cambios que requiere nuestro país (desde mi punto de vista!) mediante el uso efectivo, ágil y eficiente de las tecnologías de información.

Generalmente no percibimos que la atención a los ciudadanos y la articulación que requieren las instituciones publicas requieren de un modelo de TI no tradicional y acorde a los nuevos tiempos y a las tecnologías que son creadas para simplificar y mejorar continuamente la generación, captura y entrega de valor a la sociedad. Las tecnologías son hoy en  día la base fundamental para el desarrollo de cualquier sociedad, por ende estamos obligados a incorporarlas en nuestros modelos de gestión y operación.

Reflexionando sobre la situación general en el uso de las TI en mi pais, estoy convencido que es necesario que la gerencia media de las instituciones publicas adopten e impriman modelos de gestión mas acordes con nuestros tiempos, donde las disciplinas SOA, ESB, BRE, BPM, Virtualizacion, Cloud, entre otras; se encuentren en el vocabulario de nuestros gerentes. En la medida que esto ocurra se mejoraran sustancialmente la atención a los ciudadanos, la agilidad en los tramites, la articulación institucional y la gobernabilidad del estado para mejorar continuamente su gestión.

El próximo año representa para mi una nueva etapa, y me pregunte cuales fueron mis logros personales y profesionales en el 2010?. Como este blog es un medio profesional para compartir mis diversas experiencias ,quise incluir cuales fueron mis contribuciones, mis aportes; con la intensión de compartir lo realizado con la comunidad y poder realizar un feedback.

Mis contribuciones
  1. Elaboración de propuesta para conceptualizar el proyecto "datos.gob.ve", Gobierno Abierto, Open Linked Data entorno a la propuesta de ley de Interoperabilidad del estado venezolano. Octubre-2010.
  2. Desarrollo de la primera propuesta de marco de interoperabilidad tecnico para el estado venezolano. Octubre-2010.
  3. Elaboracion de la conceptualizacion de un marco de gobernabilidad para insertar las disciplinas SOA, ESB y BPM en las instituciones publicas del estado. Este marco incluye conceptos generales, proceso de adopción, arquitectura referencial, roles y responsabilidades, marco de procesos, principios, políticas, estándares, procedimientos, prácticas operativas y prácticas de seguridad generales. Abril-2010.  
  4. Conceptualizacion del marco de arquitectura del portal unico de tramites del estado venezolano mediante la utilización de las disciplinas SOA y ESB.Abril-2010.
  5. Desarrollo de propuesta para insertar practicas agiles de Scrum y Kanban en los modelos de contratos de software en las instituciones publicas.Abril-2010.
  6. Desarrollo de una metodología preliminar para el análisis de procesos en las instituciones públicas, la cual pienso fortalecer y compartir en el 2011.
  7. Desarrollo de un Mapa de Arquitectura de Soluciones bajo software libre para proyectos SOA/ESB y BPM. Agosto-2010
  8. Desarrollo de una metodología para realizar el diagnostico de la aplicación de las practicas de TI en las instituciones publicas utilizando como referencia ITIL y COBIT. 2010
  9. Conceptualización de tecnoguias para desarrollo de proyectos SOA/ESB/BPM. 2010.
  10. Impulso del Marco de Interoperabilidad del Estado Venezolano mediante la aplicación e inserción de las disciplinas SOA y ESB.
Espero tener la oportunidad de conversar y compartir experiencias en estas materias, dado que fueron desarrolladas sobre un espíritu de colaboración, participación y transparencia.

9/21/2008

Seminario de BPM (Business Process Managment) en Venezuela CNTI

Hace poco, tuve la oportunidad enriquecedora de dictar un seminario para el Centro Nacional de Tecnologías de Información (CNTI) en Venezuela, en donde abordamos los estilos de arquitectura SOA, ESB y BPM, y la importancia estratégica de insertarlos dentro de la cultura tecnológica como elementos claves para implementar el gobierno electrónico.

El Gobierno Electrónico esta constituido por una sociedad interconectada, donde existe un comité de servicios nacional, que identifica todas las áreas y dominios de servicios, necesarios para agilizar la relación estado-ciudadano. El trabajo de este comité, es desarrollar una visión holistica sobre los servicios de salud, educación, seguridad, control de gestión, política, etc; que requiere el estado y sus ciudadanos para obtener la mayor suma de felicidad posible, es decir el bien común.

Algunos ejemplos Básicos de servicios que deberíamos tener:
  1. Un servicio, para conocer el tipo de sangre de un ciudadano, tan necesario en los centros de salud.
  2. Un servicio, para conocer el record educativo de un ciudadano, y validar su solvencia.
  3. Un servicio, para identificar si un ciudadano tiene antecedentes penales.
  4. Un servicio, para conocer el número de trámites de un organismo, estatus, ciclo de vida, para la toma de decisiones, el control y la planificación estratégica.
  5. Un servicio para conocer el número de tierras destinadas a la siembra de caña de azúcar.
  6. Un servicio integral destinado a conocer la gestión de un organizamos sobre variables macro políticas, para el presidente de la nación.
  7. etc....
Son muchos los ejemplos, que pudieran existir; pero lo importante es el cambio que puede impulsar el CNTI para crear una base de implementación seria, contundente y viable, el CNTI pretende dictar ese camino, y revolucionar la manera en que utilizamos la tecnología en el pais.

Cuales fueron los objetivos de las charlas:
  1. Conocer las áreas de aplicación de SOA, ESB y BPM dentro de las organizaciones.
  2. Identificar los beneficios y ventajas de SOA y ESB como estrategia para la construcción de servicios.
  3. Gestión de Procesos de Negocio (BPM), disciplinas que la comprenden, beneficios y el cambio organizacional que introduce su aplicación.
  4. Entender las bases de la notación grafica BPMN.
  5. BAM como disciplina para la toma de decisiones.
  6. Estrategias para impulsar su aplicación, y el salto quántico que puede obtener la nación si accionamos, y no nos quedamos en el verbo.
Algunas Apreciaciones:
  1. Los analistas de procesos tiene un rol vital, en la identificación de indicadores de desempeño y el modelamiento de procesos de negocio.
  2. Es necesaria la creación de "tecnopoliticos", que desarrollen una visión integral de la vinculación necesaria entre la política y la tecnología para avanzar en la modernización del estado, y la creación de un mapa de servicios integrado e interoperable, que dicte las normas necesarias para obtener indicadores de gestión y desempeño, tan necesarias en el país.
  3. El crecimiento de los servicios de integración mediante la utilización de un bus de servicios, que permita la centralización de servicios de conexión, adaptación, transporte, transformación, mensajería sincrono y asíncrona, etc. sobre el concepto de servicios (SOAP sobre HTTP/JMS).
  4. La importancia de crear mesas de trabajo, donde los gerentes de TI comprenda la importancia de SOA, ESB y BPM como estrategias de transformación tecnología que simplifiques, aceleren y potencia la eficiencia y agilidad operacional.
  5. La necesidad de incentivar la clara separación entre servicios de gestión y desempeño, que permitan la toma de decisiones.
  6. El área de estandarización, tendra la responsabilidad de almacenar el conocimiento y las practicas aplicadas en el proyecto piloto, y crear lo que denomino “un marco para la implementación tecnopolitica del gobierno electrónico”, un modelo exportable. Basado en SOA, ESB y BPM.
En hora buena CNTI y el proyecto de servicios e integración nacional!

Nota del CNTI: http://www.cnti.gob.ve/index.php?option=com_content&view=article&id=682:cnti-y-cantv-dictaron-taller-sobre-gestion-de-procesos-de-negocios-y-las-alternativas-tecnologicas-libres&catid=43:actualidad&Itemid=87

7/02/2008

Seminario de Intalio BPMS, SOA y ESB en Costa Rica

Hace poco tuve la oportunidad de ir a la Universidad Nacional de Costa Rica a impartir dos seminarios "SOA y ESB" y "BPM utilizando Intalio BPMS", donde aborde diversos temas de arquitectura empresarial y gestión de procesos de negocio utilizando las alternativas Open Source y de software libre: Mule ESB, ActiveMQ, e Intalio BPMS.
Quiero agradecer la hospitalidad que los tico me brindaron durante mi estadía; a Xenia y Dinia por toda la colaboración prestada, y al Sr. Francisco por su visión y capacidad de vigilia en el tema de nuevas tecnologías. La UNA (Universidad Nacional de Costa Rica), tiene un programa de especialización en el área de las tecnologías de información y la gestión de proyectos (PMI) llamada Progestic. Progestic esta planeando incorporar la Gestión de Procesos de Negocio (BPM) como un elemento dentro de su plan integral de capacidades, para convertirse en una guía en Centro América.
Ha sido una experiencia invaluable, donde he podido compartir con la comunidad estudiantil, empresarial y de gobierno; la importancia de incluir SOA, ESB y BPM como estrategia para utilizar las tecnologías de información y comunicaciones de forma efectiva y con una orientación clara en la gestión de procesos de negocio y todas las disciplinas que lo comprende; por supuesto utilizando software libre y open source.
Muchas Gracias UNA - Progestic - Costa Rica.
Nota: Pronto estaran disponibles para la comunidad las presentaciones que utilize para incentivar la utilizacion de BPM e intalio BPMS en la comunidad universitaria.

2/13/2008

Proyectos de Integracion SOA-ESB-BPM

Hace poco tuve el honor de participar como ponente en el evento STC Foro http://www.stcforo.com/home.php, para hablar sobre el desarrollo de proyectos de integración, y he querido registrar los puntos generales de mi ponencia en este blog, para contribuir con toda la comunidad. Es necesario decir, que estas recomendaciones provienen no solo de mi autoria, sino de todo un equipo magnifico de venezolanos, que con su profesionalismo y dedicacion contribuyeron con esta ponencia.

La agenda fue muy sencilla, y cubrí los siguientes puntos:
  1. Que obstáculos iniciales debe enfrentar una empresa para desarrollar un proyecto de integración?
  2. Recomendaciones.
  3. Algunas Reflexiones.
Que es un proyecto de integración


Un proyecto de integración es una plataforma tecnológica que sirve para disponibilizar funcionalidades existentes en sistemas heterogéneos, realizando tareas de conexión, adaptación, transporte, transformación, integración, etc, mediante servicios.
Un servicio es un artefacto de software que puede exponer una funcionalidad específica sobre diversos protocolos de transporte y lenguajes.

Que Obstáculos generales debe enfrentar un organización para desarrollar un proyecto de integración?
  1. En primer lugar, las organizaciones deben entender el concepto de agilidad operacional: Agilidad es contar con una plataforma tecnológica de servicios que soporte muchos cambios, pero que estos generen poco impacto. Las implicaciones de no poseer una plataforma de integración en una organización son: alta dependencia, alto acoplamiento, poca proteccion tecnológica, grandes impactos ante un reemplazo, información redundante, alta complejidad, etc.
  2. En segundo lugar soportar el constante bombardeo de los proveedores tecnológicos de estándares, tecnológias, y especificaciones que tienen como objeto primordial: "Entregar el Santo Grial: la Agilidad Operacional", términos como SOA, ESB, BPM, EDA, MOM son elementos de esa sopa de letras interminable.
  3. Una vez que hemos entendido esta sopa de letras, es necesario conseguir un equilibrio donde la evaluación de aspectos como la madurez de la tecnología, comunidad, soporte, open source o propietario, matriz de funcionalidades, pruebas de concepto, etc, son vitales.
  4. Otro obstáculo es la constante evolución de las tecnologías, fue en el 2004 cuando los Web services aparecieron en el escenario tecnológico, donde estarán las organizaciones en ese mapa de ruta?
  5. Por ultimo, y el mas importante como vender un proyecto de integración. Vender un proyecto de integración no es fácil, a pesar de todas las ventajas que promociona tecnológicamente.
Recomendaciones para afrontar estos Obstáculos:
  1. Introduzca un proyecto de integración como un componente más de un proyecto mucho mayor.
  2. Utilice pilotos, y no pruebas de concepto o laboratorio, los pilotos tienen un rango mucho mas amplio, el cual nos permite evaluar todos los aspectos técnicos necesarios para exponer servicios.
  3. Utilice la vigilia tecnologia y el direccionamiento como elementos claves de la estrategia organizacional.
Tips Generales:
  1. Desarrollar servicios no asegura la interoperabilidad: Utilice las herramientas de la Web Services Interoperability Organization (WS-I) para verificar si un web services o servicio es interoperable.
  2. El contrato nos hace flexibles, proporcionan agilidad: Eso es lo que por lo común nos venden, la verdad!, depende del modelo de implementación, por lo general; cambios en los contratos rompen las implementaciones de los servicios por lo que generalmente hay que regenerar los proxys (consumidores del servicio).
  3. Con frecuencia, los servicios son adaptaciones específicas de las aplicaciones: No es fácil crear servicios reusables, pero se deben contemplar servicios con la interfase lo más ancha posible (mayor numero de atributos).
  4. Es necesario establecer un equilibrio entre el conceptual y lo pragmático: aterrice el concepto que verdaderamente necesita.
Algunas Recomendaciones:

  1. Aplicar Aseguramiento de Calidad previo a la Construcción de servicios (contratos ajustados, especificaciones claras antes de ir a construcción).
  2. Diseñe los servicios con Interfaz “ancha” para potenciar la reusabilidad, Incluso si los servicios son diseñados “a la medida” de un cliente.
  3. Codificar con herramientas de 4ta generación es bonito, fácil y aparentemente simple, pero cuando hay problemas, resolverlos es difícil.
  4. Roll back: No hacer diseños complejos.
  5. Logs,Logs,Logs!!! : Prepare una arquitectura reusable de manejo de Logs con niveles, homogénea y parseable.
  6. Olviduese de Logs en base de datos, simplemente no es buena idea.
  7. Utilice un manejo homogéneo de errores (Web Services Árbol de Excepciones (Fault)).
  8. Incluir como parte del Framework capacidades de Auditoria y Monitoreo.
  9. RPC mala idea, Preferir WS Document / Literal en lugar de RPC encoded.
  10. Utilize Document Style para los Web Services, es la mejor práctica. No se rompen las implementaciones, orientado a mensajes, y es extensible.
  11. Ir a lo Básico, no olvide las herramientas de control de versiones, manejo de incidencias,etc.
  12. Viva los Xml*, evite cablear transformaciones, use tecnologías X* para transformaciones de datos en la lógica del servicio.
  13. BPM es el futuro.
Reflexiones
  • La verdadera integración es de la gente.
  • La ausencia de un Arquitecto puede cambiar un Plan.
  • La interoperabilidad es importante, utilice los tools de la WS-I.
  • Crear estándares, disminuye los riesgos de implementación.
  • Existe la practica generalizada de construcción de servicios específicos para los clientes, simplemente Evítelos.
  • Pensamos en el desarrollo de software, pero no en como administrarlo y operarlo. No lo dejemos para e final.

7/12/2007

Un universo de Tecnologias.














Vivimos en un entorno acelerado y exponencial, cada día es mas difícil mantener la vigilia de las tecnologías que surgen. Los gerentes de TI deben comprender un enorme universo de siglas, para poder generar valor en todos los estratos tecnologicos de una organizacion.

La realidad, es que el gerente se sumerge en el día a día, resolviendo y operando, no hay tiempo para la innovación y el cambio saludable necesario para proporcionar agilidad y eficiencia operacional.

Este universo, esta sustentado sobre una batería de ideas, conceptos, y practicas para mejorar las condiciones de negocio, haciéndolas mas flexibles y humanas, apoyando la automatizacion de procesos y toda la cadena de valores necesarios para crecer y mantenernos en un mercado tan cambiante. Es necesario y vital, promover la investigación y el conocimiento de estándares y mejores practicas como ITIL, ISO, CMM, etc.

Universo de tecnologías Claves

SOA: Estilo de arquitectura, que sustenta los servicios de una organizacion en contratos formalizados, promoviendo la reusabilidad como modelo para disminuir los costos de desarrollo, el desacoplamiento de tecnologías y la protección de la inversión.

BPM: La gestión de procesos de negocio, formaliza y estandariza los procesos de negocio, los automatiza, y desacopla las reglas de negocio.

ESB: Bus de servicios para proporcionar funcionalidades de transformación, adaptación, conexion, enrutamiento, etc. Disponibiliza servicios de integracion de alto desempeño y escalabilidad.

EDA: es una arquitectura que gestiona eventos en un marco de integracion.

MOM: Estilo de arquitectura basado en una infraestructura de mensajería sobre diversos protocolos y mecanismo de transporte.

5/09/2007

Arquitecturas Agiles

Las organizaciones deben ser ágiles operacionalmente, deben proteger sus inversiones; deben poder evolucionar y mantenerse, sin que los cambios tecnologicos las afecten. Para cumplir con estos lineamientos, es necesario que la organizacion desarrolle arquitecturas ágiles.

Una arquitectura ágil, debe ser una desacoplada, adaptable y de tecnología neutral, la cual; no se vea afectada ante cambios de productos y tecnologías. Esta debe permitir una disminución significativa en la complejidad y dependencia tecnológica de los ambientes heterogéneos.El marco de arquitectura ágil debe proporcionar:
  1. Simplicidad.
  2. Flexibilidad y mantenibilidad (Tolerancia ante Cambios).
  3. Reusabilidad.
  4. Desacoplamiento.
  5. Extensibilidad.
Para desarrollar una arquitectura ágil, es necesario contar con un conjunto de lineamientos y criterios de éxito que minimicen riegos y garanticen una especificación más formal y sólida.

Criterios de Éxito
  1. Debe poseer capacidades de Plug-in.
  2. Capacidad de interoperar con vendedores distintos (conectores / Adaptadores, etc.).
  3. Debe proporcionar un modelo desacoplado entre componentes.
  4. Los componentes no deben interactuar con otros componentes directamente.
  5. La semántica debe estar basada en mensajes.
  6. La definición de la secuencia de mensajes durante la ejecución de una operación debe estar basada en MEP.
  7. Clara separación entre la lógica de negocio (procesamiento) de la lógica de comunicación.
  8. Debe existir una clara separación entre los proveedores y consumidores de servicios.
  9. El modelo de intercambio de mensajes basado en WSDL 1.1 o 2.0.
  10. No usar metadatos propietarios en la definición de objetos de negocio (Xml Schemas).
  11. Modelo de implementación no-intrusivo.
  12. Ensamblado de servicios desde otro servicio, basado en reglas de negocio.
  13. Soporte de servicios sincronos, asíncronos, y conversacionales.
  14. Automatización de la transformación entre estructuras de datos dispares (semántica).
  15. Soporte para la simulación, testing y debuging.
  16. Definición del servicio con independencia de su implementación, localización o uso.
Recomendaciones y Consideraciones para elevar el nivel de desacoplamiento de la arquitectura.
  1. El marco de arquitectura debe estar basado en arquitecturas SOA.
  2. Debe estar basado en las especificaciones y estándares (ws-i, w3c, oasis, etc.).
  3. Debe estar soportado sobre un bus de servicios y un modelo de servicios horizontal.
  4. Debe tener capacidades de inversion de control “Inversion of Control Containers”.
  5. Debe tener capacidades de inyeccion de dependencias “Dependency Injection pattern”.
  6. Capacidades y soporte para arquitecturas Event-driven architecture (EDA) y service-oriented architecture (SOA).
  7. Integración con JBI.
  8. Estandarización de la arquitectura para el enrutamiento de mensajes.
Para mas informacion:

http://en.wikipedia.org/wiki/Enterprise_service_bus
http://en.wikipedia.org/wiki/JBI
http://en.wikipedia.org/wiki/Message_Exchange_Pattern
http://www.ws-i.org/
http://www.oasis-open.org/home/index.php

Saludos.

4/19/2007

Necesitamos una visión de 360º


No es fácil, engranar lo filosófico, lo técnico y lo social. La socialización del conocimiento y la tecnología deben partir de un cambio en su concepción, en un ser nuevo, que impulse y propague ideas y conocimiento habilitador, pero mientras este escenario nace, se gesta, se preña, el estado debe dar un salto quántico.

El estado debe formular, planear, crear e impulsar, un modelo que genere una economía basada en la producción del conocimiento y de servicios, que permita diseminar la experiencia que enriquecerá todos los estratos de la sociedad. La experiencia potenciara y empoderara al ciudadano hacia un cambio, no es proporcionar Internet a los ciudadanos, es incentivar su comprensión como mecanismo para mejorar su nivel de vida y cubrir sus necesidades básicas.

Uno de los más grandes problemas en la sociedad, es el comportamiento natural de la mayoría de los ciudadanos, empresas, y su identificación con el mercado, el deseo que mueve todos las acciones es mercantilista, por ende el conocimiento y la experiencia tienen precio, el problema con este modelo es que la experiencia no se diversifica, no se disemina, solo se esfuma, aunado a la gran brecha entre el conocimiento que se imparte en las universidades y la realidad global tecnológica empresarial en continua evolución y demanda.

Porque no podemos diseminar la experiencia, poner el conocimiento de TI al alcance de todos los ciudadanos, es decir socializar el conocimiento para cubrir necesidades estratégicas. El estado debe impulsar una transformación tecnológica sobre bases sociales, y sustentado sobre un profundo conocimiento técnico, lleno de experiencia, excelencia, talento, innovación y sobre todo de praxis. El primer paso, es crear un gobierno eficiente, eficaz, y transparente, que proporcione mejores servicios, donde el ciudadano entiende, participa, coopera y desarrolla una visión del uso de las TIC para mejorar su vida, una economía de conocimiento.

Este discurso, ya es común, pero a pesar de ello, no se deslumbran avances y cambios significativos en el manejo del conocimiento y el gobierno electrónico.

Necesitamos una Visión 360º

Para cambiar este escenario, es necesario crear una visión de 360º grado, un mapa nacional de servicios que deben ser prestados a los ciudadanos, un mapa de servicios para coordinar las relaciones entre entidades de gobierno, por ejemplo un servicio catastral genérico, servicios de salud, servicios que suministren información sobre los indicadores de la gestión de gobierno, que permitan la planificación estratégica: e-decisiones, e-información, e-participación, e-cooperación, y e-política.

Este mapa de servicios nacionales, sus interacciones y reglas puede iniciarse como un piloto, que pueda crear una reacción viral, en todos los entes y organizamos nacionales. La experiencia generada en todo el proceso debe ser la semilla para iniciar la transformación en los ciudadanos, debe ser replicado, diseminado en el estado, evitando redundancia de esfuerzo y acelerando su adopción en cada uno de los estratos de TI del estado.

Esta infraestructura de servicios, debe ser flexible, ágil, eficiente, efectiva, segura e interoperable. Para construirla solo debemos utilizar estándares, especificación y arquitecturas como SOA, BPM, BPEL, ESB, EDA, MOM, etc. Debemos crear un "Plan Estrategicos de Transformación Tecnologica", basado en un marco integrado de arquitecturas.

Con una visión de 360º y una infraestructura de TI basada en servicios, los países no desarrollados podrán avanzar en la creación de una sociedad basada en el conocimiento y en las Tecnologías de Información, un gobierno electrónico, un ciudadano electrónico, un país electrónico.

Para mas informacion:

http://www.soacenter.com
http://www.looselycoupled.com
http://www.bpmi.org
http://www.bpmg.org
http://soa.omg.org
http://www.oasis-open.org
http://www.ws-i.org



8/09/2006

Como Instanciar SOA (Arquitectura Orientada en Servicios) en una organización

SOA, ha surgido como una arquitectura emergente, un paradigma enfocado en el negocio y no en la tecnología. Sus beneficios, están orientados en necesidades de negocio como: protección de la inversión, disminución de costos en proyectos de integración, adaptabilidad ante un mercado TIC tan cambiante, etc. Esta visión la hace muy atractiva para los CIO (Gerentes) de las organizaciones.

Estas promesas de negocio, están sustentadas en la utilización del reuso como pieza clave, mientras mas reuso, menos recursos se dispondrán para el desarrollo de nuevas aplicaciones y funcionalidades en la organización, por ende; se disminuyen los costos, y hay un mayor nivel de proteccion en inversiones y recursos.

Por ejemplo, la organización A tendría un directorio de aplicaciones y funciones ya existentes, que están en cierto grado desacopladas de las aplicaciones que las alimentan. Este desacoplamiento es lo que permite que la compañía A pueda realizar un cambio en la aplicación proveedora sin que sus servicios expuestos sean afectados. Todos los servicios son reusables.

Cuando se pretende iniciar un proyecto SOA, es verdaderamente difícil buscar un equilibrio entre un modelo anterior de desarrollo de proyectos de integración y un modelo que ciertamente no representa una visión pragmática, pero a la larga son innumerable los beneficios que este tipo de arquitecturas proporciona.

Actualmente, en el mercado existen muchas empresas que están desarrollando proyectos bajo este nuevo modelo de arquitectura; la dificultad mas importante para su implantación, es la gran cantidad de especificaciones alrededor y las pocas empresas que las han adoptado dentro de sus soluciones de integración. Otro problema importante es la madurez de las especificaciones y sus implementaciones.
En conclusion, un modelo de agilidad operacional y totalmente desacoplado de las tecnologías, es un norte posible, pero se necesitan un conjunto de estrategias para asegurar el éxito. Basado en mi experiencia en proyectos de integración bajo SOA, les presento algunas recomendaciones para disminuir los riesgos y asegurar una implementación exitosa en su organización:

Recomendaciones:
  1. Internalizar y comprender los conceptos detrás de SOA y transmitirlo a todos los niveles de la organización.
  2. Crear un documento de diseño de alto nivel (Blueprint), antes de emprender un proyecto piloto, donde se incluya por ejemplo: modelo vertical, capas, formato de mensajes, protocolo de transporte, formas de interaccion (sincronía / asíncrona), reglas y políticas, atomimicidad transaccional, etc.
  3. Alinear los servicios con los procesos de negocio, no hay que olvidar que la meta no es tecnología.
  4. No es suficientes adoptar las tecnologías SOA, es importante conocer las mejores practicas para asegurar, la viabilidad, la visibilidad de las operaciones, y un mínimo esfuerzo ante los cambios.
  5. Definir un lenguaje común para la organización, es decir un modelo de objetos que representen todos o un conjunto de los conceptos de la organización basado en un modelo canónico, por ejemplo “cuenta, debito, ajuste, etc.”.
  6. Establecer conversiones de nombrado para la empresa: por ejemplo, como nombrar los servicios, interfaces, endpoint de sistemas legados, o cualquier otro componente que ayuden a los arquitectos, administradores, y desarrolladores en proporcionar servicios consistentes.
  7. Definir las interfaces de servicios, las implementaciones después: Las interfaces de servicios web son más importantes que las implementaciones.
  8. Establecer una categorización de servicios: Una organización debe decidir una taxonomia de servicios.
  9. Categorizar las reglas (reglas de procesos versus reglas de negocio.
  10. Definir estrategias de interoperabilidad para sistemas basados en plataformas heterogéneas.
  11. Incluir estrategias para pruebas de carga, stress y monitoreo de recursos.
  12. Para proporcionar mayor agilidad y propiedades de configuración, la utilización de un ESB y un UDDI es vital.