real time social data mining rart documento de diseÑo de...

26
Real Time Social Data Mining RART DOCUMENTO DE DISEÑO DE SOFTWARE 12 de octubre de 2016 Daniel Alejandro Calambás Marín Jaime Andrés Mendoza Mendoza

Upload: truongthuan

Post on 29-Oct-2018

214 views

Category:

Documents


0 download

TRANSCRIPT

Real Time Social Data Mining

RART

DOCUMENTO DE DISEÑO DE SOFTWARE

12 de octubre de 2016

Daniel Alejandro Calambás Marín

Jaime Andrés Mendoza Mendoza

1. Historial de Cambios Fecha Descripción del cambio

12/10/2016 Creación del documento.

15/10/2016 Vista lógica del sistema

15/10/2016 Vista física del sistema

16/10/2016 Primera revisión y corrección de errores

22/10/2016 Persistencia

22/10/2016 Comportamiento del sistema

26/10/2016 Segunda revisión y corrección de errores

2. Tabla de Contenidos

Contenido 1. Historial de Cambios ............................................................................................................. 2

2. Tabla de Contenidos .............................................................................................................. 3

3. Lista de Figuras ...................................................................................................................... 4

4. Lista de Tablas ........................................................................ ¡Error! Marcador no definido.

5. Introducción .......................................................................................................................... 5

6. Arquitectura .......................................................................................................................... 6

6.1. Vista Lógica del Sistema ................................................................................................ 6

6.2. Vista Física del Sistema.................................................................................................. 9

6.3. Vista de Procesos del Sistema ..................................................................................... 11

7. Diseño Detallado ................................................................................................................. 13

7.1. Estructura del Sistema ................................................................................................ 13

7.2. Comportamiento del Sistema ..................................................................................... 15

7.3. Persistencia ................................................................................................................. 20

7.4. Interfaz de Usuario ...................................................................................................... 22

8. Referencias .......................................................................................................................... 26

3. Lista de Figuras Figura 1- Diagrama de Arquitectura y Componentes ................................................................... 6

Figura 3 - Diagrama de Despliegue ............................................................................................... 9

Figura 4 - Diagrama BPMN Proceso de Extracción ...................................................................... 11

Figura 5 - Diagrama BPMN Proceso de Consulta ........................................................................ 12

Figura 6 - Diagrama de Clases Componente Extracción de Datos .............................................. 13

Figura 7 - Diagrama de Clases Componente Carga y Transformación de Datos ......................... 14

Figura 8 - Diagrama de Secuencia: Ingresar al Sistema ............................................................... 15

Figura 9 - Diagrama de Secuencia: Ingresar Página (caso id) ...................................................... 15

Figura 10 - Diagrama de Secuencia: Ingresar Página (caso nombre)¡Error! Marcador no

definido.

Figura 11 - Diagrama de Secuencia: Cargar Archivo Páginas ......... ¡Error! Marcador no definido.

Figura 12 - Diagrama de Secuencia: Buscar Publicación ............................................................. 17

Figura 13 - Diagrama de Secuencia: Ver Detalle Publicación ...................................................... 18

Figura 14 - Diagrama de Secuencia: Buscar Página Base de Datos ............................................. 18

Figura 15 - Diagrama de Secuencia: Visualizar Publicaciones Página¡Error! Marcador no

definido.

Figura 16 - Diagrama de Secuencia: Filtrar Publicación .............................................................. 19

Figura 17 - Diagrama de Secuencia: Graficar Reacciones ........................................................... 20

Figura 18 - Diagrama de Persistencia .......................................................................................... 20

4. Introducción Este documento conocido como SDD (por sus siglas en inglés Software Design Document)

contiene la descripción detallada del diseño del Framework RART. Este proyecto es realizado

como trabajo de grado de la carrera de ingeniería de sistemas de la Pontificia Universidad

Javeriana. Este documento es de suma importancia debido a que contiene toda la información

relacionada al diseño del software y es fundamental para conocer la forma en que estará

estructurado.

5. Arquitectura

5.1. Vista Lógica del Sistema A continuación, se presenta el diagrama de arquitectura y componentes el cual hace parte de

la vista lógica del sistema, y permite entender la estructura y funcionamiento del Framework.

Este diagrama corresponde al que se presenta en la figura 1.

Figura 1- Diagrama de Arquitectura y Componentes

Diagrama de Arquitectura y componentes

La arquitectura propuesta para el Framework RART está representada en el diagrama

mostrado en la figura 1 con sus respectivos componentes. Esta arquitectura está basada en el

patrón de Arquitectura en capas y consta de las siguientes capas [1]:

1. Fuente de Datos: esta es la capa que corresponde a la fuente de datos de donde se va

a adquirir información, para el caso de RART, Facebook es la única fuente de datos de

la cual se alimentará el sistema.

2. Extracción de Datos: dentro de esta capa se realiza un proceso ETL en cual consiste en

extraer la información de la fuente, transformara de acuerdo al modelo de la base de

datos y realizar el debido proceso de persistencia. Dentro de esta capa se encuentran

los siguientes componentes:

a. Extracción: este componente se encarga de realizar el proceso de extracción

de información de Facebook por medio del API. Consta de los siguientes

componentes:

i. Controlador extracción: componente encargado de controlar los

procesos de búsqueda y extracción de información de Facebook.

ii. Consultor: componente encargado de hacer consultas y búsquedas de

información dentro de Facebook.

iii. Extractor: componente encargado de realizar extracción masiva de

información de Facebook. Además, este componente proporciona los

datos en bruto al componente de transformación.

b. Transformación: este componente se encarga de transformar la información

extraída de acuerdo al modelo de la base de datos para guardarla dentro de la

base de datos.

i. Recibidor Transformación: este componente es en encargado de

recibir la información extraída de Facebook en bruto para luego

transformarla.

ii. Transformador: este componente recibe la información organizada y

realiza el proceso de transformación y la envía al componente

encargado de la carga.

c. Carga: esta capa se encarga de realizar el proceso de guardar la información

dentro de las dos bases de datos existentes. Consta de los siguientes

componentes:

i. Recibidor Carga: componente encargado de recibir la información

transformada de acuerdo al modelo de la base de datos.

ii. Cargador Mongo DB: componente encargado de realizar la

persistencia de la información semiestructurada dentro de la base de

datos Mongo.

iii. Cargador Solr DB: componente encargado de realizar la persistencia de

la información NO estructurada dentro de la base de datos Solr.

3. Carga y Transformación de Datos: esta capa tiene dos servicios principales, el primero

es brindar – y la segunda es acceder a la base de datos para realizar tareas de consulta

de información dentro de la misma. Dentro de esta capa se encuentran los siguientes

componentes:

a. Prestador de Servicios: esta capa es la encargada de brindar los servicios tanto

de extracción como de consulta de información. Consta del siguiente

componente:

i. Controlador: este componente es en encargado de recibir las

peticiones de extracción de consulta y dirigirlas al componente

encargado de cada tarea.

b. Acceso DB: este componente es en encargado de consultar información

dentro de la base de datos. Consta de los siguientes componentes:

i. Controlador DB: este componente es el encargado de recibir las

peticiones de consulta y además realizar el proceso de orquestar la

extracción de información en las bases de datos.

ii. DB Consultor Mongo DB: este componente es el encargado de extraer

información dentro de la base de datos Mongo de acuerdo a los

parámetros indicados por el componente controlador DB.

iii. DB Consultor Solr DB: este componente es el encargado de extraer

información dentro de la base de datos Solr de acuerdo a los

parámetros indicados por el componente controlador DB.

4. Almacenamiento: esta capa brinda el almacenamiento de la información extraída por

el Framework y es transversal a las capas de Extracción de Datos y Carga y

Transformación de Datos debido a que estas guardan y consultan información en la

base de datos respectivamente. La siguiente figura muestra la estructura en la que se

almacena la información:

a. Mongo DB: dentro de esta base de datos se almacena la información

semiestructurada previamente extraída.

b. SOLR DB: dentro de este motor de búsqueda se realiza el almacenamiento de

la información NO estructurada que tiene relación con la información

semiestructurada de la base de datos Mongo.

5. Visualización e Interfaces: esta capa brinda dos servicios. El primero son los servicios

que se le brindan al usuario por medio de la interfaz gráfica para que éste pueda

realizar tanto procesos de extracción como procesos de consulta de información.

Dentro de esta capa se encuentran los siguientes componentes:

a. Web App: componente encargado de proporcionar las interfaces necesarias

para que el usuario pueda realizar los procesos de consulta y extracción de

información. Consta del siguiente componente:

i. Solicitud: este componente recibe las peticiones de extracción y

consulta por parte del usuario y es quien finalmente le proporciona al

usuario una respuesta de su solicitud.

b. JSON WS: este componente proporciona a otros sistemas consumir por medio

de servicios web realizar procesos de consulta y extracción de información.

Consta del siguiente componente:

i. WS Provider: Es componente proporciona los servicios web de

consulta y extracción de información y es el encargado de convertir la

información a ser entregada en objetos JSON para transferirlos por los

servicios web.

5.2. Vista Física del Sistema Esta vista representa la arquitectura del sistema como una distribución del software en sus

correspondientes componentes de hardware y se visualiza por medio de un diagrama de

despliegue [6] el cual se muestra en la figura 2.

Figura 2 - Diagrama de Despliegue (1)

1. Servidor Facebook: este nodo corresponde al servidor donde se encuentra alojado

Facebook al cual se tiene acceso por el API llamado RESTfb [2] y contiene el siguiente

componente el cual corresponde a la capa de Data Source dentro de la arquitectura:

a. Facebook: Facebook es la aplicación correspondiente a la red social desde la

cual se extrae información.

2. Cliente: este nodo corresponde al computador desde el cual el usuario del sistema

ingresa para realizar procesos de extracción y consulta de información. Contiene los

siguientes componentes:

a. Navegador: corresponde a la aplicación en la cual se mostrará al usuario la

interfaz gráfica del Framework.

b. Consumidor WS: corresponde a la interfaz de un sistema el cual consume, por

medio de servicios web, los servicios que ofrece RART para extraer y consultar

información.

3. Servidor RART: corresponde al servidor de producción en el cual de ejecuta RART.

Consta de los siguientes componentes:

a. GlassFish 4.1: este nodo corresponde al servidor de aplicaciones dentro del

cual se realizará el despliegue de los siguientes componentes de la aplicación,

los cuales corresponden a las capas de la arquitectura lógica anteriormente

mencionadas:

i. Visualización e Interfaces

ii. Extracción de Datos

iii. Carga y Transformación de Datos

b. Mongo DB: corresponde a la base de datos encargada de almacenar la

información semiestructurada.

4. Servidor Solr DB: este es un nodo dedicado el cual contiene la base de datos SOLR y

contiene el siguiente componente:

a. SOLR: corresponde a la base de datos encargada de almacenar la información

NO estructurada.

Otra posible arquitectura propuesta para realizar el despliegue de RART se muestra en la figura

3 y varía en que el motor de búsqueda SolrDB está inmerso dentro del nodo Servidor RART.

Figura 3 - Diagrama de Despliegue (2)

5.3. Vista de Procesos del Sistema Los procesos del sistema se representaron por medio de diagramas BPMN los cuales son una

herramienta que permite entender de forma clara el comportamiento del sistema a la hora de

realizar una tarea. El Framework permite realizar dos tareas principales:

1. Extracción: este proceso se lleva a cabo cada vez que el usuario desea extraer

información existente dentro de la red social Facebook con el fin de almacenarla

dentro de la base de datos del sistema. En la figura 4 se muestra el diagrama

correspondiente a este proceso.

Figura 4 - Diagrama BPMN Proceso de Extracción

2. Consulta: este proceso se lleva a cabo cuando el usuario desea consultar la

información existente dentro de la base de datos del sistema. El diagrama de la figura

5 representa este proceso.

Figura 5 - Diagrama BPMN Proceso de Consulta

6. Diseño Detallado

6.1. Estructura del Sistema En esta sección se detalla la estructura del sistema por medio de diagramas de clase UML [3]

[4] correspondientes a los distintos componentes del sistema que se describieron en la sección

6.1 Vista Lógica del Sistema:

1. Diagrama de Clases Extracción de Datos: este diagrama muestra las clases que hacen

parte del componente encargado de extraer información de la red social Facebook y

de almacenar dicha información dentro de la base de datos del sistema. Este diagrama

se puede ver en la figura 6.

Figura 6 - Diagrama de Clases Componente Extracción de Datos

2. Diagrama de clases Carga y Transformación de Datos: este diagrama muestra las

clases que hacen parte del componente encargado de extraer información de la base

de datos del Sistema cuando el usuario desea consultarla y se puede apreciar en la

figura 8.

3. Módulo WEB

Figura 7 - Diagrama de Clases Componente Carga y Transformación de Datos

6.2. Comportamiento del Sistema Para modelar el comportamiento del sistema utilizamos diagramas de secuencia según los

estándares de UML [3] [7]. Estos diagramas permiten entender cómo interactúan los

componentes del Framework en cada una de las funcionalidades del sistema.

1. Ingresar al sistema

Este diagrama describe el componente principal con el que usuario interactúa para

ingresar al sistema de manera exitosa. Este diagrama se muestra en la figura 8. Para

mayor detalle ver el anexo 1. Ingresar al Sistema.

Figura 8 - Diagrama de Secuencia: Ingresar al Sistema

2. Ingresar página

Este diagrama describe cómo interactúan los componentes del sistema cuando el

usuario ingresa el nombre o id de una página para extraer la información respectiva de

Facebook. Este caso de uso tiene dos escenarios:

1. Cuando el usuario ingresa el id de una página para buscarla y el sistema extrae la

información correspondiente a la página del id ingresado. Este diagrama se

muestra en la figura 9. Para mayor detalle ver el anexo 2. Ingresar Página (caso ID).

Figura 9 - Diagrama de Secuencia: Ingresar Página (caso id)

2. Cuando el usuario ingresa una palabra que corresponde o está contenida en el

nombre de la página. En este caso el sistema busca dentro de Facebook las páginas

en cuyo nombre se encuentra la palabra ingresada. Este diagrama se muestra en la

figura 10. Para mayor detalle ver el anexo 2. Ingresar Página (caso nombre).

Figura 10 - Diagrama de Secuencia: Ingresar Página (caso nombre)

3. Cargar archivo páginas

Este diagrama es muy similar al del caso de uso anterior, la diferencia es que el usuario

no ingresa la información de una sola fan page, sino que ingresa un archivo TXT con la

información de un conjunto de fan page, ya sean ids o nombres. Este diagrama se

muestra en la figura 11. Para mayor detalle ver el anexo 3. Cargar archivo páginas.

4. Buscar publicación

Este diagrama muestra la interacción de los componentes cuando el usuario busca

información acerca de una fan page dentro de la base de datos del sistema. Este diagrama

se muestra en la figura 12. Para mayor detalle ver el anexo 4. Buscar Publicación.

Figura 12 - Diagrama de Secuencia: Buscar Publicación

Figura 11 - Diagrama de Secuencia: Cargar Archivo Páginas

5. Ver detalle publicación

Este diagrama muestra cómo interactúan los componentes del sistema involucrados en el

caso de uso cuando un usuario quiere visualizar el detalle de una publicación. Este

diagrama se muestra en la figura 13. Para mayor detalle ver el anexo 5. Ver Detalle

Publicación.

Figura 13 - Diagrama de Secuencia: Ver Detalle Publicación

6. Buscar página en la base de datos

Este diagrama muestra la interacción de los componentes encargados de consultar

información dentro de la base de datos cuando el usuario desea ver las publicaciones

existentes dentro de la misma. Este diagrama se muestra en la figura 14. Para mayor

detalle ver el anexo 6. Buscar Página Base de Datos.

Figura 14 - Diagrama de Secuencia: Buscar Página Base de Datos

7. Visualizar publicaciones página

Este diagrama muestra la interacción de los componentes cuando el usuario desea

visualizar las publicaciones de una página previamente buscada. Este diagrama se muestra

en la figura 15. Para mayor detalle ver el anexo 7. Visualizar publicaciones página.

Figura 15 - Diagrama de Secuencia: Visualizar Publicaciones Página

8. Filtrar publicación

Este diagrama muestra los componentes que interactúan cuando el usuario desea filtrar,

por ciertos parámetros, la información de un conjunto de publicaciones previamente

buscadas. Este diagrama se muestra en la figura 16. Para mayor detalle ver el anexo 8.

Filtrar publicación.

Figura 16 - Diagrama de Secuencia: Filtrar Publicación

9. Grafiar reacciones

Este diagrama da a conocer los componentes necesarios para graficar las reacciones de

una publicación escogida por el usuario. Este diagrama se muestra en la figura 17. Para

mayor detalle ver el anexo 9. Grafiar reacciones.

Figura 17 - Diagrama de Secuencia: Graficar Reacciones

6.3. Persistencia Como se ha mencionado anteriormente, RART utiliza dos tecnologías de almacenamiento

Mongo DB y Apache Solr con el fin de almacenar información semiestructurada y no

estructurada respectivamente. En ambas tecnologías la información se almacena en forma de

archivos como se detallará en esta sección.

La figura 18 muestra cómo se estructura y almacena la información dentro de las dos bases de

datos.

Figura 18 - Diagrama de Persistencia

Mongo DB

Dentro de esta base de datos se almacenan los archivos que contiene información

semiestructurada como se describe a continuación:

Página:

1. idPagina: identificador de la fan page dentro de la red social Facebook.

2. nombrePagina: nombre con el que se conoce la fan page dentro de la red

social Facebook.

Publicación: este archivo contiene la información correspondiente a una publicación

realizada por una fan page de la red social Facebook

1. idPublicacion: identificador de la publicación dentro de la red social Facebook.

2. Imagen: imagen adjuntada en la publicación (en caso de tenerla).

Reacción

1. idUsuario: identificador del usuario dentro de la red social Facebook.

2. tipoReacción: tipo de la reacción obtenida en la publicación: Like, Sad, Wow,

Angry, Love, Haha.

3. nombreUsuario: nombre del usuario que reaccionó ante la publicación.

4. fechaReacción: fecha en la que se generó la reacción.

Comentarios

1. idComentario: identificador correspondiente al comentario realizado en una

publicación.

2. idUsuario: identificador del usuario que realizó el comentario en una

publicación.

3. nombreUsuario: nombre del usuario que realizó un comentario en la

publicación.

4. fechaComentario: fecha en la que el usuario realizó el comentario en la

publicación.

Solr

Dentro de esta base de datos se almacena la información no estructurada que corresponde al

mensaje escrito por una fan page en una publicación realizada y a los comentarios realizados

por los usuarios en las publicaciones:

Publicación

1. idPagina: identificador de la fan page dentro de la red social Facebook.

2. idPublicación: identificador de la publicación dentro de la red social Facebook.

3. mensaje: texto que hace parte de la publicación realizada por la fan page.

Comentario

1. idPublicacion: identificador de la publicación dentro de la red social Facebook.

2. idComentario: identificador correspondiente al comentario realizado en una

publicación.

3. comentario: texto que corresponde a un comentario realizado por un usuario

en una publicación.

6.4. Interfaz de Usuario Las interfaces gráficas diseñadas, brindan a los usuarios de RART acceder a las funcionalidades

que el Framework ofrece.

1. Página principal

La ilustración 19 muestra la página principal de RART. En ella se encuentra un menú en

la parte izquierda el cual proporciona al usuario la facilidad de acceder a las principales

funcionalidades del Framework: Extraer Información, Buscar Información, Actualizar

Información y Configuraciones.

Figura 19 - Página Principal RART

2. Menú Extraer Información

Este menú, visualizado en la ilustración 20, permite al usuario realizar las tareas de

extracción de información de la red social Facebook. Dentro de este menú se

encuentran tres botones:

1. Buscar página por ID: este botón permite al usuario ingresar a la funcionalidad

de ingresar un ID de una página existente dentro de la red social Facebook con

el fin de extraer la información de sus publicaciones.

2. Buscar Página por Nombre: este botón permite al usuario ingresar a la

funcionalidad de ingresar una palabra para que el sistema busque dentro de la

red social Facebook las páginas existentes que contengan la palabra ingresada

dentro de su nombre.

3. Buscar Página en Archivo: este botón permite acceder a la funcionalidad

donde el usuario ingresa al sistema un archivo formato .TXT el cual contiene

nombre y/o IDs de páginas de Facebook.

Figura 20 - Menú Extraer Información

3. Menú Buscar Información

En la ilustración 21 se presenta el menú correspondiente a la funcionalidad que

permite al usuario buscar información existente dentro de la base de datos de RART.

Dentro de este menú se encuentran tres botones:

1. Buscar Página: este botón permite al usuario buscar, por medio de una

palabra, las páginas existentes dentro de la base de datos las cuales hayan sido

extraídas previamente.

2. Buscar Publicación: este botón permite al usuario acceder a la funcionalidad

de buscar una publicación dentro de la red social Facebook, por medio de una

palabra y un periodo de tiempo.

3. Listar Todas las Publicaciones: este botón permite al usuario visualizar todas

las páginas existentes dentro de la base de datos de RART las cuales han sido

extraídas previamente.

Figura 21 - Menú Buscar Información

4. Menú Actualizar Información

Esta funcionalidad permite al usuario actualizar toda la información existente dentro

de la base de datos. Como se muestra en la ilustración 22, cuando el usuario oprime el

botón correspondiente, el sistema empieza a actualizar toda la información de las

páginas y sus respectivas publicaciones existentes dentro de la base de datos con la

información de Facebook.

Figura 22 - Actualizar Información

5. Menú Configuraciones

Como se muestra en ilustración 23, esta funcionalidad permite al usuario configurar en

el sistema el token de acceso a Facebook, y las IDs y puertos correspondientes a

Mongo DB y Solr DB. Esta información se encuentra detallada en el anexo Manual de

Instalación y Configuración.

Figura 23 - Menú Configuraciones

7. Referencias [1]. Pääkkönen, P., & Pakkala, D. (2015). Reference architecture and classification of

technologies, products and services for big data systems. Big Data Research, 2(4),

166-186.

[2]. Restfb 2016. RestFB is a simple and flexible Facebook Graph API client written in Java.

It is open source software released under the terms of the MIT License.

http://restfb.com/

[3]. Larman, C. (1999). UML y Patrones. Pearson.

[4]. The Unified Modeling Language (2009-2016). UML Class and Object Diagrams

Overview. Recuperado de http://www.uml-diagrams.org/class-diagrams-

overview.html

[5]. The Unified Modeling Language (2009-2016). UML Component Diagrams. Recuperado

de http://www.uml-diagrams.org/component-diagrams.html

[6]. The Unified Modeling Language (2009-2016). Deployment Diagrams Overview.

Recuperado de http://www.uml-diagrams.org/deployment-diagrams-overview.html

[7]. The Unified Modeling Language (2009-2016). UML Sequence Diagrams. Recuperado de

http://www.uml-diagrams.org/sequence-diagrams.html