This document was uploaded by user and they confirmed that they have the permission to share
it. If you are author or own the copyright of this book, please report to us by using this DMCA
report form. Report DMCA
Overview
Download & View Tesis Ingenieria De Sistemas - Trabajo De Grado - Web 2.0 as PDF for free.
Trabajo Final de Grado Ingeniería de Sistemas - IUA
Tema:
Análisis de la tendencia Web 2.0, y su aplicación a la relación cliente-empresa.
Juan Alberto Ortiz Fernandez Asesor: Ing. Mariano García Mattío
TFG: Análisis de la tendencia Web 2.0, y su aplicación a la relación cliente-empresa IUA Ingeniería de Sistemas – Declaración de Derechos de Autor
Declaración de Derechos de Autor Esta obra esta publicada bajo la licencia Creative Commons Atribución-Sin Obras Derivadas 2.5 Argentina. Puedes copiar, compartir y referenciar este e-book indicando a Juan Ortiz como fuente. (http://blog.juanortiz.com.ar)
Para ver una copia de esta licencia, visita http://creativecommons.org/licenses/by-nd/2.5/ar/
i
TFG: Análisis de la tendencia Web 2.0, y su aplicación a la relación cliente-empresa IUA Ingeniería de Sistemas – Dedicatoria
Dedicatoria A Ana y Juan, mis padres.
ii
TFG: Análisis de la tendencia Web 2.0, y su aplicación a la relación cliente-empresa IUA Ingeniería de Sistemas – Agradecimientos
Agradecimientos A mi familia. A mis amistades.
iii
TFG: Análisis de la tendencia Web 2.0, y su aplicación a la relación cliente-empresa IUA Ingeniería de Sistemas – Abstract
Abstract El presente es un trabajo final de grado (TFG) de Ingeniería de Sistemas en el Instituto Universitario Aeronáutico (IUA). El problema observado es la falta de un espacio online con capacidades claras para generar el dialogo entre consumidores y empresas, en base a las fallas presentes en sus productos o servicios. Para poder lograr cubrir esta necesidad el alumno considera que este tipo de herramienta debe contar con características sólo provistas hasta ahora por la tendencia Web 2.0 las cuales deberán ser estudiadas y comprendidas. Por tanto el objetivo del proyecto es lograr comprender el concepto ambiguo de Web 2.0 entendiendo las formas en las que se manifiesta, sus implicancias sociales, y las tecnologías que le dan soporte para lograr que su aplicación permita la implementación de un sitio web con características Web 2.0 que eventualmente genere un espacio de diálogo entre consumidores y empresas. Para desarrollar el trabajo se ha realizado una investigación en base a diversas fuentes bibliográficas analizando los conceptos de web 2.0, social media, patrones de diseño, y diversas tecnologías aplicables. Posteriormente se consideran los patrones de diseño para definir requerimientos y diseño de la solución de software utilizando UWE UML. Finalmente se realiza la implementación del modelo teórico en base a proyectos open source y servicios de terceros. El resultado final del proyecto en su marco teórico provee una comprensión sobre la tendencia Web 2.0 y maneras de aplicación de esta a prácticamente cualquier contexto que se elija. Además, incluye una aplicación al contexto cliente-empresa mediante una solución de software online que sienta las bases para una comunidad de consumidores y empresas. En la actualidad dicho servicio se encuentra funcional y su futuro crecimiento como comunidad requiere tiempo de maduración y esfuerzo, por lo que el autor seguirá trabajando sobre el tema de manera independiente una vez finalizada la etapa de tesis.
iv
TFG: Análisis de la tendencia Web 2.0, y su aplicación a la relación cliente-empresa IUA Ingeniería de Sistemas – Índice de figuras
Índice de contenidos DECLARACIÓN DE DERECHOS DE AUTOR...................................................................................................... I DEDICATORIA.............................................................................................................................................. II AGRADECIMIENTOS ................................................................................................................................... III ABSTRACT .................................................................................................................................................. IV ÍNDICE DE CONTENIDOS.............................................................................................................................. 5 ÍNDICE DE FIGURAS ..................................................................................................................................... 9 ÍNDICE DE TABLAS ..................................................................................................................................... 12 1.
MARCO CONTEXTUAL ....................................................................................................................... 23 2.1. 2.2. 2.3.
3.
ANTECEDENTES ............................................................................................................................. 13 SITUACIÓN PROBLEMÁTICA .............................................................................................................. 14 PROBLEMA .................................................................................................................................. 15 OBJETO DE ESTUDIO ....................................................................................................................... 15 CAMPO DE ACCIÓN ........................................................................................................................ 16 OBJETIVOS ................................................................................................................................... 17 OBJETIVO GENERAL .................................................................................................................... 17 OBJETIVOS ESPECÍFICOS .............................................................................................................. 17 IDEA A DEFENDER / PROPUESTA A JUSTIFICAR / SOLUCIÓN A COMPROBAR .................................................... 17 DELIMITACIÓN DEL PROYECTO ........................................................................................................... 18 APORTE PRACTICO ......................................................................................................................... 18 APORTE TEÓRICO ........................................................................................................................... 18 MÉTODOS DE INVESTIGACIÓN. .......................................................................................................... 19 MÉTODOS LÓGICOS ................................................................................................................... 19 MÉTODOS EMPÍRICOS................................................................................................................. 19 ENFOQUE METODOLÓGICO. ............................................................................................................. 20 PARADIGMA............................................................................................................................. 20 PROCESO ................................................................................................................................ 20 MÉTODOS ............................................................................................................................... 21 TÉCNICAS ................................................................................................................................ 21
ENTORNO DEL OBJETO DE ESTUDIO ..................................................................................................... 23 RELACIÓN TESISTA Y OBJETO DE ESTUDIO ............................................................................................. 24 ANÁLISIS DE LOS PROBLEMAS OBSERVADOS .......................................................................................... 24
MARCO TEÓRICO .............................................................................................................................. 26 3.1. 3.2. 3.3. 3.4. 3.4.1.
INTRODUCCIÓN ............................................................................................................................. 26 THE CLUETRAIN MANIFESTO: LOS MERCADOS SON CONVERSACIONES.......................................................... 27 LA WEB 2.0 ................................................................................................................................. 28 SOCIAL MEDIA: LOS NUEVOS MEDIOS SOCIALES. .................................................................................... 29 REDES SOCIALES ........................................................................................................................ 30
TFG: Análisis de la tendencia Web 2.0, y su aplicación a la relación cliente-empresa IUA Ingeniería de Sistemas - Índice de contenidos 3.4.1.3. 3.4.1.4. 3.4.1.5.
El blog como una herramienta de publicación de contenidos ....................................................... 32 El blog como medio de comunicación y tendencia social ............................................................. 33 La blogosfera.............................................................................................................................. 35
Twitter: el líder en microbbloging. .............................................................................................. 41 Usos del Microblogging .............................................................................................................. 41
3.4.8. SINDICACIÓN DE CONTENIDOS Y APIS EN LOS SOCIAL MEDIAS. ............................................................... 42 3.4.9. MASHUPS ............................................................................................................................... 43 3.4.10. UN BREVE RESUMEN DE LOS SOCIAL MEDIAS. .................................................................................... 45 3.5. CLIENTES, EMPRESAS Y LA WEB 2.0 ................................................................................................... 46 3.5.1. LOS CONSUMIDORES SON LOS PROTAGONISTAS. ................................................................................ 46 3.5.2. TENDENCIAS DE CONSUMO DE INTERNET ......................................................................................... 47 3.5.2.1. 3.5.2.2. 3.5.2.3. 3.5.2.4.
La base de clientes es verdaderamente global ............................................................................. 47 Los clientes están siempre conectados ........................................................................................ 48 Los clientes están conectados dondequiera que vayan ................................................................ 48 Los clientes no están simplemente conectados, están participando ............................................. 49
3.5.3. LA RELACIÓN ENTRE LOS USUARIOS DE INTERNET Y LAS MARCAS O PRODUCTOS. ......................................... 50 3.6. LAS EMPRESAS Y LA WEB 2.0 ........................................................................................................... 52 3.6.1. LOS DISTINTOS TIPOS DE BLOGS CORPORATIVOS ................................................................................. 53 3.6.2. OPINIÓN DE LAS EMPRESAS SOBRE EL IMPACTO DE LOS BLOGS ............................................................... 54 3.6.3. EJEMPLOS DE LA RELACIÓN DE EMPRESAS CON LA WEB 2.0 .................................................................. 55 3.7. LOS PATRONES DE DISEÑO WEB 2.0 ................................................................................................... 56 3.7.1. APROVECHAR LA INTELIGENCIA COLECTIVA ....................................................................................... 58 3.7.2. LOS DATOS SON EL PRÓXIMO "INTEL INSIDE" .................................................................................... 63 3.7.3. INNOVACIÓN EN EL ENSAMBLAJE: .................................................................................................. 67 3.7.4. EXPERIENCIAS DE USUARIO RICAS ................................................................................................... 71 3.7.5. SOFTWARE MÁS ALLÁ DE UN SOLO DISPOSITIVO: ................................................................................ 75 3.7.6. BETA PERPETUO ........................................................................................................................ 79 3.7.7. APROVECHAR LA LARGA COLA ....................................................................................................... 82 3.7.8. MODELOS LIGEROS Y ESCALABILIDAD COSTO-EFECTIVA ........................................................................ 86 3.7.9. RESUMIENDO LOS PATRONES DE DISEÑO .......................................................................................... 91 3.8. TECNOLOGÍAS PARA WEB 2.0 ........................................................................................................... 92 3.8.1. LAS BASES DE INTERNET .............................................................................................................. 93 3.8.1.1 3.8.1.2. 3.8.1.3. 3.8.1.4.
3.8.2.
El modelo Cliente-servidor, protocolos y navegadores. ................................................................ 93 Vínculos y búsquedas ................................................................................................................. 94 La exploración y búsqueda en Internet. ....................................................................................... 96 PageRank ................................................................................................................................... 97
ESTRUCTURA, PRESENTACIÓN Y CONTENIDOS. ................................................................................... 98
3.8.2.2.
HTML ......................................................................................................................................... 98
6
TFG: Análisis de la tendencia Web 2.0, y su aplicación a la relación cliente-empresa IUA Ingeniería de Sistemas - Índice de contenidos 3.8.2.3. 3.8.2.4. 3.8.2.5. 3.8.2.6.
3.8.3.
TECNOLOGÍAS DE SCRIPTING. ...................................................................................................... 108
3.8.3.2. 3.8.3.3.
3.8.4.
4.
Metodologías de desarrollo tradicionales .................................................................................. 152 Desarrollo ágil de software ....................................................................................................... 153 Extreme Programming .............................................................................................................. 154
EL DESARROLLO WEB ............................................................................................................... 159
3.8.11.2. 3.8.11.3. 3.8.11.4. 3.8.11.5.
3.9.
Tagging en Flickr....................................................................................................................... 146 Delicious y los marcadores sociales ........................................................................................... 149 Folksonomias ........................................................................................................................... 151
DESARROLLO DE PROYECTOS WEB 2.0 .......................................................................................... 152
3.8.10.2. 3.8.10.3. 3.8.10.4.
3.8.11.
Sindicación de contenidos con Web feeds ................................................................................. 139 Mashups basados en WPCs. ...................................................................................................... 141
APLICACIONES DE INTERNET ENRIQUECIDAS. ................................................................................... 130
3.8.7.2. 3.8.7.3. 3.8.7.4.
3.8.8.
Web Services............................................................................................................................ 117 Un acercamiento a SOAP y WSDL .............................................................................................. 120 WSDL ....................................................................................................................................... 120 Namespaces ............................................................................................................................. 121 Estructura de un WSDL ............................................................................................................. 122 SOAP ........................................................................................................................................ 123
FORMATOS DE WEB FEEDS ........................................................................................................ 125
3.8.6.2. 3.8.6.3. 3.8.6.4.
3.8.7.
PHP con fuente de datos........................................................................................................... 113
APLICACIONES WEB DE XML ..................................................................................................... 117
Scripting en el cliente ............................................................................................................... 109 Document Object Model y Dynamic HTML ................................................................................ 111
SCRIPTING EN EL SERVIDOR ........................................................................................................ 112
3.8.4.2.
3.8.5.
XML ......................................................................................................................................... 101 CSS........................................................................................................................................... 104 CSS y XML ................................................................................................................................ 104 CSS y HTML .............................................................................................................................. 106
Model-Driven Web Engineering con UWE UML ......................................................................... 161 Ejemplo de modelado de análisis y diseño en UWE UML ........................................................... 162 Plataformas y librerías de desarrollo de cliente y servidor ......................................................... 169 Proyectos existentes como base. .............................................................................................. 170
MODELO TEÓRICO .......................................................................................................................... 173 4.1. INTRODUCCIÓN ........................................................................................................................... 173 4.2. PLANIFICACIÓN ........................................................................................................................... 174 4.2.1. ETAPAS, ACTIVIDADES Y DURACIÓN. ............................................................................................. 174 4.2.2. DIAGRAMA GANTT .................................................................................................................. 175 4.3. REQUERIMIENTOS ........................................................................................................................ 176 4.3.1. DEFINICIÓN DE ACTORES DE NEGOCIO ........................................................................................... 176 4.3.2. NECESIDADES GENÉRICAS DETECTADAS EN LOS ACTORES DE NEGOCIO .................................................... 176 4.3.3. DEFINICIÓN DE LOS ACTORES DE SISTEMA....................................................................................... 177 4.3.4. APLICACIÓN DE LOS PATRONES DE DISEÑO AL CONTEXTO DEL PROYECTO. ............................................... 177
7
TFG: Análisis de la tendencia Web 2.0, y su aplicación a la relación cliente-empresa IUA Ingeniería de Sistemas - Índice de contenidos 4.3.4.1. 4.3.4.2. 4.3.4.3. 4.3.4.4. 4.3.4.5.
Aprovechar la inteligencia colectiva .......................................................................................... 178 Los datos son el próximo "Intel Inside”...................................................................................... 180 Innovación en el ensamblaje. .................................................................................................... 182 Experiencias de usuario ricas. ................................................................................................... 185 Aprovechar la larga cola............................................................................................................ 187
4.3.5. REQUERIMIENTOS DEL SISTEMA .................................................................................................. 188 4.4. ANÁLISIS Y DISEÑO ...................................................................................................................... 190 4.4.1. ANÁLISIS DEL SISTEMA .............................................................................................................. 191 4.4.1.1. 4.4.1.2. 4.4.1.3.
4.4.2.
Listado de casos de uso de sistema ........................................................................................... 191 Descripción de casos de uso de sistema .................................................................................... 192 Diagrama de casos de uso del sistema....................................................................................... 197
DISEÑO DEL SISTEMA ................................................................................................................ 198
4.4.2.1. Modelo de Contenidos ............................................................................................................. 198 4.4.2.2. Modelo de Navegación ............................................................................................................. 199 4.4.2.3. Modelo de Presentación ........................................................................................................... 200 4.4.2.4. Modelo de Procesos y Diagramas de flujo de proceso................................................................ 213 4.4.2.5. Decisiones de diseño del sistema ................................................................................................... 230
CONCRECIÓN DEL MODELO ............................................................................................................ 233 5.1. INTRODUCCIÓN ........................................................................................................................... 233 5.2. IMPLEMENTACIÓN ....................................................................................................................... 234 5.2.1. PROYECTOS OPEN SOURCE Y SERVICIOS DE BASE .............................................................................. 234 5.2.1.1. 5.2.1.2. 5.2.1.3. 5.2.1.4.
5.2.2.
phpBB 2.0.23............................................................................................................................ 234 AjaxCORE 1.4............................................................................................................................ 234 YouTube – API PHP Gdata ......................................................................................................... 234 Picasa – API PHP Gdata ............................................................................................................. 235
ESBOZO DE LA ARQUITECTURA DEL SISTEMA. .................................................................................. 235
5.2.2.1. 5.2.2.2. 5.2.2.3.
Dependencia de traza entre modelo relacional y modelo de contenidos .................................... 236 Dependencia de traza entre archivos PHP y clases de procesos. ................................................. 237 Dependencia de traza entre archivos HTML y clases de presentación. ........................................ 239
5.2.3. MODELO DE DESPLIEGUE ........................................................................................................... 241 5.2.4. PROTOTIPOS DE INTERFACES ...................................................................................................... 242 5.3. PUESTA EN MARCHA .................................................................................................................... 245 5.3.1. INFRAESTRUCTURA NECESARIA .................................................................................................... 245 5.3.1.1. 5.3.1.2.
Tecnología y requerimientos del nodo Cliente. .......................................................................... 245 Tecnología y características del nodo Servidor........................................................................... 245
TFG: Análisis de la tendencia Web 2.0, y su aplicación a la relación cliente-empresa IUA Ingeniería de Sistemas - Índice de contenidos
Índice de Figuras ILUSTRACIÓN 1: EDAD Y SEXO DE AUTORES DE BLOGS. TECHNORATI 2008:................................................ 33 ILUSTRACIÓN 2: BLOGGERS PERSONALES, CORPORATIVOS Y PROFESIONALES............................................ 34 ILUSTRACIÓN 3: PERCEPCIONES SOBRE BLOGS Y MEDIOS TRADICIONALES. ................................................ 35 ILUSTRACIÓN 4: ESTADÍSTICAS DE HITWISE SOBRE TWITTER. ..................................................................... 41 ILUSTRACIÓN 5: TWITTER DE BARACK OBAMA, CANDIDATO PRESIDENCIAL PARA ESTADOS UNIDOS. ......... 42 ILUSTRACIÓN 6: CAPTURA DE PANTALLA DE HOUSINGMAPS...................................................................... 44 ILUSTRACIÓN 7: BANDA ANCHA EN HOGARES CON INTERNET EN ARGENTINA. .......................................... 48 ILUSTRACIÓN 8: BLOGS INDEXADOS POR TECHNORATI - MARZO DEL 2003 A MARZO DEL 2007.................. 49 ILUSTRACIÓN 9: CONTENIDOS SUBIDOS A INTERNET POR USUARIOS ARGENTINOS. ................................... 50 ILUSTRACIÓN 10: USUARIOS QUE CONSULTAN SITIOS PARA INFORMARSE SOBRE PRODUCTOS ................. 51 ILUSTRACIÓN 11: SEGMENTACIÓN DE BLOG CORPORATIVOS. .................................................................... 53 ILUSTRACIÓN 12: OPINIONES DE DIRECTORES DE COMUNICACIONES Y RR. PP. SOBRE BLOGS. ................... 54 ILUSTRACIÓN 13: CAPTURA DE PANTALLA DE IDEASTORM DE DELL. ........................................................... 55 ILUSTRACIÓN 14: IMPACTO DE LOS EFECTOS DE RED. ................................................................................ 58 ILUSTRACIÓN 15: PROCESO DE CARGA DE IMAGEN EN FLICKR. .................................................................. 60 ILUSTRACIÓN 17: SUBIDA DE IMÁGENES EN FLICKR.................................................................................... 61 ILUSTRACIÓN 17: PORCENTAGENES DE IMAGENES PUBLICAS Y PRIVADAS EN FLICKR. ................................ 61 ILUSTRACIÓN 18: PRESENTACIÓN DE PRODUCTO EN AMAZON.COM.......................................................... 62 ILUSTRACIÓN 19: NUBE DE TAGS DE TECHNORATI. .................................................................................... 63 ILUSTRACIÓN 20: USO DE CREATIVE COMMONS EN FLICKR. ....................................................................... 65 ILUSTRACIÓN 21: NIVELES EN LA CADENA DE DATOS DE MAPAS DIGITALES. .............................................. 66 ILUSTRACIÓN 22: CATEGORIAS DE APIS EN PROGRAMMABLEWEB.COM ................................................... 68 ILUSTRACIÓN 23: USO DE PROTOCOLOS POR APIS. .................................................................................... 69 ILUSTRACIÓN 24: WIKI SOBRE API DE TWITTER. ......................................................................................... 69 ILUSTRACIÓN 25: CAPTURA DE PANTALLA DE GOOGLE DOCS. .................................................................... 72 ILUSTRACIÓN 26: CAPTURA DE PANTALLA DEL SITIO TIVO.COM ................................................................. 76 ILUSTRACIÓN 27: CAPTURA DE PANTALLA DEL SITIO EBAY MOBILE ............................................................ 77 ILUSTRACIÓN 28: CAPTURA DE PANTALLA DEL SITIO TN Y LA GENTE .......................................................... 77 ILUSTRACIÓN 29: CAPTURA DE PANTALLA DEL SITIO SHOZU. ..................................................................... 78 ILUSTRACIÓN 30: COMPARACIÓN DE LIBERACIONES DE FLICKR Y MICROSOFT WINDOWS. ......................... 80 ILUSTRACIÓN 31: CICLO DE DE DESARROLLO DE BETA PERPETUO............................................................... 80 ILUSTRACIÓN 32: LINEA DE TIEMPO DE GOOGLE MAPS 2005-2006 ............................................................ 81 ILUSTRACIÓN 33: REPRESENTACIÓN GRAFICA DE "LA LARGA COLA". .......................................................... 83 ILUSTRACIÓN 34: MODOS DE LISTAR NOTICIAS DE CLARIN.COM ................................................................ 84 ILUSTRACIÓN 35: EJEMPLO DE GOOGLE ADSENSE. .................................................................................... 87 ILUSTRACIÓN 36: INTERACCIÓN ENTRE CLIENTE Y SERVIDOR. .................................................................... 93 ILUSTRACIÓN 37: MODELO SIMPLE DE PÁGINAS Y VÍNCULOS. .................................................................... 95 ILUSTRACIÓN 38: MODELO TIPO MOÑO DE PÁGINAS Y VÍNCULOS. ............................................................ 96 ILUSTRACIÓN 39: MOTOR DE BUSQUEDA. ................................................................................................. 96 ILUSTRACIÓN 40: EJEMPLO DE USO DE HTML. ........................................................................................... 99 ILUSTRACIÓN 41: EJEMPLO DE USO DE XML CON CSS. ............................................................................. 106 ILUSTRACIÓN 42: EJEMPLO DE USO DE HTML CON CSS. ........................................................................... 107 ILUSTRACIÓN 43: ESTRUCTURA DOM CON DOM INSPECTOR EN FIREFOX. ................................................ 111 ILUSTRACIÓN 44: SCRIPTING DE SERVIDOR CON PHP. .............................................................................. 112 ILUSTRACIÓN 45: EJEMPLO DE USO DE PHP, HTML Y JAVASCRIPT............................................................. 116 ILUSTRACIÓN 46: EL PARADIGMA DE LOS WEB SERVICES. ........................................................................ 117 ILUSTRACIÓN 47: LAS CAPAS DE LOS ESTÁNDARES DE WEB SERVICES. ..................................................... 118
9
TFG: Análisis de la tendencia Web 2.0, y su aplicación a la relación cliente-empresa IUA Ingeniería de Sistemas - Índice de contenidos ILUSTRACIÓN 48: VISTA DE LA ORIENTACIÓN A SERVICIOS. ...................................................................... 118 ILUSTRACIÓN 49: LA INFRAESTRUCTURA DE WEB SERVICES. .................................................................... 118 ILUSTRACIÓN 50: LA INFRAESTRUCTURA DE WPC. ................................................................................... 119 ILUSTRACIÓN 51: RELACIONES EN UN ARCHIVO WSDL. ............................................................................ 122 ILUSTRACIÓN 52: ESTRUCTURA DE UN MENSAJE SOAP. ........................................................................... 124 ILUSTRACIÓN 53: CREACIÓN DE POST EN BLOGGER. ................................................................................ 127 ILUSTRACIÓN 54: WEB FEEDS EN FIREFOX................................................................................................ 130 ILUSTRACIÓN 55: SOLICITUDES SINCRÓNICAS Y RECARGAS DE PAGINA. ................................................... 132 ILUSTRACIÓN 56: RECARGAS ASINCRÓNICAS DE PAGINA UTILIZANDO AJAX. ............................................ 132 ILUSTRACIÓN 57: INTERACCIÓN CLIENTE-SERVIDOR CON AJAX. ............................................................... 133 ILUSTRACIÓN 58: CAPTURA DE PANTALLA DE GOOGLE READER. .............................................................. 140 ILUSTRACIÓN 59: PAGINA PERSONAL PÚBLICA DE GOOGLE READER. ....................................................... 140 ILUSTRACIÓN 60: EJEMPLO DE GOOGLE MAPS. ........................................................................................ 144 ILUSTRACIÓN 61: MUESTRA DE IMAGEN EN FLICKR. ................................................................................ 147 ILUSTRACIÓN 62: NUBES DE TAGS EN FLICKR. .......................................................................................... 148 ILUSTRACIÓN 63: EJEMPLO DE PÁGINA PERSONAL EN DELICIOUS. ........................................................... 150 ILUSTRACIÓN 64: METODOLOGÍAS TRADICIONALES DE DESARROLLO DE SOFTWARE. .............................. 153 ILUSTRACIÓN 65: METODOLOGÍA ÁGIL DE DESARROLLO DE SOFTWARE. .................................................. 155 ILUSTRACIÓN 66: DIAGRAMA DE CASOS DE USO DEL EJEMPLO DE UWE UML........................................... 163 ILUSTRACIÓN 67: MODELO DE CONTENIDOS DEL EJEMPLO DE UWE UML. ............................................... 163 ILUSTRACIÓN 68: MODELO DE NAVEGACIÓN DEL EJEMPLO DE UWE UML. ............................................... 165 ILUSTRACIÓN 69: MODELO DE ESTRUCTURA DE PROCESOS DEL EJEMPLO DE UWE UML. ......................... 165 ILUSTRACIÓN 70: EJEMPLO DE FLUJO DE PROCESOS DEL EJEMPLO DE UWE UML. .................................... 166 ILUSTRACIÓN 71: MODELO DE PRESENTACIÓN DEL EJEMPLO DE UWE UML. ............................................ 168 ILUSTRACIÓN 72: DIAGRAMA GANT DEL PROYECTO. ................................................................................ 175 ILUSTRACIÓN 73: DIAGRAMA DE CASOS DE USO DEL SISTEMA. ................................................................ 197 ILUSTRACIÓN 74: MODELO DE CONTENIDOS............................................................................................ 198 ILUSTRACIÓN 75: MODELO DE NAVEGACIÓN. .......................................................................................... 199 ILUSTRACIÓN 76: MODELO DE PRESENTACIÓN - VENTANA PRINCIPAL. .................................................... 201 ILUSTRACIÓN 77: MODELO DE PRESENTACIÓN - ÍNDICES DE RECLAMOS, EMPRESAS Y PRODUCTOS. ........ 202 ILUSTRACIÓN 78: MODELO DE PRESENTACIÓN - VISUALIZACIÓN DE UN RECLAMO. ................................. 203 ILUSTRACIÓN 79: MODELO DE PRESENTACIÓN - AGREGAR Y MODIFICAR UN RECLAMO. .......................... 205 ILUSTRACIÓN 80: MODELO DE PRESENTACIÓN - REPORTAR RECLAMO Y COMENTARIO. .......................... 207 ILUSTRACIÓN 81: MODELO DE PRESENTACIÓN - REGISTRAR USUARIO, LOGIN, RECUPERAR PW. .............. 208 ILUSTRACIÓN 82: MODELO DE PRESENTACIÓN - VISUALIZACIÓN DE DATOS DEL USUARIO. ...................... 209 ILUSTRACIÓN 83: MODELO DE PRESENTACIÓN - MODIFICACIÓN DE DATOS DE USUARIO. ........................ 210 ILUSTRACIÓN 84: MODELO DE PRESENTACIÓN - MENSAJES PRIVADOS DE USUARIOS............................... 211 ILUSTRACIÓN 85: MODELO DE PRESENTACIÓN - CARGA DE IMÁGENES Y VIDEOS. .................................... 212 ILUSTRACIÓN 86: MODELO DE ESTRUCTURA DE PROCESOS - 1. ................................................................ 214 ILUSTRACIÓN 87: MODELO DE ESTRUCTURA DE PROCESOS - 2. ................................................................ 215 ILUSTRACIÓN 88: DIAGRAMA DE FLUJO DE PROCESO - AGREGAR RECLAMO. ........................................... 216 ILUSTRACIÓN 89: DIAGRAMA DE FLUJO DE PROCESO - MODIFICAR RECLAMO. ........................................ 217 ILUSTRACIÓN 90: DIAGRAMA DE FLUJO DE PROCESO - ELEGIR EMPRESA. ................................................ 218 ILUSTRACIÓN 91: DIAGRAMA DE FLUJO DE PROCESO - ELEGIR PRODUCTO............................................... 219 ILUSTRACIÓN 92: DIAGRAMA DE FLUJO DE PROCESO - AGREGAR IMAGEN. .............................................. 220 ILUSTRACIÓN 93: DIAGRAMA DE FLUJO DE PROCESO - AGREGAR VIDEO. ................................................. 221 ILUSTRACIÓN 94: DIAGRAMA DE FLUJO DE PROCESO - AGREGAR COMENTARIO. ..................................... 222 ILUSTRACIÓN 95: DIAGRAMA DE FLUJO DE PROCESO - REPORTAR RECLAMO. .......................................... 223 ILUSTRACIÓN 96: DIAGRAMA DE FLUJO DE PROCESO - REPORTAR COMENTARIO. .................................... 223
10
TFG: Análisis de la tendencia Web 2.0, y su aplicación a la relación cliente-empresa IUA Ingeniería de Sistemas - Índice de contenidos ILUSTRACIÓN 97: DIAGRAMA DE FLUJO DE PROCESO - VALORAR RECLAMO. ............................................ 224 ILUSTRACIÓN 98: DIAGRAMA DE FLUJO DE PROCESO - VALORAR COMENTARIO....................................... 224 ILUSTRACIÓN 99: DIAGRAMA DE FLUJO DE PROCESO - SOCIAL BOOKMARKS. ........................................... 225 ILUSTRACIÓN 100: DIAGRAMA DE FLUJO DE PROCESO - COMENTARIOS RSS. ........................................... 225 ILUSTRACIÓN 101: DIAGRAMA DE FLUJO DE PROCESO - EMPRESAS RSS. ................................................. 226 ILUSTRACIÓN 102: DIAGRAMA DE FLUJO DE PROCESO - PRODUCTOS RSS. ............................................... 226 ILUSTRACIÓN 103: DIAGRAMA DE FLUJO DE PROCESO - REGISTRAR USUARIO.......................................... 227 ILUSTRACIÓN 104: DIAGRAMA DE FLUJO DE PROCESO - MODIFICAR USUARIO. ........................................ 227 ILUSTRACIÓN 105: DIAGRAMA DE FLUJO DE PROCESO - ELIMINAR USUARIO. .......................................... 228 ILUSTRACIÓN 106: DIAGRAMA DE FLUJO DE PROCESO - ENVIAR MENSAJE USUARIO. ............................... 228 ILUSTRACIÓN 107: DIAGRAMA DE FLUJO DE PROCESO - LOGIN. ............................................................... 229 ILUSTRACIÓN 108: DIAGRAMA DE FLUJO DE PROCESO - RECUPERAR PASSWORD..................................... 229 ILUSTRACIÓN 109: DIAGRAMA DE FLUJO DE PROCESO - LOGOUT............................................................. 229 ILUSTRACIÓN 110: DEPENDENCIA DE TRAZA ENTRE MODELO RELACIONAL Y MODELO DE CONTENIDOS. . 237 ILUSTRACIÓN 111: DEPENDENCIA DE TRAZA ENTRE ARCHIVOS PHP Y CLASES DE PROCESOS. ................... 238 ILUSTRACIÓN 112: DEPENDENCIA DE TRAZA ENTRE ARCHIVOS HTML Y CLASES DE PRESENTACIÓN. ......... 240 ILUSTRACIÓN 113: MODELO DE DESPLIEGUE. .......................................................................................... 241 ILUSTRACIÓN 114: PROTOTIPO DE INTERFAZ - HOME. ............................................................................. 242 ILUSTRACIÓN 115: PROTOTIPO DE INTERFAZ - CARGA DE RECLAMO. ....................................................... 243 ILUSTRACIÓN 116: PROTOTIPO DE INTERFAZ - VISUALIZACIÓN DE RECLAMO Y CARGA DE COMENTARIO. 244
11
TFG: Análisis de la tendencia Web 2.0, y su aplicación a la relación cliente-empresa IUA Ingeniería de Sistemas – Índice de Tablas
Índice de Tablas TABLA 1: COMPARACIÓN DE BLOG CON PAGINAS TRADICIONALES. ........................................................... 33 TABLA 2: FRECUENCIA DE OPINIÓN DE BLOGGERS SOBRE EMPRESAS......................................................... 51 TABLA 3: RUBROS CONSULTADOS POR USUARIOS DE INTERNET EN ARGENTINA ........................................ 52 TABLA 4: COMPARACIÓN ENTRE APLICACIONES DE ESCRITORIO Y APLICACIONES DE INTERNET. ................ 64 TABLA 5: EJEMPLOS DE APLICACIONES DE LAS FUERZAS DE LA LARGA COLA. ............................................. 84 TABLA 6: RESUMEN DE LOS PATRONES DE DISEÑO .................................................................................... 92 TABLA 7: NOMBRES Y DESCRIPCIONES DE ELEMENTOS CONTENEDORES EN FORMATOS DE FEEDS........... 126 TABLA 8: NOMBRES Y DESCRIPCIONES DE ELEMENTOS DE ENTRADAS EN FORMATOS DE FEEDS. ............. 126 TABLA 9: PRACTICAS Y ETAPAS DE EXTREME PROGRAMING ..................................................................... 159 TABLA 10: PLATAFORMAS Y LIBRERÍAS DE AJAX Y JAVASCRIPT. ................................................................ 170 TABLA 11: ETAPAS, ACTIVIDADES Y DURACIÓN DEL PROYECTO. ........................................................... 174 TABLA 12: PATRONES Y PRÁCTICAS DE DISEÑO QUE SERAN APLICADOS EN EL PROYECTO. ....................... 178 TABLA 13: ESTRUTURAS DE URLS DE LOS ELEMENTOS DEL SITIO. ............................................................. 231 TABLA 14: COSTOS DE SOFTWARE ........................................................................................................... 247 TABLA 15: COSTOS DE PROYECTOS Y APIS DE BASE .................................................................................. 248 TABLA 16: COSTOS DE RECURSOS HUMANOS .......................................................................................... 248
12
TFG: Análisis de la tendencia Web 2.0, y su aplicación a la relación cliente-empresa IUA Ingeniería de Sistemas – Introducción
1. Introducción 1.1.
Antecedentes
“Una persona decide comprar un equipo celular. Durante la primera semana de uso el equipo no presenta ningún problema, pero luego encuentra una falla en uno de los botones de acceso al menú de usuario. Decide llamar a la línea de atención al cliente de la empresa donde y luego de una larga conversación y esperas en línea, la operadora le indica que ese tipo de fallas no están cubiertas por la garantía. Ante esta situación, decide buscar una posible solución en Internet. Ingresa su modelo de celular y una breve descripción del problema. Rápidamente encuentra una página que parece tener la temática correcta, y en esta encuentra que el problema que ha tenido no es algo fuera de lo común sino que se presenta en muchas unidades de dicho modelo. Mediante imágenes, texto y video otras personas (de lo que nota no es solo un sitio sino una comunidad de consumidores) han aportado ya sus quejas y posibles soluciones al problema técnico. En base a esto logra reparar el problema de forma momentánea y adhiere su queja a la de las personas que ya lo han hecho. Al tiempo las quejas son tantas que el problema se hace conocido gracias a la difusión que permite la comunidad y afecta la venta del producto. La empresa no logra entender la causa, hasta que se topa en internet con el mismo sitio. Alarmada, no ve otra opción que involucrarse en la comunidad, dialogando con los clientes y buscando reducir el impacto de su error inicial. Los productos son reemplazados por nuevas unidades, y el problema de la persona, solucionado finalmente. Ahora la empresa estará atenta a los problemas que se planteen en la comunidad buscando dialogar rápidamente con los usuarios antes de que sea tarde, al igual que muchas otras empresas que ya pasaron por situaciones similares.” En los últimos años Internet ha evolucionado a un siguiente plano, el cual ha sido denominado “Web 2.0”1. Este término no representa una tecnología en particular ni tampoco una versión en el sentido computacional, sino que intenta expresar una nueva forma para lo que conocemos como comunicaciones interpersonales basadas en la Internet. Es complicado esbozar una definición para esta tendencia, ya que al ser justamente una tendencia evoluciona rápidamente al pasar de los años. Una buena definición actual es la siguiente:”Un fenómeno social en relación con la creación y distribución de contenidos en Internet, caracterizado por la comunicación abierta, la descentralización de autoridad, la libertad para compartir y usar, dentro de un enfoque que trata a las relaciones humanas y económicas como conversaciones.” (1) El caso hipotético planteado anteriormente resultaba inimaginable no hace mucho tiempo y ahora es posible gracias a esta tendencia, aunque todavia no se presente en Argentina una comunidad con carácterísticas que puedan realizar esta función de acercamiento entre consumidores y empresas. 1
Esta tendencia fue nombrada y definida por Tim O'Reilly en 2005 (66).
13
TFG: Análisis de la tendencia Web 2.0, y su aplicación a la relación cliente-empresa IUA Ingeniería de Sistemas – Introducción Por tanto, el objetivo de este trabajo es plantear una solución de forma Web 2.0 a esta situación que se presenta como una necesidad todavía pendiente de cubrir en Argentina. Para esto será necesario comprender los elementos que componen al concepto ambiguo de Web 2.0, entendiendo sus formas y tecnologías, y sobre todo las interacciones entre estos con los usuarios, 2 para lograr que su aplicación en base a patrones de diseño genere un impacto en el contexto de las “críticas de productos”, permitiendo la implementación de una comunidad online en base a una selección de dichos elementos, que genere un espacio de diálogo entre consumidores y empresas.
1.2.
Situación problemática
Al realizar un análisis de la situación actual encontramos que el proyecto tiene actualidad y pertinencia debido a: La falta de espacios de comunicación entre empresas y consumidores con las características potenciales que ofrece un proyecto de tipo Web 2.0 en la Argentina. Los fuertes efectos producidos por opiniones de clientes en Internet en números casos durante los últimos años. Podemos encontrar ejemplos diversos en los cuales las empresas han presentado un dialogo oportuno, así como también otros casos en los que la empresas no reaccionan a tiempo. Mencionamos algunos para acercarnos a la idea: En Abril del 2008 Michael Arrington, luego de 36 horas de no tener conexión a Internet y de quejarse vía telefónica a su proveedor de servicio (Comcast) sin recibir una solución, decidió publicar un mensaje en su cuenta de Twitter3 al respecto. Por la popularidad de la persona, casi de forma instantánea mucha gente empezó a hablar del tema en blogs, y luego de 20 minutos, un ejecutivo de Comcast se comunico directamente con él para ofrecerle su ayuda (2). Comcast cuenta con un programa de seguimiento de mensajes en Twitter, como una de sus estrategias para atención al cliente. El problema podría haber sido mucho mayor. El caso particular de Comcast fue impulsado por el mismo empuje de la Web 2.0: En 2007 fue creado un blog llamado “Comcast must die” (3) por Bob Garfield, un conocido columnista y personalidad de radio, con el objetivo de dar un lugar a los clientes de Comcast para que publicaran sus quejas, agrupándolas en categorías como “Problemas de Internet “, problemas de teléfono” y “problemas de TV“. Rápidamente olas de mensajes empezaron a llevar haciendo el blog cada vez más y más popular (4) . En 2004 fue publicado en BikeForums.net (5) un video en el cual se mostraba en algunos segundos como violar la seguridad de un candado para bicicletas mediante el uso de un bolígrafo. Este a notica se disperso rápidamente por Internet, y para cuando la empresa Kryptonite pudo reaccionar, ya era muy tarde, pues la noticia era una de las más leídas del 2
John Musser, Tim O’Reilly y el equipo de O’Reilly Radar definieron 8 patrones de diseño para proyectos basados en el concepto de Web 2.0. (9) Ver más detalles en marco teórico. 3
Twitter.com es un sitio de microbloging, un tipo de social media analizado en el marco teórico. En él los usuarios pueden publicar mensajes personales accesibles a otros usuarios. Actualmente cuenta con más de 1 millón de usuarios (120).
14
TFG: Análisis de la tendencia Web 2.0, y su aplicación a la relación cliente-empresa IUA Ingeniería de Sistemas – Introducción país. Fue necesario retirar del mercado los candados del modelo afectado por la noticia y los modelos similares y entregar a sus clientes nuevos candados. CNN calculó que la empresa necesitaría decenas de millones de dólares para recuperar su imagen dañada (6). Si Kryptonite, hubiera conocido la notica a tiempo, podría haber minimizado el daño dialogando directamente con los consumidores al momento de que la noticia fue pública. El impacto de un proyecto de este tipo en la sociedad argentina, como ser el acercamiento al dialogo entre consumidores y empresas, al brindar un espacio en que las personas puedan expresar sus críticas sobre productos o servicios que no están satisfaciendo sus necesidades, permitiendo que las empresas escuchen en un lugar imparcial y centralizado a sus clientes, y puedan actuar en pro de resolver rápidamente problemas para minimizar el daño a su imagen corporativa en base al dialogo. De esta forma se logra empresas eficientes que para lograr negocios rentables satisfagan a los clientes, produciendo así una mejora continua, en cuanto a productos, procesos y atención al cliente. A nivel mundial es notable una tendencia a la mejora en la atención al cliente (y más aun, en la relación entre clientes y empresas) ya que por diversas razones, el cliente cada vez parece tener más poder sobre las acciones de las empresas gracias a las plataformas colaborativas y abiertas de la Web 2.0. En Internet ya hay voces que hablan de esto: “las empresas deben escuchar y responder a los clientes en un mundo Web 2.0 o arriesgarse a perderlos ante aquellas empresas que si lo hacen.” (7)
1.3.
Problema
La situación problemática que inspiro al alumno a la elección del tema de estudio es la falta de un espacio online con capacidades claras para generar el dialogo entre consumidores y empresas, en base a las fallas presentes en sus productos o servicios. Para poder lograr cubrir esta necesidad este tipo de herramienta debe contar con características solo provistas hasta ahora por la tendencia Web 2.0 las cuales deberán ser estudiadas y comprendidas.
1.4.
Objeto de estudio
Para lograr el objetivo del trabajo será necesario conocer a los participantes del problema, es decir, los consumidores, las empresas e Internet como medio de comunicación y entorno tecnológico. Sera necesario comprender el concepto Web 2.0 y las formas en las que se manifiesta en la actualidad en base al análisis de los social media: Redes sociales, blogs, wikis, podcasts, foros, comunidades de contenidos y microblogging. Se llevara a cabo un breve relevamiento sobre la situación actual de los usuarios de Internet en Argentina. Sera importante analizar las tendencias que se plantean en las empresas del país, así como también el nivel de participación de los consumidores en social medias existentes. Además, un análisis de los alcances actuales de internet respecto a disponibilidad, ancho de banda y posibilidad de uso móvil será necesario para conocer los alcances actuales y proyectados de Internet en Argentina.
15
TFG: Análisis de la tendencia Web 2.0, y su aplicación a la relación cliente-empresa IUA Ingeniería de Sistemas – Introducción Continuando con el análisis de Web 2.0, el eje del estudio consistirá luego en el análisis de los patrones de diseño para proyectos: Aprovechar la inteligencia colectiva. Los datos son el próximo "Intel Inside”. Innovación en el ensamblaje. Experiencias de usuario ricas. Software más allá de un solo dispositivo. Beta perpetuo. Aprovechar la larga cola. Modelos ligeros y escalabilidad costo-efectiva. Una vez comprendidos estos, será necesario realizar un acercamiento a las tecnologías y estándares presentes en Internet, que son la base de los proyectos que implementen dichos patrones de diseño. Analizaremos los lenguajes de programación básicos presentes en el modelo cliente servidor utilizado en de Internet (como ser HTML, XML y CSS) y las posibilidades de realizar scripting en ambas partes de dicho modelo (a través de lenguajes como Javascript en cliente y PHP en servidor). Además, será necesario comprender conceptos básicos para la aplicaciones de los patrones como ser Ajax para la implementación de interfaces de usuario enriquecidas, Web services como base del software como servicios, Web feeds como medio de sindicación de contenidos, tagging y folksonomias como manera de ordenamiento de información y por ultimo metodologías de desarrollo agiles para el desarrollo de proyectos.
1.5.
Campo de acción
En base al estudio y comprensión del objeto de estudio, se buscara la manera de implementar una solución al problema planteado haciendo hincapié en la aplicación de los siguientes patrones de diseño: Aprovechar la inteligencia colectiva. Los datos son el próximo "Intel Inside”. Experiencias de usuario ricas. Aprovechar la larga cola. Innovación en el ensamblaje. Con esto alcanzaremos el análisis diseño y desarrollo de un sitio online con las características de una comunidad de contenidos de fuertes características Web 2.0, haciendo foco principal en la manera en que los usuarios y empresas pueden participar de forma colaborativa y buscando efectos de red que potencien estas colaboraciones a través de interfaces simples pero enriquecidas, que den soporte a estos medios para la creación de una base de datos de valor agregado que logre alcanzar “la larga cola” que se presenta en el dominio de productos y servicios de Argentina, implementando el sitio sobre desarrollos propios y de terceros (mediante el uso y adaptación de aplicaciones open source y APIs de servicios).
16
TFG: Análisis de la tendencia Web 2.0, y su aplicación a la relación cliente-empresa IUA Ingeniería de Sistemas – Introducción Como se verá en el marco teórico, todos los patrones de diseño están interrelacionados y por tanto, si bien no se hará un fuerte enfoque en los patrones que quedan fuera del alcance, sí se los mencionara o se hará referencia a estos.
1.6.
Objetivos
1.6.1. Objetivo general Lograr comprender los elementos que componen al concepto ambiguo de Web 2.0, entendiendo sus formas y tecnologías, para lograr que su aplicación genere un impacto en el contexto de las “criticas de productos”, permitiendo la implementación de un sitio web en base a una selección de dichos elementos, que genere un espacio de diálogo entre consumidores y empresas.
1.6.2. Objetivos específicos Estudiar y comprender el concepto Web 2.0 y las maneras en que se manifiesta a través del análisis de los social media. Estudiar y comprender la manera en que se relacionan usuarios y empresas con Internet. Estudiar y comprender los patrones de diseño Web 2.0 y las prácticas que implican su implementación. Estudiar y comprender tecnologías y estándares que forman la base para el desarrollo de proyectos Web 2.0. Definir requerimientos de un sitio web que tome la forma de comunidad de contenidos en torno al domino de las “criticas de productos”, en base a la aplicación de los patrones de diseño mencionados en el campo de acción y el análisis realizado sobre usuarios y empresas. Modelar dicho sitio y sus interfaces, en base a la aplicación de los patrones de diseño mencionados en el campo de acción, considerando las tecnologías y estándares estudiados. Implementar el sitio en base a la aplicación de los patrones de diseño mencionados en el campo de acción, utilizando como base desarrollos open source y APIs de terceros.
1.7.
Idea a defender / Propuesta a justificar / Solución a comprobar
Se buscara defender la idea de que la tendencia Web 2.0 existe en la actualidad y de que es la vía más apropiada para generar espacios de comunicación abiertos y colaborativos, aprovechando las virtudes que presenta Internet tanto por sus características como medio de comunicación así como también como una red de alta disponibilidad. Se propone por tanto la aplicación de patrones de diseño relacionados con esta tendencia al dominio presentado en la relación clientes-empresas en Argentina, para lograr el diseño e implementación de un sitio online con características aptas para funcionar como solución al problema planteado. 17
TFG: Análisis de la tendencia Web 2.0, y su aplicación a la relación cliente-empresa IUA Ingeniería de Sistemas – Introducción En base al desarrollo amplio del marco teórico se buscara conocer a la tendencia Web 2.0, las formas en que se manifiesta y las tecnologías y estándares que le dan soporte, para proceder luego a realizar el análisis de requerimientos de la posible solución que debe funcionar como un nexo colaborativo entre los usuarios de Internet y las empresas.
1.8.
Delimitación del proyecto
Los patrones de diseño Web 2.0 cubren un concepto muy amplio por lo que es necesario limitar el alcance del proyecto, concentrándonos en los objetivos específicos destacados y descartando los siguientes patrones: Software más allá de un solo dispositivo. Beta perpetuo. Modelos ligeros y escalabilidad costo-efectiva.
1.9.
Aporte practico
Como se menciono en el punto 2, el proyecto generaría un impacto social sobre el dominio de la relación entre clientes y empresas, al brindar un espacio en que las personas puedan expresar sus críticas sobre productos o servicios que no están satisfaciendo sus necesidades, permitiendo que las empresas escuchen en un lugar imparcial y centralizado a sus clientes, y puedan actuar en pro de resolver rápidamente problemas para minimizar el daño a su imagen corporativa en base al dialogo, y de esta forma lograr empresas eficientes que para lograr negocios rentables satisfagan a los clientes, produciendo así una mejora continua, en cuanto a productos, procesos y atención al cliente. Una de las características de la Web 2.0 es justamente el balance que se presenta en el poder de publicación y difusión de contenidos. Las características colaborativas y los efectos de red presentes en soluciones Web 2.0 serian la vía de canalización de las opiniones de los clientes, potenciando la publicación y de difusión entre ellos y hacia las empresas. Por tanto los beneficiarios de la implementación del proyecto serian tanto clientes como empresas en este caso. Y a su vez, el análisis de Web 2.0 permite generar un conocimiento que puede ser aplicado posteriormente en otros dominios.
1.10. Aporte teórico La novedad que presenta el proyecto es el estudio y análisis de la tendencia Web 2.0. Habiendo comenzado visiblemente alrededor del 2005, ha presentado una evolución creciente y constante, presentando cambios permanentes que apuntan a la democratización de Internet como medio de comunicación. El proyecto considera el estudio de esta tendencia, en base a publicaciones de los últimos años mayormente en lengua inglesa. Los patrones de diseño a los cuales hace referencia este anteproyecto han sido publicados en Noviembre del 2007, lo que da un indicio de la novedad del objeto de estudio. El análisis de las tecnologías y estándares proveerá un mapa que abarcara (sin realizar un análisis profundo) los conceptos necesarios para construir la base para desarrollos Web 2.0.
18
TFG: Análisis de la tendencia Web 2.0, y su aplicación a la relación cliente-empresa IUA Ingeniería de Sistemas – Introducción Por tanto, los resultados de este trabajo podrán ser posteriormente generalizados y aplicados a variedad de dominios con objetivos comerciales o no comerciales. Esto quedara claramente sentado, ya que el mismo análisis y comprensión de Web 2.0 se basa mayormente en el estudio de casos existentes en los cuales se manifiesta esta tendencia, abarcando una gran variedad de ámbitos.
1.11. Métodos de investigación. El desarrollo de este trabajo final de grado se basara en métodos de investigación empíricos y lógicos. Por métodos empíricos nos referimos a modelos de investigación basados en la experiencia y pruebas sobre el objeto de estudio, permitiendo reconocer características y relaciones esenciales de los elementos considerados en este, lo que dará las bases para estudios descriptivos.
1.11.1. Métodos lógicos En base a la aplicación del pensamiento aplicado a la deducción, análisis y síntesis, se aplicaran métodos lógicos para: Analizar la situación problemática y definir el problema que se busca solucionar con este trabajo. Relacionar adecuadamente el marco teórico a desarrollar con el objeto de estudio y el campo de acción. Realizar el diagnostico final que relacione lo cubierto por el desarrollo del marco teórico. Relacionar los patrones de diseño Web 2.0 con la situación problemática para definir requerimientos de la posible solución y el consecuente análisis y diseño en el desarrollo del modelo teórico. Realizar la implementación de la solución, considerando lo generado en el modelo teórico y el uso de las herramientas disponibles.
1.11.2. Métodos empíricos Sera necesaria la aplicación de métodos empíricos en el desarrollo del proyecto para: Conocer el entorno del problema para lograr una descripción del marco contextual, a través de búsquedas en motores de búsquedas generalista y específicos en búsqueda de documentación y opiniones, participación en social medias como ser foros, blogs y comunidades de contenidos, y la observación directa del comportamiento de los usuarios de Internet en estos social media. Realizar el desarrollo del marco teórico y su correspondiente diagnostico, en base a la observación directa de social media y comunidades de contenidos existentes en la actualidad, análisis de información de libros, blogs y opiniones de referentes en temáticas relacionadas con el objeto de estudio. Determinar los requerimientos del modelo teórico, en base al análisis de soluciones implementadas en otros ámbitos y utilización de documentación de las tecnologías, estándares, desarrollos open source y servicios de terceros. 19
TFG: Análisis de la tendencia Web 2.0, y su aplicación a la relación cliente-empresa IUA Ingeniería de Sistemas – Introducción Realizar el despliegue de la solución planteada, observando los resultados de su uso y la participación de los usuarios sobre el sistema.
1.12. Enfoque metodológico. 1.12.1. Paradigma Como se denota de las consideraciones anteriores, el paradigma a ser utilizado será el deducido del análisis de la tendencia Web 2.0 y de los patrones de diseño que este trabajo considera. Como se ve en lo analizado en el marco teórico, la Web 2.0 plantea un nuevo paradigma sobre el modo de uso de Internet como medio de comunicación, por tanto, se buscara su comprensión y aplicación. Podemos tomar como marco para entender este paradigma los puntos en común que reúnen los social media analizados en el marco teórico: Participación: promueven la contribución y la retroalimentación de cualquiera que esté interesado en opinar. Hace difusa la línea entre medios y audiencia. Apertura: la mayoría de los servicios de tipo social media están abiertos a la retroalimentación y la participación. Promueven la generación de comentarios y el intercambio de información. Conversación: Mientras que los medios clásicos de comunicación se basan en la “emisión” (contenidos transmitidos o distribuidos a una audiencia), los social media están vistos como una conversación ida y vuelta. Comunidad: los social media permiten que se formen comunidades rápidamente y que se comuniquen de forma efectiva. Estas comunidades comparten intereses en común, como ser el amor a la fotografía, temas de política o programas de TV. Conectividad: La mayoría de los tipos de social media prosperan en su inter conectividad, haciendo uso de links a otros sitios, recursos y gente. Podemos destacar que las características presentadas por las soluciones que pertenecen a las tendencias Web 2.0 no son en su un conjunto de leyes, sino más bien un conjunto de guías e ideales que dan un marco de desarrollo y orientación.
1.12.2. Proceso El proceso necesario para el desarrollo del proyecto debe servir de guía para el logro secuencial de los objetivos específicos planteados para este trabajo. Primeramente se realizara una aproximación al objeto de estudio que será plasmada en el marco teórico, analizando el concepto Web 2.0, los social media, los usuarios de internet como consumidores y empresas, los patrones de diseño, y las tecnologías y estándares que dan base a los proyectos Web 2.0, y las metodologías que permiten el desarrollo de este tipo de proyectos. Posteriormente, se aplicara un desarrollo en cascada para el desarrollo de la solución. Se elije este enfoque debido a que la aplicación de metodologías agiles como las analizadas en el marco teórico queda fuera del alcance de este trabajo, y el enfoque de cascada permite lograr un esbozo claro de una primera etapa del prototipo. Por tanto, se procederá al desarrollo de: 20
TFG: Análisis de la tendencia Web 2.0, y su aplicación a la relación cliente-empresa IUA Ingeniería de Sistemas – Introducción Identificación de requerimientos: en base a los patrones de diseño y la comprensión de la realidad de los usuarios de Internet como consumidores y empresas, se definirán los requerimientos del sistema en una primera etapa de su desarrollo. Estos serán la guía de las siguientes etapas. Análisis: Nuevamente, y en base a la aplicación de los patrones elegidos, se procederá con el análisis del sistema que brindara la solución al problema planteado. Diseño: Sobre el análisis obtenido se continuara con el diseño de la solución, seleccionando las tecnologías, desarrollos de base y servicios en los cuales deberá basarse la implementación, así como también el desarrollo de interfaces de usuario que den un enfoque Web 2.0 al sistema. Desarrollo: Sin profundizar sobre las características tecnológicas y técnicas del proceso, se analizaran los resultados de la implementación del sistema. No se hace un fuerte foco en este punto ya que el enfoque del trabajo apunta más a la comprensión del paradigma y su posible aplicación como tal que a la búsqueda de especificaciones de desarrollo e implementación. Despliegue: Se colocara a disposición de los usuarios el sistema de forma abierta y publica como un sitio web, considerando lo desarrollado.
1.12.2. Métodos Como se menciona anteriormente, se aplicara una metodología en cascada, considerando en cada paso la aplicación de los patrones de diseños considerados dentro del alcance del proyecto, considerando las prácticas recomendadas en cada uno. Se mantendrá un bajo nivel de especificaciones técnicas del software a desarrollar haciendo foco principal en las interfaces de los usuarios y las formas en que estos se relacionaran con el sistema y la información.
1.12.3. Técnicas Podemos separar las técnicas a ser aplicadas en los siguientes grupos: Recopilación de requerimientos: Se considerara la aplicación de los patrones a la posible interacción de los usuarios consumidores y empresas con el posible sistema en base a lo analizado en el marco teórico. Se generara así un listado de requerimientos del sistema y por tanto de las posibles interfaces necesarias para el desarrollo del sitio aplicando los patrones de diseño web 2.0 que se analizaran en el marco teórico. Análisis, Diseño y modelado: Se generara un modelado general del sistema en base a casos de uso de acuerdo a UWE UML, aplicando los diagramas que se consideren necesarios para mostrar las interacciones de los usuarios con el sistema. Además, se realizaran esbozos de las interfaces haciendo foco en la manera en que los elementos de interacción se distribuyen y se relacionan con el usuario, utilizando para esto modelado de HTML y descripciones de dichas interacciones. Implementación: En base a lo desarrollado en el punto anterior, se desarrollara la aplicación utilizando como base desarrollos open source existentes, adaptando estos para alcanzar las interfaces deseadas y cambiándolos con servicios de terceros para por ejemplo agregar 21
TFG: Análisis de la tendencia Web 2.0, y su aplicación a la relación cliente-empresa IUA Ingeniería de Sistemas – Introducción capacidades multimedia al sitio. Se llevara a cabo una descripción de esto, sin profundizar en detalles técnicos focalizándose mayormente en las funcionalidades de la implementación. Herramientas: Para el desarrollo del proyecto se utilizaran las siguientes herramientas: NetBeans PHP IDE: Esta aplicación provee un ambiente de desarrollo integrado para la creación de aplicaciones PHP, con soporte completo de HTML, Javacript y CSS. MagicDraw 1.51: Herramienta completa para UML, que permitirá el desarrollo de modelos para las diferentes etapas del proyecto. MagicUWE 1.2: Plugin para agregar modelos y diagramas de UWE UML a MagicDraw 1.5. Microsoft Project 2003: Utilizado para el desarrollo de la planificación del proyecto, mediante diagramas Gantt. Microsoft Word 2007: Permitirá el desarrollo de la presentación del anteproyecto y del proyecto de grado, con sus destacadas capacidades de procesamientos de textos.
22
TFG: Análisis de la tendencia Web 2.0, y su aplicación a la relación cliente-empresa IUA Ingeniería de Sistemas – Marco Contextual
2.
Marco Contextual
2.1.
Entorno del objeto de estudio
Hemos definido previamente el objeto de estudio al desarrollar la introducción al proyecto, observando que se presenta como un contexto amplio y complejo. Internet en la actualidad se muestra como un contexto donde las personas desarrollan diversos aspectos de du vida diaria, y esto es un hecho que se ha potenciado cada vez más durante los últimos 10 o 15 años. Alrededor del 2004 este cambio ha sido más notorio: lo que era previamente una red para obtener información publicada por fuentes unilaterales, se convirtió en un autentico lugar de interacción donde la voz de cada persona tiene prácticamente un alcance ilimitado. Esta revolución ha sido denominada Web 2.0. Es un concepto ambiguo y complejo de entender, especialmente por la velocidad con la que se ha desarrollado y por la magnitud de los cambios sociales que está produciendo. Gran parte del esfuerzo de este trabajo será observar y comprender este cambio, para lo cual nos acercaremos a los aspectos sociales y tecnológicos, y por lo tanto no podemos extendernos demasiado en este apartado. Por otra parte, se ha decidido enfocar además el estudio del comportamiento de los usuarios de Internet en Argentina, para lograr aproximarnos a la relación consumidor –empresa. La evolución histórica de esta relación ha presentado fuertes cambios y quiebres en el paradigma. Inicialmente las empresas se orientaban a la producción, y los clientes solo podían consumir lo que se presentaba en el mercado. Alrededor de 1950 se produce un primer quiebre en dicho paradigma, donde las empresas empiezan a orientarse a las ventas, ya que fue necesario focalizar el esfuerzo en vender lo que se producía ante el creciente nivel de competencia que se presentaba en los mercados. Posteriormente se produce un nuevo quiebre alrededor de 1970, surgiendo la actual orientación al marketing en donde las empresas notaron que eran los deseos y necesidades de los consumidores los factores que realmente conducían el proceso. Solo en esta última etapa surge como un factor de influencia el consumidor. Aunque es claro que la balanza de poder sigue inclinada del lado de las empresas, ya que son las que cuentan con los recursos para hacer escuchar su voz, mientras que un consumidor individual puede pasar desapercibido. En este punto es donde podemos hacer una referencia a Internet. Como mencionamos anteriormente, hoy por hoy un usuario de Internet cuenta con medios para hacerse escuchar prácticamente sin límites de costos ni barreras burocráticas. Hoy en día cualquier persona puede publicar un contenido en un social media, y si un grupo de personas considera que sus palabras son importantes, su voz se potenciara y llegara a tomar un gran peso. Existen múltiples casos que pueden ser analizados para demostrar esta nueva realidad actual, como ser los mencionados en el análisis de la situación problemática realizado previamente, o los que serán mencionados en el desarrollo del marco teórico. 23
TFG: Análisis de la tendencia Web 2.0, y su aplicación a la relación cliente-empresa IUA Ingeniería de Sistemas – Marco Contextual Es posible entonces trasladar esto a la relación cliente-empresa, y notar como la aplicación de soluciones sociales basadas en Internet es una herramienta poderosa para inclinar cada vez más la balanza a un nivel de equilibrio, y para generar un nuevo quiebre en el paradigma.
2.2.
Relación tesista y objeto de estudio
El autor de este trabajo se ve inmerso en el entorno mencionado previamente y por tanto afectado directamente con los problemas que se plantearon en la situación problemática. Por una parte, ha desarrollado numerosos trabajos y aplicaciones que han utilizado a Internet como el medio de soporte, observando una impresionante relación entre las necesidades de inversión y los resultados que pueden obtenerse por las características del medio. En los últimos años ha participado activamente en comunidades online centradas en diversas temáticas, obteniendo apoyo y soluciones de otros miembros de las comunidades que de otra manera hubieran sido muy difíciles de conseguir. Es decir, ha visto y experimentado el poder que tienen los social media como una herramienta social de colaboración. Por otra parte se encuentra inmerso en un mundo donde es necesario vincularse permanentemente con empresas para satisfacer necesidades y ha podido observar la notoria diferencia de poder que existe entre los consumidores y las empresas. En Argentina no se encuentra en la actualidad un espacio libre y abierto donde los consumidores puedan expresarse sobre las empresas y sus productos y servicios, ni donde compartir sus opiniones con otros consumidores que puedan estar en situaciones similares. Además ya hemos planteado la ambigüedad que existe aun en torno al concepto Web 2.0, y por tanto el problema de no poder aprovechar su potencial. Por tanto el problema planteado anteriormente requiere el desarrollo de este trabajo para lograr comprender el concepto y lograr su aplicación a la relación cliente-empresa.
2.3.
Análisis de los problemas observados
Como se menciono previamente no existe en la actualidad en Argentina un espacio que cuente con las características para aprovechar las fortalezas de la Web 2.0 que analizaremos en el marco teórico. Recordemos cuales son los puntos clave que presentan los social media (concepto analizado al introducir el paradigma del enfoque metodológico): Participación: promueven la contribución y la retroalimentación de cualquiera que esté interesado en opinar. Hace difusa la línea entre medios y audiencia. Apertura: la mayoría de los servicios de tipo social media están abiertos a la retroalimentación y la participación. Promueven la generación de comentarios y el intercambio de información. Conversación: Mientras que los medios clásicos de comunicación se basan en la “emisión” (contenidos transmitidos o distribuidos a una audiencia), los social media están vistos como una conversación ida y vuelta. 24
TFG: Análisis de la tendencia Web 2.0, y su aplicación a la relación cliente-empresa IUA Ingeniería de Sistemas – Marco Contextual Comunidad: los social media permiten que se formen comunidades rápidamente y que se comuniquen de forma efectiva. Estas comunidades comparten intereses en común, como ser el amor a la fotografía, temas de política o programas de TV. Conectividad: La mayoría de los tipos de social media prosperan en su inter conectividad, haciendo uso de links a otros sitios, recursos y gente. A la fecha del comienzo de este trabajo no se han encontrado medios online o no online en Argentina que presenten estas características. Por tanto, se encuentra la necesidad de generar una solución de software que pueda abordar el problema y se entiende que análisis de la tendencia Web 2.0 es el medio por el cual se podrá aproximar la solución. El desarrollo del marco teórico necesario para este proyecto implicara el análisis de diversos proyectos que podrían ser considerados como similares, pero que se encuentran en otros entornos. Especialmente notaremos esto en el estudio de comunidades de contenidos. Por tanto, no se profundizará en este aspecto en el desarrollo del marco contextual.
25
TFG: Análisis de la tendencia Web 2.0, y su aplicación a la relación cliente-empresa IUA Ingeniería de Sistemas – Marco Teórico
3. Marco Teórico 3.1.
Introducción
El desarrollo del marco teórico buscara comprender los elementos que componen al concepto ambiguo de Web 2.0, entendiendo sus formas y tecnologías, lo que será la base para el futuro desarrollo de un modelo teórico y la concreción de dicho modelo. En esta sección buscaremos cumplimentar los siguientes objetivos específicos: Estudiar y comprender el concepto Web 2.0 y las maneras en que se manifiesta a través del análisis de los social media. Estudiar y comprender la manera en que se relacionan usuarios y empresas con Internet. Estudiar y comprender los patrones de diseño Web 2.0 y las prácticas que implican su implementación. Estudiar y comprender tecnologías y estándares que forman la base para el desarrollo de proyectos Web 2.0. Abarcar todos estos puntos es una tarea desafiante que requiere una ardua investigación y consulta de diversas fuentes. Si los objetivos específicos son alcanzados el autor de la tesis obtendrá un conocimiento general que podrá plasmar en el documento, y dicho conocimiento podría luego ser generalizado para diferentes contextos y proyectos.
26
TFG: Análisis de la tendencia Web 2.0, y su aplicación a la relación cliente-empresa IUA Ingeniería de Sistemas – Marco Teórico
3.2.
The Cluetrain Manifesto: los mercados son conversaciones.
En el año 1999 Internet ya había marcado una revolución en la sociedad mundial en el paso de sus primeros años de vida. En ese momento, y al igual que ahora, la gente vivía su vida diaria sin tomar conciencia de los pequeños cambios que permanentemente esta revolución les imponía en su entorno, en sus actividades, en sus negocios y especialmente en la forma de comunicarse y relacionarse con otras personas. Estos cambios eran permanentes y lógicos, sutiles y hasta casi naturales. Y definitivamente, eran rápidos y profundos. En un intento de interpretar la situación, surge en Abril de dicho año The Cluetrain Manifesto. 4La interpretación realizada por sus autores propone 95 conclusiones ordenadas como un manifiesto, analizando y describiendo el impacto en consumidores, organizaciones, y en la relación entre estos. Esta publicación afirma que la interconexión masiva de las personas y negocios han producido cambios en las condiciones de los mercados, en base a la rápida expansión de Internet y la globalización económica. La característica principal de estos nuevos mercados es el hecho de que las organizaciones y los consumidores se encuentran implicados en una gran conversación altamente interrelacionada, donde las personas tienen una voz cada vez más fuerte. Para obtener una breve idea del contenido del manifiesto leyendo algunas de sus primeras conclusiones (8): 1. Los mercados son conversaciones. 2. Los mercados consisten de seres humanos, no de sectores demográficos. 3. Las conversaciones entre seres humanos suenan humanas. Se conducen en una voz humana. 4. Ya sea transmitiendo información, opiniones, perspectivas, argumentos en contra o notas humorosas, la voz humana es abierta, natural, sincera. 5. La gente se reconoce como tal por el sonido de esta voz. 6. La Internet hace posible tener conversaciones entre seres humanos que simplemente eran imposibles en la era de los medios masivos de comunicación. 7. Los hiper-enlaces socavan a las jerarquías. 8. En los mercados interconectados como entre empleados intraconectados, la gente utiliza nuevas y poderosas formas de comunicación. 9. Las conversaciones en red hacen posible el surgimiento de nuevas y poderosas formas de organización social y de intercambio de conocimientos. 10. Como resultado los mercados se vuelven más inteligentes, más informados, más organizados. La participación en un mercado interconectado hace que las personas cambien de una manera fundamental. 11. Las personas que participan en estos mercados interconectados han descubierto que pueden obtener mucha mejor información y soporte entre sí mismos que de los vendedores. Ya basta de la retórica corporativa acerca de añadir valor a productos de consumo general. 4
Publicado como libro en Enero de 2000 (117), originalmente fue presentado en un sitio web (119) en Abril de 1999, y en la actualidad sigue disponible en dicho sitio, encontrando además las firmas de muchos líderes de empresas y medios al manifiesto.
27
TFG: Análisis de la tendencia Web 2.0, y su aplicación a la relación cliente-empresa IUA Ingeniería de Sistemas – Marco Teórico 12. No hay secretos. El mercado en red sabe más que las empresas acerca de sus propios productos. Y ya sea que las noticias sean buenas o malas, se las comunican a todo el mundo. 13. Lo que ocurre en los mercados, también sucede entre los empleados. Una construcción metafísica llamada "Compañía" es lo único que queda entre los dos. 14. Las corporaciones no hablan en la misma voz que estas conversaciones interconectadas. Para su "audiencia objetivo", las compañías suenan huecas, opacas, literalmente inhumanas. 15. En sólo unos pocos años, la actual "voz" homogenizada del mundo de los negocios -- el sonido de misiones corporativas y folletos oficiales -- parecerá tan rebuscada y artificial como el lenguaje de la corte francesa en el siglo 18. Con un estilo directo y claro, estas conclusiones y las 80 restantes expresan una realidad que en los últimos años se ha vuelto cada vez más clara, pero que definitivamente aun está en camino. Estos escritos fueron claramente adelantados a su tiempo en su época de publicación: Internet aun no estaba preparada para los cambios. Tampoco los estaban sus usuarios y mucho menos las empresas. Pero el cambio ya estaba gestándose y de forma vertiginosa. Entre el año 1999 y el año 2004 muchos avances surgieron y transformaron Internet, y la forma en que todos los jugadores se desempeñaron en ella. Esto fue analizado como una tendencia, la cual fue llamada: Web 2.0. 5
3.3.
La Web 2.0
El termino Web 2.0 no representa una tecnología en particular ni tampoco una versión en el sentido computacional, sino que intenta expresar una nueva forma para lo que conocemos como comunicaciones interpersonales basadas en la Internet. Es complicado esbozar una definición para esta tendencia, ya que al ser justamente una tendencia evoluciona rápidamente al pasar de los años. En Noviembre del 2007 John Musser, Tim O’Reilly y el equipo de O’Reilly Radar en su publicación “Web 2.0 Principles and Best Practices” (9) desarrollan su teoría en base a la formulación de la siguiente definición: “La Web 2.0 es un conjunto de tendencias económicas, sociales y tecnológicas que de manera colectiva forman la base para la siguiente generación de Internet – un medio más maduro y distinguido caracterizado por la participación de los usuarios, la apertura y los efectos de red”. Por otra parte Alberto Ortiz de Zárate Tercero en busca de desarrollar su libro sobre las influencias y usos de Blogs en la comunicación entre empresas y consumidores, desarrolla una definición algo más cercana a los usuarios y el impacto social: “La Web 2.0 es un fenómeno social en relación con la creación y distribución de contenidos en Internet, caracterizado por la comunicación abierta, la descentralización de autoridad, la libertad para compartir y usar, dentro de un enfoque que trata a las relaciones humanas y económicas como conversaciones.” (1)
5
Esta tendencia fue nombrada y definida por Tim O'Reilly en 2004 (66)
28
TFG: Análisis de la tendencia Web 2.0, y su aplicación a la relación cliente-empresa IUA Ingeniería de Sistemas – Marco Teórico Notamos que ambas definiciones con orígenes distintos tienen fuertes puntos en común entre ellas, y también con las conclusiones de The Cluetrain Manifesto. Claramente, nos encontramos ante un nuevo nivel de la revolución que originalmente genero el surgimiento de Internet. El gran desafío que se presenta en la actualidad es lograr comprender estos cambios y el poder de esta tendencia, capitalizando la experiencia y aplicándolo entornos sociales donde aun no ha logrado su impacto. El desarrollo planteado en “Web 2.0 Principles and Best Practices” indica que esta tendencia se manifiesta en una gran variedad de formas y tecnologías, y busca generar patrones claros que permitan en primer lugar comprender lo que implica que algo sea Web 2.0, y en segundo lugar y consecuentemente poder aplicarlos a productos y organizaciones. Como mencionamos anteriormente, este trabajo persigue el objetivo de generar una solución de tipo Web 2.0 para generar un espacio de dialogo y conversación entre consumidores y empresas. Por tanto, es necesario conocer en mayor profundidad la relación es estos con Internet.
3.4.
Social Media: los nuevos medios sociales.
Es complicado expresar con claridad y definir a la forma en que la Web 2.0 se manifiesta en forma práctica. La Web 2.0 ha impactado en diferentes formas en el plano social, por lo que desarrollar todas las posibilidades sería muy extenso. Recordamos entonces que este trabajo apunta a analizar la relación entre los consumidores y las empresas. Para acotar el campo de análisis podemos basarnos en el término “social media” y en la siguiente definición de Antony Mayfield de Enero del 2008 (10): Social media puede ser entendido como un grupo de nuevos tipos de medios online, donde la mayoría comparten las siguientes características: Participación: promueven la contribución y la retroalimentación de cualquiera que esté interesado en opinar. Hace difusa la línea entre medios y audiencia. Apertura: la mayoría de los servicios de tipo social media están abiertos a la retroalimentación y la participación. Promueven la generación de comentarios y el intercambio de información. Conversación: Mientras que los medios clásicos de comunicación se basan en la “emisión” (contenidos transmitidos o distribuidos a una audiencia), los social media están vistos como una conversación ida y vuelta. Comunidad: los social media permiten que se formen comunidades rápidamente y que se comuniquen de forma efectiva. Estas comunidades comparten intereses en común, como ser el amor a la fotografía, temas de política o programas de TV. Conectividad: La mayoría de los tipos de social media prosperan en su inter conectividad, haciendo uso de links a otros sitios, recursos y gente. En base a esta definición pueden definirse siete tipos básicos de social media, aunque Mayfield aclara: esta clasificación puede cambiar en base al surgimiento de nuevos social media, ya que la innovación y el cambio han sido moneda corriente en los últimos años y meses (como dijimos 29
TFG: Análisis de la tendencia Web 2.0, y su aplicación a la relación cliente-empresa IUA Ingeniería de Sistemas – Marco Teórico antes, la Web 2.0 es una tendencia, y las tendencias evolucionan rápidamente). Tenemos entonces: 1. 2. 3. 4. 5. 6. 7.
Redes sociales. Blogs. Wikis. Podcasts. Foros. Comunidades de contenidos. Microblogging.
Es necesario desarrollar estos conceptos y analizar ejemplos de cada uno, y de esta forma acercarnos al ambiente donde se realizan las interacciones entre consumidores y las empresas. En base a la visión de dicho autor, indagaremos en los puntos mencionados agregando conceptos de otros. Del análisis y descripción de dichos social media surgirán tres conceptos que será necesario considerar: sindicación de contenidos, APIs de servicios y mashups.
3.4.1. Redes sociales Estos sitios permiten a la gente construir páginas web personales y generar nexos con otros usuarios para compartir contenidos y comunicarse. Los usuarios al unirse al servicio deben crear un perfil personal, para luego empezar a construir una red conectándose con amigos y contactos que están en la red social del sitio, o invitando a otras personas a unirse a la red social. Estas comunidades mantienen el interés de sus miembros mediante estrategias simples: siéndoles útiles y proveyendo servicios de entretenimiento o que los ayudan a expandir sus redes. Si bien existen cientos de redes sociales6 de diferentes tamaños y características, podemos analizar algunos de los líderes para acercarnos más al concepto: 3.4.1.1.
Facebook
En el año 2004 Mark Zuckerberg de tan solo 19 años de edad crea una comunidad online para ser utilizada por los estudiantes de la Universidad de Harvard (11). Posteriormente decide convertir a su red llamada “TheFacebook” en Facebook, esta vez abierta a todo público, creciendo de forma vertiginosa contando en la actualidad con más de 110 millones de usuarios activos y la red social con mas tráfico y 4° sitio con más visitas de Internet (12). En esta red social los usuarios comparten imágenes, mensajes, afinidades e intereses comunes. Pero comenta Antony Mayfield que el factor que llevo al éxito a esta red social fue su decisión de “abrirse” y permitir el desarrollo aplicaciones que interactúen con los usuarios del sitio a cualquier persona que lo desee mediante el uso de sus APIs7, sin costo alguno. Esto ha permitido el surgimiento de una infinidad de aplicaciones, permitiendo a sus usuarios realizar un abanico de 6
Podemos encontrar un listado de las redes sociales más relevantes y datos sobre estas en (121).
7
En capítulos posteriores se realizara un desarrollo más profundo sobre las APIs de Facebook. Puede encontrarse más información en (122).
30
TFG: Análisis de la tendencia Web 2.0, y su aplicación a la relación cliente-empresa IUA Ingeniería de Sistemas – Marco Teórico actividades, desde cómo ser jugar al ajedrez, adherirse a causas, compartir fotos y hasta reglar flores o mascotas virtuales. 3.4.1.2.
MySpace
El proyecto nació a finales del 2003, siendo en la actualidad una de las redes sociales más conocidas y usadas. El objetivo inicial de la empresa fue el de generar un espacio para que músicos independiente pudieran difundir y compartir sus trabajos. Rápidamente creció y evoluciono marcando tendencia en el concepto de Web 2.0, convirtiéndose en el sitio elegido por más de 200 millones de usuarios a nivel mundial, que comparten diariamente en sus perfiles imágenes, videos, canciones, y opiniones, comunicándose con amistades y generando comunidades. Siguiendo la tendencia de apertura demostrada por Facebook, a finales del 2007 MySpace une fuerzas con Google (13) para desarrollar un conjunto de APIs llamadas OpenSocial8, en busca de estandarizar y simplificar la creación de aplicaciones para redes sociales. 3.4.1.3.
Orkut
Es la red social creada por Google en el 2006, con un objetivo similar al de otras redes sociales como MySpace y Facebook, ofreciendo a los usuarios crear perfiles y compartir sus intereses. Originalmente fue pensada para abarcar mayoritariamente a usuarios de Estados Unidos, pero perdió terreno en ese mercado. Igualmente es una de las redes con mayor cantidad de usuarios repartiéndose principalmente entre Estados Unidos (17.51%), India (17.37%) y Brasil(51.2%). (14) Desde el momento en el que se empezó a desarrollar el proyecto OpenSocial, Google incluyo a Orkut en la lista de sitios que darían soporte a dicho conjunto de APIs, como parte de la estrategia para potenciar el desarrollo de su red social. (15) 3.4.1.4.
LinkedIn
Esta es una de los mejores ejemplos de la aplicación de una red social sobre un nicho: LinkedIn es una red social de profesionales. En su sitio la compañía expresa su filosofía de forma directa:”Las relaciones importan. Tus relaciones profesionales son la clave de tu éxito profesional. Nuestro objetivo es ayudarte a ser más efectivo en tu trabajo diario y abrirte las puertas a nuevas oportunidades usando los vínculos profesionales que ya tienes”. A su vez, indica que cuenta con más de 30 millones de profesionales de todo el mundo, cubriendo 150 industrias diferentes. 3.4.1.5.
Resumen sobre redes sociales
Esta red social permite que los usuarios construyan su red de contactos profesionales y de negocios por medio del sitio, en el que crean sus perfiles en base a sus experiencias laborales y académicas, pudiendo también incluir sus relaciones con otros miembros de la red social, especificando por ejemplo, donde y cuando participo en un proyecto o empresa con un miembro en particular. 8
Puede encontrarse más información sobre OpenSocial en (123).
31
TFG: Análisis de la tendencia Web 2.0, y su aplicación a la relación cliente-empresa IUA Ingeniería de Sistemas – Marco Teórico Además, los usuarios que buscan contratar publiquen trabajos y sus requerimientos, permitiendo que los usuarios en busca de trabajo analicen su red de contactos y por tanto, poder ser presentados con los emperadores por medio de algún contacto de la red. Al igual que otras redes sociales, ha unido fuerzas con Google para el desarrollo de OpenSocial. (16) Como podemos notar, la fuerte estrategia de apertura de Facebook y su consecuente crecimiento en el mercado de las redes sociales ha hecho reaccionar a los otros jugadores grandes de las redes sociales, sumando fuerzas con el objetivo de crear la estandarización en OpenSocial en busca del mismo efecto producido por Facebook: que cualquier desarrollador pueda generar aplicaciones que interactúen con miembros de las redes sociales. Analizaremos ambos casos más adelante. Este tipo de proyectos no solo han creado una revolución social sino también económica: Se estima que el costo de MySpace es de10 mil millones y el de Facebook es de 15 mil millones de dólares. Algo impresionante cuando consideramos que empresas con infraestructuras gigantescas tienen un valor similar: se estima que el valor de YPF es de 15 mil millones de dólares, el mismo valor que Facebook. (17) La consultora de marketing Experian presento un informe sobre la actualidad y el rol futuro de estos social media, indicando que en el año 2008 tomarían mayor fuerza y comentando que “el rol será más importante que nunca, por lo que ninguna empresa, gobierno u ONG puede permitirse ignorarlas.”. (18)
3.4.2. Blogs Quizás la forma por excelencia de los social media: los blogs (termino derivado de “web log”). Podemos tomar la siguiente definición de Alberto Ortiz de Zarate: “Un blog es un sitio web, frecuentemente actualizado, compuesto de artículos generalmente breves que se disponen en orden cronológico inverso, donde uno o varios autores escriben con libertad, mediante una herramienta de publicación muy sencilla de utilizar”. (1) El autor indica que esta definición no llega a transmitir las cualidades que hacen a los blogs tan relevantes e interesantes en la actualidad. Expresa la importancia de analizar el concepto desde varios puntos de vista. Tomamos algunos de estos para acercarnos más al concepto: 3.4.2.1.
El blog como una herramienta de publicación de contenidos
Un blog es un sitio web que presenta algunas características diferentes a las de las páginas web tradicionales. Se trata básicamente de un editor de contenidos simple e intuitivo, en un formato de publicación para los visitantes que busca privilegiar los contenidos frente a la forma. El blog está compuesto por las entradas (también llamados “posts”) publicados, ordenados en forma cronológica comenzando por los más nuevos, y algunos elementos en una barra lateral que ayudan a la navegación del sitio. Los servicios de blogs en la actualidad permiten que los posts no se limiten solo a texto, contando con una gran simplicidad al momento de agregar contenidos multimedia como ser imágenes o videos, aumentando las posibilidades expresivas de los autores.
32
TFG: Análisis de la tendencia Web 2.0, y su aplicación a la relación cliente-empresa IUA Ingeniería de Sistemas – Marco Teórico Y a su vez, permite la colaboración de los visitantes del blog, pudiendo estos realizar comentarios sobre los posts publicados. Una de las características que han impulsado el uso masivo de blogs es la facilidad que se presenta para crear un blog y publicar contenidos en el. Las opciones que se presentan permiten que personas con poco o ningún nivel de conocimiento técnico puedan acceder a la publicación de un blog, a través de servicios gratuitos como del el caso de Blogger (19) de Google o Wordpress (20), donde la creación de un blog es posible en tan solo unos pocos minutos, eligiendo un diseño en base a algunas opciones y sin tener que preocuparse el usuario por el servicio de hospedaje del sitio. Wordpress por su parte, también permite bajar el código abierto e instalar el blog en un servidor personal, y ambos servicios permiten a desarrolladores interactuar con los servicios mediante APIs9. Podemos entender algo mejor el concepto en base a la siguiente tabla comparativa: Blog Muy fácil de editar Se actualiza con mucha frecuencia El coste es cero o marginal Se estructura por orden cronológico Permite la participación vía comentarios Privilegia el contenido Nos sorprende cada día
Página Tradicional Editada por un experto (webmaster) Los contenidos tienden a ser permanentes Conlleva un coste de mantenimiento Se estructura en áreas visuales La participación está muy limitada Privilegia el aspecto visual, el diseño Permanece relativamente estable
Tabla 1: Comparación de blog con paginas tradicionales.
3.4.2.2.
El blog como medio de comunicación y tendencia social
Como mencionamos anteriormente, el blog es uno de los social media, funcionando como medio alternativo a los medios de comunicación masivos. La potencia del blog como medio está en la condición bidireccional de la comunicación que establece, y la facilidad que brinda para formar redes con otros blogs y otros medios. A nivel interno el blog potencia la comunicación al permitir la ágil publicación opiniones por parte de los autores, y también la rápida respuesta a estas opiniones por parte de los lectores, al encontrar la posibilidad de publicar un comentario en el post, quedando tanto el post original y los comentarios a la disposición de nuevos visitantes que puedan ingresar al sitio.
9
Ilustración 1: Edad y sexo de autores de blogs. Technorati 2008:
Podemos encontrar información sobre las APIs de Wordpress en (124) y las APIs de Blogger en (125).
33
TFG: Análisis de la tendencia Web 2.0, y su aplicación a la relación cliente-empresa IUA Ingeniería de Sistemas – Marco Teórico Pero como mencionamos anteriormente, no solo se realiza un dialogo entre autores y visitantes, sino también en la interacción entre blogs a través de la llamada blogosfera, concepto que analizaremos más adelante. Por otra parte, el grupo de personas que mantiene activamente blogs (llamados “bologgers”) es un grupo muy heterogéneo a nivel mundial. Según el estudio de Technorati 10 (21) del 2008 indica que dos tercios de los bloggers son hombres, y solo la mitad del total de bloggers pertenece al rango etario de 18-34. Además, indica que en general son profesionales o gente con considerable nivel académico y que el 7% del total de blogs existentes se originan en Sud América. A su vez, el estudio agrupa a los blogs en tres categorías: personales, profesionales y corporativos. Definamos estas categorías y veamos algunos ejemplos: Personales: La temática abarca intereses personales no relacionados a cuestiones laborales. Profesionales: Blogs sobre la industria o profesión del autor, pero sin ser blogs oficiales de alguna empresa. Corporativos: Los autores escriben sobre una empresa desde una posición oficial. Cuatro de cada 5 bloggers mantiene blogs personales. Aproximadamente la mitad de los bloggers mantiene blogs profesionales, y finalmente, un 12% son autores de blogs corporativos. Pero por supuesto, estos grupos no son mutuamente excluyentes. Más de la mitad de los bloggers profesionales y corporativos escriben también posts personales, ya sea en los mismos blogs o en otros de su misma autoría.
Ilustración 2: Bloggers personales, corporativos y profesionales. Grupos no mutuamente excluyentes – Technorati 2008.
Por último, cabe mencionar que los blogs están tomando cada vez más relevancia como un medio de comunicación confiable y relevante, compitiendo cada vez más con los medios tradicionales de comunicación. En el mismo estudio mencionado anteriormente encontramos que existe una sensación general de que los blogs están siendo tomados seriamente como fuentes de información. 37% de los bloggers han sido citados en medios tradicionales debido a alguna de sus publicaciones en sus blogs. La mitad de los bloggers creen que los blogs serán una fuente primaria de noticias y 10
Technorati es un sitio buscador especializado en blogs, que se ha convertido en autoridad en el tema y una de las principales referencias. Realiza cada año desde el 2004 un estudio para conocer el estado de la llamada blogosfera
34
TFG: Análisis de la tendencia Web 2.0, y su aplicación a la relación cliente-empresa IUA Ingeniería de Sistemas – Marco Teórico entretenimiento en los próximos 5 años. Además, uno de cada cinco bloggers considera que los periódicos tradicionales no sobrevivirán los próximos 10 años. Percepciones sobre blogs y medios tradicionales Los blogs estan siendo considerados seriamente como fuentes de información Más gente recibira sus noticias y entretenimiento desde blogs que de medios tradicionales en los proximos 5… Los blogs son fuentes de información tan validos como los medios tradicionales Obtengo mas de mis noticias e informaciones desde blogs y no tanto desde medios tradicionales Los blogs estan frecuentemente escritos mejor que articulos en medios tradicionales Los periodicos no sobreviviran los proximos 10 años.
71 51 49 43 37 21 0
10
20
30
40
50
60
70
80
Ilustración 3: Percepciones sobre blogs y medios tradicionales.
3.4.2.3.
La blogosfera
Una definición sencilla del término “blogosfera” es “conjunto de blogs”, aunque se habla de que existen en realidad blogosferas, queriendo destacar que los blogs tienden a relacionarse entre ellos creando distintas comunidades y redes, cada una con sus participantes y temas característicos. Destaca Alberto Ortiz de Zarate: “La importancia de los blogs no reside en cada uno de ellos, ni siquiera en la lista de los 100 más leídos, sino en el entramado de conversaciones que emerge de los enlaces y comentarios entre ellos Un blog, incluso en sus momentos más animados, es una pobre conversación.”. Indica que de la interacción de estos “emerge una conversación rica y multiforme, a la que se puede denominar con una expresión paradójica: individualismo comunitario.” Por tanto, es en estas blogosferas, en la interacción de múltiples blogs, donde se produce el verdadero fenómeno de los blogs desde el punto de vista social, y donde es necesario realizar los análisis sobre la relevancia del blog como social media y como parte de la revolución de la tendencia Web 2.0.
3.4.3. Wikis “Imagine que esta navegando en Internet, y se encuentra con un sitio en el cual le gustaría agregar o modificar algo. Por ejemplo, tiene una referencia literaria o un link para agregar. O encontró un error. Quizás tiene un artículo que le gustaría colocar en una página separada. Entonces, simplemente hace click en el botón “editar”, cambia todo de la forma que le parece correcto, agrega un par de ideas, confirma la transacción, y la nueva página esta online inmediatamente!. En un historial, se encuentran grabadas las versiones anteriores de la página, pudiendo visualizar los cambios previos o incluso volver la pagina a esos estados. Si todo es una experiencia simple y transparente, usted está trabajando con una wiki”. 35
TFG: Análisis de la tendencia Web 2.0, y su aplicación a la relación cliente-empresa IUA Ingeniería de Sistemas – Marco Teórico De esta forma es introducido el concepto wiki en el libro “Wiki: Web Collaboration” (22). Si bien dicho libro ha sido publicado en el año 2008, el concepto wiki es uno de aquellos que precede a la tendencia Web 2.0. Ya en el año 1995 la primer wiki fue creada bajo el nombre de WikiWikiWeb11, con un suplemento automatizado para el Repositorio de Patrones de Portland, con el objetivo de dar apoyo a personas y proyectos relacionados a patrones, utilizando el término hawaiano “wikiwiki” en el significado de “rápido”. (23) El concepto wiki se ha vuelto cada vez más popular y conocido base al éxito del proyecto Wikipedia, una enciclopedia online de contenido gratuito creada en el 2001, escrita de forma colaborativa por más de 75.000 voluntarios de todo el mundo trabajando sobre más de 10.000.000 artículos en más de 250 idiomas (24). Si bien se plantea la veracidad de la información volcada en la Wikipedia, la confianza en sus contenidos va creciendo a medida que más gente la utiliza y la calidad de la información y las referencias en los artículos va mejorando. En el año 2005 la publicación científica Nature realizo un estudio comparativo sobre el nivel de confianza en las entradas de las Wikipedia y la Enciclopedia Británica. En sus resultados se marco que la Enciclopedia Británica era la más confiable de las dos, pero lo que sorprendió fue la poca diferencia marginal entre los niveles de confianza. (25) En base a la idea original se han realizado muchas implementaciones de software, por lo cual hoy en día es muy sencillo realizar la instalación de una wiki y utilizarla sobre cualquier proyecto. Generalmente, podemos diferenciar dos opciones de usos para las wikis: Pueden ser utilizadas como herramientas en un grupo cerrado, o pueden ser apuntadas directamente a virtualmente toda persona que utiliza Internet. Muchas organizaciones han encontrado una gran variedad de usos para las wikis12. Podemos mencionar un ejemplo como ser el caso de la Javapedia (26), un sitio colaborativo online para los desarrolladores de Java desarrollada por Sun Microsystems en base a TWiki (27), un software gratuito y abierto para la implementación de wikis.
3.4.4. Podcasts Son archivos de música o video que son publicados en Internet, y a los cuales los usuarios del servicio pueden subscribirse 13 . A veces el término “vodcast” es utilizado para describir específicamente a los servicios de video. Es justamente la posibilidad de subscripción lo que hace al podcast poderoso como un formato de social media. Los usuarios han tenido la posibilidad de subir archivos de estos tipos a Internet desde hace mucho tiempo, pero la posibilidad de subscripción implica que dichos usuarios pueden crear audiencias regulares y comunidades en base a sus producciones de audio o video. 11
La WikiWikiWeb original sigue online y en funcionamiento en http://c2.com/cgi/wiki.
12
Podemos encontrar un listado de wikis importantes y sus datos en http://en.wikipedia.org/wiki/List_of_wikis.
13
Mediante el uso de un servicio de subscripción, el usuario puede recibir actualizaciones automáticas de los servicios a los cuales se ha subscripto. Este concepto será desarrollado en más detalle posteriormente.
36
TFG: Análisis de la tendencia Web 2.0, y su aplicación a la relación cliente-empresa IUA Ingeniería de Sistemas – Marco Teórico Efectivamente coloca a autores individuales o empresas pequeñas al mismo nivel de juego que medios de comunicación tradicionales en cuanto a competir por la atención de la gente sobre contenidos de audio o video en Internet. Los podcasts son parte de un cambio en los patrones de consumos de medios, que ven incrementalmente como los usuarios escuchan o ven contenidos cuando y donde lo desean. Esta revolución es denominada “time-shifting”: al estar los contenidos disponibles en un medio de almacenamiento, estos pueden ser consumidos de la forma en que el usuario lo prefiera. Este concepto también se aplica en otras tendencias, como ser el caso de los DVR (Digital Video 14 Recorder), en los cuales es posible almacenar la programación de TV en un medio de almacenamiento digital, pudiendo luego consumir los programas televisivos en el momento y la forma de preferencia del consumidor pudiendo por ejemplo, saltearse los espacios publicitarios. El time-shifting es un concepto que otorga mayor poder al consumidor de multimedios. Cuando un nuevo podcast es publicado en un sitio, los servicios de subscripción de podcast de los usuarios subscriptos (por ejemplo, el programa iTunes de Apple) son notificados de forma automática, y entonces es bajado a la computadora personal del usuario. Este puede ser consumido en la computadora o llevado a un dispositivo externo, como ser un reproductor de archivos MP3. Naturalmente el advenimiento de los postcast ha implicado también que muchos medios han podido invadir el terreno tradicional de otros. Mayfield cita como ejemplo el caso de algunos periodicos de Inglaterra, que han comenzado a producir programas al estulo de radio, y a distribuirlos en sus sitios, que anteriormente se basaban en texto e imágenes, algo que en argentina ya ha sido tambein aplicado en periodicos tradicionales como ser el caso de Clarin, desde donde distribuye micros informativos con un resumen actualizado de las noticias del dia. (27)
3.4.5. Foros Los foros surgieron mucho antes que los términos “social media” y “web 2.0” y ahora son un elemento poderoso y popular de las comunidades online. Son lugares de discusión, generalmente sobre temas e intereses específicos. Se llama “hilo” a una discusión de un foro, y pueden existir muchos hilos activos simultáneamente, permitiendo conversaciones simultaneas y claramente definidas. Estas características convierten a los foros en buenos lugares para encontrar e involucrarse en una gran variedad de discusiones detalladas. En general podemos encontrar a los foros como un agregado a sitios web, pero también existen muchos casos en que los foros son un sitio web por sí mismos. Los foros son utilizados para buscar ayuda sobre temas específicos, compartir noticias, para participar en debates o simplemente como lugar de ocio. En otras palabras, su variedad refleja la variedad que se presenta en las conversaciones cara a cara. 14
Los DVR han tenido una gran explosión a nivel comercial, siendo un claro ejemplo el caso de TiVo comercializado en Estados Unidos generando un cambio en la conducta de los televidentes en base al concepto del time-shifting.
37
TFG: Análisis de la tendencia Web 2.0, y su aplicación a la relación cliente-empresa IUA Ingeniería de Sistemas – Marco Teórico Estos sitios son moderados por administradores, quienes deben moderar las conversaciones, analizando los casos en que las reglas del foro se vean quebradas por los usuarios. Sin embargo, los administradores no guían o lideran las conversaciones, y esa es la diferencia principal que existe con las conversaciones que suceden en un blog, donde un autor expresa siempre primero su opinión, esperando los comentarios de su audiencia. Es decir, un blog tiene uno o varios autores que pueden publicar contenido, mientras que en un foro cualquier miembro puede iniciar una conversación en un hilo. Los foros llegan a formar un gran sentido de comunidad, debido a que los miembros comparten intereses en común y participan en los diálogos sobre estos. Mayfield indica que en base a estos algunos actúan como comunidades cerradas, con poca o ninguna interacción y conexión con otros formatos de social media, aunque aclara que esto puede ser debido a que los foros ya existían antes del surgimiento de los otros social media e incluso antes de que se empezara a hablar de este término, siendo una de las primeras maneras de formar comunidades online. Este social media continúa siendo uno de los formatos fuertes en Internet, con muchas comunidades que alcanzan a los cientos de miles de usuarios. Existen sitios en Internet especializados en analizar los contenidos de las conversaciones que se producen en los foros, como ser el caso de Boardtracker que analiza los posts en más de 32.000 sitios, permitiéndonos realizar búsquedas sobre su base de datos de foros (28). Un factor clave en el despliegue de los foros en Internet ha sido el factor de software de código abierto, ya que muchos de las implementaciones de este formato de social media en la actualidad cuentan con licencia de software libre. En su libro “Managing Online Forums” Patrick O’Keefe, uno de los referentes en cuanto al desarrollo de comunidades en base a foros, analiza las opciones de software disponibles, tomando algunos casos de software libre y de software pago (29). O’Keefe destaca las funcionalidades provistas por phpBB (30), un software con licencia GPL15, así como también el potencial de las comunidades que se han desarrollado en torno al desarrollo de mejoras y estilos visuales gratuitos para phpBB.
3.4.6. Comunidades de contenidos Las comunidades de contenidos pueden parecer un poco similares a las redes sociales: el usuario se registra, tiene su página personal y puede establecer conexiones con otros. La diferencia está en que el objetivo de estas comunidades de contenidos es el de compartir y organizar algún tipo especifico de contenido. Para acercarnos al concepto de este social media, tomaremos ejemplos de algunos sitios que se han convertido en referentes a la hora de hablar de algún tipo de contenido.
15
GPL (General Public Licence) indica que el código está disponible para el uso y modificación, e implica que las modificaciones del software deben ser liberadas bajo la misma licencia. Podemos encontrar más información en (127).
38
TFG: Análisis de la tendencia Web 2.0, y su aplicación a la relación cliente-empresa IUA Ingeniería de Sistemas – Marco Teórico 3.4.6.1.
Flickr: fotografías.
Este servicio está basado alrededor de compartir fotografías, permitiendo que los miembros de la comunidad suban sus imágenes al sitio, eligiendo la posibilidad de hacerlas públicas o simplemente compartirla con otros usuarios de confianza que están en la comunidad, como ser el caso de amigos y familiares. Una de las razones del éxito de Flickr es la aplicación de la licencia Creative Commons16 sobre las imágenes que un usuario sube al sitio, eligiendo el usuario en caso de dejarlas abiertas al público, lo que otros usuarios de Internet pueden hacer con estas dando opciones como ser: reproducir y modificar libremente siempre cuando se de crédito al autor, reproducir y generar variaciones solo para uso no comercial o reproducir pero no hacer derivaciones. Esto provee de un marco de derechos de autor flexible a los usuarios, generando un alto grado de transparencia en el uso del sitio y sus contenidos. A su vez, para fomentar la interacción entre los miembros de la comunidad, es posible formar grupos alrededor de intereses comunes. Existen por ejemplo grupos dedicados a deportes, ciudades, animales o artistas. Por supuesto, también existen grupos en base a empresas muy conocidas, e incluso de personalidades. Flickr ha puesto a disposición de los desarrolladores un set de APIs, que permiten interactuar libremente con el servicio, con lo que es posible generar aplicaciones para por ejemplo subir, bajar y buscar imágenes de Flickr. (31) La empresa iniciada en el 2004 obtuvo un rápido éxito en base a sus prácticas innovadoras, por lo que fue comprada por Yahoo! en el 2005 por aproximadamente 30 millones de dólares (32), y es uno de los referentes en el concepto Web 2.0. 3.4.6.2.
YouTube: videos.
En base a la publicación de videos, YouTube ha generado una de las comunidades de contenidos más conocidas y utilizadas, llegando a mostrar a sus usuarios más de 100 millones de videos por día (33). Los miembros de la comunidad pueden subir videos e incluso crear sus propios canales de videos. Una gran variedad de videos han sido subidos por los usuarios del servicio, pudiendo encontrarse una inmensa variedad de temáticas y tipos de contenidos. La naturaleza viral de los videos de este servicio se ve potenciada por la facilidad con la que los usuarios pueden embeber un video de YouTube en sus blogs u otro entrono que acepte código HTML, además de la posibilidad de interactuar con el servicio mediante las APIs provistas por el sitio. (34) YouTube comenzó como una pequeña empresa privada, y debido a su éxito llamo la atención de Google, que la adquirió por 1.650 millones de dólares a finales del 2006. (35) 16
Las licencias Creative Commons son aplicables a cualquier contenido publicado en Internet. Es considerada parte de la tendencia Web 2.0, por lo que será desarrollada posteriormente. Podemos encontrar más información en http://creativecommons.org/.
39
TFG: Análisis de la tendencia Web 2.0, y su aplicación a la relación cliente-empresa IUA Ingeniería de Sistemas – Marco Teórico 3.4.6.3.
Delicious: marcadores (bookmarks).
El servicio provisto por Delicious permite que los usuarios mantengan su lista marcadores (o bookmarks) online, despegándose de el concepto local incorporado en los navegadores de Internet (como ser el caso de “Favoritos” del Internet Explorer de Microsoft). Al agregar un sitio, el usuario puede agregar etiquetas o “tags” al marcador. Por ejemplo, si se quisiera agregar a marcadores un sitio en el cual estamos revisando las especificaciones de una cámara de fotografía digital, el usuario podría querer agregar los tags “sony” y “cámara” al marcador, para poder organizar de mejor forma sus marcadores en base a estos metadatos. A su vez, el usuario puede dejar como públicos sus marcadores, a disposición de otros usuarios o servicios que deseen consultarlos. Esto implica el concepto de “marcadores sociales”, y el poder que generan al indirectamente crear una folsksonomia17, ya que de esta forma los contenidos de Internet son organizados mediante el aporte de cada usuario y sus metadatos agregados, rompiendo con la estructura de organización clásica en categorías. Por tanto, volviendo al ejemplo anterior el usuario podría realizar su búsqueda en la comunidad en base a los tags que le interesan, obteniendo directamente lo que otros usuarios han considerado importante, en contraste a la búsqueda algorítmica que provee un servicio de búsqueda como ser el de Google: Toda inclusión y clasificación de recursos está realizada por seres humanos en lugar de máquinas que procesan la información de forma automática según un programa. 3.4.6.4.
Digg: noticas y contenidos.
Los usuarios de este servicio tienen como fin compartir links a historias o noticias que consideran interesantes, y estos links son votados por otros miembros de la comunidad. Una vez que la historia ha conseguido un número critico de votos, la noticia es colocada en la página principal por lo que obtendrá mayor atención por parte de los usuarios y los visitantes ocasionales al sitio. Es decir, lo que genera esta comunidad es que la relevancia de una noticia o historia sea elegida por la gente, no por un editor de contenidos de un medio en particular. En su sitio indica: “En Digg no encontraras editores. Estamos aquí para proveer un lugar donde la gente puede determinar de manera colectiva el valor de los contenidos, y por tanto estamos cambiando la forma en que la gente consume información online.” (36) La empresa nacida a fines del 2004 indica tener más de 20 millones de visitas únicas cada mes, y se mantiene como una empresa pequeña e independiente con alrededor de 40 personas en su staff. Este servicio ha inspirado el surgimiento de otros similares pero apuntados a lugares e idiomas específicos, como ser el caso de Menéame (37) que surgió en el año 2005 y fue liberado como código abierto, contando con un éxito considerable en España y en el público hispano en general.
17
El concepto de folksonomia es muy relevancia en el estudio de Web 2.0, por lo que será desarrollado en mayor detalle posteriormente al analizar tagging.
40
TFG: Análisis de la tendencia Web 2.0, y su aplicación a la relación cliente-empresa IUA Ingeniería de Sistemas – Marco Teórico
3.4.7. Microblogging Es una combinación de redes sociales, mensajería instantánea y blogging en pequeña escala: el usuario escribe mensajes breves (por ejemplo, de hasta 140 caracteres) que son retransmitidos automáticamente a otros usuarios que han decidido seguir estas “actualizaciones” vía mensajería instantánea o incluso a sus teléfonos móviles. Dichas actualizaciones también son publicadas en el blog personalizado del usuario. 3.4.7.1.
Twitter: el líder en microbbloging.
El concepto empezó a tomar fuerza de la mano del proyecto Twitter (38) a mediados del 2006. Si bien existen otros proyectos cubriendo el formato microbogging, Twitter es el claro líder habiendo alcanzado más de 1 millón de usuarios (2) en Abril del 2008. Esta cifra es baja comparada con el alcance de los otros social media que estamos considerando, por lo que aun es considerada como un nicho. A la fecha mencionada solo alcanza al 0.0016% de los usuarios de Ilustración 4: Estadísticas de HitWise sobre Twitter. internet en Estados Unidos, pero dicho numero representaba un Porcentaje de visitas a Twitter por parte de usuarios de Internet en crecimiento del 60% respecto al Estados unidos, comparado con otros sitios de microblogging. Julio del mes anterior (39). Y para Julio del 2008 2008 el porcentaje alcanzaba el 0.0024% nuevamente mostrando un crecimiento vertiginoso. (40) En base a estas cifras podemos considerar al caso de Twitter como el ejemplo a analizar en busca de un mejor entendimiento sobre el concepto del microblogging. 3.4.7.2.
Usos del Microblogging
Bill Tancer de la revista estadounidense Time lo define a Twitter como “un servicio Web 2.0 que permite a los usuarios dar a conocer a su red social exactamente que están haciendo (o sintiendo o pensando o comiendo) en cada minuto de cada día". (41) Los usos del microblogging varían, aunque uno de los usos más populares es entre oficinistas como medios para dialogar, o simplemente por cualquier persona para mantenerse en contacto con una red de personas, compartir pensamientos o comenzar conversaciones. En países como Estados Unidos está tomando mucha fuerza e introduciéndose en muchos aspectos de la sociedad, como por ejemplo en la relación de los medios de prensa tradicionales y sus espectadores. Un buen ejemplo de esto es el caso de CNN, que promueve su uso (42) para 41
TFG: Análisis de la tendencia Web 2.0, y su aplicación a la relación cliente-empresa IUA Ingeniería de Sistemas – Marco Teórico interactuar con sus espectadores mediante este social media. Podemos encontrar sus actualizaciones en http://twitter.com/cnn. Otro ejemplo es el uso de Twitter como parte de la estrategia de campaña política del candidato demócrata a presidente Barack Obama. Podemos encontrar sus actualizaciones en su Twitter: http://twitter.com/BarackObama. En Argentina el microblogging está empezando a tomar fuerza: el periódico argentino Clarín comenta que”el microblogging se legitima
Ilustración 5: Twitter de Barack Obama, candidato presidencial para
como recurso para obtener y Estados Unidos. producir noticias: mientras los diarios del mundo lo suman como canal de difusión, entre . los periodistas ciudadanos nace una nueva forma de conectarse”. (43) Para ver sus actualizaciones podemos entrar a http://twitter.com/clarincom. Más 90% de las interacciones con Twitter no son realizadas directamente en su sitio web (44), sino que se canalizan a través de mensajería instantánea, mensajes de texto vía teléfonos móviles, y aplicaciones de escritorios u otros sitios web que utilizan las APIs de Twitter (45). Estas APIs permiten que programadores inventen variantes creativas del servicio. Como vemos, esta estrategia es utilizada por otros social medias, con el objetivo de que la comunidad sea la que mejore el servicio con sus propuestas. Claramente este nuevo concepto está produciendo cambios sociales, y estos están empezando lentamente a repercutir en nuestro país, pero es de esperarse que su efecto se acelere en los próximos meses. Podemos tomar como parámetro los datos de los sitios Twitter de los medios de comunicación arriba mencionados: Al 23 de Octubre del 2008 CNN tiene 9.309 seguidores, mientras Clarín solo tiene 418.
3.4.8. Sindicación de contenidos y APIs en los social medias. En los puntos anteriores hemos analizado los social media como espacios de generación de contenidos por partes de los usuarios. Estos medios han abierto las posibilidades para que la gente pueda expresarse libremente y sin intermediarios mediante la capacidad de generar textos, imágenes, audios y videos, y virtualmente sin costos ni conocimientos técnicos. Esta realidad era impensable hace tan solo unos pocos años. Pero por supuesto, la producción de contenidos es solo la mitad de la historia. ¿De qué sirve generar información si no podemos hacer que llegue a la gente? En todos los casos de social medias mencionados anteriormente la cantidad de contenidos que se genera y que pueden ser de interés para una persona es enorme, y por supuesto, los usuarios tienen escases de un recurso en particular: tiempo. Verificar una por una todas las fuentes de contenidos (blogs, wikis, podcats, etc.) que una persona encuentra interesante publiquen algo todos los días es algo complicado. 42
TFG: Análisis de la tendencia Web 2.0, y su aplicación a la relación cliente-empresa IUA Ingeniería de Sistemas – Marco Teórico Para facilitar esta barrera es ampliamente utilizado el concepto de “sindicación de contenidos”. Mediante el uso de alguna de las tecnologías en las cuales se ha aplicado el concepto, un usuario de Internet puede subscribirse para recibir notificaciones y contenidos de forma automática de cualquier fuente, siempre y cuando la fuente también tenga implementada alguna forma de sindicación. El formato más utilizado para la sindicación de contenidos es el formato RSS (Really Simple Syndication)18, basado en archivos XML. Mediante el uso de este formato los usuarios pueden mediante software llamados “agregadores” recibir las actualizaciones de todas las fuentes que así lo desee y de manera automática, pudiendo consumir los contenidos en el mismo agregador o ir directo a la fuente. Existe una gran variedad de agregadores, como ser el caso del Bloglines (46), que es un servicio online gratuito. Prácticamente todos los ejemplos de social media que hemos mencionado anteriormente cuentan con este servicio de sindicación, siendo parte vital del flujo de información en Internet. Por otra parte, se presenta en la mayor parte de los ejemplos mencionados la tendencia del software como servicio al proveer APIs que sirven para redistribuir y reutilizar contenidos y servicios: prácticamente todo contenido generado en social medias puede ser reutilizado mediante APIs por terceros generando nuevos contenidos y potenciándose. Dichas APIs siguen el paradigma del Software como Servicio19. Las posibilidades de contar tanto con sindicación de contenidos así como también con APIs abiertas de servicios forman parte de los pilares de la tendencia Web 2.0, y analizaremos esto en más detalle al adentrarnos a los patrones de diseño Web 2.0.
3.4.9. Mashups Mayfield define a mashup como la combinación de dos o más unidades de contenido (o software o sitios web). Indica que es uno de los fenómenos que hacen a las sociales medias tan excitantes, cambiantes y en ocasiones confusos y sorprendentes. Los mashups son posibles gracias a la apertura que presentan los social media: la tendencia en los ejemplos que hemos analizado es la de motivar a la gente a jugar con los servicios y reinventarlos, algo que también veremos más adelante en los patrones de diseño. Para acercarnos al concepto podemos analizar el ejemplo del sitio HousingMaps.com, mencionado al explicar que es un mashup en el libro “Pro Web 2.0 Mashups: Remixing Data and Web Services” (47). En este caso nos encontramos con una combinación de servicios de Craiglist 20 18
Podemos encontrar las especificaciones del formato en http://www.rssboard.org/rss-specification.
19
También conocido como SaaS como abreviación de “Software as a Service”. El concepto fue mencionado en (129), y definido en (130) Ha planteado una revolución en el desarrollo de modelos de software y de negocio, y es importante para el desarrollo de los patrones de diseño. 20
El sitio fue lanzado en 1995 y cubre anuncios clasificados de 450 ciudades en 50 países. Su servicio es encontrado en http://www.craigslist.org, y podemos encontrar más información en http://en.wikipedia.org/wiki/Craigslist.
43
TFG: Análisis de la tendencia Web 2.0, y su aplicación a la relación cliente-empresa IUA Ingeniería de Sistemas – Marco Teórico y Google Map. HousingMaps es útil en maneras que son fáciles de comprender, lo que provoca el uso repetitivo del sitio. A su vez no requiere por parte de los usuarios más software que un navegador web., y una de sus mayores fortalezas es que toma dos servicios muy conocidos y utilizados para crear algo nuevo. Todos estos puntos son partes de la tendencia Web 2.0, como veremos más adelante. Craigslist es un sitio de anuncios clasificados muy utilizado, y en sus categorías de propiedades provee links individuales hacia Google Maps al mostrar una propiedad, pero no provee un mapa colectivo de todos los listados. Esto genera un desafío al momento de realizar una búsqueda geográfica de una propiedad: cuando uno busca una propiedad, tiende a hacerlo en un vecindario delimitado o de acuerdo a los accesos de transito. Al hacerlo con los listados individuales de Craigslist, habría que tener muchos mapas individuales abiertos y manualmente crear un mapa de la zona que nos interese para tener un claro panorama geográfico. Si elegimos un punto en el mapa, podremos ver una propiedad listada en la categoría de casas, observando imágenes, textos y por supuesto un link a la página de Craigslist donde se podrá ver más detalles de la propiedad. Es decir, toda la información es extraída de Craigslist y mostrada en el mapa que es provisto por Google Maps. HousingMaps permite simplificar la búsqueda proveyendo la posibilidad de realizar búsquedas en la base de datos de Craigslist de manera geográfica visualizando todos los listados en una zona determinada mediante el uso de una interfaz de mapa, permitiendo luego acceder a los detalles de cada uno de forma individual.
Ilustración 6: Captura de pantalla de HousingMaps. Al buscar una propiedad a la venta en la ciudad de Austin, Texas, podemos ver el listado obtenido de Craigslist en la derecha , y el mapa del centro de la ciudad con los elementos de dicho listado. A su vez, al elegir una de las propiedades del mapa obtenemos la dirección, algunas imágenes, los datos de contacto de la persona que publico el anuncio, y el link al sitio de Craigslist con la información detallada.
44
TFG: Análisis de la tendencia Web 2.0, y su aplicación a la relación cliente-empresa IUA Ingeniería de Sistemas – Marco Teórico La mezcla y reutilización de los servicios e información sucede en el lado del servidor del sitio, que no es ni la fuente de datos (Craigslist) ni la forma en la que se muestran los datos (Google Maps). Los datos son tomados de la fuente de datos y transformados en mapas de Google Maps, los cuales son embebidos en el sitio HousingMaps. Por tanto, lo llamativo es como HousingMaps obtiene los listados de propiedades de Craigslist y como logra crear mapas de Google Maps con esos datos: Por su parte Craigslist provee mediante sindicación de contenidos un feed de RSS, del cual HousingMaps toma los listados de propiedades específicamente. Y para generar y embeber los mapas, aprovecha la API ofrecida por Google Maps. Este innovador servicio no fue ideado ni por Craigslist ni por Google Maps, sino que fue le idea de un desarrollador independiente quien logro algo simple y útil con una inversión prácticamente nula, y que hubiera sido prácticamente imposible en el caso de tener que reinventar los servicios que proveen los dos componentes del mashup. Al desarrollar los patrones de diseño Web 2.0 mencionaremos numerosos sitios o social medias que son mashups, ya que basan parte de sus funcionalidades en servicios de terceros, como por ejemplo utilizar capacidades de videos mediante YouTube o imágenes mediante Flickr.
3.4.10. Un breve resumen de los social medias. Los blogs (y de la mano los podcasts y microblogs por tener similitudes en sus características de publicación) han ganado en popularidad y credibilidad, y se está produciendo una revolución mediática, donde las voces de los usuarios de Internet son cada vez más fuertes. Análisis de la blogosfera pueden dar una clara fotografía actual de los temas sobre los que la gente está hablando, y las opiniones más fuertes sobre estos. En estos casos una persona o un grupo de personas reducido funcionan como creador de contenido, pero con la posibilidad de realmente dialogar con los visitantes del sitio y autores de otros blogs. Los foros son el lugar por excelencia cuando la gente quiere debatir sobre un tema en particular, en donde se vierten opiniones y conocimientos, pudiendo centrarse en torno a cualquier temática, desde cocina, mantenimiento de redes o el gusto por el origami. Esto crea comunidades de colaboración sobre distintos ámbitos, permitiendo generar conocimiento colectivo e interacciones entre usuarios que de otra forma sería imposible lograr. Por su parte las Wikis surgen como un lugar para acumular conocimientos sobre diferentes temáticas, actuando también de manera colaborativa. A diferencia de los foros no existen demasiados lugares para debates, sino que simplemente se trabaja para mejorar y optimizar información y datos sobre un tema específico. Aquí lo importante no es la comunidad, sino el refinamiento de los contenidos y es una herramienta que puede adosarse fácilmente a cualquier tipo de proyecto. A su vez, existen las comunidades de contenidos, donde el objetivo es compartir algún tipo de contenido en particular, sin necesariamente expresar opiniones y conocimientos; videos, imágenes y links son algunos de estos ejemplos. Al igual que los foros, aprovechan la colaboración
45
TFG: Análisis de la tendencia Web 2.0, y su aplicación a la relación cliente-empresa IUA Ingeniería de Sistemas – Marco Teórico conectiva de los usuarios de Internet para generar grande bases de datos, y también para organizarlas (como veremos más adelante al analizar el concepto de tagging y folksonomias). Las redes sociales tienen una incidencia distinta a la de los otros medios, ya que el fuerte esta en ofrecer herramientas para que la gente se relacione con sus conocidos y comparta su vida diaria mediante medios digitales, y no están apuntadas a la generación de contenidos (aunque si son un medio de distribución). Su uso se ha vuelto masivo y mantiene un crecimiento muy acelerado. Es algo similar a la revolución que se presento en su momento con los celulares y el e-mail: todos tienen estos elementos y se vuelven moneda común para comunicarse con nuestros conocidos, y hoy en día virtualmente todos tienen una cuenta en Facebook (o MySpace, LikedIn u otras redes sociales) o al menos se ven rodeados de gente que participa en redes sociales, sin necesidad de ser personas muy adeptas a la tecnología o internet. Si bien en Argentina todos los efectos mencionados de los social media se presentan en una escala menor en comparación a otros países (como ser Estados Unidos, y muchos los países Europeos o Asiáticos)21, la tendencia apunta a un crecimiento rápido, por lo que en los próximos años o incluso meses notaremos cambios drásticos en relación al uso de estos medios. Si recordamos los elementos en común que presentan los social media (participación, apertura, conversación, comunidad y conectividad), podemos considerar que el potencial es enorme, y que si son utilizados de una manera ética y estratégica podrían provocar cambios sociales muy positivos.
3.5.
Clientes, empresas y la Web 2.0
A continuación buscaremos obtener una imagen de cómo los usuarios de Internet, tanto en el papel de clientes o de empresas, se relacionan con los diversos social medias, tecnologías, y elementos de la Web 2.0. En este aspecto podría profundizarse mucho debido al gran impacto social y económico que ha tenido esta tendencia en los últimos años, pero será importante tratar de crear un panorama, más que desarrollar el tema en detalle debido a que el tipo de trabajo teórico debe focalizarse en otros puntos. Igualmente, en base a estadísticas y opiniones será posible conocer a los usuarios de Internet a un nivel suficiente para plantear los requerimientos de la solución que este trabajo propone.
3.5.1. Los consumidores son los protagonistas. La reconocida revista estadounidense Time cada año elige la “persona del año”. En Diciembre del 2006 ocurrió algo que llamo la atención del mundo: La persona elegida fue “usted”. (48) En dicha nota Lev Grossman comenta: “Si observamos al año 2006 desde una óptica diferente, veremos una historia diferente, que no habla de conflictos o grandes hombres. Es una historia sobre comunidad y colaboración en una escala nunca antes vista. Es sobre el gigantesco 21
Esto será analizado a continuación al acercarnos a la relación de los usuarios de Internet con la tendencia Web 2.0.
46
TFG: Análisis de la tendencia Web 2.0, y su aplicación a la relación cliente-empresa IUA Ingeniería de Sistemas – Marco Teórico compendio de conocimientos de la Wikipedia, el millón de videos de la red de YouTube y la metrópolis online que es MySpace. Es sobre el poder que descansa en los pocos y la ayuda de unos a otros por nada, y de cómo eso no solo cambia el mundo, sino también cambia la forma en la que el mundo cambia”. El efecto de la tendencia Web 2.0 no ha hecho más que crecer rápidamente desde sus inicios. Este hito del 2006 nos muestra que ya no es algo que “esta por pasar”, sino que es algo que está ocurriendo y a su vez, nos está cambiando. De esa fecha a esta parte han sucedido muchas cosas, y han surgido permanentes cambios.
3.5.2. Tendencias de consumo de Internet Los usuarios de Internet son personas, y toda persona puede ser vista como un consumidor desde el punto del Marketing. Analizaremos ahora a estos, para obtener un panorama de su comportamiento. Por su parte, la publicación “Web 2.0 Principles and Best Practices” indica que diversos cambios demográficos, tecnológicos y económicos están guiando a la tendencia Web 2.0. Comenta que tras estos cambios están fundamentalmente los deseos de la gente de conectarse, comunicarse y participar. Estas motivaciones son facilitadas por Internet en formas antes no imaginadas. Dicho estudio menciona algunas tendencias de los consumidores en Internet: 1. 2. 3. 4.
La base de clientes es verdaderamente global. Los clientes están siempre conectados. Los clientes están conectados dondequiera que vayan. Los clientes no están simplemente conectados, están participando.
Analizamos estas y sus impactos, analizando la aplicación de estas en el caso particular de Argentina: 3.5.2.1.
La base de clientes es verdaderamente global
Ya por el año 2005 un mil millones de personas tenía acceso a Internet. Estados Unidos ya no ocupa la porción dominante del mercado (con un 24%), lo que deja un buen lugar para desarrollo a otros mercados. Entre ellos, el de Sud América ocupa un 5%. Particularmente en el caso de Argentina, según el estudio publicado por la consultora D’Alessio IROL (49) existían 10.320.000 usuarios en dicho año, y en Noviembre del 2007 la consultora Price & Cooke (50) indico que existían 16.000.000, lo que representaba un 42% sobre la población del país y un claro crecimiento en tan solo 2 años. Existe un factor que afecta a todos los países del mundo por igual: los nativos digitales22. Son aquellas personas menores de 30 años, generaciones que han vivido gran parte de su vida o incluso toda su vida frente a la presencia de la informática e Internet. Este grupo de personas se 22
Marc Prensky acuño los términos “nativos digitales” e “inmigrantes digitales” en 2001 (131). En referencia a estos dice: “Nuestros estudiantes han cambiado radicalmente. Los estudiantes de hoy ya no son las personas para las cuales nuestro sistema de educación fue diseñado para enseñar.”
47
TFG: Análisis de la tendencia Web 2.0, y su aplicación a la relación cliente-empresa IUA Ingeniería de Sistemas – Marco Teórico encuentra muy cómoda en el uso de Internet y por tanto se adapta rápidamente a los cambios que la Web 2.0 presenta. El impacto: La base de consumidores es sustancialmente mayor que en los últimos 5 años. Por tanto, el mundo se está volviendo cada vez más interconectado, haciendo más práctico y posible alcanzar micro mercados globales, siendo el indicador principal las preferencias de los nativos digitales. 3.5.2.2.
Los clientes están siempre conectados
La Internet banda ancha es cada vez más común, lo que permite que los usuarios estén conectados de forma virtualmente permanente. En marzo del 2006 en Estados Unidos un 42% de la población tenía acceso a Banda Ancha, mostrando un crecimiento del 40% sobre el año anterior. En el caso de Argentina según el ITU (51) en el 2007 solo el 6.58% del total de la población tiene acceso a Internet Banda Ancha
Banda ancha en hogares con Internet en Argentina - %
94
100 72
80 60
45
40
20
13
22
0 2004
2005
2006
2007
2008
creciendo ampliamente en comparación Ilustración 7: Banda ancha en hogares con Internet en Argentina. al 4.05% que se presentaba en el año anterior. Si analizamos por ejemplo el caso particular de los hogares que tienen acceso a Internet, la consultara Carrier y Asociados indica que el porcentaje ha crecido rápidamente en los últimos años alcanzando un 94% del total de los hogares, y mostrando un 23% de crecimiento respecto al año anterior (52). El impacto: Al estar conectados permanentemente, Internet se vuelve parte esencial de la vida de las personas. Y este tipo de conexión de alta velocidad se refleja directamente en la creación de contenidos por parte de los usuarios, debido a la posibilidad de subir y bajar de Internet videos, imágenes y audio, lo que permite a estos consumidores de multimedia convertirse en generadores de multimedia. 3.5.2.3.
Los clientes están conectados dondequiera que vayan
A finales del año 2006 existían en uso 2 billones de equipos de telefonía celular (53): el doble de los usuarios de Internet en el momento. La tendencia en los últimos años ha sido el creciente acceso a internet desde dichos equipos. El rápido crecimiento y mejora de estos equipos y otros dispositivos móviles está acelerando esta tendencia. La consultora BuddeComm indica que en Argentina en el año 2007 la telefonía celular alcanzo una penetración del 82%, un número muy por arriba del promedio de Latino América. Las tres empresas operadoras de telefonía celular en
48
TFG: Análisis de la tendencia Web 2.0, y su aplicación a la relación cliente-empresa IUA Ingeniería de Sistemas – Marco Teórico el momento (Telecom Personal, Movistar y CTI Móvil) planeaban cambios en sus redes para el lanzamiento de la tecnología UMTS 3G23, lo que potenciaría el uso de Internet móvil. (54) La consultora Prince & Cooke señalaba ya el lanzamiendo masivo de 3G a fin del del 2008 y comienzos del 2009 con un rápido crecimiento del mercado en Argentina, e indicando que el 2010 sera el año del depegue de la adopción en el país presentando estandarización y caída de precios (55). El impacto: Este rápido crecimiento generalizado está expandiendo el alcance de la red. Existe por tanto la necesidad de la generación de estrategias para aplicaciones independientes de la plataforma en la que corran. Los consumidores buscaran nuevos usos de Internet en sus equipos móviles. 3.5.2.4.
Los clientes no están simplemente conectados, están participando
La población de Internet se encuentra cada vez más cómoda respeto a la situación de contribuir contenidos online en los distintos social media analizados anteriormente. Esto va desde contenidos multimedia (como ser fotos, videos y audios) hasta la participación con conocimientos y opiniones en grupos de discusión y foros, sumado al rápido crecimiento que se presenta en los blogs personales y profesionales. En Estados Unidos en promedio diario, 5 millones de usuarios crean contenidos a través de un blog o un medio similar, 4 millones comparten música y archivos mediante redes Peer-to-Peer (P2P) y 3 millones usan internet para opinar sobre una persona, producto o servicio. (56) El caso particular de los blogs es muy llamativo. Existían ya más de 70 millones de blogs indexados por el motor de búsqueda de blogs Technorati en Abril del 2007, presentándose la creación de 120.000 de nuevos blogs cada día a nivel mundial. Del total de los blogs, el 3% están en idioma español. (57) Sumado al creciente potencial de los blogs, existe la fuerte tendencia de las redes sociales a nivel mundial: En Abril del 2006 entre Ilustración 8: Blogs indexados por Technorati - Marzo del 2003 a las 10 redes sociales más Marzo del 2007. importantes abarcaban casi al 45% de los usuarios totales de Internet. (58) Facebook, MySpace y Sonico suman juntos 150 millones 23
Esta tecnología pertenece a la “tercera generación” de telefonía móvil. La combinación de UMTS y el protocolo de Internet (IP) permiten la prestación de servicios multimedia y el uso de banda ancha (132).
49
TFG: Análisis de la tendencia Web 2.0, y su aplicación a la relación cliente-empresa IUA Ingeniería de Sistemas – Marco Teórico de usuarios, siendo la última de estas tres fundada por un argentino en Julio del 2007. En Marzo del 2008 dicha comunidad online ya contaba con 8 millones de miembros, con expectativas de finalizar el 2008 con 30 millones de usuarios. Por último, existen casos destacables en el país como ser el del sitio Psicofxp que cuenta en la actualidad con más de 800.000 usuarios. (17) En el caso de Argentina, la consultora Carrier y Contenidos subidos a Internet por usuarios Asociados en base a un estudio realizado en Argentinos - % Noviembre del 2007 indica que en dicho país 100 82 “existen 5 millones de personas que participan 80 activamente de la Web 2.0 de los cuales 1,4 60 millón lo hacen con una frecuencia al menos 43 semanal (…) el principal contenido subido a la red 40 15 son fotos, compartidas por el 82% de los usuarios 20 2.0, lo que equivale a 4,1 millones de personas, 0 porcentaje que crece en la medida en que baja la Fotos Textos Videos edad. Luego, con un 43%, sigue el upload de texto, aunque en este caso este valor crece a Ilustración 9: Contenidos subidos a Internet por medida que sube la edad y aumenta la usuarios Argentinos. antigüedad en el uso de Internet. Finalmente, se ubica el video, que es subido por sólo el 15%, lo que equivale a unas 750 mil personas.” (59). El impacto: Internet se está convirtiendo realmente en un medio de comunicación de dos vías, en una plataforma de lectura-escritura en base a los social media. Los medios masivos y tradicionales de comunicación están siendo desafiados por los contenidos generados por los usuarios. Estas cuatro tendencias demuestran la creciente adopción de Internet por parte de los usuarios, no solo como un medio de comunicación, sino como una parte importante de sus vidas.
3.5.3. La relación entre los usuarios de Internet y las marcas o productos. Podemos analizar en más profundidad la relación entre los clientes y las empresas o productos que consumen, tomando algunos ejemplos como ser el caso de los blogs. Anteriormente mencionamos que en el caso de este social media los contenidos creados por los usuarios están tomando cada vez más credibilidad y peso entre sus lectores. Como parte del estudio “Estado de la Blogosfera”, Technorati incluye su análisis llamado “Las Marcas entran en la Blogosfera” (21) donde indica que las discusiones y opiniones sobre marcas forman gran parte de la blogosfera: Más de ocho de cada diez bloggers publican opiniones sobre productos o empresas, y casi nueve de cada diez bloggers lo hacen sobre empresas que aman (u odian). Este factor se presenta tanto en hombres como en mujeres por igual. Cada vez más gente del marketing entiende que la blogosfera es un lugar donde es importante tener presencia: uno de cada tres bloggers se acerca a ser un defensor de alguna marca, y más de seis de cada diez recibieron oferta de pago de algún tipo.
50
TFG: Análisis de la tendencia Web 2.0, y su aplicación a la relación cliente-empresa IUA Ingeniería de Sistemas – Marco Teórico ¿Habla sobre productos o empresas en su blog?
Frecuentemente
Ocasionalmente
Nunca
Publico opiniones sobre productos o empresas.
37%
45%
18%
Publico opiniones sobre empresas que amo (u odio).
41%
48%
11%
Publico información o rumores que escucho sobre las empresas.
31%
32%
37%
Publico sobre algunas de mis experiencias de la vida diaria en empresas y con atención al cliente.
34%
45%
21%
Tabla 2: Frecuencia de opinión de bloggers sobre empresas
Para acercarnos un poco a la relación de dichos usuarios de Internet con las empresas y productos en el marco de Argentina, podemos tomar como referencia el informe de D’Alessio IROL en el 2006 (5). Entre sus puntos sobresalientes indica:”El poder comercial de Internet crece y se vuelve una “vidriera gigante”: 9 millones de personas consultan sobre productos y servicios para su posterior consumo”. Además indica que para nueve de cada diez personas Internet le fue de utilidad en la decisión de una compra, la mitad de las personas que utilizan Internet ya ha realizado
Usuarios que consultan sitios para informarse sobre productos y servicios
1 13
Si No 86
No responde
compras online, y que más del 60% realiza Ilustración 10: Usuarios que consultan sitios para compras por canales tradicionales luego de haber informarse sobre productos y servicios. consultado en la web. Este informe también incluyo un detalle de los rubros de productos consultados y comprados tanto online como por medios tradicionales por los usuarios de Internet. Incluimos aquí los productos consultados:
51
TFG: Análisis de la tendencia Web 2.0, y su aplicación a la relación cliente-empresa IUA Ingeniería de Sistemas – Marco Teórico Rubro AFJP Alimentos (Delivery) Alimentos (en general) Deportes Educación Electrodomésticos Temas de familia/Artículos para niños o bebés Hardware (PC, impresoras, etc.) Hogar (Muebles, artículos de decoración, mejoras) Inscripción a cursos/eventos Libros Música (bajada online) Remates Ropa Salud (sistemas médicos, farmacias, consejos, etc) Seguros Servicios financieros (Caja de ahorro/Cuenta corriente/Tarje) Software Suscripción de revistas/periódicos Telefonía Tickets de espectáculos Vehículos Viajes/turismo Videos Otros No responde
Tabla 3: Rubros consultados por usuarios de Internet en Argentina
Destaca también “el canal Internet suma un nuevo canal a las Empresas de Consumo y Servicios, pero no reemplaza otros canales. No se produce migración de uso de canales, sino que se amplían los contactos con las empresas.”.
3.6.
Las empresas y la Web 2.0
Las empresas han comenzado a utilizar cada vez más herramientas Web 2.0 de distintas formas en los últimos años, de mantera tanto interna como externa, demostrando ser un medio excelente para la cooperación y la comunicación. Como mencionamos anteriormente, este estudio debe focalizarse en como las empresas se vinculan con los consumidores, por lo que debemos dejar de lado el análisis de servicios e implementaciones que al aprovechamiento de la Web 2.0 de forma interna en las empresas (como por ejemplo, el uso de wikis como medio de cooperación en proyectos). Enrique Dans explica en su artículo “La empresa y la Web 2.0” publicado en la revista “Harvard Deusto marketing y ventas” (60) indica que a mediados de los años 90 (existiendo tan solo unos 45 millones de usuarios) alrededor del 80% de los contenidos de Internet eran generados por empresas y medios de comunicación, quedando tan solo un 20% generado por los usuarios, es decir, era una ”Web de las empresas”. Internet funcionaba en este sentido como una galería comercial o un elemento más de su campaña de marketing, y por tanto en el fondo las empresas 52
TFG: Análisis de la tendencia Web 2.0, y su aplicación a la relación cliente-empresa IUA Ingeniería de Sistemas – Marco Teórico solo replicaban lo que hacían en otros medios, generando solo páginas de representación a modo de folletos. Esto presenta un gran contraste al panorama que hemos analizado de Internet en los últimos años, donde Dans indica que alrededor del 85% de los contenidos actuales son generados por usuarios, mientras que tan solo el 15% es generado por empresas y medios de comunicación, lo que toma más peso al considerar que la cantidad de usuarios se multiplico hasta llegar a mas de los mil millones. De este análisis podemos ver claramente como se cambio el balance de poder, y por tanto porqué las empresas se ven forzadas a tomar unan nueva postura en su relación con los clientes. Uno de los social media que más impacto ha tenido en el aspecto de comunicación indudablemente han sido los blogs, por lo que muchos de los análisis podemos realizarlos en base a estos, extendiendo luego la tendencia a otros social media. Dans explica que los blogs son la punta del iceberg: “no son el único fenómeno asociado a la llamada Web 2.0, pero sí posiblemente el más llamativo y una buena manera de entender los cambios que se operaron a lo largo de estos últimos diez años.” En referencia a la blogosfera indica que “comienza, lentamente, a cambiar las pautas de interacción entre las personas y las empresas. De la noche a la mañana, el poder de los clientes se multiplica por el tamaño del altavoz que éstos poseen. Un simple episodio de insatisfacción de un cliente puede pasar, en cuestión de horas, a convertirse en un problema que llegue a afectar a las ventas de la compañía o a la cotización de sus acciones.”
3.6.1. Los distintos tipos de blogs corporativos Volviendo a los blogs, si recordamos el análisis realizado sobre este social media anteriormente, tenemos que una posible clasificación de estos es: personales, profesionales y corporativos. Para analizar un poco más la relación de las empresas con Internet, debemos ahondar en el concepto del tercer grupo, es decir, los blogs corporativos: aquellos en los que los autores escriben desde una posición oficial desde una empresa. Podemos considerar la siguiente segmentación dentro de los blogs corporativos planteada por Javier Celaya y Pablo Herrera (61) : Corporativos
Externos
Enfoque de ventas
Enfoque relacional
Internos
Enfoque conocimiento
Enfoque de colaboración
Ilustración 11: Segmentación de blog corporativos.
53
TFG: Análisis de la tendencia Web 2.0, y su aplicación a la relación cliente-empresa IUA Ingeniería de Sistemas – Marco Teórico Dentro de esta clasificación, debemos hacer hincapié en los blogs externos. El objetivo de la creación de este tipo de blog es principalmente habilitar nuevos canales de comunicación con los públicos externos de la empresa, como ser clientes actuales o potenciales, proveedores, medios de comunicación, etc. Dichos autores indican que “varias empresas han decidido complementar sus estrategias de comunicación con este tipo de herramientas, dado que consideran que les aportan fluidez, transparencia y credibilidad.” Entre los blog externos tenemos dos sub categorías: Blogs de ventas (o de marketing): herramienta de comercialización tanto para las fases de diseño, como para el apoyo a un producto o servicio puesto en el mercado. Blogs con enfoque relacional: aspiran a crear y mantener una relación más estrecha con las audiencias clave de la empresa. Respecto a los blogs Enrique Dans concluye que “la empresa debe plantearse optar por lugares de conversación, “blogs” corporativos o personales de directivos que permitan disponer de una voz en la conversación diferente a las tradicionales notas de prensa.”
3.6.2. Opinión de las empresas sobre el impacto de los blogs La revista TARGET publico un análisis realizado por la consultora CIO Research en base a la opinión de periodistas, directores de comunicaciones y relacionistas públicos sobre la relevancia de los blogs en Argentina a comienzos del 2008. Tomaremos las opiniones de estos dos últimos grupos (contando con 54 y 60 muestras respectivamente) para tener una aproximación a la opinión de los responsables de las empresas en cuanto a comunicación externa y contacto con el consumidor se refiere. (62)
Son competencia de los medios tradicionales (radio, tv, diarios)
3,6 3,9
R.R. P.P.
Son efectivos para que la sociedad publique sus inquietudes
Dir. de com.
6,6 6,7
Los blogs de periodistas son mas confiables que los medios para los que trabajan
5,7 5,7
Son una buena forma de realizar conmunicaciión institucional
4,9 4,8 4,2 4,1
Son fuente de información confiable
0
1
2
3
4
5
6
7
8
Ilustración 12: Opiniones de directores de comunicaciones y relacionistas públicos sobre blogs. Opinión de Relacionistas públicos y directores de comunicación. - (1 al 10)
54
TFG: Análisis de la tendencia Web 2.0, y su aplicación a la relación cliente-empresa IUA Ingeniería de Sistemas – Marco Teórico Según Cecilia Mostro, socio gerente de la consultora mencionada, “las condiciones del escenario argentino han logrado revertir la gran desconfianza que inspiraban hace un par de años, y, si bien desde lo práctico no se ha convertido aun en una herramienta dominante o competitiva en relación con los medios tradicionales, si aceptación desde el concepto le da toda la potencia para lograrlo en el corto plazo”. El estudio destaca las siguientes debilidades del blog como un medio: la falta de confianza, el volumen de información, impersonalidad y la carencia de un marco regulatorio. A su vez, destaca las siguientes fortalezas: la capacidad de llegar a todo tipo de público, la rapidez y la actualización constante, la interacción, la libertad y el bajo costo. Además, el estudio denota que la opinión generalizada es que los blogs son “un espacio para crecer en el desarrollo de nuevos productos y para facilitar la comunicación con nichos específicos, a los que antes era más difícil llegar.”
3.6.3. Ejemplos de la relación de empresas con la Web 2.0 Podemos mencionar a la empresa Dell como un ejemplo. Para esto debemos ir al caso denominado “Dell Hell”, cuando el blogger Jeff Jarvis realizo una serie de posts (63) quejándose de a modo de carta abierta al presidente de la empresa. Este hecho fue reflejado en revistas y publicaciones económicas, llegando a tener trascendencia tanto en las ventas como en protocolos y maneras de acción de la empresa desde entonces, ya que genero piliticas y acciones para detectar este tipo de situaciones y relacionarse de mejor forma con los usuarios de internet. Dell desarrollo el sitio “Dell IdeaStorm” (que mantiene el slogan “donde tus ideas reinan”) promoviendo la opinión y participación de sus clientes de manera abierta en sus productos actuales y futuros, y formando una comunidad en el sitio. Al describir el sitio indican que “creemos más que nunca que la mejor forma de comprender y servir a nuestros clientes es hablarles de forma directa, sin importar donde se encuentren” (64).
Ilustración 13: Captura de pantalla de IdeaStorm de Dell.
El caso de Dell demuestra la IdeaStorm de Dell es el lugar donde la empresa Dell interactúa abiertamente con las opiniones y voces de sus clientes, buscando tendencia de interacción con clientes sacar provecho de estas en lugar de ignorarlas o callarlas. que las empresas en forma minoritaria están tomando, pero claro que aun son pocas las que logran ver el beneficio de tal apertura. Pero es posible aprovechar prácticamente todos los tipos de social media para lograr un mejor contacto con los clientes, sin necesidad de crear un sitio especial para este objetivo. Una forma de 55
TFG: Análisis de la tendencia Web 2.0, y su aplicación a la relación cliente-empresa IUA Ingeniería de Sistemas – Marco Teórico lograrlo es participar activamente en las diferentes redes sociales (por ejemplo, teniendo una página en Facebook), comunidades de contenidos (por ejemplo, creando un canal de Youtube), y otros social media disponibles. Otro ejemplo de cómo algunas empresas grandes están comenzando a tomar un rol activo en la conversación se da en Intel. Kellyn Feller, Manager de social media de la empresa explica como la empresa busca cubrir todos los puntos posibles: “Nuestro rol es permitir el desarrollo de una conversación y para eso usamos todas las herramientas posibles a nuestro alcance: blogs, foros externos, campañas en Facebook, Second Life y Twitter. Tenemos 32 mil usuarios registrados en nuestra comunidad: comunity.intel.com. La gente quiere formar parte de la conversación porque considera que los que trabajan en Intel están técnicamente capacitados para resolver cualquier problema y duda”. Además, Feller opinó sobre el futuro de las redes sociales y otras herramientas 2.0: “Los seres humanos somos seres sociales por naturaleza, queremos socializar. Hoy la web permite esto como nunca antes. Y cada vez todo irá creciendo, más y más integrado.” (65)
3.7.
Los patrones de diseño Web 2.0
Con el objetivo de identificar practicas y patrones aplicados por distintos proyectos en Internet que han resultado exitosos y que pueden ser relacionados con los puntos planteados anteriormente sobre la Web 2.0, en base a los patrones dos años antes identificados por O’Rilly (66) se realizo un análisis de diferentes casos en “Web 2.0 Principles and Best Practices” (9). Realizaremos a continuación una explicación de estos patrones desarrollados a finales del 2007, explicando conceptos auxiliares importantes para su interpretación y el análisis breve de las acciones realizadas en algunos casos. Recordemos la definición planteada anteriormente: “La Web 2.0 es un conjunto de tendencias económicas, sociales y tecnológicas que de manera colectiva forman la base para la siguiente generación de Internet – un medio más maduro y distinguido caracterizado por la participación de los usuarios, la apertura y los efectos de red”. Esta definición es un buen punto de partida para comenzar con el análisis de los patrones y acercarnos a su entendimiento. Presentamos a continuación un listado de estos: 1. Aprovechar la inteligencia colectiva: Crear una arquitectura de participación que use los efectos de red y algoritmos para producir software que mejore a medida que más gente lo utilice. 2. Los datos son el próximo "Intel Inside": Usar fuentes de datos únicas y difíciles de recrear para convertirse en el siguiente "Intel Inside", en esta época en la que la información se ha vuelto tan importante como la función. 3. Innovación en el ensamblaje: Construir plataformas para fomentar la innovación en el ensamblaje, donde la combinación e interacción de datos y servicios crea nuevas oportunidades y mercados. 4. Experiencias de usuario ricas: Ir más allá de los conceptos tradicionales de lo que es una página web, para entregar experiencias al usuario mucho más ricas, combinando lo mejor del software online y de escritorio. 56
TFG: Análisis de la tendencia Web 2.0, y su aplicación a la relación cliente-empresa IUA Ingeniería de Sistemas – Marco Teórico 5. Software más allá de un solo dispositivo: Crear software que abarque a los diferentes tipos de dispositivos conectados a Internet, en base a la creciente omnipresencia de la experiencia online. 6. Beta perpetuo: Alejarse de los antiguos modelos de desarrollo de software, en favor de modelos de software como servicio (SaaS) online y continuamente actualizados. 7. Aprovechar la larga cola: Capturar nichos de mercado rentables a través economías de bajo costo y alcance amplio permitidas por la Internet. 8. Modelos ligeros y escalabilidad costo-efectiva: Uso de modelos de negocio (y de software) ligeros para construir modelos de productos y negocios de manera rápida y rentable. Cada uno de estos patrones es único, pero entre ellos son altamente interdependientes. A su vez, podemos decir que los siguientes atributos son comunes a toda aplicación Web 2.0, y que por tanto son la base que da soporte a los patrones mencionados: Masivamente conectados: Los efectos de red nos llevan desde la publicación uno-amuchos y modelos de comunicación del pasado hacia verdaderas conexiones muchos-amuchos. En esta era los bordes se vuelven tan importantes como el centro, y los antiguos modelos de publicación, comunicación, distribución y agregación se encuentran ante una disrupción. Descentralizados: La conectividad también provoca una disrupción en las estructuras tradicionales de poder y control, llevando a una mayor descentralización. Los enfoques de abajo-hacia-arriba compiten con los de arriba-hacia-abajo en todo, considerando desde flujos de información globales hasta modelos de marketing o diseños de nuevos productos. Los sistemas crecen desde los bordes hacia el centro, y no al revés. Focalización en el usuario: El usuario es el centro de la Web 2.0. Los efectos de red an a los usuarios posibilidades impensadas de participación, conversación, colaboración y sobre todo, impacto. Los consumidores se han convertido en publicadores con mayor control, las experiencias de estos son ajustadas a sus características en el momento de ser utilizadas, e interfaces enriquecidas optimizan la interacción de con dichos usuarios, pudiendo estos guiar el desarrollo de productos. Los clientes recompensan a las empresas que los tratan bien, mediante lealtad y valiosas opiniones positivas de boca a boca. Apertura: En Web 2.0 la apertura comienza con la formación de los estándares en los que se basa Internet, y crece rápidamente hacia un ecosistema de apertura con aplicaciones débilmente acopladas construidas en base a datos abiertos, APIs abiertas y componentes reusables. Y apertura significa más que tecnología: implica mayor transparencia en comunicaciones corporativas, propiedades intelectuales compartidas, y mayor visibilidad respecto a cómo se desarrollan los productos. Bajo peso: Una filosofía “menos es más, hay que mantener las cosas simples” se deduce de la tendencia Web 2.0: el software se diseña y se construye mediante pequeños equipos utilizando metodologías agiles; las soluciones tecnológicas se construyen sobre formatos y protocolos simples; el software se vuelve simple de desplegar en base a servicios y desarrollos open source; los negocios se focalizan en mantener las inversiones
57
TFG: Análisis de la tendencia Web 2.0, y su aplicación a la relación cliente-empresa IUA Ingeniería de Sistemas – Marco Teórico y costos bajos; y el marketing tiende a basarse en técnicas viales simples de usuario a usuario. Emergencia: En lugar de basarse en estructuras de aplicaciones totalmente predefinidas, las estructuras y comportamientos Web 2.0 pueden emerger en el tiempo. Una estrategia flexible y adaptativa permiten que soluciones apropiadas evoluciones en respuesta al uso real de las aplicaciones, y por tanto el éxito proviene de la cooperación, no del control. Desarrollamos a continuación los patrones de diseño, considerando las mejores prácticas que implican su aplicación.
3.7.1. Aprovechar la inteligencia colectiva La clave para una ventaja competitiva en aplicaciones de Internet es la permitir a los usuarios agregar su propio contenido a lo ya creado. Por tanto, es importante crear una arquitectura de participación que use los efectos de red y algoritmos para producir software que mejore a medida que más gente lo utilice. Para lograr esto debemos entender dos principios: Los usuarios agregan valor: A través de su participación activa y como efecto indirecto de sus acciones los usuarios agregan valor. Son usuarios que crean contenidos, realizan comentarios, hablan entre ellos, suben y comparten archivos, hacen recomendaciones, enlazan, agregan, filtran, buscan entre otras tantas acciones. Cada una de estas acciones agrega valor y crea nuevas oportunidades. Los efectos de red magnifican este valor: Cuando un producto o servicio logra un crecimiento en su valor a medida que el número de gente que lo utiliza crece ocurre un efecto de red. Este efecto proviene no solo del hecho de que haya más nodos en la red, sino de la interacción entre estos nodos. Para entender mejor el concepto de “efectos de red”, analizamos dos teorías, originalmente aplicadas a redes de telecomunicaciones. Primero observamos la ley de Metcalfe (67), que indica que el valor de utilidad de dispositivos en red (como ser teléfonos y computadoras) no se incrementa de una manera linear al aumentar nodos en la red, sino que crece proporcionalmente al cuadrado del número de estos nodos. Esto se aplica a Internet y a muchos de sus elementos: email, mensajería instantánea, blogs, etc. Sin embargo, la ley de Reed (68) analiza las capacidades de Internet como un medio de de “formación de grupos” indicando que estas son las que lo convierten en un poderoso medio de comunicación. Específicamente, indica en el caso de aplicaciones que facilitan la formación de subgrupos (como ser el caso de las aplicaciones previamente analizadas de redes sociales,
Ilustración 14: Impacto de los efectos de red.
58
TFG: Análisis de la tendencia Web 2.0, y su aplicación a la relación cliente-empresa IUA Ingeniería de Sistemas – Marco Teórico comunidades de contenidos, o la misma blogosfera) implican un crecimiento de 2N , es decir, un crecimiento mucho más rápido y exponencial. Por tanto el software Web 2.0 debe ser diseñado para aprovechar la inteligencia colectiva a través de una arquitectura de participación. Esto puede ser logrado involucrando a los usuarios de forma explícita e implícita, minimizando las barreras de la aceptación del producto, y diseñando productos que fomenten el efecto viral del crecimiento de red. El resultado final es que los usuarios como individuos y como grupos se convierten en el motor de mejores productos, y de rápidos y crecientes mercados. Analizamos a continuación las prácticas que implican la aplicación de este patrón: Pagar al usuario primero: Los productos Web 2.0 deben minimizar las barreras para la adopción, asegurándose que los usuarios loguen sus objetivos rápida y eficientemente. Por tanto será necesario generar una interfaz que permita al usuario cubrir sus necesidades de forma intuitiva. Podemos diferenciar entre los objetivos de los usuarios al menos dos niveles: los de primera orden (por ejemplo, subir una foto, y los de segunda orden, que son en general aquellos relacionados con los efectos de red, como ser participar en una comunidad). Los de segunda orden nunca deben interponerse con los de primera. Analicemos por ejemplo el proceso de carga de una imagen en Flickr. Una vez registrados al servicio, podemos subir una imagen en tan solo 4 clicks y de una manera muy intuitiva.
59
TFG: Análisis de la tendencia Web 2.0, y su aplicación a la relación cliente-empresa IUA Ingeniería de Sistemas – Marco Teórico
Ilustración 15: Proceso de carga de imagen en Flickr. Pagar al usuario primero- Con tan solo 4 clicks el usuario puede subir una imagen a su cuenta en Flickr.
Activar los efectos de red por defecto: Una de las formas de crear una base de datos es a través del efecto indirecto de los usuarios buscando cubrir sus propios objetivos. 24 Es necesario aplicar técnicas para que los contenidos aportados por un usuario se potencien por medio de los otros usuarios, buscando así un crecimiento exponencial en base a la cooperación y participación. Un ejemplo de esto es el caso anterior de Flickr, en donde los usuarios pueden elegir al subir una imagen si esta debe ser pública o privada, estando esta última opción seleccionada por defecto. Al ser las imágenes públicas, otros usuarios pueden acceder a estas, utilizándolas o haciendo comentarios sobre ellas, potenciando la interacción en la comunidad. Como resultado, cuando luego de un año de existencia Flickr tenía 3 millones y medio de imágenes, el 82% eran públicas. (69)
24
Dan Bricklin plantea 3 formas de construir bases de datos, y demuestra como esta forma en particular es un potenciador para algunos ejemplos de la era Web 2.0, como ser el caso de Napster (133).
60
TFG: Análisis de la tendencia Web 2.0, y su aplicación a la relación cliente-empresa IUA Ingeniería de Sistemas – Marco Teórico
Ilustración 17: Porcentagenes de imagenes publicas y privadas en Flickr. Ilustración 17: Subida de imágenes en Flickr. Las imágenes son subidas como publicas por defecto en Flickr.
Al alcanzar los 3 millones y medio de imágenes, el 82% de estas eran públicas en Flickr.
Esta simple pero importante práctica tiene su base en lo siguiente: o Solo un pequeño porcentaje de los usuarios se tomaran conscientemente el trabajo de agregar valor a una aplicación. (Por ejemplo, solo el 2% de los usuarios de la Wikipedia son activos y contribuyen contenidos en un mes dado. (70)) o Por naturaleza, la gente es inercial y tiende a aceptar las opciones por defecto. (71) Involucrar a los usuarios implícita y explícitamente: Para maximizar el valor de cada usuario debemos aprovechar la participación explicita (como ser crear un nuevo contenido, mejorar un contenido, comunicar y colaborar) y la participación implícita (el efecto indirecto de las acciones de los usuarios, como ser a donde van, cuando, como, y que transacciones llevan a cabo). Por ejemplo, el sitio Amazon.com promueve la interacción explicita a través de opinión sobre productos, e implícitamente mediante su motor algorítmico de recomendaciones generando numerosos contenidos sobre el producto.
61
TFG: Análisis de la tendencia Web 2.0, y su aplicación a la relación cliente-empresa IUA Ingeniería de Sistemas – Marco Teórico
Ilustración 18: Presentación de producto en Amazon.com En la presentación de cualquier producto de Amazon.com, la mayor parte del contenido es generado por los usuarios ya sea de forma implícita o explícita.
Proveer un contexto significativo para la creación: Debemos crear una arquitectura de participación que haga más que solo invitar a la creación de contenido: debemos crear un contexto de coherente y consistente. es necesario crear un contexto coherente. Nos referimos a mecanismos para identidad, reputación, relaciones entre usuarios, identificación de datos (URLs, tags, estc.), agregación y personalización. Confiar en los usuarios: Es necesario proveer un contexto abierto para la participación, interacción y realización de transacciones. Tomando nuevamente el ejemplo de Amazon.com, encontramos que uno de los puntos fuertes de su estrategia se basa en las opiniones de productos por parte de los usuarios. Otro ejemplo claro es el de la Wikipedia, que si bien cuenta con un sistema de moderación y retroceso a versiones anteriores para controlar posibles ataques a los datos, permite una gran libertad a los miembros de la comunidad en cuanto a la creación y edición de artículos. Esto implica que las organizaciones ceden control para compartirlo con sus usuarios. Es decir, deben confiar en estos. Esta estrategia va de forma contraria a la mayoría de las culturas organizacionales, y es uno de los desafíos más grandes al aplicar los patrones de diseño Web 2.0. Para esto es necesario hacer una fuerte moderación de contenidos con reglas claras y flexibles, haciendo un fuerte esfuerzo para evitar abusos contra el sistema. Diseñar software que es mejor cuanta más gente lo usa: En base a los efectos de red, podemos lograr que el software maximice su potencial. Tenemos como ejemplos a virtualmente todos los casos de social media analizados previamente, y esto es un efecto directo del aprovechamiento de los efectos de red que mencionamos previamente. 62
TFG: Análisis de la tendencia Web 2.0, y su aplicación a la relación cliente-empresa IUA Ingeniería de Sistemas – Marco Teórico
En el caso de los marcadores sociales podemos tomar a Delicious. A medida que más y más gente cree y aplique tags a contenidos en Internet, mejor será el criterio de clasificación al utilizar a los tags como filtros para nuestra información, cuando el criterio que deseamos es el ordenamiento de información en base a personas, no a algoritmos. Facilitar la emergencia de los contenidos: La interfaz debe predecir el comportamiento de los usuarios, pero dejar siempre la libertad para usos no esperados. De esta forma el usuario aportara también al diseño de dicha interfaz, por lo que surgirán formas inesperadas e innovadoras de mostrar contenidos y permitir la navegación. Ilustración 19: Nube de tags de Technorati. Un ejemplo que surgió en los últimos años es la Nube de tags en base a los posts en blogs indexados por Technorati del 3/11/2008, una día nube de tags: podemos ver un ejemplo en antes de las elecciones presidenciales de Estados Technorati que contiene una pequeña nube de tags Unidos. que se actualiza constantemente en base a los tags aplicados a posts en los blogs indexados por Techonorati por parte de los autores de dichos blogs. Cuantos más veces se repita un tag, es decir, mas posts tengan ese tag, mayor será el tamaño de la palabra lo que facilita la navegación hacia los contenidos más populares, de forma automática basándose en el uso real y no en una estructura previamente pensada de navegación. Relación con otros patrones: Los datos son el próximo "Intel Inside": Una arquitectura de participación exitosa es la base para la construcción de una valiosa base de datos de contenidos generados y enriquecidos por los usuarios. Innovación en el ensamblaje: En base a la generación de APIs, empresas como Amazon.com u otras citadas previamente generan una arquitectura de participación, dándole a terceros elementos para construir aplicaciones que potenciaran el valor del servicio.
3.7.2. Los datos son el próximo "Intel Inside" El mercado esta desplazándose gradualmente desde aplicaciones de escritorio para individuos hacia un modelo de servicios online compartidos. Este patrón indica que en general el éxito de las aplicaciones y servicios online proviene de la información, no solo de la función. Existen muchos ejemplos de esto, como ser el caso del buscador Google: Su base de datos de sitios indexados es lo que da el valor verdadero al servicio, más allá de las interfaces simples y agradables con las que llegan a su público. Si los resultados de búsquedas no fueran efectivos, nunca hubiera alcanzado su éxito. Por tanto, es necesario establecer una estrategia de datos, no solo una estrategia de producto, para poder obtener una ventaja competitiva.
63
TFG: Análisis de la tendencia Web 2.0, y su aplicación a la relación cliente-empresa IUA Ingeniería de Sistemas – Marco Teórico
Software propietario
Integración de componentes “ Formas de mantener a usuarios cautivos mediante código propietario
Aplicaciones de Escritorio Uso de APIs (Microsoft y Apple.) Monitores, Placas madre, discos. CPU (Intel, AMD)
Aplicaciones de Internet Uso de efectos de red y de software como servicio ( Google, Amazon y EBay.) Linux, Apache, MySQL, y PHP.
Datos (adWords, NAVTEQ)
Tabla 4: Comparación entre aplicaciones de escritorio y aplicaciones de Internet.
Si miramos a la “era del escritorio”, descubrimos que por más de 15 años la campaña de branding “Intel Inside” de Intel se basaba en que en cada sistema abierto de hardware existían componentes propietarios y de código cerrado. Comparando las aplicaciones existentes en ambas eras podemos ver estructuras o frameworks similares, pero con nuevas reglas. Nuevas ventajas competitivas se encuentran en las capas superiores e inferiores de la pila emergente de Internet: En la capa superior del software, la ventaja competitiva viene de los efectos de red y del uso del software como servicios. En la capa inferior, el control de los datos provee la ventaja competitiva. Analizamos a continuación las prácticas que implican la aplicación de este patrón: Buscar poseer fuentes de datos únicas y difíciles de recrear: NAVTEQ (72) es uno de los líderes mundiales en cuanto a proveedores de datos de mapas digitales. Entre sus clientes podemos encontrar a Microsoft y Google, que usan sus contenidos para crear servicios como Google Maps y Microsoft Vitual Earth (y casualmente, en su estrategia de branding utilizan la frase “NAVTEQ On Board”, algo que suena similar al caso de “Intel Inside”). NAVTEQ tuvo éxito en la creación de una base de datos único y valioso, lo que le dio grandes ganancias en el año 2006. Aunque NAVTEQ invirtió aproximadamente $700 millones de dólares para crear estos datos, existen muchos mecanismos de bajo costo, especialmente los basados en aprovechar los efectos de red en base a una estructura de participación que permiten a los mismos usuarios de un servicio construir una base de datos. Delicious, YouTube y Flickr son algunos de estos ejemplos entre los social media analizados. Mejorar los datos básicos: Los datos de tipo “commodity” no tienen porque mantenerse en ese estado. Un ejemplo de esto es el de Amazon.com, que sobrepaso a la competencia al mejorar por diversos medios la información básica provista por catálogos de libros: mediante las opiniones de los usuarios del sitio, historiales de compra y otros cálculos en base a algoritmos convirtieron una base de datos básica y disponible públicamente en una base de datos atractiva y difícil de recrear.
25
El termino económico “ presentan mayor diferenciación.
” hace referencia a productos y servicios genéricos, básicos y que no
64
TFG: Análisis de la tendencia Web 2.0, y su aplicación a la relación cliente-empresa IUA Ingeniería de Sistemas – Marco Teórico La mayoría de los sitios de contenidos de internet permiten ahora que los usuarios enriquezcan los datos mediante comentarios, puntajes o tags. Delicious utiliza estos medios para por ejemplo mejorar y enriquecer marcadores de navegadores, dando la opción a los usuarios a importar estos y aplicar metadatos. Por tanto, debemos buscar formas para que los miembros de una organización, clientes o socios puedan agregar valor a los datos existentes o de tipo commodity. Los usuarios controlan sus propios datos: Es importante entregar a los usuarios formas de agregar o quitar sus datos del sistema. Esto demuestra a los clientes que deberían confiar en el servicio, y a su vez que la empresa tiene la suficiente confianza en el servicio que provee como para permitir a los usuarios tomar sus propios datos personales y eliminarlos del sistema llevándolos a donde deseen. Para tener confianza en realizar este tipo de estrategias de datos debemos recordar que el valor real proviene del contexto, no de los datos básicos, por lo cual las bases de datos cerradas no llegan a aprovechar todas las fortalezas que provee Internet. Algunos derechos reservados, no todos: Cuando los beneficios provienen de efectos virales y colectivos, la limitación sobre protectora de derechos intelectuales puede perjudicar el crecimiento. Por tanto, es positivo en muchos casos asegurarnos que existan bajas barreras para la adopción estableciendo formas apropiadas de propiedad intelectual y de propiedad de datos. Entre los casos analizados previamente, hemos encontrado que existen modelos flexibles y con beneficios colaterales probados, como ser el de los modelos de licencias GNU o las Creative Commons que permiten que software, datos o contenidos puedan ser compartidos, mientras preservan los derechos de autoría originales.
Ilustración 20: Uso de Creative Commons en Flickr. Los usuarios de Flickr pueden optar por diferentes tipos de licencias Creative Commons para sus imágenes, lo que potencia la reutilización y creación de nuevos contenidos mientras mantiene los derechos de autor.
Estas estrategias han sido utilizadas como mencionamos previamente en el caso de Flickr, permitiendo que más de un millón y medio de fotos tengan una licencia de este tipo (73). Definir una estrategia de pila de datos: Es importante entender cuáles son las ventajas que atañen a los diferentes niveles de valor de una cadena de datos. Por ejemplo, el resumido espacio de mapas online de Google Maps. Solo algunos proveedores, como ser el ya mencionado NAVTEQ, proveen los datos de mapas digitales de base, que luego deCarta procesa y prepara los datos, para que las aplicaciones de Google entreguen a los usuarios y aplicaciones de terceros que en base a las APIS provistas por 65
TFG: Análisis de la tendencia Web 2.0, y su aplicación a la relación cliente-empresa IUA Ingeniería de Sistemas – Marco Teórico Google, pueden generar otras capas superiores de uso en mashups. (74) Claro que los límites entre estas capas no son claramente delimitados, por lo que existe una tensión y competencia natural entre ellos. Por tanto, mientras utiliza los datos de NAVTEQ y el procesamiento de deCarta, Google Maps se estableció como el punto de conexión interna y la marca más conocida en cuanto a mapas digitales respecta. En base al éxito de Google Maps, deCarta ha creado sus propias APIs colocándolas a disposición de los usuarios y desarrolladores. (75) Ser dueño del índice o del formato: El éxito no siempre Ilustración 21: Niveles en la cadena de proviene de poseer los datos, sino que a veces puede datos de mapas digitales. derivar de establecer un liderazgo en localizar, organizar, acceder o dar formato a los datos. Uno de los mejores ejemplos es el buscador Google: no es dueño de las páginas que muestra en sus resultados de búsquedas, sino que simplemente posee el mejor algoritmo para indexarlas. Otro claro ejemplo es el ya mencionado buscador e indexador de blogs Technorati. En casos más actuales, tenemos el ejemplo del mencionado LinkedIn, que busca claramente ser el lugar por defecto donde se registren perfiles laborales. Diseñar los datos para su reutilización: En la misma forma en que los datos se están volviendo tan importantes como la funcionalidad, la reutilización de datos se está volviendo tan importante como la reutilización de software, y el diseño de datos se está volviendo tan importante como el diseño de sitios. El concepto de datos reutilizables se manifiesta en mecanismos de acceso a los datos, en el diseño de los datos, en la presentación de los datos y las licencias de los datos. Estos puntos implican seguir estándares como ser el mencionado RSS y microformats, haciendo que los datos sean fácilmente apuntados y buscados, utilizando licencias suficientemente flexibles y proveyendo de mecanismo claros de sindicación y redistribución. Tercerizar o proveer administración al acceso de datos: Mientras que los costos de almacenamiento y uso de ancho de banda han disminuido dramáticamente, la demanda de la administración de grandes cantidades de datos todavía presenta un desafío. Esto es particularmente verdadero para contenidos como ser audio, video e imágenes. Como resultado, existen nuevas oportunidades de servicios que pueden ser provistos, ayudando a otros a superar dicho desafío. Por ejemplo la red social previamente mencionada MySpace terceriza el servicio de imágenes principalmente a tres empresas (Photobucket.com, ImageShack y Slide.com) que reciben más de la mitad de su tráfico desde dicho social media (76). En el caso de YouTube, terceriza el almacenamiento y descarga de videos a la empresa Limelight Networks, generándole a esta 66
TFG: Análisis de la tendencia Web 2.0, y su aplicación a la relación cliente-empresa IUA Ingeniería de Sistemas – Marco Teórico más de 1 millón de dólares mensuales en ganancias al proveer la infraestructura necesaria para dar soporte a la mencionada content community. (77) Relación con otros patrones: Aprovechar la inteligencia colectiva: Las aplicaciones basadas en datos son la base para crear estructuras de participación efectivas Innovación en el ensamblaje: Las soluciones de plataformas y ecosistemas existen para compartir información.
3.7.3. Innovación en el ensamblaje: La plataforma es más poderosa que las aplicaciones en sí. No solo Internet se está convirtiendo en una plataforma que reemplaza gradualmente a los sistemas operativos de escritorio, sino que sitios individuales se están transformando también en plataformas y componentes de plataformas. Por tanto, es importante no solo plantear una estrategia de aplicación sino también una estrategia de plataforma. En la era de la PC Microsoft repetidamente demostró el gran valor comercial de crear no solo las aplicaciones de software, sino las plataformas para las aplicaciones. Sus productos como ser Windows, Office, SQL Server y otros se convirtieron en la fuerte base donde ecosistemas enteros eran creados. La aparición de la tendencia Web 2.0 presento cambios fuertes y abrió nuevas oportunidades de plataformas por varias razones: Primero, el cambio de software estándares propietarios a estándares de código abierto basadas en tecnologías maduras y estandarizadas de protocolos. Segundo, la evolución de sitios estáticos a sitios dinámicos a sitios como los mencionados entre los social media previamente (por ejemplo, Facebook, Flickr, YouTube, Twitter entre muchos otros), donde cada vez toman más forma de plataformas que permiten la creación de nuevos ecosistemas. Analizamos a continuación las prácticas que implican la aplicación de este patrón: Ofrecer APIs de los servicios: Las APIs (Application Programming Interfaces) son el núcleo de cualquier estrategia de software como plataforma. Hace algunos años las APIs provenían de empresas como Microsoft, Apple y RedHat. En la era de la Web 2.0 las APIs provienen de empresas como Flickr, Facebook, YouTube y Twitter. Un ejemplo claro es el de la API de eBay, lanzada originalmente y de forma innovadora en el 2001, genera en la actualidad el 60% de los listados de eBay, teniendo unos 6 mil millones de llamados a la API por mes. (78)
67
TFG: Análisis de la tendencia Web 2.0, y su aplicación a la relación cliente-empresa IUA Ingeniería de Sistemas – Marco Teórico Otros ejemplos son los de los de las comunidades de contenidos Flickr y YouTube, siendo el primero la base para casi 400 mashups en torno a imágenes (79) y el segundo alcanzando números similares (80) y por tanto potenciando su arquitectura de colaboración para aprovechar la inteligencia colectiva. Como vimos previamente, la mayoría de los jugadores fuertes entre los social media y la tendencia Web 2.0 cuentan con APIs en la Ilustración 22: Categorias de APIs en actualidad, pero no solo ellos han incursionado ProgrammableWeb.com en esta estrategia de plataforma: Ya en Las APIs son parte de la estrategia Web 2.0 de gran Noviembre del 2008 John Musser, uno de los variedad de servicios: 15 categorías principales al autores de “Web 2.0 Principles and Best alcanzar las 1000 APIs registradas en el sitio ProgrammableWeb.com Practices”, registraba más de 1000 APIs de servicios Web, alcanzando una gran variedad de temáticas y tamaños de proyectos. (81) Diseñar para la reutilización: El contenido digital se presta para ser desarmado y reutilizado, un principio que no se ha perdido en empresas innovadoras como Apple, cuando revoluciono la industria musical al permitir que los consumidores puedan crear colecciones de música digital, una canción a la vez. Anteriormente, MapQuest y Microsoft MapPoint eran servicios muy exitosos de mapas digitales online, pero la estrategia de Google Maps de convertirse en plataforma mediante sus APIs permitiendo la reutilización y remezcla a desarrolladores cambio las reglas de los servicios de mapas digitales online, dejando a sus competidores muy por detrás. Aplicar las mejores prácticas en APIs: Los proveedores de APIs exitosos han establecido realmente un conjunto de técnicas de comprobado éxito para ayudar que sus servicios sean más atractivos y útiles para sus usuarios y por tanto establecer y hacer crecer un ecosistema para desarrolladores viable. Estas prácticas se enfocan en crear una infraestructura de apoyo que incluye foros, blogs y wikis, dando apoyo a documentación completa y actualizada que incluye ejemplos de código en distintos lenguajes de programación, suporte a múltiples protocolos y formatos de datos, utilizando ID de desarrolladores para poder realizar seguimiento de estos, y mecanismos de administración de las cuentas de dichos desarrolladores. Usar los estándares existentes: Cuanto más estandarizadas son las formas en que se puede acceder a un contenido, es más probable que sea consumido. Un ejemplo de esto son las APIs de Yahoo!, que pueden devolver información tanto en XML como en formato JSON (82), siendo el primero útil para aplicaciones de tipo servidor y el último para aplicaciones de tipo cliente.
68
TFG: Análisis de la tendencia Web 2.0, y su aplicación a la relación cliente-empresa IUA Ingeniería de Sistemas – Marco Teórico Por su parte, el formato microformats se vuelve cada vez más común debido a que es fácil de indexar e integrar ya que puede ser embebido en páginas con HTML tradicionales. Otro ejemplo fuerte son los formatos RSS y Atom, que cada vez son más relevantes y utilizados, cumpliendo el papel de “pegamento” de la Web 2.0. Ilustración 23: Uso de protocolos por APIs.
En el artículo previamente mencionado de John Musser, encontramos un análisis de la Distribución del uso de protocolos en las más de 1000 APIs indexadas por ProgrammableWeb.com. distribución de protocolos utilizados en las más de 1000 APIs que ha indexado en su sitio (81). De esto podemos notar que se reduce a una cantidad limitada de protocolos populares, y a su vez que algunos tienen un peso considerable, como ser REST y SOAP. Construir los modelos de negocios en las APIs: Las mejores estrategias de plataformas aplican las fortalezas de su núcleo de negocios en sus APIs, para que los intereses tanto del proveedor como los de terceros estén alineados en una forma mutuamente beneficiosa. Por ejemplo, las APIs de Amazon.com están directamente conectadas a su sistema de afiliados lo que implica que cada vez que se produce una venta basada en las APIs, los beneficios son compartidos por Amazon.com y el desarrollador que utilizo las APIs. Otro ejemplo es el caso de eBay mencionado en uno de los puntos anteriores, el 60% de sus listados provienen del uso de las APIs, por lo que fue importante trabajar en que estas generen listados con ubicaciones eficientes. Usar Web 2.0 para dar soporte a la plataforma: Las plataformas abren las puertas de un amplio abanico de oportunidades, pero solo tienen éxito cuando tienen un buen soporte. Es importante aplicar principios Web 2.0 como ser bajas barreras de adopción, herramientas en base a efectos de red y técnicas para construir y dar soporte a un Ilustración 24: Wiki sobre API de Twitter. ecosistema de colaboración. Twitter da soporte sobre sus APIs a su comunidad de
Esta práctica es realizada por desarrolladores mediante el uso de una wiki, donde prácticamente todos los ejemplos que potencia el efecto colaborativo de los usuarios. hemos analizado de proyectos Web 2.0 previamente, que dan soporte a sus plataformas por medio de wikis, foros, blogs y otras herramientas similares, utilizadas como medio para la colaboración de desarrolladores. 69
TFG: Análisis de la tendencia Web 2.0, y su aplicación a la relación cliente-empresa IUA Ingeniería de Sistemas – Marco Teórico Un ejemplo es las ya mencionadas APIs de Twitter, que da soporte a su comunidad de desarrolladores mediante el uso de una wiki colaborativa (45) y mantiene un blog donde los desarrolladores de Twitter pueden comunicarse con los usuarios de las APIs. (83) Ser cliente de su propia plataforma: Este patrón puede incrementar la calidad a través de aplicaciones realistas y cercanas a los desarrolladores de las APIs, así como también reducir costos por medio de la reutilización. Un ejemplo de esto es el sitio de eventos Eventful, en conde prácticamente toda la producción del sitio está basada en su propia API (84), y otro ejemplo claro es el de Yahoo! Tech (85) donde se puede realizar búsqueda de productos tecnológicos, estando el sitio basado en las Yahoo! Shopping APIs (86). Direccionamiento granular de contenidos: La pagina web ya no es la unidad de datos definitiva de Internet: ahora pueden ser considerados así también los posts individuales de un blog, elementos independientes de un RSS, ediciones de artículos wiki, o nodos XML devueltos en una llamada a una API. Este último formato representa el futuro del acceso a datos online. Cuanto más fina la granularidad en este sentido, mayor será el potencial de reutilización de los datos. Podemos ver como elementos tan fundamentales como la estructura de una URL puede ser utilizada para mostrar la estructura lógica de un sitio, por ejemplo encontramos en Flickr la siguiente URL mostrando claridad al usuario: http://www.flickr.com/photos/tags/flowers. En muchas maneras, esta estructura se ha convertido en una línea de comando funcional y en un modelo de datos por defecto sobre el cual otros pueden construir. En este sentido es importante considerar que URL simples, claras y legibles son buenas para los usuarios del sitio, los desarrolladores de aplicaciones de terceros y motores de búsqueda. Utilizar su plataforma para construir la confianza y lealtad de los clientes: Como mencionamos previamente, la portabilidad de los datos es uno de los puntos importantes en esta nueva era de Internet. Una de las motivaciones detrás de la creación de las APIs de Flickr fue que los propios fundadores del servicio consideraban que no podían confiar en un servicio que no les permitiera utilizar sus datos donde ellos quisieran. Por tanto, dichas APIs permiten el acceso a toda la información, e indirectamente genera apertura y confianza por parte de sus usuarios. Otro ejemplo es el caso de Google Maps: el primer mashup que existió en base a este servicio fue HousingMaps.com mencionado al explicar el concepto de mashup anteriomente, que combinaba los anuncios de ventas y alquiler de departamentos y casas del sitio de anuncios clasificados Craigslist con los mapas digitales, teniendo este mashup la particularidad de no estar basado en APIs de Google Maps (ya que en su momento, no existían dichas APIs), sino que el autor realizo una ingeniería inversa del servicio. Al descubrir esto, Google no tomo represalias, sino que tomo esto como un ejemplo de lo que podía suceder si abría sus servicios a otros desarrolladores. Por tanto, genero las APIs del servicio y gano muchos usuarios desarrollando a la vez confianza. 70
TFG: Análisis de la tendencia Web 2.0, y su aplicación a la relación cliente-empresa IUA Ingeniería de Sistemas – Marco Teórico Por tanto, notamos que una mayor transparencia y apertura son componentes claros de la perspectiva Web 2.0. Aprender de cómo los clientes reutilizan los servicios: La manera en que los clientes utilizan y reutilizan los datos y servicios pueden ser una muy valiosa herramienta de aprendizaje para el modelo de negocio. A medida que aplicaciones de terceros y nuevos usos surgen, se crean oportunidades de ligar estos nuevos elementos de conocimiento a las estrategias de los productos y del negocio. Hablando sobre el ecosistema de mashups, el CEO de Google Eric Schmidt comenta que “Nosotros no tenemos los recursos para construir todo. Dependemos de manera crítica de las creaciones de las comunidades de desarrolladores”. (87) Relación con otros patrones: Modelos ligeros y escalabilidad costo-efectiva: Es recomendable prestar atención a modelos de tecnología ligeros como ser REST y RSS, para alcanzar a una gran base de manera costoefectiva. Al crear una plataforma que facilite el desarrollo por parte de terceros más que el desarrollo de desarrolladores internos lleva a reducir esfuerzos y disminuir costos. Beta perpetuo: En particular, considerar las operaciones como una herramienta o habilidad de altísima importancia.
3.7.4. Experiencias de usuario ricas Los sitios web estáticos están cediendo lugar a una nueva generación de aplicaciones enriquecidas basadas en Internet, que cuentan con la habilidad de combinar muchos de los mejores elementos de las experiencias de escritorio y online. Por tanto, es necesario crear mejores experiencias para ayudar a los usuarios en la transición desde un modelo de interfaces de escritorio a un modelo online. No hace mucho tiempo, existía una indiscutible distinción entre utilizar una aplicación basada en escritorio y una aplicación basada en un navegador: experiencias altamente interactivas y rápidas con interfaces graficas ricas, en contrapartida a interfaces basadas en páginas caracterizadas por ser lentas, con esperas después de cada click. Esta brecha se ha reducido rápidamente mediante el surgimiento de una nueva generación de sofisticadas aplicaciones online, redefiniendo lo que es posible en un navegador. Esta combinación de los puntos fuertes de experiencias de escritorio y capacidades online crea nuevas oportunidades que son muy poderosas. Ya no son necesarias las aplicaciones de clientes pesadas para crear una interesante experiencia para el usuario, así como tampoco las aplicaciones clásicas como una planilla de cálculo son estrictamente para el uso de un solo usuario ni en una sola computadora. Las aplicaciones actuales basadas en navegadores son construidas utilizando técnicas (como ser el caso de Ajax) que dan soporte a interacciones continuas, despegándose de solo el click hacia acciones como el arrastrar y soltar, y llenas de multimedia. El resultado es una mayor satisfacción por parte de los usuarios, y una genuina ventaja competitiva. Ejemplos de esto son los servicios de correo electrónico y mapas de Google, que han revolucionado sus segmentos de productos, y en los últimos tiempos también surgió el caso de Google Docs que 71
TFG: Análisis de la tendencia Web 2.0, y su aplicación a la relación cliente-empresa IUA Ingeniería de Sistemas – Marco Teórico ha presenta herramientas de procesamiento de texto y planillas de cálculo online, no solo reproduciendo la experiencia de escritorio sino que también agregando la posibilidad de colaboración y una real independencia de plataforma. Aunque si observamos también los ejemplos de social media mencionados previamente, encontraremos en sus interfaces numerosos elementos que apuntan a enriquecer la experiencia del usuario, mostrando una tendencia que resulta irreversible, ya que este tipo de interfaces se vuelven cada vez más un requerimiento funcional más que algo accesorio. Por tanto: utilizar software basado en Internet ya no implica una pérdida en la calidad de la experiencia del usuario. Ahora podemos ver el poder de aplicaciones interconectadas que permiten la colaboración y el uso de datos enriquecidos con experiencias de interfaces rápidas y simples. Analizamos a continuación las prácticas que implican la aplicación de este patrón: Combinar lo mejor de las experiencias de escritorio y online: En este punto nos referimos a entregar a los usuarios aplicaciones que potencien las fortalezas de escritorio (como ser, interactividad enriquecida y rápida performance) con las fortalezas de la red (como ser, independencia de la plataforma, acceso independiente del lugar, y colaboración). Como mencionamos anteriormente el caso de Google Docs es uno de los mejores ejemplos de cómo se herramientas tradicionales de escritorio están evolucionando hacia una “oficina online”: los usuarios del servicio pueden editar documentos de forma colaborativa desde estaciones conectadas a Internet usando interfaces agiles y similares a las que eran ofrecidas por las aplicaciones de Ilustración 25: Captura de pantalla de Google Docs. escritorio. Y además, el modelo de negocio ha cambiado, beneficiando a los Google Docs permite a los usuarios del servicio trabajar de usuarios en un aspecto extra: el costo. Es forma colaborativa sobre documentos, tomando lo mejor de las experiencias de escritorio y online, a través de interfaces cada vez más común que se apliquen web enriquecidas. modelos de negocio basados en software como servicio, como ser el uso de publicidades. Pero como mencionamos antes, no se debe buscar solo remplazar las aplicaciones de escritorio, sino también agregar valor mediante el potencial de Internet: en el caso mencionado, es destacable nuevamente la posibilidad de colaboración entre usuarios sobre un mismo documento. Usabilidad y simplicidad primero: Buscar la aceptación y uso por parte del usuario y eficiencia de servicio para último son prioridades y no deben ser sacrificadas en pro de utilizar nuevas tecnologías o interfaces. Es importante no permitir que las innovaciones por más tentadoras que sean puedan comprometer los verdaderos objetivos de las aplicaciones. Por ejemplo, 72
TFG: Análisis de la tendencia Web 2.0, y su aplicación a la relación cliente-empresa IUA Ingeniería de Sistemas – Marco Teórico aplicaciones de entrada de datos corporativas no necesitan ventanas que tengan transparencias, pero si pueden beneficiarse de optimizaciones en el proceso de ingreso de datos, como ser ayudas en la escritura y correcciones de textos en tiempo real. Es decir, debemos buscar que una de nuestras estrategias sea la simplicidad. Por ejemplo, anteriormente las aplicaciones que dependían de audio y video digital, especialmente los contenidos generados por los usuarios, pasaron por muchos problemas complejos. Pero proyectos innovadores como el de YouTube han simplificado dramáticamente los previamente complejos procesos relacionados a los contenidos multimedia con una plataforma de audio y video basado en Internet: está centrada en navegadores, busca eliminar los problemas de compatibilidad de tipos de archivos, y provee interfaces y componentes simples de usar e independientes del tipo de navegador. Es importante notar que también el concepto de componentes de este tipo que son fácilmente integrables en virtualmente cualquier otro entorno web han creado una gran innovación en el ensamblaje, donde los usuarios pueden rápidamente utilizarlos en sus sitios webs o blogs, difundirlos en sus perfiles de redes sociales u otras aplicaciones online. Buscar que el uso coincida con los requisitos: Las últimas técnicas y tecnologías dan soporte a un amplio espectro de interacción y posibilidades innovadoras, y prácticamente cualquier aplicación tiene algún punto de implementación en este espectro. Por ejemplo, Google Finance utiliza una combinación de tecnologías como ser Javascript y Flash para otorgar a sus usuarios experiencias enriquecidas. Otro ejemplo es el caso de Google Analytics, que ha revolucionado el análisis de datos estadísticos sobre los sitios web y sus consumidores. Búsqueda sobre la estructura: Así como motores de búsquedas basados en algoritmos (como ser Google) son en general más atractivos y útiles que directorios creados por usuarios (como ser el caso de Dmoz.org o la estructura de Yahoo!), las formas de acceder e incluso crear contenidos en sitios individuales es ahora típicamente guiado por algoritmos de búsqueda y de otros tipos. En los primeras etapas de internet, solo los sitios más grandes podían costear generar búsquedas en sus propios sitios, pero hoy en día la situación ha cambiado y prácticamente ningún sitio, por más pequeño sea, puede darse el lujo de no tener mecanismos de búsqueda interna entre sus contenidos, especialmente dado que los mecanismos para que esto sea realizable han sido simplificados y son ofrecidos incluso de forma gratuita por buscadores como Google mediante widgets y servicios. El servicio Delicious automáticamente sugiere tags en base a una combinación de factores, incluyendo el contenido de la URL que está siendo agregada a los marcadores, los tags generados por el usuario previamente, y tag de otros usuarios. Esto hace al proceso más rápido y simple para el usuario, creando a su vez una forma más consistente de agregar estructuras de tags para toda la comunidad.
73
TFG: Análisis de la tendencia Web 2.0, y su aplicación a la relación cliente-empresa IUA Ingeniería de Sistemas – Marco Teórico A medida que la naturaleza y estructura de contenidos se vuelve menos predefinida y emerge de la dinámica de los comportamientos y participación de los usuarios, aumenta la necesidad de algoritmos más inteligentes y poderosos. Preservar el direccionamiento de los contenidos: En virtud de crear experiencias sin el clásico concepto de Internet de “hacer click, recargar la página y mostrar el contenido”, algunas aplicaciones de tipo Web 2.0 están dejando en cierta forma la metáfora de la “pagina” en Internet. Pero al hacer esto, estas aplicaciones corren el riesgo de olvidar los beneficios que trae el direccionamiento directo a contenidos (que vimos anteriormente en el patrón de innovación en el ensamblaje), como ser el hecho de que una página o un conjunto de datos ya no sea equivalente a una URL. Por tanto es importante utilizar y establecer técnicas que aseguren que los contenidos son aun pueden ser encontrados por usuarios (por ejemplo, mediante el uso de marcadores) y por maquinas (por ejemplo, motores de búsqueda, aplicaciones de terceros y otras herramientas). Por ejemplo, Google Maps permite que los usuarios hagan zoom a cualquier lugar del mundo en sus mapas digitales, pero la URL nunca refleja estos cambios de locación. Lamentablemente, esto implica que los contenidos no implican una URL diferente, por lo que se pierde mucho en cuanto a los efectos de red se refiere. La solución provista pro Google fue muy simple: agregar un botón que dice “Vinculo a esta página” que hace que el navegador se refresque y contenga una URL que identifica el lugar específico donde el usuario está situado en el mapa digital. Personalización profunda y adaptativa: Una experiencia Web 2.0 centrada en el usuario va mucho más allá que la interfaz: la aplicación del usuario aprende dinámicamente del comportamiento del usuario, anticipando sus necesidades, recordando sus preferencias y adaptándose de manera apropiada. Un claro ejemplo es el ya mencionado Amazon.com, que a pesar de ser uno de los sitios con mayor volumen de tráfico en Internet, genera prácticamente cada página en tiempo de ejecución, incluyendo lo que algunos de sus competidores brindan como paginas estáticas. Esto permite que haya lugar para la optimización de la experiencia pata cada usuario, incrementando tanto la lealtad de los usuarios como las oportunidades de beneficio para la empresa de acuerdo a su modelo de negocio. Gmail automáticamente sugiere direcciones de correo al usuario en base al uso histórico del servicio, quitándole a este la necesidad de recordar las direcciones o tomar un paso extra abriendo la libreta de direcciones.
Relación con otros patrones: Modelos ligeros y escalabilidad costo-efectiva: Aplicaciones de cliente livianas basadas en navegadores son facilitadores para ciclos de productos rápidos que los de escritorio.
74
TFG: Análisis de la tendencia Web 2.0, y su aplicación a la relación cliente-empresa IUA Ingeniería de Sistemas – Marco Teórico Innovación en el ensamblaje y beta perpetuo: Experiencias enriquecidas para los usuarios simplifican la transición de aplicación es de escritorios hacia modelos de software como servicio.
3.7.5. Software más allá de un solo dispositivo: La PC ya no es el único medio de acceso a las aplicaciones basadas en Internet, y por tanto las aplicaciones que se limitan el acceso solamente a un solo tipo de dispositivo tienen menor valor que aquellas que pueden tener diversos tipos de conexiones. Por tanto, es necesario diseñar aplicaciones que desde un primer momento integren datos y servicios haciéndolos disponibles para computadoras, dispositivos móviles y servidores de Internet. Estamos ingresando en una era nueva, en la que miles de millones de dispositivos en todas las formas y tamaños están conectados a Internet. Prono la PC no será el medio de acceso principal, y eso ya es realidad en países como Japon y Korea. Se está volviendo cada vez más común que personas se conecten a Internet desde distintas fuentes varias veces al día: La computadora de escritorio de una oficina, la notebook, la computadora del hogar, consola de juegos, un reproductor de multimedia portátil, y teléfonos celulares por mencionar algunos. Sin embargo, este escenario de multi acceso pronto tendrá un crecimiento aun más vertiginoso debido al rápido crecimiento de la cantidad de dispositivos capaces de conectarse a Internet, y de las mejoras en los servicios de conexión a Internet, donde las velocidades de transferencia y la independencia del lugar donde se realice la conexión van ampliando cada vez más estas posibilidades. Aquí es donde la web como plataforma realmente alcanza todos los límites. Mas interacciones están abarcando tanto a los usuarios como a los dispositivos, tomemos dos ejemplos claros: Imágenes: Fotografías pueden ser tomadas desde dispositivos móviles, enviadas vía email o conexión a Internet inalámbrica hacia una computadora para ser editadas, y subidas a un servicio online donde se compartan imágenes, recibiendo estas comentarios, puntajes, asignación a grupos temáticos por medio de colaboración de otros usuarios, luego sindicadas vía RSS y APIs hacia otros dispositivos, donde pueden ser descargadas. Música: Los usuarios de computadoras de escritorio pueden crear listas de música mediante bases de datos online, y descargarlas a sus dispositivos portátiles. Luego los historiales de música escuchada son subidos desde estos dispositivos a servicios de musca online, y filtros colaborativos combinan son combinados de forma algorítmica para crear estaciones virtuales de radio, que transmiten a navegadores y otros dispositivos, o incluso equipos de música hogareños con capacidad de conexión a Internet pueden conectarse a estas transmisiones directamente en las casas de los usuarios. Sin embargo, todavía estamos lejos de llegar a la visión de la conectividad sin límites de lugar o tiempo. Mantener información sincronizada y siempre disponible sobre esas plataformas es un gran desafío, pero a la vez una oportunidad igualmente grande. Las colaboraciones deben ser consistentemente independientes de los dispositivos. Los dispositivos se están teniendo cada vez mas capacidades de conocer su propia localización, Muchas plataformas tiene limitaciones en cuanto a performance pura, capacidades de entrada y salida de datos, habilidades limitadas o incuso ninguna habilidad para funcionar si no están conectadas a Internet. Aplicaciones Web 2.0 75
TFG: Análisis de la tendencia Web 2.0, y su aplicación a la relación cliente-empresa IUA Ingeniería de Sistemas – Marco Teórico exitosas deben lograr aprovechar esta omnipresencia para alcanzar todos los mercados, facilitando el uso de nuevos escenarios, y ganar ventajas competitivas. Analizamos a continuación las prácticas que implican la aplicación de este patrón: Diseñar desde un primer momento para compartir datos entre dispositivos, servidores y redes: La interconexión generalizada de las redes ha abierto nuevas oportunidades de productos, al permitir la conexión de usuarios y dispositivos de forma masiva al utilizar variedad de dispositivos e interconectarlos aprovechando los efectos Web 2.0 más allá de las tradicionales computadoras. Veamos algunos ejemplos de este patrón. La estrategia planteada por Apple con su iTunes aprovecha la fortaleza de las redes, computadoras de escritorio y dispositivos móviles. Este enfoque combinado con un amplio abanico de opciones de música para descargar, genero un gran cambio de paradigma en la industria de la música. Otro ejemplo es el caso de Microsoft y su consola Xbox con el servicio de multimedia online Xbox Live, creando una plataforma Ilustración 26: Captura de pantalla del sitio TiVo.com con contenidos generados y compartidos TiVo involucra a los usuarios creando rankings en base al por los usuarios, rankings, feedbacks, comportamiento de los consumidores en los dispositivos perfiles de usuarios y listas de amigos. Un DVR de sus hogares, conectados al servicio online. ejemplo más es el del DVR TiVo, que cuenta con un sistema de subscripción online que aprovecha la inteligencia colectiva tanto implícitamente mediante los hábitos de los televidentes como explícitamente mediante los votos de estos: en su sitio web la sección “más populares” se basa en el comportamiento de los usuarios y podemos encontrarlo en su sitio web. (88) Estar atentos a la locación: Como mencionamos antes, los dispositivos están atentos a su locación, por lo tanto, es posible encontrar oportunidades en base a este factor. Tecnologías como Bluetooth y GPS se están volviendo cada vez más comunes en los dispositivos móviles y si bien es mejor contar con estas características, la tecnología de locación no es siempre indispensable para aprovechar este concepto de locación. Por ejemplo, el servicio de redes sociales Dodgeball.com permite a los usuarios generar citas de forma casi aleatoria en base a la proximidad geográfica de los usuarios, aunque esta información es suministrada por los usuarios, sin ser necesario contar con dispositivos que faciliten los datos de locación. Por otra parte, hay servicios que si utilizan las capacidades tecnológicas de los dispositivos: otra red social llamada The Plazes aprovecha las capacidades GPS de dispositivos como ser el iPhone, para indicar donde se encuentran tanto los amigos así como también otra gente que concuerde con el perfil buscado por el usuario. (89)
76
TFG: Análisis de la tendencia Web 2.0, y su aplicación a la relación cliente-empresa IUA Ingeniería de Sistemas – Marco Teórico Extender la Web 2.0 a los dispositivos: Es importante buscar áreas donde otros patrones y prácticas Web 2.0 pueden ser aplicados en base a los diversos dispositivos existentes, sin considerar solamente las computadoras. Un ejemplo es el caso de eBay que ya hemos mencionado anteriormente. Para cubrir este patrón, el servicio permite Ilustración 27: Captura de pantalla del sitio eBay Mobile notificación por SMS de ofertas en subastas eBay ha generado distintas maneras de integrar su modelo del usuario, acceso vía equipos móviles de negocio a dispositivos móviles y manteniendo la mediante una aplicación especifica e incluso tendencia Web 2.0. mensajes de voz que alertan al usuario para notificarlo cuando una subasta de si interés esta pro terminar, expendiendo todos sus servicios a los móviles pero de una forma adaptada. Usar el poder de las redes para hacer los dispositivos más inteligentes: Aunque los dispositivos móviles se están volviendo cada vez más poderosos, las capacidades de los servidores siguen siendo aun mayores. Por tanto, es una buena práctica quitar peso en los móviles, trasladando el procesamiento a los servidores y devolviendo solo resultados livianos a los dispositivos. Existen servicios como SCANBUY que permiten que compradores ingresen códigos de barra en sus dispositivos móviles para recibir de forma casi instantánea información de los productos y poder por ejemplo, comparar precios. (90) Este es un claro ejemplo del aprovechamiento del poder de los servidores y redes, exigiendo a los dispositivos móviles solo un mínimo de esfuerzo en cuanto a procesamiento y ancho de banda, ofreciendo un servicio online muy poderoso a los usuarios. Aprovechar los dispositivos como fuentes ricas de datos y contenidos: Los dispositivos móviles no solo alcanzan capacidades de generar textos, sino que cada día su poder como herramienta de generación de multimedia va creciendo, por tanto podemos aprovechar dichas capacidades ya que poseen características únicas, al poder generar contenidos en cualquier momento o lugar y con muy poco esfuerzo. Existen muchos servicios online que buscan aprovechar este tipo de capacidades.
Ilustración 28: Captura de pantalla del sitio TN y La Gente En Argentina el canal de noticias TN ha creado un servicio para que su audiencia pueda enviar imágenes desde sus dispositivos móviles, siendo estas publicadas online.
77
TFG: Análisis de la tendencia Web 2.0, y su aplicación a la relación cliente-empresa IUA Ingeniería de Sistemas – Marco Teórico En Argentina tenemos el ejemplo del canal de noticas TN, que genero su sitio “TN y la Gente” donde recibe actualizaciones de los televidentes de noticias, quienes capturan todo tipo de hechos desde sus dispositivos móviles. De esta forma, se logra ampliar la cobertura de noticias mediante la creación de una comunidad de “periodismo ciudadano”, alcanzando un potencial de cobertura que de otra manera seria imposible lograr. Considerar la “producción-por-click” como prioridad: Los dispositivos tienen limitaciones en cuanto a mecanismos de entrada de datos y pantallas se refiere en comparación a las computadoras de escritorio, por lo que es crítico minimizar las barreras en estos dos aspectos. Y a su vez, existe una gran variedad de dispositivos (desde teléfonos móviles, consolas de juegos y ejemplos como el mencionado TiVo) por lo que existe una gran variedad de casos en estos dos aspectos. Es importante aplicar un esfuerzo considerable en el diseño de interfaces que optimicen la habilidad de los usuarios para utilizar los servicios en dichos dispositivos.
Ilustración 29: Captura de pantalla del sitio ShoZu. En base a simplicidad de interfaz ShoZu hace de intermediario entre dispositivos móviles y servicios como YouTube o Facebook.
Por ejemplo, el servicio de imagen y video móvil ShoZu se focaliza en la simpleza de uso como su principal factor de éxito, funcionando como intermediario entre el usuario y otros servicios de Internet, como ser YouTube, Flickr, Facebook y Blogger, buscando simplificar los pasos para cada acción maximizando el uso de cada interacción del usuario con su dispositivo móvil. Permitir la independencia de ubicación de los datos: Es importante permitir que los usuarios mantengan sincronizados datos entre dispositivos sin problemas. John Musser menciona algunos ejemplos de productos de empresas como ser Intellisync de Nokia que permiten mantener dicha sincronización entre dispositivos, y comenta que también surgen componentes de capas de infraestructura como las APIs de Amazon S3 que permiten a programas de terceros acceder al almacenamiento y sincronización de datos.
Relación con otros patrones: Innovación en el ensamblaje: Esta aproximación al software más allá de un solo dispositivo puede ser visto como una extensión natural del aprovechamiento de Internet como una plataforma. Experiencias de usuario ricas: Los dispositivos móviles son cada vez más sofisticados, y están facilitando la creación de experiencias enriquecidas más allá de las computadoras.
78
TFG: Análisis de la tendencia Web 2.0, y su aplicación a la relación cliente-empresa IUA Ingeniería de Sistemas – Marco Teórico
3.7.6. Beta perpetuo Cuando dispositivos y programas se conectan a internet, las aplicaciones dejan de ser solo software para convertirse en servicios permanentes. Esto tiene un impacto significativo en todo el proceso de desarrollo y entrega de software. Por tanto, ya no se debe agrupar las nuevas funcionalidades en actualizaciones monolíticas, sino que es necesario agregar estas mejoras de forma regular como parte normal de la experiencia del usuario. Y por tanto, debemos hacer que los usuarios prueben permanentemente estas nuevas funcionalidades, estructurando el servicio para que revele la forma real en la cual dichos usuarios lo utilizan. Millones de usuarios acceden al software de Google cada día y sin embargo nunca tienen una razón para hacer la siguiente pregunta “¿Que versión de Google es ésta?”. La razón de esto es que en la era de la Internet los usuarios piensan en términos de servicios, no de software empaquetado, y esperan que estos servicios simplemente estén disponibles y que mejoren con el tiempo. Sin versiones, sin instalaciones y sin actualizaciones. El ciclo tradicional de diseñodesarrollo-prueba-envío-instalación del software empaquetado está terminando. El éxito ahora recae en la adopción del modelo de desarrollo del perpetuo beta, en el cual el software es continuamente refinado y mejorado, tomando los usuarios el papel de codesarrolladores y las operaciones se convierten en una habilidad principal. Esto es lo que podemos llamar desarrollo 2.0. Analizamos a continuación las prácticas que implican la aplicación de este patrón: Liberar temprano y rápido: Esta regla del modelo de desarrollo open source (91) es ahora un factor crítico para el éxito del software basado en Internet. Es necesario usar técnicas y metodologías agiles e iterativas de de desarrollo para empaquetar correcciones de errores y mejoras en publicaciones incrementales que respondan a la retroalimentación de los usuarios. El uso de pruebas automatizadas y procesos de construcción y liberación para racionalizar el manejo de calidad y administración son necesarios eBay por ejemplo libera una nueva versión de su servicio aproximadamente cada dos semanas. Flickr por su parte llevo esto un paso más adelante, realizando cientos de liberaciones incrementales en un periodo de 18 meses desde Febrero del 2004 hasta Agosto del 2005. Si comparamos esto con los ciclos tradicionales que se presentan en el cado de ejemplo de Microsoft Windows notaremos la clara diferencia de paradigma. Y no solo los nuevos productos se pueden beneficiar por estas formas: El Yahoo! Messenger avanzo de una liberación cada 18 meses a 4 cada año.
79
TFG: Análisis de la tendencia Web 2.0, y su aplicación a la relación cliente-empresa IUA Ingeniería de Sistemas – Marco Teórico
Ilustración 30: Comparación de liberaciones de Flickr y Microsoft Windows. Comparando la cantidad de veces y las fechas en que Microsoft y Flickr liberaron nuevas versiones de sus productos podemos notar con claridad el cambio de paradigma en el ciclo de desarrollo de software.
Hacer participar a los usuarios como co-desarrolladores y probadores en tiempo real: El comportamiento real de los usuarios provee un modelo mucho más correcto para la evaluación de nuevas características que investigaciones de mercado de marketing, prototipos o cualquier otra forma de producción no basada en la retroalimentación. La naturaleza de las aplicaciones basadas en Internet y las habilidades del creador para activamente monitorear como el software es utilizado implican un cambio dramático desde los días del software de escritorio. Es estadísticas de los usuarios y la experimentación controlada sirve para tomar decisiones informadas sobre los productos. Es necesario establecer modelos de retroalimentación, como las pruebas dinámicas A/B, las cuales a un pequeño porcentaje de los visitantes de un sitio les es presentada una interfaz con características y funcionalidades alternativas. Por ejemplo, Amazon.com utiliza muchas veces por día este tipo de pruebas en su sitio. Los resultados de estas pruebas alimentan rigurosos procesos guiados por estos datos que dan indicadores no solo del producto sino también del negocio. Instrumentar los productos: En el proceso de desarrollo es necesario planificar e implementar no solo las aplicaciones que utilizaran los usuarios, sino también una plataforma para capturar información de cómo estos usuarios están usando el producto. Lo que los usuarios hacen en general da más y mejor retroalimentación que lo que los usuarios dicen. Ilustración 31: Ciclo de de desarrollo de beta perpetuo. Esta plataforma de instrumentación debe ser guiada por objetivos de negocio y estar planificada y pensada
Ciclo de de desarrollo de beta perpetu, incluyendo el producto, aplicaciones de seguimiento y los requerimientos. En base a la medición obtenida en las pruebas con usuario, se compara constantemente el cumplimiento de objetivos.
80
TFG: Análisis de la tendencia Web 2.0, y su aplicación a la relación cliente-empresa IUA Ingeniería de Sistemas – Marco Teórico tan cuidadosamente como el producto en sí mismo. Así como se explico en la dinámica A/B de prueba, la información obtenida debe responder preguntas especificas como una forma de medir cuán bien se están alcanzando los objetivos y llevando el desarrollo del producto. Para este proceso se utilizan las llamadas “aplicaciones sombra”, que son básicamente herramientas internas y privadas construidas para monitorear el ya mencionado comportamiento del usuario en la ejecución en tiempo real del servicio. Estas aplicaciones no tienen que ser necesariamente grandes y complejas, sino ser relevantes. Por ejemplo, Flickr desarrollo un reporte de “usuarios más solitarios” que permitió identificar a usuarios que no estaban invitando a amistades al servicio. Flickr se agrego a sí mismo como amigo de esas personas, con el objetivo de enseñarles como utilizar los servicios de mejor manera. Crear nuevos productos de manera incremental: Productos nuevos y existentes deberían evolucionar mediante ciclos rápidos, retroalimentación de los usuarios e instrumentación. Experimentar con nuevas ideas de productos a través de procesos incrementales y planificados. Google lanzo algunos de sus productos más exitosos, incluyendo Google Maps y Gmail, a través de esta metodología. El Google Maps beta fue lanzado públicamente en Febrero del 2005, y se mantuvo como beta por 8 meses. Durante ese tiempo, Google obtuvo retroalimentación muy significativa de los usuarios, aumentando prestaciones de forma incremental, y ganando ventajas competitivas rápidas, ganándole terreno así a competidores más lentos como Microsoft y Yahoo!.
Ilustración 32: Linea de tiempo de google Maps 2005-2006 Google Maps se mantuvo como beta durante sus primeros 8 meses, en los que en base a la retroalimentación de sus usuarios agrego rápidamente nuevas funcionalidades al servicio.
Hacer que las operaciones sean una habilidad principal: Cuando el software esta siempre disponible y online, ya no es solo el desarrollo de este lo que determina su éxito, sino que sus operaciones (las tareas diarias y permanentes de administración de datos y servicios) también pasan a ser un factor clave. El éxito de Google no solo se debe a su sus algoritmos de búsqueda, ya que la forma en que administra sus centros de procesamiento de datos y servidores toma un alto valor para llevar el servicio a los usuarios permanentemente. Al hacer estas tareas de forma optimizada se crea una ventaja competitiva significativa en cuanto a costos y calidad. Estas estrategias y competencias operacionales incluyen: 81
TFG: Análisis de la tendencia Web 2.0, y su aplicación a la relación cliente-empresa IUA Ingeniería de Sistemas – Marco Teórico o o o o o
Utilizar técnicas de escalamiento horizontal y componentes de hardware de tipo commodity para una tolerancia a errores simplificada y una alta disponibilidad. Utilizar software de bajo costo (en general open source) para aprovechar las grandes comunidades generadas en todo a estos, que proveen soporte y documentación. Asegurar que se cuenta con adecuados sistemas de monitoreo y administración. Asegurar que el planeamiento de operaciones y el personal son las principales prioridades. Alimentar en base alecciones aprendidas de experiencias operacionales a los núcleos de los productos: prestaciones, estabilidad y escalabilidad.
En el nivel de aplicaciones, esto implica que el equipo de desarrollo ya no simplemente inicializa las operaciones y las deja funcionando olvidándose de ellas, sino que deben integrar de forma activa el desarrollo, la administración de datos, los ciclos de retroalimentación y las mediciones. Usar herramientas y lenguajes dinámicos: Los modelos de ciclos de liberación y desarrollo agiles se benefician de herramientas y lenguajes apropiadamente flexibles. Es bueno utilizar lenguajes dinámicos e independientes de plataformas como ser Pyton, PHP y Ruby para permitir y fomentar la habilidad de cambio, rapidez y productividad. Hay que considerar plataformas de desarrollo que se focalizan en la simplificación y la productividad, como ser Ruby on Rails para Ruby, Django para Python y Zend para PHP. Un ejemplo del éxito es el sitio Basecamp. Para el desarrollo de este sitio la empresa 37signalds desarrollo la plataforma Ruby on Rails, y la empresa indica que las características de la plataforma ayudaron a construir el exitoso sitio en 4 meses y con un equipo de 2.5 personas (92). Relación con otros patrones: Modelos ligeros y escalabilidad costo-efectiva: Las técnicas agiles de desarrollo de software son ideales para dar soporte a ciclos de liberación rápidos, porque están preparados para el cambio. Integrar modelos y procesos ligeros de desarrollo y liberación como complemento del concepto de beta perpetua. Combinar esto con componentes commodity y de bajo costo para construir una base de operaciones escalable y tolerante a errores. Innovación en el ensamblaje: La beta perpetua es el proceso base para el desarrollo de una plataforma web, y depende de muchas de las mismas competencias de núcleo.
3.7.7. Aprovechar la larga cola Los sitios pequeños contienen la mayor porción del contenido de Internet y por tanto pequeños nichos son el potencial principal para las posibles aplicaciones de Internet. Esto implica la necesidad de utilizar el alcance de Internet para llegar a los mercados que antes hubieran sido difíciles de capturar de una manera económicamente conveniente.
82
TFG: Análisis de la tendencia Web 2.0, y su aplicación a la relación cliente-empresa IUA Ingeniería de Sistemas – Marco Teórico Una gran clase de oportunidades existe ahora, siendo que antes resultaba prácticamente inalcanzable. Estas oportunidades fueron consideradas por Chris Anderson en su modelo económico llamado “The Long Tail” o “La Larga Cola”. (93) Este modelo demuestra este cambio de un mundo de opciones limitadas y mercados masivos hacia un mundo virtualmente sin límites de opciones y nidos de mercado, indicando que es Internet y sus características el motor de este Ilustración 33: Representación grafica de "la larga cola". cambio. Podemos entender este modelo aplicándolo al marketing de micro-mercados: “Los productos que tienen baja demanda o un volumen de ventas bajo componen colectivamente una cuota de mercado que rivaliza o incluso supera los relativamente escasos productos de venta masiva”. (1) Si consideramos los números actuales que presenta Internet, estos nichos de mercado se vuelven extremadamente atractivos. Este concepto es uno de los pilares de la tendencia Web 2.0, y por tanto es importante que las estrategias apunten a alcanzar a la “larga cola” y no solo competir por lo que se ubique a la cabeza. Algunas razones por las que Internet es un excelente medio para aprovechar la larga cola son: Espacio infinito: Muchas limitaciones del mundo físico están ausentes en Internet, como ser el espacio donde colocar contenidos y las ubicaciones geográficas fijas, generando asa un gran espectro. Micro-mercados: Como mencionamos antes, la mayor parte de los contenidos de Internet se encuentra en sitios pequeños, y en estos se encuentra la mayor parte de posibilidades y de audiencia. El costo como una ventaja: La naturaleza del comercio online disminuye considerablemente los costos de distribución, inventario y ventas. Tim O’Rilly utiliza este concepto para explicar las razones de porque el sistema de publicidad de Google ha tenido éxito con su sistema adWords realizando una comparación con el sistema de publicidades DoubleClick que de acuerdo a su modelo de negocios se limitaba a costosas publicidades en sitios muy populares, y por tanto contaba con contratos publicitarios en algunos miles de sitios fuertes. En contrapartida, Google se enfoco en realizar publicidades de texto, amigables al usuario y sensibles al contexto, realizando contratos con todo tipo de sitios sin importar su relevancia o tamaño. Es decir, Google enfoca su estrategia en el poder colectivo de los millones de pequeños sitios que en realidad conforman la mayor parte del contenido de Internet y por tanto, logra dominar el mercado de la publicidad online. (66) Analizamos a continuación las prácticas que implican la aplicación de este patrón:
83
TFG: Análisis de la tendencia Web 2.0, y su aplicación a la relación cliente-empresa IUA Ingeniería de Sistemas – Marco Teórico Construir en base a las fortalezas de la larga cola: Podemos decir que este modelo esta guiado por tres principios: herramientas democratizadas de producción, costo de consumo disminuido debido a la distribución democratizada y las nuevas formas de conectar a la oferta y la demanda. Estas nuevas herramientas de producción en manos de millones de consumidores (que ahora podemos considerar productores) son la larga cola. Las nuevas formas de distribución como la Internet hacen a esta cola más gruesa (generando mayor liquidez y consumición), y el mejor y más claro alcance a mercados guía a los negocios desde los grandes a los nichos (mediante la búsqueda y el filtrado). La siguiente tabla ejemplifica esto: Fuerza Negocio Producción Constructores de herramientas democratizada para la larga cola, productores. Distribución Agregación para la larga cola democratizada
Conexión entre oferta y demanda
Filtros para la larga cola
Ejemplo Cámaras de video digitales, software para la edición de música y video y el blog como herramienta. Bienes físicos: Amazon.com e eBay. Bienes digitales: Google y Cragslist. Información: Goolge y Wikipedia. Comunidades: MySpace, Bloglines. Google, blogs, recomendaciones en base a algoritmos.
Tabla 5: Ejemplos de aplicaciones de las fuerzas de la larga cola.
La necesidad de todas esas capacidades continuara creciendo. David Hornik indica que “el verdadero dinero (en la larga cola) está en la agregación y el filtrado, y esos serán interesantes negocios en el futuro.” (94) Usar administración de datos algorítmica para que oferta y demanda se igualen: Hay una nueva frase que ya prácticamente se ha convertido en un refrán para quienes navegan en Internet: “Los clientes que compraron esto también compraron X”. Y es el claro ejemplo de la aplicación de técnicas algorítmicas para ayudar a los consumidores a encontrar productos que apunten a su interés real, como en el caso que vimos de Amazon.com en el patrón “aprovechar la inteligencia colectiva”. A medida que el número de productos disponibles aumenta, este Ilustración 34: Modos de listar noticias de tipo de filtros colaborativos se hace cada vez mas Clarin.com critico. Clarin.com aprovecha “la sabiduría de las multitudes” filtrando las noticias en base al comportamiento de los usuarios.
Utilizar una arquitectura de participación para que oferta y demanda se encuentren: Una arquitectura abierta de participación puede cumplir un poderoso rol complementario a las ya mencionadas técnicas algorítmicas para alimentar de mejor manera las necesidades de los nichos. 84
TFG: Análisis de la tendencia Web 2.0, y su aplicación a la relación cliente-empresa IUA Ingeniería de Sistemas – Marco Teórico
La filosofía “La sabiduría de las multitudes” de James Surowiecki (95) está siendo aprovechada por empresas y productos de todo tipo como medio para filtrar y buscar en la larga cola. Capitalizar esta sabiduría de las multitudes puede ir desde opiniones sobre productos hasta rankings de popularidad y otros puntos similares. Un ejemplo es el del periódico argentino Clarín, que en su sitio web ofrece filtros para sus usuarios, poniendo a su alcance las notas más leídas, las más recomendadas y las más comentadas. Aprovechar el auto servicio de los clientes para alcanzar toda la red de manera costoefectiva: Al permitir que los usuarios administren sus propias cuentas les permite mayor control e información, reduciendo a la vez los costos de soporte al cliente que es una de las barreras más grandes para el crecimiento escalable. Prácticamente todos los servicios de Google están basados en este concepto de auto-servicio, al igual que el modelo planteado por los social media mencionados en muchos ejemplos anteriores. La misma estrategia puede ser aplicada para clientes de empresas y negocios: El nuevo producto de software como servicio Office Live de Microsoft sigue este modelo de autoservicio para alcanzar a los negocios pequeños y medianos de la larga cola. Aprovechar las ventajas del bajo costo de estar online: Los costos de producción e inventario pueden ser mantenidos bajos al cumplir un rol de agregación (por ejemplo, el caso de eBay) al utilizar modelos de envío (por ejemplo, Apple para por las canciones de iTunes luego de ser vendidas) y construcción en base a demanda (por ejemplo, la división BookSurge de Amazon que brinda a los usuarios servicios de publicación y distribución). Relación con otros patrones: Modelos ligeros y escalabilidad costo-efectiva: Es posible ganar en base a los beneficios de la larga cola al utilizar modelos de negocios sindicados y bajos costos mantenidos. Modelos de precios escalables y elásticos permiten alcanzar más mercados. Los datos son el próximo "Intel Inside”: Poner a disposición de los mercados los datos y contenidos implica hacerlo mediante pequeñas cantidades de información. Por ejemplo, iTunes vende música por canciones y no por discos enteros, y periódicos como el New York Times vende noticias individuales. Aprovechar la inteligencia colectiva: Utilizar la producción por parte de los usuarios para aprovechar el potencial de la larga cola.
85
TFG: Análisis de la tendencia Web 2.0, y su aplicación a la relación cliente-empresa IUA Ingeniería de Sistemas – Marco Teórico
3.7.8. Modelos ligeros y escalabilidad costo-efectiva La escalabilidad en la Web 2.0 se aplica tanto a modelos de negocio como a la tecnología. Los cambios en costos, reusabilidad, procesos y estrategia implican que se puede hacer mucho más con mucho menos. Por tanto, adoptar una estrategia escalable y costo-efectiva que acompañe a los modelos de negocio, modelos de desarrollo y tecnología para entregar productos al mercado más rápido y de forma más económica sin sacrificar crecimiento futuro. En la Web 2.0 los negocios deben escalar y por tanto también deben hacerlo las tecnologías que los implementan. Y al aplicar un estilo liviano y escalable muchos de los costos tradicionales y riesgos pueden ser reducidos. Es menor la cantidad de capital necesaria antes de ver el resultado de una inversión. Ya no son necesarios los grandes equipos de desarrollo de software para que las aplicaciones puedan tomar vida. Ya no son necesarios los grandes presupuestos de marketing para lograr llegar al público deseado y hacer conocer la empresa o producto. Y ya no es necesario construir todas las herramientas para comercio electrónico dentro de cada proyecto. Para entender esto podemos considerar los siguientes puntos: Todo va en camino a ser commodity: El hardware, el ancho de banda y el software tienen tendencias a reducir su costo a medida que se vuelven más masivos, como está sucediendo. Reutilización: Software muy poderoso, como ser Linux, Apache, MySQL y PHP combinados con librerías muy completas de componentes pre codificados han hecho muy practica la creación de sofisticados sitios en costos tiempos y presupuestos. Estrategia: Las lecciones de la “burbuja .com” de los años 90’ motivan formas orientadas al aprendizaje para la financiación de nuevos negocios y el desarrollo de nuevos productos. Efectos de red: Efectos virales de boca-a-boca para el marketing y promociones combinan modelos de ingresos que crecen en cuanto más gente los utiliza. Procesos: La adopción de procesos de desarrollo agiles, ciclos de productos altamente iterativos y un compromiso más fuerte con los clientes reduce costos, tiempos y riesgos. Es decir, el modelo actual de la web es “lo pequeño es el nuevo grande” (96). En muchos de los ejemplos analizados de social media hemos encontrado que este patrón es un pilar muy sólido para el éxito. Por ejemplo, el caso de Flickr que realiza mil transacciones por segundos y entrega 2 millones de imágenes utilizando menos de una docena de servidores de bajo costo mediante el aprovechamiento de software open source gratuito en cada capa de la plataforma, abarcando desde servidores web a bases de datos. Es la filosofía de Internet como una plataforma de desarrollo extendida a modelos de negocios. Analizamos a continuación las prácticas que implican la aplicación de este patrón: Escalar en base a la demanda: En una era guiada por los efectos de red, casi todo aspecto de un negocio y producto debería ser diseñado para comenzar de forma pequeña y luego escalar
86
TFG: Análisis de la tendencia Web 2.0, y su aplicación a la relación cliente-empresa IUA Ingeniería de Sistemas – Marco Teórico en base a la demanda: el modelo de tecnología, el modelo de ingresos, e incluso el modelo de recursos humanos. En el lado de la demanda del mercado las dinámicas esenciales de los efectos de red se están haciendo más prominentes: un crecimiento gradual con un punto de inflexión potencial en el cual se dispara un crecimiento exponencial. En el lado de la oferta, nuevas economías de bajo costo permiten una mayor flexibilidad a la hora de escalar en la tecnología, el marketing y el personal. Digg, la comunidad de contenidos mencionada anteriormente que funciona como filtro a noticias y contenidos en Internet comenzó en el 2004 con un presupuesto de dos mil dólares, un servicio de hosting de 99 dólares mensuales, software gratuito open-source y desarrolladores tercerizados de diez dólares la hora. En 2006, Digg ya estaba entregando a sus usuarios más de 100 millones de páginas cada día y utilizando más de 90 servidores, pero con solo 15 personas en su personal. (97) Sindicar los modelos de negocio: En la economía de red de Internet existe un ecosistema online de componentes modulares y modelos de negocios sindicados que permiten que las empresas construyan todo o parte de su negocio en base a componentes de otros. Por ejemplo, al insertar unas pocas líneas de código en un sitio web es posible obtener ganancias mediante anuncios publicitarios, realizar transacciones de comercio electrónico, mostrar videos o imágenes, o realizar búsquedas en el sitio. No hace mucho este tipo de componentes hubieran requerido un gran esfuerzo, tiempo y costo para ser construidos. Un ejemplo que optimiza este modelo de sindicación es el de Google adSense: los usuarios que desean mostrar contenidos publicitarios en sus sitios solo deben crear una cuenta en el servicio, y luego insertar unas pocas líneas de código Javascript, y así comenzar a publicar anuncios que en base a su contexto, mostraran publicidades relevantes de distintos anunciantes, y todo en un par de minutos, sin una inversión inicial y sin conocimientos técnicos.
Ilustración 35: Ejemplo de Google adSense. El modelo sindicado de negocios adSense de Google permite que un usuario publique publicidad contextual en su sitio con solo insertar unas pocas líneas de código JavaScript en unos pocos minutos, y sin necesidad de una inversión inicial ni conocimientos técnicos más allá del de saber manejar su sistema de administración de contenidos, como ser el caso del panel de administración en un blog de Blogger.
87
TFG: Análisis de la tendencia Web 2.0, y su aplicación a la relación cliente-empresa IUA Ingeniería de Sistemas – Marco Teórico Otro caso que mencionamos anteriormente es el de Amazon.com que realiza una sindicación de su modelo de ventas online, mediante un modelo de afiliados que ya paso el millón de usuarios que reciben una comisión de ventas cada vez alguien realiza una compra en Amazon.com habiendo hecho click previamente en el sitio del afiliado. Es una buena idea entonces integrar el modelo de negocio de terceros en el modelo de negocios de un proyecto, y por supuesto, sería muy bueno sindicar el modelo del proyecto también hacia terceros. Tercerizar cuando es práctico y posible: A medida que ciertos tipos de tecnologías de información se convierten en servicios y están disponibles para los usuarios, dejan de ser ventajas competitivas. Vemos que esto ocurre en muchos niveles desde la base de infraestructura para almacenamiento y procesamiento de datos hasta el desarrollo, prueba y administración de operaciones de software. Esto implica que existen oportunidades para tercerizar de forma estratégica en cada uno de los niveles, y por tanto es muy raro el caso en el cual estos requerimientos deberían ser manejados como parte del desarrollo de un proyecto. Este tipo de práctica se aplica desde proyectos pequeños de dos personas hasta empresas multinacionales. Un ejemplo es en el caso de servidores para sitios y servicios online, donde encontramos el servicio de almacenamiento en base a demanda de Amazon S3 (Simple Storage Service) (98), en el cual los usuarios pagan por el servicio en base al nivel de consumo que tengan en cuanto a almacenamiento de datos y banda ancha, generando una gran flexibilidad para proyectos que comienzan pequeños y pueden crecer exponencialmente, sin tener que preocuparse por la infraestructura que los sostiene. Más allá del nivel de infraestructura, es recomendable evaluar cada aspecto del ciclo de vida de desarrollo y operaciones para determinar donde es posible tercerizar estas funciones no estratégicas, para poder dedicar más tiempo y creatividad en las funciones del modelo de negocio del proyecto. Y la posibilidad de tercerizar servicios que brinda la globalización permite que servidos de desarrollo de bajo costo, soporte y operaciones estén disponibles para empresas de todos los tamaños. Proveer infraestructuras, funciones y experiencia a terceros: En el otro lado de la tercerización, es bueno capitalizar las nuevas oportunidades de proveer servicios para el siempre creciente grupo de necesidades no satisfechas en los diferentes niveles de infraestructura, funciones y experiencia. Si revisamos algunos de los ejemplos mencionados en el patrón de “Los datos son el próximo “Intel Inside”” tenemos el caso de MySpace, que se focaliza en manejar y mejorar sus habilidades como red social, tercerizando servicios especializados como ser el manejo de imágenes a empresas como Photobucket. Y el caso de YouTube que utiliza los servicios de
88
TFG: Análisis de la tendencia Web 2.0, y su aplicación a la relación cliente-empresa IUA Ingeniería de Sistemas – Marco Teórico almacenamiento y ancho de banda de Limelight Networks para entregar los videos a sus usuarios. Nuevas empresas como ser 3Tera (99) están buscando proveer web hosting virtualizado con estilo de auto-servicio diseñado específicamente para empresas Web 2.0 pequeñas y medianas. Escalar los modelos de precios e ingresos: Ahora que se provee el software cada vez más como un servicio online y ya no como aplicaciones empaquetadas y versionadas, los modelos de venta y precios de algunos software tradicionales ya no son aplicables. En su lugar han surgido modelos más escalables y flexibles. Las más exitosas estrategias de ventas y ingresos no son aquellas basadas en “un solo plan se ajusta a todos”, sino que incorporan múltiples modelos de fuentes de ingresos y fijaciones de precios escalables y por niveles. Así los ingresos y la fijación de precios se alinean con los atributos principales de la Web 2.0: o Los efectos de red son alentados a través de bajos costos y barreras bajas a la adopción, proveyendo un camino de crecimiento. o La fijación de precios bajos o incluso gratuitos aprovecha la larga cola al alentar la adopción generalizada incluso para personas individuales o pequeñas operaciones. o Los modelos de publicidad dan soporte a una estrategia de plataforma mediante el software como servicio, que es gratuito o de bajo costo para el usuario. o Mantener precios razonables para el usuario motiva la participación, lo que genera un crecimiento fomentado, comunidades y finalmente, datos generados por el usuario como parte de una estrategia como la mencionada en el patrón de “Los datos son el próximo “Intel Inside””. Modelo de Ingresos Publicidad sindicada
A favor
En contra
Ejemplos
Los usuarios obtienen contenidos y servicios gratuitos Servicios de bajos precios gratuitos motivan la adopción.
Publicidad contextual en base a texto de Google adSense.
Publicidad en base a sponsors
Los usuarios obtienen contenidos y servicios gratuitos Servicios de bajos precios gratuitos motivan la adopción. Las publicidades pueden ser más apropiadas para los contenidos y la audiencia. Simplicidad Modelo de ingresos recurrente Bajo costo o nulo inicial promueve la adopción.
No siempre están apuntados a mercados correctamente No son apropiados para todos los escenarios No tan escalable desde el punto de vista de la larga cola
Los costos disuaden a algunos usuarios. Algunos usuarios (como ser departamentos IT de
Los servicios de Salesforce.com. Basecamp de 37signals. Muchos de los servicios Premium son ofrecidos
Subscripciones
Publicidades variantes con relaciones directas entre publicitarios y publicadores. TechCrunch
89
TFG: Análisis de la tendencia Web 2.0, y su aplicación a la relación cliente-empresa IUA Ingeniería de Sistemas – Marco Teórico Opciones de costos fijos o variables (en base al uso)
Comisión por transacciones
Servicios Premium
Licencias de productos
Atado directamente a las acciones de los clientes. Permite que los usuarios (en este caso socios) compartan las ganancias. Opciones de mejoras atractivas para los usuarios gratitos o que consumen publicidades. El modelo más tradicional y por tanto familiar a los usuarios.
empresas) prefieren modelos más tradicionales como ser el de licencias. No aplicable para todos los modelos de negocios.
como servicios de subscripción escalables.
Algunos clientes no estarán interesados en mejoras.
Los servicios adicionales de impresión de fotografías de Flickr. Microsoft Office Live Programas tradicionales de escritorio como ser Microsoft office. Programas tradicionales para empresas como ser Oracle.
Menos flexibilidad y escalabilidad. No se aplica bien para el software como servicio.
Los programas de afiliados de Amozon.com y eBay.
Fallar rápido, escalar rápido: Tener éxito en Web 2.0 requiere innovación, pero la innovación implica riesgos. Para mitigar estos riesgos es necesario adoptar filosofías de fracaso rápido y escalado rápido que motiven nuevas ideas y experimentación con estas, pero que reconozcan que la falla de proyectos es posible, y que cuanto más rápido se genere una adaptación al fracaso más rápido se estará listo para encarar nuevos proyectos. La velocidad es crucial, tanto en la ejecución como en la toma de decisiones. Diseñar para el escalamiento: La escalabilidad no es algo que sucede por accidente. Es necesario comenzar con decisiones tácticas y estratégicas que permitan el escalamiento a medida que el negocio o el producto crece: o La simplicidad escala: El crecimiento rápido es fomentado al esquivar soluciones complejas, particularmente en tecnologías y diseños. o El auto-servicio escala: Como muchos negocios que aprovechas la larga cola lo demuestran, dar el poder a los usuarios de auto gestionarse les da mayor control y simultáneamente mantiene bajos los costos operativos y de soporte. El impacto de esto es amplificado a medida que se genera el crecimiento. o Sistemas emergentes escalan: La búsqueda de Google entrega resultados emergentes a medida que los usuarios de Internet generan contenidos y los vinculan mediante links. El modelo de eBay también facilita la emergencia. Wikipedia escalo a más de un millón de artículos (10 veces el tamaño de la Enciclopedia Británica) en base a su diseño abierto, descentralizado y emergente. Relación con otros patrones: Beta perpetuo: El desarrollo de procesos y herramientas agiles y livianas complementan a modelos de negocios livianos. 90
TFG: Análisis de la tendencia Web 2.0, y su aplicación a la relación cliente-empresa IUA Ingeniería de Sistemas – Marco Teórico Innovación en el ensamblaje: Las plataformas facilitan el escalamiento y motivan a otros a hacer trabajos e innovaciones que aportan al proyecto.
3.7.9. Resumiendo los patrones de diseño Es complicado poder mantener una visión clara de los patrones de diseño en un primer momento. Para ayudar en esto podemos tomar como referencia la siguiente tabla adaptada de la publicación de “Web 2.0 Principles and Best Practices” en base al desarrollo de este trabajo: Patrón Aprovechar la inteligencia colectiva.
Términos relacionados Arquitectura de participación Los usuarios agregan valor Efectos de red Creacion colectiva
Ejemplos Wikipedia Flickr Amazon Delicious Technorati
Los datos son el próximo "Intel Inside”.
Estrategia de datos. Creative Commons
Amazon eBay NAVTEQ Craigslist YouTube Buscador de Google Technorati LinkedIn
Innovación en el ensamblaje.
La Web como plataforma. Mashups. Remezcla Pequeños pedazos débilmente acoplados. APIs REST y SOAP.
Google Maps Twitter Amazon Facebook Eventful Flickr HousingMaps
Experiencias de usuario ricas.
Aplicaciones de Internet Enquiquecidas Ajax
GMail Google Docs Google Analytics Google Maps YouTube
Software más allá de un solo
Computación 26 ubicua
iTunes TiVo eBay
Practicas Pagar al usuario primero. Activar los efectos de red por defecto. Involucrar a los usuarios implícita y explícitamente. Proveer un contexto significativo para la creación. Confiar en los usuarios. Diseñar software que es mejor a medida que más gente lo usa. Buscar poseer fuentes de datos únicas y difíciles de recrear. Mejorar los datos básicos. Los usuarios controlan sus propios datos. Algunos derechos reservados, no todos. Definir una estrategia de pila de datos. Ser dueño del índice o del formato. Diseñar los datos para su reutilización. Tercerizar o proveer administración al acceso de datos. Ofrecer APIs de los servicios. Diseñar para la reutilización. Aplicar las mejores prácticas en APIs. Usar los estándares existentes: Construir los modelos de negocios en las APIs. Usar Web 2.0 para dar soporte a la plataforma. Ser cliente de su propia plataforma. Direccionamiento granular de contenidos. Utilizar su plataforma para construir la confianza y lealtad de los clientes. Aprender de cómo los clientes reutilizan los servicios. Combinar lo mejor de las experiencias de escritorio y online. Usabilidad y simplicidad primero. Alcanzar los requerimientos de los usuarios. Priorizar la búsqueda sobre la estructura. Mantener el direccionamiento de los contenidos. Personalización profunda y adaptativa. Diseñar desde un primer momento para compartir datos entre dispositivos, servidores y redes.
26
Integración de la informática en el entorno de la persona, de forma que los ordenadores no se perciban como objetos diferenciados. http://es.wikipedia.org/wiki/Computaci%C3%B3n_ubicua
91
TFG: Análisis de la tendencia Web 2.0, y su aplicación a la relación cliente-empresa IUA Ingeniería de Sistemas – Marco Teórico SCANBUY TN y la Gente Shozu Intelisync
dispositivo.
Beta perpetuo.
Fin del ciclo de adopción de software Software como servicio Desarrollo 2.0 Extreme 27 Proggraming
Google Flickr Amazon Basecamp
Aprovechar la larga cola.
Micro-mercados Sabiduria de las masas
Amazon eBay adWords iTunes Office Live
Modelos ligeros y escalabilidad costo-efectiva.
Sofware y hardware de tipo commodity. Ecalabilidad
Estar atentos a la locación. Extender la Web 2.0 a los dispositivos. Usar el poder de las redes para hacer los dispositivos más inteligentes. Aprovechar los dispositivos como fuentes ricas de datos y contenidos. Considerar “un-click-por-producción” como prioridad. Permitir la independencia de ubicación de los datos. Liberar temprano y rápido. Hacer participar a los usuarios como codesarrolladores y probadores en tiempo real. Instrumentar los productos. Crear nuevos productos de manera incremental. Hacer que las operaciones sean una habilidad principal. Usar herramientas y lenguajes dinámicos. Construir en base a las fortalezas de la larga cola. Usar administración de datos algorítmica para que oferta y demanda se igualen. Utilizar una arquitectura de participación para que oferta y demanda se encuentren. Aprovechar el auto servicio de los clientes para alcanzar toda la red de manera costo-efectiva. Aprovechar las ventajas del bajo costo de estar online. Escalar en base a la demanda: Sindicar los modelos de negocio. Tercerizar cuando es práctico y posible. Proveer infraestructuras, funciones y experiencia a terceros. Escalar los modelos de precios e ingresos. Fallar rápido, escalar rápido. Diseñar para el escalamiento.
Tabla 6: Resumen de los patrones de diseño
3.8.
Tecnologías para Web 2.0
Implementar proyectos en base a lo planteado sobre la tendencia Web 2.0 implica desarrollar modelos, estrategias y tácticas en base a la aplicación de los patrones y mejores prácticas que hemos mencionado anteriormente, dejando en un plano secundario a las tecnologías que les dan soporte y base. Pero por supuesto, es imposible crear una pirámide como esta si no hay una base solida. Por tanto, en esta parte del marco teórico vamos a acercarnos a la parte técnica que implica el enfoque Web 2.0. En su libro “Unleashing Web 2.0: From Concepts to Creativity” (100) los autores comentan sobre la tendencia Web 2.0 y referencian a las definiciones creadas por O’Reilly, buscando comprender
27
Metodología ágil de desarrollo de software que será analizada posteriormente.
92
TFG: Análisis de la tendencia Web 2.0, y su aplicación a la relación cliente-empresa IUA Ingeniería de Sistemas – Marco Teórico a la tendencia mediante la exploración y la observación critica de los desarrollos que han sido atribuidos a la Web 2.0 en base a puntos de vista técnicos y de negocios. Esta parte del marco teórico tomara una fuerte base en esta publicación, y haremos un hincapié fuerte en el primero de estos dos puntos de vista, ya que hemos cubierto el segundo mayormente con los patrones de diseño Web 2.0 publicados por O’Reilly. Este análisis técnico permite reconocer diversas líneas de desarrollo cuyo punto final es la Web 2.0, pero cuyas raíces pueden ser claramente reconocidas y registradas. Muchos sitios y servicios que se analizan en este proyecto existen desde antes que surgiera el concepto Web 2.0, por lo que notaremos que estos no son el resultado, sino partes de los origenes, es decir, sitios y servicios que sentaron las bases y han sido líderes en esta tendencia. Podemos comenzar con una perspectiva histórica, analizando como surgió inicialmente Internet, observando los avances tecnológicos que sentaron el camino para que esta red logre el alcance actual. A continuación observaremos los avances en las tecnologías de Internet, haciendo énfasis en los lenguajes, formatos y estándares que hay sido desarrollados en años recientes. Luego observaremos los núcleos de Web 2.0, los mecanismos técnicos como ser las APIs, las llamadas de procedimientos Web, los mashups, las aplicaciones de internet enriquecidas y el uso de tags y folksonomias. Fianlmente realizaremos un analisis de procesos utilizados para desarrollo web.
3.8.1. Las bases de Internet 3.8.1.1 El modelo Cliente-servidor, protocolos y navegadores. Si bien Internet ya ha sido utilizada desde los últimos años de los 70’ de diversas formas como ser la transmisión de archivos y correo electrónico, se presento un punto de inflexión que libero el potencial de esta infraestructura de red, y fue el surgimiento de un nuevo servicio. Este permitía el envío de archivos escritos en el lenguaje HTML (Hypertext Markup Language), y mediante el uso de una aplicación denominada “navegador” instalada en una maquina local era posible interpretar este archivo de forma grafica. El navegador Mosaic del año 1993 fue el primer navegador grafico, y contaba con las características de acceder a datos utilizando Internet, el protocolo FTP, u otros servicios de Internet, y la renderizacion de HTML y por supuesto, funcionaba basado en el principio de clienteservidor, que todavía es la base de Internet. Si bien el concepto es básico para el alcance del proyecto, es necesario refrescar brevemente algunos detalles de este, ya que servirá de fundamento para temas futuros. Básicamente, los clientes requieren servicios, y los servidores los brindan. Cuando un cliente quiere un servicio como ser el acceso a una base de datos, envía una petición al servidor correspondiente. Este procesa la petición y devuelve el resultado al cliente.
Ilustración 36: Interacción entre cliente y servidor. La interacción básica de Internet entre navegadores y servidores web está basada en el modelo de red clienteservidor.
93
TFG: Análisis de la tendencia Web 2.0, y su aplicación a la relación cliente-empresa IUA Ingeniería de Sistemas – Marco Teórico Este esquema analizado con más detalle por otros autores (ej, Tanenbaum), se ha vuelto extremadamente exitoso en las aplicaciones de software, y como mencionamos anteriormente es la base de las interacciones entre navegadores y un servidor de Internet. Una característica de este concepto es que comúnmente funciona de manera sincrónica: Mientras el servidor está procesando el pedido, el clientes estará inactivo y en modo espera. Una vez que la respuesta llega el cliente continuara su acción. Por ejemplo, si el cliente ha pedido una página en la cual parte de la información depende de una base de datos, la página no puede ser completada hasta que toda la información ha sido procesada. Esto ha sido lo más común en el contexto de Internet hasta no hace mucho tiempo. Dos estándares fueron la base para el impulso de Internet: el mencionado HTML (Hypertext Markup Language) y el protocolo HTTP (Hypertext Transfer Protocol) que es utilizado para realizar las llevar las peticiones del cliente al servidor y para llevar las respuestas del servidor al cliente. Así, da la base para el modelo cliente-servidor en Internet, y como veremos, esto se ha modificado solo levemente desde la llegada de los servicios web. Por su parte HTML se ha vuelto una herramienta muy exitosa para publicar contenidos e información en Internet, ya que es un lenguaje simple que no necesita un amplio conocimiento de programación para ser comprendido en sus niveles más básicos, y también su alta tolerancia a fallas, ya que en caso de surgir errores en el código, estos serán simplemente ignorados en general. Como consecuencia de los primeros indicios del poder de Internet, comenzaron a surgir nuevos navegadores iniciándose así una gran lucha sobre estos por parte de empresas como Netscape que lanzo su Netscape Navigator en Octubre de 1994 en base al proyecto original de Mosaic y Microsoft que lanzo su Microsoft Explorer en Agosto de 1995, en versiones muy lejanas de navegadores con capacidades de las que presentan los de hoy en día. Esa batalla fue finalmente ganada por Microsoft, pero luego surgieron otros que tomaron fuerza, como ser el caso de Mozilla Firefox. En estas etapas tempranas Netscape introdujo algunos concepto que potenciaron el poder de Internet,( como ser cookies, nuevas capacidades de HTML como ser los marcos y más tarde el lenguaje Javascript) siendo que posteriormente algunas de estas innovaciones se convirtieron en estándares mediante organizaciones como ser W3C (Workd Wide Web Consortium) y ECMA (European Computer Manufacturers Association). 3.8.1.2. Vínculos y búsquedas La base de la popularidad de Internet en un comienzo puede ser considerada la posibilidad de que una página o un documento HTML contenta hipervínculos o simplemente vínculos, que son referencias a otras páginas (en otros sitios o en el mismo sitio). Este concepto rompe la linealidad de lectura tradicional presentada en los textos. A gran escala, podemos decir que Internet es una gigantesca colección de documentos conectados por hipervínculos y esto puede ser percibido desde un punto de vista más técnico como un grafico en el cual los documentos HTML individuales son nodos unidos por los vínculos.
94
TFG: Análisis de la tendencia Web 2.0, y su aplicación a la relación cliente-empresa IUA Ingeniería de Sistemas – Marco Teórico Estos vínculos están compuestos por un nombre y una URL (Universal Resource Locator, que es la dirección lógica de una página web). Cuando el usuario hace click en un vínculo, el navegador contacta al servidor web correspondiente a esa URL a través de un conjunto de protocolos que entre otras funciones, cumplen la resolución de nombres de dominios28. Estos vínculos son los que permiten la “navegación” a través de Internet, y la idea básica de esto es que si algo que el usuario está buscando no se encuentra en la pagina donde esta, puede utilizar un vinculo para dirigirse a otra donde Ilustración 37: Modelo simple de páginas y vínculos. encontrara información más relevante o incluso vínculos que lo lleven a otros lugares donde Podemos pensar a Internet como un conjunto de nodos (páginas web) conectados (mediante los encontrar dicha información. Sin embargo, los vínculos). vínculos no necesariamente apuntan a otras páginas, sino que también pueden dirigirse a otros lugares dentro de la misma página.29 Volviendo a la idea del grafico de nodos, podemos decir que en la actualidad es extremadamente grande, conteniendo estimativamente más de diez mil millones de nodos. Seguir vínculos implica crear “caminos” en el grafico (secuencias de nodos que se siguen). Sin embargo, es interesante destacar que estos caminos no se generan de una forma aleatoria, sino que en general representan la “búsqueda” de un término o una combinación de términos contenidos en un nodo. Es decir, estos caminos representan un patrón de conducta en el usuario. Ahora, este grafico es dinámico, cambiando constantemente y por lo tanto haciéndose imposible conocerlo completamente. Por lo cual no es posible realizar búsquedas de manera comprensiva, ya que no hay indicadores de cuan larga una búsqueda debería ser, o por cual camino debería seguir. Otra cosa destacable es que los contenidos de Internet no están totalmente interconectados. En (101) se realizo un estudio en el cual el grafico tenía una forma similar a la de un moño, con diversos componentes: Un núcleo central que contenía paginas entre las cuales los usuarios podían navegar con gran facilidad. Otro gran grupo, llamado de “entrada” que contenía paginas que apuntaban al núcleo pero que no podían ser alcanzadas desde este.
28
Esto se refiere a traducir la dirección lógica (URL) a una dirección física (IP) para hacer posible la conexión al servidor web. 29
Un análisis más técnico sobre navegación puede ser encontrado en (102).
95
TFG: Análisis de la tendencia Web 2.0, y su aplicación a la relación cliente-empresa IUA Ingeniería de Sistemas – Marco Teórico Un tercer grupo grande llamado de “salida”, con páginas que podían ser alcanzadas desde el núcleo pero que no vinculaban hacia este. Y finalmente, un grupo más pequeño de páginas que si bien interconectaban entre sí, no tenían vínculos hacia el núcleo, e incluso podían encontrarse paginas totalmente desvinculadas. Como consecuencia de esto, un Ilustración 38: Modelo tipo moño de páginas y vínculos. usuario quizás no pueda encontrar un El grafico de Internet puede ser considerado en forma de moño, camino entre dos páginas elegidas al contando con 4 grupos de páginas. azar, debido a la posibilidad de que no estén interconectadas. 3.8.1.3. La exploración y búsqueda en Internet. Como consecuencia de lo anterior, Internet depende de la exploración, como ser la progresión en caminos o secuencias de nodos sin objetivos predeterminados. Este concepto tiene una perspectiva extremadamente práctica, en cuando a cómo encontrar información en este “hiperespacio” o como lograr comprender este grafico tan grande y dinámico para una aplicación o uso en particular. Aquí es donde es necesaria la actividad de “búsqueda”. Los motores de búsqueda son la herramienta más importante que existe para encontrar información en Internet. En la última década se presento una fuerte lucha sobre el dominio del mercado de estas herramientas, siendo en la actualidad el motor de búsqueda Google el líder del mercado, en base a su algoritmo de búsqueda y sus prácticas. La búsqueda es algo que se ha vuelto generalizado, y hoy en día los usuarios realizan búsquedas en motores de búsqueda Ilustración 39: Motor de busqueda. mediante un grupo de palabras, observando luego una pequeña Un motor de búsqueda está compuesto típicamente por tres componentes: un rastreador, un indexador y un servidor.
96
TFG: Análisis de la tendencia Web 2.0, y su aplicación a la relación cliente-empresa IUA Ingeniería de Sistemas – Marco Teórico porción relevante de los comúnmente miles o millones de páginas que pueden contender esos términos, según el criterio del motor de búsqueda. Y a su vez, se realizan búsquedas directamente dentro de sitios o en grupos de sitios específicos, ya que podemos hablar del caso mencionado de Technorati, un buscador específicamente de blogs. Desde una perspectiva técnica, un motor de búsqueda está basado en técnicas de obtención de información (102) y tiene tres componentes principales: un rastreador, un indexador y servidor. El rastreador explora Internet por distintos caminos, realizando copias de las páginas y entregándoselas al motor de búsqueda para que las analice (revisitando las paginas cada cierto intervalo de tiempo). Este análisis es realizado por el indexador, que extrae términos de las páginas y las inserta en una base de datos (el índice). Cada término es asociado con el documento original correspondiente y su URL. Finalmente, el servidor es el que responde a las consultas de los clientes. Cuando un usuario realiza una búsqueda sobre algún término en especial, el indexador devolverá un determinado número de páginas que pueden ser relevantes, y estas son ordenadas por el servidor, donde la idea es siempre mostrar los resultados más relevantes primero. Y en este punto de “que es lo relevante” es donde se encuentra lo más complejo. 3.8.1.4. PageRank La popularidad de Google se debe a que la empresa desarrollo una forma innovadora de realizar las búsquedas en base a términos y de asignar relevancias a los resultados. Andes de que este enfoque fuera aplicado, los motores de búsqueda simplemente devolvían un listado de resultados en los cuales los términos aparecían, y el usuario debía investigar sobre la relevancia de estos. El cofundador de Google Larry Page tuvo la idea de que no todos los resultados de una búsqueda eran igualmente relevantes, por lo que sugirió que era necesario aplicar un ranking de relevancia a estos resultados, y para esto desarrollo junto a Sergey Brin en la Universidad de Stanford un algoritmo al que llamo PageRank que utiliza una formula recursiva para calcular el ranking (103). Monika Henzinger, antigua directora de investigaciones de Google explico la idea del algoritmo de la siguiente manera: “Consideremos el caso de un doctor. Cuanta más gente recomiende al doctor, mejor se supondrá que este doctor es. Esto es similar al caso de un ranking de las páginas web: cuantas más paginas contengan links a una página p, mayor será el ranking de la pagina p. Sin embargo, la calidad del doctor también depende de la calidad de la persona que lo recomienda. Hace una diferencia si la referencia proviene de un colega, o de un vendedor, o de la industria farmacológica. Si el doctor es recomendado por otro doctor, esa recomendación contara al 100%, la recomendación de una enfermera sin educación profunda sobre medicina contara solo un 60%, la de un paciente un 20%, y la de un vendedor (que tiene un interés muy distinto al de un doctor) contara un 0%. El principio detrás de esto (también encontrado en citaciones científicas clásicas) es así basado en la idea de observar a los links que van apuntados hacia la pagina p para calcular el ranking de p, pero hacerlo de una manera recursiva aplicando el mismo concepto de ranking a todas las páginas de donde emergen estos links.”
97
TFG: Análisis de la tendencia Web 2.0, y su aplicación a la relación cliente-empresa IUA Ingeniería de Sistemas – Marco Teórico Al pasar los años el algoritmo agrego muchos otros criterios aparte de los arriba comentados para mejorar los resultados de las búsquedas30. Es importante recordar el concepto analizado previamente de “la larga cola”, y comprender que se aplica de forma directa sobre las búsquedas de Internet, ya que la mayoría de las consultas a motores de búsqueda son sobre termino poco frecuentes, es decir, la mayor parte están en la larga cola. Si bien el algoritmo puede perfeccionarse constantemente agregando criterios más complejos, es muy difícil llegar a igualar la capacidad de una persona: aplicar intuición, experiencia, razonamiento y conocimiento de un dominio o tema en particular a los resultados de una búsqueda, con el objetivo de diferenciar cuales son buenos resultados y cuáles no. Esto demuestra que existe un gigantesco lugar para la mejora continua en el campo de la búsqueda en Internet31. Los algoritmos deben aprender más aun de los procesos de búsqueda que surgen del comportamiento de los usuarios. Más allá del concepto de la búsqueda basada en términos, existen otras ideas en base a búsquedas de textos, interpretación de textos, asociaciones de palabras o taxonomías aplicadas al campo de la búsqueda en Internet, y en el caso de la Web 2.0 están surgiendo conceptos revolucionarios que analizaremos luego.
3.8.2. Estructura, presentación y contenidos. .Como se menciono anteriormente, así como el hardware necesario para dar soporte a proyectos de Internet se ha vuelto de tipo commodity, los costos en el área de la tecnología del software se han reducido significativamente, y una manifestación de esto es el caso de LAMP: un acrónimo común para referirse al desarrollo de software en base al uso de herramientas open source, utilizando a Linux como Sistema operativo, Apache como servidor web, MySQL como base de datos y PHP como lenguaje de programación. 3.8.2.2. HTML También se menciono al lenguaje HTML como el lenguaje predominante en el desarrollo de páginas web, proveyendo capacidades para estructuras basadas en texto denotando tablas, parágrafos, listas entre otras opciones, complementando estos textos con formularios, imágenes, links y por tanto, interacción en base a una estructura de elementos llamados “tags” o “markups” (cuya traducción seria “márgenes”). Estos siguen algunas reglas sintácticas simples, y son utilizadas para describir tanto el contenido como la presentación de un documento. Veamos un ejemplo de una página HTML, aplicada para mostrar unos elementos de un catalogo de DVDs.
30
Podemos encontrar un análisis más detallado de los aspectos algorítmicos y matemáticos detrás de PageRank en (134). 31
Para información actualizada sobre motores de búsqueda es posible consultar http://searchenginewatch.com/.
98
TFG: Análisis de la tendencia Web 2.0, y su aplicación a la relación cliente-empresa IUA Ingeniería de Sistemas – Marco Teórico Catalogo de DVD <meta name="author" content="Juan Ortiz">
Este código nos daría como resultado lo siguiente, al ser guardado en un archivo de extensión .html y ejecutado en un navegador:
Ilustración 40: Ejemplo de uso de HTML.
Como vemos existe una gran variedad de tags en HTML, y estos son utilizados para indicar que ciertos pedazos de código tienen un significado semántico especial, y estos tags son definidos en el estándar de HTML que se esté utilizando. Si notamos la primera línea del código, ahí se indica que se está utilizando “HTML 4.01 Transitional”, una versión introducida por el W3C en 1999, existiendo diversas especificaciones hoy en día, pero siendo esta una de las más comunes. Esto es llamado el DTD (Document Type Definition), y en la misma línea se indica la URL donde pueden encontrarse los detalles de la especificación incluyendo los tags validos y la forma de utilizarlos.
99
TFG: Análisis de la tendencia Web 2.0, y su aplicación a la relación cliente-empresa IUA Ingeniería de Sistemas – Marco Teórico Observemos brevemente algunos de los tags utilizados, encontramos que el documento HTML está compuesto por una cabecera y un cuerpo, delimitados por los tags y , indicando que todo lo contenido entre estos tags pertenecerá a esos bloques y por tanto tendrá las propiedades correspondientes. Los datos de cabecera son no son en general mostrados en el navegador directamente, sino que contienen el titulo del documento, que será mostrado en el titulo del navegador, metadatos (como ser en este caso, el autor del documento), y otros tipos de tags que comentaremos más adelante. En el cuerpo se da la estructura y los contenidos que serán mostrados en el navegador. Podemos ver que se estrutura la pagina con un titulo (entre tags ) y una tabla (entre tags
con la propiedad de ancho de 500 pixels) que contiene los elementos del catalogo, divididos en columnas (entre tags
) y filas (
, algunas con un color gris de fondo). A su vez, encontramos textos y links, teniendo los links la estructura TEXTO. Esto es suficiente para lograr comprender el concepto de los tags mínimamente y de cómo el HTML se utiliza. 32 La mayor parte de los tags del ejemplo anterior son utilizados para denotar la estructura del documento (como ser tablas, filas o links). Encontramos también tags como ser el caso de , que indica que una porción de texto deberá ser mostrada en negrita, por tanto definiendo la forma en la cual el contenido es presentado. Otros elementos en algunos tags como ser width de una tabla o bgcolor son llamados propiedades, y definen también como el contenido es mostrado, sin necesariamente hablar de la estructura. Estos son llamados “tags y atributos de presentación”. A su vez, encontramos elementos como ser los textos y las URLs, que tampoco hablan de estructura o de presentación, sino que son contenidos. Es decir, podemos encontrar tres tipos de elementos que podrían ser considerados independientes en su naturaleza. La separación de la estructura, presentación y contenido se ha convertido en un tema de interés cuando las páginas web comenzaron a ser diseñadas para utilizarse y visualizarse en más y más dispositivos (computadoras, teléfonos móviles, etc.) ya que cada tipo de dispositivo tiene sus propias capacidades, características y restricciones por lo que necesitaran distintas formas de estructura y presentación para mostrar los contenidos. Y además, el HTML de las páginas es prácticamente generado en todos los casos de manera dinámica por aplicaciones, siendo muy extraño el caso en que se utilicen archivos de texto estáticos, y la separación de estos tipos de elementos daría lugar a la reutilización: en base a una estructura, pueden aplicarse distintas formas de presentación, y a su vez mostrar distintos tipos de contenidos. Más adelante notaremos formas para lograr esta separación, pero podemos mencionar un pequeño ejemplo aunque aún no hemos desarrollado la teoría completamente: Los contenidos 32
Podemos encontrar más detalles del lenguaje en (135).
100
TFG: Análisis de la tendencia Web 2.0, y su aplicación a la relación cliente-empresa IUA Ingeniería de Sistemas – Marco Teórico puros podrían estar almacenados en una base de datos. Podríamos tener distintas formas de presentación, guardadas en distintos archivos CSS (Cascading Style Sheet), distintas estructuras en diferentes archivos de tamplate, y a su vez una aplicación en un lenguaje de servidor como ser PHP sería la encargada de tomar los datos de la base de datos, introducirlos en una estructura y aplicarles el estilo correspondiente, devolviendo al cliente un archivo HTML generado de forma dinámica específicamente por ejemplo, para ser utilizado en un dispositivo móvil contemplando sus características y limitaciones. 3.8.2.3. XML Los tags de HTML están predefinidos, y si bien hay formas de utilizar tags adicionales (por ejemplo, embebiendo lenguajes de scripting) en general no pueden ser definidos por el usuario. Esto es diferente en el caso de XML (Extensible Markup Language), lenguaje en base a tags que da soporte a una gran variedad de aplicaciones y que no tiene ningún tipo de tags predefinidos, sino que se basa en las definiciones del programador, por lo que es considerado un “meta lenguaje”. 33 El estándar XML ha sido ampliamente en los últimos años, siendo uno de los pilares de las tecnologías de Internet. Es un subgrupo simplificado del SGML (Standard Generalized Markup Language) y es ampliamente utilizado para compartir e integrar información entre aplicaciones. Los lenguajes basados en XML son a su vez razonablemente legibles y entendibles para el humano, ya que los tags para cada caso son en general elegidos de tal forma que mantengan una relación con el contenido que encierran dentro de un documento. Desde que fue lanzado en 1995, se han desarrollado muchos lenguajes en base a XML, pudiendo ser clasificados principalmente en los orientados a aplicaciones y los orientados a tecnología. A continuación mencionaremos algunos que se encuentran en esta última categoría, como ser XHTML, SOAP WSDL, RSS y ATOM, pero más adelante veremos algunos de aplicaciones como ser RDF y OWL. Con el objetivo de validar, procesar y transformar documentos XML, se han desarrollado una gran variedad de herramientas, pudiendo mencionar archivos DTD (Document Type Definition) o archivos XSD (XML Schema Definition) para las especificaciones, lenguajes de consulta como ser XPath y XQuery, y lenguajes de transformación como ser XSL y XSLT. Estos junto a XML forman la base tecnología para los Existen diferentes componentes relacionados al XML. Aquí lenguajes mencionados anteriormente. podemos ver algunos de estos.
33
Podemos encontrar más información sobre las recomendaciones de tags en el sitio de W3C (http://www.w3.org/MarkUp/#recommendations) e información detallada sobre XML en (136).
101
TFG: Análisis de la tendencia Web 2.0, y su aplicación a la relación cliente-empresa IUA Ingeniería de Sistemas – Marco Teórico Existen también plataformas enteras basadas en XML, como ser BizTalk, RosettaNet y ebXML que utilizan herramientas y lenguajes para especificar proceso de negocios y documentos. Los documentos de XML deben estar bien formados, es decir, cada tag debe tener apertura y cierre en el mimo nivel. Es por esto que los documentos se estructuran en arboles, y una serie de características de XML se derivan de esto. Por ejemplo, la búsqueda de un tag específico en un documento se basa en buscar el camino en la estructura de nodos del árbol. Podemos decir que los tags definen elementos. Podemos ver un ejemplo de un código XML aplicado para el caso anterior del catalogo de DVD. <Title>Catalogo de DVD <Title>Le Fabuleux destin d'Amélie Poulain http://www.imdb.com/title/tt0298228/B0000A02Y4Jean-PierreJeunetAudreyTautou2001 <Title>The Lord of the Rings: The Fellowship of the Ring http://www.imdb.com/title/tt0120737/B00005U515PeterJacksonElijahWoodIanMcKellen2001
102
TFG: Análisis de la tendencia Web 2.0, y su aplicación a la relación cliente-empresa IUA Ingeniería de Sistemas – Marco Teórico Podemos ver que la estructura del documento está bien formada, y notamos que si bien no hay semántica definida para los elementos, el documento es fácil de entender para un lector humano, lo que es visto como una de las ventajas del XML. Aquí el elemento catalogo contiene dos elementos DVD, pudiendo ver claramente sus elementos titulo, director, actores y año. Los documentos XML pueden ser restringido en el uso de los esquemas de formatos, definiendo estos cuales elementos pueden ser usados en un documento, que atributos pueden tener, y como los elementos deben ser anidados. Continuando con nuestro ejemplo, vamos a restringir que un catalogo pueda solamente contener DVDs, a través de la especificación del esquema en un archivo DTD.
DVDCatalog (Title, DVD+)> DVD (Title, IMDBLink, ASIN, Directors, Actors, Year)> DVD category CDATA #REQUIRED language CDATA #REQUIRED> Director (PERSON)> Actors (PERSON+)> Person ((Lastname, Firstname) | (Firstname, Lastname))> IMDBLink (#PCDATA)> ASIN (#PCDATA)> Title (#PCDATA)> Year (#PCDATA)> Lastname (#PCDATA)> Firstname (#PCDATA)>
En este documento DTD indicamos que como un subelemento de DVDCatalog, un documento válido debe tener un titulo y al menos un DVD (indicado con el signo +). A su vez, un DVD debe tener título, el link de IMDB.com, el ASIN (Amazon Standard Identification Number, posteriormente utilizaremos este dato), directores, actores y año. Los DVDs también pueden tener atributos, pueden o no tener director, deben tener al menos un actor, y cada uno de los valores es del tipo PCDATA (Parsed Character Data). Podemos notar que el elemento persona consiste en dos subelementos nombre y apellido. Podemos verificar claramente que el documento XML del catalogo cumple con este DTD. Como mencionamos anteriormente, existen muchos lenguajes basados en XML, y son especificados utilizando DTDs. Un ejemplo de esto es XHTML 34 (Extensible Hypertext Markup Language), que es una reformulación de HTML en un formato XML. Es llamado “extensible” porque utiliza la construcción de nombres de dominio35 de XML para permitir que otros lenguajes basados en XML puedan ser incluidos en el código. En nuestro ejemplo hemos elegido los nombres de los elementos y sus atributos, para dar una estructura de datos para nuestro catalogo, haciéndola coincidir con la información que queremos almacenar en el documento. Sin embargo, no hemos dado instrucciones de cómo debe ser 34
Podemos encontrar información sobre el DTD de XHTML en (137) y más sobre el lenguaje en (135).
35
Hablaremos más sobre nombres de dominio de XML más adelante, cuando tratemos el tema de Web services.
103
TFG: Análisis de la tendencia Web 2.0, y su aplicación a la relación cliente-empresa IUA Ingeniería de Sistemas – Marco Teórico representada esta información, logrando la separación de contenidos que habíamos mencionado antes. Un navegador por lo tanto no sabrá cómo interpretar este documento como una página web. Más adelante veremos cómo podemos agregar información de presentación a un documento XML, y como la misma técnica puede ser utilizada para dar formato al contenido de un documento HTML con los archivos de estilo. 3.8.2.4. CSS Los estilos CSS (Cascading Style Sheets) permiten la definición de estilos para elementos de documentos estructurados. Esto implica que es posible aplicar CSS36 a archivos XML y HTML. Vemos a continuación un ejemplo de ambos casos. 3.8.2.5. CSS y XML Como mencionamos antes, los documentos XML no tienen una semántica predefinida, y por tanto los navegadores no saben cómo interpretarlos. Utilizando CSS podemos definir la forma en deben ser presentados los elementos. Veamos un ejemplo para el caso del catalogo: DVDCatalog { display: block; margin: 5px; width: 500px; } Title { display: block; padding: 0.1em; margin-top: 0.1em; } DVDCatalog > Title { font: bold large sans-serif; text-align:center; } DVD > Title { font: large sans-serif; background-color: silver; } DVD { display: block; font: normal medium sans-serif; } Person { display: inline; } Director > Person:before { content:"Director: ";
36
En los puntos siguientes mostraremos solo algunas aplicaciones de CSS con poco detalle. Para más información es posible consultar (138).
104
TFG: Análisis de la tendencia Web 2.0, y su aplicación a la relación cliente-empresa IUA Ingeniería de Sistemas – Marco Teórico } Actors:before { content:"Actores: "; } Actors { display: block; } Year { display: none; IMDBLink, ASIN{ display: none; }
Como podemos notar, el archivo consiste de secciones de la forma “selector {propiedad:valor;}. ”. Pueden incluirse muchos pares de propiedades y valores dentro de las llaves, y el significado de la sección de un selector es el siguiente: Todos los elementos que son del tipo “selector” serán mostrados utilizando las propiedades y valores incluidos en las llaves. En el código mostrado anteriormente, la primera sección define las reglas para el elemento DVDCatalog. Donde sea que ese elemento sea encontrado, se mostrara como un bloque de 500 pixeles de ancho y un margen de 5 pixeles en todas las direcciones. La segunda sección define las reglas para Title en una forma similar, y notamos que este se aplica para todos los títulos, es decir, los el titulo del catalogo y los títulos de los DVD. Pero para diferenciar a estos dos, las secciones 3 y 4 tienen selectores un poco más avanzados, como ser DVDCatalog -> Title indica el titulo correspondiente al catalogo, mostrándolo con letras en negrita, mientras DVD -> Title lo muestra con fondo gris. Vemos algo similar en el caso de Director -> Person:before, que usa además el pseudo-elemento before, indicando que antes que un elemento de este tipo se muestre, se debe aplicar formateo adicional. Sin embargo, la propiedad content permite que texto adicional se muestre antes del elemento. Usamos este selector para mostrar “Director:” antes del nombre del director. Un texto similar es mostrado antes de Actors para mostrar “Actores:” antes de la lista de actores. En general, los pseudo-elementos son implícitamente aplicables cuando existe un elemento ordinario. Otros pseudo-elementos seleccionan la primera letra o la primera línea de un elemento que contiene texto. La última sección especifica que el IMDBLink y el ASIN no se muestren. Los otros bloques tienen selectores de una de las formas comentadas y definen estilos para otros elementos de este documento XML. Ahora que hemos definido un archivo de estilo CSS, debemos indicarle al navegador que debe utilizarlo para darle formato al momento de mostrar el archivo XML, y para esto insertamos la siguiente línea luego de la primera línea del archivo XML:
El atributo media indica que el archivo CSS relacionado en href debe ser utilizado cuando se muestra el archivo XML en pantallas de alta resolución y a color (screen). Existen muchos tipos de media, como ser handeld para pantallas pequeñas con ancho de banda limitado, y print para presentaciones formateadas para ser impresas.
105
TFG: Análisis de la tendencia Web 2.0, y su aplicación a la relación cliente-empresa IUA Ingeniería de Sistemas – Marco Teórico Si abrimos el archivo XML en un navegador podremos verlo con el formato deseado. Como podemos ver un archivo CSS puede permitir que un archivo XML sea mostrado en Internet, aunque no es común publicarlos de forma tan directa. Una razón de esto es que los archivos XML pueden llegar a tomar un gran tamaño y por tanto en general son Ilustración 41: Ejemplo de uso de XML con CSS. guardados en bases de datos., y en general no Resultado al ejecutar el archivo XML con un estilo CSS hace flat amostrar todos los datos que asociado en un navegador podrían incluirse en un archivo XML (por ejemplo, muy rara vez sería necesario mostrar todos los elementos de un catalogo de DVD). Por tanto es común que solo se seleccionen ciertas partes o incluso que se integran distintas fuentes de datos en una página web. Para hacer esto, los datos guardados en formato XML en bases de datos son accedidos mediante lenguajes de consulta como ser XSLT o XQuery 37(Melton and Buxton, 2006), con el objetivo de construir una página XHTML o HTML. Por tanto, es mucho más común agregar hojas de estilo a documentos HTML, y a continuación veremos cómo se realiza esto. 3.8.2.6. CSS y HTML Para ejemplificar la aplicación de CSS sobre archivos HTML, podemos volver al primer ejemplo planteado donde explicábamos el concepto de tags. Para poder utilizar CSS de forma más completa, vamos a remplazar las partes de representación del archivo, como ser tals tablas, por contenedores
anidados. Estos elementos generar bloques de texto sin dar mayor información sobre la semántica del bloque. Por tanto, los tags div deben ser utilizados cuando no hay un tag semánticamente significativo que pueda usarse. Como veremos en el ejemplo a continuación, también hemos borrado otros elementos de presentación, como ser colores de fondo, y remplazamos la indicación del texto en negrita por el tag
. A su vez, al div que remplaza la tabla le asignamos el atributo class con el valor de DVDCatalog, y así respectivamente con otros. Y a su vez, de la misma forma en que lo hicimos con el archivo XML, relacionamos al documento con la hoja de estilos agregando una línea de código, esta vez incluida en la cabecera del código HTML. Catalogo de DVD <meta name="author" content="Juan Ortiz">
37
Para más información sobre consultas sobre datos XML es posible consultar (139).
106
TFG: Análisis de la tendencia Web 2.0, y su aplicación a la relación cliente-empresa IUA Ingeniería de Sistemas – Marco Teórico
Director: Peter Jackson Actores: Elijah Wood, Ian McKellen
Y a continuación incluimos el código del archivo CSS correspondiente, donde podemos ver claramente como se ha logrado una separación del contenido y la presentación. El primer selector define que todo texto en el documento debe ser mostrado con la familia de tipografías sans-serif a menos que sea sobrescrito por otro selector mas especifico. El segundo selector usa la notación de punto que significa que todos los elementos div que pertenecen a la clase DVDCatalog deben tener 500 pixeles de ancho y 5 pixeles de margen, y utilizamos el mismo constructor para dar estilo al selector div.DVDHead. * { font-family: sans-serif; } div.DVDCatalog { margin: 5px; width: 500px; } h1 { text-align: center; } h2 { font: bold large sans-serif; display: inline; background-color: transparent; } div.DVDHead { padding: 0.2em; margin-top: 0.3em; background-color: silver; }
Ilustración 42: Ejemplo de uso de HTML con CSS. Resultado al ejecutar el archivo HTML con un estilo CSS asociado en un navegador.
El resultado es una página similar a la que vimos inicialmente, siendo la única diferencia visible la tipografía. Pero lo importante es que en este segundo ejemplo tenemos una estructura interna más clara, y que puede ser adaptada con facilidad a diferentes usos. 107
TFG: Análisis de la tendencia Web 2.0, y su aplicación a la relación cliente-empresa IUA Ingeniería de Sistemas – Marco Teórico Aunque los ejemplos mostrados son pequeños, muestran con claridad las diferencias en el uso apropiado y el uso apropiado de HTML. El agregado de CSS y su consecuente uso lleva a códigos con más significado semánticamente, y esto es algo esencial en proyectos grandes, siendo que prácticamente ningún sito hoy en día puede darse el lujo de no aplicar esta separación de presentación y contenidos.
3.8.3. Tecnologías de scripting. A continuación analizaremos las posibilidades que brindan las diferentes tecnologías de scripting disponibles en la actualidad, con el objetivo de realizar consideraciones como desarrollar contenidos de Internet interactivos y dinámicos. Los análisis realizados sobre HTML, XML y CSS serán de utilidad para esto. Es necesario discutir sobre estas tecnologías primero, para posteriormente poder utilizar los conceptos como base para las principales tecnologías que dan soporte a aplicaciones que brindan experiencias enriquecidas para el usuario, uno de los patrones de Web 2.0. Considerando el modelo cliente-servidor, es importante observar que mientras toda la información incluyendo programas se almacena en los servidores, dichos programas pueden ser ejecutados en ambas partes. Un navegador ejecutara típicamente código HTML mientras que el servidor realizara distintas funciones que darán como resultado contenido HTML. En ambos casos se ha vuelto una práctica común el uso de lenguajes de scripting, también llamados lenguajes de programación de scripting: lenguajes que típicamente son interpretados, y que en general se distinguen porque no tienen la necesidad de ser compilados para ser ejecutados, sino que se mantiene como código fuente siendo interpretados línea por línea cada vez que son ejecutados. Podemos también referirnos al código de lenguajes de scripting simplemente como “scripts”. Por tanto, hablamos de scripting en el cliente si utilizamos un lenguaje de scripting para mejorar el código HTML interpretado por un navegador. La aplicación principal de esto es realizar páginas más dinámicas, como veremos más adelante. En este punto acotaremos nuestra visión y análisis al caso de Javascript38, un lenguaje de scripting orientado a objetos. En general el servidor entregara código HTML con código Javascript embebido, y el cliente lo reconocerá cuando este procesando el documento, realizando la ejecución del código. En este sentido es importante aclarar que esta práctica lleva a que el código quede publicado abiertamente, por lo que podemos decir que el scripting de cliente es intrínsecamente open source. Por otra parte, hablamos de scripting en el servidor cuando se utiliza código para la generación de contenidos en base a HTML de forma dinámica en el servidor. En general se realizan conexiones a bases de datos, adaptando las respuestas a las necesidades del cliente. Existen muchas tecnologías que cumplen esta función y son ampliamente utilizadas, como ser ColdFusion, Java Server Pages, Javascript en el lado del servidor, Ruby y PHP. En este análisis desarrollaremos ejemplos utilizando PHP y Javascript, con lo cual podremos abarcar el concepto. 38
El lenguaje ha sido desarrollado por Netscape, y es importante aclarar que no tiene relación alguna con el lenguaje Java de Sun Microsystems. Podemos encontrar más información sobre el lenguaje en https://developer.mozilla.org/en/About_JavaScript
108
TFG: Análisis de la tendencia Web 2.0, y su aplicación a la relación cliente-empresa IUA Ingeniería de Sistemas – Marco Teórico En general el scripting en el servidor se realiza en base al protocolo CGI (Common Gateway Interface). Este protocolo implica una comunicación entre ambas partes, realizando básicamente lo siguiente: 1. El cliente provoca una ejecución de un script CGI en el navegador, en general con parámetros tomados de un formulario 2. El servidor reconoce esto e inicia el programa CGI, que puede realizar acciones arbitrarias (como ser el acceso a una base de datos), pero luego genera código XHTML que es enviado al navegador. 3. El cliente interpreta el código y genera la nueva página. Las llamadas CGI requieren una copia del programa, que en el caso de los scripts es el intérprete del lenguaje de scripting, para correr pada petición. 3.8.3.2. Scripting en el cliente El igual que lo realizado en el caso de HTML, analizaremos un ejemplo de la aplicación de lenguajes de scripting en el cliente para poder acercarnos al concepto. Podemos aprender más sobre las aplicaciones de Javacript en las referencias mencionadas anteriormente. Para embeber código Javacript en un documento HTML se utilizan los tags <script>, indicando que el código incluido entre ellos no debe ser interpretado como HML, algo similar a lo que analizamos en el caso de códigos CSS. También es posible incluir el código en un archivo separado de extensión ”.js”, relacionado mediante la propiedad src del tag <script>. Veamos a continuación un ejemplo para demostrar su uso. Si recordamos, hemos estructurado los contenidos del catalogo en bloques div. Ahora haremos a la pagina un poco más dinámica, haciendo que estos bloques se colapsen o se expandan a través de un click, ocultando y mostrando por tanto la información que contienen, pero sin necesidad de que haya que recurrir el servidor para lograr esto (una de las propiedades del scripting de cliente, como mencionamos antes). Catalogo de DVD <meta name="author" content="Juan Ortiz"> <script type="text/javascript"> function toggleDVDDisplay(id) { var contentElement = document.getElementById(id); if (contentElement.getAttribute('expanded')=='false') { contentElement.style.display = 'block'; contentElement.setAttribute('expanded', 'true'); } else { contentElement.style.display = 'none'; contentElement.setAttribute('expanded', 'false'); } }
109
TFG: Análisis de la tendencia Web 2.0, y su aplicación a la relación cliente-empresa IUA Ingeniería de Sistemas – Marco Teórico
Director: Peter Jackson Actores: Elijah Wood, Ian McKellen
Podemos notar tres cambios: El tag script en la cabecera, el cambio en el elemento div de la clase DVDHead, y el agregado de un nuevo div que envuelve los contenidos de un DVD. Podemos ver como entre los tags script de la cabecera HTML se define una función toggleDVDDisplay, que toma el parámetro id como input. Al igual que en otros lenguajes, los bloques de código son limitados por llaves. La segunda línea define la variable contentElement a la cual se le asigna el resultado de la llamada a la función document.getelementById(id). El objeto document es la pagina web actual, por lo que esa función traerá como resultado una vinculación con el objeto que lleve por nombre el valor de id. La tercer línea abre un bloque de if-then-else que cambia dependiendo del valor del atributo expanded. Si el objeto esta expandido, lo colapsara (líneas 4 y 5), y si está colapsado lo expandirá (líneas 7 y 8). El siguiente paso una vez que entendemos la pequeña función, es comprender como es ejecutada y como es que recibe el valor de input. Ahora cada cabecera de DVD tiene el atributo onClick=”toggleDVDDisplay(‘VALOR’), tiendo el valor el numero ASIN el identificador único del DVD según Amazon que mencionamos inicialmente. El atributo onClick es lo que se llama “atributo de evento intrínseco”, y permite que un script sea ejecutado cuando el evento “Click” ocurre en el elemento donde está incluido. De esta forma, se ejecuta la función y se le envía como parámetro el ID del elemento que esta signado en los div que envuelven a la clase DVDContent, el tercer cambio que hemos mencionado. Cuando se ejecute la función al hacer click en el titulo del DVD, se evaluara si el div cuyo id es enviado se encuentra colapsado o expandido, actuando de manera consecuente, y por tanto mostrando u ocultando el contenido de dicho div.
110
TFG: Análisis de la tendencia Web 2.0, y su aplicación a la relación cliente-empresa IUA Ingeniería de Sistemas – Marco Teórico 3.8.3.3. Document Object Model y Dynamic HTML Este pequeño script accede a partes del documento HTML, para tomar los valores de variables que representan atributos HTML, y para definir los estilos de los elementos. Esto no lo hace directamente manipulando los tags HTML y sus contenidos, sino que lo hace a través de objetos que se encuentran presentes en el contexto del script ejecutado. En efecto, hemos mencionado al objeto document que contiene la pagina en sí, y esto nos da pie para analizar la relación de un documento HTML y el DOM39 (Document Object Model), que es la descripción que le indica al navegador como debe representar el árbol de HTML como un conjunto de objetos, con relaciones entre estos y métodos para acceder a esos objetos a través de varias estructuras. Es justamente el DOM el que le da a un script la posibilidad de trabajar con los elementos de una página web. Podemos ver una parte del DOM de nuestro ejemplo de catalogo utilizando un plugin del navegador Firefox llamado DOM Inspector. Podemos ver el nodo de datos correspondiente con su clase y sus propiedades de estilo en el lado derecho de la imagen, y notamos como el elemento que analizamos se remarca en un rectángulo. El objeto document el objeto que contiene la pagina web, y hemos utilizado su método getelementById(id) para seleccionar elementos a través de sus identificadores. Como los identificadores son únicos, es una forma conveniente de seleccionarlos. Existen otras funciones que devuelven elementos, como ser getelementByClassname y GetelementsByName, aunque se diferencian en que pueden devolver más de un elemento ya que los nombres pueden repetirse, mientras que los identificadores únicos no.
Ilustración 43: Estructura DOM con DOM Inspector en Firefox. Utilizando el DOM Inspector del navegador Firefox podemos ver la estructura DOM de nuestro ejemplo.
Es importante mencionar que la combinación de HTML, CSS, scripting de cliente (generalmente Javascript) y DOM toma el nombre colectivo de DHTML (Dynamic HTML). Esto es para acentuar que esta combinación es considerablemente más que el solo HTML, que queda estático una vez que fue cargado. Utilizando HTML para los contenidos, CSS para los estilos, scripting para lógica de programación, y DOM para funcionar como pegamento entre los tres anteriores las paginas pueden cambiar su apariencia en base a eventos pero sin realizar peticiones al servidor y por tanto, sin recargar la página entera. 39
Podemos encontrar las especificaciones del estándar por W3C en http://www.w3.org/DOM/
111
TFG: Análisis de la tendencia Web 2.0, y su aplicación a la relación cliente-empresa IUA Ingeniería de Sistemas – Marco Teórico El termino Dynamic en DHTML no incluye un cambio en el HTML de la pagina. Una vez que fue cargado, su apariencia efectivamente puede ser manipulada, pero sus contenidos siguen siendo los mismo. Y por tanto, cuando necesitemos cambiar algo de los contenidos HTML, será necesario realizar un pedido al servidor y recargar la pagina. Para liberarnos de esta restricción, necesitamos un mecanismo que permita realizar cargas de pedazos de código HTML, sin necesidad de cargar toda la pagina. Esto es exactamente lo que Ajax ofrece, y analizaremos esta tecnología posteriormente. Dynamic tampoco se refiere a páginas que son diferentes cada vez que son visitadas y que son diferentes para cada usuario. Esas páginas son dinámicas en el sentido que utilizan diferentes fuentes de datos y aplican scripting de servidor para adecuar los contenidos al usuario particular. Para lograr esto veremos a continuación el scripting en el servidor.
3.8.4. Scripting en el servidor Básicamente, un cliente realiza una petición de una página web enviando una URL (y quizás algo de información extra, como ser por ejemplo los datos ingresados en un formulario por el usuario) (1). Luego el servidor ejecuta un script de servidor (como ser en el lenguaje PHP 40 utilizando un intérprete de PHP.) (2). Este script puede interactuar con una base de datos u otra fuente de datos externa como ser un archivo XML (en donde los datos del posible formulario pueden ser guardados, o donde se puede obtener datos adicionales) (2 y 4). Luego el intérprete de PHP genera código HTML (5) y este es enviado al cliente (6). SERVIDOR
CLIENTE
SERVIDOR WEB
URL + datos de formulario
1
6
Script PHP
Salida del servidor web Catalogo de DVD
Catalogo de DVD
Fuente de datos externa
2
3
4
Procesador de PHP
5
Ilustración 44: Scripting de servidor con PHP.
40
Podemos encontrar más información sobre PHP en http://www.php.net/
112
TFG: Análisis de la tendencia Web 2.0, y su aplicación a la relación cliente-empresa IUA Ingeniería de Sistemas – Marco Teórico 3.8.4.2. PHP con fuente de datos. Volviendo a la imagen anterior, podemos ver una porción de código PHP. Si no fuera por las líneas entre ?>, el código se comportaría como HTML ordinario, pero estas contienen código PHP embebido. El resto de las líneas son HTML común. Una vez procesado por el interprete y ejecutados los scripts, se obtendrá como salida un archivo con contenido HTML pero con extensión .php. En realidad, incluso un archivo enteramente HTML guardado como .php funciona como un archivo PHP valido., ya que el interprete solo busca el código PHP entre los limites mencionados anteriormente, dejando el código HTML intacto. Analizando ahora brevemente los segmentos de código PHP, podemos encontrar que la primera línea es echo $pageTitle, siendo echo una función que simplemente imprime los parámetros que lo siguen, como ser en este caso una variable. La segunda línea es similar solo que contiene otra variable $pageHeader. Vale aclarar que el código de la imagen no muestra como estas variables obtuvieron sus valores, pero podemos asumir que fueron tomados de una fuente de datos externos, como ser una base de datos, por tanto la salida del intérprete luego de aplicar la función echo muestra sus valores, siendo por ejemplo “Catalogo de DVD” el valor de la variable $pageTitle. Y es interesante notar que ante la vista del cliente será imposible detectar que partes del código estaban presentes anteriormente en HTML y cuales son contenidos HTML generados sin llegar a ver nunca el código PHP, lo que hace un fuerte contraste con el caso del scripting de cliente, donde el script si queda publicado. Podemos ver a continuación el ejemplo de nuestro catalogo de DVD utilizando PHP y nuestro primer ejemplo de archivo XML como fuente de datos: $dom = new DomDocument(); $dom->load("catalogo.xml"); $xp = new domxpath($dom); $title = $xp->query("/DVDCatalog/Title"); printDocumentHead($title->item(0)->nodeValue); $dvds = $xp->query("/DVDCatalog/DVD"); foreach ($dvds as $node) { $asin = getSubNodeContent($node, 'ASIN'); $imdbLink = getSubNodeContent($node, 'IMDBLink'); $title = getSubNodeContent($node, 'Title'); $year = getSubNodeContent($node, 'Year'); $director = getFullNamesOfPersons( $node->getElementsByTagName('Director')->item(0)); $actors = getFullNamesOfPersons( $node->getElementsByTagName('Actors')->item(0)); printDVD($asin, $imdbLink, $title, $year, $director, $actors); } printDocumentFoot(); function printDocumentHead($titleText) { ?>
113
TFG: Análisis de la tendencia Web 2.0, y su aplicación a la relación cliente-empresa IUA Ingeniería de Sistemas – Marco Teórico <meta name="author" content="Juan Ortiz"> <script type="text/javascript"> function toggleDVDDisplay(id) { var contentElement = document.getElementById(id); if (contentElement.getAttribute('expanded')=='false') { contentElement.style.display = 'block'; contentElement.setAttribute('expanded', 'true'); } else { contentElement.style.display = 'none'; contentElement.setAttribute('expanded', 'false'); } }
} function printDocumentFoot() { ?> } function printDVD($asin, $imdbLink, $title, $year, $director,$actors){ echo '
Claramente este ejemplo es más largo y complejo que otros analizados anteriormente por lo que nos detendremos un poco en varias de sus partes, aunque es importante recordar que esta parte 114
TFG: Análisis de la tendencia Web 2.0, y su aplicación a la relación cliente-empresa IUA Ingeniería de Sistemas – Marco Teórico del marco teórico no pretende ser un manual de PHP, sino que tan solo pretende esbozar la funcionalidad de los scripts de servidor. El último bloque del ejemplo define una función, y podemos notar que la forma de realizar la definición es muy similar a la utilizada en javascript. La función getSubNodeContent toma los parámetros $node y $subNodeName y tomaran un nodo del documento XML y el nombre del nodo vinculado respectivamente. Al igual que en Javascript, en PHP no hay tipos de variables acompañando las variables, ya que esto es opcional en PHP al ser un lenguaje de programación dinámicamente escrito. La función contiene una sola línea de código con el comando return, indicando que el resultado del código de la línea es el valor devuelto por la función. Por tanto, cuando la función es llamada, el valor de retorno se calculara y se devolver a al lugar donde la función haya sido llamada. El resto de las líneas contienen el acceso a un objeto que se espera este en $node. El símbolo -> indica por un lado que $node es un objeto, y por otra parte que su función getElementByTagName debe ser llamada, obteniendo como parámetro el nombre del nodo vinculado. Esta función devolverá este nodo, que a su vez es un objeto, sobre el cual se usa nuevamente el símbolo –> para extraer los ítems de un arreglo que a su vez son objetos, de los cuales se obtiene el valor $nodeValue que contiene el valor del nodo. Al igual que en el ejemplo de Javacript donde accedimos al DOM del HTML, estamos utilizando ahora PHP y su modelo DOM para acceder a los contenidos del archivo XML. Analizamos otra función, como ser el caso de getFullNamesOfPersona($personList). Esta toma un nodo de XML que contiene personas y devuelve sus nombres y apellidos separados por comas. Podemos recordar que el archivo DTD definido para este archivo XML definía esta estructura permitiendo que Firstname y Lastname se encontraran en orden indistinto. A su vez el nodo persons se encuentra como nodo vinculado a nodos Director donde exactamente una persona debe estar y el nodo Actors. El árbol transversal que esta función necesita es por tanto un poco más complejo que la que se presenta en el caso de getSubNodeContent. Primero, getElementByTagName(‘Person’) guarda todas las personas en $persons(como probablemente más de un elemento será devuelto, $persons es un arreglo). Las siguientes líneas hacen un ciclo de código recorriendo el arreglo para construir un segundo arreglo, que contiene los nombres de las personas en primer lugar y luego los apellidos. Podemos notar que ninguna variable fue definida previamente, y si bien esta práctica no es recomendable, PHP lo permite ya que crea las variables con el tipo de variable que considera necesaria a medida que se van llamando. La última línea devuelve el arreglo en forma de cadena de texto utilizando la función implode, uniendo los elementos del arreglo con una coma. Podemos notar que estas dos funciones discutidas hasta el momento no generan nada de código HTML, sino que solo devuelven valores y objetos. Las otras tres funciones que restan son las encargadas en este caso de generar el código HTML, y notamos que tanto printDocumentHead($titleText) y printDocumentFoot() son simples de comprender, siendo que imprimen en HTML las partes superiores e inferiores de la pagina. La última función por analizar es printDVD, que toma 5 parámetros conteniendo la información de un DVD. Todas las líneas comienzan con el comando echo, lo que generara la impresión de lo que contienen, y podemos observar los parámetros directamente incluidos en las variables. 115
TFG: Análisis de la tendencia Web 2.0, y su aplicación a la relación cliente-empresa IUA Ingeniería de Sistemas – Marco Teórico Para hacer que todo funcione, debe existir algún tipo de programa principal que haga uso de estas funciones para generar así el archivo, y eso es lo que hemos definido en las primeras líneas del código fuente Las cuatro primeras crean e inicializan tres variables que permiten acceder al archivo XML y procesarlo, para asi poder utilizarlo como una fuente externa de datos. La variable $dom es inicializada como el DOM del documento mediante $dom = new DomDocument() u el archivo XML es cargado en el documento mediante $dom->load(“catalogo.xml”). La siguiente línea crea un objeto $xp de tipo DOMXPath que puede ser usado para realizar consultas al DOM con una expresión de consulta del lenguaje XPath como es mostrado en los consiguientes bloques. El siguiente comienza con la expresión de Xpath /DVDCatalos/DVD que selecciona todos los elementos DVD vinculados con el elemento DVDCatalog, quedando ahora guardado en $dvds un arreglo de nodos de DVD. El resto del programa principal se encarga de la generación del código HTML, y una vez que la cabecera es generada pro printDocumentHead (que contiene todos los datos e cabecera incluyendo los códigos Javascript vistos antes), un ciclo foreach recorre el arreglo de DVDs y ejecuta el código en cada ciclo para cada DVD contenido en $dvds. Ahora la función $getSubNodeContent y la función $gerFullNamesOfPersons son usadas para preparar las variables para la salida del código de un DVD. Por ejemplo, la variable $asin es llenada con el contenido del elemento ASIN. Al finalizar cada ciclo, se llama a la función printDVD generando el código para cada uno. Finalmente una vez generados todos los DVDs del archivo XML, se imprime el pie de página cerrando el código HTML. Cuando se corre el script (o más bien, cuando su URL se ingresa a un navegador) los comandos PHP se ejecutaran como se ha explicado, y el resultado será entregado al cliente. Y notaremos que le resultado tiene el mismo aspecto que el devuelto en el caso del ejemplo de scripts de cliente, y efectivamente para el cliente es el mismo, ya que el código HTML será en este caso idéntico, solo que creado de forma dinámica por el servidor.
Ilustración 45: Ejemplo de uso de PHP, HTML y JavaScript. Si observamos el código fuente del resultado del archivo PHP notaremos que solo contiene código HTML y Javascript, y por tanto es prácticamente el mismo resultado que vimos anteriormente en el caso de scripting de cliente.
116
TFG: Análisis de la tendencia Web 2.0, y su aplicación a la relación cliente-empresa IUA Ingeniería de Sistemas – Marco Teórico Hemos visto como CSS nos da un mecanismo para dar formato y estilos a HTML y a XML, de tal forma que el primero puede ser formulado sin aspectos de presentación y el último puede ser presentado de forma apropiada. Luego las tecnologías de scripting nos dieron dos formas de comportamiento dinámico: el scripting de cliente nos brinda Dynamic HTML permitiendo cambios en la presentación sin la necesidad de cambios en el HTML (y por tanto si necesidad de hacer peticiones al servidor que generarían la recarga de la pagina) y el scripting de servidor que permite la creación dinámica de HTML y conexiones a fuentes de datos para entregar código HTML en base a las necesidades del cliente. Posteriormente analizaremos la tecnología Ajax, que en cierta forma combina estas dos ideas de scripting, para poder tomar el paso siguiente a presentaciones dinámicas y contenidos dinámicos.
3.8.5. Aplicaciones Web de XML A continuación analizaremos dos aplicaciones importantes de XML en más detalle. Primero, discutimos sobre Web services, que son comúnmente basados en estándares que hacen un fuerte uso de XML para descripción, publicación ejecución y otros propósitos correspondientes a servicios. Luego analizaremos RSS y ATOM, que son dos formatos basados en XML para la sindicación de contenidos y la subscripción a contenidos. Ambos ejemplo utilizan una gran variedad de características de XML y representan aplicaciones que son ampliamente utilizadas para dar base a los recursos Web 2.0. Por tanto, sirven como buenas ilustraciones de lo que es posible hacer con XML, y da idea de otras posibles explotaciones. 3.8.5.2. Web Services Los Web services extienden el paradigma cliente-servidor con la noción de un registro explicito, resolviendo el problema de localizar un servicio de una forma apropiada para Internet. Un servicio (cliente) cuando busca un servicio envía una petición a un registro de servicios. Si el servicio buscado es encontrado, el cliente puede contactar al proveedor del servicio y utilizar dicho servicio. La situación y el procedimiento son similares al caso de buscar un servicio en la vida real al consultar una guía (como ser, las Páginas Amarillas) para ver las alternativas disponibles, elegir Ilustración 46: El Paradigma de los Web services. uno y contactarse. El proveedor ha publicado previamente su servicio (o servicios) en el registro. Por lo tanto, los Web services ocultan todos los detalles de su implementación y las plataformas en los cuales están basados, y simplemente muestran una URI (Uniform Resource Identifier) que apunta a su proveedor. Como en general se supone que los Web services son interoperables, estos pueden ser combinados con otros servicios para crear nuevas aplicaciones con más funcionalidades.
117
TFG: Análisis de la tendencia Web 2.0, y su aplicación a la relación cliente-empresa IUA Ingeniería de Sistemas – Marco Teórico Publicar, encontrar y vincular Web services Interacción del servicio: son actividades realizadas por solicitantes de WS-Choreography, WS-Coordination, WS-Transaction servicios y proveedores que usan estándares específicos. En la capa más baja utilizan Composición del servicio: WSFL, BPEL transporte ordinario de redes, luego Publicación y descubrimiento del servicio: UDDI encontramos el protocolo HTTP para datos de Internet. Sobre esto se encuentra el estándar Descripción del servicio: WSDL SOAP 41 basado en mensajes, luego WSDL 42 Mensajes basados en XML: SOAP (Web Services Description languagues) es utilizado para la descripción de los servicios y Red: HTML finalmente encontramos al UDDI43 (Universal Description, Discovery and Integration) para la Ilustración 47: Las capas de los estándares de Web services. publicación y descubrimiento.44 En ocasiones es necesario agregar Servicio Servicios de más capas a la estructura, y para esto nivel más alto Funcionalidad Propiedades se construyen encima de UDDI en base a lenguajes como ser WSFL y BPEL que especifican procesos donde Servicio Servicio los pasos en dichos procesos son Funcionalidad Propiedades Funcionalidad Propiedades completados por Web services. Servicios de nivel más bajo Finalmente, varios servicios en acción Ilustración 48: Vista de la orientación a servicios. necesitan algún tipo de Solicitante del servicio Proveedor del servicio coordinación o garantías Objeto Aplicación Objeto Aplicación transaccionales, lo que es (Proveedor del servicio) (Cliente) Esqueleto posible a través de estándares Stub como WS-Coordintation y WSTransaction. Mensajes SOAP Middleware Middleware Mencionamos antes que la orientación a servicios es en efecto un paradigma fundamental en base a la idea de que una funcionalidad compleja puede ser separada en una colección de servicios
basado en SOAP
basado en SOAP Mensajes SOAP (Para buscar servicios) Middleware basado en SOAP
Mensajes SOAP (Para publicar la descripción de servicios)
Registro UDDI Descripciones de servicios Ilustración 49: La Infraestructura de Web services.
41
w3.org/TR/soap/
42
w3.org/TR/wsdl
43
www.uddi.org/
44
Vale notar que si bien UDDI es una especificación en sí mismo, es en realidad la especificación de un Web service descripto utilizando WSDL.
118
TFG: Análisis de la tendencia Web 2.0, y su aplicación a la relación cliente-empresa IUA Ingeniería de Sistemas – Marco Teórico más elementales. Esto ha ganado más interés a medida que las arquitecturas de Software Orientado a Servicios (Service-Oriented Software o SOAs) han ganado popularidad siendo la base para sistemas de larga escala. Los Web services están alineados con la vista de estructura de capas descrita, algo que puede ser encontrado en otros escenarios relacionados la computación (como ser hardware, redes, aplicaciones). El agregado que tienen los Web services es que no están vinculados a un repositorio central, e incluso podemos decir que los proveedores y consumidores de servicios están débilmente acoplados, ya que cada Web service es esencialmente un componente de software individual, teniendo una URI única que puede ser localizada desde cualquier lugar de Internet. Además, WSDL permite la creación automática de “stubs” y respectivamente esqueletos. Como mencionamos los Web services están basados en estándares y utilizan el esquema de repositorio. Muchos otros tipos de servicios que se encuentran en Internet no tienen estas características, pero representan formas modernas de las llamadas a procedimientos remotos, pero lo que los diferencia de los
WSDL del proveedor de servicio Compilador WSDL Compilador WSDL (Cliente) (Servidor) Solicitante del servicio
Proveedor del servicio
Objeto Aplicación (Cliente)
Objeto Aplicación (Proveedor del servicio) Esqueleto
Stub
Middleware basado en SOAP
Mensajes SOAP
Middleware basado en SOAP
Web services es el hecho de Ilustración 50: La Infraestructura de WPC. que pueden ser llamados desde cualquier lugar de Internet, por lo que nos referiremos a los Web services como WPCs (Web Procedure Calls) de ahora en más. Entre estos es posible distinguir si usan una forma estandarizada y formal para describir sus interfaces (como ser WSDL) e incluso algunos pueden o no usar SOAP como su formato de mensajes. Esta diferenciación puede ser apreciada en la imagen. Si las interfaces son formalmente descriptas, stubs y esqueletos pueden ser creados de forma automática. Podemos tomar un ejemplo para acercarnos más al concepto. Cuando analizamos el patrón de diseño Web 2.0 “Modelos ligeros y escalabilidad costo-efectiva” mencionamos el caso de Amazon S3. Este servicio45 procesa datos enviados a través de diversos protocolos, incluyendo SOAP. Existen también formas no basadas en estándares para descubrir S3, por lo que podemos clasificar este servicio como una API que también da soporte a WPCs. En muchos casos las WPCs van más allá de la idea de los Web services: Google ofrecía una API para realizar búsquedas a través de su motor vía WSDL y SOAP, pero ha discontinuado esto en 45
La especificación del servicio de Amazon S3 (un documento WSDL) puede ser encontrada en s3.amazonaws.com/doc/2006-03-01/AmazonS3.wsdl
119
TFG: Análisis de la tendencia Web 2.0, y su aplicación a la relación cliente-empresa IUA Ingeniería de Sistemas – Marco Teórico diciembre del 2006 para ahora ofrecer una API de búsqueda con Ajax46. Entonces por más que nos referimos a esto como un Web Service, es en realidad una API para WPCs en nuestro punto de vista. 3.8.5.3. Un acercamiento a SOAP y WSDL Para mostrar la relación entre Web services y XML, vamos a ver un ejemplo de SOAP y WSDL. Al igual que en otros ejemplos, el objetivo no es observar los detalles de estas especificaciones, sino mostrar y explicar ejemplos para acercarnos al concepto. Continuamos con el ejemplo del catalogo de DVD, pero esta vez no extendemos el ejemplo, sino que preparamos futuros pasos a tomar al observar un ejemplo de un servicio existente, como ser que se utiliza para acceder a la información de Amazon E-Commerce (ECS). Dicha información puede ser utilizada en nuestro ejemplo para aumentar la información de nuestra fuente local de datos e incluirla en el catalogo posteriormente. Esta API puede ser llamada de forma gratuita y es muy popular (en efecto, el sitio ProgrammableWeb indica que la API es utilizada para más de 260 mashups (104)) En base a las consideraciones previas, consideramos que la esta Api da soporte a WPCs únicamente y no a la visión completa de los Web services, pero si utiliza SOAP y WSDL. Es importante destacar que también se puede acceder al servicio a través de su interfaz en base a REST, pero no haremos hincapié en esto ya que hablaremos de este paradigma más adelante. 3.8.5.4. WSDL En la URL http://webservices.amazon.com/AWSECommerceService/AWSECommerceService.wsdl encontramos la descripción WSDL de ECS. Por supuesto este archivo de formato XML es considerablemente largo, por lo que analizaremos solo una pequeña porción: existen 18 operaciones especificadas en este WSDL, pero nosotros solo analizaremos una de estas. Utilizaremos solo la operación llamada ItemLookup que devuelve ítems en base a un ID. A continuación el código relevante a la operación que nos interesa. Vale aclarar que tampoco incluimos el contenido del elemento ya que la definición de tipos es muy prolongada y no es necesaria para el objetivo de nuestro análisis. <definitions xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:tns="http://webservices.amazon.com/AWSECommerceService/2006-11-14" targetNamespace="http://webservices.amazon.com/AWSECommerceService/2006-11-14"> <xs:schema targetNamespace="http://webservices.amazon.com/AWSECommerceService/2006-1114" 46
Podemos encontrar información sobre la API discontinuada en code.google.com/apis/soapsearch/ e información sobre la nueva API basada en Ajax en code.google.com/apis/ajaxsearch.
120
TFG: Análisis de la tendencia Web 2.0, y su aplicación a la relación cliente-empresa IUA Ingeniería de Sistemas – Marco Teórico xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:tns="http://webservices.amazon.com/AWSECommerceService/2006-11-14" elementFormDefault="qualified"/> <message name="ItemLookupRequestMsg"> <part name="body" element="tns:ItemLookup"/> <message name="ItemLookupResponseMsg"> <part name="body" element="tns:ItemLookupResponse"/> <portType name="AWSECommerceServicePortType"> <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/> <soap:operation soapAction="http://soap.amazon.com"/> <soap:body use="literal"/> <service name="AWSECommerceService"> <port name="AWSECommerceServicePort" binding="tns:AWSECommerceServiceBinding"> <soap:address location="http://soap.amazon.com/onca/soap?Service=AWSECommerceService" />
Podemos notar que es básicamente un archivo XML con muchos elementos anidados en el primer nivel dentro de definitions. El anidamiento puede ocurrir entre definiciones de tipos, pero estos han sido omitidos. Antes de ver los elementos anidados, analizaremos los atributos del elemento definitions. 3.8.5.5. Namespaces El atributo xmlns define el nombre de dominio o “namespace” de XML, que representa el mecanismo XML que asegura que ocurran conflictos de interpretación o de significado entre ítems con el mismo nombre. El valor del namespace es una URI que puede (pero no necesariamente debe) contener un link valido (en nuestro ejemplo si es un link valido). El 121
TFG: Análisis de la tendencia Web 2.0, y su aplicación a la relación cliente-empresa IUA Ingeniería de Sistemas – Marco Teórico vocabulario de un namespace puede ser definido utilizando un XML Schema o un archivo DTD, pero no es requerido. El namespace definido por el atributo xmlns es utilizado cuando un elemento en el documento no define explícitamente su namespace. En este caso ninguno de los elementos vinculados en definitions hace esta definición, por lo que todos pertenecen al namespace http://schemas.xmlsoap.org/wsdl/. El atributo targetNamespace denota cual namespace define esta documento. El valor de este identificador nos indica que este es en efecto el ECS de Amaxon.com. Como veremos a continuación, los mensajes SOAP enviados al servicio definido este documento WSDL deben referenciar a este namespace. 3.8.5.6. Estructura de un WSDL Anidados en definitions tenemos a los elementos types, message, portType, binding y service, que se referencian entre ellos a través de atributos contenidos en los sub elementos que podemos ver en la imagen. Un service agrupa bindings, y a través de estos operations. Service y binding son frecuentemente llamados el pegamento de un documento WSDL porque definen la locación y el protocolo vincular del servicio. Aquí, service nos indica que su interfaz SOAP puede ser encontrada en la URL http://soap.amazon.com/onca/soap?Service=AWSECommerceService, mientras que binding nos indica que el servicio utiliza HTTP para transporte al referenciar el namespace de HTML (por ejemplo, http://schemas.xmlsoap.org/soap/http). Binding referencia a portType, que puede ser considerado como un método de interfaz. Aquí podemos ver que la operación ItemLookup tiene ItemLookupRequestMsg como su mensaje de input y ItemLookupResponseMsg como su output. Encontramos también un tercer tipo de mensaje llamado fault que especifica el mensaje en caso de un error. Los elementos de mensaje que son referenciados por portType especifican cual tipo de message utilizan. Para input y output vemos tipos tns:ItemLookup y tns:ItemLookupResponse, y ambos son parte del vocabulario definido en Calificación de namespace Referencia targetnamespace, y así ambos son tipos implícita
que pueden ser encontrados en el elemento Ilustración 51: Relaciones en un archivo WSDL. 122
TFG: Análisis de la tendencia Web 2.0, y su aplicación a la relación cliente-empresa IUA Ingeniería de Sistemas – Marco Teórico types, el primer subelemento de definitions. El elemento types define tipos utilizando XML Schema. Esto puede ser observado en el namespace de xs:schamea, el único elemento en types que hemos mantenido del documento original. Esto indica que es válido como archivo XML Schema al estar anidado en este documento WSDL, especificando los tipos especiales necesitados para la operación ItemLookup y para otras operaciones del documento. Podemos notar que el XML Schema podría también ser referenciado en los elementos types. Obtendremos un pantallazo de lo que el schema especifica para la operación ItemLookup cuando veamos los mensajes SOAP que pueden ser enviados. Como podemos observar de esta explicación, WSDL es un lenguaje complejo que tiene el potencial de describir interfaces a servicios y sus invocaciones. Es común que los Web services provean acceso a su funcionalidad preexistente, por lo que es usualmente posible generar automáticamente la mayor parte de un archivo WSDL que puede entonces necesitar solo algunas configuraciones adicionales para funcionar. A través de esto, un usuario de un WSDL puede utilizarlo para generar un stub del servicio consumidor que este escribiendo. 3.8.5.7. SOAP Analicemos un mensaje SOAP que puede ser enviado a ECS, apuntado a la operación ItemLookup. Como fue especificado en el archivo WSDL el mensaje será enviado sobre HTTP y al puerto SOAP mencionado en dicho archivo. <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:tns="http://webservices.amazon.com/AWSECommerceService/2006-11-14" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <SOAP-ENV:Body> MY_ACCESSKEYASINB0000CABBWSmall
Esto muestra un fuerte uso de namespaces, referenciando a namespaces específicos de SOAP para el mensaje en sí, namespaces de XML Schema (que en este caso no es utilizado) y el namespace de ECS definido en el documento WSDL.
123
TFG: Análisis de la tendencia Web 2.0, y su aplicación a la relación cliente-empresa IUA Ingeniería de Sistemas – Marco Teórico Los namespaces de SOAP definen la estructura del mensaje SOAP, que básicamente es un sobre que contiene una cabecera (opcional) y un cuerpo. Ambos elementos pueden contener múltiples bloques, llamados bloques header y body respectivamente. El cuerpo contiene la carga útil del mensaje, y la cabecera información que puede ser procesada por intermediarios. Estos pueden necesitar esta información para realizar acciones propias, como por ejemplo realizar el seguimiento de una conversación. Como en 6M, por no incluir una cabecera.
Sobre SOAP Cabecera SOAP Block de cabecera Cuerpo SOAP Block de cuerpo
El cuerpo de nuestro ejemplo contiene tan solo un elemento Ilustración 52: Estructura de un mensaje SOAP. (ItemLookup) en base al documento WSDL de ECS. Los elementos contenidos en este lo convierten en un elemento ItemLookup valido, que puede ser validado en base a los schemas para el vocabulario utilizado. La información que enviamos contiene el elemento vacio MarketplaceDomain y AWSAccessKeyId, la clave de identificación del autor del mensaje sin la cual nuestra petición no sería procesada. Además contiene nuestra petición actual, en la cual buscamos conocer el contenido correspondiente al identificador ASIN (en este caso como ItemType, que como comentamos antes, el es identificador único asignado por Amazon a sus productos, entre ellos DVDs) con el valor B000CABBW (ItemID). ResponseGroup solicita solo la versión corta de los resultados. Para completar el ejemplo, colocamos a continuación la respuesta generada por ECS. En este caso tampoco se utiliza cabecera y el cuerpo contiene el elemento ItemLookupResponde. <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <SOAP-ENV:Body> MY_ACCESSKEY0.0265100002288818TrueASINB0000CABBWSmall
124
TFG: Análisis de la tendencia Web 2.0, y su aplicación a la relación cliente-empresa IUA Ingeniería de Sistemas – Marco Teórico B0000CABBW http://www.amazon.com/gp/redirect.html%3FASIN=B0000CABBW%26tag=ws%2 6lcode=sp1%26cID=2025%26ccmID=165953%26location=/o/ASIN/B0000CABBW%2 53FSubscriptionId=1RPF28QJYKDDFEDRT902Keisha Castle-HughesRawiri ParateneVicky HaughtonNiki Caro/Director> <Manufacturer>Sony Pictures DVD <Title>Whale Rider
Luego de cierta información operacional (como ser cuanto tiempo demoro ECS en generar la respuesta) el mensaje contiene la respuesta que esperábamos. El elemento ítem contiene la URL de la pagina donde se encuentra la información del producto, los actores (de los cuales hemos omitido muchos), el director, el fabricante, el grupo de productos, y finalmente el titulo.
3.8.6. Formatos de Web feeds Una segunda aplicación del XML que mencionamos marco un cambio en la forma en que se accede a la información en Internet: la sindicación de contenidos, que fue analizada en forma breve y funcional anteriormente. Básicamente, los productores de contenidos pueden sindicar estos a través de “Web feeds” 47, a los cuales los usuarios pueden subscribirse para recibir las actualizaciones. Podemos destacar que los Web feeds son de gran valor tanto para el creador de contenidos como para el consumidor de contenidos. Desde el punto de vista del subscriptor, los Web feeds simplifican el proceso de recibir actualizaciones de una o múltiples fuentes. Y desde el punto de vista del proveedor, los Web feeds mejoran su propia presentación en Internet ya que permite que los consumidores utilicen fácilmente sus contenidos a través de distintos canales. Los principales formatos en el cual estos feeds se especifican son los estándares RSS (2.0 y 1.0) y Atom ambos basados en XML. Si bien tienen especificaciones distintas, comparten aproximadamente la misma estructura. Los elementos XML que ellos comprenden pueden ser divididos en dos categorías. La primera agrupa los elementos del canal (o feed) que incluye la información genera de un feed. Los contenedores están compuestos por algunos ítems, conocidos como entradas y cada una tiene adjunto un conjunto de metadatos extensibles, con los que sus subelementos forman una segunda categoría de elementos.
47
Como en otros casos nuestro análisis tendrá el objetivo de acercarnos al concepto.
125
TFG: Análisis de la tendencia Web 2.0, y su aplicación a la relación cliente-empresa IUA Ingeniería de Sistemas – Marco Teórico
Contenedor de feed Titulo de feed URL de feed Descripción de feed Autor Ultima actualización Identificador único Entradas de feed Lista de contenidos
RSS 2.0 channel Title link description webMaster/managingEditor lastBuildDate item -
RSS 1.0 channel title link description Dc:creator Dc:date item items
ATOM Feed Title Link (subtitle) Author Updated Id Entry -
Tabla 7: Nombres y descripciones de elementos contenedores en formatos de feeds.
Titulo de entrada URL de entrada Identificador único Descripción de entrada Fecha de publicación
RSS 2.0 title (link) guid description pubDate
RSS 1.0 title link (description) dc:date
ATOM title link id (summary) updated
Tabla 8: Nombres y descripciones de elementos de entradas en formatos de feeds.
Podemos ver una descripción general de aquellos elementos XML que son necesarios en las diferentes versiones. Los elementos en paréntesis son opcionales, aunque existen otros elementos que no han sido incluidos en las tablas ya que son opcionales en todos los formatos analizados. En la primera fila de la primera tabla tenemos el elemento “Contenedor de feed” indica el nombre del elemento que tiene el contenido del feed, y es interesante notar que los otros elementos de esta tabla son todos subelementos de este.
Otra cosa destacable es ver como elementos que no están en la especificación de RSS 1.0 son tratados por esta: “author” y “time of last update” no son considerados por el estándar, y es por esto que son substituidos con elementos del Dublin Core Element Set48 denotados por el prefijo “dc:”. Además, el elemento “Lista de contenidos” solo es utilizado en RSS 1.0, donde la referencia XML es utilizada para referenciar elementos item. Esto es porque a diferencia de otros formatos el elemento item no es un subelemento del elemento channel en RSS 1.0 Utilizamos estas tablas para mostrar que todos los formatos están construidos aproximadamente de manera similar, pero es insuficiente para la interpretación de lo que exactamente debe contener cada elemento. Por ejemplo, en el caso del elemento description de las entradas RSS 2.0 no es claro si debe contener un breve resumen o si debe contener todo el artículo. Por tanto, desde el punto de vista técnico es algo complicado tener que ladear con las diferentes versiones ya que son incompatibles entre sí.
48
El Dublin Core Element Set es un estándar ISO para metadatos en Internet. Podemos ver más sobre esto en (140)
126
TFG: Análisis de la tendencia Web 2.0, y su aplicación a la relación cliente-empresa IUA Ingeniería de Sistemas – Marco Teórico Para continuar con el ejemplo del catalogo, creamos un blog donde colocar opiniones de DVD en Blogger (mencionado cuando analizamos este social media) que entre otras prestaciones permite utilizar la sindicación de contenidos. Con esto tendremos la información necesaria para dar contenido a los elementos de canal que hemos mencionado anteriormente. Una vez en el blog creamos una entrada. Al crear esta entrada, se ha creado automáticamente también un Web feed (tanto en RSS 2.0 como en Atom) y se ha insertado un vinculo hacia este en el blog. En base a estos podemos analizar cada uno de los casos. Ilustración 53: Creación de post en Blogger. 3.8.6.2. ATOM
Creamos una entrada de blog, creándose automáticamente un Web feed.
A continuación incluimos el código generado por Blogger para el feed en Atom del blog en http://misopinionesdvd.blogspot.com/atom.xml, donde podemos notar específicos del blog creado (resaltados) y otros que fueron generados por el mismo sistema, notando que existen muchos otros elementos que han quedado fuera de la discusión previa sobre elementos del formato. Esto es debido a que por una parte junto a los elementos vienen atributos, y por otra parte porque Blogger realiza agregados para generar el feed. tag:blogger.com,1999:blog-43921975411485081072008-11-20T06:33:08.266-08:00Opiniones sobre DVD <subtitle type='html'> Juan Ortizhttp://www.blogger.com/profile/15260917426736429062 <email>[email protected]
127
TFG: Análisis de la tendencia Web 2.0, y su aplicación a la relación cliente-empresa IUA Ingeniería de Sistemas – Marco Teórico Blogger1125 <entry> tag:blogger.com,1999:blog-4392197541148508107.post43052717017936893252008-11-20T06:25:00.000-08:002008-11-20T06:31:01.796-08:002008-1120T06:31:01.796-08:00Le Fabuleux destin d'Amélie PoulainLorem ipsum dolor sit amet, consectetur adipiscing elit, sed eiusmod tempor incidunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquid ex ea commodi consequat.Juan Ortizhttp://www.blogger.com/profile/15260917426736429062 <email>[email protected]0
Analizamos ahora algunos de los elementos adicionales que encontramos. Notamos tres elementos link en los elementos e nivel de canal (todos con diferentes atributos rel que describen el significado de cada vinculo). El link http://schemas.google.com/g/2005#feed es específico de Blogger y los links con relaciones altérnate y self son especificados en el estándar de Atom. El primero apunta a la versión HTML del feed y el último apunta a la dirección original del feed, y con esta última información es posible encontrar la fuente de un feed. Encontramos estas mismas relaciones en la entrada que se presenta. En ese caso, los links no apuntan a todo el feed, sino que apuntan al post en particular que se está incluyendo. El elemento generator muestra que el feed fue creado con el servicio de Blogger.
128
TFG: Análisis de la tendencia Web 2.0, y su aplicación a la relación cliente-empresa IUA Ingeniería de Sistemas – Marco Teórico Hay tres elementos (totalResults, startIndex, itemsPerPage) del namespace openSearch. OpenSearch 49 es una especificación para agregar metadatos a búsquedas y resultados de búsquedas, y su especificación indica que “Los clientes de búsqueda utilizan los documentos de descripción OpenSearch para aprender sobre la interface pública de un motor de búsqueda. Estos documentos de descripción contienen templates de ULR parametrizados que indican como el cliente de búsqueda debería realizar las peticiones de búsqueda. Los motores de búsqueda pueden usar los elementos de respuesta de OpenSearch para agregar estos metadatos a los resultados en una gran variedad de formatos de contenidos.” Los tres elementos contenidos en nuestro feed pertenecen a la parte de respuesta de la especificación, por ejemplo elementos que son incluidos en resultados de búsqueda. Como el elemento content de una entrada es opcional, no lo hemos visto en las tablas presentadas inicialmente, pero es este el elemento que tiene el contenido de la entrada, en el caso en que el contenido es texto y no una referencia a un archivo como ser de video o audio disponible en otro lugar. 3.8.6.3. RSS 2.0 El código incluido en http://misopinionesdvd.blogspot.com/rss.xml es similar al de Atom como era esperado. Es interesante notar que el feed RSS contiene los elementos id y updated del estándar Atom, ya que namepsace de Atom ha sido incluido en el elemento rss (ver línea 3). Estos elementos son utilizados como solución para estos elementos u otros equivalentes que no están presentes en la especificación RSS, pero que blogger necesita en este caso. tag:blogger.com,1999:blog-4392197541148508107Thu, 20 Nov 2008 14:33:08 +0000Opiniones sobre DVD <description> http://misopinionesdvd.blogspot.com/ <managingEditor>[email protected] (Juan Ortiz) Blogger1125tag:blogger.com,1999:blog4392197541148508107.post-4305271701793689325Thu, 20 Nov 2008 14:25:00 +00002008-11-20T06:31:01.796-08:00Le Fabuleux destin d'Amélie Poulain <description>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed eiusmod tempor incidunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquid ex ea commodi consequat.
49
Podemos encontrar más información sobre el estándar OpenSearch en (141).
129
TFG: Análisis de la tendencia Web 2.0, y su aplicación a la relación cliente-empresa IUA Ingeniería de Sistemas – Marco Teórico http://misopinionesdvd.blogspot.com/2008/11/le-fabuleux-destindamlie-poulain.html [email protected] (Juan Ortiz)0
3.8.6.4. Publicando feeds Como hemos visto es muy sencillo generar un blog que también produce de manera automática web feeds. Y desde el punto de vista de un generador de contenidos, es también muy fácil integrar Web feeds a programas en muchos contextos para poder recibir los beneficios mencionados de la sindicación de contenidos y para esto es necesario que los usuarios puedan acceder a los feeds. En los archivos mostrados notamos referencias a un archivo CSS. Esto combinado con las versiones actuales de los navegadores populares permite que al ser abierto en un navegador se dé Ilustración 54: Web Feeds en Firefox. una interface para que el usuario pueda agregar Al abrir el archivo XML en el navegador Firefox el usuario el feed en su agregador de preferencia. obtiene una interfaz que le permite agregar el feed.
Para que esto suceda se debe poner a disposición del usuario el archivo XML. Una forma es publicar un link como los mencionados anteriormente de forma directa, y otra es la habilitación del auto-descubrimiento colocando un tag en la cabecera del código HTML referenciando al archivo, como el siguiente:
En este caso el tag está basado en XHML, conteniendo al menos tres atributos rel, type, y href que hemos visto en los elementos link de los Web feeds mostrados anteriormente. Efectivamente, la función del elemento es la inversa a la del elemento link con la relación altérnate en el feed. Los programas que dan soporte al auto-descubrimiento notifican al usuario cuando ingresan a una página que existe un feed disponible.
3.8.7. Aplicaciones de Internet enriquecidas. Continuando con el análisis realizado el considerar HTML, XML, CSS y scripting de servidor y cliente, la tendencia actual es generar contenidos e interfaces cada vez más dinámicas para el usuario. Esto fue analizado en el patrón de diseño Web 2.0 “Experiencias de usuario ricas” donde realizamos una aproximación a las tendencias actuales hacia la generación de experiencias rápidas y simples combinando lo mejor de los paradigmas web y de escritorio. Como se comento al terminar el análisis de scripting, el siguiente paso es el estudio de las técnicas basadas en Ajax. 130
TFG: Análisis de la tendencia Web 2.0, y su aplicación a la relación cliente-empresa IUA Ingeniería de Sistemas – Marco Teórico El uso de Ajax y la disponibilidad generalizada de acceso a Internet analizada previamente permite la creación de sitios que puede hacer mucho más que presentar páginas y conectarlas vía hipervínculos. Ahora es posible ejecutar programas completos en un navegador, como ser clientes de mail, programas de chat o incluso herramientas tan potentes como el Google Docs ya mencionado. A su vez, los usuarios no tienen que preocuparse por instalaciones o actualizaciones ya que el concepto es utilizar a Internet como una plataforma completa. Para evitar que una página se recargue al requerir información del servidor y de esta forma acercarnos mas al la rapidez y sensación que genera una aplicación de escritorio, la vista de una página debe ser generada y manipulada en el navegador del cliente, utilizando la conexión cliente-servidor solo para intercambio de datos. Esto apunta a generar interfaces con respuestas más rápidas, y por lo tanto es necesario depender de la velocidad de conexión a Internet y sobre todo optimizar el uso de esta ya que en general impone fuertes limitaciones. Existen diversas aproximaciones técnicas para esto, como ser Java Applers, Flash de Adobe, y el mencionado Ajax. En aplicaciones con este tipo de aproximaciones el servidor es el responsable de manejar los datos y la generación del entrono grafico, mientras que el cliente muestra dicho entorno y maneja las acciones de los usuarios. Las aplicaciones enriquecidas han existido por muchos años, y en efecto cada programa de escritorio da soporte a un amplio set de funcionalidades que están dirigidas a mejorar la interactividad en base a patrones, como ser menús, ventanas, cajas de dialogo, arrastrar y soltar, y respuestas inmediatas. Esto ha alcanzado niveles excelentes de interacción, presente en muchos casos pero principalmente ha sido una característica de los programas offline. Por tanto, el desafío es llegar a esto en la plataforma de Internet. Podemos decir entonces que una aplicación es mas “rica” en este sentido relacionado el término con su funcionalidad, y el nombre Rich Internet Applications 50 (RIAs) puede ser clasificado como orientado a la funcionalidad, a diferencia de los mashups que como veremos más adelante, podemos decir que son orientados a los datos. Como hemos notado en el análisis realizado hasta ahora el desarrollo de Internet ha sido evolutivo, no revolucionario. RIAs son otro ejemplo claro de esto. Podemos encontrar una gran variedad de estos en Internet, y son en general una aplicación de la idea del software como servicio, algo que analizaremos más adelante pero que hemos anteriormente al estudiar los patrones de diseño Web 2.0. Por tanto, a continuación buscaremos aproximarnos al desarrollo de páginas aun más dinámicas, en base a Ajax. 3.8.7.2. Ajax Como se explico anteriormente, el modelo cliente-servidor se caracteriza por su funcionamiento sincrónico, y esto se aplica al modelo de Internet y las páginas web: En general la actividad en el cliente da como resultado peticiones de páginas al servidor, quien procesa estos pedido y da 50
El término fue desarrollado en (142) al hacerse referencia al entorno Flash y sus capacidades.
131
TFG: Análisis de la tendencia Web 2.0, y su aplicación a la relación cliente-empresa IUA Ingeniería de Sistemas – Marco Teórico como resultado paginas HTML. Por tanto, el cliente debe realizar esperas y la información es manejada de forma ineficiente porque los resultados son siempre transmitidos como páginas enteras, es decir, generando una recarga de toda la página, por tanto existiendo el envío de mucha información redundante mientras que solo se genera un cambio quizás pequeño en el contenido (por ejemplo, datos de una lista desplegable de un formulario).
Cliente Actividad del usuario
Servidor Transmisión de datos Transmisión de datos
Actividad del usuario
Procesamiento del sistema.
Transmisión de datos Transmisión de datos
Procesamiento del sistema.
Actividad del usuario
El objetivo principal de Ajax es acelerar estas interacciones entre el usuario y Tiempo una aplicación web al hacerlas Ilustración 55: Solicitudes sincrónicas y recargas de pagina. asincrónicas y omitir la transmisión redundante de datos. Podemos ver la nueva secuencia de interacciones en la siguiente figura. En este nuevo modelo Ajax, el input del usuario es manejado por el motor Ajax cargado en navegador del cliente luego de la primera interacción con el sitio web. De ahora en más, es posible realizar muchas tareas sin necesidad de pedir datos al servidor. Solo cuando es necesario se realiza una petición al servidor, y esta es transmitida y procesada de forma asincrónica, por tanto la actividad del usuario no se interrumpe. La respuesta del servidor puede ser construida de tal forma que solo contiene información nueva y relevante, por lo que se reduce drásticamente la cantidad de datos transmitidos. Aunque los detalles pueden variar, todo escenario Ajax consiste de pasos similares. Cuando el usuario realiza un evento, el motor Ajax (o más bien la función Javascript responsable del evento) debe manejarlo de una manera apropiada. Si hace falta información adicional del servidor para llevar a cabo la tarea, se realiza la petición asincrónica.
Cliente
Servidor
Navegador Motor Ajax Input
Transmisión de datos
Mostrar
Transmisión de datos
Procesamiento del sistema.
Input Mostrar Input
Transmisión de datos Transmisión de datos
Procesamiento del sistema.
Mostrar El motor descripto en la siguiente Actividad Procec. figura no es una entidad del Del independiente, sino que representa usuario sistema la interacción de las tecnologías Tiempo web que hemos analizado Ilustración 56: Recargas asincrónicas de pagina utilizando AJAX. anteriormente, en conjunto con el
132
TFG: Análisis de la tendencia Web 2.0, y su aplicación a la relación cliente-empresa IUA Ingeniería de Sistemas – Marco Teórico objeto XMLHttpRequest. El proceso general de una llamada Ajax puede ser resumida en los siguientes pasos: 1. Se crea el objeto XMLHttpRequest. La sentencia Javascript puede ser algo como resObject = new XMLHttpRequest(). 2. Para manejar la respuesta, es necesario definir una función de callback. La sentencia sería algo similar a resObject.onreadystatechange = handleResponse, siendo handleResponse el nombre del manejador de callback. Esta función es llamada cuando el estado de resObject cambia. El campo resObject.readystate indica el estado en el que está el objeto XMLHttpRequest. Cuando toma el valor de Loaded, la transmisión finaliza, y depende del manejador de callback reaccionar apropiadamente al cambio de estado. 3. Al llamar a open en el objeto XMLHttpRequest se abre la conexión HTTP al servidor, y open espera tres argumentos: el tipo de solicitud HTTP, la URL objetivo en la aplicación de servidor, y un flag indicando si la transmisión debería ser asincrónica o no. Por ejemplo, una petición asincrónica con el método GET tendría la siguiente forma: resObject.open(‘get’,’targetURL’,true). 4. Para comenzar la solicitud, el método send del objeto XMLHttpRequest es llamado con un argumento que contiene el mensaje en caso de una solicitud en la que se utiliza un tipo de solicitud POST. Si se elige el método GET, los parámetros del mensaje son codificados en la dirección objetivo y por tanto se envía null como argumento. 5. Una vez que el manejador de callback es llamado y el estado es COMPLETED la información requerida puede ser accedida mediante los campos responseText y respondeXML del objeto XMLHttpRequest. El primero contiene el mensaje en texto plano y el segundo en formato XML. El motor ajax puede ahora utilizar la información para completar sus tareas y presentar los resultados, por ejemplo reemplazando ciertas porciones de la página utilizando DHTML.
Ilustración 57: Interacción cliente-servidor con AJAX.
133
TFG: Análisis de la tendencia Web 2.0, y su aplicación a la relación cliente-empresa IUA Ingeniería de Sistemas – Marco Teórico Podemos encontrar información más detallada sobre Ajax en (105). El siguiente ejemplo tiene el objetivo de simplemente explicar la función de XMLHttpRequest, y ciertamente no es posible considerarla como una RIA. 3.8.7.3. Servidor WPC Para poder mostrar cómo podemos extender nuestro catalogo de DVD con la funcionalidad de XMLHttpRequest, necesitamos un proveedor de datos como ser un servidor WPC (Web procedure call server) o un proveedor de Web service que procese las solicitudes generadas en nuestra página de ejemplo. Para esto realizaremos un cambio en nuestro script de PHP, que podría generar el catalogo completo. Ahora en lugar de generar la página completa, el script en base a solicitudes devolverá datos específicos correspondientes a una película, como ser los nombres de directores y actores. Utilizaremos a su vez la misma fuente de datos principal, es decir, el archivo XML con datos de DVDs. La siguiente imagen muestra que componentes son parte del ejemplo. El cliente ejecuta código Javascript para realizar las solicitudes Ajax al servidor WPC. El servidor corre PHP para generar las peticiones a la base de dato, que en este caso implica acceder al archivo XML vía XPath. Luego toma el resultado para producir el output para el cliente y se lo envía. El cliente utiliza nuevamente código Javascript para manipular su DOM.
Generación del catalogo con Ajax
A continuación podemos ver el código para el servidor WPC: $asin = $_GET['ASIN']; $dom = new DomDocument(); $dom->load('catalogo.xml'); $xp = new domxpath($dom); $dvds = $xp->query('/DVDCatalog/DVD[ASIN="'.$asin.'"]'); foreach ($dvds as $node) { $director = getFullNamesOfPersons($node->getElementsByTagName('Director')>item(0));
134
TFG: Análisis de la tendencia Web 2.0, y su aplicación a la relación cliente-empresa IUA Ingeniería de Sistemas – Marco Teórico $actors = getFullNamesOfPersons($node->getElementsByTagName('Actors')>item(0)); returnDVDCode($director, $actors); } function returnDVDCode($director, $actors){ echo 'Director: '.$director.' '."\n".'Actores: '.$actors; } function getFullNamesOfPersons($personList) { $persons = $personList->getElementsByTagName('Person'); $i = 0; foreach ($persons as $person) { $fullNames[$i] .= getSubNodeContent($person, 'Firstname').' '.getSubNodeContent($person, 'Lastname'); $i++; } return implode(", ", $fullNames); } function getSubNodeContent($node, $subNodeName) { return $node->getElementsByTagName($subNodeName)->item(0)->nodeValue; } ?>
Este servidor WPC tiene exactamente las mismas funciones getSubNodeContent y getFullNamesOfPersons que el script de creación que vimos en el ejemplo de scripting de servidor. Las funciones printDocumentFoot y prontDocumentHead han sido borradas del código mostrado, ya que no son necesarias porque nuestro script ahora funcionara como una forma para que un script cliente acceda a la información de nuestra base de datos de catalogo de DVD. Por tanto no es necesario crear una página entera ya que sería redundante. En lugar de esto, nuestro script utiliza la función returnDVDCode para entregar solo el contenido que no está todavía disponible en el lado del cliente. El script anterior devolvía todos los DVDs del catalogo, lo cual ya no hacemos. Para evitar esto realizamos un pequeño cambio en el objeto $dvds, que ahora tiene la siguiente forma: $xp->query('/DVDCatalog/DVD[ASIN="'.$asin.'"]').
El código indicado entre [ ] es un selector especial de XPath, que verifica que el elemento ASIN (que es un subelemento de DVD) tiene el mismo valor que la variable $asin, y solo aquellos nodos que cumplan esta condición son seleccionados y guardados en $dvds. Como podemos ver en la línea 2 del script, la variable $asin tiene el valor de $_GET*‘ASIN’+, es decir que contiene el valor ASIN si un valor con tal nombre ha sido previamente entregado al script a través del meto GET de HTTP. Los parámetros GET son agregados en la URL del script invocado luego de un signo “?”, por ejemplo: http://www.juanortiz.com.ar/wpcserver.php?ASIN=B0000CABBW La solicitud anterior llama al server WPC con un parámetro ASIN de valor B0000CABBW, que contiene la película Le Fabuleux destin d'Amélie Poulain. El script devolverá entonces el siguiente resultado: Director: Jean-Pierre Jeunet Actores: Audrey Tautou 135
TFG: Análisis de la tendencia Web 2.0, y su aplicación a la relación cliente-empresa IUA Ingeniería de Sistemas – Marco Teórico
Ya que no hemos agregado funciones que reciben y manejan números ASIN erróneos, en ese caso el script devolverá un arreglo vacio. 3.8.7.4. Cliente WPC Comenzaremos también con la base que teníamos en el ejemplo de scripting de cliente previamente mostrado, donde podíamos esconder los detalles a través de un click en el titulo del DVD. Como veremos a continuación con algunos pequeños cambios podemos adaptar el script a nuestros objetivos actuales. Primero, podemos notar que la página ya no contiene la información del director y de los actores, sino que el div correspondiente esta vacio y con el número ASIN del DVD como Id, y funcionara ahora como un contenedor para los datos que obtendremos del servidor. El resto del cuerpo no contiene cambios. Catalogo de DVD <meta name="author" content="Juan Ortiz"> <script type="text/javascript"> function toggleDVDDisplay(id){ var http = new XMLHttpRequest(); http.onreadystatechange = function() { if(http.readyState == 4 && http.status == 200) { var contentElement = document.getElementById(id); contentElement.innerHTML = http.responseText; contentElement.style.display = 'block'; contentElement.setAttribute('expanded', 'true'); } } http.open("GET","http://localhost/ch3/sample_01_server.php?ASIN="+id, true); http.send(null); }
El cambio más importante es la nueva versión de la función toggleDVDDisplay, que ahora sigue el proceso de llamadas Ajax que mencionamos anteriormente. Primero se instancia un objeto XMLHttpRequest y luego se define que la función onreadystatechange de XMLHttpRequest debe manejar el resultado de la llamada WPC. A continuación la función open configura los parámetros de la llamada WPC y send abre la conexión. Cuando el resultado regresa desde el servidor y su estado es el correcto (es decir, que el estado de http.readyState es 4 y http.status es 200) se ejecuta el código que se encarga de insertar el nuevo contenido. La función responseText devuelve el resultado en texto plano que es insertado en el div vacio que funciona como contenedor en el cuerpo de la página, con su selección funcionado de la misma forma que el ejemplo original de scripting de cliente. Esta inserción se realiza sobrescribiendo el contenido del div a través de la propiedad innerHTML. Hay que notar que la función toggleDVDDisplay es tan simple que hace llamadas repetitivas al servidor si se hace click repetidamente. Esto por supuesto no es un comportamiento deseable ya que la idea de usar Ajax es reducir la cantidad de datos que son transmitidos y estos serian datos redundantes, pero esto es debido a que se busca mantener la simpleza del ejemplo. Para dar una pista de que mas es posible, potemos observar a las posibilidades que tenemos con este objeto. Hasta ahora solo hemos utilizado el estado 4 (cargado) del XMLHttpRequest, que es usado para informar al script que se ha completado el envío de datos. Podemos ampliar la información diciendo que tiene los posibles estados: 0: sin inicializar. 1: abierto. 2: enviado. 3: recibido. 4: cargado. El estado 1 indica que la función open ha sido llamada de manera exitosa, el estado 2 indica que la petición ha sido recibida, el estado 3 indica que todas las cabeceras HTTP han sido recibidas y que el cuerpo del mensaje está a punto de ser recibido. Estas funciones pueden ser utilizadas para informar al cliente el estado de su solicitud. En nuestro ejemplo no hicimos esto debido a que la cantidad de datos considerada es siempre pequeña, pero en caso de necesitar cargar mayores cantidades de datos estas funciones serian una buena manera para mejorar la comunicación entre el cliente y el servidor. Si las respuestas de datos del servido no solo contuvieran contenidos de nueva información, sino que también en forma de nuevos scripts podemos imaginar que es posible aumentar y modificar 137
TFG: Análisis de la tendencia Web 2.0, y su aplicación a la relación cliente-empresa IUA Ingeniería de Sistemas – Marco Teórico las acciones que se realizan en la página. Las posibilidades que esto brinda son muy amplias, dejando de lado el concepto estático que se presentaba previamente a la incorporación de Ajax, alcanzando un nuevo nivel de páginas dinámicas. Es importante considerar que esto sirve para nuestro pequeño ejemplo, pero cuando se habla de proyectos de tamaño considerable es necesario utilizar herramientas que agregan capas a la programación y que manejan con abstracción el concepto de Ajax.
3.8.8. Mashups y el diseño para la reutilización Los mashups (concepto que hemos considerado en el análisis de social medias) representan un cambio radical frente a las posibilidades que existían previamente en Internet. Antiguamente la única forma de acceder a la información de un sitio web era a través justamente del sitio web, siendo el “page scraping” una práctica necesaria para quien requería obtener información con el objetivo de reutilizarla. Existen diversas maneras de ejecutar este tipo de extracción de datos. Podemos explicarla de forma breve indicando que consiste en extraer de forma automática contenidos de partes de páginas publicadas a través de un robot o “spider” que recorre los sitios de los cuales se desea extraer información, analizando los códigos HTML presentados y en base a patrones y palabras claves identifica y extrae los contenidos, para luego procesarlos y presentarlos. Es una práctica claramente ineficiente, dependiente de los patrones del diseño y con una gran tendencia al error, pero ampliamente utilizada debido a que en muchos casos los sitios no permiten otra forma de acceder a los datos presentados. Hoy en día continua siendo una práctica común para la obtención de datos en Internet, pero requiere técnicas avanzadas y en general se utiliza para cuestiones o tipos de información muy especificas, es decir, no es algo utilizable por el usuario común de Internet. Y aunque en ciertos escenarios esto puede funcionar, lo importante es el cambio que se presenta en la actitud por parte de quien publica contenidos: Como mencionamos en la práctica de “diseñar para la reutilización” del patrón “innovación en el ensamblaje”, en el concepto Web 2.0 los contenidos digitales se generan de tal forma que puedan ser desarmados y reutilizados. Esto se logra en base a la publicación de contenidos de diversas maneras, manteniendo la tradicional publicación de páginas web pero colocando a disposición del usuario de internet otras formas de acceder a los contenidos, como ser a través de Web feeds y APIs y. Es decir, diseñar y generar sitios web que además de ser legibles por los usuarios, pueden ser fácilmente leídos por otras aplicaciones. En base a estas maneras alternativas, es posible reutilizar los contenidos y servicios de diversas fuentes combinadlos para crear e innovar, generando así posibilidades ilimitadas. Antony Mayfield indica que “la combinación de dos o más unidades de contenidos (o software, o sitios web) es uno de los fenómenos de los social media que hacen a estos tan excitantes, dinámicos e incluso en ocasiones desconcertantes. Los Mashups son posibles debido a la apertura de los social media, ya que muchos sitios web y desarrolladores de software alientan a la gente a jugar con sus servicios y reintentarlos.” (10)
138
TFG: Análisis de la tendencia Web 2.0, y su aplicación a la relación cliente-empresa IUA Ingeniería de Sistemas – Marco Teórico Analizamos a continuación las dos formas mencionadas para generar esta apertura: Web Feeds y APIs. 3.8.8.2. Sindicación de contenidos con Web feeds Hemos mencionado anteriormente el concepto de sindicación de contenidos, mencionado que se presenta como una herramienta en los social media. A su vez, hemos profundizado en la tecnología detrás de los Web feeds a través del análisis de los estándares RSS 2.0 y ATOM. Podemos decir que la sindicación de contenidos en el contexto de Internet es una recombinación de contenidos orientados a documentos. Esto tiene un potencial virtualmente ilimitado en cuanto a las maneras que puede aprovecharse, y podemos mencionar un par de casos para acercarnos al concepto. Volviendo al caso mencionado del page scraping, podemos decir que esta técnica es parte de un proceso de recolección, análisis, procesamiento y presentación de información. Podemos llevar esto más allá de la tecnología, al caso de análisis de medios que se realiza en marketing o ambientes corporativos, para obtener por ejemplo un resumen de diferentes revistas, periódicos y publicaciones sobre un tema en particular con el objetivo de obtener reportes de información agregada que es relevante al negocio. El punto fuerte de este tipo de análisis es que concentran los esfuerzos de seleccionar y procesar estos puntos relevantes y entregarlos al nivel de toma de decisiones, dando así información valiosa y acotada. Podemos notar diferentes pasos en este proceso: obtener información (conseguir las fuentes en cuanto estas son publicadas), integrarla (tomar copias de lo que se considera relevante), transformarla (puede no ser necesaria, pero quizás se deba al menos acotar su largo para mostrar solo una parte de la información ya que puede ser muy extensa) y entregarla (enviar por correo electrónico por ejemplo). Ahora supongamos que aplicamos el concepto de Web feeds al caso analizado, siendo que las fuentes de información están provistas como un Web feeds en alguno de los formatos mencionados. En este escenario adquirir implica realizar las subscripciones a las fuentes de datos. Integrar es realizado a través de un agregador de Web feeds, la transformación en caso de ser necesaria se realiza internamente si es que los feeds están provistos en diferentes formatos, lo cual solo implica una transformación en base a XML o incluso más simple aun, en la mantera en que el contenido es presentado (por ejemplo, podemos mostrar tan solo las primeras 500 palabras de un articulo, dando la posibilidad de ir a la fuente original si se desea leer todo el contenido). El último paso de entrega es realizado cuando se selecciona los contenidos relevantes y el agregador funciona como un proveedor de Web feeds que son consumidos por otros usuarios en sus agregadores. Podemos llevar esto a un ejemplo práctico, demostrando esto al utilizar el servicio de Google para Web feeds llamado Google Reader. Este servicio ofrece la opción de redistribuir contenidos mediante la opción de “shared ítems”. Al agregar un feed a este grupo, se genera de forma automática un nuevo feed que queda disponible para las personas que deseemos (o incluso es posible hacerlo publico). Por tanto, volviendo al ejemplo mencionado una persona que quiera redistribuir contenido solo debe primero seleccionar las fuentes que desea, y luego seleccionar los artículos de estas fuentes que deben ser redistribuidas. La aplicación que funciona como 139
TFG: Análisis de la tendencia Web 2.0, y su aplicación a la relación cliente-empresa IUA Ingeniería de Sistemas – Marco Teórico agregador en este caso se encarga de todos los otros pasos del proceso. Esto da la posibilidad de que prácticamente cualquier usuario pueda convertirse en un agregador y redistribuidor de contenidos. Al publicarse esto en una URL particular, es claro que hemos generado un mashup que contiene diversas fuentes de datos de una manera rápida y en base a Web feeds. Ilustración 58: Captura de pantalla de Google Reader.
Este tipo de procesos de distribución Google Reader nos da la posibilidad de generar nuestra propia y redistribución basado en Web feeds redistribución de feeds. Solo es necesario tener diversas fuentes demuestra un gran potencial para el seleccionadas, y marcar los artículos que queramos redistribuir como consumidor de contenidos. Ahora “shared”. podemos observar esto desde el punto de vista de los proveedores de contenidos. La provisión de Web feeds disminuye los esfuerzos de integración en el cliente de tal forma que el proveedor puede esperar una amplia difusión de su trabajo, pero para que esto le beneficie es esencial la atribución de la fuente. En los formatos de Web feeds esto está asegurado por defecto, y podemos notarlo al ver el campo requerido de “channel level” en un documento XML, y el campo opcional “entry level”. Es decir, se asegura que quede disponible la fuente e incluso de manera opcional el articulo original (algo que comúnmente se mantiene).
Ilustración 59: Pagina personal pública de Google Reader. Una vez que tenemos contenido seleccionado, este puede ser accedido de manera pública en una URL especifica permitiendo incuso que otra gente se subscriba a esta información en formato de feed, o puede ser redistribuido a un listado acotado de personas.
A demás de la correcta atribución de autoría, el proveedor de contenidos puede estar interesado en incrementar el tráfico de su sitio en base a la distribución de los Web feeds, y esto es algo que el link incluido en el documento XML también provee. De tal manera es posible encontrar información adicional sobre el tema del feed, y obtención de beneficios de acuerdo al modelo de negocio del sitio (por ejemplo, anuncios publicitarios, productos o servicios que el proveedor ofrezca, etc.) Una motivación común para que el lector del feed se dirija a la fuente original es para leer los comentarios que han sido incluidos en el artículo, ya que en muchos casos estos
140
TFG: Análisis de la tendencia Web 2.0, y su aplicación a la relación cliente-empresa IUA Ingeniería de Sistemas – Marco Teórico agregan información útil (y estos incluso pueden ser agregados como un feed individual en muchos casos). Diferenciamos entonces dos tipos de links: el link que apunta al sitio principal (channel level) y el que apunta al artículo en particular (entry level). Este ultimo link es el que permite muchos de los efectos de la Web 2.0 y que hemos analizado en la práctica “Direccionamiento granular de contenidos” del patrón “innovación en el ensamblaje”. Este tipo de vínculo debería mantenerse invariable para permitir al contenido ser encontrado siempre luego de su publicación, y es por esto que estas URLs son denominadas permalinks. 3.8.8.3. Mashups basados en WPCs. Mientras que los Web feeds funcionan bien para los contenidos orientados a documentos, solo proveen un enfoque muy básico en cuanto a la combinación de contenidos orientados a datos. Veremos a continuación como los WPCs y las APIs son una solución para este tipo de contenidos. Como su nombre lo indica, los WPC (Web Procedure Calls) pueden ser utilizados para implementar cualquier tipo de llamada a procesos de Internet. Es posible al crear una aplicación definir que se puede llamar, con que parámetros y en base a qué métodos de acceso. Analizaremos más adelante un ejemplo de mashups en base a Google Maps para acercarnos al concepto. Analizamos ahora brevemente como los WPCs son parametrizados. Existen alternativas que definen como un WPC interactúa con un cliente y cuan extensible es. Volviendo al ejemplo analizado previamente, hemos utilizado el GET de HTTP para llamar a la función PHP que devuelve información adicional de un DVD, utilizando: http://www.juanortiz.com.ar/wpcserver.php?ASIN=B0000CABBW Este método GET podría ser también usado para enviar solicitudes al servidor, pero esta cambiaria su estado y por tanto se consideraría un mal uso. Podemos decir que este método es “seguro”, en el sentido de que solo debe ser usado para recibir información. La mejor forma de enviar información a un servidor es mediante el método POST, que incluye los parámetros no en la URL sino en el cuerpo de la solicitud. Cuando hablamos de SOAP como una forma natural de mejorar la formalización de los datos que se envían, ya que se utilizan sobres basados en XML para dar formatos a los mensajes. La definición de interfaces de los servicios se realiza mediante XML Schemas (como ser el ya mencionado WSDL). Finalmente, SOAP funciona como base natural para otros estándares si se considera una estructura de capas y consecuentemente incremente la formalización, pero sin cambiar la imagen general de los WPCs. Debido a la forma en que hemos utilizado los procedimientos hasta ahora, la semántica de los métodos GET y POST no han quedado del todo claras: Estas dependen del uso de los parámetros en el script que ha sido accedido. Cuando las semánticas de GET y POST y otros métodos HTTP son definidos y utilizados de forma rígida obtenemos como resultado un estilo de arquitectura como
141
TFG: Análisis de la tendencia Web 2.0, y su aplicación a la relación cliente-empresa IUA Ingeniería de Sistemas – Marco Teórico ser la del caso de REST (Representatonal State Transfer)51, que describe como las aplicaciones Web deben ser diseñadas. A saber, como “una red de páginas Web (una maquina de estado virtual) donde el usuario progresa a través de una aplicación al seleccionar links (transiciones de estado) que dan como resultado la siguiente pagina (representado el siguiente estado de la aplicación) siendo transferido al usuario y presentados para su uso”. Toda funcionalidad y estado de la aplicación son considerados recursos. Estos son direccionados de forma única típicamente a través de URIs. Tomando nuevamente el ejemplo del DVD, las siguientes URIs apuntan a recursos. http:// www.juanortiz.com.ar/DVD/ http:// www.juanortiz.com.ar/DVD/FindDVD http:// www.juanortiz.com.ar/DVD/B0000CABBW http:// www.juanortiz.com.ar/DVD/B00005U515 La primer alinea apunta a un recurso que contiene todos los DVDs, la secunda ofrece la posibilidad de buscar DVD, y la tercera y cuarta a DVDs específicos. Los métodos que pueden ser usados en los recursos son GET, POST, PUT y DELETE únicamente, y estos corresponden a los métodos HTTP de iguales nombres. Hemos explicado ya GET y POSTS, y podemos decir que PT agrega un recurso y los parámetros son dados en el cuerpo de la solicitud, y DELETE remueve una dirección dada. Cuando se utiliza GET en un recurso, una representación del recurso de baja al cliente, y la forma en que esta representación luce depende de la decisión del cliente y el servidor ya que no hay un mecanismo formal para expresar la interfaz de un servidor. Por ejemplo, observemos una página cargada en un navegador: La representación e la página es devuelta al cliente debido a que ha sido llamado el método GET. Esta representación podría tomar la forma de paginas HTML, imágenes o documentos PDF por mencionar algunos casos. Cuando se devuelve una representación con links como ser el caso de paginas HTML, los usuarios pueden moverse en la aplicación seleccionando los links y desplazándose en los distintos estados de la aplicación. Hemos visto dos implementaciones distintas de los WPCs: orientados a procedimientos y orientados a recursos. Ambos estilos son comunes en la Web y cada uno es el más adecuado dependiendo de las características de la aplicación donde sean utilizados. La elección es sencilla solo cuando una aplicación debe ser integrada a una arquitectura de Web services, que depende fuertemente en estandartes de Web services. En dicho caso, la ventaja de utilizar SOAP es clara. Y para proyectos más simples REST puede ser una opción ya que la simplicidad es su punto fuerte: solo cuenta con cuatro métodos aplicados a recursos que son identificados con URIs. Para analizar un ejemplo, la API de Google Maps permite integración de los servicios de mapas en otros sitios web. El uso de la API implica registrarse al servicio para obtener una clave de desarrolladores (una práctica muy común en los servicios de APIs) y el uso de un archivo Javascript provisto por Google. En realidad esto último no es estrictamente necesario ya que uno puede construir las llamadas necesarias en cualquier lenguaje, pero la documentación de la API provee solo soporte para esta clase de Javascript. Solicitudes a la API son procesadas cuando se utiliza la clave provista, habiendo sido relacionada esta con el sitio desde donde se realiza la petición. La librería de la API consiste en un conjunto de objetos y escuchadores de Javascript. Los 51
El término fue definido en (143)
142
TFG: Análisis de la tendencia Web 2.0, y su aplicación a la relación cliente-empresa IUA Ingeniería de Sistemas – Marco Teórico objetos por ejemplo representan un mapa, un marcador o un control. Los escuchadores permiten reaccionar a eventos específicos inicializados por objetos o por el usuario. Cada mapa es representado como una instancia de la clase GMap2. El constructor de un mapa recibe la locación en el documento HTML que es definida mediante el uso de un elemento div como argumento. Es posible agregar al mapa botones de control para manejar la locación y niveles de zoom aunque GMap2 ofrece interfaces y clases que pueden sobrescribir el comportamiento por defecto. La API ofrece un conjunto rico de funcionalidades para controlar los aspectos visuales del mapa. Para marcar lugares específicos se pueden incluir elementos GMarker en el mapa. Las locaciones son representadas mediante el objeto GLatng que contiene las latitudes y longitudes respectivas. Una instancia de GmMarker se miestra como un icono (GIcon) en el mapa, y es posible definir diversos iconos para representar diferentes objetos. Los Gmarker pueden contener un GInfoWindow que aparece al hacer click en el marcador o en otros eventos. Además se pueden utilizar líneas o polígonos que pueden ser utilizados por ejemplo para mostrar el camino para llegar de un punto a otro. Podemos ver a continuación como utilizando la se crea un mapa centrado en latitud -31.432975 y longitud -64.276317, y agregamos como agregar controles y un marcador con el texto “IUA” que se mostrara cuando hagamos click en el marcador. <meta http-equiv="content-type" content="text/html; charset=utf-8"/> Ejemplo de Google Maps :: IUA <script src="http://maps.google.com/maps?file=api&v=2&key=ABQIAAAAW210_oqepJQ3TYK PtSmmzBQuV8JmhhAn8NQ9CV189HfU10cb5BQCcdUXLm6LW5gDngABsWOOjSkrXg" type="text/javascript"> <script type="text/javascript"> function load() { if (GBrowserIsCompatible()) { var map = new GMap2(document.getElementById("map")); var point = new GLatLng(-31.432975, -64.276317); map.setCenter(point, 16, G_HYBRID_MAP); map.addControl(new GLargeMapControl()); map.addControl(new GMapTypeControl()); map.addControl(new GScaleControl()); var marker = new GMarker(point); var html = "IUA"; GEvent.addListener(marker, 'click', function() { marker.openInfoWindowHtml(html, 100); }); map.addOverlay(marker); } }
143
TFG: Análisis de la tendencia Web 2.0, y su aplicación a la relación cliente-empresa IUA Ingeniería de Sistemas – Marco Teórico
La API de Google Maps también permite posibilidades de simplificar la comunicación asincrónica con un servidor propio y el manejo de datos XML. Por ejemplo, la función FDownloadURL encapsula diferentes Ilustración 60: Ejemplo de Google Maps. implementaciones del objeto XMLHttpRequest y reduce por tanto A través de la API de Google Maps podemos insertar mapas en base a la carga de codificación. Los métodos parámetros que definimos. GXml y GXslt permiten el análisis de archivos XML en su representación DOM y por tanto permitir con el DOM resultante vía XSLT. Como podemos ver es muy sencillo incluir mapas en un sitio Web, y seria increíblemente costoso y complicado diseñar una aplicación propia que tuviera algún tipo de funcionalidad similar. Y podemos imaginar el potencial de esto al generar el Javascript con scripts de servidor, en base a diferentes configuraciones de mapas tomando por ejemplo las longitudes y latitudes de centros comerciales en una ciudad desde una base de datos, junto a otros datos interesantes como ser una imagen del frente de los locales, sus teléfonos y páginas web. En el lado técnico, el desarrollo de nuevos mashups requiere que un servidor pueda trabajar junto a los datos de mapas provistos por Google Maps, y para esto el servidor debe proveer acceso a fuentes de datos adicionales sean locales o remotas. Parta esto los WPCs puede ser de la forma en que hemos visto en el ejemplo de Ajax, y esto permite que los límites solo queden en la imaginación de los desarrolladores. En los análisis realizados en el despliegue del patrón de diseño “innovación en el ensamblaje” hemos mencionado que una práctica Web 2.0 es la de ofrecer este tipo de APIs y a su vez ser los propios consumidores de estas. Es por ello que hoy en día es de suma importancia poder tener un panorama claro de las APIs existentes para poder basarnos en estas para por ejemplo, para el caso planteado de mapas o para cargar videos en nuestro sitio utilizando posiblemente la API de YouTube. Hoy en día muchos mashups son creados por individuos de manera privada y sin objetivos comerciales, aunque el número de empresas que crea mashups también está creciendo rápidamente. Estas organizaciones se enfrentan al problema de basar sus servicios en los servicios de otros, y por tanto se vuelven dependientes de estos. Claramente la dependencia de proveedores no es algo nuevo ni deseable, y en estos casos es algo muy directo: si las APIs cambian de interfaces sin previo aviso el mashup probablemente presente errores, y si las APIs dejan de proveer servicios el mashup dejara de funcionar.
144
TFG: Análisis de la tendencia Web 2.0, y su aplicación a la relación cliente-empresa IUA Ingeniería de Sistemas – Marco Teórico En general los términos y condiciones en base a los que las APIs son provistas incluyen el derecho del proveedor de discontinuar el servicio o de deshabilitar las solicitudes de algún sitio en particular en caso de algún tipo de uso que vaya en contra de estos términos y condiciones. Más aun, cuando los mashups se vuelven populares se encuentran con el problema de que el proveedor de la API puede considerar que se ha generado un nicho de mercado interesante y desarrollar una manera para proveer el mismo servicio que el mashup, y en este caso por ejemplo se vuelve muy importante el patrón de diseño de “Los datos son el próximo “Intel Inside””, y generar en la operación del mashup el enriquecimiento de datos que provienen de una API, y no simplemente reutilizar los contenidos de los servicios.
3.8.9. Tagging Como mencionamos antes, los motores de búsqueda antes de la tendencia marcada por Google se basaban fuertemente en los metadatos o meta-tags incluidos en la cabecera de un documento HTML: para definir la temática de la página el autor puede incluir el titulo, palabras claves y descripción en forma de metadatos. Ya que esto puede ser claramente manipulable, la consideración de estos metadatos fue drásticamente reducida al momento de generar un ranking de resultados. El método de Google fue la utilización de PageRank y el análisis de estructuras de vínculos en los sitios como meta-información, lo que dio como resultado un ranking mucho más natural. Estos metadatos creados de forma manual han tomado una nueva forma y gracias a estos se están convirtiendo en la nueva base para mejores búsquedas y resultados: El concepto de llama tagging, y en este los usuarios (y ya no solo los autores de un sitio) agregan adjuntan o aplican palabras claves a sitios u objetos de estos, es decir, sitios completos, imágenes, videos o links, con el objetivo de clasificarlos y simplificar su posterior búsqueda. Este concepto es uno de los pilares de la Web 2.0 y se presenta fuertemente en comunidades de contenidos, redes sociales, blogs y otros social media. A su vez, los tags pueden ser públicos de tal manera que otros usuarios puedan verlos y utilizarlos para sus búsquedas. Este proceso es el mecanismo de creación básico para las llamadas folksonomias52: sistemas abiertos de etiquetas creadas de forma colaborativa. Este término hace contraste las taxonomías, que en general se basan en directorios rígidos de categorías. El publicar y compartir tags es un paso importante en lo que a socialización de los contenidos generados por usuarios en Internet respecta; y aunque la definición de tagging es tan simple como hemos visto, las consecuencias de esta práctica son muy poderosas y significativas. Podemos mencionar algunas dimensiones que definen las maneras en que los tags son creados y utilizados (aunque no todas son independientes del resto), detallando características referidas a los usuarios y al sistema para determinar la manera en que se comporta un sistema de tagging: Tipo de Objeto: Cualquier objeto que puede ser representado puede ser taggeado. Sin embargo, es esperado que el uso de los tags varíe mucho dependiendo de la naturaleza del los objetos. 52
El término fue desarrollado por Thomas Vander Wal en 2004 (144).
145
TFG: Análisis de la tendencia Web 2.0, y su aplicación a la relación cliente-empresa IUA Ingeniería de Sistemas – Marco Teórico Fuente del material: Cuando los objetos están disponibles en un sistema, puede ser provistos por los usuarios o por el mismo sistema. Una alternativa es el caso de recursos fuera del sistema (por ej. en otros sitios) que son taggeados. Derechos de tagging: La decisión de quien puede (o incluso quien es alentado) a agregar, editar o borrar tags afecta directamente a los tags que pueden surgir y a los patrones de su surgimiento. Soporte al tagging: Los usuarios pueden recibir ayuda al momento de aplicar tags. Por ejemplo, en el caso de que los derechos de tagging permitan que muchos usuarios puedan aplicar tags a un objeto, al momento de aplicar un tag se puede mostrar las contribuciones de otros al usuario que este por realizar la acción dándole la opción de aplicar quizás los mismos tags ya aplicados previamente. Modelo de agregación: En esta dimensión podemos distinguir dos tipos básicamente: en un caso se permite aplicar un tag a un objeto una única vez (set-based), y en otro caso los tags pueden ser agregados más de una vez (bag-based), lo que permite que se realicen evaluaciones de su frecuencia de uso para obtener análisis. Conectividad de recursos: Los recursos pueden estar conectados de otras maneras además de los tags, estando agrupados o vinculados entre sí. Es de esperarse que los objetos interconectados compartan tags similares. Conectividad social: Esta dimensión hace referencia a las conexiones entre los usuarios de un sistema, y estos aspectos son similares a los que se presentan en las conectividades de los recursos. También es posible analizar las motivaciones de los usuarios para la aplicación de tags, encontrando dos tipos principales: los tags organizativos y los tags sociales. La primera categoría puede ser dividida en formas de organización personal e interpersonal: Los usuarios desean organizar y encontrar sus propios ítems, para poder utilizarlos en el futuro y quizás compartirlos y así permitir que otros usuarios puedan utilizar el mismo esquema de organización. Por otra parte, las motivaciones sociales para la aplicación de tags incluyen la atracción de atención, la presentación propia, la expresión de opiniones, y la creación de tags como un subproducto para jugar y competir. En esta parte del marco teórico notaremos repetidas instancias de las dimensiones y motivaciones que mencionamos, al analizar primero el caso de las comunidades de contenidos Flickr y Delicious, dos de los principales exponentes y pioneros en la generación de folksonomias. 3.8.9.2. Tagging en Flickr Al analizar los social media y en particular las comunidades de contenidos, mencionamos el caso de Flickr que habiendo nacido en el 2004 se convirtió en una de las comunidades más grandes donde los usuarios pueden organizar y compartir imágenes, y que alcanzo este éxito gracias a prácticas innovadoras. Uno de los pillares de este éxito ha sido el tagging. Las imágenes pueden ser subidas al sitio mediante una interfaz web enriquecida o enviadas por correo electrónico a una cuenta de Flickr. A su vez, existen aplicaciones de terceros basadas en las APIs de Flickr que brindan un abanico más amplio de posibilidades. Una vez que han sido subidas, las imágenes pueden ser incluidas en grupos. Flcikr también permite como mencionamos 146
TFG: Análisis de la tendencia Web 2.0, y su aplicación a la relación cliente-empresa IUA Ingeniería de Sistemas – Marco Teórico anteriormente que el usuario defina si una imagen ser pública o privada y también aplicar licencias de tipo Creative Commons a ellas, y siempre las imágenes se mantienen como propiedad del usuario. Para proveer más información sobre las imágenes, es posible agregar una descripción y aplicar tags (estos solo pueden ser aplicados por el autor). Analizaremos entonces a continuación esta aplicación de tags. Podemos ver aquí un típico ejemplo de una imagen subida a Flickr, y de los elementos mencionados previamente: descripción, titulo, y tags. A su vez se presentan otros elementos, como ser el usuario propietario de la imagen, los grupos a los que pertenece, los comentarios que ha recibido y algunos datos adicionales como ser el lugar donde fue tomada, la cámara que se utilizo, fecha, cantidad de personas que la incluyeron Ilustración 61: Muestra de Imagen en Flickr. en su lista de favoritas y las Típica presentación de una imagen en Flickr con sus elementos. visualizaciones. Volviendo a los tags, existen muchos aspectos que los hacen especiales. Primero, son tratados de una forma distinta en la búsqueda: cuando se ingresan términos en la búsqueda de Flickr, es posible que se realice la búsqueda en todos los campos existentes, pero también es posible especificar que solo se haga en base a los tags. Y para entender porque esto es útil, debemos recordar las razones por las que los usuarios utilizan tags y para que los utilizan. Una de las motivaciones es el interés organizacional de encontrar o compartir contenidos con otros. Si observamos los tags utilizados en este ejemplo, encontramos algunas categorías: donde (Córdoba, Argentina), que (arco, piedra, ruta, torres) y quien (mherrero). Si bien estas categorías no están especificadas de ninguna manera y por tanto no podrían ser interpretados como tales por una maquina, son obvias para un usuario humano. Al leer estos tags el contenido que puede encontrarse en la imagen se hace claro. En contraste, el titulo no llega a ser del todo descriptivo a pesar de ser apropiado. La descripción en el ejemplo es clara, pero contiene información que quizás no es completamente relevante a la descripción de la imagen. Existen técnicas de inteligencia artificial, como ser el procesamiento del lenguaje natural, que intentan entender el lenguaje humano en base a las cuales quizás sería posible extraer una descripción igualmente apropiada del contenido de la imagen al analizar el titulo, la descripción y 147
TFG: Análisis de la tendencia Web 2.0, y su aplicación a la relación cliente-empresa IUA Ingeniería de Sistemas – Marco Teórico quizás también los comentarios de otros usuarios obteniendo así los beneficios provistos por los tags. Sin embargo, esto implicaría un procesamiento complejo para lograr manejar la ambigüedad que se presenta en los lenguajes naturales al considerar el significado de las palabras, la sintaxis, y las intenciones en las frases. Los tags por otra parte, son mucho más simples de comprender. Dos tags son iguales solo si tienen la misma representación de cadena de texto (aunque vale aclarar que esto no es completamente cierto, ya que los espacios en blanco y caracteres especiales son quitados al realizar búsquedas en muchos casos). Esto hace la búsqueda en base a tags una práctica más trivial, pero también logra que la razón de porque una imagen es mostrada como el resultado de una búsqueda sea totalmente clara. Sin embargo, el impacto más dramático se presenta en el comportamiento de los usuarios frente a los tags: Ellos son intuitivamente consientes de la forma en que los tags pueden utilizarse y por tanto los utilizan de la forma apropiada. Por último, es importante destacar que los tags en aplicados de forma especial en las URIs de flickr. Esto sigue los principios de REST y permite la navegación del sitio de manera sencilla. Podemos observar algunas de las principales direcciones de la estructura de URIs en base a los links que se presentan en la interfaz previamente mostrada: Explorar: http://flickr.com/explore/ Grupos: http://flickr.com/groups/ Fotos: http://flickr.com/photos/ Explorar contiene imágenes que han sido seleccionadas y marcadas como “interesantes” por un algoritmo de Flickr explicado en www.flickr.com/explore/interesti ng/ de la siguiente manera: “Hay muchas cosas que hacen que algo sea 'interesante' (o no) en Flickr. De dónde provienen los clics; quién hace un comentario sobre él y cuándo; quién lo marca como favorito; sus etiquetas y muchas cosas más que cambian constantemente. Lo interesantísimo cambia con el Ilustración 62: Nubes de tags en Flickr. tiempo, a medida que se agregan más y más contenidos e historias Las Nubes de tags en Flickr facilitan la exploración del usuario. fantásticas a Flickr.” Es decir que Flickr está utilizando los datos agregados por los usuarios de manera colaborativa para agregar valor a las imágenes que almacena: hay que recordar que si bien las imágenes siguen
148
TFG: Análisis de la tendencia Web 2.0, y su aplicación a la relación cliente-empresa IUA Ingeniería de Sistemas – Marco Teórico perteneciendo al usuario, Flickr es dueño de la información que se agrega a los objetos y de esta manera crea valor. Grupos son una forma de dar apoyo a la interacción social en el sitio. Estos son controlados pro administradores que pueden hacerlos privados, públicos o por invitación. Los usuarios pueden asignar sus imágenes a estos grupos, y los miembros de los grupos pueden utilizar foros de discusión para su comunicación. La URI de Fotos por su parte es el camino a todos los recursos de imágenes de Flickr, y las subcarpetas que se presentan en photos/tags es una forma en que puede estructurarse el acceso a estos recursos mediante los tags. Sobre esto podemos analizar el caso de la pagina de nube de tags, donde es posible encontrar los más populares de todos los tiempos, del último día o de la última semana, con el tamaño del vinculo indicando la frecuencia de su uso (esto aplica la práctica de “Facilitar la aparición de los contenidos” del patrón “Aprovechar la inteligencia colectiva”). Siguiendo estos vínculos los usuarios pueden explorar los tags y las imágenes que tiene aplicados dichos tags. Este tipo de exploración es necesaria ya que existen en el sistema miles de tags y por lo tanto sería complicado y poco práctico mostrar la lista completa. Esto permite que los usuarios exploren en los recursos disponibles de una manera intuitiva y encontrando contenidos inesperados pero adecuados a su intención. Al hacer click en alguno de los tags, la URI objetivo tendrá la siguiente forma: http://flickr.com/photos/tags/<nombre del tag> Existen otros mecanismos para navegar a través de los tags presentes en Flickr además de la nube de tags, tanto provistos por Flickr como por terceros, pero nos limitamos a esta para limitar la extensión del marco teórico. 3.8.9.3. Delicious y los marcadores sociales El software social introduce una nueva dimensión a la búsqueda y otras aplicaciones de Internet, como ser permitir a los usuarios agregar lógica personal a algoritmos de computadoras. Al analizar las comunidades de contenidos como parte de los social media mencionamos los casos de Delicious y Digg como comunidades para compartir vínculos y noticias respectivamente. Ambas son parte del fenómeno de marcadores sociales. Analizaremos el caso de Delicious para acercarnos al concepto. Como mencionamos anteriormente, en este servicio los usuarios pueden guardar los marcadores que consideran interesantes o útiles y clasificarlos en base a una serie de tags. Los algoritmos de búsqueda tradicionales (que no utilizan metadatos generados por usuarios como un factor de su búsqueda) basan sus resultados en la masa anónima de usuarios de Internet y proveedores de contenidos. En contraste a esto, al basar una búsqueda en metadatos explícitamente creados y en relaciones presentes en las comunidades de servicios marcadores sociales como Delicious es posible conseguir resultados guiados en base al juicio o criterio de los contactos sociales del usuario.
149
TFG: Análisis de la tendencia Web 2.0, y su aplicación a la relación cliente-empresa IUA Ingeniería de Sistemas – Marco Teórico En la información de su sitio el servicio indica que “Delicious es un servicio de marcadores sociales que permite a los usuarios aplicar tags, guardar, administrar y compartir páginas web desde una fuente centralizada. Con énfasis en el poder de la comunidad, Delicious mejora ampliamente la manera en que la gente descubre, recuerda y comparte en Internet”. El servicio está abierto al uso de cualquier persona para realizar búsquedas, pero sin embargo para poder crear marcadores es necesario hacerlo mediante una cuenta de usuario. La funcionalidad que Delicious ofrece gira en torno exclusivamente a marcadores, y si reducimos a sus conceptos de base ninguno es revolucionario, pero la combinación de estos fue una gran novedad al momento de su desarrollo. Podemos hablar de dos elementos genéricos: marcadores y metadatos. Los metadatos pueden ser clasificados en creados por el usuario y los de sistema. En el nivel más bajo, los metadatos del usuario relacionados a un marcador abarcan meramente tres aspectos: descripción, notas y tags. Estos junto a los metadatos sistémicos (como por ejemplo la cantidad de otros usuarios que han agregado un determinado Ilustración 63: Ejemplo de página personal en Delicious. marcador y la fecha en la que el usuario Representación de los marcadores de un usuario de Delicious. guardo el marcador) son mostrados como la representación de un marcador. Al igual que en el caso mencionado de Flickr, los metadatos de descripción y titulo son informativos y podrían ser utilizables para búsquedas, pero nuevamente se repite el caso explicado de los tags. Primero, al agregar un marcador los tags son muy fáciles de utilizar ya que se ingresan las palabras separadas por espacios, en una interfaz enriquecida que mediante el análisis de contexto sugiere tags en base al comportamiento del usuario y de otros usuarios respecto al mismo marcador. Segundo, los tags son los elementos más importantes a la hora de manejar un marcador, y para esto los tags son organizados en paquetes (o “bundles”) permitiendo así que los usuarios agregar composición lógica a la composición de sus tags. Por último, los tags son el elemento crucial para la búsqueda de marcadores. La página principal de Delicious y otras de sus subpáginas proveen formas de búsqueda y exploración con diversas formas que aprovechan la inteligencia colectiva del servicio. Evitamos mencionar detalles para acotar la extensión, pero podemos analizar algunos que hacen un aprovechamiento interesante de los tags. Entre otras, la opción de “links for you” incluye aquellos marcadores que han sido seleccionados por otros usuarios para un determinado usuario. Esto se logra mediante la aplicación de tags estructurados. En este caso es el tag “for:NOMBRE_DE_USUARIO”. 150
TFG: Análisis de la tendencia Web 2.0, y su aplicación a la relación cliente-empresa IUA Ingeniería de Sistemas – Marco Teórico A su vez el concepto de la búsqueda en base a nombres de usuarios se refleja también en la estructura del las URLs del sitio, que en caso de referirse a los marcadores creados por un usuario determinado utilizando un tag específico tendría la forma: http://delicious.com/<nombre de usuario>/<nombre de tag> En la misma estructura, al incluir otros nombres de usuario podremos ver los marcadores realizados por otras personas (siempre y cuando sean marcadores públicos), permitiendo conocer quien está viendo que cosa y quien está interesado en determinados términos, la calidad de sus datos y la conectividad de su comunidad. 3.8.9.4. Folksonomias En general se entiende por clasificación al resultado de clasificar en un sistema jerárquico y predefinido, lo cual está en desacuerdo con la aproximación no jerárquica y no exclusiva de una folksonomia. Esta es la razón por la cual el uso del término en este contexto puede ser algo controversial. El neologismo también es definido como “una clasificación generada por el usuario, emergente del consenso ‘de-arriba-hacia-abajo’” (106) y es destacado por sus “namespaces típicamente llanos y creados socialmente” (107). En base a estas definiciones es claro que las folksonomias son sobre todo una forma de clasificación, y por tanto se basan en metadatos. En general existen tres tipos de metadatos que pueden ser diferenciados: los metadatos creados de manera profesional (por ejemplo, un catalogo compilado por un grupo de profesionales), los metadatos creados por autores en sus propios documentos y por último los metadatos creados por el usuario aplicados a un documento de su interés y compartidos mediante una comunidad. Una folksonomia utiliza este tercer tipo, admitiendo un vocabulario irrestricto para aplicar tags a objetos. Más aun, se le atribuye a las folksonomias un conceso “de-arriba-hacia-abajo’” y ser creadas de manera social debido a su “enfoque democrático (…) (evitando) muchos de las preocupaciones éticas y políticas de los sistemas centralizados y ‘de arriba-hacia-abajo’” (108). Estas caracterizan un consenso que es obtenido a través de la observación de que a pesar del uso de un vocabulario sin control, un sistema de términos en gran medida en común evoluciona del tagging colaborativo, que coexiste junto a categorías de minorías o incluso personales. Finalmente, un namespace llano es otra característica de una folksonomia, causando el desarrollo hacia una colección de tags no jerárquica y no exclusiva. Este concepto explota la percepción general de que las jerarquías están son subjetivas en su estructura y costosas en términos de que es necesario crearlas y mantenerlas. Un artículo referido a “Linux para PCs” por ejemplo seria clasificado por ejemplo como PC en una capeta Linux por una persona, mientras que para otra podría ser clasificado como Linux dentro de un contexto de PC. Consecuentemente, la idea es despojar a las etiquetas de su interrelación lógica y asignarlas en un único nivel. Notamos que las folksonomias, a pesar de haber sido caracterizadas como de-abajo-hacia-arriba, creadas de manera social y no jerárquicas presentan igualmente varias limitaciones. En general, estas pueden ser agrupadas en base a tres construcciones lingüísticas de homónimos, polisemias, y homónimos. 151
TFG: Análisis de la tendencia Web 2.0, y su aplicación a la relación cliente-empresa IUA Ingeniería de Sistemas – Marco Teórico De manera similar a la que una palabra puede tener diferentes significados también puede suceder con un tag. Los tags homónimos (por ejemplo, aquellos que son iguales sentacticamente con distintos significados) afectan directamente los resultados de búsqueda, asi como también no filtran correctamente pero combinan los resultados relevantes a un grupo de diferentes connotaciones. Por ejemplo el tag “apple” devuelve resultados referidos a la empresa Apple Computer, Apple Records o incluso sino de la fruta. Pasa algo similar con los acrónimos (por ejemplo, el temino SOAP para referise a Simple Object Access PRotocol) corren el riesgo de referise a ideas totalmente distintas (como ser en este caso, un jabon). Estas ambigüedades pueden reducirse al agregar tags adicionales e univocos al realizar la búsqueda. Polisemias sin embargo (describir teminos con significados diferentes pero ligeramente relacionados) presentan un mayor desafio. Los sinónimos por otra parte (se refieren a diferentes términos con significados iguales) manipulan los resultados de las búsquedas al acotarlas de manera artificial. Volviendo al ejemplo de apple, al realizar una búsqueda sobre el término en el contexto de computadoras privara a los usuarios de otros tipos de resultados en los que otra gente se haya referido a por ejemplo mac o Macintosh. El ejemplo de apple muestra problemas que surgen de las formas singulares y plurales de los sustantivos. Cuestiones relacionadas con mayúsculas o minúsculas al manejar teminos que consisten de muchas palabras complementa la imagen de desafíos que enfrentan las folksonomias debido a su característica de no tener un vocabulario controlado. Las folksonomias representan un desarrollo importante para la creación de un entendimiento común y quizás incluso la confianza en las comunidades de internet. Son formadas de una manera de “abajo-hacia-arriba” y es difícil saber de antemano la forma que tomara una folksonomia en particular.
3.8.10. Desarrollo de proyectos Web 2.0 En base a lo estudiado previamente en cuanto a patrones de diseño Web 2.0 y un esbozo del entorno de tecnologías y estándares de desarrollo analizado, es el momento de acercarnos al proceso de desarrollo de proyectos Web 2.0 Para esto podemos analizaremos metodologías que son posiblemente aplicables, así como también las plataformas y librerías que agregan simplicidad y abstracción al desarrollo. Por último, analizamos la posibilidad del uso de software ya existente como base de nuevos proyectos. 3.8.10.2.
Metodologías de desarrollo tradicionales
Una distinción común en las tareas de diseño (por ejemplo, el diseño de bases de datos, de sistemas de información, de procesos) es entre un modelo (como ser el diagrama entidadrelación, diagramas de UML, diagramas de estado) y una metodología para su aplicación. Sobre esa última, podemos decir que existe una distinción entre el diseño arriba-hacia-abajo (de lo general a lo particular) y el diseño abajo-hacia-arriba (de lo particular a lo general). Las metodologías en general usan diversos modelos para estructurar los resultados de los diversos
152
TFG: Análisis de la tendencia Web 2.0, y su aplicación a la relación cliente-empresa IUA Ingeniería de Sistemas – Marco Teórico pasos que se llevan a cabo, y favorecen ciertos tipos de modelos frente a otros. Por ejemplo, la metodología iterativa Proceso Unificado depende fuertemente en modelos UML. Un ejemplo claro de una metodología arriba-haciaabajo es la metodología de cascada clásica, que comienza con un análisis de requerimientos donde se identifica las necesidades del cliente que marca el desarrollo de las tareas del proyecto. Una vez disponibles estos requerimientos es Ilustración 64: Metodologías tradicionales de desarrollo de software. posible hacer una detallada descripción de lo que se supone que el software debe hacer. Cuando un sistema interactúa con otros sistemas, es importante que la definición de interfaces sea solida y que permanezca estable, para que los sistemas relacionados puedan generar componentes y conexiones exitosas. Al momento de trabajar sobre como una especificación se transforma en un sistema vivo, una arquitectura de software define la estructura principal del software, y esto incluye la definición de capas y escenarios. La implementación luego toma la arquitectura y la transforma en código, completando detalles que no han sido definidos en la arquitectura. Luego de que el código ha sido desarrollado, debe ser probado de diferentes maneras, y en base a los resultados de estas pruebas se realiza el despliegue del sistema para dar lugar al uso y mantenimiento de este. En base a esta estructura se han desarrollado otras metodologías que aplicaron el concepto de iteración, manteniendo este flujo de trabajo de forma constante a través de la aplicación de ciclos iterativos, constantemente repitiendo el análisis, diseño, implementación prueba e implementación del software. El mencionado Proceso Unificado es un claro ejemplo de esto, que además rompe la secuencia de los pasos del proceso al proponer que se puedan realizar en forma paralela, trabajando en base a hitos que distinguen los distintos pasos capturando el estado del proceso de desarrollo. 3.8.10.3.
Desarrollo ágil de software
El desarrollo de software en base a metodologías tradicionales y sus variaciones han sido criticados por algunas características que afectan directamente a un proyecto. Es inherente en todos los casos que la documentación debe ser creada de tal manera que contiene los outputs de los diferentes pasos (por ejemplo, especificaciones escritas o en diagramas) que al mismo tiempo son el input para los pasos siguientes. Sucede a menudo que no es necesario en proyectos de software que no necesariamente un programa entero puede ser pre especificado por el cliente, ya que sus demandas se adaptan a la maduración del proyecto.
153
TFG: Análisis de la tendencia Web 2.0, y su aplicación a la relación cliente-empresa IUA Ingeniería de Sistemas – Marco Teórico Un nuevo enfoque fue el surgimiento del concepto de desarrollo ágil de software. Este nombre fue dado por un grupo de figuras conocidas en la comunidad del desarrollo al publicar el “Manifiesto para el desarrollo ágil de software” (109) que se basa en los siguientes valores: Individuos e interacciones sobre procesos y herramientas. Software funcionando sobre documentación comprensiva. Colaboración de los clientes sobre negociación de contratos. Responder al cambio sobre seguir un plan. Podemos ver que los elementos de la derecha en cada frase son puntos fuertes de las metodologías tradicionales. Sin embargo, el manifestó no descarta completamente a estos valores, sino que también los considera pero siempre danto prioridad a los elementos de la izquierda. Además, el manifiesto indica el seguimiento de los siguientes principios: Nuestra principal prioridad es satisfacer al cliente a través de la entrega temprana y continua de software de valor. Son bienvenidos los requisitos cambiantes, incluso si llegan tarde al desarrollo. Los procesos ágiles se doblegan al cambio como ventaja competitiva para el cliente. Entregar con frecuencia software que funcione, en periodos de un par de semanas hasta un par de meses, con preferencia en los periodos breves. Las personas del negocio y los desarrolladores deben trabajar juntos de forma cotidiana a través del proyecto. Construcción de proyectos en torno a individuos motivados, dándoles la oportunidad y el respaldo que necesitan y procurándoles confianza para que realicen la tarea. La forma más eficiente y efectiva de comunicar información de ida y vuelta dentro de un equipo de desarrollo es mediante la conversación cara a cara. El software que funciona es la principal medida del progreso. Los procesos ágiles promueven el desarrollo sostenido. Los patrocinadores, desarrolladores y usuarios deben mantener un ritmo constante de forma indefinida. La atención continua a la excelencia técnica enaltece la agilidad. La simplicidad como arte de maximizar la cantidad de trabajo que no se hace, es esencial. Las mejores arquitecturas, requisitos y diseños emergen de equipos que se autoorganizan. En intervalos regulares, el equipo reflexiona sobre la forma de ser más efectivo y ajusta su conducta en consecuencia. Los métodos agiles consisten de elementos individuales llamados practicas. Las prácticas incluyen el uso de control de versiones, establecimiento de estándares de codificación y dar muestras de avances a los interesados. Si bien la mayoría de las practicas han existido durante muchos años, los métodos agiles realizan una combinación única de estas, acentuando las partes que dan soporte a la filosofía ágil descartando al resto e integrando algunas ideas nuevas. El resultado es un paquete poderoso, solido y auto reforzado. 3.8.10.4.
Extreme Programming
Consecuentemente se han creado metodologías de desarrollo que intentan eludir los problemas de las metodologías clásicas, tratando de ser más livianas en lo que es necesario generar al 154
TFG: Análisis de la tendencia Web 2.0, y su aplicación a la relación cliente-empresa IUA Ingeniería de Sistemas – Marco Teórico comienzo y durante el desarrollo. Un ejemplo es Extreme Programming (XP) 53, que centra sus valores alrededor de la simplicidad, la comunicación, retroalimentación y coraje con principios relevantes. Una de las más sorprendentes premisas de XP es que es posible eliminar fases de requerimientos, diseño y prueba al igual que los documentos formales que las acompañan, aunque sin embargo no se descartan los requerimientos, diseños y pruebas ya que se trabaja sobre todas estas cada día del proyecto. Esta consigna resulta muy extraña debido a que los desarrolladores de software Ilustración 65: Metodología ágil de desarrollo de software. siempre han aplicado formas tradicionales para el desarrollo, y si bien es algo complicado de aplicar es posible gracias a la base de la colaboración cara a cara con el objetivo de eliminar demoras en la comunicación y malentendidos de tal forma en que el equipo no necesita distinguir estas fases, por lo que es posible trabajar en todas las actividades cada día con fases simultaneas. Si bien este enfoque no implica que el equipo será más productivo, si da como consecuencia que se recibirá retroalimentación de una manera mucho más frecuente. Como resultado de esto, el equipo de desarrollo puede conectar rápidamente los éxitos y fracasos a sus causas. La cantidad de trabajo sin probar es muy poca, por lo que el equipo puede corregir errores en el desarrollo como ser cuando el código presenta algún error de diseño o cuando una opinión u acción de un cliente demuestra que una interfaz es algo confusa. Este apretado ciclo de retroalimentación también permite que equipos aplicando XP puedan refinar sus planes rápidamente. Es mucho más sencillo que un cliente refina idea si puede dar su opinión y obtener un prototipo funcionando en pocos días. Este mismo principio se aplica para la prueba, diseño y políticas de equipo. Si surge algún defecto de diseño en la programación o la prueba, es posible utilizar ese conocimiento cuando se analizan continuamente los requerimientos y el diseño del sistema en las siguientes iteraciones. Los equipos que aplican XP realizan prácticamente cada actividad del desarrollo de software de manera simultánea: Análisis, diseño, codificación, prueba y despliegue ocurren con una rápida frecuencia. Si bien es mucho para realizar de manera simultánea, XP logra esto al trabajar en iteraciones cortas, como ser de una semana. En esta semana el equipo hace un poco de cada actividad, focalizando su trabajo en “stories”: pequeños requerimientos o partes de requerimientos que son considerados relevantes, tratando de abarcar por ejemplo entre cuatro y diez de estas stories cada semana. 53
Podemos encontrar más información sobre metodologías agiles y Extreme Programming en el libro “The Art of Agile Development” (145).
155
TFG: Análisis de la tendencia Web 2.0, y su aplicación a la relación cliente-empresa IUA Ingeniería de Sistemas – Marco Teórico A continuación podemos ver como las actividades tradicionales basadas en fases se corresponden con una iteración de XP: Planificación: Cada equipo de XP incluye varios expertos en el negocio (los clientes on-site) que son responsables de tomar decisiones de negocios. Estos apuntan al proyecto en la dirección correcta al clarificar la visión, crear historias, construyendo un plan de liberación del proyecto y manejando riesgos. Los programadores proveen de estimaciones y sugerencias a estos expertos, que son combinados con las prioridades de los clientes en un proceso llamado “El juego de la planificación”. De esta forma y trabajando como esquipo pueden lograr liberaciones pequeñas y frecuentes que maximizan el valor. El esfuerzo de planificación es más intenso durante las primeras semanas del proyecto. Durante las siguientes semanas los clientes continúan revisando y mejorando la visión y el plan de liberación en base a nuevas oportunidades y eventos inesperados. Además del plan general de liberación, el equipo crea un plan detallado para la siguiente semana al comenzar cada iteración. Mediante reuniones diarias y un lugar de trabajo compartido se mantiene a todo el equipo actualizado respecto al estado del proyecto. Análisis: En lugar de utilizar una fase de análisis para definir requerimientos, los clientes onsite trabajan a la par del resto del equipo todo el tiempo. Estos pueden o no ser clientes reales dependiendo del tipo de proyecto, pero son los mejores calificados para determinar que debería hacer el software. Los clientes on-site son responsables de definir los requerimientos, y para hacerlo utilizan la combinación de su conocimiento como clientes combinado con técnicas tradicionales de recolección de requerimientos. Cuando los programadores necesitan información, simplemente la preguntan. Los clientes son los responsables de organizar su trabajo de forma tal de estar listos cuando los programadores pidan la información. Definen requerimientos generales para las stories antes de que los programadores lo necesiten y los requerimientos detallados antes de que los programadores los implementen. Algunos requerimientos son complicados de entender, por lo que estos clientes deben formalizarlos con la asistencia de probadores creando así “pruebas de clientes “o customer tests: ejemplos detallados y ya probados. Los clientes y los probadores crean estos customer tests para una story casi al mismo tiempo que los programadores implementan la story. Para asistirlos en la comunicación, los programadores utilizan un lenguaje general en su código y diseño. El look and feel de la interfaz del usuario no se benefician de estas pruebas, sino que para trabajar sobre las interfaces los clientes trabajan con el equipo para generar bocetos de las pantallas de la aplicación. En algunos casos, trabajan junto a los programadores mientras estos utilizan un software para la creación de las interfaces. Por último, algunos equipos incluyen un diseñador de interacciones que es responsable de la interfaz de la aplicación. Diseño y codificación: XP utiliza diseño y arquitectura incrementales para crear de manera continua y mejorar el diseño en pasos pequeños. Este trabajo es manejado por un desarrollo 156
TFG: Análisis de la tendencia Web 2.0, y su aplicación a la relación cliente-empresa IUA Ingeniería de Sistemas – Marco Teórico en base a pruebas o test-driven development (TDD), una actividad que combina pruebas, programación, diseño y arquitectura. Para dar soporte a este proceso, los programadores trabajan en pares, lo que incrementa la atención y creatividad para manejar cada tarea, y se asegura que una persona en cada par tenga tiempo de pensar en cuestiones de diseño a mayor escala. Los programadores también son responsables de administrar su entorno de desarrollo. Ellos usan un sistema de control de versión para configurar la administración. Integran sus códigos en intervalos de horas y se aseguran de que cada integración es capaz de generar un despliegue. Para dar soporte a este esfuerzo, los programadores también siguen estándares de programación y comparten la propiedad del código. El equipo mantiene una estética compartida del código, y todos deben poder corregir problemas de código sin importar quien haya sido el autor original. Prueba: XP incluye un sofisticado conjunto de prácticas de prueba. Cada miembro del equipo (programadores, clientes y probadores) realiza su propio aporte a la calidad del software. Equipos que aplican XP de buena manera producen solo unos pocos bugs por mes en trabajos completados. Los programadores proveen la primera línea de defensa con TDD, que produce pruebas automáticas de integración y unidad. En algunos casos, los programadores pueden crear pruebas más completas o end-to-end, que ayudan a asegurar que el software hace lo que ellos pretendían. Igualmente, las pruebas de clientes ayudan a asegurar que los programadores puedan alcanzar las expectativas de los clientes. Estos revisan el trabajo en el proceso para asegurar que las interfaces funcionan de la forma en que ellos esperan, y generan ejemplos para los programadores para reglas de negocio complicadas. Finalmente, los probadores ayudan a que el equipo entienda si sus esfuerzos están consiguiendo generar código de alta calidad. Utilizan pruebas exploratorias para buscar sorpresas y errores en el software. Cuando encuentran un error, el equipo conduce un análisis de raíz o root-analysis y considera como puede mejorar su proceso para prevenir bugs similares en el futuro. Los probadores a su vez exploran las características no funcionales del software, como ser la estabilidad y la performance. Los clientes usan esta información para decidir si es necesario crear stories adicionales. El equipo no realiza ninguna prueba manual de regresión. Las pruebas TDD y de clientes llevan a un sofisticado conjunto de pruebas de regresión automáticas. Cuando se encuentran bugs, los programadores generan pruebas automáticas que muestran que estos errores han sido solucionados. Cada vez que los programadores integran (cada algunas horas) hacen correr el conjunto de pruebas de regresión para comprobar si algo se ha roto en el cambio.
157
TFG: Análisis de la tendencia Web 2.0, y su aplicación a la relación cliente-empresa IUA Ingeniería de Sistemas – Marco Teórico El equipo a su vez da soporte a sus esfuerzos de calidad a través de la programación de a pares, trabajo energizado e iteraciones con holgura. Estas prácticas potencian las capacidades que cada miembro del equipo posee para crear software de alta calidad. Despliegue: Los equipos de XP mantienen su software listo para ser desplegado al final de cada iteración. Realizan despliegues para interesados internos cada semana en preparación para una demo de iteración semanal. El despliegue para clientes reales se organiza en base a las necesidades del negocio. Mientras el equipo se mantenga activo, provee de mantenimiento al software que ha liberado. Dependiendo de la organización, el quipo puede también dar soporte a su propio software y en otros casos se tiene un equipo separado para dar soporte a este. De forma similar, cuando el proyecto finaliza el equipo puede dar las tareas de mantenimiento a otro equipo. En este caso el equipo genera una documentación y provee el entrenamiento necesario para el equipo entrante. Practicas XP Thinking Pair Programming
Planificación
Energized Work
✓
Análisis
✓
Diseño y codificación
Prueba
✓
✓
✓
✓
Root-Cause Analysis
✓
✓
Retrospectives
✓
✓
Collaborating Trust
✓
✓
✓
✓
Sit Together
✓
✓
✓
✓
Real Customer Involvement
✓
Ubiquitous Language
✓
✓
✓ ✓
Coding Standards
✓
Iteration Demo Reporting
✓
✓
Informative Workspace
Stand-Up Meetings
Despliegue
✓
✓
✓
✓
✓
Releasing “Done Done”
✓
No Bugs
✓
Version Control
✓
Ten-Minute Build
✓
✓
Continuous Integration
✓
✓
CollectiveCode Ownership
✓
✓ ✓
✓
Documentation Planning Vision
✓
✓
Release Planning
✓
✓
The Planning Game
✓
✓
158
TFG: Análisis de la tendencia Web 2.0, y su aplicación a la relación cliente-empresa IUA Ingeniería de Sistemas – Marco Teórico Risk Management
✓
Iteration Planning
✓
Slack
✓
Stories
✓
Estimating
✓
✓ ✓
✓
Developing Incremental Requirements
✓
✓
Customer Tests
✓
✓
Test-Driven Development
✓
Refactoring
✓
Simple Design
✓
Incremental Design and Architecture Spike Solutions
✓
Performance Optimization
✓
Exploratory Testing
✓
✓ ✓
Tabla 9: Practicas y etapas de Extreme Programing
Esta breve introducción nos da una idea de cómo se desarrolla un proyecto de software en base a la metodología ágil XP. Sin embargo, como toda metodología innovadora es complicada de implementar, siendo que su funcionamiento depende enteramente del equipo que la lleve a cabo, por lo que para su aplicación se realizan sesiones de entrenamiento y adaptación, realizando consideraciones sobre el equipo como un todo y sus actores como individuos: clientes on-site, administrador general, expertos en el negocio, diseñadores de interacción, analistas del negocio, programadores, diseñadores y arquitectos, técnicos especialistas, probadores, entrenadores entre otros. Es un proceso complejo que bien aplicado puede alcanzar su mayor objetivo, que es la simpleza. Claramente no es una metodología que se pueda aplicar para todo tipo de proyecto, sino que se adecua mejor a determinadas situaciones, características y equipos de personas, pero definitivamente como hemos comprobado en base al análisis de los patrones de diseño Web 2.0 este tipo de metodología bien aplicada es la base para el desarrollo de software Web 2.0.
3.8.11. El desarrollo Web En el libro “Web Engineering: The Discipline of Systematic Development of Web Applications” (110) se muestra como diferentes tipos de metodologías incluyendo las tradicionales pueden ser aplicadas al caso especial del desarrollo Web. Podemos decir que las RIAs son solo un caso especial de las aplicaciones web, y por tanto metodologías y sus modelos como ser diagramas de casos de uso, diagramas de clases e interacciones y otros pueden ser aplicados, aunque existe también una fuerte tendencia a la aplicación de modelos agiles debido a sus características. La aplicación de metodologías agiles se convierte en una necesidad en los proyectos Web 2.0, ya que permiten aprovechar los patrones de diseño y generar ventajas competitivas debido a la velocidad de reacción y adaptación a las necesidades de los usuarios a la hora de crear un proyecto. 159
TFG: Análisis de la tendencia Web 2.0, y su aplicación a la relación cliente-empresa IUA Ingeniería de Sistemas – Marco Teórico En este punto debemos hacer referencia a dos patrones de diseño Web 2.0: beta perpetuo y Modelos ligeros y escalabilidad costo-efectiva y. Podemos ver que las prácticas de estos patrones se ajustan a lo planteado por el manifiesto del desarrollo ágil de software en general. Si tomamos algunas de las prácticas del patrón beta perpetuo como ser “liberar temprano y rápido”, “hacer participar a los usuarios como co-desarrolladores y probadores en tiempo real” e “instrumentar los productos” podemos ve como claramente apuntan al valor de “colaboración de los clientes” planteada por el manifiesto. En el caso de la mayoría de los proyectos Web 2.0, inicialmente no existe una base de usuarios al comienzo, por lo que la implementación de este valor tiene conlleva algunas consideraciones. Las prácticas mencionadas funcionan juntas para generar una base de clientes que utilicen el producto. Los clientes subsecuentemente dan retroalimentación sobre el servicio permitiendo que los desarrolladores mejoren el producto, en forma de comentarios y como hemos mencionamos antes en base al uso real de los usuarios del sistema en base a monitorear sus acciones. En base a esta información se genera un “datawarehouse de las acciones de los usuarios” que puede ser explotado en futuros desarrollos. Uno de los ejemplos que hemos mencionado ya es el caso de Flickr, con su generación ágil de nuevas versiones de su servicio. La implementación de este patrón guía el desarrollo de nuevas características, pero al mismo tiempo evita el desarrollo de funcionalidades que no son necesarias que quitan velocidad para entrar al mercado y pueden incrementar el riesgo de fracaso. Aquí es donde notamos que puede existir una contradicción entre este concepto de “no sobre-desarrollar” y la aplicación de metodologías tradicionales, ya que estas buscan definir los requerimientos desde un primero momento y pueden no tener la habilidad para adaptarse a cambios, y generar esfuerzos innecesarios al detectar las nuevas necesidades tarde. Es importante aclarar que la prevención de este sobre-desarrollo no debe atentar a la creatividad, ya que esta es la base de los proyectos y empresas Web 2.0 en general. El segundo patrón mencionado “Modelos ligeros y escalabilidad costo-efectiva” se relaciona claramente al valor de “responder al cambio”. Algunas de las mejores prácticas que analizamos en este caso son “escalar en base a la demanda”, “escalar los modelos de precios e ingresos” y “sindicar los modelos de negocio”. Las prácticas de este patrón apuntan al cambio: cambio en la demanda del propio servicio, cambio en las posibilidades de sacar rédito económico a un servicio, y cambio en el ensamblaje del servicio a través del uso de la sindicación de contenidos y APIs. La ultima practica mencionada es una clara representante de los modelos ligueros, al tercerizar los servicios cuando es práctico y por tanto basarse en los modelos de negocios ya probados para maximizar las posibilidades de aprovechar la idea de negocio del proyecto. Podemos reconocer que en el caso del desarrollo de software para Internet en el contexto de proyectos con forma Web 2.0 las metodologías y modelos tradicionales en general traen una sobrecarga de trabajo innecesario que quita velocidad y adaptabilidad al proceso y que por tanto los métodos agiles parecen aplicarse de mejor forma. 160
TFG: Análisis de la tendencia Web 2.0, y su aplicación a la relación cliente-empresa IUA Ingeniería de Sistemas – Marco Teórico 3.8.11.2.
Model-Driven Web Engineering con UWE UML
La ingeniería Web basada en UML (UWE)54 surgió a finales de los 90s con la idea de encontrar una forma estandarizada de construir modelos de análisis y diseño de sistemas Web en base a los métodos ya existentes en esa época, con el objetivo de utilizar un lenguaje común o al menos definir un mapeos basados en meta-modelos entre los lenguajes existentes. El Unified Modeling Languague (UML) era al parecer el lenguaje a ser elegido por su amplio uso como lenguaje base para modelos orientados a objetos. Una de las características de UML es que provee un conjunto de ayudas para la definición de lenguajes para modelados de dominios específicos (DSL), a modo de mecanismos de expansión. En base a dichos mecanismos se genera UWE principalmente como una expansión de UML, aunque también es compatible con otras metodologías y lenguajes. El desarrollo de UWE es continuado hoy en día en búsqueda de asimilar nuevas capacidades de las aplicaciones Web, como ser transacciones, personalizaciones y aplicaciones asincrónicas. Sucede que el desarrollo de sistemas Web está en constante cambio como es notable en el desarrollo teórico de Web 2.0. UWE está dirigido por la separación de modelos de distintos asuntos describiendo las diferentes etapas de ingeniería de requerimientos, análisis, diseño e implementación del proceso de desarrollo con el objetivo de obtener diferentes vistas de la misma aplicación Web correspondientes a dichas etapas o asuntos. El modelo de contenidos es utilidad para especificar los conceptos que son relevantes al dominio de la aplicación y las relaciones entre dichos conceptos. La estructura de navegación es modelada de manera separada del contenido (aunque claramente se deriva de este último) y representa los diversos caminos de navegación del sistema. El modelo de presentación apunta a mostrar la representación y los aspectos de comunicación usuario-maquina mediante un esbozo de las interfaces. UWE propone al menos un tipo de diagrama UML para la visualización de dichos modelos buscando representar los aspectos estructurales de las diversas vistas. A su vez se utilizan frecuentemente diagramas de interacción o de estado para representar aspectos de comportamiento del sistema Web. Podemos decir que se realiza una separación considerando etapas de desarrollo, vistas del sistema y aspectos como ser la estructura y el comportamiento. Este tipo de separación provee ventajas a la hora de realizar mantenimientos y reingenierías de sistemas web, y también en la generación de sistemas Web para distintos contextos y plataformas. El enfoque del desarrollo dirigido por modelos (MDD) no solo indica el uso de modelos para el desarrollo, sino que también enfatiza en la necesidad de transformaciones en todas las fases del desarrollo. Dichas transformaciones proveen una cadena que permite la implementación automatizada de un sistema en pasos sucesivos desde los diferentes modelos. El desarrollo de sistemas Web es un campo que se presta para la aplicación de MDD.
54
Podemos encontrar más información sobre UWE UML en http://uwe.pst.ifi.lmu.de/index.html
161
TFG: Análisis de la tendencia Web 2.0, y su aplicación a la relación cliente-empresa IUA Ingeniería de Sistemas – Marco Teórico Podemos encontrar una ampliación a esta introducción en el capítulo 7 del libro “Web Engineering: Modelling and Implementing Web Applications” (111). A continuación se realiza un breve desarrollo teórico para lograr acercarnos a los aspectos prácticos del modelado mediante UWE en base a presentaciones realizadas por los autores de UWE (112) y ejemplos que pueden ser encontrados en el sitio oficial de UWE (113). Se presuponen conocimientos básicos de UML, ya que tiene el objetivo de ampliar dichos conocimientos agregando el perfil propuesto por UWE, sin profundizar en el tema de base. 3.8.11.3.
Ejemplo de modelado de análisis y diseño en UWE UML
El primer paso hacia el desarrollo de un sistema Web es la identificación de los requerimientos de una aplicación, y estos pueden ser especificados en UWE mediante un modelo de requerimientos contando con los actores del sistema, y una descripción a manera de esbozo de las funcionalidades como parte de los requerimientos. Posteriormente se realiza el análisis de tales requerimientos mediante el uso de: Casos de uso y sus descripciones. Diagrama de casos de uso. Análisis de flujos mediante diagramas de actividades para la especificación de los requerimientos funcionales (opcional en caso de considerarse necesario). Por otra parte para los desarrollo del diseño se propone el uso de: modelos de contenido para los aspectos de información. modelos de navegación para la estructura de hipertextos y funcionalidades de navegación. modelos de presentación para el esquema de presentación Modelos de proceso y diagramas de proceso para las funcionalidades. Desarrollamos ahora una explicación sobre estos modelos y herramientas UML, acompañando dicho desarrollo con un ejemplo práctico: Una agenda de contactos con actualizaciones de contenidos55. A pesar de ser un caso muy sencillo el portal planteado nos servirá para ver con más claridad lo propuesto por UWE UML. Ya que el objetivo es mostrar los diferentes modelos de UWE IML, no incluimos la totalidad del modelo, sino que desarrollamos al menos un ejemplo de cada diagrama. El modelo completo puede ser observado en la referencia mencionada. En este caso se define como actor genérico al usuario de Internet que accede al sitio, bajo el nombre de “user”. A modo de esbozo de requerimientos, el portal constará con las siguientes características: Cada contacto tiene un nombre, dos números de teléfono, dos direcciones, y un correo electrónico. El usuario puede agregar, actualizar o borrar contactos. 55
Es una adaptación de http://uwe.pst.ifi.lmu.de/exampleAddressBookWithContentUpdates.html
162
TFG: Análisis de la tendencia Web 2.0, y su aplicación a la relación cliente-empresa IUA Ingeniería de Sistemas – Marco Teórico Después de la creación exitosa de un contacto, este debe ser mostrado. En caso de error, debe mostrarse un mensaje indicándolo. Es posible realizar búsquedas de contactos. Se realiza una visualización grafica mediante el uso de diagramas de caso de uso de UML para modelar las funcionalidades requeridas. Adicionalmente se pude agregar un listado de los casos de uso y una descripción de cada uno con el nivel de detalle que sea necesario para el proyecto.
Ilustración 66: Diagrama de Casos de Uso del ejemplo de UWE UML.
Modelo de Contenidos Se utiliza el modelo de contenidos en base a un modelo de dominio de UML utilizando un diagrama de clases sin necesidad de aplicar semánticas adicionales, con el objetivo de representar los requerimientos de datos del sistema propuesto, modelando los datos persistentes.
Ilustración 67: Modelo de Contenidos del ejemplo de UWE UML.
163
TFG: Análisis de la tendencia Web 2.0, y su aplicación a la relación cliente-empresa IUA Ingeniería de Sistemas – Marco Teórico Modelo de Navegación El modelo de navegación tiene como objetivo representar nodos y vínculos de la estructura de hipertextos, diseñar los caminos de navegación y evitar desorientación y cognitive overload. Este modelo es representado mediante el uso de diagramas de clase UML, utilizando semánticas adicionales para modelar elementos del contexto Web. Por una parte el modelo de navegación representa la estructura de información estática de una aplicación Web accesible a un usuario, especificando las funcionalidades de navegación a través de los siguientes estereotipos. < especifica un nodo de hipertexto visitado por un usuario a través de la navegación, y está relacionado a una clase de contenido. <> especifica un hipervínculo o link utilizado para acceder a un objeto de navegación objetivo desde el objeto de navegación origen. Los nodos de estereotipo <> cuentan con otros adicionales semánticos utilizados con el objetivo de modelar la estructura de navegación de forma más completa y clara: <> para indicar los vínculos de navegación que tienen una multiplicidad mayor a 1 en la asociación direccionada <<menú>> para todas las clases de navegación que tienen más de una asociación de salida. Los menús son utilizados para estructurar los vínculos salientes de un nodo, generalmente asociados a una clase de navegación mediante composición, consistiendo en un grupo de vínculos a elementos heterogéneos como ser index, queries, instancias de clases de navegación u otros menús. << query>> para la selección de instancias de una clase de navegación. {isHome} como una etiqueta en una determinada clase de navegación para indicar el nodo inicial de una aplicación. {isLandmark} como una etiqueta en una determinada clase de navegación para indicar que el nodo es alcanzable desde cualquier lugar en la aplicación, y que por tanto todos los otros nodos contienen un vinculo a dicho nodo. Por otra parte, es necesario también considerar por tanto el modelo de procesos, que representara los aspectos dinámicos de una aplicación Web, especificando funcionalidades como ser transacciones y otras actividades. Es necesaria entonces la definición de clases de proceso e integración de dichas clases de proceso en el modelo de navegación de nodos <>, para lo cual se utilizan los siguientes agregados semánticos: <<processClass>> representa un proceso a través del cual un usuario será guiado. En casos de procesos complejos es posible realizar un modelo de procesos adicional. <<processLink>> es utilizado para modelar la asociación entre un nodo de estereotipo <> y un nodo de estereotipo <<processClass>>.
164
TFG: Análisis de la tendencia Web 2.0, y su aplicación a la relación cliente-empresa IUA Ingeniería de Sistemas – Marco Teórico
Ilustración 68: Modelo de navegación del ejemplo de UWE UML.
Modelo de Estructura de Procesos y Flujo de Procesos El modelo de estructura de procesos contiene un grupo de clases de procesos que describen a los procesos correspondientes, mencionados previamente en el modelo de navegación. Estos apuntan a mostrar mayormente la funcionalidad de los procesos necesarios.
Ilustración 69: Modelo de Estructura de Procesos del ejemplo de UWE UML.
165
TFG: Análisis de la tendencia Web 2.0, y su aplicación a la relación cliente-empresa IUA Ingeniería de Sistemas – Marco Teórico Con el objetivo de definir el comportamiento de un proceso en particular se utilizan además diagramas de actividades UML asociados a una <<processClass>> del modelo de navegación, posiblemente en base al refinamiento de diagramas de actividades utilizados para modelar las especificaciones de requerimientos, pudiéndose utilizar opcionalmente diagramas de actividad anidados. El flujo de un proceso consiste de la representación mediante nodos de actividad conectado mediante vínculos de actividad, nodos de control que proveen el control del flujo como ser decisiones y sincronizaciones y nodos objeto que representan el flujo de datos a través del flujo de actividades
Ilustración 70: Ejemplo de Flujo de Procesos del ejemplo de UWE UML.
166
TFG: Análisis de la tendencia Web 2.0, y su aplicación a la relación cliente-empresa IUA Ingeniería de Sistemas – Marco Teórico Modelo de Presentación Este modelo funciona como alternativa a la clásica construcción de prototipos, y tiene como objetivo la representación abstracta del la distribución de elementos de interfaz para la los modelos de navegación y procesos desarrollados previamente. Decimos que es una representación abstracta en el sentido de que una representación concreta definiría a su vez detalles como colores, tamaños, y otros detalles definitivos de una interfaz, los cuales no se incluyen en este modelo para lograr una mayor claridad de diseño. Se utiliza un diagrama de clases UML para estructurar la presentación, utilizando notaciones de contenedores UML, contando con el uso de diagramas de secuencia o interacción UML para modelar el comportamiento de las clases de presentación. Podemos considerar los siguientes elementos semánticos agregados al modelo de clases: <<presentationClass>> son estereotipos estructurales utilizados para representar páginas Web o porciones de páginas Web, contando con una composición jerárquica de elementos de interfaz de usuario <<presentationGroup>> es otro elemento estructural de presentación, y este estereotipo contiene un grupo de elementos <<presentacionClass>>. <<presentacionPage>> es el elemento de presentación de mayor jerarquía, indicando una ventana de un navegador y por tanto conteniendo diversos <<presetationClass>> y <<presentationGroup>>. Como dijimos, estos estereotipos sirven para agrupar elementos de interface de usuario. Podemos mencionar los siguientes: <> <