CloudCamp México 2010

“El espacio profesional para compartir ideas de tecnologías T.I. y servicios en la nube

Regístrate en CloudCamp México dando click aquí

Redes Sociales:
Twitter
Linkedin
Google Groups
Facebook


Publicado en CloudCamp Mexico | Etiquetado , , , , , | Deja un comentario

Agenda definitiva y detalles del evento

El día ha llegado, estamos a unas horas del CloudCamp en México, aquí dejamos la agenda definitiva y algunos detalles del evento.

16:00 Registro y Networking.
16:10 Bienvenida, Introducción a CloudCamp.
16:40 Presentaciones relámpago (5 minutos)

1) ¿Cómo emprender un negocio en la nube? – Héctor Gutierrez de FUMEC
2) Migrando hacia aplicaciones Multi-Tenant – Juan Pablo Andrade
3) ¿Porque y como desarrollar aplicaciones en plataformas Cloud? – Daniel Rubio
4) Plática relámpago de Oscar Mondragón
5) Plática relámpago de Mauricio Angulo.
6) Beneficios de SaaS para la empresa Mexicana – José Omar Mosco Rojas de SERTI

17:10 Anti-panel
17:45 Introducción a las des-conferencias
18:00 Primera sesión de des-conferencias incluyendo Sesión especial del FUMEC*: Oportunidades de Negocio en la nube
18:45 Comida y Networking
19:00 Segunda sesión de des-conferencias
19:45 Tercera sesión de des-conferencias
20:30 Resumen de la des-conferencia
21:00 Go out for drinks!

* Sesión de FUMEC: Presentada por Héctor Gutierrez.

Bibliografía: Héctor Arturo Gutiérrez Calderón, Ingeniero en Computación egresado de la Universidad Nacional Autónoma de México y cursando una maestría en Administración de Tecnologías de Información en el Tecnológico de Monterrey Campus Estado de México. Ha impulsado fuertemente el uso de las tecnologías de información para facilitar los procesos pedagógicos en la División de Educación Continua y a Distancia de la UNAM y actualmente es Asesor Tecnológico Empresarial de la Fundación México Estados Unidos para la Ciencia apoyando a la coordinación de Tecnologías de Información.

Detalles de acceso:

Escuela Superior de Computo, nos ofrece estacionamiento gratuito a los visitantes, para entrar a la escuela solo es necesario registrarse como visitantes.

El evento se realizara en la sala 14 de usos múltiples de la ESCOM, en la entrada daremos información de la ubicación y medios de acceso.

Muchas Gracias

Publicado en Uncategorized | Etiquetado , , , , , , , | Deja un comentario

Actualizacion de Agenda Cloud Camp Mexico

Estamos a una semana del evento y presentamos una actualización de la agenda a presentarse durante el Cloud Camp Ciudad de México, queremos destacar la participación de FUMEC (Fundación México-Estados Unidos para la ciencia)

16:00 Registro y Networking.
16:10 Bienvenida, Introducción a CloudCamp.
16:40 Presentaciones relámpago (5 minutos)

1) Beneficios de SaaS para la empresa Mexicana – Ing. José Omar Mosco Rojas

2) Rentabilizando Cloud Computing – Yosu Cadilla

3) Migrando hacia aplicaciones Multi-Tenant – Juan Pablo Andrade

4) Plática Relámpago – Iván Zavala de FUMEC

5) Por definir

6) Por definir

17:10 Anti-panel
17:45 Comida y Networking
18:00 Introducción a las des-conferencias
18:10 Primera sesión de des-conferencias  18: 10 Platica de Iván Zavala FUMEC (Sala independiente)
19:00 Segunda sesión de des-conferencias
19:50 Tercera sesión de des-conferencias

20:40 Resumen de la des-conferencia
21:00 Go out for drinks!

Por otra parte se extiende la invitación para que participes tu o miembros de la empresa donde laboras en alguna plática relámpago y puedan compartir con los asistentes sus conocimientos o experiencias sobre Cloud Computing.

La semana pasada se registrarón dos propuestas para pláticas relámpago en el grupo para ser sometidas a votación:

¿Porque y como desarrollar aplicaciones en plataformas Cloud? – Daniel Rubio
“Interoperabilidad entre Cloud Apps” – Angel Reyes

Les recuerdo que las pláticas son 100% didácticas y no deben de contener algún tipo de mensaje comercial, ni mucho menos marcas.

Por favor, inviten a sus contactos a votar por cada plática, vía redes sociales, correo electrónico, para que vengan al grupo y juntos tomemos una decisión.

La votacion puede efectuarse directo en el grupo de linkedin o con un comentario en el blog.

Gracias

Publicado en Uncategorized | Etiquetado , , , , , , | Deja un comentario

Agenda del Cloud Camp Ciudad de México

Presentamos la agenda tentativa a presentarse durante el Cloud Camp Ciudad de México:

16:00 Registro y Networking.
16:10 Bienvenida, Introducción a CloudCamp.
16:40 Presentaciones relámpago (5 minutos)

1) Beneficios de SaaS para la empresa Mexicana – Ing. José Omar Mosco Rojas

2) Rentabilizando Cloud Computing – Yosu Cadilla

3) Migrando hacia aplicaciones Multi-Tenant – Juan Pablo Andrade

4) Por definir

5) Por definir

6) Por definir

17:10 Anti-panel
17:45 Comida y Networking
18:00 Introducción a las des-conferencias
18:10 Primera sesión de des-conferencias
19:00 Segunda sesión de des-conferencias
19:50 Tercera sesión de des-conferencias

20:40 Resumen de la des-conferencia

21:00 Go out for drinks!

Por otra parte se extiende la invitación para que participes tu o miembros de la empresa donde laboras en alguna plática relámpago y puedan compartir con los asistentes sus conocimientos o experiencias sobre Cloud Computing.

Medios de contacto:

José Omar Mosco

jose.mosco@serti.com.mx

Yosu Cadilla

yosu.cadilla@gmail.com

Publicado en Uncategorized | Deja un comentario

Webinar: Beneficios y Oportunidades del Cloud Computing

Previo al Cloud Camp México, estaremos platicando sobre Cloud Computing mediante un webinar que organiza la red empresarial de Axeleratum.

Ahí platicaremos sobre como en la nube se pueden crear nuevas oportunidades de negocio y como esta puede cambiar en muchos aspectos, la forma en que operan muchas empresas.

El titulo del Webinar es: “Beneficios y Oportunidades del Cloud Computing”

Para asistir al evento en linea es necesario que pulsen sobre la siguiente dirección y llenen un formulario de registro.

https://www2.gotomeeting.com/register/688999739

Extendemos la invitación para sus contactos, colegas, clientes, proveedores, partners, etc; que tengan gusto o inquietud sobre Cloud Computing.

La fecha es el Miércoles 6 de Octubre de 2010
Hora: 9:30 AM

Anexo presentación del Webinar

Esperamos contar con su asistencia.

José Omar Mosco Rojas

Publicado en Uncategorized | Etiquetado , , , , , , , | Deja un comentario

Organizadores del Cloud Camp México 2010

Presentamos al equipo organizador del Cloud Camp México, en el cual existe participación interdisciplinaria que permite apoyar a CloudCamp.org en diferentes áreas.

Alexis Ramírez García

Es originario de la ciudad de Puebla, decidió estudiar la carrera de diseño gráfico en la Benemérita Universidad Autónoma de Puebla (BUAP), durante sus estudios tuvo la oportunidad de desarrollar la gráfica y publicidad de diversos proyectos profesionales y personales, algunos de ellos siendo eventos de nivel nacional, lo cual lo ayudo a desarrollar sus habilidades para expresar y comunicar, después de la universidad laboro con diversas empresas para campañas publicitarias desde productos cafetaleros hasta desarrollo web de buscadores. Actualmente labora en la ciudad de México como diseñador en la empresa SG (Software Gurú) y participa como freelance enfocado en las áreas de T.I.

Lacendi Calderón

Ingeniero en Desarrollo de Software y director de Impulsos.net y Unibusqueda.
Ha participado como consultor en la dirección de proyectos Web y de Software en diversas empresas supervisando el proceso de desarrollo e implementación exitosa del mismo
Ha impartido diversas pláticas en conferencias enfocadas a Ingeniería Web, Desarrollo de Software y Ciencias de la Tierra, así como escrito para publicaciones especializadas en el área de T.I.; sus artículos se han reimpreso en periódicos como El Sol de Puebla y Síntesis.
Es miembro del comité coordinador del Agile Project Leadership Network capítulo México.

Alejandro Escamilla

Ingeniero en Desarrollo de Software, ha trabajado como Gerente de Operaciones en B2B Consultores, participó como Analista de Calidad en Avantare Consultores, colaborador editorial en la revista “Siempre Unidos” publicada por  la Universidad La Salle. Integrante del Comité Coordinador de MexAPLN y Consultor Externo en Impulsos.net en las áreas de Procesos de Calidad en diferentes Metodologías en Desarrollo de Software.
Actualmente se desempeña como Coordinador Editorial en la Revista Software Gurú.

Juan Pablo Andrade

Labora en el área de Business Transformation & Information Technology en IBM Campus Guadalajara. Cuenta con más de 5 años de experiencia profesional de desarrollo de aplicaciones desktop y web, con lenguajes como Java, C#, C++ y PHP. Ha participado en propuestas clave para el desarrollo de centros de datos verdes, bajo la propuesta de Smart Planet de IBM, en aplicaciones como IBM Systems Director. En sus proyectos, ha realizado roles como Desarrollador, Pruebas y Líder de Equipo, siempre con resultados promisorios. También cuenta con amplia experiencia en el ámbito de Cloud Computing y Software on Demand y, adicionalmente al desarrollo de aplicaciones bajo éstos esquemas, ha desempeñado papeles de promotor de estas nuevas tecnologías dentro y fuera del país.
Cuenta con un interés especial a las nuevas tecnologías que permitan disminuir costos de operación en empresas micro, pequeñas y medianas.
Estudió Ingeniería en Sistemas Computacionales en el ITESM Campus Guadalajara y actualmente cursa la Maestría en Ciencias de la Computación con especialidad en Ingeniería de Software en la misma institución.

José Omar Mosco Rojas

Ingeniero en Sistemas Computacionales egresado de la Escuela Superior de Computo del IPN, ha participado en proyectos con empresas nacionales y estadounidenses en plataformas Java y Microsoft, tiene un gusto por metodologías agiles, social media y cloud computing y dispositivos móviles; actualmente dirige el área Comercial en SERTI creando/distribuyendo productos y servicios conectados a la nube y social media.

Publicado en Uncategorized | Deja un comentario

La Oportunidad SaaS para Empresas de Software Mexicanas

Por Pedro Galván

El esquema de Software as a Service (SaaS) se está convirtiendo en una alternativa atractiva para desarrollar productos de software y lanzarlos al mercado. Bajo este paradigma, las aplicaciones son instaladas, hospedadas, ejecutadas y actualizadas en centros de datos externos, de tal forma que los usuarios simplemente deben conectarse por Internet para utilizarlas.

El mercado de SaaS está creciendo a un ritmo impresionante. Gartner estima que el mercado actual de SaaS es de poco más de 6 billones de dolares que equivalen a un 6% del mercado total de software, pero que para el 2012 tendrá un tamaño cercano a los 20 billones de dólares, representando un 25% del mercado total de software.

Por sus características y potencial, el segmento de SaaS plantea una oportunidad muy viable y atractiva para las empresas desarrolladores de software en México y América Latina. Quienes mayor provecho pueden sacar de ofrecer aplicaciones y servicios bajo este esquema son aquellas pequeñas empresas que cuentan con capacidad técnica y de ejecución de proyectos, pero que carecen de la infraestructura y capital para competir en el mercado tradicional de soluciones de software. A través de una operación por Internet, los proveedores de software pueden tener clientes en cualquier lugar en el mundo sin necesidad de contar con una fuerza de ventas distribuida internacionalmente. Adicionalmente, el tamaño del mercado global se convierte en una herramienta para atraer capital de inversión hacia estas empresas.

Los empresarios de la industria de software en México tienen la obligación de considerar seriamente la incursión en el segmento de SaaS; al corto plazo por la gran oportunidad de crecimiento y rentabilidad que representa, y al largo plazo porque eventualmente este será el paradigma de facto para la adquisición y entrega de software. Es decir que aquellas empresas que no tengan la capacidad de desarrollar y entregar software como servicio, quedarán fuera de la industria o relegadas a nichos muy pequeños.

Este artículo está dividido en dos partes: primero presentamos un análisis sobre la oferta actual de SaaS con la intención de que el lector detecte oportunidades para incursionar, y posteriormente presentamos una lista de puntos a considerar al desarrollar una oferta SaaS.

Clasificación de infraestructura y aplicaciones SaaS
La clasificación de la oferta SaaS que considero más adecuada es la que propone Forrester en el reporte “Future View: The New Tech Ecosystem of Cloud, Cloud Services and Cloud Computing”. En dicho reporte se argumenta que la oferta de SaaS y cloud computing (que son usados como sinónimos) está formada por cinco mercados distintos, los cuales se agrupan en dos categorías: una dirigida a usuarios finales y la otra a organizaciones de TI. La figura 1 ilustra dicha clasificación.

La oferta para usuarios finales está dividida en dos segmentos:
• Servicios para consumidor. Servicios tipo web 2.0 dirigidos a personas individuales. Su modelo de negocio típicamente está basado en publicidad. Ejemplos populares de esta categoría son: Flickr, Facebook, last.fm y Grooveshark.
• Aplicaciones para empresas. Aquí se consideran aplicaciones web dirigidas a usuarios empresariales. Su modelo de negocio típicamente está basado en un esquema de renta o pago por uso. En este segmento podemos considerar servicios como: Basecamp, Manymoon o SugarCRM (en su versión hospedada).

A nivel técnico, ambos segmentos son muy similares, ya que ambos tipos de servicio se desarrollan y entregan de la misma forma. Sin embargo, lo que difiere es el modelo de negocio y por ello Forrester insiste en que son dos mercados diferentes. Por otro lado, cada vez nos encontramos con más servicios que ofrecen una modalidad gratuita y otra versión de paga con algunos extras en cuanto a la funcionalidad y nivel de servicio. Este modelo híbrido es conocido como “Fremium”.

La oferta SaaS para organizaciones de TI está dirigida a atender las necesidades de las personas y organizaciones que deseandesarrollar y entregar sus propias aplicaciones bajo un esquema de cómputo en la nube. Es así que podemos distinguir los siguientes tres segmentos de mercado SaaS dirigidos a organizaciones de TI:
• Componentes aplicativos como servicio. Componentes accesibles como servicio web que los desarrolladores utilizan para ensamblar o complementar sus propias aplicaciones web. Un ejemplo común es el de los servicios de mapeo tales como Google Maps y Yahoo! Maps. Un ejemplo
dirigido al segmento empresarial es el de Avalara, que provee componentes para el cálculo de impuestos que los desarrolladores
pueden integrar dentro de sus aplicaciones web empresariales.
• Plataforma como servicio (PaaS). No todas las aplicaciones de cómputo en la nube podrán ser ensambladas como mashups a partir de componentes existentes. En muchos casos se requiere desarrollar apoyándose en algún middleware que provea servicios como el de una base de datos, por ejemplo. La plataforma Azure de Microsoft, que incluye elementos como .NET Services o SQL Azure, cae en este segmento.
• Infraestructura virtual como servicio. También conocido como “hardware como servicio” (HaaS), este segmento se refiere a la oferta de servicios de infraestructura de cómputo y almacenamiento en la nube. Tal vez el ejemplo más conocido sea el Amazon Elastic Compute Cloud.

Teniendo en cuenta esta clasificación de la oferta SaaS, cada lector podrá identificar donde considera que puede incursionar y armar una oferta competitiva y sustentable. Mi opinión personal es que para las empresas desarrolladoras de software en países en vías de desarrollo como México y América Latina lo que tiene más sentido es enfocarse en el segmento de aplicaciones para empresas, y componentes aplicativos como servicio.

En el caso del segmento de servicios para consumidores, hay que tener en cuenta que aún no hay un modelo de negocio exitoso. Incluso servicios tan populares como Twitter y Facebook todavía están buscando un modelo rentable; encontrarlo es una gran oportunidad. Por otro lado, en el segmento de aplicaciones para empresas hay modelos de negocio más claros y sustentables. Este segmento de aplicaciones para empresas requiere enfocarse en nichos muy específicos, pero esto no es problema en cuanto al tamaño de mercado. Recordemos que al hablar de SaaS el mundo es nuestro mercado, así que un nicho por muy específico que sea puede tener decenas de miles de clientes.

Considero que la incursión en estos segmentos requiere de cantidades significativas de capital (tanto para desarrollar como para lanzar y sostener el servicio) y vinculación con agentes clave que habiliten al start-up a cumplir su potencial. Estos dos elementos, capital de riesgo y vinculación, no se encuentran en cualquier lugar; por algo Silicon Valley es Silicon Valley. Mi recomendación para las empresas que deseen incursionar en los servicios web para consumidores es apoyarse en alguna incubadora o aceleradora de negocios globales, como es el caso de TechBA para empresas mexicanas, que les sirva de plataforma para acercarlos con agentes clave de capital de riesgo y vinculación.

Los segmentos de infraestructura como servicio y plataforma como servicio están destinados para las grandes empresas de tecnología que tienen acceso a grandes cantidades de capital, así como infraestructura de cómputo y telecomunicaciones de primer nivel a bajo costo. Supongo que estarán de acuerdo conmigo en que este es un segmento en el que las empresas de nuestra región difícilmente podrán competir.

Antes de cerrar esta sección, quiero poner sobre la mesa la oportunidad que tienen los gobiernos en nuestros países de fomentar soluciones SaaS al permitir la interacción con sus sistemas por medio de servicios web con APIs abiertos. Imaginemos que fuera posible desarrollar componentes aplicativos como servicio que realizaran acciones como registrar o actualizar personal en el IMSS, o pagar impuestos. Esta estrategia ha sido bautizada como “Gobierno como Plataforma” y representa una gran oportunidad de innovación para las empresas de software, y mejora de servicio para los ciudadanos.

Recomendaciones para desarrollar oferta SaaS
Hemos analizado los mercados de SaaS y reconocido donde puede haber oportunidades para nuestras empresas. El siguiente paso podría ser sentarnos a desarrollar una oferta SaaS para nuestra empresa. Pero antes de hacerlo, considero prudente revisar algunas recomendaciones que nos ayuden a mejorar la probabilidad de éxito de nuestra oferta SaaS.

El blog chaotic-flow.com es una excelente fuente de información y perspectivas sobre el negocio de SaaS. El autor, Joel York, publicó un documento titulado “The Top Ten Do’s and Dont’s of SaaS”. Algunas de las recomendaciones dadas ahí pueden aplicar más al segmento de servicios para consumidor, y no tanto al de servicios para empresas, pero aun así considero que es buena lectura y les ayudará a mejorar sus ideas.

A continuación comparto las diez recomendaciones principales de Joel York al crear una oferta SaaS:
1. Escoge un mercado grande. No escribas una sola línea de código hasta que tengas idea del tamaño de tu mercado potencial y estés seguro de que valga la pena.
2. Crea un espacio central en la Web. Crea un espacio útil en el web y atrae a tus usuarios (reales y potenciales) hacia él.
3. Acelera el crecimiento orgánico. SaaS involucra un paradigma donde los clientes compran (pull) a diferencia de uno donde la empresa vende (push). El personal de ventas y marketing debe actuar más como catalizadores que como vendedores, deben estimular la demanda y facilitar la compra por medio de la comprensión del comportamiento natural de sus clientes.
4. Desarrolla una historia convincente. Recuerda que los clientes no compran productos, compran historias.
5. Incorpora el negocio dentro del producto. A diferencia del modelo tradicional de software donde entregas un producto de software (por ejemplo un CD) y no sabes qué sucede con él una vez que es comprado, SaaS
permite que tu producto esté directamente con tus clientes, y directamente con tus sistemas internos. Reconsidera tus procesos de negocio teniendo esto en cuenta.
6. Piensa más allá del firewall. SaaS abre oportunidades para que la comunicación e interacción no se quede solo dentro de una organización. Considera las oportunidades para interactuar con los agentes externos a tu organización tales como clientes, prospectos, prospectos de tus clientes, aliados y clientes de tus aliados.
7. Monetiza creativamente. No te cierres al esquema tradicional de cobrar por el acceso a tu software. Considera otras posibilidades como publicidad, comisiones por referencia, pago basado en niveles de servicio, etcétera.
8. Habilita la personalización masiva. Tus clientes tendrán necesidades únicas. Una oferta exitosa de SaaS permite que sus
clientes puedan usarlo de distintas formas y adaptarlo a sus necesidades sin necesidad de que el proveedor tenga que hacer algo a la medida.
9. Ábrete a la nube. Así como debes tender la mano hacia el Web para atraer clientes, también debes tender la mano hacia otras aplicaciones en el Web que complementen tu oferta, porque tu producto no se podrá mantener por sí solo. ¿Tu oferta SaaS es amigable con la nube? ¿Cuentas con un mecanismo abierto y basado en estándares para interactuar con otras aplicaciones en la nube?
10. Desarrolla y aprovecha a tu comunidad. Una comunidad de usuarios satisfecha es tu mejor fuerza de ventas.

La versión completa del documento de Joel York se puede descargar en www.saas-business.com. Se los recomiendo ampliamente.

Conclusión
SaaS representa una gran oportunidad para las empresas desarrolladoras de software en países como México. Hay que tener en cuenta que no existe un solo mercado de SaaS, sino distintos mercados dirigidos tanto a usuarios finales como a organizaciones de TI, y cada uno tiene sus oportunidades y retos. Las empresas que deseen desarrollar una oferta SaaS deben analizar cual es el segmento donde tienen mayor probabilidad de éxito y diseñar una estrategia consistente.

Referencias
[1] Frank E. Gillet. “Future View: The New Tech Ecosystems Of Cloud, Cloud
Services, And Cloud Computing”. Forrester Research, Agosto 2008.
[2] Joel York, “The Top Ten Dos and Don’ts of SaaS”. http://www.saas-business.com
[3] Natán Saad-Lipshitz. “Trends and perspectives in the Development of Software as a Service (SaaS) Products”.

Fuente: Revista Software Guru 25

Publicado en Uncategorized | Deja un comentario

Desarrollo de Aplicaciones en Plataformas Software as Service:¿Modelo,Plataforma o Servicio?

Por Javier Mijail Espadas

Recientemente me encontraba impartiendo una clase de Arquitecturas de Software. En un experimento rápido pregunté si alguien conocía el término Software-as-a-Service (SaaS). La respuesta fue una rotunda negativa de todos. Luego pregunté si alguien había usado alguna vez Google Docs y la gran mayoría respondió afirmativamente. Les comuniqué mi conclusión: aunque no conocían el término, ya habían usado SaaS.

Ahora bien, antes de definir ciertos conceptos en cuanto a este tema,creo que es importante mencionar algunas tendencias de negocioen este mercado; Gartner predice que:
•    Para el 2010, 20% de las compañías de comercio electrónico usarán el modelo SaaS y 15% de las grandes compañías reemplazaránsus soluciones de ERP con soluciones basadas en SaaS.
•    Para el 2011, 25% de los nuevos negocios de software usarán el modelo SaaS.
•    Para el 2012, las suites de BPM (Business Process Management) serán embebidas en soluciones SaaS y más del 66% de los ISVs (Independent Software Vendors) ofrecerán sus servicios como SaaS.

IDC también estima que las empresas gastarán US$14.8 billones en soluciones SaaS y que dos de cada tres negocios considerarán comprar software con modelos de subscripción. Estas cifras son verdaderamente importantes, ya que representan un amplio mercado en la industria del software para los próximos años. Ejemplos de negocios que usan este enfoque son Salesforce.com, Google Apps, Appian, OpSource, CogHead, entre otros. Con esta tendencia, es importante también definir la forma en que este tipo de software es desarrollado y entregado al cliente. Este artículo analizará este aspecto y sus implicaciones en la metodología tradicional del desarrollo del software.

Conceptos SaaS
Para comenzar, podemos decir que SaaS no es una tecnología ni una metodología. Tampoco es un modelo de negocio específico. SaaS es un enfoque que consiste en varios componentes:
•    Un modelo de negocio basado en subscripción.
•    Una plataforma SaaS que permite desarrollar y desplegar aplicaciones sobre demanda.
•    Proveedores que desarrollan y/o comercializan esas aplicaciones.
•    Un modelo de entrega a través de Internet hacia múltiples clientes.

El modelo de subscripción debe soportar diferentes tipos de cobro, como son pago por transacción o periodo de tiempo. Los clientes de SaaS, a diferencia de los modelos ASP (Application Service Provider), son entidades de negocio y no usuarios finales. La plataforma SaaS provee soporte para diferentes aplicaciones, tanto las que son entregadas para los clientes como para aplicaciones propias de los proveedores. Comúnmente se usa el termino tenant para referirse tanto a los clientes como proveedores que usan la plataforma para consumir o proveer las aplicaciones SaaS.
•    Plataforma SaaS. Una plataforma debe proveer infraestructura (tanto de hardware como de software) que soporte el desarrollo y entrega de aplicaciones sobre Internet como servicios. Arquitecturas comunes tienen los siguientes atributos de diseño:
1.    Multi-tenant. La arquitectura soporta múltiples clientes y proveedores.
2.    Versión simple. Existe una versión de cada aplicación y es compartida para todos los clientes.
3.    Separación lógica de datos. Cada tenant tiene su propio dominio de información, pero almacenados en una misma base de datos.
4.    Contenedor de dominio. Es un punto de entrada a las aplicaciones de un proveedor.
5.    Integración de aplicaciones. Las aplicaciones SaaS deben comunicarse entre sí, pero mantenerse independientes.
6.    Componentes de soporte. La plataforma proporciona componentes compartidos para las aplicaciones: seguridad y autenticación, manejo de cuentas de usuario, logging, control de uso y métricas, soporte para diferentes modelos de subscripción, entre otros componentes importantes.

Figura 1. Arquitectura SaaS

La figura 1 muestra la arquitectura de alto nivel de una plataforma SaaS. En el nivel más alto se encuentran las aplicaciones proporcionadas por los proveedores. La plataforma expone componentes de soporte para estas aplicaciones. Otros servicios son de meta-datos y administración de tenants. Infraestructura de software y hardware también es proporcionada por la plataforma. Sobre esta arquitectura, las aplicaciones SaaS son desarrolladas, desplegadas y entregadas a un número considerable de clientes.

•    Aplicación SaaS. Básicamente, una aplicación es una serie de módulos y funciones que puede ser desplegada bajo demanda dentro de una plataforma. Una aplicación SaaS es desarrollada acorde a la plataforma que la soporta. Las características de estas aplicaciones pueden definirse como sigue:
1.    Accedidas por Internet.
2.    Desarrolladas y desplegadas sobre una plataforma específica.
3.    Soportadas por componentes compartidos de la plataforma.
4.    En sentido estricto, solo deben contener lógica de negocio e interfaz de usuario.

Impacto sobre el desarrollo de software
Actualmente los proveedores de SaaS no han establecido las mejores prácticas para desarrollar este tipo de aplicaciones ni tampoco estándares en la industria. Las metodologías tradicionales son suficientes para desarrollar modelos SaaS muy simples, pero cuando se trata de especializar y escalar hacia un negocio más avanzado, aún se carece de técnicas bien establecidas. Por el lado de ingeniería de software, las aplicaciones SaaS presentan diferencias en cuanto a su ingeniería de requerimientos con las aplicaciones empaquetadas (por ejemplo, desde la perspectiva del cliente, la instalación y mantenimiento son diferentes). Pioneros del modelo SaaS argumentan que se requiere un enfoque alterado de ingeniería de software para este tipo de aplicaciones.

Una pregunta importante es cómo el enfoque SaaS afecta a los proveedores de software y su incentivo a invertir en el desarrollo de productos. Transformar un producto empaquetado a un modelo SaaS no es una simple cuestión de reescribir código. Estas compañías necesitan examinar sus modelos de ingeniería y mercadeo para adaptarse a este nuevo enfoque de negocio y de desarrollo.

Figura 2. Ciclo de vida en aplicaciones SaaS

La figura anterior describe que las actividades son diferentes a un producto tradicional. Una de las causas principales de estas diferencias, es que las aplicaciones SaaS están acopladas a una plataforma y en cada etapa esta plataforma juega un rol importante en el ciclo de vida SaaS. La siguiente tabla analiza el impacto en cada etapa del desarrollo cuando el software es entregado como producto y como servicio.

Desarrollo de aplicaciones SaaS
El impacto en el proceso de desarrollo de software presentado anteriormentedebe ser tomado en cuenta cuando una aplicación es desarrollada como servicio. Las metodologías tradicionales son ahora analizadas y redefinidas para cumplir los nuevos requerimientos impuestos por este nuevo enfoque. Podemos redefinir las actividades de cada etapa en esta propuesta:

Figura 3. Redefinición de las actividades en el ciclo de vida SaaS.

El desarrollo de aplicaciones sobre plataformas SaaS requiere de consideraciones en los diferentes escenarios del ciclo de vida del software.

Requerimientos

En el enfoque tradicional, los requerimientos consisten en definir una serie de funciones que satisfagan las necesidades de un cliente. En el caso de las aplicaciones SaaS, los desarrollos son meramente basados en un modelo de negocio. Eso es, una aplicación SaaS debe cumplir con los requerimientos de un mercado meta. Debido a que las aplicaciones serán consumidas por un gran número de subscriptores (empresas clientes) y cada uno puede tener potencialmente un número grande de usuarios, entonces más requerimientos no funcionales son introducidos al proceso, como por ejemplo: soporte para alta concurrencia, almacenamiento escalable, virtualización/ clustering entre otros. Las actividades propuestas son:

• Definición de un plan de requerimientos de negocio. Deben ser identificadas las características del plan de negocio (del proveedor) para ser transformadas a requerimientos funcionales.

• Análisis del mercado meta. Catalogar y puntualizar las necesidades principales del mercado meta. Se deben evaluar las necesidades del mercado y definir características de alto valor para los clientes potenciales. En esta actividad se van identificando los requerimientos no-funcionales que se mencionaron anteriormente.

• Definición de las funcionalidades. Puntualizar las características principales como funciones de cada aplicación que será entregada como servicio. Estas funcionalidades deben ser completamente alineadas al mercado y no a los requerimientos de un solo proveedor.

Análisis

La etapa de análisis debe ser realizada también desde la perspectiva de negocio. Esto es debido a que cada aplicación tratará de satisfacer las necesidades de un amplio número de clientes. La definición de los procesos de negocio que soportará cada aplicación es un paso importante en este tipo de aplicaciones, ya que debe permitir la personalización y definición de procesos similares para cada cliente.

• Análisis de procesos de negocio. En esta actividad se deben analizar los procesos de negocio que serán automatizados con la aplicación. Por ejemplo, si se desarrolla un CRM, se deben analizar los procesos de venta y su integración con otros procesos como cadenas de suministro, por ejemplo. Cada proceso con sus actividades, roles y reglas de ejecución debiera ser documentado.

• Desarrollar casos de uso. Tarea formal en metodologías existentes, que debiera hacerse para documentar y modelar las funcionalidades de la aplicación. Artefactos tradicionales son casos de uso descriptivos y sus diagramas.

Diseño

La fase de diseño consiste en desarrollar documentación que soporte la etapa de construcción.

• Investigación de tecnologías. Es importante en esta etapa hacer investigación sobre las tecnologías que soporten las necesidades identificadas. Un artefacto entregable puede ser un documento de investigación acerca de plataformas SaaS, proveedores existentes, frameworks, componentes Web 2.0, etc.

• Evaluación de tecnologías. Es importante definir cuál es la plataforma y las tecnologías que serán usadas en el proceso de desarrollo. Las pruebas de concepto en esta etapa son necesarias, para realmente determinar si la plataforma y tecnologías cumplen con los requerimientos tanto de negocio como técnicos.

• Arquitectura de servicios. En este caso, las decisiones arquitecturales están basadas en las premisas SaaS y la plataforma que las soporta. Debido a que las plataformas SaaS están diseñadas para ofrecer una infraestructura de servicios, los componentes de la aplicación deberían ser diseñadas bajo este enfoque.

• Ingeniería de procesos de negocio. Incluso cuando la aplicación debe proveer una definición predeterminada del proceso de negocio que ejecutará, su valor incrementa cuando es posible redefinir cada proceso de acuerdo al cliente.

• Documentación tradicional. Esta actividad involucra diversas tareas comunes como diagramas UML. Se trata de la documentación formal de la aplicación y depende de las especificaciones de la misma.

• Diseñar casos de prueba. Esta tarea resulta obviamente importante para cualquier desarrollo serio. Se deben incluir mecanismos de pruebas unitarias, de integración, de rendimiento, etc.

• Prototipos. Los recursos y la agilidad de generar y desplegar aplicaciones en plataformas SaaS puede ser explotado a través de la construcción de prototipos.

Implementación

Además de las tareas comunes involucradas en la implementación, dentro del desarrollo SaaS es necesario considerar a la plataforma que soporta las aplicaciones.

• Desarrollo de servicios de negocio. Se trata de codificar las interfaces principales de la aplicación, así como sus implementaciones.

• Integración con los servicios de la plataforma. Desarrollar el código para consumir los servicios que la aplicación necesita para operar. Estos servicios consumidos pueden ser de seguridad, logging, métricas, etc.

• Desarrollar la lógica de negocio. Implementación de las reglas de negocio para los módulos de la aplicación.

• Desarrollar el front-end. Diseño y desarrollo de interfaces de usuario.

• Desarrollo de integración. Si es necesario, desarrollar código para integrarse con otros sistemas.

• Implementación de tecnología. Asegurarse que toda la implementación trabaja correctamente. Esta actividad cubre revisión de código, mejores prácticas, revisión de complejidad ciclomática, pruebas funcionales, entre otros.

Pruebas

La principal diferencia entre las metodologías tradicionales y la propuesta para SaaS radica en que las pruebas de integración necesitan validar la integración correcta entre las aplicaciones y la plataforma.

Otra diferencia importante es en cuanto a las pruebas de rendimiento y métricas de uso.

• Pruebas unitarias. Estas pruebas son desarrolladas y ejecutadas por cada desarrollador.

• Pruebas de integración. Pruebas importantes en cuanto a la integración con la plataforma, con otros módulos de la aplicación y con otras aplicaciones.

• Pruebas de rendimiento. Cada aplicación tiene sus propios requerimientos de rendimiento, en este caso, las aplicaciones SaaS tienen una fuerte dependencia en el número de usuarios y sus especificaciones.

• Pruebas de medición de tenants. La aplicación no debiera implementar código para logging o medición de uso. Estos componentes son responsabilidad de la plataforma misma. El objetivo de estas pruebas es asegurar que el uso y debug de cada aplicación es correctamente registrado y para cada tenant (cliente y/o proveedor).

• Aprobación Técnica. Consiste en correr todas las pruebas sistemáticamente y asegurarse que la aplicación es correctamente desplegada a producción. En el caso de actualizaciones y bugfixes, la plataforma debe proporcionar mecanismos de rollback cuando existan fallas y se pueda regresar a versiones anteriores.

Conclusión

Nuevas plataformas conocidas como Software-as-a-Service (SaaS) serán un importante canal de distribución para el software empresarial en un futuro cercano. El proceso de desarrollo sobre estas plataformas debe considerar diversos factores que no presentan los métodos actuales de desarrollo de software. Las diferencias entre desarrollar software como servicio o como producto empaquetado son evidentes y estas diferencias cambian la manera en que las aplicaciones SaaS son desarrolladas. Dadas estas diferencias, este trabajo analiza las consideraciones necesarias para cada etapa de desarrollo en este nuevo tipo de aplicaciones y también presenta una guía para desarrollar aplicaciones en ambientes de negocio Software-as-a-Service.

Referencias

[ Turner, M.; Budgen, D.; Brereton, P. “Turning software into aservice”. Computer. Volume 36, Issue 10, Octubre 2003. ]

[ Predicts 2007: Software as a Service Provides a Viable DeliveryModel. Gartner Inc. 2006. ]

[ Wolde, Erin Ten. Research Analyst, IDC. Agosto 2007. ]

[ Natis, Yefim V. Introducing SaaS-Enabled Application Platforms: Features, Roles and Futures. Gartner Inc. 2007. ]

[ Choudhary, V. “Software as a Service: Implications for Investment in Software Development”. Annual Hawaii International Conference on System Sciences, 2007. ]

[ Olsen, E.R. “Transitioning to Software as a Service: Realigning Software Engineering Practices with the New Business Model”. Service Operations and Logistics, and Informatics, 2006. ]

[ Carraro, Gianpaolo; Chong, Fred y Page, Eugenio Pace. “Efficient Software Delivery Through Service-Delivery Platforms”. The Architecture Journal. Microsoft MSDN Architecture Center ]

[ Chou, Timothy. The End of Software. Sams Publishing, 2005. ]

Fuente Revista Software Guru 22


Publicado en Uncategorized | Deja un comentario