El qué frente al cómo

martes, 22 de febrero de 2011 0 comentarios
Todo el que me conoce un poco, profesionalmente hablando, sabe que soy un absoluto apasionado de aplicar técnicas orientadas a procesos para la definición de organizaciones y procedimientos. De hecho, es el tema central de mi tesis doctoral la cual estoy reactivando ultimamente

Este enfoque BPM (Business Process Management) se basa fundamentalmente en definir cómo se llevan a cabo un determinado conjunto de acciones cuya finalidad es la consecución de un objetivo, fundamentalmente estrátegico, el cual identifico habitualmente mediante el axioma qué estableciendo su correspondencia en un binomio que-quiero-hacer y como-tengo-que-hacerlo. Esa definición de cómo quiero hacer las cosas se hace en base a lo que se conoce como modelo de proceso de negocio, el cual podemos diseñar usando todo tipo de notaciones de definición de procesos siendo considerada BPMN como el estandar actual para realizar dichas definiciones.

En base a esto hemos tenido experiencias muy satisfactorias, como ya comente con anterioridad, en el departamento de desarrollo de la Secretaría General Técnica del Servicio de Informática de la Consejeria de Empleo de la Junta de Andalucía, definiendo los procesos de negocio de dicho servicio a la hora de gestionar el arranque de nuevos proyectos, las entregas que puedan efectuarse y la evaluación de la calidad de las mismas.

Esta mañana hemos tenido la oportunidad de presentar esta aproximación, así como la integración de esta aproximación con nuestro ecosistema software al responsable de la unidad de testing del proyecto corporativo MADEJA con resultados muy positivos. Como aportación, aqui os dejo un video donde podeis ver el entorno funcionando dandonos soporte para todo el conjunto de procesos de negocio definidos para el arranque de un nuevo proyecto, en concreto 30 procesos de negocio definidos en BPMN, del total de 99 que disponemos actualmente definidos.



Para definir estos procesos hacemos uso de una plantilla lo suficientemente descriptiva para identificar que politicas u objetivos estratégicos (el qué) son las que derivan estos procesos de negocio (frente al cómo), así como otros elementos como artefactos consumidos y generados, actores relacionados en el proceso, etc.

Nuestros siguientes pasos serán la carga de cada una de las definiciones de nuestros procesos de negocio en una herramienta BPM donde podamos guiar al usuario en la consecución de los procesos, monitorizarlos, evaluarlos en base a KPIs, obtener cuellos de botella, etc.


Compárteme en: Eskup Facebook Tuenti Meneame Bitacoras Google Yahoo Windows Live

Mi pequeño grano de arena a Clinker

sábado, 19 de febrero de 2011 0 comentarios
Este es el post que acabo de redactar para los chicos de Klicap:

Uno de los ultimos hitos cumplidos dentro Clinker es el desarrollo de la integracion de este con Redmine, proporcionando la posibilidad de gestionar los usuarios de este último de forma centralizada mediante Clinker SSO. De esta forma se delega en Clinker SSO la responsabilidad de gestionar la autenticación y autorización de usuarios en Redmine garantizando la disponibilidad de este dentro de nuestro ecosistema software. Para llevar esto a cabo, se ha desarrollado un plugin para Redmine, parcialmente basado en el recientemente liberado Redmine JOSSO Authentication Plugin.

Este nuevo plugin tiene como objetivos: (i) gestionar las peticiones de autenticación en Redmine mediante Clinker SSO de tal forma que se gestione el acceso a zonas protegidas, (ii) gestionar los datos del usuario autenticado, sincronizando las propiedades del usuario registradas en Clinker SSO con Redmine, así como permitiendo crear de forma automatica usuarios en Redmine cuando no existan en la base de datos de este pero si en la de Clinker SSO, y por último, (iii) la autorizacion de estos usuarios estableciendo un mapeo entre los roles establecidos para los usuarios en Clinker SSO y su correspondencia en Redmine.

Este plugin, además, deberá ser capaz de recuperar un identificador de sesión de Clinker SSO generado en otra aplicación del ecosistema para autenticar y autorizar al usuario directamente en el momento que acceda a Redmine.

El desarrollo ha consistido en definir un nuevo agente de Clinker SSO para Redmine de tal forma que podamos establecer conexion con la WS API definida para este, y el rediseño del controlador de Redmine que gestiona las peticiones de autenticación de usuarios, AccountController. En el siguiente diagrama ilustra el diseño simplificado de la solución:

 Toda petición de acceso a Redmine nos redirige al formulario de login de Clinker SSO y en caso de autenticación correcta, se lleva a cabo en el controlador la gestión de permisos del usuario autenticado y la autorización del mismo a los recursos en Redmine sobre los que puede tener acceso en base a un determinado rol y para los proyectos en los que este sea miembro.
 Podeis acceder al post original aqui.

Compárteme en: Eskup Facebook Tuenti Meneame Bitacoras Google Yahoo Windows Live

Una tarde en klicap da para mucho

viernes, 4 de febrero de 2011 1 comentarios
Hace ya mas de una semana que les visite y creo que les debía este post a modo de agradecimiento por todo el trato prestado. Y es que, aunque muchos ya los seguimos casi desde sus comienzos, hace tiempo que vienen anunciando en su Twitter la intención de llevar a cabo jornadas de puertas abiertas para darse a conocer, mostrar sus productos y obtener algo de feedback sobre su trabajo.


Así pues, organizamos una cita y tuve el placer de ver el estado actual de uno de sus productos más interesantes, por lo menos para mi, como es el ecosistema software clinker. A mi personalmente me interesa mucho este proyecto ya que he diseñado el actual ecosistema software de la Consejería de Empleo de la Junta de Andalucía y soy el responsable directo de la definición del marco de desarrollo sobre el cual se sustenta, y creo que la alternativa que presentan es bastante notable y puede complementarse con nuestra solución. Así pues, estuvieron mostrándome los entresijos de los plugins que han desarrollado para JOSSO y las integraciones que han realizado entre este y Hudson y Sonar. He de confesar, que el 90% del germen de mi plugin de integración de Redmine y JOSSO esta en gran parte motivado por esta visita. 

En resumen, me lo pase en grande aquella tarde y desde estas lineas, quiero mostrarles de nuevo mi agradecimiento por pasar una tarde muy positiva, mi apoyo total a su modelo de negocio y desearles mucha suerte en todo lo que emprendan. Son muy grandes a pesar de ser tan pocos.


Compárteme en: Eskup Facebook Tuenti Meneame Bitacoras Google Yahoo Windows Live

Integrando Viafirma en Redmine

1 comentarios
Llevo varios días interesándome por la plataforma Viafirma, desarrollada por Viavansi, y es que considero que es la mejor alternativa a día de hoy para disponer de un entorno basado en m-government real. Yo hace ya tiempo que la conocía, y de hecho siempre la he recomendado como alternativa a otras plataformas de autenticación y firma digital. La última referencia que di de ellos fue en mi ponencia de administración electrónica de las II Jornadas de Conocimiento Libre y Web 2.0 de la Universidad de Cádiz.

El caso es que me pico la curiosidad y tras desarrollar el plugin de integración de JOSSO y Redmine, y ojear la documentación de la zona de desarrolladores de Viafirma que han puesto a disposición de todos para realizar integraciones, me propuse hacer una integración rápida entre Redmine y Viafirma para gestionar la autenticación de usuarios de Redmine haciendo uso de certificados digitales. Dado que es un experimento me propuse hacerlo rápido, poco menos de cinco minutos, haciendo uso de los clientes de integración que hay disponibles y de la distribución SaaS de Viafirma. En este caso opté por hacer uso del cliente de PHP de tal forma que pense lo siguiente:

  • En primer lugar llevar a cabo el desarrollo de un pequeño plugin de Redmine donde solo tendria que rediseñar el controlador AccountController al igual que hice para el plugin de autenticación de Redmine mediante JOSSO de tal forma que capturase la petición de login de Redmine y me gestionase la redirección al servicio de Viafirma para llevar a cabo la autenticación. 
  • A continuación, tras llevar a cabo la configuración del cliente de PHP y levantarlo en un servidor Apache, reescribí el index.php, para que directamente me redireccionará a openidLogin.php, de tal forma que cuando se lleve a cabo la petición de autenticación, me aparezca lo siguiente:

 

  • A continuación Viafirma se encarga de obtener los datos de mi certificado y este lleva a cabo la redirección a quien realizo la petición, en este caso el cliente, tal y como se puede ver en la captura mostrada. Tras esto, me limite simplemente a modificar levemente dentro de openidLogin.php la URL de retorno tras el proceso de autenticación, redireccionando la petición a end.php, un pequeño script en PHP que en caso de autenticación satisfactoria vuelve a redirigirme a Redmine invocando nuevamente al controlador de la petición login, con los datos de mi certificado, de tal forma que este controlador ya no invoca de nuevo al servicio de Viafirma sino que cruza los datos de mi certificado con sus usuarios. En caso de que exista algun usuario dado de alta en Redmine con el identificador numberUserId el controlador gestionará la autenticación de este mostrando además los datos de su certificado como podemos ver aquí

Et voilá! sencillo y rápido. Como ya comente, quería solo experimentar. Evidentemente, lo elegante habría sido desarrollar un cliente en Ruby para Viafirma, pero no tengo tiempo ahora mismo para eso, así que de momento, esta es la solución rápida. Acabo de liberar el código de este ejemplo bajo licencia GNU GPL v2, así como las modificaciones del cliente de Viafirma en Github, y he indexado el plugin en el directorio de Redmine


Compárteme en: Eskup Facebook Tuenti Meneame Bitacoras Google Yahoo Windows Live

Redmine JOSSO Authentication Plugin

miércoles, 2 de febrero de 2011 2 comentarios
Así es como se llama mi nuevo proyecto personal al que por fin he terminado de dar forma, intercalandose en el tiempo a la finalización de otro de mis plugins para Redmine, concretamente el de integración con Enterprise Architect. El objetivo de este plugin es poder gestionar el acceso a Redmine mediante un sistema de Single Sign-On (SSO), de tal forma que podamos reutilizar esa instancia de autenticación para acceder a otras aplicaciones donde se requieran credenciales de acceso. En esta ocasión he optado por hacer uso de JOSSO (Java Open Single Sign-On).

Tal y como anuncie ayer en mi Twitter, he llevado a cabo la liberación de este plugin en Github bajo licencia GNU GPL v2, asi como su publicación e indexación en el nuevo directorio de plugins oficiales de Redmine

El proceso de instalación del mismo es el habitual para otros plugins con la salvedad de que se requiere invocar a un pequeño script de inicialización que completa la gem josso-client para su correcto funcionamiento. A continuación, en función del entorno RAILS_ENV que se este usando para la instancia de Redmine sobre la que instalar el plugin, se llevara a cabo la configuración del mismo en el fichero config/josso_config.yml

1
2
3
4
5
6
7
8
9
development:
 enabled: true
 josso_root: http://localhost:8080/josso/
 partner_application_entry_url: http://localhost:81/redmine/login/
 session_timer: 1800
 josso_identity_manager: services/SSOIdentityManagerSoap
 josso_identity_provider: services/SSOIdentityProviderSoap
 josso_session_manager: services/SSOSessionManagerSoap
 josso_ws_timeout: 3000000

En este ejemplo podemos ver la configuración para el entorno de desarrollo, donde especificamos donde se encuentra la instancia de JOSSO sobre la que vamos a trabajar, asi como los puntos de acceso a los servicios web que nos proporciona, y la URL de Redmine sobre la que se va a realizar un punto de extension de su controlador para adaptarlo a nuestras necesidades.

En el siguiente video podeis ver un ejemplo del plugin en funcionamiento, en el cual se muestra como se gestiona el acceso de dos usuarios desde dos navegadores distintos, así como la gestión de permisos de estos dentro de Redmine una vez autenticados. 





Un par de detalles antes de concluir. Este plugin solo se ha centrado en la autenticación de los usuarios en Redmine, no en la gestión de los roles y/o permisos asociados de los mismos delegando esta responsabilidad totalmente a Redmine. Otra de las limitaciones es que no se posibilita por ahora la permutación de metodos de autenticación, así como el registro de nuevos usuarios, el cual no se sincroniza con los usuarios de JOSSO.  Por lo tanto, si queréis agregar nuevos usuarios tendréis que añadirlos también a JOSSO además de a Redmine. 


Compárteme en: Eskup Facebook Tuenti Meneame Bitacoras Google Yahoo Windows Live

Parecidos no tan razonables

1 comentarios
Esta semana pasada he tenido el placer, suerte, o desgracia, según como se quiera mirar, de comprobar cómo iniciativas tan enriquecedoras para nuestra sociedad como el Open Government pueden llegar a ser totalmente tergiversadas por las administraciones. Me explico. Algo que estamos muy acostumbrados a ver todos los días los que trabajamos con plataformas de tramitación electrónica, es por ejemplo, recibir documentos firmados por mas de un firmante donde uno firma mediante firma manuscrita y el otro mediante firma electrónica. Esta acción acarrea los problema legales de no poder verificar la firma del primero, y la imposibilidad de disponer del documento original firmado, obteniendo en su lugar una copia obviamente escaneada o pretratada para insertar la firma manuscrita que puede haber sido manipulada. Es lamentable, pero cierto y real. Ocurre todos los días, y aún así se nos llena la boca diciendo que somos "los masca" en cuanto administración electrónica se refiere. 

A modo personal creo que las cosas tienen que llamarse por su nombre y también creo que si una administración pública hace un esfuerzo a nivel técnico y mediático para promulgar y promover iniciativas tales como esta, es de recibo que se entre por esa linea desde el primer momento, comprobando y auditando que situaciones como esta no se den, y esta es solo un ejemplo, hay muchas más circunstancias y situaciones tanto técnicas como organizativas aún por pulir.

Pues bien, este sentimiento es el mismo que he tenido esta semana pasada al hilo de las siguientes dos noticias y su relación directa e indirecta con la iniciativa Open Government que esta arrancando su andadura en nuestras administraciones.

La primera viene de la mano del siguiente tweet del canal del Proyecto Aporta donde se informaba de la actualización en su web de enlaces de nuevas iniciativas de #opendata a nivel mundial. Hasta aquí todo bien, pero llamo especialmente mi atención una iniciativa nacional que no conocía, concrétamente Reutiliz@ del Gobierno de Extremadura. Accedo a su espacio web y compruebo que disponen de un catalogo RISP, supuestamente información reutilizable del sector público. Lo que encuentro, nada tiene que ver con eso, mas bien un listado de posibles y futuros datos a abrir organizados en base a la estructura orgánica de la consejería que aporta esta información a la ciudadania. Entiendo que es un proyecto piloto, y que es una primera fase de algo que seguramente será mucho más, seguramente comparable al resto de iniciativas del Pais Vasco, Asturias, o Cataluña, entre otras. Pero de ahi, a decir que se dispone de un catalogo RISP, pues hay un abismo. Podría ser más benevolente y entender que si la información que se me proporciona es #opendata, cito textualmente "en formato pdf" o "en formato html", pues seria una solución #opendata con el nivel más bajo dentro de la categoria de extracción de datos establecido. Así podría considerar por ejemplo que toda web que publique estadisticas en formato HTML, por poner un ejemplo Observatorio Argos, donde puedo ver el indice de paro registrado por mes en Andalucía, proporciona un catalogo RISP, cuando no es así. Ya vimos que podría incluso extraer la información que este tipo de sitios web aporta mediante mashups de datos, pero esto acarrea tambien problemas de mantenimiento, por lo que no es nada recomendable optar por esta solución. Quizás un primer paso debería haber sido llevar a cabo un llamamiento a la participación ciudadana solicitando que datos se desea reutilizar, tal y como se esta haciendo ahora mismo en Navarra

La segunda de las noticias que llamo mi atención con respecto al Open Government fue la que se publico el pasado domingo en la edición impresa y digital de El Pais Andalucía titulada: La data molesta del BOJA. En este articulo se contaba la experiencia de un ciudadano almeriense que solicita la eliminación de la palabra "Sevilla" de las cabeceras del boletin. Quizás sea un tema menor para algunos, aunque a mi personalmente no me lo parece, y estoy totalmente de acuerdo con lo que este ciudadano solicita a la administración. El problema es que el trasfondo de todo esto es que una queja propuesta bajo un paraguas basado en el fomento de la participación ciudadana, acaba con una salida por la tangente basada, como no, en la incapacidad del sistema informático que confecciona el boletín. 

En fin, quizás esto sea lo que nos depara el destino, volver a tropezar con la misma piedra y ver como las cosas no terminan de arrancar, tal y como esta pasando con la administración electrónica a día de hoy. El caso es que aún hay que pulir y recorrer mucho para que podamos hablar de gobiernos 2.0. Sirva este post como critica total y absolutamente constructiva, donde el único afán es levantar un poco la mano sobre situaciones que aún podemos evitar.



Compárteme en: Eskup Facebook Tuenti Meneame Bitacoras Google Yahoo Windows Live