10 noviembre 2008

Integración entre aplicaciones SaaS y no-SaaS

Ya se ha explicado en otras entradas de este blog, las ventajas que tienen las aplicaciones que se usan mediante el paradigma SaaS, pero a la vez, esto entraña un inconveniente que voy a tratar de explicar de la manera más sencilla posible.

Las aplicaciones SaaS, por definición, se utilizan como servicio, es decir, se ofrece un modo de acceso a lo que la aplicación ofrece, pero oculta todo lo demás. Cuando una aplicación SaaS se utiliza de forma aislada, no hay ningún problema, todos los datos y procesos están perfectamente aislados y no hay dependencias.

Pero ¿qué ocurre cuando esa aplicación no está aislada? Lo normal es que los sistemas de las empresas tengan dependencias. Por ejemplo, el sistema donde se almacenan los datos de los clientes de la empresa, debe conocer cuándo se consigue un nuevo cliente, evento que ocurre en el sistema de ventas, cuando el vendedor conseguir cerrar el contrato. Esta interacción puede ocurrir manualmente, o sea, le pedimos al vendedor que cuando cierre un nuevo cliente, que meta sus datos en el sistema de Gestión de Clientes, pero ese procedimiento no es práctico cuando el número de clientes o de comerciales es grande, ya que puede dar lugar a errores y omisiones.

En esos casos, se necesita una “interface” que, automáticamente, pase los nuevos clientes del sistema de ventas al sistema de gestión de clientes. Si los sistemas de explotan de manera tradicional (no-SaaS), se pueden personalizar o programar para que esta transferencia se realice.

Pero, supongamos ahora, que es a donde íbamos, que el sistema de gestión de clientes se utiliza mediante SaaS y, por tanto, no conocemos, la manera de transferir automáticamente datos a ese sistema. Pues que tenemos un problema, pero tranquilos, con solución elegante.

La solución son las interfaces abiertas, aquellas que se consideran estándar en el mercado, en este caso, estaríamos hablando de SOA. Se trata de que las aplicaciones SaaS proporcionen un interface “humana” para que los usuario al utilicen en tiempo real, pero también un interface automático para que otros procesos puedan utilizarla de manera efectiva.

En este caso, la aplicación de Gestión de Clientes SaaS deberá proporcionar un interface SOA que permite añadir nuevos clientes y que se pueda enlazar desde la aplicación de ventas no-SaaS.

La otra dirección de la integración también se puede plantear, aunque a priori, parece más complicada. Imaginemos que un cliente no satisfecho hace una llamada poniendo una queja, que queda reflejada en el sistema de Gestión de Clientes SaaS y queremos que esto derive en una tarea para el comercial a cargo de ese cliente, que consista en visitarlo para hablar con él de su queja.

Este proceso implica que se debería modificar la aplicación SaaS para que realice esta transferencia de información a la aplicación no-SaaS. Estas modificaciones, aunque se pueden realizar, normalmente conllevan un coste extra y disminuyen la fiabilidad de la aplicación, ya que no es exactamente la misma que utilizan todos los demás, sino que es una versión específica.

Otra aproximación sería hacer que las aplicaciones SaaS tengan “user-exit” o programas que se ejecuten ante determinados eventos – como la entrada de una queja en nuestro ejemplo – y que mediante interfaces estándar tipo SOA puedan realizar la integración con el sistema no-SaaS. Aunque complicado, es posible.



Dos de los ejemplos de aplicaciones comerciales que se ofrecen mediante SaaS:

- SugarCRM

- Salesforce.com



1 comentario:

alberto dijo...

Me he quedado con ganas de saber más de como resolver el paso de datos de la aplicación SasS a la no-SaaS.
Esta muy bien, muy simple e instructivo-