Combine System


En nuestro caso, utilizamos Combine System, desarrollado a finales de 1996 por Yong Cao como un proyecto de investigación. Actualmente está siendo mantenido por Bertil Roslund. Fue escrito en Perl 5 y es distribuido de forma gratuita para usos educativos y no comerciales en http://www.lub.lu.se/combine/ escrito para Linux y Solaris. La distribución incluye un manual de instalación y configuración, además es posible obtener un Manual de Usuario que detalla las tareas más comunes a realizar. Combine, también tiene un Manual Técnico, el cual detalla el uso y funcionamiento interno de los diferentes módulos que forman el robot y los formatos de almacenamiento de datos que utiliza.
Combine System es un conjunto de programas orientados a recolectar recursos en el Web de forma distribuida, paralela y flexible.
 


 Funcionamiento de Mirador de El Salvador

El funcionamiento principal de Mirador de El Salvador inicia al ejecutar el robot Combine System. Combine System provee de rutinas para activar de forma ordenada cada uno de sus componentes, siguiendo la secuencia:    
CABIN:  start-cabin 
HARVESTER  start-harvester 
HDB   start-hdb 
  CABIN
el cual activa al demonio Scheduler que se encarga de recibir URLs y mantenerlas arregladas en colas hasta que le son requeridas, existe una cola por cada servidor. Scheduler Deamon o SD trabaja con registros en un formato especial llamado Job Control Format (jcf) o formato de control de tareas, el cual es una cadena de caracteres de una sola línea de texto dentro del cual se tiene un número variable de campos.

Las cadenas JCF son utilizadas como contenedores de información que caracteriza la recolección y ordenamiento de una tarea.

Formato:
Registro de una línea de texto compuesto por un indicador de versión de formato, y al menos un campo o parámetro.

 
  • Parámetro compuesto por un nombre y un valor. El valor se escribe entre comillas dobles.
  • El nombre está compuesto por una palabra, y no es sensible a mayúsculas o minúsculas.
  • El valor está compuesto por una secuencia de caracteres imprimibles y que puede iniciar con caracter de línea nueva, retorno de carro, tabulador o comillas simples.
  •   La palabra deberá iniciar con una letra y estará seguida de cero o más letras o dígitos.  

    Formato de JCFs

     
    JCF/0.0::= 
    'JCF/0.0' PARAMETRO (* ' ' PARAMETRO  *) 
    PARAMETRO :: = 
     NOMBRE '=" ' VALOR ' " ' 
    NOMBRE :: = 
    PALABRA 
    VALOR :: = 
     (* [^\n\r\t"] *) 
    LETRA :: = 
    (* LETRA | DIGITO *) 
     
    HARVESTER
    Se encarga de activar un número definido de agentes de recolección llamados harvesters, los cuales se encargan de solicitar registros JCFs a Scheduler, si no existe ningún JCF disponible, el agente es puesto a esperar durante 20 segundos antes de solicitar un nuevo JCF.
     
    Si existe un JCF pendiente, Scheduler se encagará de consultar a idbd que es el demonio encargado de controlar la base de datos que controla la última visita a este servidor, si ya es permitido visitarlo debido a las reglas de robot, es decir si ya pasó 1 minuto desde dicho evento y si la URL no ha sido visitada en los últimos 30 días (período modificable), el registro JCF es entregado al recolector (harvester).
     
    El recolector se encarga de conectarse al servidor y extraer el documento, el cual es guardado en formato especial hrf, desde donde los Analizadores o Parsers se encargarán de recoger.
     
    Si el documento no pudo ser extraído por alguna razón, harvester se encarga de registrar tal evento enviándo copia del resultado del intento al demonio bitácora Tellogd.
    Si el documento ya fue borrado de su posición original, harvester registra dicha situación en formato hrf para que el analizador tome la acción apropiada.

    Las instancias del recolector son ejecutadas durante un número limitado de veces, después del cual muere el proceso, liberando de esa forma la memoria utilizada. Al terminar una instancia del recolector, otra es activada por el programa keepalive.pl, el cual es un proceso permanente que se encarga de lanzar difentes instancias de otro una vez estas han finalizado.
     

    HDB
    Este componente agrupa a los demonios de análisis (parsers), de almacenamiento (sistema de archivos de Linux) y de ordenamiento (idbd).
    El parser, al igual que los recolectores es un proceso de duración limitada que se encarga de verificar que exista un registro tipo hrf disponible para trabajar sobre él. Primero extrae toda la información necesaria y la pone en formato wir (Web Index Record), el cual agrupa todas las etiquetas, encabezados, y contenidos del formato HTML en campos de una sola línea. Este registro es ideal para ser utilizado por una rutina de interfaz hacia un motor de búsqueda como Mirador de El Salvador u otro tipo de servicio de consulta.

    El sistema de archivos de Linux es utilizado para mantener una base de datos formada por un conjunto de archivos organizados en un listado de directorios de dos niveles, donde el primer nivel de directorios está formado por los primeros dos caracteres del nombre de cada registro; el segundo nivel está formado por los siguientes dos caracteres del nombre de dicho registro; y el nombre de los registros es el resultado del algoritmo Message Digest 5 (MD5) sobre la URL del documento.
    A continuación se muestra gráfcamente el funcionamiento combinado de los componentes de Combine System

    Estructura de Combine System
     

    Requerimientos de Combine System y Mirador de El Salvador

    Los requerimientos de hardware y software para instalar y ejecutar Combine System son los siguientes:
    Hardware:

    Software:

     

    Tabla de módulos necesarios para la ejecución de Combine System

    Nombre  Archivo  Uso 
    Perl versión 5.004_04 /pub/perl/src/5.0/perl_5004.04.tar.gz Compilador de Perl. 
    Utilizado por la mayoría de escritos de Combine
    Base 64  /pub/perl/modules/by-module/MIME/ 
    MIME-Base64-2.05.tar.gz 
    Contiene un codificador y decodificador apegado al estándar de Extensiones de Propósito Múltiple al Correo de Internet (MIME). 
    Es utilizado por la Interfaz www-perl. 
    Librería Data::Dumper versión 2.081  /pub/perl/modules/by-module/Data/ 
    Data-Dumper-2.081.tar.gz
     Biblioteca de Funciones que mejoran el rendimiento de programas que utilizan estructuras de datos basadas en texto, especialmente cuando tales estructuras deben ser impresas. 
    Librería de Funciones de conectividad a la Red.  /pub/perl/modules/by-module/Net/ 
    libnet-1.0605.tar.gz 
     Librería utilizada por la interfaz www-perl. 
    Librería www-Perl versión 5.16 /pub/perl/modules/by-module/ 
    WWW/libwww-perl-5.16.tar.gz
     Librería funciones que sirven de interfaz entre los programas en Perl y el Web. 
    Message Digest 5  /pub/perl/modules/by-module/ 
    MD5/md5-1.7.tar.gz
     Algoritmo de codificación basado en llaves de 32 bytes. Sirve para generar nombres de archivo únicos. 
       * Todos los archivos que se listan en la tabla anterior se encuentran disponibles gratuitamente en el sitio Web http://www.perl.com/CPAN


              Anterior    Contenido    Siguiente