• No results found

Analyzing the change by contrasting users based on their usage

4. RESULTS

4.6. Analyzing the change by contrasting users based on their usage

En los proyectos Big Data es necesario habitualmente recopilar datos de diversas fuentes, bien por ser parte intrínseca y necesaria del proyecto, bien con el objeto de enriquecer dichos datos y obtener consecuentemente soluciones a los casos de uso y necesidades de negocio de más calidad.

26 Para ello utilizamos el Scraping, un conjun-

to de técnicas que tienen como objetivo la extracción de información bien de páginas web normalmente simulando la navega- ción que las personas hacemos a través de un navegador, bien de otras fuentes, habi- tualmente colecciones de documentos. Ni la documentación ni las páginas web están pensadas para ser leídas a través de una aplicación software sino para ser vistas por personas a través de aplicaciones que faci- litan su lectura página a página. Concreta- mente las páginas web son vistas a través de las aplicaciones software que llamamos

“Navegadores”.26

Para ello se desarrollan aplicaciones específicas, que llamamos Webbots o sencillamen- te Bots, que automatizan la interacción con el sitio web en cuya información estamos interesados. Los Bots realizan diversas funciones, destacando la función de navegación por la página web y la de lectura de los contenidos. A la primera labor le llamamos habitualmente Crawling, y a los bots que realizan esa función Crawlers, Spiders o WebSpiders. A la segunda le llamamos Scraping y a los bots Scrapers o WebScrapers. A estos Bots se les incorpora adicionalmente todo tipo de funciones, por ejemplo de automatización de tareas o de integración con otras aplicaciones y sistemas.

El Bot más conocido es el GoogleBot, que recorre la World Wide Web, recogiendo

información en su base de datos para su motor de búsqueda, aunque son miles, posi- blemente millones los Bots activos en internet. De hecho, se calcula que el tráfico en internet atribuible a Bots supera ya el 60%. Concretamente el tráfico atribuible a WebScrapers estaría en torno al 5% del total del tráfico de internet.

26 Bot Traffic Report 2013, reparto de tráfico en internet entre tráfico de Bots y navegación de personas

| 55 |

BIG INTELLIGENCE: nuevas Capacidades BIG DATA

PARA LOS SISTEMAS DE VIGILANCIA ESTRATÉGICA E INTELIGENCIA COMPETITIVA

Oportunidades de Negocio

En la actualidad hay una fuerte demanda de desarro- llo de este tipo de Bots27, por las enormes oportuni-

dades que hay como resultado de incorporar capa- cidades de toma de decisiones, integración y automatización a sus páginas web corporativas. La gestión de la experiencia de usuario, la gestión de cambios, la inteligencia competitiva o la integración de reglas de negocio son áreas de negocio en las que los Bots se están aplicando. Este tipo de aplicaciones constituyen un cambio sustancial en nuestra manera de interactuar con Internet, contribuyendo en que a medio y largo plazo se transforme completamente.

Se presentan a continuación algunos ejemplos de Bots aplicados al negocio:

Análisis de precios y compras automáticas. Se aplican en compras y pujas por

eBay y otros marketplaces. Este tipo de Bots se denominan Snipers. Incorporan

reglas de negocio que manejan situaciones y excepciones. Este tipo de Bots se han llevado al límite fuera de la web, en el mercado financiero, en el que se hacen

compras automáticas a altísima velocidad, lo que denominamos HFT “high fre-

cuency trading”28.

Búsqueda de ficheros, aplicado al control de pirateo de contenidos.

Verificación de calidad de contenidos, por ejemplo URLs mal construidas, mejora de la calidad de los contenidos, cálculo de rankings.

Agregadores de contenidos, por ejemplo son muy conocidos los agregadores RSS. Empiezan a popularizarse otros, como los agregadores de ofertas de empleo.

La utilización masiva de los Bots debe considerarse una tecnología todavía emer- gente, tanto por su difusión limitada como por la falta de madurez de la Word Wide Web. La mentalidad de interaccionar con los servidores web únicamente mediante navegadores de forma individual por las personas es algo que se mantendrá todavía durante muchos años.

27 “Webbots, Spiders and Screen Scrapers: A guide to Developing Internet Agents with PHP/CURL

(2nd Edition), Michael Schrenk, No Starch Press, 2012

28 Jacob Loveless, Sasha Stoikov, Rolf Waeber - Communications of the ACM Vol. 56 No. 10, Pages 50-56

– “Online Algorithms in High-Frequency Trading: http://cacm.acm.org/magazines/2013/10/168184-

| 56 | Capítulo 3

NUEVAS CAPACIDADES BIG DATA

Con frecuencia el uso de Bots está también asociado a situaciones de negocio de

Investigación e Inteligencia Competitiva, lícita, pero que se desea no hacer pública para precisamente evitar darle directa o indirectamente pistas a la competencia.

A medida que se profundiza en el tránsito hacia una vida digital este tipo de agentes inteligentes cobran más protagonismo. Cada vez es más necesario hacer las webs accesibles a Bots y aplicaciones en general.

Funcionamiento de los Bots, Spiders, Scrapers…

La primera actividad que suelen realizar los Bots es la Descarga de Páginas. Esta es

una labor realizada por un tipo de Bots que llamamos Arañas, (o también en inglés,

“Spiders”), Crawlers, Web Crawlers o Web Walkers. Las Arañas, descargan páginas web se gún los objetivos marcados en la aplicación. Una vez descargada una página buscan los enlaces contenidos dentro de ella y siguen dichos enlaces para descargar la página enlazada. Como esta podría ser una labor infinita, se establece un límite de

profundidad que llamamos nivel de penetración.29

29 La tendencia actual está en el almace-

namiento masivo de los datos para uti- lizaciones de los mismos, comprimién- dolos en lo posible. Tradicionalmente se ha hecho en bases de datos relacionales, actualmente se está pasando a utilizar bases de datos tipo Big Data, al que le dedicamos un apartado en este libro. Una de las razones para realizar alma- cenamiento masivo es el poder realizar estudios históricos, proyecciones a lar- go plazo basadas en la información histórica y finalmente el no perder información que pudiera ser utilizada en el futuro aplicando técnicas todavía no inventadas o solucionando necesidades de negocio todavía no expresadas. Es importante realizar también el almacenamiento de meta-datos que permitan integrar los datos con los objetivos de negocio implementados en la aplicación.

Tras la descarga de las páginas viene la etapa de Análisis Sintáctico (en inglés, “par- sing”), cuyo objetivo es separar de los textos lo que es útil, lo que está orientado a los objetivos de la aplicación, de lo que no, construyendo para ello una estructura de datos ad-hoc para cada página. Es frecuente, de todos modos, que el análisis sintáctico

29 Imagen de Google Bot incluyendo un mapa conceptual mediante la herramienta IHMC Cmap tools:

| 57 |

BIG INTELLIGENCE: nuevas Capacidades BIG DATA

PARA LOS SISTEMAS DE VIGILANCIA ESTRATÉGICA E INTELIGENCIA COMPETITIVA

se realice durante la descarga para reducir la cantidad de información almacenada, pero perdiendo la capacidad de volver a analizar los datos y de aplicar técnicas de proyección y predicción. La técnica del parsing data de los orígenes de la informáti- ca. Se usa por ejemplo en los compiladores, los programas que convierten un texto escrito en un lenguaje de programación en un programa ejecutable en un ordenador.

Por ejemplo el GoogleBot busca imágenes que mostrar en Google Images, ficheros

que mostrar cuando usamos la palabra clave “filetype:” en una búsqueda o enlaces

y contenidos con los que alimentar al algoritmo que decide qué resultados mostrar cuando hacemos una búsqueda sobre unas palabras clave concretas.

Una dificultad adicional del análisis sintáctico es la calidad del texto de la página web. Pueden ocurrir diferentes circunstancias, desde código HTML de baja calidad como mezclas de diferentes contenidos, por ejemplo publicidad, que dificultan el proceso de averiguar en qué consiste el texto que está siendo leído, cuál es su sentido, qué es lo que se quiere comunicar. Para solucionar o al menos paliar esta situación se aplican funcionalidades de limpieza de textos.

Lo que no es sencillo de analizar es el lenguaje humano, que técnicamente llamamos Lenguaje Natural, por la complejidad y ambigüedad del mismo. Sin embargo es parte habitual de los proyectos Big Data, por lo que también le dedicamos un apartado al Procesamiento de Lenguaje Natural en este libro. Frecuentemente nos vamos a encon- trar con que no nos va a ser posible cumplir los objetivos de negocio especificados debido a la incapacidad tecnológica y científica actual de analizar el lenguaje natural. Sin embargo Internet y la WWW han hecho posible que estas tecnologías empiecen a despegar y nos estén proporcionando aplicaciones de alto valor añadido que hasta ahora eran impensables. Esta situación la tratamos en los apartados dedicados al “Procesamiento de Lenguaje Natural” en los capítulos 3 y 4.

La siguiente situación más común que tienen que gestionar los Bots son los Formula-

rios, destacando en particular el formulario de Autenticación Básica, es decir, cuando se accede a una página web a través de usuario y password. Entender el formulario y completarlo emulando como lo entiende un usuario no es trivial. Suponiendo que el formulario sea entendido y completado, entregarlo al Servidor Web de forma correcta y completa es un proceso muy proclive a errores.

Otra situación habitual con la que se tienen que enfrentar los Bots es el establecimiento de sesiones con el servidor web. Cuando accedemos a una página web, el Servidor Web proporciona un identificador (session value) con el objetivo de otorgar una identifica- ción a la persona que navega y proporcionarle diferentes características que tengan

| 58 | Capítulo 3

NUEVAS CAPACIDADES BIG DATA

La autenticación de sesión más habitual es la autenticación por Cookies. Las cookies

son ficheros que, provenientes del Servidor Web se guardan en nuestro ordenador. Ayudan a que el servidor recuerde preferencias y hábitos de navegación de los usu- arios y para que los identifique manteniendo la autenticación de la sesión. Por ejemplo guardamos en una cookie el carrito de la compra con los productos que vamos selec- cionando al hacer una compra online. Un navegador no puede acceder a los ficheros de nuestro ordenador, salvo que explícita y voluntariamente lo hagamos, por ejemplo al cargar un fichero en nuestro webmail. Las cookies son una excepción necesaria.

Cada vez que se interacciona con el Servidor Web se le ha de enviar la cookie. Hay dos tipos de cook-

ies: Temporales, que desaparecen al cerrar el

navegador y Permanentes, que persisten en el

disco duro hasta que llega su fecha de expiración, que es un valor indicado por el servidor web. El servidor modifica los valores incluidos en la cook- ie, no pudiendo hacerlo el navegador nunca. Sin embargo los Bots no tienen esa limitación, pudiendo hacerlo a voluntad.

A la hora de programar el Bot es importante tener en cuenta que las cookies pueden afectar a los formularios ya que contienen variables de sesión.

Un formulario muy particular, que se completa de

forma previa a la autenticación, es el de los códigos

Captcha (Computer Automated Public Turing test to tell Computers and Humans Apart), en el que se inser- ta un texto dentro de una imagen con el objetivo de solicitar explícitamente que sean sólo las personas y no los Bots los que accedan a una determinada página web.

El otro sistema de autenticación de sesión más utilizado es usar la propia URL, usando cadenas de consulta (query string). Las URLs deberían cumplir la arquitectura REST (Representational State Transfer), caracterizada porque cada petición HTTP contiene toda la información necesaria para comprender la petición, incluida la sessión value.

| 59 |

BIG INTELLIGENCE: nuevas Capacidades BIG DATA

PARA LOS SISTEMAS DE VIGILANCIA ESTRATÉGICA E INTELIGENCIA COMPETITIVA

El proceso de Scraping puede ejecutarse mediante varios hilos de ejecución en para- lelo, lo cual resulta ideal para el procesamiento en sistemas distribuidos y por tanto

en sistemas Big Data. En ocasiones esto resulta totalmente necesario: si un servicio

web detecta que es repetida, continua y sistemáticamente visitado desde una misma máquina puede interpretar que se trata del ataque de un hacker y rechazar las visitas desde la dirección IP de la máquina que realiza el Scraping. Un Sistema Distribuido facilita la realización de peticiones desde diferentes direcciones IP, evitando así esta circunstancia. Existen, de todos modos, otras técnicas que no necesitan el sistema distribuido como la de usar máquinas proxies, que consigue que las conexiones se realicen desde diferentes ubicaciones que nos convengan.

En caso de ejecutar la aplicación en un sistema distribuido necesitaremos también un planificador que decida a qué dominios y subdominios y cada cuánto tiempo hacer peticiones.

El Servidor Web

Cuando accedemos mediante un navegador a un Sitio Web, estamos interaccionando

con un Servidor Web, la aplicación encargada de gestionar, confeccionar y servir las

páginas web que se le demandan principalmente a través del protocolo HTTP. Los

Bots tienen que interactuar con el Servidor Web y enfrentarse a la misma prob- lemática que los navegadores. La página web que le sirve al navegador constituye un entorno atractivo y bien conformado con el que las personas interactuamos, pero no está pensado para que interactúe un Bot. En este apartado veremos los aspectos más relevantes que deberá solucionar un Bot en su interacción con el Servidor Web para poder cumplir sus funciones.

Las páginas web que nos presenta el navegador están escritas en HTML, el lenguaje de

la World Wide Web. Para confeccionar las páginas web que el Servidor Web le envía

al navegador, éste tiene que acceder a diversos repositorios que contienen textos,

diversos tipos de ficheros de los que cabe destacar las imágenes, vídeos y otros tipos de recursos multimedia.

En sus inicios, las páginas web eran sencillas y visualizando el HTML eran relativamente fáciles de interpretar: estaba claro lo que era un título, qué era un encabezado o que algo era más importante porque estaba en negrita. Las enormes posibilidades que ofrece internet hicieron evolucionar las páginas web hasta convertirse en lo que hoy son las modernas Aplicaciones WEB. Las páginas web con las que los Bots tienen que interactuar actualmente son complejas. Se lista a continuación algunas de las características ahora existentes:

| 60 | Capítulo 3

NUEVAS CAPACIDADES BIG DATA

La separación de contenidos y estilos en hojas de estilo CSS.

La integración en las páginas HTML de pequeños programas denominados scripts,

que aportan funcionalidad dinámica. El lenguaje más popular actualmente es javas-

cript.

Formularios, para recoger información de los usuarios.

Sistemas de Autenticación, para identificar a los usuarios.

Cookies, pequeños ficheros que se almacenan en el ordenador en los que se reco- ge información de los usuarios y que habilitan que el Servidor Web y los usuarios

interaccionen manteniendo conversaciones coherentes que llamamos Sesiones.

Protocolos Seguros, como la evolución del HTTP, el HTTPS, que hicieron posible el comercio electrónico y las interacciones seguras, certificando que las páginas web que presenta el navegador vienen realmente del servidor con el que queremos interactuar.

Tecnología FLASH, que utiliza plugins de los navegadores y protocolos cerrados.

AJAX (Asynchronous javascript and XML), estandarizada en el año 2006, un Sistema que posibilita la consulta asíncrona de la página web con el servidor, sin necesidad de recargar la página.

Diversos protocolos, como SOAP, RMI, RPC, CORBA y especialmente REST, que

utilizan los servidores para interactuar entre sí.

Aplicaciones integradas en las páginas web, denominadas Widgets. Las primeras fueron las applets, desarrolladas en el lenguaje de programación Java.

Cuestiones que a las personas nos resultan viables, incluso fáciles o triviales no lo son tales para la inteligencia artificial que hoy somos capaces de programar en un Bot. Buenos ejemplos de ello son los siguientes: diferenciar el tema principal de una página web, lo que es importante y lo que no, lo que es publicidad frente a lo que es el contenido, seleccionar un objeto, una imagen, una fecha en un calendario, capturar la información que va cambiando según la página web se lo solicita dinámicamente al servidor mediante AJAX o simular de forma convincente que es un humano y no un programa quien está manteniendo una sesión con el Servidor Web.

Interaccionando con el Servidor Web y los Administradores de Sistemas

Los Servidores Web tienen que lidiar continuamente con los Bots. La primera línea de interacción es el fichero “Robots.txt”. En este fichero se le indica a los Bots en qué páginas pueden y no pueden entrar. De todos modos esta es una medida “volunta-

| 61 |

BIG INTELLIGENCE: nuevas Capacidades BIG DATA

PARA LOS SISTEMAS DE VIGILANCIA ESTRATÉGICA E INTELIGENCIA COMPETITIVA

ria”, ya que el Servidor Web no tiene una manera de saber a priori qué tráfico es de un bot y qué tráfico es de un navegador tras del cual hay un ser humano. Incluir una página en Robots.txt también tiene sus contraindicaciones: es una señal para un Bot malintencionado de que dicha página contiene información relevante.

La única manera que tienen los Admi-

nistradores de Sistemas que gestionan el Servidor Web de saber lo que ocurre o ha ocurrido en el Sistema es a través de la Analítica Web, es decir el análisis de la información que se genera cada vez que llega una petición al Servidor Web. A esta información se le denomina

“Log”. Se consideran varios tipos de

logs: de acceso, de error, propios de una aplicación, de kernel, de depuración, etc. Analizar los logs es la manera más relevante que tienen los administradores de determinar diversos problemas del Servidor Web, entre ellas los que puedan ser cau- sadas por los Bots.

Incluso la actividad de, llamémosle un “Bot de Negocio” o “Business Bot”, pue-

de provocar inintencionadamente diversos problemas en los Servidores Web. Si un Bot hace muchas peticiones a un Servidor Web puede desde consumir ancho

de banda (en inglés “bandwidth stealing”) que deberá pagarse al proveedor de

comunicaciones que le esté dando el servicio hasta incluso llegar a colapsarlo o al menos reducir su calidad de servicio. Un uso abusivo puede provocar la necesidad por parte del proveedor del Servidor Web de escalar la capacidad, o sea aumentar el número de máquinas para dar el servicio, lo cual conlleva un daño económico. Los administradores de sistemas evitan de facto por ejemplo que una página web aloje referencias a imágenes almacenadas en su servidor ya que cuando se cargue dicha página web le solicitará a su servidor la imagen, consumiendo el ancho de banda correspondiente.

Es importante también evitar que un Bot lance descontroladamente peticiones al ser- vidor ya que puede hacer parecer que se está efectuando un tipo de ataque al que los administradores de sistemas están muy atentos: el ataque de Denegación de Servicio,

también conocido por sus siglas en inglés DoS (Denial of Service). En este ataque un

conjunto de Bots hacen peticiones al servidor web de forma simultánea, agotando su capacidad de responder a peticiones y por tanto colapsándolo. Las técnicas que uti- lizan los criminales informáticos pueden resultar similares a las utilizadas en Scraping por lo que se debe ser especialmente cuidadoso al utilizar estas técnicas.

| 62 | Capítulo 3

NUEVAS CAPACIDADES BIG DATA

Al interaccionar mediante un Bot con un servidor web hay que esforzarse en simular