Organizaciones de todos tamaños y en todas las industrias han comenzado a investigar el poder de éstas tendencias para la generación de nuevas oportunidades de crecimiento, satisfacción en sus clientes, economías de escala basadas en la web, mercadotecnia viral, comunidades en línea y sistemas de distribución.
Y entonces, ¿qué consideraciones debo tener en cuenta al desarrollar aplicaciones de este tipo? Precisamente ese es el objetivo de este artículo, explicar desde el punto de vista arquitectónico las principales consideraciones que debemos tener para el desarrollo de las aplicaciones de esta nueva generación. Comencemos entonces.
Enfoque en la Experiencia de Usuario
Los ejemplos más exitosos que podemos encontrar en el desarrollo de sitios y aplicaciones de la web 2.0 han sido aquellos que implementaron una experiencia integrada y altamente funcional de uso. La alta cohesión en la interfaz de usuario y el uso de tecnologías como Ajax, que permiten proveer interactividad en el browser similar a la ofrecida por las aplicaciones de escritorio, han sido factores clave para fomentar la adopción masiva de aplicaciones como YouTube o MySpace, pues permiten reducir la curva de aprendizaje del usuario y por lo tanto incrementar la productividad y lealtad del mismo hacia la aplicación.
Actualmente, los desarrolladores tienen al alcance diversas tecnologías para crear aplicaciones enriquecidas (RIAs). Silverlight, por ejemplo, es un plugin multiplataforma para el desarrollo de RIAs que utiliza lenguajes avanzados como JavaScript, C# ó VB e incorpora las funcionalidades de acceso a datos y comunicación del framework de .NET con un sistema de entrega de video, habilitando el desarrollo de aplicaciones dinámicas multimedia. Los diferentes frameworks para el desarrollo de aplicaciones AJAX como Google Web Toolkit, ASP.NET Ajax, Prototype, DWR o Dojo son otro ejemplo de las opciones que ofrecen las tecnologías más recientes para la creación de este tipo de aplicaciones.
En el pasado, muchas organizaciones han dejado a un lado la experiencia de usuario en el desarrollo de sus activos en la web en aras de buscar la ubicuidad de las aplicaciones, entendiendo ésta como la posibilidad de contar con ellas en múltiples dispositivos y en la mayor audiencia posible. Hoy en día los proveedores tecnológicos y las comunidades de desarrolladores están dando prioridad a estas funcionalidades, pues la web 2.0 nos ha demostrado que, con la nueva realidad de accesos de banda ancha y usuarios altamente demandantes, es precisamente la experiencia de usuario el componente principal para que éstas aplicaciones tengan la capacidad de generar los altos volúmenes de lealtad, crecimiento y oportunidades de negocio que las organizaciones están buscando.
Modelo de Programación 2.0
Una de las premisas del concepto web 2.0 acuñado por Tim O’Reilly en 2005 es la necesidad de contar con modelos ligeros de programación que permitan que las aplicaciones sean interconectadas para la creación de funcionalidad personalizada. Las aplicaciones web 2.0 son inherentemente ensamblables y para ello es necesario que su arquitectura considere la utilización de estándares tanto en el manejo de datos como en la comunicación, así como un esquema que separe la funcionalidad en módulos que puedan ser reutilizables. Las aplicaciones que sigan estos modelos en su desarrollo estarán mejor preparadas para exponer puntos de conexión que puedan ser usados para la creación de mashups.
Como ya se menciona en otros artículos de esta edición, mashup es el término utilizado para denominar la creación de nuevas aplicaciones en la capa de usuario reutilizando aplicaciones web ya existentes. Recientemente han surgido iniciativas de proveedores tecnológicos para crear editores de este tipo de aplicaciones como Yahoo! Pipes ó Microsoft Popfly.
A pesar de que las herramientas y tecnologías de exposición de información disponibles a la fecha tienen aún un largo camino por recorrer para ofrecer escenarios ideales de composición de aplicaciones, los mashups prometen eventualmente ser capaces de reducir los largos tiempos de desarrollo de aplicaciones y los costosos procesos organizacionales para su adopción, habilitando a los usuarios finales para crear sus propias aplicaciones con base en sus muy particulares necesidades.
La programación del Web 2.0 se basa en el principio arquitectónico de Transferencia Representativa de Estado ó REST por sus siglas en inglés (Representational State Transfer). La programación “RESTful”, como es comúnmente denominada, se refiere a la separación de tareas en recursos y a la utilización de los mismos por medio de mensajes transmitidos sin almacenamiento de estado utilizando protocolos de comunicación estándares y generalmente transparentes a los firewalls, como HTTP.
Finalmente, la aplicación debe concebirse desde sus inicios bajo el paradigma de “lectura-escritura” para promover la interactividad con sus usuarios, así como de “colaboración” para fomentar esta interactividad entre los propios usuarios, aprovechando así la inteligencia colectiva y el potencial de generación de comunidad que describíamos al inicio.
Estrategia para la Distribución de Aplicativos
El modelo aplicativo de la web 2.0 ha potencializado los logros del modelo de Software como Servicio (SaaS). La distribución de software como servicio puede habilitar a las organizaciones a generar economías de escala en sus aplicaciones, particularmente si se utiliza el patrón arquitectónico de Múltiples Inquilinos (Multi-Tenancy) en una instancia del aplicativo.
El beneficio que puede obtener la organización al utilizar este modelo proviene del mejor aprovechamiento que puede hacer de sus recursos de infraestructura y del esfuerzo de desarrollo si en el proceso de ingeniería de software se consideran estrategias que permitan crear aplicaciones que atiendan múltiples clientes en instancias de ejecución compartidas. Empresas como salesforce.com han sido exitosas en la utilización de este paradigma amasando grandes volúmenes de usuarios en sus aplicaciones y habilitando el “Long-Tail”, nombre coloquial acuñado en 2004 por Chris Anderson en un artículo de la revista Wired, quien argumenta que los productos con bajos volúmenes de venta pueden en conjunto igualar o superar las ventas de los productos estrella de una organización si se logra tener un canal de distribución lo suficientemente grande.
La figura 1 ilustra en rojo el potencial de ganancias que una organización podría tener por la venta de un producto a un mercado naturalmente reducido por el alto costo. En contraposición el color naranja representa las ganancias incrementales que podría obtener la organización vendiendo el mismo producto a un precio menor pero a un mercado potencial mucho mayor. Las ganancias netas por la venta del producto serían mayores si la “Cola” de la gráfica logra ser lo suficientemente larga.

Figura 1. The Long Tail
En el pasado la generación de economías de escala alrededor de este concepto estaba limitada por la capacidad de distribución y atención que la organización podía brindar en un mercado tradicional. La Internet ha venido a habilitar este tipo de escenarios puesto que una aplicación con una arquitectura adecuada puede distribuirse vía la web a un mercado potencial de millones de usuarios, superando evidentemente casi cualquier modelo de ingresos por venta de productos de alto costo a mercados reducidos.
Recientemente, el concepto de SaaS está evolucionando e incorporando estrategias de distribución como la de S+S (Software + Servicios) en donde se combina la entrega de servicios por medio de la nube, con la riqueza en experiencia de usuario que pueden proveer las aplicaciones de escritorio conectadas a estos servicios. De igual forma, las empresas de desarrollo han comenzado a explorar el uso de Plataformas de Distribución de Software o SDPs (Software Delivery Platforms) para encapsular en un sistema subyacente servicios comúnmente requeridos por los aplicativos –como subsistemas de facturación, análisis estadístico, almacenamiento de datos– permitiendo así a las organizaciones focalizarse en la estructuración de las funcionalidades más específicas del dominio de la aplicación a desarrollar. Los trabajos realizados por Gianpaolo Carraro sobre estos temas pueden ser de gran utilidad para nuestro lector en el entendimiento y utilización de estas estrategias.
Conclusión
Haciendo un análisis somero de la arquitectura de activos altamente exitosos en la web 2.0, visualizamos la presencia recurrente de modelos, estrategias, patrones y paradigmas arquitectónicos orientados a sacar provecho de los nuevos horizontes que la “sabiduría de las masas” ha creado. La utilización de los modelos planteados por el advenimiento de la web 2.0 encierra un alto potencial de negocio así como de soporte a poderosos medios de acercamiento con los clientes internos o externos de las organizaciones por medio de sus activos en Internet.
Las consideraciones arquitectónicas aquí presentadas pueden servir como premisas iniciales en la planeación y diseño de una solución web 2.0. Con la vista puesta en el futuro inmediato, la organización deberá incluir en su estrategia muchas otras, como la multiplicidad de dispositivos de entrega ó los ciclos continuos de mejora en los aplicativos. En incrementos exponenciales estos modelos van evolucionando y siendo reemplazados por nuevas ideas que habilitan el potencial y desencadenan el crecimiento de la máquina más compleja creada por el hombre: El World Wide Web.
Acerca del autor
Alexis Castañares es Asesor Especialista en Arquitectura de Infraestructura en Microsoft México, donde está a cargo de la estrategia web. Alexis cuenta con 15 años de experiencia en Tecnologías de Información, y ha dirigido un gran número de proyectos Internet de gran escala para diversas organizaciones como el Grupo MVS Comunicaciones y la Organización Mundial de Comercio. Es egresado de Ingeniería en Cibernética por la Universidad La Salle.
- Log in to post comments