• No results found

La red social utilizada en la implementación, como se presentó en el enfoque,        es Twitter. Para poder realizar el monitoreo de dicha red se creó la clase        TwitterMonitor.java como se ilustra en el diagrama de clase de la Figura 4.2.      Figura 4.2. Diagrama de clase de la etapa   de Monitoreo de Redes Sociales.   

En el método      startListen()  se da inicio a la escucha de interacciones        provenientes de Twitter. Para llevar a cabo dicho streaming sobre la red social se        utilizan clases de la librería Twitter4J . La clase principal que provee el servicio es      14       denominada TwitterStream     y a través de una subscripción permite escuchar las        interacciones de Twitter. En este método además se aplican los distintos filtros de        idioma, tiempo y categoría que deben cumplirse para tomar como válida una        interacción. Dichos filtros se analizan en la sección siguiente (4.3). Cada interacción        válida que es escuchada se agrega al vector de       interactions que muestra la Figura        4.2. Es importante distinguir que las interacciones son de tipo       Status  (que también    es una clase provista por la librería Twitter4J) pero esto se analiza en mayor        profundidad en la sección 4.4. 

Para poder realizar el chequeo temporal de las interacciones denominadas        replies  se usa el módulo Interfaz de Twitter ya que este provee el servicio de        búsqueda de información adicional. 

Por último, cabe destacar que el hilo       t_date permite actualizar cada cierta        ventana de tiempo el filtro temporal que debe aplicarse sobre las interacciones en        cuestión. 

 

14 Twitter4J: Librería Java no oficial de la Twitter API. Para más información: 

4.3. Filtros 

En esta sección, se detallan los distintos filtros que pueden aplicarse sobre        las interacciones escuchadas en la etapa de monitoreo. El filtrado de categorías se        realiza de manera directa sobre el streaming planteado en la sección anterior. Para        ello, se utiliza la clase         FilterQuery de la librería Twitter4J, la cual permite añadir        palabras o    keywords   a una lista y luego filtrar por la misma. Es decir, las        interacciones pasan este filtro sólo si contienen al menos una de las palabras de        dicha lista. 

El filtro temporal como se enunció en la sección anterior, se aplica dentro de        la clase TwitterMonitor.java y se actualiza cada cierta ventana de tiempo. 

En la Figura 4.3 se ilustra una jerarquía de filtros que permite la fácil        incorporación de nuevos filtros. El único implementado es el filtro de idioma o        lenguaje que . Además se permiten las operaciones AND y OR entre distintos filtros,        habilitando la concatenación de diversos tipos de filtrado.      Figura 4.3. Diagrama de clases de filtros complementarios   al filtro temporal y al de categoría.   

4.4. Interacción 

 

La implementación de este módulo se materializa en la clase       Status de la    librería Twitter4J. En la Figura 4.4 pueden visualizarse los métodos utilizados de        dicha clase. 

   

Figura 4.4. Lista de métodos utilizados de  la clase Status de la librería Twitter4j. 

 

Los distintos métodos permiten obtener una mayor cantidad de información        acerca de la interacción en cuestión. Para el monitoreo de redes sociales, su        utilización refiere a datos como el idioma, el tiempo de creación de la interacción y        su contenido textual. En otras palabras, la información que provee esta clase        permite comprobar los filtros a aplicar sobre la interacción. 

Además es utilizada para la obtención de identificadores, tanto de usuarios        relacionados con la interacción, como de la interacción en sí misma. Además, al        igual que en la etapa del monitoreo de redes sociales, permite obtener información        sobre tiempos de creación de la acción original y sus interacciones, y sus        respectivos contenidos. 

 

4.5. Interfaz de Twitter

 

Este módulo hace referencia a la interacción con la red social Twitter y la        posibilidad de realizar consultas sobre usuarios e interacciones. Es utilizada en la        etapa de monitoreo y en la de procesamiento con el objetivo de completar la        información obtenida. En el caso del monitoreo se le debe consultar a Twitter por el        tiempo original de la interacción         reply, cuya información no está incluida dentro de la        interacción escuchada. 

En el caso del procesamiento de información, es además utilizada para        solicitar datos sobre las relaciones entre usuarios. Es fundamental su uso para el        establecimiento de enlaces entre usuarios de manera directa o a través de nodos        intermedios. En particular las solicitudes que se realizan son       showStatus(id­status)   y showFriendship(id­user1,id­user2). La primera permite recuperar una interacción        indicando su valor de identificador (id­status). La segunda permite determinar el tipo        de relación existente entre dos usuarios. 

Sin embargo, en la versión gratuita de Twitter, la cantidad de solicitudes que        se pueden realizar por unidad de tiempo son limitadas. Es por ello, que con el        caudal de consultas que el sistema realiza y las limitaciones propias que establece       

la Twitter API, se derivó en la creación de una pileta de instancias de Twitter. Esta        pileta o   pool se diseñó entonces con el objetivo de poder abastecer una mayor        cantidad de solicitudes. Twitter a través de cuatro valores identificatorios        (credenciales) permite registrar una instancia. Por ende, lo que se hizo fue registrar        distintas credenciales en Twitter con el objetivo de permitir la creación de múltiples        instancias. En la Figura 4.5, se puede visualizar que en la clase       TwitterPool.java   se implementa dicho    pool.  Cabe destacar que sólo se indican tres credenciales        registradas por un tema de prolijidad en el diagrama, sin embargo, se utilizan más        de quince. 

Para saber si una instancia puede o no continuar recibiendo solicitudes se        suscribe un   CustomRateLimitStatusListener que informa al     pool sobre el estado de        de la misma. Este       listener implementa la interfaz     RateLimitStatusListener contenida  en la librería Twitter4j, cuyos métodos de interés son      onRateLimitStatus  onRateLimitReached.   A través de dichos métodos, el         listener se comunica con el        pool para indicar si una instancia de Twitter aún responde solicitudes o si alcanzó su        límite y debe esperarse para volver a utilizarla. Por su parte el       pool contiene una    tabla de hash que contiene las distintas instancias y un valor lógico por cada una de        ellas, que indica si la instancia se encuentra disponible o no.      Figura 4.5. Diagrama de clases del sistema de  administración de instancias de Twitter.   

Related documents