Software + Servicios: Nueva Generación de la Computación

Recientemente Microsoft hizo pública su visión para la nueva generación de la computación: Software + Servicios , o su acrónimo S+S. En esta visión se combina el poder local del software cliente y el software del servidor con las ventajas de los servicios por Internet. Esta visión unifica bajo una misma sombrilla múltiples fenómenos actuales de la industria como Software As A Service (SaaS), Desarrollo Orientado a Servicios (SOA) y Web 2.0. Toda la industria de TI está convergiendo a esta visión de Software + Servicios, aún cuando cada proveedor proponga soluciones desde su propio punto de vista.

Cómo afecta a los Desarrolladores de Software?

El desarrollo de aplicaciones en el mundo S+S traé un nuevo abanico de oportunidades y retos para los desarrolladores, quienes de entrada deben enfrentarse a un número cada vez mayor de dispositivos y runtimes contra los cuáles programar, al mismo tiempo que se encontrarán ante expectativas post-3D de entregar experiencias de usuario de muy alta calidad a través del software. Podríamos resumirlo así:

  • Experiencia del Usuario: Las exigencias en la forma en como el usuario interactúa con el software son cada vez mayores y S+S permite a los desarrolladores separar la UI, la lógica del usuario y las capas de datos de forma tal que hace posible proveer una experiencia distribuida al tiempo que se puede tomar ventaja de los recursos computacionales y gráficos disponibles para ellos.
  • Dispositivos Múltiples: Cada vez más, los desarrolladores de software construirán experiencias que se extenderán a través de múltiples PCs y dispositivos, brindando una experiencia consistente y transparente entre todos éstos ambientes. Estas experiencias combinarán servicios "basados en la nube" con software optimizado a las capacidades de cada dispositivo.
  • Composición: En el mundo Software + Servicios, los desarrolladores compondrán aplicaciones a partir de una combinación de componentes de software accesibles localmente o de servicios corriendo en la nube, expandiendo el estilo de programación de mash-ups visto en el Web hoy en día, así como incorporándolo en el mundo empresarial.

Ante la ubicuidad del acceso a Internet, los usuarios han llegado al punto donde esperan el acceso a la información en tiempo real. Con la proliferación de variadas formas de dispositivos, los usuarios esperan también que dicha información sea accesible de manera sindicalizada y con una experiencia consistente a través de todos ellos. La visión Software + Servicios provee a los desarrolladores de software con una flexibilidad arquitectónica para brindar una experiencia transparente y consistente a través de todos los dispositivos al mismo tiempo que da la ventaja de la escalabilidad y centralización de administración de los servicios web. A medida que los modelos de negocio vayan cambiando y requieran esquemas de monetización construidos directamente dentro de la experiencia del usuario, la visión de Software + Servicios proveerá a los developers los medios no sólo para actualizar y mejorar dicha experiencia, sino para monetizar la experiencia via suscripciones o publicidad.

Ejemplos de S+S en Microsoft

1- Office Business Applications

Las OBAs son fundamentalmente aplicaciones compuestas que permiten acceder sistemas, aplicaciones y funcionalidad de Office System en el "backend", tanto desde el cliente como desde el servidor. En un contexto S+S los desarrolladores construyen OBAs usando componentes de software de sus instalaciones o servicios en la nube. El surgimiento de Office como plataforma de desarrollo crea más posibilidades a la hora de componer experiencias al usuario que sean ricas y al mismo tiempo familiares, usando una gran variedad de aplicaciones y servicios.

2- Microsoft Exchange

La experiencia que brinda Exchange es un donde se ilustra el concepto "cliente multi-cabeza" y cómo la visión S+S le da a los developers la capacidad para explotar al máximo los recursos locales de los diversos dispositivos finales de una forma transparente. Con Exchange, los usuarios pueden acceder correo electrónico, contactos, su calendario y todo esto a través de Outlook en la PC, Outlook Web Access en el web, usando Outlook Mobile en su dispositivo móvil, y en el caso de Exchange 2007, vía Outlook Voice Access usando cualquier teléfono, todo sincronizado con Exchange en el back-end.

3- Plataforma de Entretenimiento

Microsoft provee para los usuarios de Xbox 360 la posibilidad de usar un Live ID para jugar online (que funciona como una especie de roaming profile) y tener una experiencia de juegos en red utilizando todo el poder de la consola o de la PC. Lo interesante es que al tener este ID el usuario puede acceder una serie de servicios de la nube desde la consola, el web, messenger y muchos otros puntos de entrada. Es como si los servicios siguieran al usuario donde quiera que vaya. Recientemente además, con la salida del Zune 2.0, se integró la experiencia del usuario de Xbox Live con el del Zune, de tal forma que ahora con el mismo ID se puede acceder servicios de juegos y de música en línea, se comparten puntos (Microsoft Points, una moneda digital para usar en estos servicios y que puede ser adquirida en línea o en tiendas) para adquirir elementos para juegos, descargar películas, series de televisión, trials de juegos nuevos (en el Xbox 360) o adquirir música o videos (en el Zune), así como compartir amistades e información historial de juegos y música escuchada entre todos los dispositivos.

Así se ve esta experiencia a través de todos los dispositivos:

En el Xbox 360 se usa un Live ID como identificación y se le agrega un nombre de "gamer". Esto te permite jugar en línea desde el Xbox y desde la PC contra miles de usuarios alrededor del mundo. Al ser un Live ID permite también tener Messenger en el Xbox. A este ID se le puede cargar "Microsoft Points" para adquirir episodios de TV, rentar películas y comprar juegos desde el mismo Xbox 360.
Con este ID se puede además acceder decenas de servicios desde la consola, como enviar mensajes y rankear a otros jugadores, compartir información de presencia y ver la de los amigos, iniciar conversaciones de texto, video o audio, comparar skills contra competidores o amigos, etc.
En el sitio web www.xbox.com se puede loggear usando este Live ID y tendrá acceso a los mismos servicios e información, pero esta vez optimizada para el Web. Notablemente algunas cosas serán más fáciles de usar (como enviar mensajes usando el teclado de la PC y no el control del Xbox) pero la información es la misma.
Como es un Live ID, se puede utilizar el cliente de Messenger, en el cuál existe un Tab de Xbox con la lista de amigos, su estatus en la consola, noticias de último momento y varios servicios adicionales.
Con la introducción del Zune 2.0 se utiliza el mismo Live ID para identificarse y con esto integrar la experiencia de la consola Xbox con el media player del Zune. Acá se puede ver en el software cliente del Zune (para Windows) tanto como en el mismo dispositivo Zune cómo es posible acceder los servicios de la plataforma. Los mismos Microsoft Points acumulados en el Xbox pueden ser usados para adquirir música en el Zune. Los amigos del Xbox pueden además ver el historial de música escuchada y enviar mensajes al usuario.
Luego, al visitar el sitio web www.zune.net e identificarse con el Live ID, el usuario podrá acceder el mismo entorno artístico del Zune y compartir el historial de música escuchada, seleccionar la música favorita, adquirirla desde el sitio web y descargarla al Zune, ver qué han estado escuchando sus amigos, enviarles mensajes, opinar sobre artistas, etc.

En general la arquitectura S+S de entretenimiento cuyos extremos son la PC, el Web, el Xbox, el Zune y toda la infraestructura de servicios que habitan en la nube (Windows Live Services, en especial el Windows Live ID) es de los ejemplos más claros de cómo podemos utilizar una serie de servicios que están en Internet a través de múltiples dispostivos donde la experiencia para el usuario es transparente, mostrando la misma información pero de manera optimizada para cada dispositivo o medio.

Ejemplos de la Industria

1- British Petroleum

British Petroleum es un ejemplo de desarrollo con un diseño estilo mash-up aplicado dentro de un contexto empresarial. Las operaciones de BP de exploración de pretóleo y operaciones de refinamiento se extienden por todo el mundo, y su presencia en el Golfo de México consiste de plataformas de petróleo, edificios de almacenamiento, oficinas, y muchos otros activos fisicos. En un esfuerzo para manejar el riesgo relacionado a eventos climáticas en el Golfo, BP contrató a IDV Solutions (un ISV de Microsoft) para desarrollar una aplicación utilizando Virtual Earth y componer un mash-up con más de 20 servicios de información sobre el clima en un único dashboard web para analizar en tiempo real la exposición de los activos físicos en el Golfo según los huracanes se vayan desenvolviendo.

1- Google Gears

Al darse cuenta de que los usuarios querían cada vez más la abilidad de usar aplicaciones aún cuando no estuvieran conectados a Internet, Google comenzó a proveer sets de bibliotecas de funciones para que desarrolladores construyeran aplicaciones web que pudieran correr en ambientes desconectados. Google Gears deja los problemas más difíciles como sincronización, replicación y resolución de conflictos, como ejercicios para el desarrollador, pero está claro que la necesidad de manejar ambientes offline está validada.

Para saber más te recomiendo visitar el sitio de S+S dentro del portal de Microsoft en la siguiente dirección: https://msdn2.microsoft.com/en-us/architecture/aa699384.aspx 

Para aprender a desarrollar contra Windows Live ID puedes visitar el sitio web: https://dev.live.com/liveid/

Technorati Tags: Microsoft,Software,Services,S+S,Xbox,Zune,Developer,Architecture,Web,SOA,SaaS