Vistas

D.5.3 Gestión del entorno social y personal

De MorfeoWiki

PROFIT

Morfeo-EzWeb

Área Temática: 350405 Strategic Action on Open Source Software
FIT-340503-2007-02 EzWeb



Morfeo project EzWeb

Entregable:

D.5.3 Gestión del entorno social y personal






Versión: 1.0
Fecha de preparación: 26/11/07
Editores: CodeSyntax
Revisores: TID, xxxx, xxxx


Tabla de contenidos

Definición del escenario

Introducción

En esta sección, vamos a describir, modelizar y ejemplificar un caso de uso de la plataforma EzWeb, relacionado con el ámbito personal del usuario tipo de la plataforma.

Este escenario recoge las distintas formas de relación social que el usuario experimenta con otros usuarios. En Internet, las aplicaciones conocidas como software social, componen una prolija casuística sobre lo que los usuarios pueden realizar para relacionarse con otros en la red. A lo largo de esta sección, se describen distintas opciones que existen a la hora de establecer una relación entre dos usuarios o más.

La corriente denominada web 2.0, ha supuesto una evolución en la forma de desarrollar y utilizar aplicaciones web. Como nota común a todas aplicaciones está la interconexión entre usuarios. Los usuarios son los dinamizadores de los contenidos de las aplicaciones on-line. Son ellos los artistas, protagonistas y espectadores.

Los usuarios aportan datos e información. Otros usuarios aportan nuevos datos y nueva información. La coexistencia de estos datos en la aplicación, otorga al usuario una nueva perspectiva de ellos:

  • puede establecer relaciones con usuarios que manejan información afín,
  • puede establecer nuevas relaciones entre los datos que aportan usuarios relacionados de alguna manera.
  • puede enriquecer los datos aportados por los demás

Existen además un tipo de aplicaciones, las llamadas redes sociales, que transponen sobre la red la forma en que se tejen relaciones sociales fuera de Internet. En este sentido, el usuario que utiliza estas aplicaciones, tiene como único objetivo establecer relaciones con otros usuarios. La estrategia de extensión de la red de contactos de un usuario varía de una red a otra:

  • recopilar contactos procedentes de fuera de Internet,
  • relacionarse con contactos de los contactos del usuario,
  • establecer relaciones que quedan explicitadas mediante la similaritud de los datos que el propio usuario aporta respecto a los aportados por otro usuario.

Herramientas y gadgets de usuario con uso más frecuente

Las pequeñas aplicaciones o programas, que permiten dar fácil acceso a funciones frecuentemente usadas y proveen información visual son cada vez de un uso más frecuente por el usuario normal.

Pueden realizar un gran número de funciones e interactuar con servicios e información distribuida en Internet. Las utilidades pueden ser relojes en pantalla, notas, calculadoras, calendarios, agendas, juegos, ventanas con información del clima en su ciudad, y un largo etcétera.

Los widgets de escritorio que también se conocen como gadgets, una nueva categoría de mini aplicaciones, diseñadas para proveer de información o mejorar una aplicación o servicios de un ordenador o computadora, o bien cualquier tipo de interacción a través del World Wide Web, por ejemplo una extensión de alguna aplicación de negocios, que nos provea información en tiempo real del estatus del negocio u organización.

Las aplicaciones que un usuario puede encontrar interesantes a la hora de tejer su red social o desarrollar sus asuntos personales pueden ser de muchos tipos:

  • lectores de correo via web, webmails,
  • aplicaciones de mensagería instantánea, tipo jabber,
  • aplicaciones donde guardar sus notas personales de forma desestructurada,
  • lugares de publicación en forma de weblogs o wikis,
  • registros donde compartir y clasificar por medio de etiquetas o tags recursos de distinta naturaleza

Los usuarios han de interactuar con estas aplicaciones de múltiples formas. Según el tipo específico de aplicación del que se trate, el usuario final pretenderá realizar algunas tareas y no otras, pero se podrían extraer una lista de las tareas más comunes, por ejemplo:

  • subir un fichero
  • etiquetar un recurso
  • publicar un comentario
  • seleccionar un punto en un mapa geográfico
  • escribir una noticia o un post
  • recuperar datos

La forma en que se pueden agrupar estas tareas es infinita, aunque podemos traer a colación unas pocas aplicaciones como ejemplo de la riqueza de apliaciones de tipo social y personal que pueden existir en la web:

  • una aplicación web para etiquetar y compartir lugares geográficos favoritos
  • una aplicación web para compartir fotografías
  • una aplicación web para compartir videos
  • una aplicación web para compartir tus URLs favoritas

Identificación de casos de uso relevantes: Facebook, Netvibes, MyYahoo, iGoogle, Slide, ...

Se están generalizando plataformas sobre las que terceros pueden desarrollar aplicaciones y permiten a los usarios personalizar el uso de las mismas. Al mismo tiempo se refuerza la red social de usuarios de dichas plataformas.

Algunas de las plataformas de éste tipo más conocidas son:

Facebook, iGoogle, Netvibes, MyYahoo, etc. son algunas de las principales:

En la gran mayoría de ellas, la filosofía de desarrollo y uso es común. Los programadores escriben pequeñas aplicaciones mediante su tecnología favorita. Cada uno implementa su módulo con el lenguaje de programación que prefiera y su base de datos o repositorio de objetos que crea conveniente para su capa de negocio.

Aunque cada aplicación lleve por debajo una tecnología diferente, todas ellas tiene que contar con un interfaz web, visible e interpretable por un navegador convencional.

En ocasiones, la implementación de dicho interfaz está sometido a unas normas definidas y descritas por un API ofrecido por cada plataforma. A menudo, este API suele estár diseñado para ejecutarse mediante javascript. Otras veces, la implementación es en forma de servicios web y pueden estár ofertados para ser invocados mediante soap, rest, ajax o jsonp.

Análisis de la interconectividad modular

En general, cada apliación debería cubrir de forma completa las espectativas del usuario respecto a una necesidad social, sin embargo, sería interesante que cada módulo o aplicación tubiese la capacidad de exportar los resultados de la interacción con el usuario de forma estándar.

De este modo, el usuario podría mover los datos de una aplicación específica a otra que sirva para el mismo propósito.

Por ejemplo, un modulo calendario, puede ser suficientemente útil para cubrir las necesidades del usuario que necesita guardar sus eventos en dicho módulo.

De la misma manera, un usario avanzado, o un programador, podría plantearse como proyecto, diseñar una aplicación que recolectase los datos exportados por uno o más aplicaciones existentes.

Por ejemplo, alguien podría pensar en utilizar los eventos (exportados de forma estándard) para componer un resumen anual de actividades.

En ese sentido, algunas aplicaciones también contarían con facilidades de importación de datos, creando de esta manera un flujo de información entre varias apliaciones sociales utilizadas por un mismo usuario.

Por ejemplo, una aplicación podría conectar a gente que va a estar cerca geográficamente en el mismo periodo de tiempo.

Por otro lado, es posible que varios módulos encajen a la perfección en una cadena de trabajo o flujo de datos. Tal vez hayan sido diseñados para que cada uno de ellos tenga una única utilizada aislada y la verdadera funcianalidad la aporte el conjunto de ellos.

Por ejemplo, un proceso de reserva de entradas para conciertos, puede comenzar por un modulo que permita elegir grupos bajo recomendación automática. Después, otro modulo le puede perdir al usuario que elija su posición geográfica. Luego, otro modulo, puede sugerir eventos musicales adecuados para el usuario. Otro modulo puede realizar el proceso de venta del ticket.

También puede ser que la utilidad ofrecida sea tan generalista que pueda ser reutilizada por otros modulos. Por ejemplo, el modulos que pide la localización geográfica puede ser necesario tanto en un proceso de búsqueda de amigos, como en cualquier otro proceso de índole social o personal.

Selección de interfaces tipo Gadget a implementar

Como hemos comentado, las apliaciones para un entorno social y personal posibles son infinitas. Resulta de elevada dificultad resumir en una pequeña lista las apliaciones que un usuario tipo podría necesitar durante una experiencia con gadgets en Internet en un entorno social y personal.

De cara al planteamiento de una serie de herramientas ejemplo o demostración, hemos definido una serie de requisitos funcionales con el propósito de acotar el comportamiento que se espera de las aplicaciones ejemplo.

En este sentido, se trata de desarrollar aplicaciones totalmente accesibles para el usuario final, siendo además adaptables y fácilmente manejables.

Además, se tendrá en cuenta su uso por parte de personas sin experiencia en tecnologías de la información.

Resulta también indispensable considerar la elevada velocidad requerida en las aplicaciones y en el acceso a los datos.

En cuanto a su usabilidad, no se va a hacer uso de periféricos ajenos al teclado para ejecutar todas las funcionalidades.

Serán, además, aplicaciones síncronas y perfectamente comunicadas entre ellas.

Asimismo, se tienen en cuenta, de forma exhaustiva, todos los requisitos establecidos en el documento D 1.1.1.

Las aplicaciones ejemplo que han sido implementadas pertenecen todas a un mismo conjunto conceptual. Podríamos decir que el leit-motiv de todas las aplicaciones es el entorno geográfico. Esto significa que todos los módulos desarrollados giran en torno a la información geográfica y será ésta la naturaleza de los datos que se intercambiarán.

Los módulos que han sido propuestos e implementados son los siguientes:

  • Marcador de un lugar en un mapa. Apliación donde el usuario visualiza un mapa con varios niveles de detalle, sobre el que puede seleccionar un punco geográfico completo. Con ella podrá seleccionar unas coordenadas geográficas del tipo (latitud, longitud).
  • Selector de destino hotelero. Módulo mediante el cual los usuarios pueden visualizar la información relativa a plazas hoteleras entorno a un punto geográfico dado.
  • Informador sobre vuelos. Herramienta que muestra una lista formateada con información relativa a vuelos que parten desde el destino donde se encuentra un usuario y le transladan hasta un destino expresado mediante información geográfica estándar: latitud y longitud.
  • Compras de tickets. Mediante este interfaz, el usuario será capaz de realizar la reserva para las fechas que desee de los tickets indicados.

Diseño de la Arquitectura de Gestión del entorno social y personal

Para la implementación de los módulos descritos en el apartado anterior nos hemos decantado por la plataforma facebook. A lo largo de nuestro estudio hemos probado diferentes plataformas de desarrollo de gadgets. Mediante estas pruebas hemos aplicado los diferentes casos de uso que hemos ido recopilando y describiendo a lo largo de toda esta sección sección 5.

En cada uno de los casos de uso descritos tanto en la sección 5.1 y la sección 5.2, las aplicaciones de prueba implementadas han arrojado numerosos datos sobre desarrollo y utilización y valioso conocimiento, en general y experiencia entorno a las diferentes plataformas de desarrollo elegidas en cada caso.

En algunas ocasiones hemos detectado carencias estructurales que nos han impedido, siquiera la implementación completa de todos los requisitos de la aplicación ejemplo especificados en las secciones correspondientes.

Como decimos, en esta sección hemos afrontado las pruebas sobre la plataforma facebook.

Hemos seleccionado facebook para los casos de uso en un entorno social y personal, precisamente por el caracter social que tiene esta plataforma. Las aplicaciones desarrolladas sobre facebook son puramente sociales en el sentido de que cualquier acción llevada a cabo mediante una aplicación facebook, puede tener inmediatamente influencia sobre los contactos que el usuario haya definido en facebook. El alcance de cualquier acción o decisión en torno a una apliacción, llega a toda la red de usuarios conectados al sujeto que reliza la acción.

Este mecanismo de conexión entre personas hace que facebook impregne de caracter social cualquier apliacción que corre sobre la plataforma.

Arquitectura del gadget de localización geográfia

Todas las aplicaciones facebook se estructuran de la misma forma. Mediante diferentes URLs, el programador tiene que indicar a facebook donde encontrar las distintas páginas web que facebook renderiza en diferentes situaciones. Por ejemplo, debemos dedicar una URL para explicar cuales son las "condiciones de uso". Todas las aplicaciones facebook muestran sus condiciones de uso de la misma manera. En todas las aplicaciones, facebook añade un botón en el mismo lugar y en todas las ocasiones, el botón nos dirige al contenido situado en la URL que le hayamos indicado.

Para dotar de contenido a estas URLs, la tecnología a utilizar depende del gusto del programador y no de facebook. En nuestro caso hemos utilizado Zope, un servidor de aplicaciones escrito en Python y que ofrece desde un repositorio de objetos hasta un motor de renderizado de plantilla. En la sección 5.3.3 se describe algo más en profundidad la tecnología subyaciente a nuestras aplicaciones de prueba.

En el momento de creación de una aplicación web, deberemos indicar la lista de URLs que es necesario apuntar desde facebook Esto se indica en el mismo formulario web de creación. Este formulario está compuesto por varias secciones relativas a diferentes partes de la antomía de la aplicación facebook que vamos a crear. Cada URL debe ser indicada en el cuadro de texto correspondiente. En el siguiente punto describimos con algo más de exhaustividad las partes que componen una aplicación facebook y otras partes interesantes del interfaz de usuario.

Anatomía de una apliación facebook

El interfaz de facebook es complejo y en numerosas ocasiones puede hacer que un usuario sin demasiada experiencia pierda la noción de en qué lugar en el mapa del sitio web se encuentra en cada momento. Entre otras razones, esto se debe a que facebook no utiliza una jerarquía explícita de URLs que facilite la navegación por el sitio. Por otro lado, el tamaño del sitio y la ausencia de un mensaje "usted está aquí:" presente en todo momento, hacen de la navegación una experiencia algo complicada.

Sin embargo, esto no ha sido barrera para que miles de usuarios lo utilicen diariamente. Sin duda, el torrente de información que se genera en torno a estas aplicaciones sociales ha sido la clave del éxito de esta plataforma. A continuación vamos a ver qué podemos encontrar en distintas páginas de facebook:

La portada de facebook:

  • La podemos encontrar en esta dirección: http://www.facebook.com/home.php
  • Facebook personaliza la portada para mostrar contenidos interesantes para cada usuario. Entre estos contenidos podemos encontra lo siguiente:
    • El menú de navegación situado a la izquiera (Left Nav)
    • El feed de noticias (News Feed), donde aparecen noticias sobre las acciones de nuestros usuarios-amigos.
    • Las peticiones que llegan desde facebook, directamente al usuario (Requests)

La bandeja de entrada de facebook:

  • La podemos encontrar en la siguiente url: http://www.facebook.com/inbox/
  • Esta página aparece con contenidos relativos al usuario que ha iniciado la seción en facebook.
  • En la bandeja de entrada (inbox) aparecen los mensajes que otros usuarios o aplicaciones han enviado al usuario. Estos anuncios son de varios tipos:
    • Mensajes (Messages)
    • Notificaciones (Notifications)

El perfil de usuario:

  • Cada perfil tiene una URL diferente y tiene un formato como este: http://www.facebook.com/profile.php?id=620304947
  • En cada URL aparece el perfil de un usuario diferente y la información es siempre la misma, independientemente de que quien acceda: un usuario que ha iniciado la sesión, un usuario anónimo o un usuario-amigo del propietario del perfil o el mismo propietario del perfil.
  • En el perfil se puede ver diferente información distribuida por las diferentes secciones:
    • Mini feed (donde se informa puntualmente de las acciones que el propietario del perfil realiza.)
    • Imagen del perfil. En cada perfil aparece en una situación privilegiada, una imagen que identifica al propietario de este perfil.
    • Cuadro para perfil de una aplicación. Las aplicaciones para facebook pueden crear cuadros (boxes) para ser encajadas aquí en el perfil. El contenido de estos cuadros depende de la aplicación específica.
    • Enlaces de acción para el perfil. Algunas aplicaciones crean enlaces a diferentes URL relativas a estas aplicaciones. No siempre están visibles estos enlaces. Según qué aplicación, depende de si el propietario del perfil tiene instalado esta aplicación o de si el usuario que está navegando tiene instalada esta aplicación.

Listado de aplicaciones facebook que tiene instaladas el usuario que ha iniciado la sesión:

  • Se puede encontrar en la siguiente dirección: http://www.facebook.com/editapps.php
  • En ella se pueden cambiar las propiedades de las aplicaciones que tiene instaladas cada usuario. Desde aquí se pueden permitir o prohibir cosas como las siguientes:
    • Que la aplicación muestre un enlaze en el menú de navegación de la izquierda (Left Nav)
    • Que la aplicación publique información en el feed de noticias (News Feed)
    • Que la aplicación envie noticias en el Mini Feed
    • Que la aplicación añada un enlace bajo el la imagen de cada perfil que visite
    • etc.

Listado de aplicaciones que el usuario que ha iniciado la sesión ha desarrollado:

Arquitectura de la aplicación morfeo-ezweb

En este apartado tomamos una de las aplicaciones de prueba, llamada "morfeo-ezweb" y describiremos alguna de las páginas de las que se compone. Las páginas en las que nos vamos a fijar en esta sección son las que tienen en común todas las aplicaciones facebook. Es decir, que son páginas que tanto facebook como cualquier usuario debe ser capaz de encontrar en alguna u otra URL.

Por un lado está el home de la aplicación:

  • Por ejemplo, el home de la aplicación morfeo-ezweb será el siguiente: http://apps.facebook.com/ezweb-localizador/
  • Es posible que esa página principal sea diferente para cada usuario que la visita, aunque depende de la voluntad de quien programa dicha aplicación.
  • Esta página y todas las que vayan más allá de esa URL se denominan "Facebook Canvas Pages" y podrán estar programandas mediante el lenguaje de plantillas FBML, que es una propuesta particular de facebook, o ser simple XHTML.

Por otro lado está la página "acerca de" de la aplicación:

  • En el caso de la aplicación "morfeo-ezweb", la URL es la siguiente: http://www.facebook.com/apps/application.php?id=20540691184
  • Esta página la genera FaceBook de forma dinámica y lo hace a partir de los datos y estadísticas que recolecta:
    • Foro de discusión (discussion board), foro donde debatir cuestiones relaticas a esta aplicación.
    • Recivisiones (reviews), foro público formado por mensajes que los usuarios de esta aplicación pueden dejar para comentar su experiencia de uso u otras notas.
    • Estadísticas (statistics), datos sobre la instalación y uso por parte de todos los usuarios de facebook.

Documentación adicional

Facebook es una plataforma harto utilizada y sus niveles de adopción entre las comunidades de desarrollo avala su potencial. Otra de las claves del éxito es la calidad y cantidad de la documentación. Al menos, en este segundo aspecto, no se puede discutir que la oferta de ejemplos, casos de uso, tutoriales y manuales es grande.

No debería haber ninguna dificultad para encontrar material sobre el desarrollo de aplicaciones sobre facebook, sin embargo, introducimos un par de referencias que pueden ser tomadas como punto de partida en cualquier tarea de investigación sobre facebook:

Implementación del Sistema de Gestión del entorno social y personal

Para ver una demostración de las aplicaciones es necesario tener un usuario en [1]. Después de hacer login, se puede proceder a añadir cada aplicación a nuestro perfil facebook.

  • El localizador geográfico: [2]
  • Aplicación que muestra hoteles cercanos a un perfil geográfico: [3]
  • Utilidad para descubrir vuelos que enlacen dos puntos geográficos: [4]
  • Módulo para reservar tickets de vuelos: [5]

Documentación de implementación del gadget facebook

Las aplicaciones de ejemplo han sido implementadas utilizando el servidor de aplicaciones Zope.

Como describe la wikipedia, Zope es un servidor de aplicaciones web escrito en el lenguaje de programación Python. Puede ser manejado casi totalmente usando una interfaz de usuario basada en páginas Web.

Un sitio web de Zope está compuesto de objetos en lugar de archivos, como es usual con la mayoría de los otros sistemas de servidores web. Las características del uso de objetos en lugar de archivos son que:

  • Combinan el comportamiento y los datos en una forma más natural que los archivos de texto plano.
  • Alientan el uso de componentes estándares que se ocupan de una parte en concreto de las que forman una aplicación Web, permitiendo flexibilidad y buena descomposición.
  • Posibilitan procesos automáticos de gestión de información.

Lo más característico de Zope es su base de datos orientada a objetos, llamada ZODB o Zope Object Database. Esta base de datos almacena objetos ordenados en un sistema similar a un sistema de ficheros, pero cada objeto tiene propiedades, métodos u otros objetos. Esta aproximación es muy diferente de las base de datos relacionales habituales. Sin embargo, Zope dispone de múltiples conectores para las diferentes bases de datos relacionales y ofrece sistemas básicos de conexión y consulta abstrayéndolos como objetos.

Cada página de las que componen la aplicación facebook ha sido creada mediante un objeto de tipo "Page Template" que almacena el XHTML dinámico, escrito en el lenguaje de plantillas ZPT o "Zope Page Template".

Al instalar la aplicación zope en facebook, es decir, al dar de alta las URLs que apuntan a páginas zope, quedan registradas para que sean invocadas mientras el usuario navega por facebook. Cuando esto sucede, es decir, cuando se invoca una de estas páginas desde facebook, zope interpreta la plantilla ZPT y devuelve el XHTML renderizado.

Para que todo esto funcione de forma conjunta es necesario manejar una serie de variables de sesion que facebook crea en todas estas interacciones. Además, facebook ofrece un api REST que puede ser invocado junto con estas variables de sesión, para consultar datos relativos a la red social del usuario que está ejecutando dicha aplicación. Por ejemplo, mediante REST se podrían recuperar la lista de usuarios-amigos, insertar información en el Mini Feed del usuario, etc.

Evaluación del Sistema de Gestión del entorno social y personal

Una de las principales conclusiones que nos vienen a la cabeza tras utilizar facebook como plataforma de utilidades es la ausencia de una plantilla estándar de definición del contexto. En facebook, todo se especifica en un solo (y gigantesco) formulario donde se ofrecen, de forma exhaustiva, un campo para cada elemento definible entorno a la ejecución de la aplicación o gadget sobre la plataforma facebook. Esta rigided en la definición amordaza sensilemente la flexibilidad en cuanto a la implantación en facebook de recursos de contexto complejo, o por lo menos, marca una estrategia inflexible de instalación y despliegue de recursos, que puede resultar molesta con ciertas magnitudes de complejidad.

Por otro lado, los requisitos sobre comunicación entre los gadgets

Respecto a la usabilidad de la plataforma facebook, hemos realizado experimentos para evaluar el grado de usabilidad que ofrece, sometiendo a usuarios tipo a varios tests de usabilidad.

El experimento ha coinsistido en asignar una serie de tareas simples a usuarios con distintos niveles de experiencia tanto en uso de plataformas sociales tipo facebook, como en uso del propio facebook. Los usuarios, sus reacciones y comportamientos, así como el desarrollo de la prueba han sido rigurosamente anotados y procesados.

La conclusión general de estos experimentos arrojan unos resultados positivos para la plataforma, sobre todo en lo que concierne a usuarios más experimentados.

De igual forma que en el caso de la plataforma, los test diseñados para evaluar la usabilidad de los gadget han resultados satisfactorios, cumpliendo así con los objetivos propuestos en el apartado 1 de esta seción

Es importante destacar que, como producto del proceso de implementación y prueba de las aplicaciones facebook, han surgido una serie de requisitos que en primera instancia no habíamos contado con ellos u otras propuestas o sugerencias de mejora en las que anteriormente no habíamos reparado. En todo momento hemos tomado nota y registrado los requisitos y han sido incorporados a nuestra propuesta, de forma que las reimplementaciones de las aplicaciones ejemplo cumplen con ellos.