recuperación de noticias ordenadas temporalmente y por zonas utilizando funciones combinadas de...

Upload: luis-ignacio-aita

Post on 05-Oct-2015

22 views

Category:

Documents


0 download

DESCRIPTION

Este proyecto de tesina se aboca a investigar y mejorar las técnicas de recuperación deinformación sobre una base de datos existente de noticias obtenidas de redes sociales y diarios enlínea.Dicha información ya se encuentra clasificada e indexada por diversos campos, de los cualesvale destacar la pertenencia geográfica de la noticia, tanto en forma semántica (teniendo en cuentalocalidad, partido, provincia, etc. en forma de árbol) como geográfica (latitud, longitud).El motor de indexación utilizado para la generación de la base de datos es Apache Solr/Lucene yel set de datos fue generado en el marco del proyecto de extensión “Georreferenciación deContenidos para el proyecto Zonales”, en adelante “Zonales”, llevado adelante por un convenioentre la sede Puerto Madryn de la Universidad y la empresa “Mediabit S.A.”, del cual formé partedel equipo de desarrollo. En la siguiente sección se describe más ampliamente este proyecto.La selección del motor de búsqueda no solo se basa en el antecedente del proyecto ejecutado y labase de datos generada, sino además en el trabajo “Distributed Search on Large NoSQLDatabases”[Tinetti, Barry, Aita, Páez, PDPTA2011] co-escrito por el autor, en el cual secomprobaron las capacidades y el rendimiento del servidor de indexación y búsquedas Apache Solrrespecto a las características de escalabilidad y disponibilidad en ambientes heterogéneos. Estetrabajo dio pie a la formación dentro de la sede de un grupo de investigación en el área.El presente trabajo pretende comprobar que es posible mejorar la combinación de funciones debúsqueda y recuperación de la información almacenada en el índice existente, principalmente enrelación con la pertenencia geográfica y la antigüedad de la información buscada.

TRANSCRIPT

  • Universidad Nacional de la Patagonia San Juan Bosco

    Facultad de Ingeniera

    Departamento de Informtica

    Sede Puerto Madryn

    Recuperacin de noticias ordenadas temporalmente y

    por zonas utilizando funciones combinadas de

    recuperacin de informacin de Apache SolrIndexacin de contenidos sobre bases de datos NoSQL

    Tesina de Grado para

    Licenciado en Informtica

    Autor

    Luis Ignacio Aita

    Tutor

    Lic. Damin Barry

    Fecha

    Octubre 2014

  • 1 Agradecimientos

    A mi esposa, quien me apoy en todo mi elstico trayecto acadmico y a mis dos hermosas

    hijas.

    A mi madre Ana Mara Aita, quien me dio mucho ms que el apellido en la vida.

    A mi amigo y hermano de la vida Juan Pablo Martini.

    A mi tutor y amigo Lic. Demian Barry, quien me apoy e insisti para finalizar mi carrera y

    me acompao en el desarrollo del presente trabajo de tesina.

    A mi socio, amigo y compaero acadmico Juan Manual Cortez y todos mis compaeros de

    trabajo y estudio.

    A todos los docentes y compaeros de estudio que he conocido a lo largo de mi carrera, con

    los cuales he compartido muchos mates y buenos momentos, y en donde he encontrado

    muchos buenos amigos.

  • 2 Resumen

    Este proyecto de tesina se aboca a investigar y mejorar las tcnicas de recuperacin de

    informacin sobre una base de datos existente de noticias obtenidas de redes sociales y diarios en

    lnea.

    Dicha informacin ya se encuentra clasificada e indexada por diversos campos, de los cuales

    vale destacar la pertenencia geogrfica de la noticia, tanto en forma semntica (teniendo en cuenta

    localidad, partido, provincia, etc. en forma de rbol) como geogrfica (latitud, longitud).

    El motor de indexacin utilizado para la generacin de la base de datos es Apache Solr/Lucene y

    el set de datos fue generado en el marco del proyecto de extensin Georreferenciacin de

    Contenidos para el proyecto Zonales, en adelante Zonales, llevado adelante por un convenio

    entre la sede Puerto Madryn de la Universidad y la empresa Mediabit S.A., del cual form parte

    del equipo de desarrollo. En la siguiente seccin se describe ms ampliamente este proyecto.

    La seleccin del motor de bsqueda no solo se basa en el antecedente del proyecto ejecutado y la

    base de datos generada, sino adems en el trabajo Distributed Search on Large NoSQL

    Databases[Tinetti, Barry, Aita, Pez, PDPTA2011] co-escrito por el autor, en el cual se

    comprobaron las capacidades y el rendimiento del servidor de indexacin y bsquedas Apache Solr

    respecto a las caractersticas de escalabilidad y disponibilidad en ambientes heterogneos. Este

    trabajo dio pie a la formacin dentro de la sede de un grupo de investigacin en el rea.

    El presente trabajo pretende comprobar que es posible mejorar la combinacin de funciones de

    bsqueda y recuperacin de la informacin almacenada en el ndice existente, principalmente en

    relacin con la pertenencia geogrfica y la antigedad de la informacin buscada.

  • ndice General1 Agradecimientos................................................................................................................................32 Resumen............................................................................................................................................53 Introduccin.......................................................................................................................................9

    3.1 Motivacin del Proyecto..........................................................................................................103.2 Objetivos..................................................................................................................................113.3 Hiptesis..................................................................................................................................123.4 Aporte.......................................................................................................................................123.5 Metas........................................................................................................................................123.6 Metodologa.............................................................................................................................13

    3.6.1 Sobre la metodologa de investigacin............................................................................133.6.2 Sobre la metodologa de desarrollo..................................................................................15

    4 Marco Terico..................................................................................................................................174.1 Sistemas Distribuidos..............................................................................................................17

    4.1.1 Conceptos.........................................................................................................................174.1.2 Propiedades......................................................................................................................184.1.3 Aplicaciones.....................................................................................................................204.1.4 Ventajas............................................................................................................................214.1.5 Desventajas......................................................................................................................224.1.6 Perspectivas......................................................................................................................22

    4.2 Bases de Datos Distribuidas....................................................................................................234.2.1 Conceptos.........................................................................................................................234.2.2 Diseo y arquitecturas......................................................................................................244.2.3 Transacciones...................................................................................................................274.2.4 Control de concurrencia...................................................................................................274.2.5 Consultas..........................................................................................................................284.2.6 Clasificacin.....................................................................................................................284.2.7 Ventajas y desventajas......................................................................................................30

    4.3 Bases de Datos NoSQL............................................................................................................314.3.1 Introduccin.....................................................................................................................314.3.2 Definicin.........................................................................................................................324.3.3 Tipos de bases de datos NoSQL.......................................................................................344.3.4 Tcnicas utilizadas por las bases de datos NoSQL..........................................................354.3.5 Gestores de bases de datos NoSQL..................................................................................38

    4.4 Big Data...................................................................................................................................424.4.1 Introduccin.....................................................................................................................424.4.2 Definicin.........................................................................................................................434.4.3 Ventajas............................................................................................................................444.4.4 Desventajas......................................................................................................................464.4.5 Aplicaciones.....................................................................................................................464.4.6 Caractersticas..................................................................................................................464.4.7 Herramientas....................................................................................................................47

    5 Apache Solr.....................................................................................................................................495.1 Introduccin.............................................................................................................................495.2 Componentes principales.........................................................................................................505.3 Lucene......................................................................................................................................51

    5.3.1 Comparacin con la tecnologa de base de datos tradicional...........................................525.4 Indexacin................................................................................................................................52

    5.4.1 Cmo Solr ve al Mundo...................................................................................................545.4.2 Anlisis de campos...........................................................................................................55

    5.5 Bsquedas................................................................................................................................555.5.1 Relevancia........................................................................................................................59

  • 5.5.2 Modalidad y sintaxis de las consultas Solr......................................................................616 Diseo e implementacin de la experimentacin............................................................................64

    6.1 Introduccin.............................................................................................................................646.2 Zonales.....................................................................................................................................64

    6.2.1 Por qu Zonales?............................................................................................................646.2.2 Objetivos..........................................................................................................................646.2.3 Primera etapa del proyecto...............................................................................................656.2.4 Segunda etapa del proyecto..............................................................................................686.2.5 Construccin de un motor de extraccin de informacin................................................686.2.6 Clasificacin de la informacin.......................................................................................716.2.7 Bsqueda de Informacin y Apache Solr.........................................................................716.2.8 Arquitectura......................................................................................................................726.2.9 Resultados del proyecto...................................................................................................73

    6.3 Bitcora del proyecto de Tesina...............................................................................................746.3.1 Diseo..............................................................................................................................746.3.2 Pruebas.............................................................................................................................876.3.3 Resultados........................................................................................................................93

    6.4 Infraestructura..........................................................................................................................967 Conclusiones....................................................................................................................................988 Lineas futuras................................................................................................................................1009 Referencias....................................................................................................................................10110 Anexos.........................................................................................................................................103

    10.1 Anexo 1: Definicin de campos del esquema Solr en la etapa 1.........................................10310.2 Anexo 2: Extensin analizador de consultas DisMax en solrconfig.xml en la etapa 1.......10410.3 Anexo 3: Formatos estandarizados de noticias (posts)........................................................105

    10.3.1 Formato XZone:...........................................................................................................10510.3.2 Formato JZone:............................................................................................................106

    10.4 Anexo 4: Definicin de campos del esquema Solr en la etapa 2.........................................10610.5 Anexo 5: Set de datos de pruebas D1..................................................................................10810.6 Anexo 6: Set de datos de pruebas D2..................................................................................10910.7 Anexo 7: Resultados Esperados para los distintos escenarios de prueba.............................110

    10.7.1 RE1...............................................................................................................................11010.7.2 RE2...............................................................................................................................11110.7.3 RE3...............................................................................................................................11210.7.4 RE4...............................................................................................................................11310.7.5 RE5...............................................................................................................................11410.7.6 RE6...............................................................................................................................11510.7.7 RE7...............................................................................................................................11610.7.8 RE8...............................................................................................................................117

  • Luis Ignacio Aita Pgina 9

    3 Introduccin

    En la actualidad existe gran cantidad de sitios web que procesan grandes volmenes de

    informacin, la cual es necesario manejar eficientemente. Principalmente por las siguientes razones:

    La popularidad de los sistemas de gestin de contenidos (CMS, Content Management

    System) como portales en general y como plataformas de colaboracin en particular

    La llamada Web 2.0 ha definido un conjunto de aplicaciones que facilitan la interaccin con

    gran volumen de contenido multimedia.

    Crecimiento en la produccin de informacin dentro de las organizaciones ya sea por

    produccin de los sistemas o por la digitalizacin de informacin existente.

    En suma se ha pasando de hablar de gigabyte de informacin a hablar con total normalidad del

    orden de los petabytes. Esta situacin ha generado el desafo de mejorar las herramientas de

    bsqueda en lo que se denomina information retrieval utilizando para ello diversas tcnicas.

    Claramente los buscadores en Internet (Google, Yahoo, Bing, etc.) han solucionado en parte el

    problema pero han introducido otro que no es menor: la supuesta informacin recuperada es

    sesgada al criterio de ordenamiento de cada buscador y no precisamente resuelve la problemtica de

    encontrar lo que se necesita.

    Para resolver el problema de la recuperacin de la informacin es necesario conocer (en parte) el

    perfil de la persona que est buscando, y la manifestacin de inters de la misma. Las redes sociales

    han resuelto (tambin en parte) la problemtica del vnculo entre personas y sus temas de inters

    pero sin ocuparse del contenido de la informacin.

    La segmentacin de la informacin en reas geogrficas ligadas a la ubicacin de cada individuo,

    permitirn a los distintos usuarios de la red encontrar informacin segn rdenes de proximidad.

    Para ello es necesario contar con:

    Segmentacin de la informacin mediante etiquetas: clasificacin, segmentacin, generacin

    automtica de atributos.

    Perfil del usuario basado en pertenencia geogrfica, identidad cultural y hbitos.

    Motor de bsqueda que jerarquice la informacin analizando la clasificacin de la misma y

    los hbitos del usuario.

    Recuperacin de noticias ordenadas temporalmente y por zonas utilizando funciones combinadas de recuperacin deinformacin de Apache Solr

  • Luis Ignacio Aita Pgina 10

    En este sentido el concepto de pertenencia geogrfica es sumamente importante en el desarrollo

    del presente trabajo.

    3.1 Motivacin del Proyecto

    En la Sede Puerto Madryn de la Universidad Nacional de la Patagonia San Juan Bosco se form

    un equipo de vinculacin y transferencia tecnolgica con la finalidad de mejorar la calidad

    tecnolgica de las organizaciones destinatarias, brindando cursos y realizando convenios con

    empresas del ramo, como parte de la realizacin de prcticas profesionalizantes en proyectos de

    extensin.

    Uno de estos convenios se firm con la empresa Mediabit S.A. Esta empresa se especializa en

    comunicacin, asesoramiento e integracin tecnolgica orientada a los negocios en Internet

    (Internet Bussines Provider).

    Dentro del marco de este convenio, el equipo trabaj dentro de un proyecto mencionado

    anteriormente. Zonales es un gestor de contenidos web (www.zonales.com) que brinda un

    conjunto de servicios de informacin reunidos en un mismo lugar que poseen un factor en comn:

    la georreferenciacin de la informacin y servicios desde una perspectiva local para cada

    comunidad. Dentro del portal, cada usuario puede consultar y publicar contenidos relacionados con

    su localidad y zonas de inters, generando informacin desde la periferia hacia el centro

    La ltima versin generada de Zonales estuvo en linea aproximadamente seis meses en forma

    totalmente funcional. El volumen de datos que se gener durante ese tiempo fue de

    aproximadamente un milln y medio (1.500.000) de documentos.

    Actualmente la informacin clasificada por zona y por fuente se recupera utilizando una

    combinacin de funciones de recuperacin diseada durante el desarrollo del proyecto.

    La necesidad de comprobar y mejorar este conjunto de funciones es la principal motivacin de

    este proyecto, en concreto, disear, investigar y probar diversas combinaciones de funciones de

    recuperacin y filtros de informacin para que los datos recuperados sean de inters para el usuario

    en el marco geogrfico-temporal.

    Motiva adems la realizacin de este trabajo la experiencia adquirida por el autor en la temtica

    al formar parte del grupo que escribi el paper Distributed Search on Large NoSQL

    Databases[Tinetti, Barry, Aita, Pez, PDPTA2011] mencionado anteriormente, el cual fue

    publicado en el ao 2011 en la Conferencia Internacional sobre Tcnicas y Aplicaciones de

    Recuperacin de noticias ordenadas temporalmente y por zonas utilizando funciones combinadas de recuperacin deinformacin de Apache Solr

  • Luis Ignacio Aita Pgina 11

    Procesamiento Paralelo y Distribuido en Estados Unidos, material que ser utilizado como parte de

    este trabajo de tesina.

    Adems formo parte del grupo de investigacin sobre bases de datos NoSQL que se form en la

    sede Puerto Madryn de la Universidad, dentro del cual participo del proyecto Tcnicas de

    Recuperacin de Informacin en Grandes Volmenes de Datos Heterogneos con Bases de Datos

    NoSQL, enfocado en la evaluacin de tcnicas existentes para recuperacin eficiente de

    informacin sobre grandes volmenes de datos heterogneos.

    Dichas tcnicas permitirn establecer las capacidades necesarias con las que debera contar una

    base de datos de informacin masiva, tanto desde la perspectiva de almacenamiento y tcnicas de

    indexacin, como de distribucin de las consultas, escalabilidad y rendimiento en ambientes

    heterogneos.

    El presente trabajo de tesina forma parte de los trabajos de investigacin realizados en el marco

    del proyecto de investigacin mencionado. Aprovechando el gran volumen de informacin generada

    en Zonales y, sumado a esto, las tcnicas ya utilizadas para la recuperacin, ordenamiento y filtro de

    la informacin en forma geogrfica-temporal, aplicar y evaluar nuevas tcnicas que permitan

    mejorarlas y optimizarlas.

    3.2 Objetivos

    Son objetivos de la tesina:

    Profundizar los conocimientos tericos del autor sobre bases de datos NoSQL, funciones de

    recuperacin y filtro de informacin y distribucin de los datos.

    Estudiar Gestores de Bases de Datos NOSQL actuales y sus caractersticas principales.

    Mejorar la recuperacin y el ordenamiento de la informacin clasificada del proyecto

    Zonales.

    Que el resultado de la tesina sea de utilidad para la investigacin en el campo de las bases de

    datos NoSQL, especialmente en las recuperacin clasificada y ordenada de informacin en

    grandes volmenes de datos.

    Recuperacin de noticias ordenadas temporalmente y por zonas utilizando funciones combinadas de recuperacin deinformacin de Apache Solr

  • Luis Ignacio Aita Pgina 12

    Que el resultado de la tesina sea de utilidad para el proyecto de investigacin Tcnicas de

    Recuperacin de Informacin en Grandes Volmenes de Datos Heterogneos con Bases de

    Datos NoSQL

    Finalmente, es un objetivo inherente y principal de un proyecto de tesina el hacer de

    integrador de los conceptos asimilados en la carrera, mediante el diseo y realizacin de un

    trabajo final multidisciplinario, facilitando la construccin de una sntesis metodolgica para

    la obtencin y/o generacin de conocimiento por parte del alumno.

    3.3 Hiptesis

    Tomando como base de partida el ndice existente en el proyecto Zonales, se pretende demostrar

    en el presente trabajo que es posible mejorar las funciones de bsquedas utilizadas para la

    recuperacin de la informacin, de tal manera que cumplan con los requerimientos del proyecto

    Zonales, incorporando clasificadores como pertenencia geogrfica, variables de tiempo y

    tipificacin de la informacin.

    3.4 Aporte

    La ejecucin del presente proyecto de tesina permitir el diseo y desarrollo de tcnicas

    avanzadas de indexacin y bsqueda de informacin utilizando Apache Solr/Lucene,

    transformndose en un valioso aporte tanto para el proyecto Zonales (discontinuado) como para el

    Grupo de Investigacin de bases de Datos NoSQL, en particular para el proyecto Tcnicas de

    Recuperacin de Informacin en Grandes Volmenes de Datos Heterogneos con Bases de Datos

    NoSQL.

    3.5 Metas

    A continuacin se lista un conjunto de metas cuyo cumplimiento permitir el logro de los

    objetivos delineados.

    1. Elaborar un marco terico que de sustento al desarrollo de la tesina.

    2. Relevar y analizar documentacin terica sobre clasificacin y recuperacin de informacin

    utilizando Apache Solr/Lucene en combinacin con otras bases NoSQL.

    3. Interiorizarse en las tecnologas y metodologas utilizadas para la recuperacin de

    informacin en grandes volmenes de datos.

    Recuperacin de noticias ordenadas temporalmente y por zonas utilizando funciones combinadas de recuperacin deinformacin de Apache Solr

  • Luis Ignacio Aita Pgina 13

    4. Estudiar y comparar diversas combinaciones de funciones de recuperacin sobre la base de

    datos de informacin existente.

    5. Replicar la base de datos en un ambiente local para poder realizar y documentar todas las

    pruebas necesarias para optimizar las combinaciones de funciones de recuperacin de

    informacin.

    6. Encontrar la combinacin ptima aplicable a la base de datos existente.

    7. Adquirir un amplio conocimiento de la tecnologa implementada, a fin de tener la capacidad

    de asesorar a los interesados sobre las diferentes posibilidades que ofrece el producto, de

    acuerdo a cada necesidad en particular.

    8. Seleccionar y probar una de las combinaciones con el fin de implementarla utilizando el

    modelo de datos y servicios del proyecto Zonales.

    3.6 Metodologa

    3.6.1 Sobre la metodologa de investigacin

    Entre los objetivos principales de la presente tesina est el fortalecimiento de los conocimientos

    del autor, por lo tanto es fundamental equilibrar y adquirir los conocimientos especficos en la

    materia. Para ello se prevn, dentro de las actividades, el estudio de la disciplina en forma

    sistemtica.

    Se utilizar el mtodo propuesto por Brbara A. Kitchenham[Kitchenham, Brereton, Budgen,

    Turner, Khalil 2006] con una adaptacin para proyectos de fin de carrera propuesta por un grupo de

    investigacin conjunto de la Universidad de Castilla La Mancha, Espaa y de la Universidad del

    Bio Bio de Chile[Gutirrez, Ros, Calero, Fernndez, Piattini 2008]. A continuacin se detalla un

    resumen del mtodo extrado de ambas publicaciones.

    Dado que las disciplinas de computacin son relativamente nuevas respecto a otras disciplinas,

    existen pocas metodologas que guen el desarrollo de revisiones sistemticas. Kitchenham propone

    un mtodo basado en pautas desarrolladas para la investigacin mdica y que adapt para ser

    utilizadas por un equipo de investigadores en el mbito de la Ingeniera de Software.

    Segn la autora, una revisin sistemtica se define como la manera de evaluar e interpretar toda

    la investigacin disponible relevante respecto a un interrogante de investigacin particular, en un

    rea temtica o fenmeno de inters. Los estudios individuales que contribuyen a una revisin

    Recuperacin de noticias ordenadas temporalmente y por zonas utilizando funciones combinadas de recuperacin deinformacin de Apache Solr

  • Luis Ignacio Aita Pgina 14

    sistemtica se denominan estudios primarios, una revisin sistemtica se considera un estudio

    secundario. El mtodo se divide en tres etapas fundamentales que son:

    1. Planificacin de la revisin.

    2. Desarrollo de la revisin.

    3. Publicacin de los resultados de la revisin.

    En la adaptacin propuesta se considera que en el caso de un proyecto de fin de carrera

    generalmente el trabajo es realizado por un solo investigador-alumno, y la supervisin est a cargo

    de un tutor o gua. A continuacin se presentan un par de tablas comparativas entre el mtodo

    original y la propuesta adaptada a tesinas de fin de carrera:

    Etapa 1: Planificacin de la revisin

    Identificar la necesidad de la revisin Definir un protocolo de revisin. Validar el protocolo de revisin

    Etapa 2: Desarrollo de la revisin

    Identificacin de Investigaciones relevantes. Seleccin de los estudios primarios. Evaluacin de la calidad del estudio. Extraccin y monitoreo de datos. Sntesis de datos

    Etapa 3: Publicacin de los resultados.

    Escribir reporte de la revisin. Validar reporte de la revisin.

    Tabla 1: Metodologa de Kitchenham

    Etapa 1: Planificacin de la revisin

    Identificar la necesidad de la revisin Definicin de un protocolo de bsqueda. Definir un protocolo de revisin. Evaluacin de la planificacin.

    Etapa 2: Desarrollo de la revisin

    Bsqueda de los estudios primarios. Seleccin de los estudios primarios. Extraccin y gestin de datos. Sntesis de datos

    Etapa 3: Publicacin de los resultados.

    Escribir reporte de la revisin. Evaluacin del reporte de revisin.

    Tabla 2: Adaptacin para proyectos de fin decarrera

    La primera etapa, planificacin de la revisin, tiene como objetivo definir los principales

    parmetros que se tendrn en cuenta para realizar la revisin. En sus correspondientes sub-etapas se

    establecern las razones que justifican la realizacin de la revisin, se establecer la manera en que

    se har la bsqueda de trabajos y la forma en que estos sern revisados, y finalmente se evaluar la

    planificacin realizada.

    En la segunda etapa, desarrollo de la revisin, es en donde se lleva a cabo la revisin

    propiamente dicha. Esta etapa est guiada por los protocolos definidos en la etapa de planificacin,

    aunque, dado que la investigacin es un proceso flexible, es posible incluir cambios que signifiquen

    alguna mejora en los mtodos. Durante esta etapa se buscarn y seleccionaran los estudios

    primarios de acuerdo a los criterios previamente definidos, se extraern y se organizarn para su

    Recuperacin de noticias ordenadas temporalmente y por zonas utilizando funciones combinadas de recuperacin deinformacin de Apache Solr

  • Luis Ignacio Aita Pgina 15

    posterior uso los datos relevantes al tema de investigacin, y finalmente se sintetizarn los mismos

    de acuerdo al enfoque deseado.

    En la ltima etapa, publicacin de los resultados, se escribirn los documentos necesarios para

    la difusin de los resultados obtenidos, que no solo sern el informe final de la tesina, sino tambin

    su comunicacin a travs de conferencias, publicaciones, etc.

    3.6.2 Sobre la metodologa de desarrollo

    El desarrollo gil [Kent Beck et al. 2001], es un marco de trabajo conceptual de la ingeniera de

    software que promueve el uso de iteraciones a lo largo de todo el ciclo de vida del proyecto. Existen

    muchos mtodos de desarrollo gil y la mayora trata de minimizar los riesgos en lapsos cortos de

    tiempo.

    El software desarrollado en una unidad de tiempo es llamado una iteracin, la cual debe durar de

    una a cuatro semanas. Cada iteracin del ciclo de vida incluye: planificacin, anlisis de

    requerimientos, diseo, codificacin, revisin y documentacin. Una iteracin no debe agregar

    demasiada funcionalidad. Estos pequeos ciclos permiten comprobar resultados rpidamente,

    corrigiendo o adaptando las tcnicas y metodologas utilizadas.

    Las principales caractersticas del desarrollo gil son:

    Proceso iterativo e incremental

    Mitigacin del riesgo mediante iteraciones fijas

    Mejora continua

    Calidad desde el primer da

    Priorizar requerimientos de acuerdo a su valor

    Equipos dedicados y auto-gestionados

    Colaboracin continua con los objetivos

    Incorporar el cambio

    Prcticas de desarrollo modernas

    En particular se adoptar la metodologa Scrum [Kniberg 2007][Rising, Janoff 2000] como gua

    para organizar el proyecto de desarrollo. Scrum adopta sus ideas del trabajo orientado a la pila del

    Recuperacin de noticias ordenadas temporalmente y por zonas utilizando funciones combinadas de recuperacin deinformacin de Apache Solr

  • Luis Ignacio Aita Pgina 16

    producto a desarrollar. No utiliza mtodos jerrquicos para la produccin de software sino que se

    centra en las responsabilidades del equipo de proyecto.

    La pila de producto es el corazn de Scrum, y bsicamente es una lista priorizada de requisitos, o

    historias, o funcionalidades, metas que se quieren alcanzar, componentes que queremos construir,

    etc., descritas usando la terminologa del usuario (llamadas historias, o a veces simplemente

    elementos de la pila).

    Recuperacin de noticias ordenadas temporalmente y por zonas utilizando funciones combinadas de recuperacin deinformacin de Apache Solr

  • Luis Ignacio Aita Pgina 17

    4 Marco Terico

    4.1 Sistemas Distribuidos

    Desde una perspectiva histrica podemos encuadrar a los sistemas distribuidos como una de las

    ltimas etapas en la evolucin de los sistemas informticos, impulsados por los grandes avances en

    comunicaciones y hardware de las ltimas dcadas.

    Muchas de las tecnologas y aplicaciones relacionados con el presente trabajo de tesina son o

    estn soportados por sistemas distribuidos, e incluso la arquitectura de solucin del proyecto

    Zonales puede considerarse como tal, debido a la posibilidad de distribuir y escalar horizontalmente

    sus componentes y de utilizar tcnicas de Information Retrieval y crawling de datos sobre

    aplicaciones externas aprovechando las ventajas que ofrece la red Internet.

    4.1.1 Conceptos

    El objetivo de un sistema distribuido es integrar recursos y servicios mediante el uso de redes de

    comunicaciones para ofrecer a usuarios y aplicaciones una visin sistmica nica, ocultando su

    caracterstica de distribuido, funcionando en forma transparente e independiente de la ubicacin de

    cada recurso, entendindose como tal cualquier dispositivo o servicio, hardware o software capaz de

    ser compartido.

    En la bibliografa existen numerosas definiciones de sistemas distribuidos, citaremos dos de ellas

    para el presente trabajo.

    Conjunto de computadores independientes que se muestran al usuario como un sistema nico

    coherente [Tanenbaum, Van Steeen, 2008]

    Sistema en el cual componentes de hardware y software, localizados en computadores en red, se

    comunican y coordinan acciones slo mediante paso de mensajes [Coulouris et. al., 2001]

    Los protocolos de red ocultan la topologa y los atributos fsicos de la misma mientras que los

    sistemas operativos ocultan las caractersticas de los equipos fsicos. Los componentes de un

    sistema distribuido pueden ser heterogneos, en cuyo caso se necesita una capa de software para

    proporcionar una visin nica que normalmente se denomina middleware.

    Recuperacin de noticias ordenadas temporalmente y por zonas utilizando funciones combinadas de recuperacin deinformacin de Apache Solr

  • Luis Ignacio Aita Pgina 18

    4.1.2 Propiedades

    Un sistema distribuido debe cumplir con un conjunto de propiedades para poder funcionar

    adecuadamente. A continuacin se resumen dichas caractersticas.

    4.1.2.1 TransparenciaPara mostrarse ante usuarios y aplicaciones externas como un sistema nico, los sistemas

    distribuidos deben ofrecer una visin transparente respecto a su ubicacin fsica de los recursos. La

    transparencia puede darse en distintos aspectos del sistema:

    De identificacin. La forma en que los recursos del sistema son identificados debe ser

    independiente de las plataformas que soporten cada componente del mismo.

    De ubicacin. Se accede a los recursos del sistema sin importar en que nodo residen o si son

    locales o remotos. Esto permite adems trasladar los recursos entre nodos sin que las

    aplicaciones o los usuarios lo noten.

    De replicacin. El sistema gestiona la cantidad copias de cada recurso, aadiendo o

    quitando copias segn sea necesario. Esto incluye los caches como un tipo de replicacin

    que requiere de alguna validacin en los clientes para preservar la consistencia.

    De paralelismo. El sistema distribuido puede distribuir la carga de trabajo entre los nodos

    sin que la aplicacin tenga que solicitarlo explcitamente, siempre y cuando no tenga

    consecuencias sobre la ejecucin de las mismas salvo las mejoras en rendimiento.

    De comparticin. Un recurso debe poder ser accedido en forma concurrente desde diversas

    aplicaciones del sistema sin efectos adversos sobre la ejecucin de las aplicaciones.

    De rendimiento. Implementar las propiedades listadas anteriormente conlleva una merma

    en el rendimiento, para la cual hay que buscar soluciones tecnolgicas que permitan

    reducirla. Un ejemplo de este tipo de soluciones es el uso de caches locales para reducir el

    trfico en las redes.

    4.1.2.2 ConsistenciaMantener la consistencia en un sistema distribuido mediante un estado global es un problema de

    gran complejidad y es el aspecto fundamental a tener en cuenta en el momento de disearlo.

    Recuperacin de noticias ordenadas temporalmente y por zonas utilizando funciones combinadas de recuperacin deinformacin de Apache Solr

  • Luis Ignacio Aita Pgina 19

    Cada uno de los nodos del sistema tiene su propio estado local y estn fsicamente distribuidos,

    por lo tanto lograr un estado global unificado depende principalmente de los mecanismos de

    comunicacin soportados por las redes.

    Mantener una consistencia estricta demanda un nivel muy alto de comunicacin y sincronismo

    entre nodos, lo cual afecta al rendimiento global del sistema. Encontrar un nivel aceptable entre

    rendimiento y consistencia es el objetivo que debe perseguir el diseador del sistema.

    4.1.2.3 EscalabilidadA diferencia de los sistemas centralizados, en los cuales para poder mantener un nivel de

    prestaciones adecuando frente a un incremento en la demanda de uso es necesario escalar en forma

    vertical, es decir aumentar la capacidad de cmputo o almacenamiento en disco o memoria del

    sistema, en los sistemas distribuidos es posible hacerlo aadiendo ms nodos o recursos distribuidos

    de manera horizontal.

    Para que esto sea posible es necesario planear cuidadosamente el crecimiento del sistema

    mediante el diseo de arquitecturas adecuadas para cada caso. Por ejemplo, no se debe limitar el

    espacio de nombre de manera tal que impida la incorporacin de nuevos recursos. En la misma

    linea deben evitarse en general los cuellos de botella tanto en aspectos fsicos como de

    programacin que incurran en fallas de rendimiento o acceso a los recursos.

    4.1.2.4 FiabilidadPodemos definir la fiabilidad como la capacidad del sistema de cumplir en forma correcta y

    durante todo el tiempo las funciones para las cuales fue implementado. Clasificaremos esta

    propiedad en dos aspectos principales:

    Disponibilidad: est representado por la cantidad de tiempo en que el sistema est operativo.

    La disponibilidad est estrechamente ligada a la calidad de los recursos y a la replicacin de

    los mismos dentro del sistema distribuido. Para aumentar la disponibilidad es necesario

    mejorar alguno de dichos conceptos. En el estado tecnolgico actual normalmente es ms

    econmica la replicacin. Los sistemas distribuidos proporcionan en forma natural la

    replicacin de algunos recursos, por ejemplo unidades de proceso, mientras que otros que

    habitualmente son compartidos pueden replicarse para aumentar la disponibilidad, como es

    el caso de un sistema de archivos. La probabilidad de que un recursos no est disponible se

    reduce en forma exponencial por cada replica existente del mismo.

    Recuperacin de noticias ordenadas temporalmente y por zonas utilizando funciones combinadas de recuperacin deinformacin de Apache Solr

  • Luis Ignacio Aita Pgina 20

    Tolerancia a fallos: es la capacidad del sistema de detectar y corregir un fallo sin que el

    usuario o las aplicaciones lo noten. La distribucin y replicacin de los recursos permiten

    brindar esta propiedad pero no lo garantizan por si sola. Es necesario un mecanismo de

    administracin de fallo robusto.

    4.1.3 Aplicaciones

    Es importante diferenciar en este punto las aplicaciones paralelas de las aplicaciones distribuidas.

    Una aplicacin paralela puede dividir sus tareas y ejecutarlas en forma paralela ajustndose a

    determinados esquemas y el objetivo que persiguen es disminuir los tiempos de procesamiento

    repartiendo la carga.

    Un aplicacin distribuida tiene objetivos ms variados y se aplica a diversos entornos. Entre las

    motivaciones que pueden justificar la implementacin de un sistema distribuido podemos destacar:

    Alta disponibilidad: se utiliza la distribucin para brindar informacin en forma constante a

    los usuarios con bajos tiempos de respuesta, utilizando muchas veces tcnicas de replicacin

    que tienen en cuenta la ubicacin geogrfica de los mismos.

    Alto rendimiento: una aplicacin distribuida puede ser tambin paralela, persiguiendo el

    mismo objetivo de mejorar los tiempos de respuesta en los procesos de cmputo. Un

    ejemplo muy extendido hoy en da es el uso de clusters de mquinas conectadas a una red de

    alta velocidad sobre las cual se distribuye entre los nodos las tareas de procesamiento.

    Tolerancia a fallos y consistencia: en algunas aplicaciones la integridad de la informacin

    es crucial y por eso se decide distribuirla, generalmente mediante rplicas, pues el riesgo de

    perder informacin por un fallo en un equipo es inaceptable.

    Movilidad: la gran cantidad de dispositivos mviles existentes hoy en da hacen que un

    usuario muchas veces acceda a su informacin desde dos, tres o ms dispositivos diferentes.

    Este escenario plantea un desafo para los sistemas que deben desligar la informacin de los

    soportes. La solucin ms habitual a este problema es la implementacin de espacios

    virtuales o en la nube, donde cada dispositivo del usuario actual como una extensin de

    dicho espacio, sincronizando en forma bi-direccional los cambios realizados. Ejemplos de

    estas arquitecturas son Gmail o Drive de Google o Dropbox.

    Ubicuidad: contemplan entornos donde los recursos estn distribuidos y los usuarios se

    movilizan entre ellos. Las aplicaciones intentan generar un comportamiento inteligente en

    Recuperacin de noticias ordenadas temporalmente y por zonas utilizando funciones combinadas de recuperacin deinformacin de Apache Solr

  • Luis Ignacio Aita Pgina 21

    funcin de las necesidades del usuario, los tipos de recursos y la disponibilidad de los

    mismos.

    En cuanto a los entornos, podemos considerar a Internet como el ms generalizado, en la cual se

    pueden desplegar aplicaciones distribuidas de ndole muy variada, con ciertas limitaciones de

    rendimiento y seguridad. La World Wide Web (WWW) es el mximo exponente de aplicacin

    distribuida sobre Internet y es la forma de acceso ms habitual a otras aplicaciones.

    Si embargo muchas aplicaciones distribuidas pueden tener requisitos de seguridad o rendimiento

    que hagan inviable su implementacin sobre Internet, para las cuales es necesario utilizar Intranets

    o entornos ubicuos especficos.

    En cuando aplicaciones comerciales, muchas veces los sistemas distribuidos reemplazan a

    aplicaciones histricamente desarrolladas en ambientes centralizados, como pueden ser reservas en

    cadenas hoteleras o lineas areas, sistemas bancarios, cadenas de retail con muchas sucursales, etc.

    Las aplicaciones multimedia como videoconferencias, streaming de video, radios en linea,

    vigilancia, etc., tambin se estn incorporando a los sistemas distribuidos debido a sus

    requerimientos de velocidad y regularidad de la transmisin.

    4.1.4 Ventajas

    Podemos enumerar a modo de resumen alguna de las principales ventajas de los sistemas

    distribuidos:

    Escalabilidad horizontal o crecimiento por incrementos o a demanda. Esta es una

    ventaja fundamental de los sistemas distribuidos que permiten aumentar cualquier de las

    capacidades del sistema (cmputo, almacenamiento, etc.) en forma gradual y a medida que

    el uso del mismo lo demande.

    Confiabilidad. Debido a la distribucin de la carga de trabajo y a la replicacin de la

    informacin, los sistemas distribuidos pueden estar disponibles en un porcentaje muy

    cercano al 100% del tiempo.

    Mayor flexibilidad. Los sistemas distribuidos ofrecen mayor amplitud de criterios a la hora

    de administrar los recursos. Pueden considerarse aspectos como la demanda de uso,

    ubicaciones geogrficas, costos, etc.

    Recuperacin de noticias ordenadas temporalmente y por zonas utilizando funciones combinadas de recuperacin deinformacin de Apache Solr

  • Luis Ignacio Aita Pgina 22

    Comunicacin. Muchas veces los sistemas distribuidos facilitan la posibilidad de compartir

    informacin y recursos entre los usuarios, mejorando la comunicacin entre las personas.

    4.1.5 Desventajas

    Los sistemas distribuidos presentan ciertas desventajas, algunas de las cuales han provocado que

    aplicaciones comerciales que estaban operando se discontinuaran o adaptaran.

    Complejidad del software. Esta es la principal desventaja de los sistemas distribuidos. La

    gestin de informacin y recursos compartidos en forma consistente genera mecanismos de

    solucin que muchas veces causan mermas en el rendimiento que son inaceptables. Otras

    veces el costo de implementar una solucin ptima a este problema puede hacerlos

    inviables.

    Paralelismo. La divisin de la carga de trabajo en aplicaciones tpicamente diseadas para

    ejecucin secuencial muchas veces es una tarea compleja y costosa.

    Concurrencia. Para lograr concurrencia se deben implementar mecanismos de control para

    las condiciones de competencia, evitar los abrazos mortales o deadlocks y los ciclos de

    espera circulares. Esto tambin puede resultar complejo o costoso en algunos casos o

    provocar una carga adicional de trabajo no deseada en el sistema.

    4.1.6 Perspectivas

    Debido al auge de los dispositivos porttiles de los ltimos aos que ha dado lugar a lo que se

    denomina habitualmente Informtica mvil, los equipos salen de las redes locales para descubrir

    nuevos recursos y deben adaptarse a condiciones de red ms variables y deben poder funcionar en

    forma offline en determinadas circunstancias. Han surgido nuevos protocolos para soportar estas

    condiciones y se establecen redes ad-hoc aprovechando las ventajas de las redes inalmbricas.

    Un escaln ms arriba podemos encontrar a los sistemas ubicuos, en los cuales dispositivos

    mviles de gran potencia y reducido tamao se adaptan a un entorno naturalmente cambiante,

    mediante aplicaciones que descubren recursos y servicios configurndose en forma dinmica,

    adaptando las interfaces de usuarios en cada caso. Ejemplos de este tipo de dispositivos son los

    telfonos inteligentes o smartphones, tablets, sistemas de navegacin integrados en automviles,

    etc.

    Recuperacin de noticias ordenadas temporalmente y por zonas utilizando funciones combinadas de recuperacin deinformacin de Apache Solr

  • Luis Ignacio Aita Pgina 23

    Los sistemas ubicuos plantean numerosos retos de amplio espectro tecnolgico en mbitos de

    aplicacin muy diversos tales como el hogar, comercios, salud, educacin, robtica y turismo por

    citar solo algunos.

    4.2 Bases de Datos Distribuidas

    Cuando los datos de una organizacin son gestionados por un sistema que permite que sean

    accedidos por diversos usuarios y aplicaciones en entornos distribuidos es posible afirmar que se

    trata de una base de datos distribuida. Este tipos de sistemas es un subconjunto de los sistemas

    distribuidos mencionados en la seccin anterior, diseados especficamente para almacenar datos e

    informacin en entornos distribuidos.

    4.2.1 Conceptos

    Es importante diferenciar un Sistema Gestor de Bases de Datos (SGBD) centralizado al cual se

    puede acceder a travs de la red de un Sistema Gestor de Bases de Datos Distribuidas (en adelante

    SGBDD), en donde los datos estn fsicamente distribuidos en una serie de nodos a travs de una

    red y el sistema permite gestionar los datos de manera transparente.

    Tambin existen las arquitecturas multiprocesador que comparten espacios de memoria y

    almacenamiento (fuertemente acopladas) o solo espacio de almacenamiento (dbilmente acoplados)

    y sistemas de bases de datos que utilizan estas arquitecturas, pero no son objeto del presente trabajo.

    Otra tcnica utilizada para la distribucin de datos es la denominada arquitectura con nada

    compartido, o shared nothing, donde cada nodo tiene su propia memoria y almacenamiento y solo

    se comunican a travs de las redes de conexin. Existe una seccin posterior dedicada a este tipo de

    arquitecturas.

    En esta seccin se describen especficamente los SGBDD, los cuales definiremos como una

    coleccin de mltiples bases de datos interrelacionadas lgicamente, distribuidas por una red de

    computadores, y gestionadas por un sistema software que maneja la base de datos distribuida en

    forma transparente para el usuario[Elmasri, Navathe 2002].

    Los SGBDD tambin cumplen con las propiedades de los sistemas distribuidos mencionadas en

    la seccin anterior, como: transparencia, tolerancia a fallos, consistencia, alta disponibilidad y

    fiabilidad, escalabilidad, etc.

    Recuperacin de noticias ordenadas temporalmente y por zonas utilizando funciones combinadas de recuperacin deinformacin de Apache Solr

  • Luis Ignacio Aita Pgina 24

    Vale destacar un tipo de transparencia particular de los SGBDD denominado transparencia de

    fragmentacin que surge de la divisin y posterior recuperacin de los datos entre distintos nodos.

    Existen dos tipos de tcnicas de fragmentacin, fragmentacin horizontal, en la cual se crean

    conjuntos de registros de datos segn criterio definido previamente y se distribuyen estos conjuntos

    entre los nodos del sistema distribuido y fragmentacin vertical, donde cada conjunto se forma

    con columnas de la tabla original. Se profundizarn estas cuestiones de diseo en la seccin 4.2.3.

    4.2.2 Diseo y arquitecturas

    Los SGBDD se desarrollan e implementan en contexto cliente-servidor[Kurose, Ross 2010]. En

    este tipo de arquitecturas tenemos dos componentes principales y claramente identificados en la

    comunicacin:

    Cliente: es quien inicia la comunicacin y generalmente demanda servicios o acceso a

    recursos.

    Servidor: es la parte del sistema que proporciona estos servicios a los clientes.

    En lo referente a las partes que componen un SGBDD podemos agrupar los mdulos del

    software en tres grupos principales:

    Software de servidor: gestiona los datos locales de un nodo en forma similar a los SGBD

    centralizados.

    Software del cliente: se ocupa normalmente de las interfaces de usuario y de todas las

    tareas inherentes a la distribucin.

    Software de comunicaciones: brinda soporte para que clientes y servidores se comuniquen

    y se transmitan las instrucciones y los datos entre los nodos.

    Existen cuatro dimensiones a considerar a la hora de elaborar una estrategia de diseo de una

    base de datos distribuidas, tres de ellas en comn con los SGBD centralizados ms una dimensin

    adicional para el diseo de la distribucin.

    Las tres primeras dimensiones a considerar son:

    Nivel de comparticin: que puede ser inexistente, solo de datos o de datos y programas.

    Acceso a los datos: estticos, si no vara con el tiempo o dinmicos si lo hacen.

    Recuperacin de noticias ordenadas temporalmente y por zonas utilizando funciones combinadas de recuperacin deinformacin de Apache Solr

  • Luis Ignacio Aita Pgina 25

    Nivel de conocimiento de acceso: los diseadores pueden no conocer como los usuarios

    acceden a los datos, conocer parcialmente o contar con la informacin completa respecto al

    modo de acceso.

    En cuanto a la estrategia de distribucin, puede abordarse de dos formas distintas:

    Ascendente o botton-up: partiendo de los esquemas existentes en cada nodo, se construye

    un esquema conceptual global y finalmente se disea la distribucin. Se suele utilizar este

    enfoque para integrar varias BD centralizas ya existentes.

    Descendente o top-down: no se considera la existencia de DB previas y se parte desde cero

    en el diseo y construccin del sistema, comenzando por el anlisis de requisitos, el diseo

    conceptual, el diseo de la distribucin, el diseo fsico y los ajustes y monitoreo finales.

    Dentro del diseo de la distribucin existen dos actividades importantes a destacar: la

    fragmentacin y la asignacin.

    4.2.2.1 FragmentacinMediante este proceso se dividen los datos de una tabla o conjunto de tablas en unidades de

    menor tamao, siendo el objetivo principal del diseo encontrar la unidad ptima para realizar la

    fragmentacin.

    Es posible enumerar una serie de ventajas de la fragmentacin, entre las que se destacan:

    Ventajas de uso, aprovechando las vistas que generan las aplicaciones y que normalmente

    constituyen un subconjunto de datos. Pueden considerarse a estos conjuntos como unidades

    de distribucin.

    Si se almacenan los subconjuntos de datos en lugares cercanos a donde ms se utilizan,

    puede aumentarse el nivel de eficiencia. Por ejemplo, se pueden dividir los datos por

    departamento o sucursales de una organizacin y ponerlos a disposicin en el lugar fsico de

    mayor conveniencia. Esta ventaja toma relevancia en SGBDD distribuidos geogrficamente,

    donde servidores y clientes muchas veces estn conectados por canales de comunicacin de

    velocidad media o lenta.

    Es posible paralelizar una transaccin entre los fragmentos, aumentando los niveles de

    concurrencia.

    Recuperacin de noticias ordenadas temporalmente y por zonas utilizando funciones combinadas de recuperacin deinformacin de Apache Solr

  • Luis Ignacio Aita Pgina 26

    Almacenando en un nodo solo los datos a los que los usuarios de ese nodo tienen acceso se

    minimizan los riesgos de accesos no autorizados, mejorando la seguridad del sistema.

    Existen a su vez algunas desventajas de la fragmentacin:

    Si una aplicacin necesita obtener o actualizar datos distribuidos en ms de un fragmento se

    ver notablemente afectado el rendimiento de estas transacciones.

    Si una vista debe operar sobre mltiples fragmentos aumentarn las operacin de

    verificacin de integridad y seguridad afectando tambin el rendimiento.

    De acuerdo a la unidad de distribucin que se decida utilizar la fragmentacin puede clasificarse

    en tres tipos diferentes:

    Horizontal: se forman los subconjuntos a distribuir a partir de diversos registros o tuplas de

    la tabla segn cumplan con una determinada condicin. Este tipo de fragmentacin puede

    expresarse mediante consultas de seleccin.

    Vertical: los conjuntos se forman agrupando atributos de la tabla y proyectando la relacin

    global sobre cada grupo. Solo se considera correcta si cada atributo se mapea en al menos un

    atributo del fragmento.

    Mixta: se produce cuando se aplican ambos tipos de fragmentacin, pudiendo

    implementarse primero en forma horizontal y luego vertical o viceversa.

    4.2.2.2 AsignacinConsiste en el proceso de distribucin de los fragmentos entre los nodos del sistema. La solucin

    ptima puede disearse considerando el costo mnimo de la operacin, considerando costos de

    procesamiento, comunicaciones y almacenamiento, o buscando obtener mejores mtricas de

    rendimiento optimizando tiempos de respuestas y productividad.

    Una vez que se asignan los datos, los fragmentos pueden replicarse para obtener mejoras en

    seguridad, disponibilidad y velocidad de acceso a los datos que contienen. La replicacin puede ser

    inexistente, parcial o completa, dependiendo de la estrategia de diseo elegida.

    La replicacin mejora notablemente el rendimiento de las consultas penalizando las inserciones o

    actualizaciones de datos, por lo cual es mayormente utilizada en aquellos fragmentos con mayor

    nivel de operaciones de lectura y con menos cantidad de escrituras.

    Recuperacin de noticias ordenadas temporalmente y por zonas utilizando funciones combinadas de recuperacin deinformacin de Apache Solr

  • Luis Ignacio Aita Pgina 27

    4.2.3 Transacciones

    La distribucin de los datos y las operaciones en un SGBDD agrega un nivel extra de

    complejidad a la tarea de lograr una ejecucin consistente de las operaciones sobre los datos. Al

    igual que todo SGBD se deben respetar las cuatro propiedades bsicas de toda transaccin (ACID

    por sus siglas en ingls):

    Atomicidad: toda transaccin es una nica unidad de operacin que debe ejecutarse

    completamente o no ejecutarse.

    Consistencia: una transaccin se ejecuta partiendo de un estado consistente de los datos que

    debe mantenerse al finalizar su ejecucin.

    Aislamiento: una transaccin no debe mostrar sus resultados hasta tanto no finalizar. Si

    varias transacciones concurrentes acceden a un mismo conjunto de datos, deben ejecutarse

    como si lo hicieran en serie.

    Durabilidad: una vez ejecutada una transaccin sus resultados son permanentes.

    La existencia de varias locaciones de datos sobre los cuales puede ejecutarse una transaccin

    obliga a los SGBDD a proveer una funcionalidad de coordinacin global de las transacciones que

    asegure que se respeten estas propiedades.

    Es decir, el coordinador recibe el pedido de transaccin y lo divide en una secuencia de

    transacciones que reparte entre los nodos involucrados, encargndose a su vez de gestionar los

    resultados, confirmando o rechazando la transaccin en caso de fallos.

    4.2.4 Control de concurrencia

    El control de concurrencia debe garantizar, por un lado, la consistencia de los datos luego de

    ejecutar transacciones y adems cada accin atmica debe completarse en un tiempo finito.

    Adems de los problemas de concurrencia inherentes a todos los sistemas de bases de datos, es

    decir, prdida de datos, dependencias e inconsistencias, en los SGBDD se producen problemas

    especficos relacionados con mantener la consistencia en las copias mltiples (rplicas) y

    fragmentacin de datos, principalmente vertical.

    Para que el mtodo de control de concurrencia sea correcto, las operaciones de una transaccin

    deben aparecer antes o despus de las operaciones de otras transacciones, pero no deben

    entremezclarse. La ejecucin de las transacciones siempre debe ser en serie.

    Recuperacin de noticias ordenadas temporalmente y por zonas utilizando funciones combinadas de recuperacin deinformacin de Apache Solr

  • Luis Ignacio Aita Pgina 28

    Es necesario utilizar dos soluciones para poder implementar control de concurrencia en un

    entorno de bases de datos distribuidos:

    Bloqueos (locks): para garantizar la consistencia en ejecuciones concurrentes, evitando que

    se produzca abrazos mortales o deathlocks.

    Marcas de tiempo: que aseguren la ejecucin de transacciones en serie a nivel global.

    Para ambas soluciones existen diversos protocolos que pueden utilizarse.

    4.2.5 Consultas

    El procesamiento de las consultas en ambientes distribuidos es mucho ms complejo que en las

    bases de datos centralizadas, y es un aspecto de vital importancia en su rendimiento.

    El procesador de consultas es el responsable de transformar las consultas de alto nivel recibidas

    por parte de usuarios y aplicaciones en comandos de manipulacin de datos de bajo nivel,

    minimizando el consumo de recursos del sistema, y en el caso de los SGBDD el lgebra relacional

    no es suficiente para planificar la estrategia de ejecucin, debiendo complementarse con

    optimizaciones en el intercambio de datos entre nodos.

    Entre estas operaciones se destacan la eleccin del orden de las operaciones, el mejor sitio para

    procesar los datos y la forma en que deben finalmente ser transformados.

    Una simplificacin de la funcin de costo que el procesador de consultas de un sistema

    distribuido debe minimizar es la siguiente:

    Costo total = costo de I/O + costo de CPU + costo de comunicaciones.

    En distintos ambientes los pesos de cada uno de los sumandos puede variar, pudiendo ser

    despreciable el costo de alguno de ellos. Por ejemplo, en un sistema que utilice redes WAN el costo

    de comunicacin ser dominante, en tanto que en redes de alta velocidad los tres factores se

    equiparan.

    4.2.6 Clasificacin

    Clasificaremos a las bases de datos distribuidas en base a diversos criterios de diseo. En primer

    lugar, teniendo en cuenta la forma en que los datos se almacenarn en el sistema, se pueden

    clasificar en:

    Recuperacin de noticias ordenadas temporalmente y por zonas utilizando funciones combinadas de recuperacin deinformacin de Apache Solr

  • Luis Ignacio Aita Pgina 29

    Centralizadas: solo los clientes que acceden a la base de datos estn distribuidos, con lo

    cual solo es posible obtener algn tipo de procesamiento de datos distribuido sin ninguna

    otra ventaja de los SGBDD.

    Replicadas: cada nodo tiene una copia completa de la base de datos, logrando un alto nivel

    de fiabilidad y disponibilidad, pero penalizando notoriamente las actualizaciones de datos.

    Vale la pena su utilizacin en sistemas con gran cantidad de consultas y pocas escrituras.

    Particionadas: solo existe una copia de cada elemento de dato, pero la informacin se

    distribuye a travs de los nodos mediante tcnicas de fragmentacin.

    Hbridas: combinan fragmentacin y replicacin de datos en un diseo hbrido.

    Otro criterio por el cual es posible clasificar a los SGBDD es segn el hardware y software

    utilizado como base para soportarlos. Es posible identificar dos tipos de sistemas mediante este

    criterio:

    Homogneas: todos los nodos utilizan el mismo software de gestin de bases de datos,

    hardware de prestaciones similares y conocen al resto de los nodos cooperando en conjunto

    para procesar las transacciones. Tienen menor autonoma en cada nodo pero el diseo e

    implementacin suele ser ms sencillo que las heterogneas.

    Heterogneas: tambin denominadas multibase utilizan distintos gestores de bases de

    datos siendo cada nodo esencialmente autnomo. Algunos nodos pueden no conocer la

    existencia de los dems y pueden proporcionar servicios limitados para la cooperacin en la

    resolucin de las transacciones.

    Vale mencionar un tipo particular de bases de datos distribuidas, los Sistemas de Bases de Datos

    Federados. Estn compuestos por un conjunto de sistemas de bases de datos autnomos que

    funcionan en forma cooperativa.

    En un sistema federado los usuarios tienen acceso a los datos a travs de una interfaz comn pero

    no existe un esquema global que describa a todos los datos de las distintas bases de datos, en su

    lugar hay varios esquemas unificados, cada uno describiendo porciones de bases de datos y archivos

    para el uso de cierta clase de usuarios.

    Recuperacin de noticias ordenadas temporalmente y por zonas utilizando funciones combinadas de recuperacin deinformacin de Apache Solr

  • Luis Ignacio Aita Pgina 30

    4.2.7 Ventajas y desventajas

    A continuacin se enumeran las principales ventajas y desventajas de las bases de datos

    distribuidas, muchas de ellas compartidas con los sistemas distribuidos.

    4.2.7.1 Ventajas Potencia la naturaleza distribuida de las aplicaciones de este tipo.

    Refleja mejor la estructura de organizaciones grandes.

    Permite crecimiento modular

    Economa a la hora de escalar el sistema.

    Mayor autonoma

    Mayor disponibilidad y fiabilidad

    Mayor rendimiento, debido al acercamiento de los datos al origen de las consultas, la

    reduccin del tamao de las bases de datos locales por la fragmentacin y la posibilidad de

    paralelizar las consultas.

    4.2.7.2 Desventajas Mayor complejidad de diseo e implementacin. Un diseo inadecuado de la replicacin o

    la fragmentacin puede convertir las ventajas en desventajas.

    Menor cantidad de estndares y casos de xito.

    Altos costos para lograr transparencia.

    Mayor complejidad para garantizar la seguridad de acceso a los datos. Se debe realizar

    control de rplicas y errores de red.

    4.2.7.3 PerspectivasLos sistemas de bases de datos han evolucionado naturalmente hacia esquemas distribuidos de la

    mano de los requerimientos de las propias organizaciones que los utilizan. Muchos productos

    comerciales de primera linea como Oracle, Microsoft MSSQL Server y MySQL poseen versiones

    distribuidas de sus gestores de bases de datos.

    En los ltimos aos han surgido un conjunto de bases de datos denominadas NoSQL como

    respuesta a la necesidad de almacenamiento y recuperacin de informacin no estructurada.

    Describiremos en mayor detalle este tipo de bases de datos en la siguiente seccin.

    Recuperacin de noticias ordenadas temporalmente y por zonas utilizando funciones combinadas de recuperacin deinformacin de Apache Solr

  • Luis Ignacio Aita Pgina 31

    4.3 Bases de Datos NoSQL

    4.3.1 Introduccin

    Para aproximarnos al concepto de bases de datos NoSQL y al concepto BigData primero es

    necesario repasar brevemente las bases de datos basadas en SQL, que son ms conocidas por la

    mayora de los usuarios en niveles muy diferentes, desde aquellos que operan diariamente con ellas

    y manejan fluidamente el lenguaje, las reglas de normalizacin y las limitaciones que conlleva,

    hasta aquellos que solo las utilizan.

    Las bases de datos relacionales, tpicamente gestionadas con sistemas como Oracle, MySQL,

    Microsoft SQL Server, PostgreSQL, etc, suponen una operativa que resulta natural: siguen reglas

    ACID (Atomicity, Consistency, Isolation y Durability, o Atomicidad, Consistencia, Aislamiento y

    Durabilidad), lo que permite que las instrucciones puedan ser consideradas una transaccin, y

    responden a una visin sencilla, en la que un dato se almacena de una manera inequvoca y con

    relaciones bien definidas, es decir, la visin de tablas con filas y columnas en las que una consulta

    siempre devuelve los mismos campos.

    Si extendemos el concepto podemos dar lugar a realidades cada vez ms frecuentes en la

    operatoria habitual en nuestros das. No todos los datos tienen una estructura relacional, muchas

    veces se dejan fuera de anlisis todo aquello que la forma de operacin de las bases de datos

    tradicionales no es capaz de procesar. Las bases de datos NoSQL (Not Only SQL) suponen

    flexibilizar muchas de las limitaciones inherentes a las bases de datos convencionales y a la forma

    de trabajar con ellas. Colecciones de documentos con campos definidos de manera laxa, en lugar de

    tablas con filas y columnas, que permiten anlisis mucho ms rpidos y eficientes y, sobre todo, no

    limitados a la estructura convencional. La idea es almacenar datos de manera masiva, lo que

    responde muy bien a la enorme cantidad y variedad de datos que genera el mundo actual, y

    analizarlos sin seguir necesariamente estndares que no se adaptan a ellos, donde las bases de datos

    relacionales resultan costosas y lentas para esta problemtica. La alternativa NoSQL aplicada a

    determinados contextos organizacionales puede resultar ms eficiente y econmica para manipular

    datos sin tener necesariamente que adaptarlos a una estructura rgida. Un sistema de este tipo no es

    siquiera una base de datos entendida como tal, sino un sistema de almacenamiento distribuido para

    gestionar datos dotados de una cierta estructura, que adems puede ser flexible.

    Recuperacin de noticias ordenadas temporalmente y por zonas utilizando funciones combinadas de recuperacin deinformacin de Apache Solr

  • Luis Ignacio Aita Pgina 32

    Este tipo de estructuras de datos muchas veces supone un problema para la mayora de la gente,

    cuyos esquemas mentales se adaptan a un sistema rgido, con normas claras y estructuras marcadas.

    Los paralelismos con los almacenes divididos en estanteras, archivadores y carpetas son algo que

    nos funciona mentalmente. Sin embargo, por ejemplo, cmo podramos gestionar bsquedas

    enormes en bases de datos que contienen referencias completamente heterogneas entre s y con

    relaciones de todo tipo, no necesariamente nicas? En muchos casos, hablamos de sistemas que han

    sido precisamente desarrollados por empresas como Google, Yahoo!, Facebook y similares para

    gestionar sus propias operativas, usando casi siempre cdigo abierto, con el fin de obtener una

    estructura que, con un costo y un rendimiento razonable, les permita tratar enormes cantidades de

    datos con muchsimas relaciones muy complejas entre s.

    Dentro de este contexto, la recuperacin de la informacin presenta varios problemas, siendo una

    solucin a este inconveniente el uso de estructuras de datos que permitan ser rpidamente

    consultadas. El indexado transforma los datos desde su forma original en una estructura que facilita

    la bsqueda y recuperacin de los mismos en forma rpida y precisa, por ejemplo un ndice

    invertido [Satnam Alag 2009], un ndice de citas, una matriz o un rbol.

    El proceso de indexado generalmente requiere un anlisis y procesamiento de los documentos a

    incluir en el ndice: lematizacin, tokenizacin, anlisis fontico, etc. Estos pasos introducen

    problemas y desafos importantes al momento del procesamiento [Satnam Alag 2009].

    4.3.2 Definicin

    Debido al origen de las bases de datos NoSQL y a que es un trmino reciente existen muchas

    definiciones poco formales para describirlos. Se citan a continuacin un par de definiciones para

    aproximarnos al concepto.

    El sitio nosql-database.org por ejemplo las describe como la Siguiente generacin de bases de

    datos comnmente orientadas hacia algunos de los siguientes puntos: ser no-relacional,

    distribuida, de cdigo abierto y escalable horizontalmente.

    La intencin original han sido las modernas bases de datos a escala web. El movimiento

    comenz a principios de 2009 y ha crecido rpidamente. A menudo se suelen considerar ms

    caractersticas tales como Sin Esquemas, facilidad de replicacin, APIs simples, consistencia de

    datos eventual (BASE, no ACID), grandes cantidades de datos, etc. As que el trmino engaoso

    Recuperacin de noticias ordenadas temporalmente y por zonas utilizando funciones combinadas de recuperacin deinformacin de Apache Solr

  • Luis Ignacio Aita Pgina 33

    NoSQL (que la comunidad actualmente traduce como Not Only SQL) debe ser considerado un alias

    de las definiciones anteriores.

    Citando el whitepaper [Oracle NoSQL Database 2011] podemos ampliar el concepto de bases de

    datos NoSQL:

    ...NoSQL se caracteriza a veces por el acrnimo BASE:

    Basically Available: Uso de tcnicas de replicacin y sharding para reducir la probabilidad de

    falta de servicio, es decir, se dividen los datos en varios servidores de almacenamiento diferentes,

    permitiendo al sistema estar siempre disponible, incluso si una parte de los datos no est

    disponible por un perodo corto de tiempo.

    Soft state: Mientras que los sistemas ACID asumen la consistencia como el requisito

    fundamental, los sistemas NoSQL permiten que lo datos sean inconsistentes delegando esta

    responsabilidad en los programadores.

    Eventually consistent: aunque las aplicaciones deben tratar con coherencia instantnea, los

    sistemas NoSQL aseguran que en algn momento futuro los datos tomaran un estado coherente. En

    contraste con los sistemas ACID que obligar a cumplir la consistencia en cada transaccin, NoSQL

    garantiza consistencia solo en un perodo futuro de tiempo no definido.

    En resumen, son bases de datos pensadas para manipular grandes cantidades de datos en forma

    rpida, permiten escalabilidad horizontal y ofrecen mayor flexibilidad para el almacenamiento de

    datos debido a que no imponen una estructura de tablas y relaciones sino que ofrecen otros

    formatos. En base a estos formatos surgen las principales clasificaciones existentes: documentales,

    de grafos, clave/valor, multivalor, orientadas a objetos y tabulares.

    Debido a estas definiciones bastante amplias, han surgido numerosas bases de datos que se

    consideran NoSQL y existen herramientas que podran ser consideradas NoSQL aunque

    normalmente no se las cita en esta forma.

    Un ejemplo claro es la herramienta utilizada para crear el ndice que se utilizar en el presente

    trabajo, Apache Solr, la cual no aparece catalogada como base de datos NoSQL en la mencionada

    web, sin embargo es posible considerar a la herramienta como tal dado que cumple con varias de las

    premisas listadas en la definicin previa. Por ejemplo, como veremos en el captulo 6, para el

    proyecto Zonales se decidi almacenar informacin en formato JSON en el ndice Solr para obtener

    mejoras de performance en la recuperacin.

    Recuperacin de noticias ordenadas temporalmente y por zonas utilizando funciones combinadas de recuperacin deinformacin de Apache Solr

  • Luis Ignacio Aita Pgina 34

    4.3.3 Tipos de bases de datos NoSQL

    Cuando pensamos en bases de datos NoSQL muchas veces es difcil optar por una determinada

    solucin, an cuando se tienen los requisitos esperados claramente definidos. Existen

    aproximadamente 150 productos de bases de datos considerados NoSQL y ninguno de ellos ha

    ganado una slida reputacin para un determinado uso como si sucede con los productos de bases

    de datos relacionales.

    Existen tambin diversos criterios para clasificar este tipo de bases de datos. Se mencionan a

    continuacin dos de ellos:

    Segn la estructura de los datos a almacenar, est es la forma ms habitual de clasificacin.

    Segn el teorema CAP (Consistency, Availability, Partition Tolerance)

    4.3.3.1 Clasificacin segn la estructura de datos De clave-valor: la idea principal aqu es utilizar una tabla hash donde hay una clave nica

    y un puntero a un elemento de datos en particular. El modelo clave / valor es el ms simple y

    ms fcil de implementar, pero es ineficiente cuando slo est interesado en consultar o

    actualizar parte de un valor, entre otras desventajas. En esta categora podemos clasificar a

    DynamoDB y Redis.

    Orientadas a columnas: en este tipo de bases de datos los datos se almacenan en las clulas

    agrupadas en columnas de datos en lugar de filas. Las columnas estn lgicamente

    agrupadas en familias de columnas. Cada familias de columnas puede contener un nmero

    virtualmente ilimitado de columnas que se pueden crear en tiempo de ejecucin o en la

    definicin del esquema. Leer y escribir se hace utilizando columnas en lugar de filas.

    Cassandra y Hbase son bases de datos orientadas a columnas.

    Orientadas a documentos: los datos se almacenan en forma similar a las bases de datos de

    tipo clave-valor, pero los valores almacenados (referidos como "documentos")

    proporcionan una cierta estructura y codificacin para la administracin de los datos. XML,

    JSON (Java Script Object Notation) BSON (que es una codificacin binaria de objetos

    JSON) son algunas de las codificaciones estndares ms comunes. MongoDB y CouchDB

    son ejemplos de este tipo.

    En grafo: basadas en la teora de grafos utilizan nodos y arcos para representar los datos

    almacenados. Tanto los nodos como los arcos tienen algunas propiedades definidas. Son

    Recuperacin de noticias ordenadas temporalmente y por zonas utilizando funciones combinadas de recuperacin deinformacin de Apache Solr

  • Luis Ignacio Aita Pgina 35

    muy tiles para guardar informacin en modelos con muchas relaciones, como redes y

    conexiones sociales. Ejemplos de esta categora son Neo4j y Infinite Graph.

    4.3.3.2 Clasificacin segn el teorema CAPEl teorema CAP o teorema Brewer afirma que en sistemas distribuidos no es posible garantizar al

    mismo tiempo consistencia, disponibilidad y tolerancia a particiones (Consistency, Availability,

    Partition Tolerance).

    Las bases de datos NoSQL utilizan diversos mtodos para ser escalables y distribuidas, por lo

    cual cada una cumple distintos puntos del teorema CAP. Segn las condiciones que cumplen del

    teorema se clasifican en:

    AP: garantizan disponibilidad y tolerancia a particiones, pero no la consistencia, al menos

    de forma total. Algunas de ellas consiguen una consistencia parcial a travs de la replicacin

    y la verificacin.

    CP: garantizan consistencia y tolerancia a particiones. Para lograr la consistencia y replicar

    los datos a travs de los nodos, sacrifican la disponibilidad.

    CA: garantizan consistencia y disponibilidad, pero tienen problemas con la tolerancia a

    particiones. Este problema lo suelen gestionar replicando los datos

    4.3.4 Tcnicas utilizadas por las bases de datos NoSQL.

    Se resume a continuacin algunas de las tcnicas utilizadas en bases de datos NoSQL que son de

    inters para el presente trabajo.

    4.3.4.1 Particionamiento horizontal mediante shardsSe utiliza un proceso de indexado transformando los datos desde su forma original en una

    estructura que facilita la bsqueda y recuperacin de los mismos en forma rpida y precisa, por

    ejemplo un ndice invertido [Elmagarmid, Rusinkiewicz, Sheth 1999], un ndice de citas, una matriz

    o un rbol.

    Estas tcnicas facilitan la implementacin y escalabilidad en ambientes heterogneos mediante el

    uso del concepto de base de datos de particin horizontal o sharding [zsu, Valduriez 1999; Taniar

    et. al. 2008; Dean, Ghemawat 2004; Stonebraker 1986].

    Se pueden utilizar bases de datos no convencional para almacenar el ndice de bsqueda (listas

    invertidas), provee mltiples capacidades para el escalado horizontal, permitiendo dividir la carga

    Recuperacin de noticias ordenadas temporalmente y por zonas utilizando funciones combinadas de recuperacin deinformacin de Apache Solr

  • Luis Ignacio Aita Pgina 36

    de trabajo entre mltiples instancias lo que permite una fragmentacin horizontal de los mismos

    entre mltiples servidores de ndices y documentos, a los cuales se les denomina shards.

    Las bsquedas son luego redirigidas a cada shard, y finalmente una respuesta nica es construida

    en base a los resultados obtenidos de cada uno. Esta tcnica es utilizada especialmente cuando se

    cuenta con un gran volumen de datos sobre el cual realizar consultas.

    Las bsquedas puede ser dirigida a cualquier instancia, y sta delegar la misma a los shards

    especificados, y responder la consulta agregando los mltiples resultados.

    Para comprender el escalonado horizontal es necesario tambin comprender la tcnica que se

    describe en el siguiente punto.

    4.3.4.2 Shared NothingSegn Michael Stonebraker: Consiste en una arquitectura distribuida en el que cada nodo es

    independiente y auto-suficiente, y tiene un nico punto de contencin en todo el sistema.

    El concepto de Shared Nothing parte de la independencia de los nodos, mediante la distribucin

    de la informacin y de las acciones sobre dichos nodos.

    Se podra decir que un Shard es un nodo Shared Nothing donde se administra un conjunto de

    documentos indexados segn algn criterio y en donde se los puede someter a mecanismos de

    bsqueda de informacin, jerarquizacin y ordenamiento de la informacin recuperada dependiendo

    de necesidades particulares de informacin. Por ejemplo se podran realizar distribuciones:

    geogrficas, temticas, ontolgicas, segmentacin segn preferencias, etc. o inclusive

    combinaciones de ellas.

    En todos los casos se puede combinar con tcnicas de bases de datos tradicionales, como la

    replicacin y la paralelizacin mediante esquemas de Shared Disk (cluster tradicional, como por

    ejemplo la implementacin de un blade con una Storage Area Network) [zsu, Valduriez 1999;

    Taniar et. al. 2008; Stonebraker 1986].

    En general el concepto de Shared Nothing garantiza niveles de consistencia de informacin,

    pero no es ACID Compliant, esta situacin facilita la conformacin heterognea de nodos y la

    independencia de procesamiento ya que cada nodo posee su propia unidad de memoria,

    almacenamiento en disco y procesamiento.

    Recuperacin de noticias ordenadas temporalmente y por zonas utilizando funciones combinadas de recuperacin deinformacin de Apache Solr

  • Luis Ignacio Aita Pgina 37

    Cada nodo es independiente y estn conectados, no delegando responsabilidad alguna en la

    coordinacin de los nodos.

    Claramente la arquitectura requiere de un esfuerzo extra en la coordinacin de los nodos del

    cluster de datos, para ello existen algunas soluciones:

    4.3.4.3 Replicacin con balanceo de cargaEsta arquitectura debe garantizar un conjunto de nodos con la informacin replicada y

    consistente en todos los nodos. En este caso el motor de bsqueda cuenta con un pooling de nodos

    de datos en los cuales buscar la informacin.

    La arquitectura no paraleliza las bsquedas, simplemente distribuye la carga entre los nodos.

    Como los nodos son independientes y auto-suficientes son capaces de responder consistentemente a

    la consulta realizada ya que la responsabilidad de recuperacin est en el nodo de datos y la

    responsabilidad de distribucin de carga en el balanceador.

    La desventaja de este mtodo es que ni resuelve el problema espacial de la informacin ni

    paraleliza la bsqueda [Valduriez 1992].

    4.3.4.4 Scatter and GatherEl mtodo realiza un broadcast de la bsqueda de informacin requerida en sus nodos conocidos,

    realizando una dispersin de la misma. Cada nodo (independiente de los dems) tiene la capacidad

    de elaborar una respuesta con la informacin que contiene dicho nodo. Todas las respuestas se

    concentran en el nodo que realiz la dispersin y ste es responsable de consolidar las mismas en

    una nica (y consistente) respuesta a a la peticin.

    Una ventaja adicional del mtodo es que a su vez los nodos de datos pueden ser dispersores en

    nuevos nodos (conocidos por l). Conformando de esta forma una red de nodos independientes que

    contienen informacin.

    Las ventajas en este caso son el particionamiento de la informacin y la paralelizacin de las

    bsquedas. La desventaja es una sobrecarga en la distribucin de la informacin, especialmente si

    se desea realizar con alguna lgica de segmentacin en particular, por ejemplo geogrfica, tipo de

    contenido, atributos ontolgicos, etc. En este ltimo caso se requiere conocimiento e informacin

    sobre los contenidos (datos) a ser almacenados, siendo en algunos casos relativamente compleja su

    resolucin, especialmente ante la aplicacin de reglas ontolgicas sobre los contenidos [ Taniar et.

    al. 2008; Valduriez 1992; White 2011; Lakshman, Malik 2010].

    Recuperacin de noticias ordenadas temporalmente y por zonas utilizando funciones combinadas de recuperacin deinformacin de Apache Solr

  • Luis Ignacio Aita Pgina 38

    Para este caso es interesante poder aplicar la tcnica del siguiente punto.

    4.3.4.5 Map / ReduceEsta es una buena tcnica para procesar gran volumen de datos en paralelo. El modelo provee un

    mecanismo de particionamiento de informacin que permite distribuir inteligentemente, de

    acuerdo a reglas pre-definidas, los datos en distintos nodos auto-contenidos.

    Map /reduce es una tcnica que implica paralelizar los datos que es distinto a paralelizar las

    tareas. Obviamente la paralelizacin de los datos permite paralelizar el procesamiento en las

    bsquedas, pero la clave de la tcnica se basa en la inteligencia de separacin de los datos. A su vez

    una ventaja adicional radica en el ahorro de espacio en el resultado de las claves compartidas al

    reducirlas dentro de un documento [Venner 2009; Dean, Ghemawat 2004].

    4.3.5 Gestores de bases de datos NoSQL

    Se listan a continuacin algunos de los productos NoSQL de mayor utilizacin. Describiremos

    en mayor medida la base de datos MongoDB debido a que forma parte de la arquitectura del

    proyecto Zonales.

    4.3.5.1 DynamoDBDynamoDB es una base de datos NoSQL desarrollada por Amazon y aadida al conjunto de

    aplicaciones que ofrece sobre la nube. Al igual que la mayora de los servicios ofrecidos por

    Amazon puede ser gestionada en unos pocos clics desde la consola de administracin de AWS

    (Amazon Web Services) y se pueden aumentar o disminuir los recursos segn las necesidades

    consultando las estadsticas de rendimiento.

    DynamoDB no tiene un esquema fijo sino que cada elemento de datos puede tener un nmero

    diferente de atributos y se identifica con una clave nica que es el nico elemento obligatorio

    (clave-valor). Se pueden usar varios tipos de datos como strings, nmeros o conjuntos. Ofrece un

    servicio de consultas flexible que permite consultar a travs de atributos no claves, utilizando

    ndices secundarios globales o locales.

    Puede obtenerse ms informacin desde la propia web de Amazon

    [http://aws.amazon.com/es/dynamodb] o consultado el paper [DeCandia et al., 2007]

    4.3.5.2 Apache CassandraLa arquitectura de Cassandra se basa en asumir que ocurren fallos en los sistemas de software y

    hardware, abordando el problema mediante el empleo de un sistema distribuido peer-to-peer a

    Recuperacin de noticias ordenadas temporalmente y por zonas utilizando funciones combinadas de recuperacin deinformacin de Apache Solr

    http://aws.amazon.com/es/dynamodb

  • Luis Ignacio Aita Pgina 39

    travs de nodos homogneos donde los datos se distribuyen entre todos los nodos del cluster. Cada

    nodo intercambia informacin con otros nodos en el cluster cada segundo. Se registra en forma

    secuencial en un log todas las actividades de escritura de datos para asegurar la durabilidad de los

    mismos.

    Cassandra es una base de datos orientada a columnas. La arquitectura de Cassandra permite a