UNIVERSIDAD DON BOSCO
FACULTAD DE INGENIERÍA
TRABAJO DE GRADUACIÓN PARA OPTAR AL GRADO DE
INGENIERO EN CIENCIAS DE LA COMPUTACIÓN
ELABORACION DE GUIA TEÓRICA Y PRÁCTICA SOBRE LOS ROBOTS
SPIDER
PRESENTADO POR
BLANCO FLORES, VANESSA ESMERALDA
CUBIAS CORTEZ, VICTOR FERNANDO
SORTO ALVARENGA, JOSÉ WILLIAM
ASESOR
ING. RENÉ ANGULO
MARZO 2008
EL SALVADOR, CENTROAMERICA.
UNIVERSIDAD DON BOSCO
FACULTAD DE INGENIERÍA
RECTOR
ING. FEDERICO MIGUEL HUGUET
SECRETARIO GENERAL
LIC. MARIO RAFAEL OLMOS
DECANO FACULTAD DE INGENIERIA
ING. ERNESTO GODOFREDO GIRON
MARZO 2008
EL SALVADOR, CENTROAMERICA.
UNIVERSIDAD DON BOSCO
FACULTAD DE INGENIERÍA
TRABAJO DE GRADUACIÓN PARA OPTAR AL GRADO DE
INGENIERO EN CIENCIAS DE LA COMPUTACIÓN
ELABORACION DE GUIA TEÓRICA Y PRÁCTICA SOBRE LOS ROBOTS
SPIDER
____________ ____________ ____________
JURADO JURADO JURADO
____________ ____________
ASESOR TUTOR
MARZO 2008
EL SALVADOR, CENTROAMERICA.
PREFACIO
En la actualidad Internet es considerado como la principal fuente de recursos de
información, convirtiéndose de hecho en el cuarto medio de comunicación social
utilizado a nivel mundial.
En Internet existen básicamente cinco formas de acceder a la información:
entrando directamente a un grupo de noticias, suscribiéndose a un boletín de
noticias y recibir la información solicitada en su lista de correo, ir directamente a
una página Web de la que se conoce de antemano su dirección URL, navegando
a través de los enlaces presentes contenidos en una página Web o usando los
motores de búsqueda.
Desde el punto de vista del usuario “navegar” en el World Wide Web en busca de
información de interés resulto en sus comienzos, un poco dificultoso, lento y
muchas veces improductivo.
Con el objetivo de solucionar estos problemas, surgieron distintas soluciones: las
anotaciones de URL´S favoritas (bookmarks), buscadores por palabras clave
como: Google, Yahoo, AltaVista entre otros que ayudan a los usuarios a buscar
información de acuerdo a un criterio especifico. Los buscadores por palabras
clave utilizan un programa llamado Robot Spider para llevar a cabo las
búsquedas.
Los Robots Spider son agentes inteligentes pues tienen incorporadas técnicas de
aprendizaje. A diferencia de los buscadores tradicionales, los robots no indexan el
Web, ellos “caminan” sobre el Web, analizando y almacenando información
relevante.
Las personas que hacen uso de la mayoría de buscadores comerciales como
Google, no saben realmente como estos funcionan, ni mucho menos como están
compuestos.
En nuestro país la mayoría de personas se han vuelto consumistas del Internet,
todo el mundo utiliza los buscadores y por ende los robots spiders; pero nadie
produce esta clase de software para el cual no se necesitan muchos recursos,
más que una computadora con conexión a Internet.
Las pocas tesis acerca del tema que se han realizado en el país no detallan con
exactitud como implementaron el robot spider en la realización de su buscador y
mucho menos se explica como funcionan estos robots, ya que no era el objetivo
de estos trabajos de graduación, además que en estos documentos no se
utilizaron las nuevas herramientas tecnológicas como por ejemplo MySQL para el
almacenamiento de la información obtenida y catalogada por el robot que hacen
mas fácil la puesta en marcha de un buscador.
Por tales razones se hace necesario el desarrollo de un documento que detalle el
funcionamiento y las partes que componen un robot spider, así como un ejemplo
de uno de sus principales usos, en este caso implementarlo dentro de un
buscador.
Se espera que las personas que hagan uso de esta guía sean capaces de
elaborar su propio buscador, despierten su interés y que desarrollen futuros
proyectos.
Basándose en lo expuesto anteriormente el documento esta dividido en seis
capítulos que se resumen de la siguiente manera: el capítulo uno es una
Introducción a la robótica en donde se explica el concepto de "robot" aplicado a
programas computacionales que utilizan el protocolo HTTP para explorar grandes
porciones del Web.
El capítulo dos lleva como nombre Conceptos básicos de redes y
programación, contiene información sobre redes y protocolos de Internet para
comprender la comunicación entre computadoras en el Web, se abordan temas
como modelo cliente/servidor, lenguajes de programación para Web y
fundamentos de Internet.
El capítulo tres Sistemas de búsqueda en Internet (robot Spider) contiene la
información sobre los robots Spider y su papel en los motores de búsqueda:
partes o componentes y los diferentes tipos de buscadores, indexación,
estandarización de documentos, estructura de la base de datos.
En el capítulo cuatro Algoritmos y conceptos utilizados en la elaboración de
robots Spider se estudian los algoritmos de ranking y sus técnicas WebQuery,
HITS, PageRank y algoritmo de crawling y el recorrido que puede ser Breadth-
First (cobertura amplia pero no profunda) Depth-First (cobertura vertical). Y se
explica además "el protocolo de exclusión de robots" y escrutinio de sitios.
Como parte practica de la guía se tiene el capítulo cinco llamado Combine
System, en él se estudian los distintos comandos de configuración de este robot
como: CombineINIT, CombineCtrl, CombineUtil, Combine Export y sus funciones
y configuración básica: Crawling o búsqueda, administración de base de datos y
archivos de configuración.
Y por ultimo el capítulo 6 que lleva por nombre Implementación del robot
Combine System en un buscador Web, es una guía practica para que el lector
de la misma sea capaz de elaborar su propio buscador Web, teniendo como
herramienta una computadora conectada a Internet, el software de ingeniería en
una caja y conocimientos básicos en programación.
AGRADECIMIENTOS
- En primer lugar a Dios por permitirme por medio de sus bendiciones, su
fidelidad y amor poder terminar mis estudios y de la sabiduría y tolerancia
que puso en mí cada día.
- A mis padres y abuelita, por su confianza puesta en mí y su apoyo
incondicional a lo largo de mi carrera.
- A mis compañeros de tesis y todas las personas que de manera directa o
indirectamente han sido un apoyo y han colaborado para la finalización de
este trabajo.
Vanessa Flores
AGRADECIMIENTOS
- Primeramente a Dios todopoderoso que me permitió estar con vida para
poder culminar mi carrera, gracias por darme las fuerzas para seguir
adelante a pesar de las adversidades que se presentaron.
- Le agradezco a mis padres por darme la vida, especialmente a mi padre
Napoleón Cubías que siempre estuvo conmigo apoyándome a lo largo de
mi carrera, gracias por toda tu ayuda este logro también es tuyo y no
hubiese sido posible sin tu gran apoyo.
- Agradezco también a mis segundos padres mis abuelos quienes me han
apoyado a lo largo de mi vida, gracias por estar conmigo cuando lo
necesitaba, deseo dedicarle este logro también a mi abuela Julia García
que estoy seguro me seguirá apoyando desde el cielo gracias por todo.
- Y agradezco también a todas las personas que de una u otra forma me
ayudaron para que esto se llevase a cabo familia, amigos y a mis
compañeros de tesis con los cuales compartí los problemas para la
realización de este trabajo.
Víctor Cubías
AGRADECIMIENTOS
• A Dios y a la Virgen María:
Por su continua presencia en mi vida, por las dádivas incomparables,
como lo son, amigos y compañeros de estudio que conocí a lo largo de estos
años, también por otorgarme salud, serenidad y concentración.
• A mis padres:
Por haberme brindado su apoyo incondicional y haber confiado en mí,
especialmente a mi madre, por su amor, ejemplo y sabiduría, de conocer el
tiempo correcto de instruir, aconsejar y corregir; en especial por sus oraciones.
• A mis hermanos:
Por su compañía y nobleza.
• A mis compañeros de tesis:
Por brindarme su amistad, con quienes he compartido momentos de
trabajo y alegría, y que convierten este logro en algo especial.
• Y a todas aquellas personas que de manera directa o indirectamente me
ayudaron a lo largo de este camino con consejos, muestras de cariño y/o
constante apoyo.
William Sorto
ÍNDICE.
CAPITULO I. DEFINICIÓN EL ANPROYECTO.
Págs.
1.1 ANTECEDENTES........................................................................................... 1
1.1.1 Breve historia de los robots spider.…….…………………………......….. 1
1.1.2 Estudios realizados en el país…...……………………………………..…. 2
1.2 IMPORTANCIA DE LA INVESTIGACIÓN…………………………………..... 4
1.2.1 Planteamiento del Problema............................................................ 4
1.2.2 Definición del Tema......................................................................... 4
1.2.3 Justificación..................................................................................... 4
1.3 OBJETIVOS…………………………………………………………………......... 5
1.3.1 General............................................................................................. 5
1.3.2 Específicos....................................................................................... 5
1.4 ALCANCES Y LIMITANTES….……………………………………………........ 6
1.4.1 Alcances.......................................................................................... 6
1.4.2 Limitantes....................................................................................... 11
1.5 FACTIBILIDAD……………………………………………………………........... 12
1.5.1 Factibilidad Técnica……………………………………………........... 12
1.5.2 Factibilidad Económica………………………………………….......... 12
1.5.3 Factibilidad Operativa……………………………………………........ 14
1.6 METODOLOGIA DE LA INVESTIGACIÓN………………………….............. 15
1.7 CRONOGRAMA DE ACTIVIDADES……………….………………………..... 16
1.8 MARCOTEORICO....……………………………………………………........... 18
1.8.1 Robots del Web.............................................................................. 18
1.8.2 Robot Spider Combine System……............................................... 19
1.8.3 Clases de buscadores….…………………………………..…….…... 20
CAPITULO II. ELABORACIÓN DE GUÍA TEÓRICA Y PRÁCTICA
SOBRE LOS ROBOTS SPIDER.
Introducción………………………………………………………………………….....22
2.1 Introducción a la Robótica............................................................................ 23
2.1.1 Concepto de Robot aplicado a la Web......................................................... 24
2.1.2 Agentes......................................................................................................... 25
2.1.2.1 Agente autónomo............................................................................ 26
2.1.2.2 Agente de inteligente...................................................................... 26
2.1.2.3 Agente de usuario........................................................................... 26
2.1.3 Comportamiento de robots………………………………………………….... 27
2.1.3.1 Spiders………………………………………………………………….. 27
2.1.3.2 Web ants………………………………………………………………... 27
2.1.3.3 Web crawlers…………………………………………………………… 28
2.1.3.4 Worms………………………………………………………………… 28
2.1.3.5 Wanderers……………………………………………………………… 28
2.1.3.6 Knowbots……………………………………………………………….. 28
2.1.4 Tipos de robots………………………………………………………………….. 29
2.1.4.1 Robot de análisis estadístico.......................................................... 29
2.1.4.2 Robot de mantenimiento................................................................. 29
2.1.4.3 Robot de copia a espejo................................................................. 30
2.1.4.4 Robot de ordenamiento de recursos............................................... 30
2.1.4.5 Robot combinado............................................................................ 30
2.2 Conceptos Básicos de Redes y Programación.......................................... 34
2.2.1 Componentes conceptuales de una red....................................................... 35
2.2.1.1 Modelo OSI..................................................................................... 35
2.2.1.1.1 Capa física................................................................................... 36
2.2.1.1.2 Capa de enlace............................................................................ 37
2.2.1.1.3 Capa de red................................................................................. 38
2.2.1.1.4 Capa de transporte...................................................................... 39
2.2.1.1.5 Capa de sesión............................................................................ 40
2.2.1.1.6 Capa de presentación.................................................................. 41
2.2.1.1.7 Capa de aplicación....................................................................... 42
2.2.1.2 Protocolo......................................................................................... 43
2.2.1.3 Protocolo TCP/IP............................................................................ 44
2.2.1.3.1 IP.................................................................................................. 44
2.2.1.3.2 TCP.............................................................................................. 44
2.2.1.3.3 Dirección IP.................................................................................. 45
2.2.2 Modelo Cliente/Servidor............................................................................... 46
2.2.2.1 Proceso cliente................................................................................ 46
2.2.2.2 Proceso servidor............................................................................. 46
2.2.3 Lenguajes de programación para la Web..................................................... 47
2.2.3.1 C/C++………………………………………………………………….... 47
2.2.3.2 Java………………………………………………………………………49
2.2.3.3 Scripts…………………………………………………………………… 51
2.2.3.4 Perl………………………………………………………………………. 52
2.2.3.5 PHP…………………………………………………………………...… 53
2.2.3.6 XML……………………………………………………………………... 55
2.2.3.7 ActiveX………………………………………………………………….. 56
2.2.3.8 CGI………………………………………………………………………. 57
2.2.3.9 VBScript………………………………………………………………… 58
2.2.3.10 JavaScript..................................................................................... 59
2.2.3.11 JScript........................................................................................... 60
2.2.4 Fundamentos de Internet.............................................................................. 62
2.2.4.1 Sistema de nombres de dominio (DNS).......................................... 62
2.2.4.2 URI ó URL....................................................................................... 64
2.2.4.2.1 Referencias URI........................................................................... 67
2.2.4.3 HTML.............................................................................................. 68
2.2.4.4 HTTP............................................................................................... 69
2.2.4.5 FTP................................................................................................. 70
2.2.4.5.1 Servidor FTP................................................................................ 72
2.2.4.5.2 Cliente FTP.................................................................................. 73
2.2.4.5.3 Acceso anónimo........................................................................... 73
2.2.4.5.4 Acceso de usuario........................................................................ 74
2.2.4.5.5 Acceso de invitado....................................................................... 74
2.3 Sistemas de Búsqueda en Internet (Robot Spider).................................... 78
2.3.1 Definición de sistemas de búsqueda............................................................ 79
2.3.2 Estructura de los sistemas de búsqueda...................................................... 79
2.3.3 Arquitectura de los sistemas de búsqueda................................................... 80
2.3.3.1 Arquitectura centralizada................................................................ 80
2.3.3.2 Arquitectura distribuida................................................................... 81
2.3.4 Aplicaciones de los robots Web.................................................................... 83
2.3.5 Entendiendo el funcionamiento de un robot................................................. 83
2.3.5.1 El papel de los robots en los motores de búsqueda........................84
2.3.5.2 Aspectos de diseño de los robots................................................... 84
2.3.6 Clasificación de los sistemas de búsqueda.................................................. 86
2.3.6.1 Directorios....................................................................................... 86
2.3.6.2 Motores de búsqueda..................................................................... 87
2.3.6.3 Buscadores híbridos....................................................................... 88
2.3.6.4 Metabuscadores.............................................................................. 89
2.3.7 Conceptos de recolección y robots............................................................... 90
2.3.8 Representación del documento.................................................................... 91
2.3.8.1 Palabras clave (KeyWord).............................................................. 91
2.3.8.2 Uso de Metadatos y etiquetas ......................................... 92
2.3.8.3 Análisis de relevancia..................................................................... 95
2.3.8.3.1 Métodos de análisis de texto........................................................ 96
2.3.8.3.2 Preprocesamiento de documentos.............................................. 96
2.3.8.3.3 Análisis léxico del texto................................................................ 97
2.3.8.3.4 Eliminación de Stopwords………………………………………….. 98
2.3.8.3.5 Stemming…………………………………………………………….. 98
2.3.8.3.6 Thesaurus……………………………………………………………. 99
2.3.8.4 Estandarización.................................................................... ........103
2.3.8.4.1 DCMI, Dublín Core Metadata Initiative.......................................104
2.3.8.4.2 MCF, Meta Content Framework…………………………………..105
2.3.8.4.3 RDF, Resource Description Framework………………………....105
2.3.9 Estructura de la base de datos...................................................................106
2.3.9.1 Organización.................................................................................107
2.3.9.1.1 Base de datos administrada por DBMS.....................................107
2.3.9.1.2 Base de datos de bajo nivel.......................................................107
2.3.9.2 Componentes................................................................................108
2.3.9.2.1 Componentes internos...............................................................108
2.3.9.2.1.1 Archivos virtuales....................................................................108
2.3.9.2.1.2 Léxico......................................................................................108
2.3.9.2.2 Componentes externos..............................................................109
2.3.9.2.2.1 Hit List.....................................................................................109
2.3.9.2.2.2 Almacén..................................................................................109
2.3.9.2.2.3 Índice de documentos.............................................................109
2.3.9.2.2.4 Archivo Mínimo............................................................... ........109
2.3.9.3 Funcionamiento interno de los sistemas de búsqueda.................110
2.3.10 Aplicación Cliente/Servidor.......................................................................110
2.3.10.1 Motores de búsqueda..................................................................111
2.3.10.2 Directorios...................................................................................114
2.3.10.3 Interfaces dependientes del navegador…...................................116
2.3.10.4 Cuando usar uno u otro tipo de sistema de búsqueda...............116
2.3.10.5 Instrucciones para el usuario......................................................117
2.3.10.5.1 Opciones de búsqueda............................................................117
2.3.10.5.2 Búsqueda avanzada................................................................118
2.4 Algoritmos y conceptos utilizados en la elaboración de Robots Spider.
2.4.1 Algoritmo de Crawling.................................................................................124
2.4.2 Implementación de escrutinio de sitios Web...............................................125
2.4.2.1 Escrutinio simple......................................................................................125
2.4.2.2 Escrutinio sofisticado...............................................................................126
2.4.2.2.1 Evitar la redundancia............................................................................126
2.4.2.2.2 Efectuar la discriminación.....................................................................127
2.4.2.2.3 Discriminación por tipos de archivos....................................................127
2.4.2.2.4 Discriminación Server Polling...............................................................128
2.4.2.2.5 Limitar el ámbito....................................................................................128
2.4.2.2.6 Limitar la profundidad del escrutinio.....................................................129
2.4.2.2.7 Otras consideraciones..........................................................................129
2.4.2.2.7.1 Marcos (Frames)................................................................................129
2.4.2.2.7.2 Contenidos dinámicos........................................................................130
2.4.3 Algoritmo de Ranking..................................................................................132
2.4.4 Exclusión de robots.....................................................................................136
2.4.4.1 Protocolo de exclusión de robots.............................................................136
2.4.4.2 Etiquetas para robots................................................................141
2.5 Combine System..........................................………………………………….146
2.5.1 Instalación del Combine System………………………………………………149
2.5.1.1 Instalación en Distribución Linux Debian 4.0.................................149
2.5.1.2 Requisitos de instalación en sistemas operativos no soportados.154
2.5.1.2.1 Módulos externos.......................................................................154
2.5.2 Prueba del Combine System......................................................................156
2.5.3 Utilizando escenarios de búsqueda dentro del Combine System...............159
2.5.3.1 Búsquedas generales sin restricciones.........................................159
2.5.3.2 Escrutinio enfocado – restricción de dominios..............................159
2.5.3.3 Escrutinio haciendo uso de definiciones de tópicos......................164
2.5.3.4 Escrutinio haciendo uso de definiciones de tópicos y un dominio
Especifico .sv…………………………………………………………..170
2.6 Implementación del Robot Combine System en un Buscador Web……176
2.6.1 Instalación del paquete Search in a Box System……………………………180
2.6.2 Listado de archivos básicos para realizar el buscador……………………...193
Glosario................................................................................................................197
Conclusiones…………………………………………………………………………...205
Bibliografía...........................................................................................................206
Anexos.................................................................................................................211
Apéndice A. Etiquetas HTML...............................................................................211
Apéndice B. Guía de CPAN.................................................................................213
Apéndice C. Respuestas a las preguntas de repaso...........................................216
ÍNDICE DE TABLAS Y FIGURAS.
Págs.
Tabla 2.2.1 Dominios de primer nivel.................................... .......... .......... .......... 63
Tabla 2.2.2 Esquemas URL...................................................................................66
Figura 2.2.1 Capas del modelo OSI...................................................................... 35
Figura 2.2.2 Una parte del espacio de nombres de dominios.............................. 63
Figura 2.2.3 Esquema FTP.................................................................................... 71
Figura 2.3.1 Estructura de un motor de búsqueda............................................... 79
Figura 2.3.2 Componentes de una arquitectura centralizada............................... 81
Figura 2.3.3 Componentes de una arquitectura distribuida.................................. 82
Figura 2.3.4 Ejemplo de un directorio................................................................... 87
Figura 2.3.5 Ejemplo de un buscador híbrido....................................................... 88
Figura 2.3.6 Ejemplo de un Metabuscador........................................................... 89
Figura 2.3.7 Representación gráfica de la ecuación de ley de Zipf.....................101
Figura 2.3.8 Representación grafica de la ecuación Ley de Heaps.....................102
Figura 2.3.9 Buscador Google.............................................................................111
Figura 2.3.10 Resultados de una búsqueda en Google.......................................112
Figura 2.3.11 Buscador Altavista.........................................................................113
Figura 2.3.12 Buscador Yahoo............................................................................113
Figura 2.3.13 Buscador WebCrawler...................................................................114
Figura 2.3.14 Directorio Yahoo............................................................................115
Figura 2.3.15 Categorías y subcategorías de un directorio.................................115
Figura 2.3.16 Ejemplo de un buscador que se ejecuta como un
programa independiente................................................................116
Figura 2.3.17 Búsqueda avanzada en buscador Google.....................................118
Figura 2.4.1 Orden en la exploración de nodos en Breadth-first.........................124
Figura 2.4.2 Exploración de nodos en Depth-first................................................125
Figura 2.4.3 Funcionamiento Algoritmo HITS......................................................133
Figura 2.4.4 Fórmula de PageRank.....................................................................134
Figura 2.4.5 Ponderación de páginas Web por referencias.................................135
Figura 2.4.6 Ejemplo de archivo robots.txt para la página Web
http://en.wikipedia.org/robots.txt ….....................………………......140
Figura 2.4.7 Ejemplo de archivo robots.txt para la pagina Web
http://www.cnn.com/robots.txt.........................................................140
Figura 2.4.8 Ejemplo de archivo robots.txt para la pagina Web
http://www.udb.edu.sv/robots.txt.....................................................141
Figura 2.5.1 Búsqueda enfocada en Combine System........................................147
Figura 2.5.2 Inicio de sesión como usuario root..................................................150
Figura 2.5.3 Archivo sources.list..........................................................................150
Figura 2.5.4 Actualización de los repositorios de software Debian......................151
Figura 2.5.5 Comando de instalación del Combine System................................152
Figura 2.5.6 Instalación del Combine System......................................................153
Figura 2.5.7 Instalación del Combine System (Continuación).............................153
Figura 2.5.8 Inicio del trabajo de escrutinio aatest...............................................156
Figura 2.5.9 Adición del URL semilla para el trabajo de escrutinio aatest...........157
Figura 2.5.10 Inicio del proceso de harvesting para el trabajo de
escrutinio aatest.............................................................................157
Figura 2.5.11 Finalización del proceso de escrutinio del trabajo aatest..............158
Figura 2.5.12 Comandos para exportar los resultados del trabajo de
escrutinio aatest al archivo pruebaxml...........................................158
Figura 2.5.13 Inicialización del trabajo de escrutinio focustest............................160
Figura 2.5.14 Abriendo el archivo combine.cfg en el editor de texto pico............161
Figura 2.5.15 Archivo de configuración combine.cfg...........................................161
Figura 2.5.16 Archivo de configuración combine.cfg con dos HOSTS de
inicio agregados.............................................................................162
Figura 2.5.17 Comandos para agregar dos URL’s semillas................................163
Figura 2.5.18 Inicio del harvesting del trabajo de escrutinio focustest................163
Figura 2.5.19 Comandos para exportar los resultados del trabajo de
escrutinio focustest al archivo xmlfocus.........................................164
Figura 2.5.20 Archivo de configuración de tópicos RestTopic.txt
del trabajo restaurantes…..............................................................166
Figura 2.5.21 Archivo de configuración de semillas RestSeed del
trabajo restaurantes.......................................................................166
Figura 2.5.22 Iniciación del trabajo de escrutinio restaurantes............................167
Figura 2.5.23 Comandos para cargar URL’s semillas al trabajo
de escrutinio restaurantes..............................................................167
Figura 2.5.24 Inicio de 3 procesos de harvesting para el trabajo
de escrutinio restaurantes..............................................................168
Figura 2.5.25 Base de datos resultado del trabajo de escrutinio
restaurantes vista en Emma..........................................................168
Figura 2.5.26 Página encontrada por medio del trabajo de escrutinio
restaurantes...................................................................................169
Figura 2.5.27 Archivo de configuración de tópicos usvtopic.txt del trabajo
buscausv………………………………………………………………..170
Figura 2.5.28 Archivo de configuración de semillas buscaseed.txt………………170
Figura 2.5.29 Iniciación del trabajo de escrutinio buscausv………………………171
Figura 2.5.30 cargando URL’s semillas buscausv…………………………………171
Figura 2.5.31 Abriendo el archivo combine.cfg en el editor de texto pico……….172
Figura 2.5.32 Archivo de configuración combine.cfg………………………………172
Figura 2.5.33 Inicio de 3 procesos de harvesting para el trabajo de
escrutinio buscausv……………………………………………………173
Figura 2.6.1 Arquitectura Zebra………………………………………………………177
Figura 2.6.2 Configuración de Zebra………………………………………………...179
Figura 2.6.3 Uso de pico para modificar el archivo sources.list…………………..180
Figura 2.6.4 Archivo de configuración sources.list…………………………………181
Figura 2.6.5 Actualización de repositorios de Debian……………………………..181
Figura 2.6.6 Actualización de repositorios de Debian (Continuación)…………...182
Figura 2.6.7 Instalación de Zebra, Yaz y XSLT…………………………………….182
Figura 2.6.8 Instalación de Zebra, Yaz y XSLT (Continuación)………………..…183
Figura 2.6.9 Descomprimiendo el archivo SEbox.tgz……………………………...183
Figura 2.6.10 Inicio del trabajo de escrutinio buscador……………………………184
Figura 2.6.11 Editando el archivo combine.cfg……………………………………..184
Figura 2.6.12 Editando el archivo combine.cfg (Continuación)…………………..185
Figura 2.6.13 Inclusión de las URL’s semillas del archivo buscaseed.txt……….185
Figura 2.6.14 Editando el archivo ZebraConf.xml………………………………….186
Figura 2.6.15 Editando el archivo ZebraConf.xml (Continuación)………………..186
Figura 2.6.16 Editando el archivo combine.cfg……………………………………..187
Figura 2.6.17 Uso del comando make setup……………………………………….187
Figura 2.6.18 Uso del comando make………………………………………………188
Figura 2.6.19 Editando el archivo zebra.cfg………………………………………...188
Figura 2.6.20 Editando el archivo zebra.cfg (Continuación)……………………..189
Figura 2.6.21 Iniciando el servidor Zebra…………………………………………...189
Figura 2.6.22 Iniciando trabajo de escrutinio buscador……………………………190
Figura 2.6.23 Localizando archivos plantilla………………………………………..190
Figura 2.6.24 Archivo index.phtml……………………………………………………191
Figura 2.6.25 Archivo index.phtml (Continuación)…………………………………191
Figura 2.6.26 Copiando index.phtml y extrRecordData.xsl a la carpeta
del servidor Web………………...…..………………………………...192
Figura 2.6.27 Buscador páginas .sv…………………………………………………192
1
CAPITULO I. DEFINICIÓN DEL ANTEPROYECTO.
1.1 ANTECEDENTES1.
1.1.1 Breve historia de los Robots Spiders.
Los robots Web o robots Spider son potentes programas que recorren la Web de
forma automática y buscan diferentes tipos de datos como texto, imágenes o
sonido.
Estos surgen a partir del año de 1993 con el desarrollo del World Wide Web
Wanderer, robot de búsqueda creado en Perl, que pretendía medir el tamaño de
la red.
Luego se creo Wandex, robot que podía leer direcciones URL, se considera que
fue el primer buscador de Internet. A partir de ahí se da el inicio del desarrollo de
la primeros robots Spider.
El 20 de abril del año de1994 Brian Pinkerton presenta WebCrawler, spider que
indexaba las páginas de forma completa y buscaba información de ellas,
Siempre en 1994 apareció Yahoo; con la desventaja que en un principio funciono
como un directorio hecho por personas, lo que hacia que, llevara mucho tiempo la
búsqueda de información. Para solucionar este problema sus creadores
incorporaron un Spider para su directorio.
Luego surge Lycos, creado por Michale Mauldin. Su algoritmo fue muy
interesante, ya que incluía el concepto de proximidad entre palabras.
Convirtiéndose en el motor de búsqueda mas destacado en el año de 1994.
En diciembre de 1995 surge AltaVista, este tenía un ancho de banda casi
ilimitado, consultas avanzadas, añadir o eliminar direcciones Web, permitía hacer
búsquedas de imágenes y ficheros multimedia.
1
La historia acerca de los buscadores Web fue obtenida en http://manuales.ojobuscador.com/historia/
2
En 1996 se comenzó a desarrollar Google, llamándose en un principio BackRub.
Este tenía una interfaz muy clara y resultados relevantes.
En el 2004 MSN Search con la ayuda de Christopher Payne y Oshoma Momoh
echan andar la primera fase del motor de Microsoft. Presentándose así en
noviembre de 2005 la plataforma de Windows Live que será la nueva interfaz del
motor de búsqueda de Microsoft.
Ya para el 2006 nace Exaltad utilizando el motor de búsqueda Quaero que es un
buscador Europeo.
1.1.2 Estudios realizados en el país.
La documentación y estudios existentes en el país referente a robots spider se
orientan en la implementación sobre un buscador, encontrándose los siguientes
registros:
En la Universidad Centroamericana “José Simeón Cañas” (UCA) del año de 1998
a la actualidad, se encuentra la tesis:
Desarrollo e implementación de un buscador de sitios Web para El Salvador.
(Desarrollada por: Elio David Vides).
Trabajo de graduación elaborado con el objetivo de ofrecer un buscador en
Internet que permita a los usuarios encontrar información solicitada y relacionada
a El Salvador en sus diferentes ámbitos: cultural, social, económico, político,
comercial y educativo.
Para su implementación se utilizó el robot Web llamado Combine System escrito
en Perl.
Se contaba con el respaldo de la empresa SVNet grupo nacional la cual permite a
las empresas y particulares tener sus propios dominios en Internet.
El buscador llamado Mirador se encontraba dentro de la dirección de la empresa
www.svnet.org.sv/mirador
En la Universidad Don Bosco, se encontró en los registros de la biblioteca la tesis:
Diseño, desarrollo e implementación de un buscador de sitios Web
nacionales.
3
(Desarrollada por: Rolando Francisco Álvarez, Jorge Alexander Cruz y
Guadalupe Mejía Salguero en el año 2000).
Este proyecto se tuvo el apoyo de SALNET; una empresa salvadoreña dedicada a
proveer servicios de Internet.
El trabajo de graduación documenta que utilizó el robot llamado BDDBot; la
documentación de su funcionamiento se encuentra en Internet y es elaborado en
el lenguaje de programación Java, eligiéndolo, por que se adecuaba a los fines
que se pretendían alcanzar. El buscador tuvo por nombre Ciber Izalco, el cual se
implementó en una red de tres computadoras para su elaboración.
4
1.2 IMPORTANCIA DE LA INVESTIGACIÓN.
1.2.1 PLANTEAMIENTO DEL PROBLEMA.
En la mayoría de las instituciones educativas del país, actualmente se cuenta con
poca información acerca de los buscadores Web; frente a esta situación surge la
idea de la creación de un documento que detalle y describa el funcionamiento de
un robot spider, ya que éste es la base fundamental para la elaboración de un
buscador Web moderno que no este basado en directorios.
1.2.2 DEFINICIÓN DEL TEMA.
Desarrollar un estudio monográfico que explique el funcionamiento de los robots
spider, y que exponga como implementar un robot en un motor de búsqueda.
1.2.3 JUSTIFICACIÓN.
La búsqueda de instrumentos que fortalezcan el proceso de enseñanza
aprendizaje es uno de los aspectos que mayormente ha interesado a la
Universidad Don Bosco en su afán por lograr la formación de profesionales de
calidad.
El presente proyecto de investigación acerca de los robots spider o exploradores
de la red, es un esfuerzo para facilitar el proceso de enseñanza aprendizaje y de
investigación, como parte esencial de la función formadora de profesionales de
calidad de la Universidad Don Bosco.
Por otra parte es importante señalar que, el hecho de fomentar la investigación en
estudiantes y profesores es una buena justificación, y por lo tanto, la generación
de conocimiento que esto implica. También se considera que el producto de esta
investigación podrá ser la base para dar paso a su vez, a futuros trabajos de
investigación que se relacionen con temas variados, tales como la programación
en Internet, la programación Web, la obtención o recuperación de información de
colecciones heterogéneas, publicaciones Web y los sistemas de búsqueda por
mencionar algunos.
5
1.3 OBJETIVOS.
1.3.1 GENERAL.
Elaborar una monografía basándose en el modelo instruccional que sirva de base
teórica y de guía practica para la configuración de los componentes de un Robot
Spider o explorador de la red.
1.3.2 ESPECIFICOS.
1. Elaborar dos documentos en forma de artículos para la revista de la
Facultad de Ingeniería acerca de la utilidad y el funcionamiento de los
robots spider.
2. Investigar algunos algoritmos que se utilizan en la construcción de robots
spiders o exploradores de la red.
3. Realizar una monografía que sirva de base teórica y de guía practica para
la configuración de los componentes de un robot spider o explorador de la
red.
4. Implementar un robot spider ya existente, con las modificaciones
necesarias para su funcionamiento dentro de un motor de búsqueda.
5. Preparar una guía que sirva de herramienta de apoyo para la comunidad
académica para poder ejecutar su propio buscador, y del mismo modo
incentivar el desarrollo de este tipo de software en el país.
6
1.4 ALCANCES Y LIMITANTES.
1.4.1 ALCANCES.
1. Dar a conocer el funcionamiento de los robots spiders, componentes,
clasificación, características propias y algoritmos utilizados en su creación.
2. Redactar una guía didáctica que contenga la información relevante sobre
los robots spider, su papel en los motores de búsqueda y la
implementación de un robot spider como el Combine System en un
buscador; este escrito contendrá los siguientes capítulos:
Capitulo 1 Introducción a la robótica.
1.1 Concepto de robot aplicado a la Web.
1.2 Agentes.
1.2.1 Agente autónomo.
1.2.2 Agente inteligente.
1.2.3 Agente de usuario.
1.3 Comportamiento de robots.
1.3.1 Spider.
1.3.2 Web Ants.
1.3.3 Web Crawler.
1.3.4 Worms.
1.3.5 Wanderes.
1.3.6 Knowbots.
1.4 Tipos de robots.
1.4.1 Robot de análisis estadísticos.
1.4.2 Robot de mantenimiento.
1.4.3 Robot de copia a espejo.
1.4.4 Robot de ordenamiento de recursos.
1.4.5 Robot combinado.
7
Capitulo 2 Conceptos básicos de redes y programación.
2.1 Componentes conceptuales de una red.
2.1.1 Subsistemas de comunicaciones.
2.1.1.1 Modelo OSI.
2.1.1.2 TCP/IP.
2.1.2 Aplicaciones de red.
2.2 Modelo Cliente/Servidor.
2.3 Lenguajes de programación para la Web.
2.3.1 Java.
2.3.2 Perl.
2.3.3 CGI.
2.3.4 ActiveX.
2.3.5 Scripts.
2.3.5.1 JavaScript y Jscript.
2.3.5.2 VBScript, ASP.
2.3.5.3 PHP.
2.4 Fundamentos de Internet.
2.4.1 Protocolos de Internet.
2.4.2 dirección IP.
2.4.3 Sistemas de nombres de dominio.
2.4.3.1 Dominios del nivel más alto.
2.4.3.2 Designaciones de país.
2.4.4 URI y URL.
2.4.4.1 Relaciones entre URL, protocolos y tipos de archivo.
2.4.4.2 URL y HTML.
2.4.4.3 URL absolutos y relativos.
2.4.5 HTTP.
2.4.5.1 Clases de códigos de respuesta de HTTP.
2.4.5.2 Métodos HTTP.
2.4.5.3 Otros métodos de HTTP.
2.4.6 FTP.
2.4.7 HTML.
2.4.7.1 Etiquetas HTML.
8
2.4.8 XML.
Capitulo 3 Sistemas de búsqueda en Internet (robot spider).
3.1 Definición de sistemas de búsqueda.
3.2 Estructura de los sistemas de búsqueda.
3.3 Aplicaciones de los robots.
3.3.1 Motores de búsqueda selectiva o discreta.
3.4 Entendiendo el funcionamiento de un robot.
3.4.1 El papel de los robots en los motores de búsqueda.
3.4.2 Aspectos de diseño de los robots.
3.5 Clasificación de los sistemas de búsqueda.
3.5.1 Directorios.
3.5.2 Motores de búsqueda.
3.5.2.1 Introducción.
3.5.2.2 Análisis.
3.5.3 Buscadores híbridos.
3.5.4 Metabuscadores.
3.6 Arquitectura de los sistemas de búsqueda.
3.6.1 Arquitectura centralizada.
3.6.2 Arquitectura distribuida.
3.7 Indexación.
3.7.1 Indexación manual.
3.7.2 Indexación automática.
3.7.2.1 Representación del documento.
3.7.2.1.1 Uso de meta datos y la etiquetas .
3.7.2.1.2 Análisis de relevancia.
3.7.2.1.3 Estandarización.
3.7.2.1.3.1 DCML, Dublin Core Metadata Initiative.
3.7.2.1.3.2 MFC, Meta Content Framework.
3.7.2.1.3.3 RDF, Resource Description Framework.
3.8 Estructura de la base de datos.
3.8.1 Aspectos básicos.
3.8.2 Definición.
3.8.3 Organización.
9
3.8.3.1 Base de datos administrada por DBMS.
3.8.3.2 Base de datos de bajo nivel.
3.8.4 Componentes.
3.8.4.1 Componentes internos.
3.8.4.1.1 Archivos virtuales.
3.8.4.1.2 Léxico (diccionario de palabras).
3.8.4.2 Componentes externos.
3.8.4.2.1 Hit List (contador por palabra de ocurrencias).
3.8.4.2.2 Almacén (Repository).
3.8.4.2.3 Índice de documentos.
3.8.4.2.4 Archivo mínimo.
3.8.5 Funcionamiento interno de los sistemas de búsqueda.
3.9 Aplicación cliente/servidor.
3.9.1 Motores de búsqueda.
3.9.2 Directorios.
3.9.3 Interfaces independientes del navegador.
3.9.4 Consideraciones adicionales.
3.9.4.1 Cuando usar uno u otro tipo de sistema de búsqueda.
3.9.4.2 Traducción de documentos.
3.9.4.3 Consultas en lenguaje natural.
3.9.4.4 Búsquedas inteligentes.
3.9.4.5 Ponderación de páginas.
3.9.4.5.1 Ponderación por conteo comparativo.
3.9.4.5.2 Ponderación por referencias.
3.9.4.6 Instrucciones para el usuario.
3.9.4.6.1 Opciones de búsqueda.
3.9.4.6.2 Búsqueda avanzada.
Capitulo 4 Algoritmos y conceptos utilizados en la elaboración de
robots spider.
4.1 Algoritmo de ranking.
4.2 Algoritmo de crawling.
4.3 Conceptos de recolección y robots.
4.4 Exclusión de robots.
10
4.4.1 Protocolo de exclusión de robots.
4.4.1.1 Formato.
4.4.2 Etiquetas para robots.
4.5 Implementación de escrutinio de sitios (Site Crawling).
4.5.1 Escrutinio simple.
4.5.2 Escrutinio sofisticado.
4.5.2.1 Evitar la redundancia.
4.5.2.2 Efectuar la discriminación.
4.5.2.3 Limitar el ámbito.
4.5.2.4 Limitar la profundidad del escrutinio.
4.5.2.5 Otras consideraciones.
4.5.2.5.1 Marcos (Frames).
4.5.2.5.2 Contenidos dinámicos.
4.5.2.5.3 Escrutinio a sitios específicos.
Capitulo 5 Combine System.
5.1 Introducción al robot Combine System.
5.2 Parte de la ingeniería de búsqueda en una caja.
5.3 Programas necesarios para instalar el Combine System.
5.4 Instalación del robot combine en la distribución de Linux Debian 3.0.
5.5 Instalación del robot combine en otras distribuciones de Linux/Unix.
5.6 Pruebas de Instalación.
5.7 Configuración de dominios.
5.8 Configuración de tópicos específicos.
5.9 Configuración general.
5.10 Componentes del sistema
5.11 Variables de configuración
5.12 Módulos utilizados en el Combine System2.
Capitulo 6 Implementación del robot combine system en un buscador
Web.
6.1 Instalación del paquete Search in a Box System.
6.2 Listado de archivos básicos para realizar el buscador.
2
Estos módulos son listados en anexos
11
3. Elaborar la configuración respectiva para que el buscador funcione solo
para sitios nacionales con extensión .sv.
1.4.2 LIMITANTES.
Entre los factores que podrían afectar el desarrollo del proyecto, se encuentran
los siguientes:
1. No se cuenta con completo acceso a los algoritmos de los buscadores
comerciales por cuestiones de seguridad, esto implica que solo se
estudiarán algunas de sus partes.
2. El estudio monográfico contendrá únicamente el análisis detallado del robot
spider Combine System.
12
1.5 FACTIBILIDAD3.
1.5.1 Factibilidad Técnica:
Desde el punto de vista técnico el proyecto es realizable, ya que se dispone con la
información necesaria para la realización de la investigación, además del equipo
necesario para el diseño y la implementación que se va a desarrollar, las
herramientas de software y el recurso humano.
Para la realización del estudio monográfico de los robots spiders se cuenta con
información disponible en su mayoría en Internet como lo son libros en formato
digital y la información técnica encontrada sobre spiders o motores de búsqueda,
además de trabajos de graduación impresos similares al tema de investigación en
El Salvador.
Para la implementación del motor de búsqueda, como se dijo anteriormente, se
encuentran disponibles en Internet un gran numero de robots spider; para la
mayoría de ellos es accesible su documentación de funcionamiento, lenguaje de
programación en que está elaborado, código fuente, disponibilidad comercial
(Shareware4, Freeware5), foros de discusión, contacto con el o los creadores del
robot y la actualización de las ultimas versiones para un robot Web en particular.
1.5.2 Factibilidad Económica:
El costo monetario que se generará en el proceso de desarrollo del presente
proyecto en cuanto al uso de tecnología que se empleará para su impulso, es
económicamente factible de acuerdo a lo siguiente:
Para el estudio monográfico, la investigación en ésta etapa se avocará
mayoritariamente en Internet y los costos incurridos para llevarla a cabo son el
pago mensual por conexión residencial a Internet a velocidad de 256 Kbps, el cual
es de $28.25.
Para la implementación de motor de búsqueda, se efectuará sobre una red de tres
computadores a modo de ensayo antes de su puesta en Internet. La red de
3
La factibilidad establece si el proyecto es posible de realizarse, a fin de que se cuente con los recursos y
capacidades para cumplir con los objetivos y necesidades de los usuarios.
4 Software protegido por leyes de copyright, que se encuentra disponible gratuitamente durante cierto tiempo.
5 Aplicaciones de uso gratuito que pueden encontrarse en Internet.
13
computadoras tiene como objetivo realizar las diferentes pruebas pertinentes
necesarias para poder visualizar como se comportará el algoritmo del robot Web
en cuanto a peticiones de búsqueda.
HARDWARE
Cantidad Articulo Costo U. Costo N.
3 Computadoras $ 307 $ 921
1 Impresora $ 100 $ 100
1 UPS $ 50 $ 50
Total $ 1071
SOFTWARE
1 S. O. Linux distribución
Debian 3.0
$ 0.00 $ 0.00
1 MySQL
$ 0.00 $ 0.00
1 Zebra
$ 0.00 $ 0.00
1 Tidy
$ 0.00 $ 0.00
1 Perl
$ 0.00 $ 0.00
1 PHP
$ 0.00 $ 0.00
DESARROLLO DEL ESTUDIO MONOGRÁFICO E IMPLEMENTACIÓN DE
MOTOR DE BÚSQUEDA
3 Programadores $ 500.00 (c/u) $ 13,500 durante 9
meses
OTROS GASTOS
Conexión a Internet
Residencial (256K)
$ 28.25 $ 254.25 durante 9
meses
Energía eléctrica $ 120.00 $ 1080 durante 9
meses
Costo Total $ 15,905.25
14
1.5.3 Factibilidad Operativa:
La factibilidad operativa comprende una determinación sobre el uso de la
información que se da a conocer para que se maneje de la mejor forma posible,
considerando los siguientes aspectos:
• El estudio monográfico se realiza a fin de explicar las partes que componen
un robot Web destinado a estudiantes de universidades y profesores con
conocimientos básicos de programación, con el fin de conocer su
funcionamiento.
• La implementación del motor de búsqueda expone la utilidad de los robots
Web como una de las tecnologías de Internet que hoy en día utilizamos.
15
1.6 METODOLOGÍA DE LA INVESTIGACIÓN.
Para la investigación del proyecto se utilizarán principalmente 3 herramientas de
investigación:
- La investigación documental, se hará uso de fuentes bibliográficas
impresas mayores de estudio como: manuales para el uso de las
herramientas como el Combine System, libros de texto referentes al Web y
distintas tesis tanto nacionales como internacionales, además de
información que se encuentra en Internet y en otros medios magnéticos.
- Entrevistas a profesionales y/o profesores del área de informática.
- Evaluación de productos de software, específicamente sistemas de
búsqueda, como buscadores comerciales, motores de búsqueda y robots
spiders.
Para la realización de cada uno de los capítulos de investigación se ha pensado
en poner en práctica el siguiente proceso:
- Investigación previa del capitulo; éste apartado cubre identificar y
seleccionar la documentación adecuada al tema del capitulo de estudio.
- Identificación de los lugares donde están ubicados los documentos
seleccionados y la recuperación de ellos.
- Análisis de los documentos recuperados.
- Sistematización de la investigación obtenida de los documentos
estudiados.
16
1.7 CRONOGRAMA DE ACTIVIDADES.
17
Nº Objetivos.
1 Elaborar dos documentos en forma de artículos para la revista de la Facultad de Ingeniería
acerca de la utilidad y el funcionamiento de los robots spider.
2 Investigar algunos algoritmos que se utilizan en la construcción de robots spiders o
exploradores de la red.
3 Elaborar una monografía que sirva de base teórica y de guía practica para la configuración
de los componentes de un robot spider o explorador de la red.
4 Implementar un robot spider ya existente, con las modificaciones necesarias para su
funcionamiento dentro de un motor de búsqueda.
5 Elaborar una guía que sirva de herramienta de apoyo para la comunidad académica para
poder ejecutar su propio buscador, y del mismo modo incentivar el desarrollo de este tipo de
software en el país.
Nº Capítulos.
1 Introducción a la robótica.
2 Conceptos básicos generales.
3 Sistemas de búsqueda en Internet (robot spider).
4 Algoritmos y conceptos utilizados en la elaboración de robots spider.
5 Combine System.
6 Implementación del robot Combine System en un buscador Web.
18
1.8 MARCO TEÓRICO.
Un buscador es la herramienta que permite investigar, averiguar, examinar la red6
a partir de unas palabras que se tienen que introducir para describir los que se
busca.
Detrás de un buscador hay una base de datos que contiene la información y unos
sistemas de indexación, compresión y organización de los datos que permiten
efectuar búsquedas por palabras rápidamente.
Las búsquedas se hacen con palabras clave o con árboles jerárquicos por temas;
el resultado de la búsqueda es un listado de direcciones Web en los que se
mencionan temas relacionados con las palabras clave buscadas.
Los buscadores se pueden clasificar en dos tipos:
- Índices temáticos: Son sistemas de búsqueda por temas o categorías
jerarquizados (aunque también suelen incluir sistemas de búsqueda por
palabras clave). Se trata de bases de datos de direcciones Web elaboradas
"manualmente", es decir, hay personas que se encargan de asignar cada
página Web a una categoría o tema determinado.
- Motores de búsqueda: Son sistemas de búsqueda por palabras clave. Las
bases de datos, en los motores de búsqueda, incorporan automáticamente
páginas Web mediante "robots" de búsqueda por la red.
1.8.1 Robots del Web: Un robot es un término aplicado a programas de
comunicación que utilizando HTTP como protocolo de comunicación, exploran
grandes porciones del Web y de manera recursiva extraen información de ellas.
Dicha información puede después ser utilizada para alimentar motores de
búsqueda, para efectos estadísticos, para realizar copias de respaldo, etc.
Dentro de la terminología propia del Internet, a estos programas se les dan varios
nombres que, en algunos casos, denotan algún comportamiento especial:
- Spider (araña): robot del Web.
6 World Wide Web
19
- Crawler (reptil): orientado a dar la impresión de movimiento.
- Worm (lombriz): trabajan de forma distribuida, explorando
simultáneamente diferentes porciones del Web.
1.8.2 Robot Spider Combine System: El robot que se utilizara para las prácticas
en el último capitulo sobre implementación de un robot spider en un buscador
Web será el Combine System. Combine System es un robot para recolección de
recursos en el Web, y está diseñado para ser un sistema distribuido, paralelo y
flexible.
− Distribuido: Ya que todos los protocolos de comunicación interna están
basados en la familia de protocolos TCP/IP y los diferentes componentes del
sistema pueden ser distribuidos entre un número ilimitado de computadoras
conectadas a Internet.
− Paralelo: Ya que el sistema es totalmente distribuido, es posible ejecutar
varios componentes en computadoras individuales, las cuales son más
adecuadas a los requerimientos de hardware y comunicación para esos
componentes específicos.
− Flexible: El sistema esta organizado como una colección de muchos
programas pequeños. Cada uno de ellos está encargado de pocas tareas
dedicadas. Esta característica permite que el sistema pueda ser adaptado de
una manera fácil a un nuevo tipo de aplicación agregando o reemplazando uno
o algunos componentes.
La decisión de utilizar el robot Combine System se debe a que:
− Es parte de la ingeniería en una caja, esto le da cierta ventaja ya que tiene una
gran compatibilidad con Zebra para realizar en conjunto un buscador bastante
eficiente.
− Una gran posibilidad de configuración, por ser software bajo la licencia GPL, el
código fuente de este puede ser manipulado libremente para obtener mejores
resultados.
20
− Posee un sistema avanzado de tópicos, que permite realizar búsquedas
avanzadas dándole prioridad a palabras con mayor relevancia en una
búsqueda.
− Se puede manipular para que funcione en un dominio determinado, en nuestro
caso este será el dominio .sv.
− Posee una enorme compatibilidad para distintos tipos de documentos como
text, HTML, PDF, PostScript, MSWord, Power Point, Excel, RTF, TeX y
distintos tipos de imágenes.
− Obedece la reglas de los robots, al reconocer el archivo robots.txt.
− Utiliza un sistema de bases de datos de fácil entendimiento y bastante
eficiente MySQL.
− Ha sido probado en distintos motores de búsqueda como en los buscadores
europeos Alvis Search, Engine New y Alvis Wikipedia Search.
− Posee una buena documentación técnica desde el sitio http://combine.it.lth.se/.
1.8.3 Clases de buscadores.
1. Los motores de búsqueda o arañas:
La mayoría de los grandes buscadores internacionales que todos conocemos son
de este tipo.
Recorren las páginas recopilando información sobre los contenidos de las
páginas.
Ejemplos de Spiders: Google, Altavista, Hotbot, Lycos.
2. Los Directorios:
Una tecnología que es ampliamente utilizada por la cantidad de programas scripts
en el mercado. No se requieren muchos recursos de informática, pero si de
soporte humano y mantenimiento.
21
Los directorios no recorren las Web ni almacenan sus contenidos. Los resultados
de la búsqueda estarán determinados por la información que se haya
suministrado al directorio cuando se registra la página Web.
3. Sistemas mixtos Buscador - Directorio:
Poseen características de buscadores y además presentan las páginas
registradas en catálogos sobre contenidos temáticos que a su vez se dividen en
subsecciones.
4. Metabuscadores:
No son buscadores reales; lo que hacen es realizar búsquedas en auténticos
buscadores, analizan los resultados de la página y presentan sus propios
resultados.
Presentan la ventaja de seleccionar para el usuario, los mejores sitios que
presentan los buscadores consultados
22
CAPITULO II. ELABORACIÓN DE GUÍA TEÓRICA Y PRÁCTICA
SOBRE LOS ROBOTS SPIDER.
INTRODUCCION
La siguiente guía esta diseñada para facilitar el proceso de enseñanza y
aprendizaje para todos los estudiantes a partir de un nivel de tercer año en la
carrera de Ingeniería en Ciencias de la Computación y/o carreras afines, por lo
tanto, es necesario que tenga conocimientos de: sistema operativo LINUX,
programación en PHP, HTML, conocimientos básicos de redes; mas que
todos enfocados a Internet.
Por lo tanto esperamos que la siguiente guía teórica-práctica despierte el interés
de las personas en conocer sobre los robot spider, así mismo, que ésta inquietud
lleve a la creación de nuevos proyectos de investigación.
23
2.1: INTRODUCCIÓN A LA ROBÓTICA.
Tiempo recomendado de estudio: 1 hora con 30 minutos.
Objetivos:
Al concluir este capítulo, el lector estará capacitado para:
- Definir el concepto de robot aplicado al Web.
- Identificar que es un agente y nombrar sus distintos tipos.
- Comprender como se clasifican los robots en base a su comportamiento.
- Nombrar y describir los distintos tipos de robots Web existentes.
Introducción:
Cuando la mayoría de nosotros escuchamos la palabra “robot”
inmediatamente se nos viene a la mente un ser con forma semihumana o
parecido a algún animal, con brazos, piernas, con capacidad de movilizarse
por si mismo y que además posee inteligencia artificial, pero en este capítulo
veremos que los robots no necesariamente deben poseer un cuerpo físico; es
decir, muchos de los robots que utilizamos hoy en día y de manera cotidiana,
únicamente los podemos ver a través de una computadora, esperamos que
este capitulo sea de mucha ayuda al lector para que se familiarice con esta
clase de robots, en especial con los denominados robots spider.
En este capítulo el lector se familiarizará con algunos términos básicos que le
ayudaran a entender los capítulos posteriores, algunas definiciones como
robot spider, agentes y la clasificación de los robots según su comportamiento
serán vitales para llegar a construir un buscador Web en los últimos capítulos.
24
2.1.1 CONCEPTO DE ROBOT APLICADO AL WEB.
Un robot es un programa que rastrea recursos a través del Internet siguiendo los
vínculos que contienen las páginas Web albergadas en un servidor o en otros
servidores de la red.
En general, la búsqueda comienza con una lista inicial de servidores, para luego
seguir los vínculos que tengan estos con el resto de los documentos que se
encuentran en la Web. La arquitectura y funcionamiento de estos sistemas se
verá en forma detallada en los siguientes capítulos.
Los principales buscadores de Internet construyen sus bases de datos usando
robots comúnmente denominados spiders, crawlers o webcrawlers.
Los sistemas de búsqueda basados en robots (robots spider) realizan las
siguientes acciones:
- Recuperan y procesan todas las páginas Web que encuentran.
- Extraen información de referencia (índices) sobre las páginas.
- Los índices se almacenan en bases de datos que ofrecen servicios de
búsqueda basados en palabras clave.
Los robots Web son potentes programas que recorren la Web
de forma automática y buscan diferentes tipos de datos como
texto, imágenes o sonido.
Estos datos, junto con las direcciones URL que los contienen, son indexados,
clasificados y almacenados en grandes bases de datos para que los usuarios de
Internet posteriormente, envíen sus consultas e interroguen a la base de datos
buscando alguna frase o palabra clave.
Los robots periódicamente hacen un recorrido de estas páginas para buscar
alguna modificación o la incorporación de nuevos datos y/o actualizaciones, de
esta forma, la actualización de los datos se realiza de forma automática.
25
En general, los robots comienzan con un listado de enlaces y URL’s
preseleccionadas y, recurrentemente, visitan los documentos que se referencian
desde las mismas.
Ejemplos de robots son:
- Googlebot (robot de Google).
- Mozilla Compatible Agent (robot de Yahoo).
- Msnbot (robot de MSN).
2.1.2 AGENTES.
En el campo informático, podemos definir un agente como un componente
software y/o hardware que es capaz de actuar para realizar tareas en beneficio
del usuario.
De forma más específica:
Un agente es un sistema de hardware y/o software que interactúa
con su entorno éste puede ser otros agentes o humanos, guiado por
uno o varios propósitos, es proactivo es decir, reacciona a eventos y a
veces se anticipa haciendo propuestas, es adaptable, esto significa que se puede
enfrentar a situaciones novedosas, es sociable, se comunica, coopera o negocia y
su comportamiento es predecible en cierto contexto7.
Las aplicaciones de los agentes son muy numerosas, entre las que podemos
destacar:
- El uso de agentes en Internet e interfaces de usuarios.
- Utilización en sistemas de información, juegos y animaciones, comercio
electrónico, educación, etc.
7 Olivares, Jesús. Agentes: concepto, aplicaciones y referencias. http://www.jesusolivares.com/
26
En el ámbito de la Web, podemos destacar los siguientes tipos de agentes:
2.1.2.1 AGENTE AUTÓNOMO: se trata de un programa que “viaja”
entre los sitios Web, decidiendo por él mismo qué debe hacer y
cuándo debe moverse a otros lugares.
2.1.2.2 AGENTE INTELIGENTE: se trata de un programa que ayuda al
usuario a ciertas acciones. Por ejemplo, a rellenar formularios,
elegir productos, encontrar algo en especifico, etc.
Este tipo de agentes también se denominan softbot (software robot).
Usa herramientas de software y servicios basados en el comportamiento de
las personas.
2.1.2.3 AGENTE DE USUARIO: es el nombre técnico para denominar a
un programa que ejecuta determinadas tareas para un usuario en la red.
Ejemplos son: un navegador como Internet Explorer, o un agente de correo
del tipo Email User-agent, Eudora, etc.
Preguntas de repaso.
1. ¿Qué es un robot aplicado al Web?
____________________________________________________________
___________________________________________________________.
2. ¿Qué es un agente?
____________________________________________________________
___________________________________________________________.
27
3. Clasifique los siguientes programas según el agente al que pertenece
autónomo, inteligente o de usuario. Ejemplo: Mozilla Fire Fox usuario
Navegador Web Opera ____________________
Googlebot ____________________
Formulario de relleno gmail ____________________
MsnBot ____________________
Navegador Internet Explorer ____________________
2.1.3 COMPORTAMIENTO DE ROBOTS.
Los robots spiders adoptan numerosas denominaciones todas ellas tienen que ver
con la traducción al español de su significado en inglés, como por ejemplo Web =
telaraña, y en la forma que estos robots se mueven a través de Internet.
Sin embargo, lo único que hace un robot es visitar los sitios y extraer los enlaces
que están incluidos dentro de estos.
A continuación se detallan los principales tipos y denominaciones de robots:
2.1.3.1 ARAÑAS (Spiders): es un programa usado para rastrear la red. Lee
la estructura de hipertexto y accede a todos los enlaces referidos en
el sitio Web. Se utiliza como sinónimo de robot y crawler. Ejemplos:
Googlebot, Combine System y BDDBot.
2.1.3.2 HORMIGAS (Web Ants): cooperativa de robots. Trabajan de forma
distribuida, explorando simultáneamente diferentes porciones de la
Web. Son robots que cooperan en un mismo objetivo, por ejemplo,
para llevar a cabo una indexación8 distribuida.
8 Proceso que consiste en la representación del contenido de un documento o de una parte del mismo, mediante la
selección de términos apropiados y se expresa en un lenguaje de búsqueda informativa o natural para facilitar la
recuperación.
28
2.1.3.3 ORUGAS (Web crawlers): es un programa que inspecciona las
páginas del World Wide Web de forma metódica y automatizada.
Los Web crawlers se utilizan para crear una copia de todas las
páginas Web visitadas para su procesado posterior por un motor de
búsqueda que indexa las páginas proporcionando un sistema de
búsquedas rápido. Ejemplos: WebCrawler y MetaCrawler.
2.1.3.4 GUSANOS (Worms): es lo mismo que un robot, aunque
técnicamente un gusano es una réplica de un programa, a diferencia
de un robot que es un programa original. Se usan, por ejemplo, para
duplicar los directorios de FTP para que puedan acceder más
usuarios. Ejemplos: Bagle, NetSky o Passer.
2.1.3.5 VIAJERO, VAGABUNDO (Wanderes): son una clase de robots que
realizan estadísticas sobre la Web, como por ejemplo, número de
servidores, servidores conectados, número de Webs.
2.1.3.6 ROBOTS DE CONOCIMIENTO (Knowbots): localizan referencias
hipertextuales dirigidas hacia un documento o servidor concreto.
Permiten evaluar el impacto de las distintas aportaciones que
engrosan las distintas áreas de conocimiento de la Web. Ejemplos:
Newstracker, Mind-i, Eliza.
Preguntas de repaso.
1. ¿En que se basan las clasificaciones de los robots spider?
____________________________________________________________
___________________________________________________________.
2. Mencione y explique brevemente tres clasificaciones de los robots
spider.
____________________________________________________________
___________________________________________________________.
29
3. Mencione al menos un robot spider que se comporte como:
Gusano ________________.
Oruga __________________.
Araña __________________.
2.1.4 TIPOS DE ROBOTS.
2.1.4.1 ROBOT DE ANÁLISIS ESTADÍSTICO: Este tipo de robot extrae
información y la utiliza para realizar cálculos de tipo estadísticos,
tales como controlar el número promedio de documentos existentes
en los servidores de un dominio o región y el tamaño de los
documentos que existen en los servidores de un dominio. Estos
robots son implementados en pocas ocasiones y normalmente se
utilizan para cubrir otro propósito además del estadístico. Ejemplo:
The Wanderer fue el primer robot en Internet y se diseñó para contar
el número de servidores Web que existían en la red.
2.1.4.2 ROBOT DE MANTENIMIENTO: Orientado a la administración de la
estructura hipertexto en servidores Web. Principalmente funciona
generando peticiones de tipo HEAD para detectar si un URL es
valido, en caso que no lo sea, informa a una base de datos el estado
del recurso, y especifica si es posible acceder a él desde una
ubicación diferente. Por el tipo de trabajo de verificación que realiza,
éste robot debe recorrer una base de datos y compararla contra el
estado de los vínculos dentro del Web y desechar los que hayan
sido desplazados o eliminados. Ejemplos: Checkbot y MomSpider,
este último también es capaz de funcionar como un robot
combinado.
30
2.1.4.3 ROBOT DE COPIA A ESPEJO: Son utilizados para mantener
estructuras de hipertexto redundante con el objetivo de proveer una
respuesta rápida y segura a los fallos en los servicios Web. También
se utilizan para distribuir carga de servidores remotos que contienen
la misma información o información recientemente actualizada. Este
tipo de distribución de recursos es normal en sitios FTP, debido a
que se tienen limitaciones grandes en el número de conexiones
permitidas por un sitio que maneja este protocolo. Así que es
preferible distribuir la carga por zonas geográficas o mejor aun, por
dominios. Este tipo de robots también realiza, aunque de manera
implícita, una labor de mantenimiento del estado de los vínculos. Un
ejemplo de estos robots es: HTML Gobble.
2.1.4.4 ROBOT DE ORDENAMIENTO DE RECURSOS: Este tipo de robot
se caracteriza por explorar y reunir grandes porciones del Web.
Además la información extraída, es decir URL’s y Meta Tags, es
puesta en bases de datos e indexada para después ponerla
accesible a usuarios en el Web a través de buscadores de sitios.
Otra de las tareas que realizan estos robots es la de actualizar
periódicamente la base de datos del buscador. Con esto se lleva a
cabo un mantenimiento implícito de la base de datos. Normalmente
se requiere de un proceso que ordene la información que se extrae,
antes de pasarla a la base de datos que accede al buscador, ya que
un proceso de este tipo podría requerir de más tiempo y recursos, lo
cual provocaría que el robot tenga que esperar a que el proceso
termine sobre la información anterior antes de continuar. Ejemplo:
Webpages Robot, Scanner y Combine System.
2.1.4.5 ROBOT COMBINADO: Como su nombre lo indica entra en esta
clasificación todo robot capaz de realizar tareas propias de otros
tipos de robot, pero que no cumplen con algunas características
propias de alguno de ellos. Entre los que comúnmente se
implementan son los robots estadísticos combinados con robots de
Mantenimiento, y los robots estadísticos y de copia a espejo. Estos
robots surgieron del hecho que un robot de mantenimiento
31
normalmente extrae datos dentro del cuerpo de la entidad (Entitu-
body) de un mensaje de respuesta de http, y luego la desechan
debido a que no sirve a sus propósitos, así que es posible utilizar
esos datos para otros propósitos como el mantenimiento del
contenido del documento y/o de la dirección URL. Ejemplos Pack
Rat (Estadístico-Mantenimiento).
Preguntas de repaso.
1. Marque con X en el enunciado que mejor defina el comportamiento de
los robots de mantenimiento:
__ Explora y reúne grandes porciones del Web.
__ Extrae información y la utiliza para fines estadísticos
__ Esta orientado a la administración de la estructura hipertexto en
servidores Web.
2. Defina los siguientes tipos de robots:
Robot de copia a espejo: _______________________________________
____________________________________________________________
___________________________________________________________.
Robot estadístico: _____________________________________________
____________________________________________________________
___________________________________________________________.
Robot combinado: _____________________________________________
____________________________________________________________
____________________________________________________________.
32
Auto evaluación.
Instrucciones.
En la hoja provista, subraye la respuesta correcta. Coteje las respuestas al final
de la auto evaluación.
1. Un agente es:
a. Un robot que indexa las paginas Web.
b. Un programa para rastrear la red.
c. Sistema de hardware y/o software que interactúa con su entorno.
2. Los robots Web son:
a. Programas para rastrear la red.
b. Potentes programas que recorren la Web de forma automática y
buscan diferentes tipos de datos.
c. Sistemas de hardware y/o software que interactúan con su entorno.
3. Un robot Spider es:
a. Un programa que lee la estructura de hipertexto y accede a todos
los enlaces referidos en el sitio Web.
b. Un programa para rastrear la red.
c. A y B son correctas.
4. Una de las clasificaciones de robot según su comportamiento es:
a. Robot estadístico.
b. Robot Spider.
c. Ninguna de las anteriores.
5. Cual de los siguientes programas es un ejemplo de robot Spider
a. Combine System.
b. Mozilla Fire Fox.
c. A y B son correctas.
33
Contestaciones de las preguntas de la página anterior.
1. C, 2. B, 3. C, 4. B, 5. A
De 5 a 3 preguntas correctas: Puede continuar con el capitulo 2
Menos de 3 preguntas: Repase el capitulo 1 y compruebe el ejercicio.
Investigación Complementaria.
- Investigue como funciona el Googlebot.
- Investigue 2 ejemplos mas de robots combinados excluyendo el
mencionado en éste capitulo.
- Realice un resumen del capitulo describiendo con sus propias palabras
¿Qué es un robot aplicado al Web? ¿Cómo se clasifican los robots? ¿Qué
es un agente? ¿Cómo se clasifican los agentes?
34
2.2: CONCEPTOS BÁSICOS DE REDES Y
PROGRAMACIÓN.
Tiempo recomendado de estudio: 4 horas.
Objetivos:
Al concluir este capitulo, el lector estará capacitado para:
- Definir los conceptos básicos de redes.
- Comprender como funciona el modelo OSI y sus distintas capas.
- Mencionar algunos de los lenguajes utilizados para la programación Web.
- Entender de manera básica como funciona el Internet.
Introducción:
En el presente capítulo el lector se familiarizará con los conceptos básicos,
necesarios para comprender como funcionan las redes en general y en especial
Internet.
En este capítulo se estudiara el modelo de referencia de Interconexión de
Sistemas Abiertos (OSI, Open System Interconnection).
Para enfrentar el problema de incompatibilidad de redes, la Organización
Internacional para la Estandarización (ISO) investigó modelos de networking
como la red Digital Equipment Corporation (DECnet), la Arquitectura de Sistemas
de Red (SNA) y TCP/IP a fin de encontrar un conjunto de reglas aplicables de
forma general a todas las redes. Con base en ésta investigación, la ISO desarrolló
un modelo de red que ayuda a los fabricantes a crear redes que sean compatibles
con otras redes.
Por otro lado también se estudiarán los fundamentos básicos de Internet y los
distintos lenguajes que se utilizan en la Web como Java, Perl, HTML.
De esta manera el lector comenzara a habituarse a conceptos que se utilizaran en
próximos capítulos.
35
2.2.1 COMPONENTES CONCEPTUALES DE UNA RED.
A continuación se definirán algunos de los términos elementales de una red:
2.2.1.1 MODELO OSI.
Figura 2.2.1 Capas del modelo OSI.
El Modelo OSI es un lineamiento funcional para tareas de comunicaciones
y, por consiguiente, no especifica un estándar de comunicación para dichas
tareas. Sin embargo, muchos estándares y protocolos cumplen con los
lineamientos del Modelo OSI.
Como se mencionó anteriormente, OSI nace con el objetivo de uniformizar
los elementos que participan en la solución del problema de comunicación
entre equipos de cómputo de diferentes fabricantes.
Estos equipos presentan diferencias en:
- Procesador central.
- Velocidad.
- Memoria.
- Dispositivos de almacenamiento.
- Interfaces para comunicaciones.
- Códigos de caracteres.
- Sistemas Operativos.
36
Estas diferencias propician que el problema de comunicación entre
computadoras no tenga una solución simple. Dividiendo el problema
general de la comunicación, en problemas específicos, facilitando la
obtención de una solución a dicho problema.
A continuación se describen las distintas capas del modelo OSI:
2.2.1.1.1 Capa Física.
La capa física, es la capa más baja del modelo OSI, se encarga de
las conexiones físicas de la computadora hacia la red. Es la
encargada de transmitir los bits de información por el medio utilizado
para la transmisión; medios guiados como: cable coaxial, cable de
par trenzado, fibra óptica o medios no guiados como: radio,
infrarrojos, microondas.
También se ocupa de las propiedades físicas y características
eléctricas de los diversos componentes y de la velocidad de
transmisión
El nivel físico recibe una trama binaria que debe convertir a una
señal eléctrica, electromagnética, óptica u otra dependiendo del
medio, de tal forma que a pesar de la degradación que pueda sufrir
en el medio de transmisión vuelva a ser interpretable correctamente
en el receptor.
Dicho en otras palabras transforma un paquete de información
binaria en una sucesión de impulsos adecuados al medio físico
utilizado en la transmisión. Estos impulsos pueden ser por
transmisión por cable, transmisión inalámbrica (Wireless) o
transmisión óptica. Cuando actúa en forma de recepción el trabajo
es inverso, se encarga de transformar estos impulsos en paquetes
de datos binarios que serán entregados a la capa de enlace.
37
2.2.1.1.2 Capa de Enlace.
La capa de enlace proporciona transferencia de tramas de datos
desde un nodo a otro sin error por encima de la capa física. Se
ocupa del direccionamiento físico, de la topología de la red, del
acceso a la red, de la notificación de errores, de la distribución
ordenada de tramas y del control del flujo.
Puede decirse que ésta capa traslada los mensajes hacia y desde la
capa física a la capa de red. Especifica como se organizan los datos
cuando se transmiten en un medio particular.
Además del direccionamiento local, se ocupa de la detección y
control de errores ocurridos en la capa física, del control del acceso
a dicha capa, de la integridad de los datos y fiabilidad de la
transmisión. Para esto, agrupa la información a transmitir en
bloques, e incluye a cada uno una suma de control que permitirá al
receptor comprobar su integridad. Los datagramas recibidos son
comprobados por el receptor. Si algún datagrama se ha corrompido
se envía un mensaje de control al remitente solicitando su reenvío.
La capa de enlace se divide en dos subcapas:
- LLC (Control lógico de enlace): define la forma en que los
datos son transferidos sobre el medio físico, proporcionando
servicio a las capas superiores.
- MAC (Control de acceso al medio): Esta subcapa actúa
como controladora del hardware. Regula la utilización del
medio físico para facilitar que varios equipos puedan competir
simultáneamente por el manejo de un mismo medio de
transporte.
38
2.2.1.1.3 Capa de Red.
La capa de red controla el funcionamiento de la subred que decide la
ruta física que deben seguir los datos.
Se ocupa de la transmisión de los datagramas o paquetes y de
encaminar cada uno en la dirección adecuada.
El rol principal de la capa de red es hacer que los datos lleguen
desde el origen al destino, aún cuando ambos no estén conectados
directamente. Es decir, que se encarga de encontrar una ruta
manteniendo una tabla de enrutamiento y atravesando los equipos
que sean necesarios, para hacer llegar los datos al destino. Los
equipos encargados de realizar este encaminamiento se denominan
encaminadores o routers,
Adicionalmente la capa de red debe gestionar la congestión de red,
que es el fenómeno que se produce cuando una saturación de un
nodo tira abajo toda la red.
La capa de red proporciona:
- Enrutamiento de marcos entre redes.
- Control de tráfico de subred.
- Traducción de direcciones o nombres lógicos en direcciones
físicas.
La capa de red se subdivide en dos:
- Transporte: Encargada de encapsular los datos a transmitir.
Utiliza los paquetes de datos. En esta categoría se encuentra
el protocolo IP.
- Conmutación: Esta parte es la encargada de intercambiar
información de conectividad específica de la red. Los routers
son dispositivos que trabajan en este nivel y se benefician de
estos paquetes de actualización de ruta.
Los protocolos más frecuentemente utilizados en esta capa son dos:
X.25 e IP.
39
2.2.1.1.4 Capa de Transporte.
Es la capa encargada de efectuar el transporte de los datos libres de
errores de la máquina origen a la máquina destino,
independizándolo del tipo de red física que se esté utilizando.
Garantiza la fiabilidad del servicio, describe la calidad y naturaleza
del envío de datos. Define cuando y como debe utilizarse la
retransmisión para asegurar su llegada. Para ello divide el mensaje
recibido de la capa de sesión en trozos o datagramas, los numera
correlativamente y los entrega a la capa de red para su envío.
Durante la recepción, si la capa de red utiliza el protocolo IP, la capa
de transporte es responsable de reordenar los paquetes recibidos
fuera de secuencia. También puede funcionar en sentido inverso
multiplexando una conexión de transporte entre diversas conexiones
de datos. Este permite que los datos provenientes de diversas
aplicaciones compartan el mismo flujo hacia la capa de red. Su
función básica es aceptar los datos enviados por las capas
superiores, dividirlos en pequeñas partes si es necesario, y pasarlos
a la capa de red.
En ésta capa se proveen servicios de conexión para la capa de
sesión que serán utilizados finalmente por los usuarios de la red al
enviar y recibir paquetes. Estos servicios estarán asociados al tipo
de comunicación empleada, la cual puede ser diferente según el
requerimiento que se le haga a la capa de transporte.
La comunicación puede ser manejada para que los paquetes sean
comunicación punto a punto libre de errores, o sin tener en cuenta el
orden de envío. Una de las dos modalidades debe establecerse
antes de comenzar la comunicación para que una sesión
determinada envíe paquetes, y ése será el tipo de servicio brindado
por la capa de transporte hasta que la sesión finalice.
40
El tamaño y la complejidad de un protocolo de transporte dependen
del tipo de servicio que puede obtener de la capa de red. Si la capa
de red no es confiable y si sólo admite datagramas, el protocolo de
transporte debería incluir detección de errores amplios y
recuperación.
Normalmente, el nivel de transporte puede aceptar mensajes
relativamente grandes pero se encuentra la capa de tamaño de
límites impuestos por la red (o inferiores) de mensaje estricto. Por
consiguiente, el nivel de transporte debe dividir los mensajes en
unidades o marcos más pequeños que anteponen un encabezado a
cada marco.
La información de encabezado de capa de transporte debe incluir
entonces información de control como inicio de mensaje y final de
mensaje. Si las capas inferiores no mantienen secuencia, el
encabezado de transporte además debe contener información de
secuencia para permitir que obtenga conjuntamente de nuevo las
piezas en el orden correcto antes de entregar el mensaje recibido
hasta la capa anterior al nivel de transporte en el extremo receptor.
2.2.1.1.5 Capa de Sesión.
La capa de sesión permite el establecimiento de sesión entre
procesos que se ejecutan en estaciones diferentes. Ofrece control
de diálogo y sincronización.
Esta capa es la que se encarga de mantener el enlace entre las dos
computadoras que estén trasmitiendo archivos.
Esta capa ofrece varios servicios:
- Control de la sesión a establecer entre el emisor y el receptor.
- Control de la concurrencia, es decir, que dos comunicaciones
a la misma operación crítica no se efectúen al mismo tiempo.
- Mantener puntos de verificación, para que, ante una
interrupción de transmisión por cualquier causa, la misma se
41
pueda reanudar desde el último punto de verificación en lugar
de repetirla desde el principio.
Se asegura que, dada una sesión establecida entre dos máquinas, la
misma se pueda efectuar para las operaciones definidas de principio
a fin, reanudándolas en caso de interrupción. En muchos casos, los
servicios de la capa de sesión son parcialmente, o incluso,
totalmente prescindibles.
2.2.1.1.6 Capa de Presentación.
La capa de presentación da formato a los datos presentados a la
capa de aplicación. Se ocupa de los aspectos semánticos de la
comunicación, estableciendo los arreglos necesarios para que
puedan comunicar máquinas que utilicen diversa representación
interna para los datos. Describe como pueden transferirse números
de coma flotante entre equipos que utilizan distintos formatos
matemáticos.
En teoría esta capa presenta los datos a la capa de aplicación
tomando los datos recibidos y transformándolos en formatos como
texto, imágenes y sonido.
El objetivo principal es encargarse de la representación de la
información, de manera que aunque distintos equipos puedan tener
diferentes representaciones internas de caracteres, números, sonido
o imágenes, los datos lleguen de manera reconocible.
La capa de presentación es la primera en trabajar más el contenido
de la comunicación que cómo se establece la misma.
Dicha capa proporciona:
- Carácter de traducción de código.
- Conversión de datos.
- Compresión de datos: Reduce el número de bits que se
tienen que transmitir en la red.
42
- Cifrado de datos: Cifra datos por motivos de seguridad, por
ejemplo cifrado de contraseñas.
La capa de presentación es la encargada de manejar las estructuras
de datos abstractas y realizar las conversiones de representación de
datos necesarios para la correcta interpretación de los mismos.
2.2.1.1.7 Capa de Aplicación.
La capa de aplicación sirve como la ventana para que los usuarios y
procesos de aplicación tengan acceso a servicios de red.
Ésta capa describe como hacen su trabajo los programas de
aplicación como los navegadores, clientes de correo, terminales
remotos, transferencia de ficheros. Esta capa implementa la
operación con ficheros del sistema. Por un lado interactúan con la
capa de presentación y por otro representan la interfaz con el
usuario, entregándole la información y recibiendo los comandos que
dirigen la comunicación.
Funciones:
- Redirección de recursos.
- Acceso de archivo remoto.
- Acceso de impresora remota.
- Administración de redes.
- Servicio de directorio.
- Mensajería electrónica.
Preguntas de Repaso.
1. Complete las oraciones de acuerdo a la capa del modelo OSI que
corresponde.
a) Proporciona transferencia de tramas de datos desde un nodo a otro.
_______________________.
b) Controla el funcionamiento de la subred que decide la ruta física que
deben seguir los datos. _______________________.
43
c) Sirve como ventana para que los usuarios y procesos de aplicación
tengan acceso a servicios de red. ______________.
d) Se encarga de las conexiones físicas de la computadora hacia la
red. _____________________.
e) Lleva los datos libres de errores de la maquina origen a la destino.
___________________,
f) Da formato a los datos presentados a la capa de aplicación.
___________________.
g) Mantiene el enlace entre las dos computadoras que estén
transmitiendo archivos. ________________.
2. ¿Capa que transmite la información en Bloques?
__________________________________________________________.
3. ¿Capa que divide el mensaje recibido en trozos o datagramas?
____________________________________________________.
2.2.1.2 PROTOCOLO.
Es un conjunto estricto de reglas o procedimientos que se requieren para
iniciar y mantener las comunicaciones.
Los protocolos de comunicación de datos son los que hacen posible el
intercambio de información, después de establecer una llamada a través de un
canal informativo.
El sistema de protocolos que fue desarrollado como producto de las primeras
investigaciones realizadas por el Departamento de Defensa de los Estados
Unidos, llego a conocerse como TCP/IP, después de que los dos protocolos
iniciales fueron desarrollados: el protocolo de Control de Transmisión (TCP) y
el protocolo Internet (IP).
44
2.2.1.3 PROTOCOLO TCP/IP.
2.2.1.3.1 IP.
El Protocolo de Internet (IP, de sus siglas en inglés Internet Protocol) es un
protocolo no orientado a conexión usado tanto por el origen como por el
destino para la comunicación de datos a través de una red de paquetes
conmutados.
Los datos en una red basada en IP, son enviados en bloques conocidos
como paquetes o datagramas (en el protocolo IP estos términos se suelen
usar indistintamente). En particular, en IP no se necesita ninguna
configuración antes de que un equipo intente enviar paquetes a otro con el
que no se había comunicado antes.
El Protocolo de Internet provee un servicio de datagramas no fiable
(también llamado del mejor esfuerzo (best effort), lo hará lo mejor posible
pero garantizando poco). IP no provee ningún mecanismo para determinar
si un paquete alcanza o no su destino y únicamente proporciona seguridad
(mediante checksums o sumas de comprobación) de sus cabeceras y no
de los datos transmitidos. Por ejemplo, al no garantizar nada sobre la
recepción del paquete, éste podría llegar dañado, en otro orden con
respecto a otros paquetes, duplicado o simplemente no llegar. Si se
necesita fiabilidad, ésta es proporcionada por los protocolos de la capa de
transporte, como TCP.
2.2.1.3.2 TCP.
El Protocolo de Control de Transmisión (TCP en sus siglas en inglés,
Transmission Control Protocol que fue creado entre los años 1973 - 1974
por Vint Cerf y Robert Kahn) es uno de los protocolos fundamentales en
Internet. Muchos programas dentro de una red de datos compuesta por
computadoras pueden usar TCP para crear conexiones entre ellas a través
de las cuales se envían datos.
45
El protocolo garantiza que los datos serán entregados en su destino sin
errores y en el mismo orden en que se transmitieron. También proporciona
un mecanismo para distinguir distintas aplicaciones dentro de una misma
máquina, a través del concepto de puerto (computación).
TCP soporta muchas de las aplicaciones más populares de Internet,
incluidas HTTP, SMTP y SSH.
El Protocolo de Control de Transmisión (TCP) es un protocolo de
comunicación orientado a conexión y fiable del nivel de transporte,
actualmente documentado por IETF RFC 793.
2.2.1.3.3 Dirección IP.
Una dirección IP es un número que identifica de manera
lógica y jerárquica a una interfaz de un dispositivo
habitualmente una computadora dentro de una red que utilice el
protocolo IP (Internet Protocol), que corresponde al nivel de red o nivel 3
del modelo de referencia OSI. Dicho número no se ha de confundir con la
dirección MAC que es un número hexadecimal fijo que es asignado a la
tarjeta o dispositivo de red por el fabricante, mientras que la dirección IP se
puede cambiar.
Es habitual que un usuario que se conecta desde su hogar a Internet utilice
una dirección IP. Esta dirección puede cambiar al reconectar; y a esta
forma de asignación de dirección IP se denomina una dirección IP
dinámica (normalmente se abrevia como IP dinámica).
Los sitios de Internet que por su naturaleza necesitan estar
permanentemente conectados, generalmente tienen una dirección IP fija
(se aplica la misma reducción por IP fija o IP estática), es decir, no cambia
con el tiempo. Los servidores de correo, DNS, FTP públicos, y servidores
de páginas Web necesariamente deben contar con una dirección IP fija o
estática, ya que de esta forma se permite su localización en la red.
46
2.2.2 MODELO CLIENTE - SERVIDOR.
Es una arquitectura computacional que involucra procesos de cliente que
se encuentran requiriendo servicios de procesos de un servidor.
Cliente/Servidor es el concepto computacional que viene a ser la extensión
lógica de la programación modular, la cual asume fundamentalmente la
separación de grandes piezas de software, en partes mas pequeñas
llamadas “módulos”, creando la posibilidad de obtener un desarrollo más
fácil y darle un mejor mantenimiento.
El proceso Cliente/Servidor reconoce que estos módulos no necesitan ser
ejecutados dentro del mismo espacio de memoria, de tal manera que al
utilizar esta arquitectura, el modulo que realiza la llamada se convierte en
el “cliente” (que es quien hace la requisición de un servicio), y el modulo
que es llamado se convierte en el “servidor” (que es el que provee el
servicio).
Para aplicar dicho concepto, el siguiente paso será tener a clientes y
servidores corriendo en el hardware, y bajo el software de la plataforma,
apropiados para realizar sus funciones. Por ejemplo, servidores de manejo
de sistemas de bases de datos, ejecutándose en plataformas
especialmente diseñadas y configuradas para manejar requisiciones en
forma de pregunta, o archivo de servidores corriendo en plataformas con
elementos especiales para manejo de archivos
.
2.2.2.1 PROCESO CLIENTE.
El cliente es un proceso (programa) que envía un mensaje a un
proceso servidor, requiriéndole a éste la realización de una tarea
(servicio). El programa cliente usualmente maneja la parte de la
aplicación que hace interfaz con el usuario, validando los datos
introducidos por éste, enviando las requisiciones al programa
servidor, y a veces ejecutando lógicamente las tareas.
2.2.2.2 PROCESO SERVIDOR.
Un proceso (programa) servidor satisface las requisiciones del
cliente realizando la tarea solicitada. El programa servidor general
47
recibe las solicitudes desde el programa cliente, ejecuta las
extracciones de información de las bases de datos, las actualiza,
manejando la integridad de los datos, y envía respuestas a las
interrogantes del cliente.
2.2.3 LENGUAJES DE PROGRAMACIÓN PARA LA WEB.
2.2.3.1 C/C++.
C es un lenguaje de programación creado en 1969 por Ken
Thompson y Dennis M. Ritchie en los Laboratorios Bell como
evolución del anterior lenguaje B, a su vez basado en BCPL. Al igual
que B, es un lenguaje orientado a la implementación de Sistemas
Operativos, concretamente Unix. C es apreciado por la eficiencia del
código que produce y es el lenguaje de programación más popular
para crear software de sistemas, aunque también se utiliza para
crear aplicaciones.
Los compiladores suelen ofrecer extensiones al lenguaje que
posibilitan mezclar código en ensamblador con código C o acceder
directamente a memoria o dispositivos periféricos.
La primera estandarización del lenguaje C fue en ANSI, con el
estándar X3.159-1989. El lenguaje que define este estándar fue
conocido vulgarmente como ANSI C. Posteriormente, en 1990, fue
ratificado como estándar ISO (ISO/IEC 9899:1990). La adopción de
este estándar es muy amplia por lo que, si los programas creados lo
siguen, el código es portable entre plataformas y/o arquitecturas.
Los Sockets son una interfaz que permiten que las aplicaciones
puedan acceder a los servicios que brinda el software TCP/IP,
permitiendo la comunicación entre procesos en el mismo equipo o
en equipos diferentes.
La Interfaz Socket proporciona funciones generalizadas que dan
soporte a las comunicaciones en red empleando para ello muchos
de los protocolos disponibles hoy en día. Los llamados sockets
hacen referencia a todos los protocolos TCP/IP como una única
48
familia. Las llamadas permiten al programador especificar el tipo de
servicio requerido, en vez del nombre de un protocolo especifico.
Los socke