Académique Documents
Professionnel Documents
Culture Documents
AUTOR: Julio
Carera Corrali!a TITULACI": In#enier$a T%cnica en In&ormtica de 'esti
(IR)CTOR I *O+)+T: ,er#io ,-nc.e! Lpe! ()*ARTA/)+T: 012 3 Ar4uitectura de
Computadors (ATA: 'ener de 5126
CO'+O/,: Carera Corrali!a ),*)CIALITAT: 'esti *LA: 2775 +O/: Julio
TTOL: Implementaci d'un crawler modular per a cercadors temtics.
TITULACI": )n#in8eria T9cnica en In&ormtica (IR)CTOR I *O+)+T: ,er#io ,-nc.e!
Lpe!
()*ARTA/)+T: 012 3 Ar4uitectura de Computadors
:UALI;ICACI" ()L *;C
TRI<U+AL
)=a /ar$n Tordera
*residenta
)lisaet Arn /aci
>ocal
?a=ier /asip <ruin
,ecretari
(ata de lectura: @ de &erer de 5126
A4uest *roAecte t% en compte aspectes mediamientals: ,$ +o
R),U/ B/Cim D1 lEniesF )l oAeti=o de este pro8ecto es el diseGo e
implementacin de un crawler capa! de mantener actuali!ada una &uente de
in&ormacin tem-tica.
Un crawler o araGa we es un so&tware capa! de rastrear 8 descar#ar in&ormacin
de Internet. )sta in&ormacin es tratada a posteriori por otro sistema 4ue le da
un uso. 'oo#le diseGa e implementa este tipo de so&tware con el &in de aastecer
in&ormacin a su uscador.
,.uttle es el sistema propuesto como solucin para el mantenimiento 8
actuali!acin autom-tica de una &uente de in&ormacin. )l ,istema posee
.erramientas propias por las cuales un usuario a=an!ado puede diseGar crawlers
=erticales sin la necesidad de pro#ramarlos. Adem-sH si se re4uiereH puede
pro=eer al sistema de una =isin distriuida de los procesos en di&erentes
e4uipos.
CrawlerH InternetH CercadorH (ata /innin#H Ja=aH *I*H TC*H ,er=idor
*araules clau BmCim 21F:
(I,)JO () U+ CRAKL)R /O(ULAR *ARA <U,CA(OR), >)RTICAL),
AUTOR: JULIO CA<R)RA CORRALILA (IR)CTOR: ,)R'IO ,M+CI)L L"*)L
(iseGo e implementacin del sistema ,.uttle para el mantenimiento 8
actuali!acin autom-tica de una &uente de in&ormacin. )l ,istema posee
.erramientas propias por las cuales un usuario a=an!ado puede diseGar crawlers
=erticales sin la necesidad de pro#ramarlos. ,.uttleH si se re4uiereH puede
pro=eer una =isin distriuida de los procesos dedicados a tal &inH con el
oAeti=o de reducir el impacto sore el rendimiento de los e4uipos in=olucrados.
N)l misterio crea curiosidadH 8 la curiosidad es la ase del deseo .umano de
entender.O +eil Amstron#
2
ndice de contenido
I.
I+TRO(UCCI"+ ...................................................................
................................................................................
............. D
2.2 2.5 2.6 2.P
II.
<R)>) II,TORIA ()L TRATA/I)+TO ()
(ATO, ....................................................................... D
O<J)TI>O ()L
*ROQ)CTO .......................................................................
............................ 0 JU,TI;ICACI"+ ()L
*ROQ)CTO........................................................................
..................... R ,IUTTL): U+ CRAKL)R >)RTICAL
CO+;I'URA<L) ...................................................................
7
),TA(O ()L
ART) ...........................................................................
............................................................................ 2P
5.2
5.2.2 5.2.5 5.2.6 5.2.P
I+T)R+)T Q LO, /OTOR), ()
<S,:U)(A .......................................................................
.... 2P
<uscadores
Aer-r4uicos ....................................................................
...................................................................... 2P
(irectorios ....................................................................
................................................................................
............... 2D
/etauscadores .................................................................
................................................................................
....... 2@ /otores
>erticales......................................................................
..............................................................................
2@
5.5
5.5.2 5.5.5 5.5.6 5.5.P 5.5.D 5.5.@
CRAKL)R, .......................................................................
............................................. 20
*oliticas de
rastreo ........................................................................
........................................................................... 2R
La parte oculta de la
we ............................................................................
........................................................... 52 ,itemap
*rotocol .......................................................................
................................................................................
52 <ots de
&ormularios ....................................................................
............................................................................. 55
)l reconocimiento de la
in&ormacin ....................................................................
........................................... 56 Comparati=a de so&tware
lire ..........................................................................
................................................. 5D
III. ),TRUCTURA Q
(I,)JO .........................................................................
.................................................................... 57
6.2
6.2.2 6.2.5 6.2.6 6.2.P 6.2.D 6.2.@
A+MLI,I,
I+ICIAL ........................................................................
.................................... 57
Conceptos
elementales ....................................................................
....................................................................... 57
*roceso
elemental ......................................................................
..............................................................................
61 (iseGo
/odular.........................................................................
................................................................................
. 62 (esarrollo
M#il............................................................................
................................................................................
62 )s4uema #eneral de la ar4uitectura del
,istema ........................................................................
................ 65 >isin distriuida del
sistema ........................................................................
..................................................... 66
6.5
6.5.2 6.5.5 6.5.6 6.5.P
,IUTTL)<OT......................................................................
........................................... 6D
La in&ormacin (e un
,ite ...........................................................................
.......................................................... 6@ +i=eles de un
,itio ..........................................................................
.......................................................................... 6@
Al#oritmos del
script .........................................................................
...................................................................... 60
Iniciali!acin 8 sistema de
arc.i=os .......................................................................
.......................................... PP
6.6
6.6.2 6.6.5 6.6.6
)L A(/I+I,TRA(OR: LA
LA+LA()RA ......................................................................
............ P@
(ia#rama conceptual
U/L ............................................................................
........................................................ P0 ConteCto de
traaAo ........................................................................
.......................................................................... PR
Casos de
Uso ............................................................................
................................................................................
.... PR
6.P
6.P.2 6.P.5 6.P.6
)L A(/I+I,TRA(OR: )L (I,)JA(OR ()
<OT, ....................................................................... @2
Ampliacin del (ia#rama conceptual
U/L ............................................................................
...................... @5 Ampliacin del ConteCto de
traaAo ........................................................................
......................................... @6 Ampliacin de los Casos de
Uso.............................................................................
............................................. @6
6.D
6.D.2 6.D.5 6.D.6
)L ,)R>I(OR () <OT,
TC* ............................................................................
.................. 0@
(ia#rama conceptual
U/L ............................................................................
........................................................ 0@ ConeCin
TC* ............................................................................
................................................................................
.. 00 Ampliacin de los Casos de
uso ............................................................................
.............................................. R2
5
6.@
6.@.P 6.@.D
,IUTTL) /Q ,:L
I+()?)R ........................................................................
..................... RP
Al#oritmo del
script .........................................................................
........................................................................ RD
Ampliacin de los Casos de
uso ............................................................................
.............................................. R@
6.0
I>.
(IA'RA/A () CLA,),
,I/*LI;ICA(O ...................................................................
.............. R7
I/*L)/)+TACI"+ .................................................................
................................................................................
. 71
P.2
P.2.2 P.2.5 P.2.6 P.2.P
,O;TKAR)
UTILILA(O.......................................................................
.............................. 71
Len#uaAes de
pro#ramacin ...................................................................
.............................................................. 71 <ases de datos
................................................................................
............................................................................ 72
)ntorno de
(esarrollo .....................................................................
....................................................................... 72
Ierramientas de
ser=icios ......................................................................
.............................................................. 75
P.5
P.5.2 P.5.5 P.5.6 P.5.P P.5.D P.5.@
I+T)R;AL
'RM;ICA ........................................................................
................................. 76
Inter&a! *antalla
principal ......................................................................
.............................................................. 76 Inter&a! del
Administrador de
,itios .........................................................................
....................................... 7P Inter&a! AuCiliar +ue=o
Lan!amiento ....................................................................
.......................................... 7D (iseGador de
<ots ...........................................................................
.......................................................................... 7@
Asistente de
*atrones .......................................................................
...................................................................... 7R
*antalla de
lan!amiento ....................................................................
..................................................................... 77
P.6
P.6.2
CA*A ()
>I,TA ..........................................................................
.................................. 211
(ia#rama de clases de la capa de
=ista ..........................................................................
................................216
P.P
P.P.2 P.P.5
CA*A ()
+)'OCIO ........................................................................
............................... 216
(ia#rama de clases de la capa de
persistencia ...................................................................
.......................21P (ia#rama de clases de la capa de
ser=icios ......................................................................
...........................21P
P.D
P.D.2 P.D.5 P.D.6 P.D.P P.D.D P.D.@ P.D.0 P.D.R P.D.7
I/*L)/)+TACI"+ () LO, CA,O, ()
U,O .........................................................................
21D
Administracin de los
,itios..........................................................................
.....................................................21@ Control de la Lan!adera
................................................................................
.......................................................222 (iseGar
,.uttleots.....................................................................
...........................................................................225
Lan!amiento manual de un
,.uttle<ot .....................................................................
....................................22R /ontar un
,.uttle<ot .....................................................................
......................................................................256
'enerar un ,.uttle<ot
*ortale .......................................................................
................................................25D /ostrar
Resultados .....................................................................
...........................................................................250
Lan!ar el
IndeCador ......................................................................
.........................................................................261
Con&i#uracin
'eneral ........................................................................
..................................................................265
P.@
>.
(IA'RA/A ')+)RAL ()
CLA,), .........................................................................
............ 26D
R),ULTA(O, .....................................................................
................................................................................
...........26@
D.2 D.5 D.6
>I.
T),T () LA
LA+LA()RA ......................................................................
........................... 26@ T),T TC* () LA >I,I"+
(I,TRI<UI(A.....................................................................
........... 260 ,IUTTL) ,)ARCI )+'I+): U+ ,)+CILLO <U,CA(OR T)/MTICO () A>)+TURA
......................... 2P1
A,*)CTO,
)CO+"/ICO, .....................................................................
................................................................2P0
@.2 @.5
@.5.2 @.5.5 @.5.6 @.5.P
CO,T) ORI)+TATI>O ()L
*ROQ)CTO........................................................................
......... 2P0 >IA<ILI(A( ()L
*RO(UCTO........................................................................
.................... 2D1
Idea de
ne#ocio ........................................................................
................................................................................
2D1 (ia#rama
(A;O ...........................................................................
............................................................................2D1
An-lisis de
ne#ocio ........................................................................
.........................................................................2D2
Oportunidad de
ne#ocio ........................................................................
..............................................................2D5
6
>II. >III. I?. ?. ?I.
CO+CLU,I"+ .....................................................................
................................................................................
....... 2D6
'LO,ARIO .......................................................................
................................................................................
.......... 2@2
R);)R)+CIA, ....................................................................
................................................................................
........... 2@D
<I<LIO'RA;A ...................................................................
................................................................................
.......... 2@@ +(IC)
()TALLA(O.......................................................................
............................................................................ 2@0
P
I.
I+TRO(UCCI"+
2.2
<re=e .istoria del tratamiento de datos
La in&ormacin es el resultado del tratamiento de los datos. )l proceso .aitual
es la representacin de los mismos con el oAeti=o de poderlos interpretar en un
&uturo. )s posile 4ue creamos 4ue el tratamiento de la in&ormacin es al#o
recienteH posilemente por el &enmeno 4ue .an producido las redes sociales.
)ste proceso es in.erente al ser .umanoH 8a 4ue .a eCistido desde sus inicios.
)l tratamiento de los datos 8 de la in&ormacin .a e=olucionado de la mano de la
tecnolo#$a 4ue .a ido desarrollando el .omre. )n la pre.istoria era &recuente
4ue el .omre anti#uo representara datos sore su entorno 8 cultura T2U. Las
pinturas rupestres conten$an in&ormacin sore rituales o estrate#ias de ca!a.
(e #eneracin en #eneracin la in&ormacin se transmit$a #racias a su
interpretacin. )n estos Vltimos si#losH estas pinturasH nos .an ser=ido para el
estudio de las sociedades primiti=asW 8 por consi#uienteH de nuestros or$#enes.
ILU,TRACI"+ 2. *I+TURA RU*),TR) () ALTA/IRA
Con el tiempoH los medios en los cuales se plasmaa la in&ormacin &ueron
e=olucionandoH &acilitando as$ la recolecta de los datos representados. 'racias
a la tecnolo#$a se consi#uieron sistemas donde se meAoraa la persistencia de la
in&ormacin en el tiempo. Los Incas por eAemploH en el s. ?II in=entaron el
:uipu T5UH un sistema de cuerdas para contar #anadoH cosa 4ue &acilit las
tareas #anaderasH &ortaleciendo as$ su econom$a. Aun4ue durante miles de aGos
eCistieron #randes iliotecas donde la in&ormacin era clasi&icada 8
catalo#adaH el acceso a las #randes &uentes de in&ormacin .a$a estado astante
restrin#ido. La in&ormacin se materiali!aa en papiros de cuero 8 piel
principalmenteH 8 .a$a pocas .erramientas para procesarlas. Casos como la
destruccin de la <ilioteca de AleAandr$a T6U Bs. II a.C.F 3 La cual conten$a
cerca de un milln de papiros3H .i!o 4ue incluso las autoridades in=esti#aran
como #uardar 8 procesar meAor la in&ormacin. (esde el si#lo >H la transmisinH
conocimiento 8 procesamiento de los datos .a sido totalmente necesaria para
conceir la sociedad actual. (urante la reali!acin de este pro8ecto tu=e la
oportunidad de =isitar el /onasterio de 'uadalupeH en C-ceres. All$ encontramos
otro eAemplo de meAora en la tecnolo#$a de la in&ormacin: Los liros miniados.
)stos documentos son liros de dimensiones #rotescasH al#unos de dos metros de
alturaH re&or!ados con madera 8 ruedas 3para transportarlos3. )l uso se le daa
durante los o&icios de los &railes: Antes de cada misaH eran empuAados desde la
ilioteca .asta la capilla entre =arios monAes. ,e utili!aa una #ran
estructura #iratoria de metal 8 madera donde se colocaan cuatro copias
manu&acturadas del mismo. As$H uno de los monAes pod$a pasar las p-#inas 8 rotar
la plata&orma donde se eCpon$anH consi#uiendo 4ue todos cantaran mirando al
altar 8 se concentraran en el ritual. D
)l estudio de la tecnolo#$a de la in&ormacin residi durante muc.o tiempo en
los monasteriosH #arantes en a4uella %poca de las iliotecas. +o &ue .asta la
edad modernaH cuando el estudio se con=irti en inter%s #loal. )sto &ue #racias
a un #ran in=ento: La imprenta. )n el si#lo ?>H #racias al in=ento de 'utener#
los liros 8 documentos comien!an a producirse en serie. )ste pro#reso .ace 4ue
apare!ca un nue=o medio de comunicacin 8 di&usin capa! de .acer lle#ar la
in&ormacin a casi la totalidad de la polacin europea: La prensa escrita.
ILU,TRACI"+ 5. I/*R)+TA () 'UT)+<)R'. 'RA<A(O ()L ,I'LO ?>.
Los diarios 8 peridicos demostraron 4ue la in&ormacinH independientemente de
su usoH puede lle#ar a ser uno de los elementos intan#iles m-s =aliosos de la
.umanidadH con=irti%ndose muc.as =eces en la =o! del poder estalecido 8 una de
las principales &uentes de transmisin de conocimiento. Iasta el si#lo ?I? el
medio escrito encae! el tratamiento 8 di&usin de la in&ormacin. )n 2R0@H
Antonio /eucci TPU in=enta el tel%&onoH iniciandoH as$H la era de las
Telecomunicaciones. )n 275@H el escoc%s Jo.n Lo#ie <aird TDU reali!a la primera
retransmisin tele=isada entre Londres 8 'las#owH dando pie a la tele=isin. (e
todos los #randes a=ances 4ue .a .ec.o la .umanidad en este -mitoH si cae
destacar uno de los m-s importantesH este ser$a el nacimiento de la computacin.
Con la aparicin en la d%cada de los P1 del primer ordenadorH el procesamiento
de la in&ormacinH su uso 8 di&usin .an ido e=olucionando eCponencialmente
.asta encontrarnos .o8 en d$a con nuestra =ersin moderna de la ilioteca de
AleAandr$aH la ma8or &uente de in&ormacin del planeta: Internet. Internet
pro=ee de cuasi in&initas &uentes de in&ormacin de cual4uier tem-tica.
Utili!amos Internet para leer el correoH comprarH escuc.ar mVsicaH =er pel$culas
8H soretodoH para uscar in&ormacin. Los motores de Vs4ueda o uscadores son
la .erramienta principal para encontrar in&ormacin en Internet. /uc.os de ellos
reco#en datos de otras p-#inas we mediante un so&tware in&orm-tico llamado
crawler. )ste so&tware &acilita a los uscadores la posiilidad de tener una
&uente de in&ormacin actuali!ada. )sto permite a un usuario poder encontrar
in&ormacin &-cilmente en la inmensidad de InternetW 8 todo ello .aci%ndolo
mediante un clic de ratn.
@
2.5
OAeti=o del pro8ecto
)l oAeti=o del pro8ecto es el diseGo e implementacin de un crawler capa! de
mantener actuali!ada una &uente de in&ormacin tem-tica. Un crawler o araGa we
es un so&tware capa! de rastrear 8 descar#ar in&ormacin de Internet. )sta
in&ormacin es tratada a posteriori por otro sistema 4ue le da un uso. 'oo#leH o
el comparador de .oteles on3line Tri=a#oH diseGan e implementan este tipo de
so&tware con el &in de aastecer in&ormacin a su uscador.
(IA'RA/A 2. 'OO'L) Q ,U CRAKL)R
(esconocidos para la ma8or parte de los usuarios de InternetH este tipo de
sistemas son &undamentales para el mantenimiento de #randes uscadores 8 sitios
we. )n realidadH cuando un usuario reali!a una Vs4ueda en 'oo#leH el uscador
no NuscaO en ese momento la in&ormacin en el Korld Kide KeH sino 4ue consulta
la &uente de datos elaorada con anterioridad por un crawler. Aun4ue
ma8oritariamente este so&tware es utili!ado por uscadoresH tami%n se utili!a
en -mitos como en iliotecas o empresas para or#ani!ar 8 clasi&icar su
in&ormacin. Adem-sH en el mundo del marXetin# tami%n puede .aer usuarios
potencialesW con esta tecnolo#$a se puede =er diariamente los precios
actuali!ados de la competencia sin tener 4ue entrar al sitio we de las empresas
competidoras. Adem-s de diseGar un crawler tem-ticoH se intentar- in=esti#ar la
&orma de poder dotar di&erentes comportamientos al crawler. )sto permitir$a la
con&i#uracin de di&erentes tem-ticas sin tener 4ue modi&icar el cdi#o &uente.
0
2.6
Justi&icacin del pro8ecto
Los motores de Vs4ueda =erticalesH tami%n llamados tem-ticosH se especiali!an
en in&ormacin de un solo -mito: (eportesH >iaAesH ,e#urosH +oticiasH etc...
)Cisten dos =ariantes importantesH en cuanto al tipo de Vs4ueda 4ue .acen:
/otores =erticales &ocali!ados: Constru8en una ase de datos con cientos de
p-#inas weH a las cuales llaman semillasH 8 reali!an Vs4uedas sore ellas.
Utili!an un sistema similar al de los uscadores #eneralistasH pero al tener
ases de datos m-s pe4ueGas 8 especiali!adas suelen ser m-s e&icaces. *or
eAemploH (ale QaY Bdescar#asF o I/(< BcineF. /otores =erticales comparadores:
,uelen ser la ase de un ne#ocio de comparacin de productos. >an m-s all- en la
especiali!acin en el producto. +o solo muestran el enlace sino 4ue pueden dar
datos m-s espec$&icos sore los productos. O&ertan =iaAesH .otelesH se#uros de
coc.esH comparan productosH etc... Al#unos eAemplos son Tri=a#o BIotelesFH
Last/inute B>iaAesF o Rastreator B,e#urosF.
,.uttle /8 ,:L IndeCer: )s otro pro#rama diseGado en *I* capa! de indeCar los
resultados en una ase de datos /8 ,:L. )l oAeti=o es acercar los resultados a
una tercera aplicacinH como puede ser un uscador tem-tico. Tami%n puede ser
aloAada en di&erentes e4uipos del administrador o de los ,.uttle<ots.
CA*TURA () *A+TALLA 6. ,IUTTL) /Q ,:L I+()?)R
22
A continuacin se mostrar- un re=e resumen de las principales caracter$sticas.
,er-n eCplicadas con m-s detenimiento durante el diseGo e implementacin del
pro8ecto. )n =erde se muestra las caracter$sticas iniciales del crawler 8 en
ne#ro las ampliaciones del pro8ecto:
Administracin de ,itios Ke: )l Administrador contiene un #estor donde se
podr-n pro#ramar lan!amientosH tami%n se #uarda la con&i#uracin de los sitios.
Aplicaciones portales: )l sistema es capa! de montar el sistema de arc.i=os de
los scripts 4ue #enere. La locali!acin puede ser cual4uier uicacin de una red
donde ten#a permisos de escritura. )n caso contrarioH el sistema pro=ee al
usuario de una .erramienta para #uardar los ,.uttle<ots o el IndeCador
comprimidos en &ormato LI* para ser transportadas &-cilmente. (eteccin de la
codi&icacin de caracteres: Los sitios we pueden estar en di&erentes
codi&icaciones. )sto puede causar 4ue no se =ean acentos o caracteres latinos.
Los ,.uttle<ots detectan la codi&icacin 8 la modelan a UT;3R. (iseGador de
<ots: ;uncionalidad de diseGo 8 creacin de crawlers pre#enerados. (iseGo
al#eraico de patrones: *ara aumentar la capacidad de las Vs4uedas por patrones
de teCtoH el sistema est- adaptado para el uso de eCpresiones re#ularesH
inclu8endo un asistente para reali!ar eCpresiones simples. Iistorial de
resultados: )Ciste un repositorio donde se almacenan resultados .istricos.
Implementacin /ultiplata&orma: Las aplicaciones se .an diseGado en Ja=a 0.2 8
*I*. )stos len#uaAes pueden ser utili!ados tanto en UniCH /ac 8 LinuC.
IndeCacin de resultados en ases de (atos /8,:L: ,.uttleH #racias al indeCador
4ue contieneH es capa! de indeCar los resultados en talas de ases de datos
/8,:L. Inter&a! #r-&ica: )l sistema contiene una inter&a! #r-&ica intuiti=a.
Contiene elementos de a8uda para una meAor eCperiencia del usuario. Lan!adera de
,cripts: Control de la tempori!acin de lan!amientos autom-ticos. *rotocolo
)Cclusin de <ots BR)*F: *osiilidad de .ailitar el protocolo de eCclusin de
roots.
25
26
II.
),TA(O ()L ART)
)ste cap$tulo trata de in&ormar al lector sore las di&erentes t%cnicas 8
tecnolo#$as utili!adas comVnmente en el desarrollo de so&tware de rastreo de
in&ormacin. )n primer lu#arH .aremos un pe4ueGo inciso sore los motores de
Vs4ueda 8 sus caracter$sticas. A continuacinH podremos =er in&ormacin
relacionada sore los crawlersH saremos 4ue son 8 4ue metodolo#$as se utili!an
para construirlos. *or VltimoH se muestra una pe4ueGa comparati=a de crawlers de
so&tware lire.
5.2
Internet 8 los /otores de Vs4ueda
Un motor de Vs4uedaH <uscador o ,earc. )n#ine es un sistema in&orm-tico 4ue
usca in&ormacin en una ase de datos utili!ando palaras cla=e o $ndices. Los
m-s populares son los uscadores de wes #eneralistas como 'oo#leH Qa.ooY o
<in#. Tami%n eCisten una multitud de uscadores de arc.i=os e in&ormacinH
tanto en el Korld Kide Ke como a ni=el de intranet o red local. Los motores de
Vs4ueda .an re=olucionado el conocimiento 8 la Vs4ueda de in&ormacin.
/illones de usuariosH empresas 8 uni=ersidades los consultan a diario. )ste
so&twareH proporciona de &orma sencilla in&initas &uentes de in&ormacin. )l
oAeti=o de su tecnolo#$a es indeCar arc.i=os para reali!ar consultas sore
ellos. Los /otores de <Vs4ueda en Internet se pueden catalo#ar en tres
cate#or$as: <uscadores Jer-r4uicosH /etauscadores 8 <uscadores >erticales.
5.2.2 <uscadores Aer-r4uicos Los uscadores Aer-r4uicos o #eneralistas son
potentes sistemas in&orm-ticos 4ue .acen Vs4uedas de teCto en $ndices de
in&ormacin. La in&ormacin es suministrada mediante unas aplicaciones
complementariasH transparentes al usuarioH 4ue rastrean Internet en Vs4ueda de
in&ormacin: crawlers. 'oo#le es el uscador m-s utili!ado T@U. )st- catalo#ado
como uno de los m-s r-pidosH e&icaces 8 est- considerado la ma8or ase de datos
del mundoH sus $ndices contienen illones de p-#inas we. )l $ndice ori#inal de
'oo#le &ue de 5D.111 p-#inas en 277@H actualmente supera los P1 illones de
p-#inasH dolando el $ndice de <in# B51 illonesF 8 die! =eces el de Qa.oo BP
illonesF.
2P
<illones de Kes
D1 PD P1 6D 61 5D 51 2D 21 D 1 'oo#le <in# Qa.ooY
<illones de Kes
'RM;ICO 2. TA/AJO () LO, +(IC), () 'OO'L)H <I+' Q QAIOOY
Un motor de Vs4ueda Aer-r4uico consta de tres partes o procesos: Crawler:
Tami%n llamado araGa we o rastreador. Recorre la &uente de in&ormacinH
#eneralmente p-#inas weH #racias a una lista de linXs 4ue =a constru8endo a
partir de unas primerasH llamadas semillas. Almacena in&ormacin de las p-#inas
seleccionadasH como puede ser su URL o palaras cla=e 4ue conten#a el sitio.
'oo#le<otH <in#<ot 8 Qa.oo ,lurpY son los crawlers de los principales uscadores
de Internet. )l indeCador: *rocesa las p-#inas descar#adas por el crawlerH
clasi&ica su in&ormacin 8 la indeCa para una Vs4ueda -#il. :uer8 *rocessor:
Atiende las peticiones de los usuariosH mostrando resultados ordenados
normalmente por al#Vn al#oritmo de rele=ancia.
2@
5.5
Crawlers
Como .emos dic.o en la introduccinH un crawler es un so&tware capa! de rastrear
8 descar#ar in&ormacin de Internet para su posterior tratado. )ste so&tware es
desarrollado por multitud de empresas dedicadas al tratamiento de in&ormacin.
Un crawler #eneralista se pro=isiona manualmente de una lista de linXsH llamadas
semillas o seeds. )l rastreador identi&ica todos los .iperenlaces 8 los aGade a
la lista inicialH llamada ;rontera de Rastreo o Crawl ;rontier. )s posile 4ue
se estale!ca un ni=el de pro&undidad en un sitioH siendo este el nVmero de
sulinXs 4ue .a de atra=esar para lle#ar al sulinX m-s leAano del linX
principal. Una =e! 4ue est- en cada p-#ina we almacena los documentos para su
posterior tratamiento o directamenteH a tra=%s de al#Vn al#oritmo eCtrae la
in&ormacin 8 la introduce en al#una ase de datos.
(IA'RA/A P. ;U+CIO+A/I)+TO () U+ CRAKL)R
20
5.5.2 *oliticas de rastreo )Cisten cuatro pol$ticas 4ue cominadas de&inen un
uen comportamiento de un rastreador de tipo #eneralista: ,eleccinH ;recuencia
de =isitaH Recursos de ori#en 8 Concurrencia TRU.
5.5.2.2 *ol$tica de ,eleccin
Un rastreador no puede descar#arse todo el contenido pVlico de una weH dado
4ue la p%rdida de tiempo 8 recursos ser$a inasumile. ,in emar#oH se puede
seleccionar 4ue URLs puden ser m-s rele=antes por la calidad de su in&ormacin 8
descar#ar solo esa &raccinH dando m-s co.esin 8 rele=ancia a la in&ormacin
tratada. *riori!ar las =isitas 8 actuali!aciones de ciertas &uentes puede sernos
de astante utilidadH 8a 4ue o&receremos calidad en la seleccin de la
in&ormacin. *ara ello se utili!an al#oritmos matem-ticosH como IIT, o *a#eRanXH
para dotar a cada URL de una cierta rele=ancia a tener en cuenta. Iits es un
al#ortimo recursi=o consiste en dos =alores: Autoridad 8 Concentracin Ben
in#l%s Autorit8 8 IuF T7U. )l primero indica la calidad de la in&ormacin como
&uente 8 el se#undo re&leAa la calidad de los enlaces 4ue contiene. *or de&ecto
amos tienen =alor 2H a la espera de 4ue sean tratados por el al#oritmo: La
autoridad de un sitio es i#ual a la suma de los =alores de los concentradores o
.us 4ue redireccionan a ella: [ (onde:
ABpF: Autoridad de la p-#ina p. IuBXF: >alor de Iu de cada enlace a la p-#ina
p.
)l .u se de&ine como: [
(onde:
IBpF: Iu de la p-#ina p. ApBXF: >alor de Autoridad de la p-#ina p. 2R
*a#e RanX es otro al#oritmo matem-tico desarrollado por 'oo#le T21U sucesor del
anti#uo IIT,H dota a cada URL de un =alor de *rioridad B*RF se#Vn el nVmero de
.iperenlaces 4ue apuntan a ella.
[
(onde:
*RBAF: es el *a#eRanX de la p-#ina p. d: )s la proailidad de 4ue un usuario
continue na=e#ando por el sitioH nomalmente 1HRD. *RBXF: ,on los =alores de
*a#eRAnX 4ue tiene cada uno de los linXs a la p-#ina de A. CBXF: )s el nVmero
total de linXs 4ue posee la p-#ina.
5.5.2.5 *olitica de ;recuencia de =isita
(ado 4ue la cantidad de sitios =isitados por un rastreador suele ser ele=adoH
eCiste una pol$tica para mantener actuali!ada la in&ormacin de los sitios
=isitados anteriormente. *ara ello se sulen utli!ar al#oritmos como ;rescura
Bin. ;res.nessF 8 )dad Bin. A#eF 4ue a8udar-n a decidir 4ue p-#inas actuali!ar.
)s usual complementar estas dos &unciones con estudios estad$sticos para
penali!ar la =isita de sitios 4ue camian con alta &recuenciaH 8a 4ue pueden
des=irtuar la &rontera de rastreo. ;rescura: )s un al#oritmo inario 4ue nos
indica si la p-#ina .a sido actuali!ada recientemente B2F o no B1F respecto a un
tiempo indicado. ,e de&ine como: \ (nde: ;* : ;rescura de p-#ina p. pt: Tiempo
de Vltima actuali!acin. t: Tiempo indicado. )dad: )ste mec-nismo matem-tico nos
indica el tiempo total de desactuali!acin de un we:
\ (nde:
27
51
5.5.2.P *olitica de Concurrencia
Un rastreador e&ica! utili!ar- procesos paralelos para maCimi!ar la descar#aH
esto conlle=a 4ue pueda .aer URLs i#uales en =arios procesos. *ara e=itarlo se
dee introducir un mecanismo 4ue e=ite la duplicidad en la asi#nacin de URLs
nue=as.
5.5.5 La parte oculta de la we (urante estos Vltimos aGos .a .aido un au#e de
sitios din-micos diseGados con tecnolo#$a AAaCH ,il=erli#.t o ;las.H los
rastreadores tradicionales pierden e&ecti=idad con estas tecnolo#$as. )n primer
lu#ar normalmente escanean teCto 8 no reconocen toda la in&ormacin 8a 4ue es
mostrada en una inter&a! para usuario. ;ormulariosH talasH im-#enes 8 mapas se
con=ierten en =erdaderos ost-culos para los crawlers tradicionales. Tecnolo#$as
utili!adas en el desarrollo we T25U: Ja=a,cript 8 ><,cript:
Len#uaAes imperati=os orientados a oAetosH permiten la #eneracin din-mica de
la inter&a!. Aplets: Componente Ja=a de una aplicacin 4ue se eAecuta utili!ando
recursos del cliente we. ;las.: Aplicacin 4ue nos permite crear inter&aces
=ectorialesH utili!a Action,criptH similar a Ja=a,cript. AAaC: T%cnicas de
desarrollo de contenido din-mico. Utili!a Ja=a,cript.
)stas tecnolo#$as #eneran na=e#aciones transparentes al crawlerH como en los
Applets de Ja=aH o #eneran autom-ticamente enlaces 4ue no podemos procesar. )l
protocolo ,ite o la pro#ramacin de <ots de &ormulario son m%todos 4ueH
complementariosH nos pueden a8udar a la .ora de resol=er los prolemas 4ue nos
plantean T26U.
5.5.6 ,itemaps *rotocol )Ciste un protocolo adicional al *rotocolo de )Cclusin
de Roots llamado ,ite/aps *rotocol T2PU. )ste protocolo consiste en aloAar un
arc.i=o ?/L de metadatos con las URLs 4ue aconseAan rastrear de sus sitios con
in&ormacin adicional como: Sltima actuali!acinH &recuencia de modi&icacin o
rele=ancia en relacin a las dem-s p-#inas del sitio. )ste arc.i=o se le nomra
como sitemap.Cml 8 se aGade la eti4ueta N,ite/ap:^uicacin del arc.i=o
stiemaps_O en el arc.i=o roots.tCt. ,itemaps &acilita la e&icacia del rastreo.
)l wemaster puede orientar a los rastreadores para una meAor seleccin de la
in&ormacin de su we. ,i es una we din-mica puede in&ormar de URLs para
acceder a !onas donde un crawler tradicional no podr$a acceder. Al ser las
Vs4uedas m-s r-pidas se a.orra recursos en el ser=idor remoto 8H adem-sH el
wemaster puede orientar a los uscadores para una meAor seleccin de la
in&ormacin de su we. 52
5.5.6.2 ;ormato de sitemaps.Cml
)l arc.i=o ,ite/aps.Cml contiene una estructura ?/L en UT;3R. Las eti4uetas 4ue
se pueden utili!ar son las si#uientes: ^URLset_: Re&erencia a la =ersin del
protocolo. ^URL_: )ti4ueta padre de cada URL. ^loc_: locali!acin de la URL.
^lastmod_: Sltima actuali!acin. ^c.an#e&re4_: ;recuencia de modi&icacin. Tiene
los par-metros: alwa8sH .oURL8H dail8H weeXl8H mont.l8H 8earl8H ne=er
^priorit8_: *ar-metro con =alor comprendido entre N1.1O 8 N2.1O 4ue indica la
rele=ancia de la URL en el sitio.
)Aemplo del contenido un arc.i=o de ,ite *rotocol: ^`Cml =ersin]2.1O
encodin#]Out&3R`_ ^URLset Cmlns:.ttp:aawww.,itemaps.or#as.cemasasitemapsa1.7_
^URL_ ^loc_.ttp:aasitio.com_aloc_ ^lastmod_ 511@322325^alasmod_
^c.an#e&re4_dail8^ac.an#e&re4_ ^priorit8_1.R^apriorit8_ ^aURL_ ^aURLset_
5.5.P
<ots de &ormularios
Un ot es un pro#rama in&orm-tico 4ue reali!a al#una &uncin imitando el
comportamiento .umano. )Cisten ots con=ersacionales para c.atsH ots 4ue
simulan usuarios en un Aue#o de ordenadorH los .a8 4ue son capaces de crear
cientos de cuentas de correo para en=iar ,*A/ 8 tami%n los .a8 para la
in=esti#acin 8 el (ata /inin#. Cuando nos encontramos con una inter&a! diseGada
espec$&icamente para un usuarioH con un &ormularioH talas o campos din-micos
podemos .acer uso de estos para acceder al contenido deseado. Los ots de acceso
suelen ser &ocali!ados al sitio 8 diseGados eCpresamenteH 8a 4ue .a8 4ue
estudiar el &ormulario el cual el ot desea rellenar. Ia8 4ue saer el nomre de
los campos 8 los =alores necesarios para 4ue se pueda superar satis&actoriamente
este ost-culo. /uc.os ots est-n diseGados en *I* por la &acilidad 4ue tiene
para traaAar con documentos we. (epende 4ue &ormularioH deeremosH aparte de
conocer el nomre de los elementosH #uardarnos la cooXie e identi&icarnos como
un na=e#ador .aitual B/o!illa ;ire&oCH C.rome o Internet )CplorerF para 4ue no
nos rec.acen la peticin. 55
5.5.P.2 <OT Atenea: Un )Aemplo did-ctico de ot
Con el oAeti=o de aprender de la tecnolo#$a de ots se .a diseGado el si#uiente
pro#ramaH el cual se re#istra en el &ormulario de acceso de AteneaH el Campus
>irtual de la Uni=ersidad *olit%cnica de Catalun8a. A continuacinH accede al
per&il 8 eCtrae datos. )n este caso did-cticoH .emos ele#ido un elemento
din-mico 4ue siempre =a a camiar: Sltima coneCin.
CA*TURA () *A+TALLA P. <OT AT)+)AH R)ALILA(O (URA+T) LA I+>),TI'ACI"+ ()L
*ROQ)CTO
,e puede eAecutar en: .ttp:aawww.se#mentation3&ault.comase#mentationaot5.p.p.
)n esta aplicacin utili!amos la lirer$a CURL de *I* la cual nos permite
mantener aierta una sesin .ttp con el ser=idor. )n=iamos los datos del
&ormulario a la p-#ina N.ttps:aaatenea.upc.eduamoodlealo#inaindeC..tmlOH la cual
es la responsale de =alidar dic.o &ormulario. Una =e! dentro de AteneaH nos
descar#amos la p-#ina del per&il 8 reco#emos la in&ormacin.
5.5.D )l reconocimiento de la in&ormacin )l ,creen ,crapin# es la t%cnica 4ue
se utili!a en pro#ramacin para eCtraer in&ormacin de una &uente mediante
in#enier$a in=ersa. )stas t%cnicas son utili!adas para anali!ar in&ormacin en
inter&aces diseGadas para el usuario. 56
)Cisten di&erentes t%cnicasH desde la m-s rudimentaria 4ue necesita de la
inter=encin del usuarioH como el Ncopiar b pe#arOH .asta la m-s compleAa como
el reconocimiento de teCto en im-#enes. )l ,creen ,crapin# dedicado a p-#inas
weH es denominado Ke ,crapin# 8 el m%todo m-s usual es el parsin# de teCto.
5.5.D.2 *arsin#
*arsin#H o an-lisisH es el proceso mediante una serie de t%cnicas podemos
anali!ar un teCtoH utili!ando patrones 8 an-lisis de cdi#o. )l parserH o
anali!adorH es el mdulo de un pro#rama responsale de esta &uncin. Los parsers
se utili!an en multitud de aplicaciones: matem-ticas B-l#eraH sintaCiscF
traductores de len#uaAes B?/LH *I*cFH plata&ormas lin#d$sticas Btraductores de
idiomasH correctores orto#r-&icosF o en la eCtraccin de datos. Un parser para
un searc. en#ine dee estar preparado para su &uncin. Un uscador de =uelos
utili!ar- un parser para reconocer el =alor de ciertos productos de unas p-#inas
concretasH mientras 4ue un uscador #en%rico eCtraer- in&ormacin Vtil para la
indeCacin B/etasH t$tulo...F.
(IA'RA/A D. *ROC),O () *AR,I+'
5.5.D.5 (O/: /odelo de OAetos de (ocumentos
)ste modelo &ue creado para dotar a la estructura de los len#uaAes IT/L 8 ?/L
T2DU una orientacin a oAetos. )stos len#uaAes sencillos de pro#ramar son
compleAos para procesar o manipular por parte de otros len#uaAes. )s por ello
4ue apareci esta t%cnica T2@U. /uc.os len#uaAes como *I* o AAaC tienen
lirer$as para manipular documentos con esta .erramienta. )ste modelo tiene una
estructura l#ica parecida a un -rol aun4ue sin restricciones 8a 4ue puede ser
diseGado de di&erentes &ormas. Los oAetos no #uardan relacin l#ica entre
ellos. 5P
)ste m%todo se utili!a para representar los oAetos del documento es utili!ado
en parsers compleAos para a=eri#uar la estructura #eneral del documento.
5.5.@
Comparati=a de so&tware lire
)n este apartado se reali!a una comparati=a de so&tware lire relacionado con
los procesos 4ue reali!a un uscador. 5.5.@.2 AspseeX )s un uscador
desarrollado por ,Kso&t aAo licencia '+U '*L. Tiene aplicacin Ke C'I
personali!ale con capacidad para uscar palaras 8 &rases. *osee un potente
crawler pro#ramado en CbbH es capa! de indeCar =arios millones de URLs
utili!ando *a#e RanX para las rele=ancias de las p-#inas. Utili!a una ase de
datos ,:L 8 arc.i=os inarios. ,oporta el *rotocolo de )Cclusin de Roots. Ke:
aspseeX.or#.
CA*TURA () *A+TALLA D. A,*,))e
5.5.@.5 (ata*arX,earc.
<uscador 8 crawler pro#ramado en C desarrollado por /aCim LaX.aro= aAo licencia
'+U '*L. Con ase de datos en ,:L. *osee aplicacin we C'IH multilen#uaAeH
Vs4ueda de palaras Busando sinnimosH acrnimos 8 are=iacionesFH al#oritmo
propio de ranXin# de URLs. Utili!a el protocolo de )Cclusin de Roots.
Capacidad de rastreo ITT*H ;T*H ++T* 8 documentos. Ke: www.dataparXsearc..or#.
CA*TURA () *A+TALLA @. (ATA*ARAe,)ARCI
5.5.@.6 K#et
)s un rastreador desarrollado en C por 'iuseppe ,cri=ano 8 Ir=oAe +iXsic aAo
licencia '+U '*L en 277@. ,uelen .aer continuas actuali!aciones .asta al d$a de
.o8 BA#osto 5125F. *uede rastrearH descar#ar 8 mantener actuali!ados una lista
de sitios. ,oporta el *rotocolo de )Cclusin de Roots. Capacidad de rastreo
ITT* 8 ;T*. Ke: www.#nu.or#aso&twareaw#et.
CA*TURA () *A+TALLA 0. K')T
5D
5.5.@.P IeritriC
)s el crawler de las iliotecas di#itales NInternet Arc.i=e Lirar8O 8 N+ordic
Lirar8O aAo licencia Apac.e 5.1. *ro#ramado en Ja=a. (escar#a arc.i=os de
Internet 8 los indeCa en arc.i=os .ARCH 4ue es el tipo de arc.i=o 4ue utili!a la
Internet Arc.i=e Lirar8. Tami%n posee una .erramienta para arir dic.os
arc.i=os llamada ARCReader. Ke: wearc.i=e.Aira.comarowseaI)R.
CA*TURA () *A+TALLA R. I)RITRI?
5.5.@.D It:adi#
CA*TURA () *A+TALLA 7. IT:a(I'
)s un motor de Vs4ueda con crawler diseGado en 277D en la Uni=ersidad )statal
de ,an (ie#o por Andrew ,c.erpierH actuali!ado .asta 511P. *ro#ramado
completamente en Cbb aAo licencia '+U '*L. ,oporta el *rotocolo de )Cclusion de
Roots. *uede uscar por &rases utili!ando di&erentes al#oritmos BsinnimosH
are=iaturasH etc..F tami%n escanea &ic.eros de teCto. Ke:
.ttp:aawww..tdi#.or#a
5.5.@.@ ITTracX
ITTracX es un crawler diseGado para la descar#a masi=a de p-#inas wes para la
na=e#acin o&&line. (esarrollado por ?a=ier Roc.eH aAo licencia '+U '*L 8
pro#ramado en C. Tiene capacidad para la descar#a weH Ja=a,criptH Applets 8
Ja=a. Ke: .ttp:aawww..ttracX.coma
CA*TURA () *A+TALLA 21. ITTRACe
5@
5.5.@.0 +utc.
+utc. es un uscador Aer-r4uico con crawler. )s un producto de Apac.e ,o&tware
;oundationH su primera =ersin sali en 5116. )st- diseGado en Ja=a 8 tiene
capacidad para eAecutarse en =arias m-4uinas usando Iadoop cluster. Tiene
soporte para el *rotocolo de )Cclusin de Roots. Creati=e Commons .a utili!ado
este so&tware para su uscador. Ke: nutc..apac.e.or#.
CA*TURA () *A+TALLA 22. +UTCI
5.5.@.R *I*Crawl
)s un &rameworX aAo licencia '+U '*L=5 pro#ramado en Ja=a 4ue permite al
pro#ramador incorporar un Crawler multiproceso a su cdi#o. )ste crawler nos
descar#ar- arc.i=os we para su posterior tratado. Tiene inter&a! de
con&i#uracin. ,u primera =ersin sali en 5116 8 su Vltima actuali!acin .a
sido en Aril de 5125. Ke: p.pcrawl.cua.de.
CA*TURA () *A+TALLA 25. *I*CRAKL
50
5.5.@.7 Tala resumen so&tware lire
A continuacin una tala donde reco#emos las principales caracter$sticas del
so&tware lire anteriormente mencionado:
+omre AspseeX (ata ,earc. *arX K#et IeriatriC ITTracX +utc. *I*Crawl
Crawler ,i ,i
Len#uaAe Cbb C
Clustered +o +o
Roots.tCt ,i ,i
,earc. )n#ine ,i ,i
<<(( ,:L ,:L
Licencia '+U '*L =5 '+U '*L =5 '+U '*L =5 Apac.e =5 '+U '*L =5 Apac.e =5 '+U '*L
=5
*lata&orma UniC UniC
,i ,i ,i ,i ,i
C Ja=a C Ja=a *I*
+o +o +o ,i +o
,i ,i ,i ,i ,i
+o +o +o ,i +o
*ropia 3
UniC /ultiplata&orma Kindows /ultiplata&orma /ultiplata&orma
5R
III.
),TRUCTURA Q (I,)JO
)l oAeti=o de este cap$tulo es la otencin de una especi&icacin detallada de
las caracter$sticas 8 &uncionalidades del sistema propuesto con todas las
meAoras 8 ampliaciones reali!adas en el transcurso de la reali!acin del
pro8ecto. )ste apartado est- di=idido se#Vn los mdulos diseGados. Los mdulos
iniciales del pro8ecto &ueron Lan!adera 8 <ot. )l diseGo actual consta de amos
mdulos Aunto a (iseGador de <otsH ,er=idor de <ots e IndeCadorW los cuales se
inte#raron a posteriori. Las eCplicaciones se acompaGan de #r-&icos e im-#enes
reali!adas para meAorar la comprensin de la in&ormacin dada.
6.2
An-lisis inicial
)l primer paso dado es el diseGo de un proceso mediante unos conceptos
elementales. )l oAeti=o es resol=er el prolema de una &orma conceptual. Lo
cual nos permite tener un punto de partida para el desarrollo 8 diseGo &inal de
la ar4uitectura del sistema. )n primer lu#ar locali!amos los conceptos
elementales del sistemaH los cuales se con=ertir-n en el centro #ra=itatorio del
desarrollo. ,e#uidamenteH desarrollaremos un proceso elemental 4ue nos a8ude a
resol=er el prolema de una &orma conceptual. *osteriormenteH desarrollaremos
dic.o concepto para a=eri#uar 4ue aplicaciones deemos diseGar para cumplir con
las caracter$sticas del crawler 4ue 4ueremos diseGar. As$H estaleceremos las
ases de nuestro diseGo.
6.2.2 Conceptos elementales )l crawler 4ue deemos diseGar dee ser un sistema
4ue eCtrai#a in&ormacin de una serie de sitios 8 la manten#a actuali!ada. )sta
in&ormacin podr- ser &uente de datos de otro sistemaH como pueden ser un
uscador tem-ticoH una aplicacin estad$stica o cual4uier otro sistema
in&orm-tico 4ue sea capa! de manipular arc.i=os de teCto. +uestra idea inicial
se asa en resol=er la eCtraccin de la in&ormacin a tra=%s de ots Un ot es
un pro#rama in&orm-tico 4ue simula el comportamiento .umano para reali!ar una
tarea encomendada. +uestros ots ser-n Nlan!adosO a Internet mediante un actorH
el cual los eAecutar- cada cierto tiempo.
(e esta idea nos sur#en tres necesidades o conceptos:
57
Actor de Tiempo o Lan!adera: ,e necesitar- un actor 4ue controle la eAecucin de
los ots sore un sitio en una .ora determinada. A este actor se le denominar-
Lan!adera B,.uttle en in#l%sF. <ot: ,er- un proceso 4ue eCtrai#a de un sitio
in&ormacin en &orma de resultados. ,itio: )s un dominio we donde eCiste
in&ormacin potencial. B,ite en in#l%sF.
6.2.5
*roceso elemental
(ados los anteriores conceptos 8 sus relacionesH otenemos el proceso elemental
del sistema. )ste proceso consistir- en una Lan!adera 4ue eAecutar- cada cierto
tiempo una serie de <ots sore di=ersos ,itiosH oteniendo as$ los resultados.
'r-&ico del proceso:
(IA'RA/A @. *ROC),O )L)/)+TAL ()L ,I,T)/A
)l sistema propuesto pretende resol=er los prolemas 4ue eCisten en dotar
di&erentes comportamientos a un crawler =ertical. La di&icultad radica en la
especiali!acin de los datos. fstos son mu8 espec$&icos 8 &recuentemente se
muestran de &ormas di=ersas. +ormalmente los crawlers comparadores son diseGados
espec$&icamente con un oAeti=o: 8a sea uscar =iaAesH comparar preciosH
recolectar in&ormacin sore un cierto temaH etccH Lo 4ue intentamos solucionar
con nuestro diseGo es poder dotar de .erramientas al crawler para eCtraer
in&ormacin sin tener 4ue repro#ramarlos en caso de camiar la tem-tica. *ara
tener %Cito deemos pensar en la m-Cima &leCiilidad posile. (eemos diseGar un
sistema capa! de adaptarse a di&erentes situaciones: )l diseGo dee deAar
aierta la sustitucin de procesos. Los ots o el indeCador deer$an ser
sustituiles de al#Vn modo. Aplicaciones eCternas podr-n utili!ar los
resultados proporcionados sin nin#Vn tipo de restriccin por parte del sistema.
Los ots podr-n estar distriuidos en di&erentes e4uipos 8 uicaciones dotando
al sistema de una capacidad ma8or de procesoH si se re4uiere. )sto conlle=ar- el
estudio de la posile inte#racin de un protocolo &iale de comunicaciones.
Tami%n se pretende 4ue el propio sistema ten#a una .erramienta para la
con&i#uracin de <ots. )sto &acilitar$a el uso del sistema 8a 4ue no .ar$a &alta
la pro#ramacin de scripts propios. 61
Los datos eCtra$dos deen ser manipulales por aplicaciones eCternas. )sto .ace
4ue los resultados otenidos dean #uardarse en un &ormato de arc.i=o de teCto o
similar. )stos arc.i=os podr-n ser procesados por una tercera aplicacin.
6.2.6 (iseGo /odular Como .emos mencionado anteriormente la &leCiilidad es
&undamental. (eseamos 4ue nuestro sistema se adapte a las necesidades &inales
del usuario. *or elloH se identi&ican tres -reas de responsailidad:
Administracin: )n esta -rea se en#loan los procesos de la administracin del
sistemaH el diseGo de ots 8 la eAecucin de estos. Rastreo de In&ormacin:
)ncar#ada de resol=er la eCtraccin de datos sore un sitio. IndeCacin:
Responsale de en#loar los procesos de indeCacin en ases de datos.
(e estas tres -reas otenemos las aplicaciones 4ue se diseGar-n para 4ue el
sistema &uncione correctamente: Administrador: Aplicacin 4ue administra
el sistema. Contiene la Lan!aderaH el (iseGador de <ots 8 la in&ormacin -sica
del sistema. <ot: Un script con&i#urale 4ue podr- ser eAecutado en otras
m-4uinas dotando al sistema de una =isin distriuida. IndeCador: Aplicacin o
,cript 4ue indeCe los datos eCtra$dos por los ots en una ase de (atos.
6.2.P (esarrollo M#il )l pro8ecto se .a diseGado de una &orma -#il. *rimero se
.a diseGado un crawler -sico 8 posteriormente se .a ido ampliando el diseGo con
&uncionalidades nue=as. Las &ases de desarrollo .an sido: 2. *rimera &ase:
(iseGo del administrador de sitiosH la lan!adera 8 los ots. 5. ,e#unda &ase:
(iseGo 8 acople dela .erramienta creadora de ots. 6. Tercera &ase: (iseGo e
implementacin del indeCador 8 el ,er=idor TC*. La primera &ase se inici
despu%s de un periodo de in=esti#acin de dos mesesH concretamente el 6 de
septiemre de 5125 8 se &inali! la implementacin el D de no=iemre de 5125. La
se#unda &ase se inici el mismo d$a de &inali!acin 4ue la primera 8 se termin
el D de diciemre acopl-ndolo al diseGo inicial. La tercera &ase se comien!a el
56 de diciemre 8 &inali!a el D de enero de 5126H dando &in al diseGo e
implementacin del pro8ectoH como podemos =er en el dia#rama 0: 62
(IA'RA/A 0. *LA+I;ICACI"+ Q *LALO, ()L *ROQ)CTO
6.2.D )s4uema #eneral de la ar4uitectura del ,istema
(IA'RA/A R. ),:U)/A ')+)RAL () LA AR:UIT)CTURA ()L ,I,T)/A
65
La ar4uitectura #eneral del sistema consta de tres -reas de responsailidad:
IndeCacinH Rastreo de In&ormacin 8 AdministracinH representados en el es4uema
en lo4ues. Los elementos diseGados se muestran por colores se#Vn su &ase de
diseGo: a!ulH amarillo 8 =erde correspondientes a la primeraH se#unda 8 tercera
&ase. )n roAo se muestran elementos 4ue pueden ser eCternos o diseGados a
posteriori. ,e aplica el principio de &leCiilidad en la ar4uitecturaH como
podemos comproar en el es4uema. Las interacciones con sistemas eCternos 4ue
deen 4uedar aiertas son las si#uientes: La lan!adera podr- eAecutar
scripts eCternos o scripts #enerados por el (iseGador de <ots. Los datos pueden
ser reco#idos por el IndeCador del ,istema o por uno indeCador eCterno. Los
datos eCtra$dos deer-n ser en &ormato teCto para &acilitar 4ue las aplicaciones
eCternas puedan traaAar directamente con ellos.
6.2.@ >isin distriuida del sistema )l proceso de eCtraccin de datos puede
demorar astante tiempo. )l sistema podr- =isitar cientos de p-#inasH
descar#arlas 8 procesarlas. )n sitios #randes estas pueden ser miles. )stoH
Aunto a pol$ticas de uen uso aGade un tiempo importante al proceso. )n caso de
eCceso de traaAoH o de 4ue no se desee tener saturado un solo e4uipoH el
sistema contemplar- la opcin de estar distriuidoW es decirH la posiilidad de
4ue el AdministradorH el IndeCador 8 los <ots est%n en di&erentes e4uipos:
(IA'RA/A 7. >I,I"+ (I,TRI<UI(A
66
A continuacin mostramos al#unos eAemplos de con&i#uraciones distriuidas del
sistema: (istriucin Vnica: )l administradorH los ots 8 el indeCador
est-n en un mismo e4uipo. (istriucin administrador3indeCadora: )l
administrador 8 el indeCador est-n en un e4uipo 8 los ots distriuidos en
=arios e4uipos. (istriucin total: Cada e4uipo solo tiene una aplicacin de
-rea de responsailidad.
(IA'RA/A 21. (I;)R)+T), (I,TRI<UICIO+), ()L ,I,T)/A
6P
6.5
,.uttle<ot
,.uttle<ot es la aplicacin 4ue #estionar- el proceso de eCtraccin de
in&ormacin sore las p-#inas we. )sta aplicacin contiene una serie de
al#oritmos para lle=ar a cao dic.a empresa. )st- diseGada para ser eAecutada
desde el administrador de ,itiosH el oAeti=o de tener separado dic.as
aplicaciones es miti#ar el impacto de los procesos de eCtraccin sore la
m-4uina donde se aloAen. Con esta aplicacin dotamos al sistema de una =isin
distriuida pudiendo aloAarse en otras m-4uinas.
CA*TURA () *A+TALLA 26. I+T)R;AL () U+ ,IUTTL)<OT
6D
6.5.2 La in&ormacin (e un ,ite La in&ormacin 4ue se eCtrae de los sitios
normalmente es #enerada de &orma autom-tica por #estores de contenido 8 cdi#o
pre#enerado. )ste tipo de t%cnica utili!ada por los creadores de sitios we nos
&acilita el reconocimiento de los datos de sus p-#inas. Cada sitio muestra la
in&ormacin de una &orma di&erenteH es por ello 4ue los ots son diseGados
indi=idualmente para cada sitio. A continuacin un eAemplo de un sitio real
Bwww.tuare#=iat#es.esFH el cual nos o&rece in&ormacin de eCcursiones de
a=entura. )n roAo aparecen datos 4ue nos pueden interesar rastrear en el sitio
para construir un portal tem-tico de a=entura.
CA*TURA () *A+TALLA 2P. *M'I+A ()L ,ITIO K)< TUAR)' >IAT'),
6.5.5 +i=eles de un ,itio Una =e! locali!ada la in&ormacin deemos saer lle#ar
a ellaH por ello deemos eCaminar el sitio para =er a 4u% ni=el de pro&undidad
est-n las p-#inas &uente. )l ni=el de pro&undidad se determina por los linXs 4ue
se .a de atra=esar para lle#ar al contenido de la p-#ina. *on#amos un eAemplo:
Una p-#ina de =iaAes comVn suele tener un ni=el inicialH ni=el 1 o de semilla. Z
8a 4ue a partir de este enlace NcreceO la lista de linXs a =isitar3. )l
si#uiente ni=el lo con&orman linXs de cate#or$as como B>iaAes a Am%ricaH >iaAes
a )uropacF o enlaces eCternos e internos a di&erentes lu#ares del sitio. Los
si#uientes ni=eles constar-n a su =e! de sucate#or$as Been8aH )stados UnidosH
;ranciacF. )stos ni=eles se =an sucediendo .asta lle#ar al ni=el donde est-n las
p-#inas &uente.
6@
)s4uema de ni=eles del eAemplo anterior:
(IA'RA/A 22. +I>)L), () U+ ,ITIO
6.5.6 Al#oritmos del script )l proceso de eCtraccin de una &uente de datos se
asemeAa astante al proceso real de la miner$a cl-sica. )s por ello 4ue este
tipo de procesos suelen denominarse procesos de (ata /inin# o /iner$a de (atos.
Como .emos comproadoH necesitamos resol=er dos prolemas principales: )l
primero es encontrar los linXs donde deemos rastrear in&ormacin 8 el se#undo
es eCtraer dic.a in&ormacin. *ara resol=er dic.os prolemas se .an diseGado dos
al#oritmos: Al#oritmo de &ronteras de pro&undidad: )ste al#oritmo eCplorar-
los linXs del sitio .asta cierta pro&undidad. Reco#er- conAuntos de linXs
pertenecientes a cada ni=el. Cada uno de estos conAuntos se le denominar-
&rontera de rastreo 8 podr-n ser utili!ados por el se#undo al#oritmo. 60
>entana: B2@ itsF )l nVmero de octetos de datosH a contar a partir del nVmero
indicado en el campo de +Vmero de acuse de recioH 4ue el emisor de este
se#mento est- dispuesto a aceptar. ,uma de control: B2@ itsF )l campo ,uma de
control es una secuencia de its para comproar la inte#ridad de los datos.
*untero ur#ente: B2@ itsF )ste campo indica el =alor actual del puntero
ur#ente. Opciones: B>ariale. /Vltiplos de R itsF (i&erentes opciones de la
trama. Relleno: B>arialeF ,ecuencia de its compuesta de ceros. /ensaAe de
,.uttle: A4u$ est-n los datos #enerados por nuestra aplicacin.
6.D.6 Ampliacin de los Casos de uso ,e aGaden un nue=o caso de uso: <ot
Connection.
(IA'RA/A DP. A/*LIACI"+ () LO, CA,O, () U,O
P.5.D Asistente de *atrones )sta pantalla .a sido una de las Vltimas meAoras del
sistema. Ia sido diseGada espec$&icamente para la introduccin de patrones
simples a partir del cdi#o IT/L. La =entana consta de tres #randes -reas de
teCto. )n la primera se copia el cdi#o o teCto desde el cual se 4uiera reali!ar
el patrn. )n la se#unda -reaH seleccionando el teCto 4ue no coincide entre
muestra 8 muestra para 4uitarlo del patrn. )l resultado nos aparecer- montado
sint-cticamente en la tercera -rea.
7R
CA*TURA () *A+TALLA 5P. A,I,T)+T) () *ATRO+), ,I/*L),
P.5.@ *antalla de lan!amiento
CA*TURA () *A+TALLA 5D. LA+LA/I)+TO () U+ <OT A TRA>f, () LA I+T)R;AL ()
LA+LA/I)+TO
77
La inter&a! de lan!amiento es el na=e#ador we donde se eAecutan los scripts del
sistema. )ste na=e#ador a sido diseGado espec$&icamente para tal &inH por lo 4ue
carece de &uncionalidades de eCploracin m-s all- de las necesarias. )n la
inter&a! aparece: *anel superior: o TeCto de estado: ,e =a actuali!ando con
la in&ormacin pro=eniente del ser=idor de <ots. o <arra de proceso: Indica el
a=ance del proceso actual. o <arra Total: Indica el a=ance del proceso total.
*anel central: o Mrea Ke: A4u$ aparece la inter&a! del propio ,cript. *anel
in&erior: o Candado anticierre: )Ciste un pe4ueGo candado para lo4uear la
=entana 8 4ue no se cierre autom-ticamente cuando el ,cript .a8a acaado de
eAecutarse.
P.6
Capa de >ista
La Capa de >ista es el conAunto de clases Ja=a 4ue implementan la Inter&a!
#r-&ica. )l oAeti=o de esta capa es &acilitar la interaccin del sistema con el
usuario. La capa de =ista la componen once clases: o o o o o o o o o o o
Inter&aceqmain.Aa=a: Clase 4ue implementa la pantalla principal.
Inter&aceqoptions.Aa=a: ,e implementa el panel de opciones.
Inter&aceqadminqsitios.Aa=a: Clase 4ue implementa la pantalla principal
administrador de sitios. Inter&aceqadminqots.Aa=a: Clase de la inter&a! del
administrador de ots. Inter&aceqlaunc.in#.Aa=a: Clase 4ue implementa el
asistente de lan!amiento. Inter&aceqcalendar.Aa=a: Clase 4ue implementa el
calendario del asistente de lan!amiento. Inter&aceqmo=er.Aa=a: Clase 4ue
implementa un oAeto para poder mo=er la pantalla principal.
Inter&aceq,plas..Aa=a: Inter&a! de la pantalla de car#a del ,istema.
Inter&aceqAssistant.Aa=a: Clase 4ue implementa el asistente de patrones.
Inter&aceqlacX.Aa=a: Clase 4ue implementa el &ondo de las =entanas.
,)qLaunc.qpad.Aa=a: Inter&a! del ser=icio de Lan!amiento.
Las principales clases de esta capa se .an diseGado con la a8uda del ;rameKorX
Ja=a ,win# 4ue incorpora +et<eans 0.5. )ste ;rameworX nos &acilita la
pro#ramacin de las =entanas 8 oAetos con la a8uda de potentes lirer$as. Las
im-#enesH &ondos e iconos .an sido en su ma8or$a diseGados mediante la
aplicacin 'I/* 5.1 de reto4ue &oto#r-&ico. Al#unos iconos .an sido reco#idos de
la lirer$a Cr8stal Clear con licencia L'*L. 211
(ada la compleAidad de este tipo de so&twareH se .a traaAado esta capa con el
oAeti=o de &acilitar el uso de la aplicacinH dentro de los m-r#enes 4ue nos
permite. La inter&a! #r-&ica incorpora sistemas de a8uda 8 elementos 4ue a8udan
al usuario a con&i#urar el pro#rama. Aun4ue t%cnicoH no se necesitan #randes
nociones de in&orm-tica para poder con&i#urarlo. *ara aumentar la usailidad del
pro#rama se .a optado por incorporar en todas las pantallas un panel de a8uda.
Cuando el usuario pasa por encima de cual4uier elemento de la pantallaH este se
ilumina dando una re=e descripcin del oAeto:
CA*TURA () *A+TALLA 5@. *A+)L () AQU(A
CA*TURA () *A+TALLA 50. *A+)L () AQU(A AL *A,AR )L RAT"+ *OR )+CI/A () U+ CA/*O
Las clases implementadas en esta capa tienen aproCimadamente la mitad del cdi#o
del pro#rama. )n ella encontramos multitud de oAetos 8 m%todos auCiliares en
m-s de 0111 l$neas de cdi#o 8 m-s de 511 m%todos. Uno de los m%todos
pro#ramados 8 4ue .a a.orrado multitud de l$neas de cdi#o es el sistema de
a8uda anteriormente citado: *or cada otn o -rea de in&ormacin la inter&a!
intenta a8udar al usuario. Contando la cantidad de elementos 4ue componen esta
inter&a! &ue necesaria la implementacin de un m%todo por el cual cami-amos 8
4uit-amos la in&ormacin utili!ando solo una l$nea de cdi#o:
C"(I'O ;U)+T) 2. ,I,T)/A () AQU(A
212
Tami%n se intent minimi!ar el nVmero de instrucciones de cdi#o reutili!ando
m%todos para acti=ar o desacti=ar !onas de la inter&a!. )l si#uiente caso es el
m%todo resetLinX;ilterH el cual acti=a o desacti=a el panel de &iltros de linXs
se#Vn el ooleano indicado:
C"(I'O ;U)+T) 5. (),ACTI>AR )L *A+)L () ;ILTRO,
Un eAemplo es el panel de &iltros de +i=el del Administrador de <ots. )n el
podemos destacar 4ue utili!amos siempre elementos temporales para no modi&icar
los oAetos 4ue 4ueremos #uardar. )sto da la posiilidad de des.acer la
operacin si el usuario lo re4uiere:
C"(I'O ;U)+T) 6. CAR'A () (ATO, A LA I+T)R;AL
215
P.6.2 (ia#rama de clases de la capa de =ista )n el (ia#rama @@ podemos oser=ar
como los componentes principales se comunican con el controlador de la capa de
+e#ocio. )sto es as$ deido a 4ue la capa de =ista no reali!a procesos
compleAos. ,e encar#a principalmente de interactuar con el usuario 8 deAa la
l#ica del sistema a la capa de ne#ocio.
(IA'RA/A @@. (IA'RA/A () CLA,), () LA CA*A () >I,TA
P.P
Capa de +e#ocio
La capa de ne#ocio es la encar#ada de la l#ica del pro#rama. (eido al nVmero
de clases implementadasH 8 con el oAeti=o de &acilitar la implementacin de las
mismasH esta capa se .a decidido di=idirla en dos sucapas:
Capa de *ersistencia de (atos: )n esta capa se inclu8en las clases en las cuales
sus reali!aciones =an a ser #uardadas en el ,istema entre eAecucin 8 eAecucin
del mismo. )stas clases comien!an por el pre&iAo N<OqOH pro=eniente de las
iniciales de <usiness OAect. )ncontramos en esta capa clases como <Oq<ot o
<Oq,iteH las cuales tienen la in&ormacin necesaria para la administracin del
,istema.
Capa de ,er=icios: )stas son las clases donde sus reali!aciones no =an a
necesitar una persistencia en el sistema. Reali!an operaciones l#icas sir=iendo
a las clases de la capa de *ersistencia. )n esta capa encontramos las clases del
,er=idor de <ots o la Lan!aderaH entre otros ser=icios.
216
P.P.2 (ia#rama de clases de la Capa de *ersistencia )n el dia#rama de clases
B(ia#rama @0F podemos =er las relaciones entre las clases de la capa de
persistenciaH eCtra$das del diseGo del so&tware:
(IA'RA/A @0. (IA'RA/A () CLA,), () LA CA*A () *)R,I,T)+CIA
Las siete clases de la capa de persistencia son: o o o o o o o <OqOptions.Aa=a:
Clase donde almacenamos las opciones del ,istema. <Oq,itio.Aa=a: Clase de
#estin 8 persistencia de la l#ica de los ,itios. <Oq<ot.Aa=a: Clase de #estin
8 persistencia de la l#ica de los <ots. <OqLe=el.Aa=a: Clase de #estin 8
persistencia de los +i=eles de )Ctraccin. <OqKorXminer.Aa=a: Clase de #estin 8
persistencia de los KorXminers. <Oq*attern.Aa=a: Clase de #estin 8 persistencia
de los *atrones. <OqLaunc.in#.Aa=a: Clase de #estin 8 persistencia de la l#ica
de los lan!amientos.
P.P.5 (ia#rama de clases de la capa de ser=icios )n el dia#rama de clases de la
capa de ser=icios podemos =er de color A!ul sus componentes. Adem-s se inclu8en
al#unas clases de otras capas para poder =er como se relacionan entre ellasH 8a
4ueH a parte del ControladorH la capa de ser=icios puede ser in=ocada desde la
l#ica de ne#ocio:
21P
(IA'RA/A @R. (IA'RA/A () CLA,), () LA CA*A () ,)R>ICIO,
Las siete clases de la capa de ser=icios son: o o o o o o o ,)qComm/ana#er.Aa=a:
Clase controladora de las coneCiones. ,)q;ile/ana#er.Aa=a: Clase controladora de
soporte a la #estin de &ic.eros. ,)q,.uttle.Aa=a: Clase 4ue reali!a el ser=icio
Lan!adera. ,)q<ot,er=er.Aa=a: Clase 4ue #estiona el ,er=idor de <ots.
,)q<otConnection.Aa=a: Clase de #estin de coneCin con un ,.uttle<ot.
,)q<ot.Aa=a: Clase complementaria a <Oq<ot.Aa=aH contiene m%todos 4ue solo se
utili!an en modo ser=icio. ,)q/aintenance.Aa=a: Clase 4ue implementa un
tempori!ador. (epende del oAeto 4ue lo in=o4ueH .ar- unas acciones u otras.
P.D
Implementacin de los Casos de Uso
La ma8or parte del pro8ecto se .a diseGado mediante metodolo#$a orientada a
oAetos B*OOF. )sto .ace 4ue la implementacin de los casos de Uso se consi#a
directamente a tra=%s de los dia#ramas de colaoracin del Cap$tulo 6. Ja=a 2.0
es el len#uaAe utili!ado en la capa de ne#ocioH deido 4ue es un len#uaAe
orientado a oAetos ideal para implementar nuestro diseGo. Los m%todosH
=ariales 8 =isiilidades son reco#idos de los mensaAes 4ue eCisten entre los
componentes. Adem-sH podemos =er las interacciones entre los m%todos &acilitando
as$ la pro#ramacin de los mismos. ,e#uidamente eCplicaremos la utili!acin del
so&tware implementado durante la reali!acin de este pro8ecto. ,e mostrar-n
#r-&icos 8 &ra#mentos de cdi#o &uente para meAorar la 21D
comprensin de la implementacin de sus &uncionalidades. ,e re&erencian entre
corc.etes 8 en =erde TsU los &ra#mentos de las im-#enes incluidas en la
eCplicacin.
P.D.2 Administracin de los ,itios Los casos de uso crear 8 modi&icar sitios se
inician a tra=%s de la inter&a! #r-&ica. *ara in=ocarlos se necesita acceder a
la pantalla del Administrador de ,itiosH para ello pulsaremos el otn ,itios de
la pantalla principal T2U:
CA*TURA () *A+TALLA 5R. <OT"+ ()L A(/I+I,TRA(OR () ,ITIO,
21@
Al pulsar el otn nos aparecer- la =entana del Administrador de ,itios. )n ella
podemos iniciar dos casos de uso Crear ,itio T5U 8 /odi&icar ,itio T6U:
CA*TURA () *A+TALLA 57. A(/I+I,TRA(OR () ,ITIO,
Crear ,itio se in=oca con el otn +ue=o T5U de la pantalla principal 8
/odi&icar ,itios al pulsar encima de un ,itio eCistente en la lista del
repositorio T6U. )l si#uiente cdi#o pertenece a un &ra#mento de la
implementacin de la inter&a! del otn:
C"(I'O ;U)+T) P. <OT"+ +U)>O
Una =e! iniciados amos casos de usoH el usuario puede modi&icar los datos
#enerales del ,itio. )stos son +omreH (ominio 8 (escripcin del ,itio TPU:
210
CA*TURA () *A+TALLA 61. CO+;I'URACIO+ () U+ ,ITIO
A continuacinH el usuario puede introducir la URL del ,cript 4ue ser- eAecutado
sore el sitio. ,e .a de indicar si el ,cript es eCterno o es un ,.uttle<ot
creado por el (iseGador (e <ots. )n caso de ser #enerado por nuestro so&tware
podr- seleccionar el ,.uttle<ot 4ue desea eAecutar TDU. Una =e! introducido los
datosH el sistema nos deAar- pro#ramar lan!amientos pulsando el otn b del
panel de lan!amientos T@U:
CA*TURA () *A+TALLA 62. CO+;I'URACI"+ () U+ LA+LA/I)+TO
Al pulsar el otn bH nos aparecer- la inter&a! AuCiliar de +ue=os Lan!amientos.
)n ella podremos introducir la con&i#uracin del lan!amientoH concretamente el
usuario puede con&i#urar: )l panel del ,.uttle<ot T0U: ,e des.ailita
autom-ticamente si se .a seleccionado un ,cript eCterno. )n esta !ona de la
pantalla se puede con&i#urar el +i=el InicialH )l +i=el de )Ctraccin 8 las
opciones del lan!amiento 4ue inclu8en la posiilidad de des.ailitar partes del
al#oritmo del ,.uttle<ot o modi&icar su comportamiento. *ro#ramacin del
calendario de lan!amiento: )n este panel podemos con&i#urar la &ec.a 8 .ora de
lan!amiento TRU. Tami%n nos posiilita poder .acer lan!amientos diarios .asta
una &ec.a determinada T7U. 21R
2D2
2D0
(urante los cinco meses del pro8ectoH con los medios 4ue .emos tenido al alcance
8 los conocimientos ad4uiridos en la carreraH se .a tratado de aportar la
solucin tecnol#ica m-s completa 4ue el autor .a saido diseGar e implementar.
,e .a intentado .acer un eAercicio completo de in#enier$a: (esde la &ormulacin
del prolema .asta su solucin implementadaH siendo ,.uttle el resultado
otenido.
2@1
>III.
'LO,ARIO
Actor: (emandante de una accin o caso de uso del sistemaH normalmente es el
propio usuario a tra=%s de la inter&a!. Administrador de un e4uipo: Usuario
t%cnico con credenciales para con&i#urar un sistema operati=o o aplicacin.
Administrador del ,istema: >er ,.uttleAdmin. App: Aplicacin de so&twareH
normalmente una aplicacin para tel%&onos inteli#entes. AraGa we: >er crawler.
Mrea de responsailidad: Mrea de procesos 4ue es asi#nada a un mdulo.
Ar4uitectura: (e&ineH de manera astractaH los componentes 4ue lle=an a cao
al#una tarea de computacinH sus inter&aces 8 la comunicacin entre ellos.
<enc.marXin#: T%cnica de /arXetin# 4ue consiste en a=eri#uar 4u% acciones toma
la competencia. <ot: ,cript 4ue simula el comportamiento .umano para resol=er
una tarea encomendada. <uscador: *-#ina we o aplicacin 4ue se utili!a para
uscar in&ormacin. <uscar Bmediante un uscadorF: Accin de consultar una
&uente de datos 8 o&recerla a un usuario. Capa de ne#ocio: Capa de clases 4ue
contiene la l#ica del pro#rama. Capa de persistencia: ,ucapa de la capa de
ne#ocio encar#ada de #uardar los datos entre eAecucin 8 eAecucin de un
pro#rama. Capa de ser=icio: ,ucapa de la capa de ne#ocio encar#ada de pro=eer
ciertos ser=icios al resto de capas. Capa =ista: Capa 4ue contiene las clases
necesarias para mostrar la inter&a! #r-&ica e interactuar con el controlador de
la capa de +e#ocio. Clase: Astraccin de un oAeto cuando se pro#rama se#Vn el
paradi#ma de orientacin a oAetos. Codi&icacin UT;R: &ormato de codi&icacin
de caracteres Unicode e I,O 21@P@ 4ue utili!a s$molos de lon#itud =ariale.
2@2
Concepto elemental: Concepto 4ue de&ine a #randes ras#os un oAeto astracto 4ue
representa una tareaH datos 8ao un oAeti=o 4ue resuel=e un prolema de una
&orma conceptual. Controlador: Componente de la capa de ne#ocio 4ue comunica una
inter&a! con una capa o conAunto de clases. Crawler: ,o&tware de rastreo de
in&ormacin de Internet. Crawlin# so&tware: &amilia de so&tware dedicada al
rastreo de in&ormacin en Internet. C,>: Arc.i=o de teCto est-ndar separado por
comas BComma separated =aluesF. (irectorio: /otor de Vs4ueda por cat-lo#o.
)4uipo: Ordenador o m-4uina 4ue inter=iene en el sistema. )Cpresin re#ular: Una
eCpresin re#ular es una eCpresin 4ue descrie un conAunto de cadenas sin
enumerar sus elementos. ;iltros: ConAunto de restricciones 4ue un usuario puede
con&i#urar durante el diseGo de un ,.uttle<ot. ;rontera de rastreo: ConAunto de
linXs pertenecientes a un ni=el de un sitio we. ;uente de in&ormacin: Lu#ar
donde se almacena cierta in&ormacin. Ittp: *rotocolo usado en la transaccin de
p-#inas we en el Korld Kide Ke. IndeCador: Aplicacin 4ue indeCa in&ormacin
en una ase de datos. Lan!amiento: Accin de eAecutar un script en una .ora
determinada. /iner$a de (atos: )s un campo de las ciencias de la computacin
re&erido al proceso 4ue intenta descurir patrones en #randes =olVmenes de
conAuntos de datos. /dulo: Aplicacin o ampliacin 4ue complementa un sistema
de aplicaciones. /ontar: Accin de con&i#urar 8 construir un sistema de arc.i=os
para una aplicacin pre#enerada. /otor de Vs4ueda: >er uscador. +i=el del
sitio: Un ni=el es la pro&undidad a la cual se encuentra una cierta p-#ina en un
sitio we. *-#ina &uente: *-#ina donde eCisten datos potenciales. 2@5
*arser: T%cnica in&orm-tica orientada al reconocimiento de teCto. *atrn: )s un
conAunto de re#las 4ue pueden ser usadas para crear o #enerar entidades o partes
de una entidad. *ol$ticas de uen uso: ConAunto de recomendaciones para no
ocasionar incidencias t%cnicas a terceros. *ortale: ;uncionalidad para
trasladar aplicaciones de un e4uipo a otro. *rincipio de &leCiilidad: *rincipio
por el cual se intenta adaptar un producto al ma8or nVmero de usos posiles por
parte de un usuario. *rotocolo de eCclusin de roots: )s un m%todo no
=inculante para e=itar 4ue ciertos ots 4ue anali!an los sitios Ke u otros
roots 4ue in=esti#an todo o una parte del acceso de un sitio KeH pVlico o
pri=adoH a#re#uen in&ormacin innecesaria a los resultados de Vs4ueda.
*rotocolo: ConAunto de est-ndares 4ue controlan una secuencia de mensaAes 4ue
ocurren entre dos e4uipos de una red. :uer8 processor: Aplicacin encar#ada de
reali!ar consultas de un usuario en una ase de datos. Rastrear: <uscar
in&ormacin con ciertos patrones en Internet. Rastreador: >er crawler.
Roots.tCt: >er *rotocolo de eCclusin de roots. ,cript: )s un arc.i=o 4ue
contiene un conAunto de ordenes en un len#uaAe secuencial 4ue por lo #eneral se
almacena en un arc.i=o de teCto plano. ,earc. en#ine: >er uscador. ,eed: >er
semilla. ,emilla: *rimera p-#ina de eCploracin de un crawler. ,.uttle /8 ,:L
IndeCer: IndeCador pre#enerado por ,.uttle capa! de indeCar los resultados en
una ase de datos /8,:L. ,.uttleAdmin: Aplicacin administradora de nuestro
sistema. ,.uttle<ot: <ot pre#enerado por ,.uttle capad de eCtraer in&ormacin de
sitios we. ,istema de aplicaciones: ConAunto de aplicaciones 4ueH AuntasH
resuel=en un prolema.
2@6
2@P
I?.
2.
R);)R)+CIA,
NACT)OH A,OCIACI"+ () CU)>A, TUR,TICA,H .ttp:aawww.cue=asturisticas.comH )nero
de 5126. NOri#en del nomre :uipuOH U+I>)R,I(A(
.ttp:aawww.unal.edu.coa4uipua4uees..tmH )nero de 5126. +ACIO+AL () COLO/<IAH
5.
6.
tArc.aeolo#ists .a=e &ound w.at t.e8 elie=e to e t.e site o& t.e Lirar8 o&
AleCandriatH <<C +)K,H .ttp:aanews.c.co.uXa5a.iascienceanaturea6010@P2.stmH 25
de /a8o de 511P. N)l tel%&ono se in=ent en la IaanaOH Jos% Antonio Lo!ano
TeruelH CI)+CIA Q ,ALU(H .ttp:aaciencia8salud.la=erdad.esa6q6q21..tmlH 61 de
Julio de 5115. NJo.n Lo#ie <aird B2RRR 3 27P@FOH <<C Z
.istor8a.istoricq&i#uresaairdqlo#ie.s.tmlH )nero de 5126. II,TORQH
.ttp:aawww.c.co.uXa
P.
D.
@.
NT.e Korld Kide ,i!eOH TI) KORL( KI() ,IL)H .ttp:aawww.t.eworldwidesi!e.comH
A#osto de 5125 NvCmo crear un uscador como 'oo#le`OH Amado /artinH <LO',*OTH
.ttp:aaamadomartin.lo#spot.com.esa511@a17acomo3crear3un3uscador3como3
#oo#le..tmlH @ de ,eptiemre de 511@. N)&&icient Crawlin# T.rou#. URL Orderin#OH
C.o Jun#.oo 8 Iector 'arcia3/olinaH ,TA+(;OR( U+I>)R,ITQH
.ttp:aailpus.stan&ord.edu:R171a6P0aH 57 de (iciemre de 511R. NImpro=ement o&
IIT, ased al#orit.msOH TI) )L)>)+TI I+T)R+ATIO+AL KORL( KI() K)< CO+;)R)+C)H
.ttp:aawww5115.or#aC(RO/are&ereeda@P6anode2..tmlH 2R de ;erero de 5115. NT.e
*a#eRanX Citation RanXin#: <rin#in# Order to t.e KeOH C.o Jun#.oo 8 Iector
'arcia/olinaH ,TA+(;OR( U+I>)R,ITQH .ttp:aailpus.stan&ord.edu:R171aP55a2a27773
@@.pd&H 57 de )nero de 277R. NIow To <uild A <asic Ke Crawler To *ull
In&ormation ;rom A KesiteOH James <ruceH .ttp:aawww.maXeuseo&.comata#auild3
asic3we3crawler3pull3in&ormation3wesiteaH 21 de (iciemre de 5121. NCrawlin#
de Iidden KeOH Ricardo <ae!a QatesH
.ttp:aawww.ciw.clawordpressawpcontentauploadsa511Ra1Racapitulo5.pd&H AGo 511@.
NAout aroots.tCtOH TI) K)< RO<OT, *A')H
.ttp:aawww.rootstCt.or#arootstCt..tmlH 56 de A#osto de 5121.
0.
R.
7.
21.
22.
25.
26.
2@D
2P.
NIT/L 8 ?/LOH Carlos ,errano3CincaH U+I>)R,I(A( ()
.ttp:aacierconta.uni!ar.esaeco&inadrupal2a.tml383CmlH 62 de )nero de 5125.
LARA'OLAH
2D.
NIT/L *arsin# and ,creen ,crapin# wit. t.e ,imple IT/L (O/ lirar8OH )riX
Kur!erH .ttp:aanet.tutsplus.comatutorialsap.pa.tml3parsin#3and3screen3scrapin#3
wit.3t.e3simple3.tmldom3lirar8aH 52 de /a8o de 5125. N/asterin# Re#ular
)CpressionsOH Je&&re8 ;riedlH OhR)ILLQ /)(IAH )nero de 2770H 6@R pa#sH I,<+ 23
D@D7535D036. NComputer +etworXin#: A Top3(own Approac.OH James ;. eurose 8 eeit.
w. RossH Dx )dicinH *)AR,O+ A((I,O+3K),L)QH 027 pa#sH I,<+ 70R3RP30R57322737.
N*roAect )stimation wit. Use Case *ointsOH Ro8 ClemH CO() *ROJ)CTH
.ttp:aawww.codeproAect.comaArticlesa7726a*roAect3)stimation3wit.3Use3Case3
*ointsH 55 de /ar!o de 511D.
2@.
20.
2R.
?.
<I<LIO'RA;A
(eseamos destacarH adem-s de las re&erenciasH la si#uiente ilio#ra&$a:
NIT/L *arsin# and ,creen ,crapin# wit. t.e ,imple IT/L (O/ lirar8OH )riX
Kur!erH .ttp:aanet.tutsplus.comatutorialsap.pa.tml3parsin#3and3screen3scrapin#3
wit.3t.e3simple3.tmldom3lirar8aH 52 de /a8o de 5125. N/asterin# Re#ular
)CpressionsOH Je&&re8 ;riedlH OhR)ILLQ /)(IAH )nero de 2770H 6@R pa#sH I,<+ 23
D@D7535D036. NComputer +etworXin#: A Top3(own Approac.OH James ;. eurose 8 eeit.
w. RossH Dx )dicinH *)AR,O+ A((I,O+3K),L)QH 027 pa#sH I,<+ 70R3RP30R57322737.
62 de /ar!o de 5117.
2@@
?I.
+(IC) ()TALLA(O
ndice de contenido
I.
I+TRO(UCCI"+ ...................................................................
................................................................................
............. D
2.2 2.5 2.6 2.P
II.
<R)>) II,TORIA ()L TRATA/I)+TO ()
(ATO, ....................................................................... D
O<J)TI>O ()L
*ROQ)CTO .......................................................................
............................ 0 JU,TI;ICACI"+ ()L
*ROQ)CTO .......................................................................
..................... R ,IUTTL): U+ CRAKL)R >)RTICAL
CO+;I'URA<L) ..................................................................
7
),TA(O ()L
ART) ...........................................................................
............................................................................ 2P
5.2
5.2.2 5.2.5 5.2.6 5.2.P
I+T)R+)T Q LO, /OTOR), ()
<S,:U)(A .......................................................................
.... 2P
<uscadores
Aer-r4uicos ....................................................................
...................................................................... 2P
(irectorios ....................................................................
................................................................................
............... 2D
/etauscadores .................................................................
................................................................................
....... 2@ /otores
>erticales......................................................................
..............................................................................
2@
5.5
5.5.2 5.5.5 5.5.6 5.5.P 5.5.D 5.5.@
CRAKL)R, .......................................................................
............................................ 20
*oliticas de
rastreo ........................................................................
........................................................................... 2R
La parte oculta de la
we ............................................................................
........................................................... 52 ,itemaps *rotocol
................................................................................
..................................................................... 52 <ots de
&ormularios ....................................................................
............................................................................. 55
)l reconocimiento de la
in&ormacin ....................................................................
........................................... 56 Comparati=a de so&tware
lire ..........................................................................
................................................. 5D
III. ),TRUCTURA Q
(I,)JO..........................................................................
.................................................................... 57
6.2
6.2.2 6.2.5 6.2.6 6.2.P 6.2.D 6.2.@
A+MLI,I,
I+ICIAL ........................................................................
.................................... 57
Conceptos
elementales ....................................................................
....................................................................... 57
*roceso
elemental ......................................................................
..............................................................................
61 (iseGo
/odular.........................................................................
................................................................................
. 62 (esarrollo
M#il............................................................................
................................................................................
62 )s4uema #eneral de la ar4uitectura del
,istema ........................................................................
................ 65 >isin distriuida del
sistema ........................................................................
..................................................... 66
6.5
6.5.2 6.5.5 6.5.6 6.5.P
,IUTTL)<OT .....................................................................
........................................... 6D
La in&ormacin (e un
,ite ...........................................................................
.......................................................... 6@ +i=eles de un
,itio ..........................................................................
.......................................................................... 6@
Al#oritmos del
script .........................................................................
...................................................................... 60
Iniciali!acin 8 sistema de
arc.i=os .......................................................................
.......................................... PP
6.6
6.6.2 6.6.5 6.6.6
)L A(/I+I,TRA(OR: LA
LA+LA()RA ......................................................................
............ P@
(ia#rama conceptual
U/L ............................................................................
........................................................ P0 ConteCto de
traaAo ........................................................................
.......................................................................... PR
Casos de
Uso ............................................................................
................................................................................
.... PR
6.P
6.P.2 6.P.5 6.P.6
)L A(/I+I,TRA(OR: )L (I,)JA(OR ()
<OT,....................................................................... @2
Ampliacin del (ia#rama conceptual
U/L ............................................................................
...................... @5 Ampliacin del ConteCto de
traaAo ........................................................................
......................................... @6 Ampliacin de los Casos de
Uso.............................................................................
............................................. @6
2@0
6.D
6.D.2 6.D.5 6.D.6
)L ,)R>I(OR () <OT,
TC* ............................................................................
.................. 0@
(ia#rama conceptual
U/L ............................................................................
........................................................ 0@ ConeCin
TC* ............................................................................
................................................................................
.. 00 Ampliacin de los Casos de
uso ............................................................................
.............................................. R2
6.@
6.@.P 6.@.D
,IUTTL) /Q ,:L
I+()?)R.........................................................................
..................... RP
Al#oritmo del
script .........................................................................
........................................................................ RD
Ampliacin de los Casos de
uso ............................................................................
.............................................. R@
6.0
I>.
(IA'RA/A () CLA,),
,I/*LI;ICA(O....................................................................
.............. R7
I/*L)/)+TACI"+ .................................................................
................................................................................
. 71
P.2
P.2.2 P.2.5 P.2.6 P.2.P
,O;TKAR)
UTILILA(O ......................................................................
............................... 71
Len#uaAes de
pro#ramacin ...................................................................
.............................................................. 71 <ases de datos
................................................................................
............................................................................ 72
)ntorno de
(esarrollo .....................................................................
....................................................................... 72
Ierramientas de
ser=icios ......................................................................
.............................................................. 75
P.5
P.5.2 P.5.5 P.5.6 P.5.P P.5.D P.5.@
I+T)R;AL
'RM;ICA ........................................................................
................................. 76
Inter&a! *antalla
principal ......................................................................
.............................................................. 76 Inter&a! del
Administrador de
,itios .........................................................................
....................................... 7P Inter&a! AuCiliar +ue=o
Lan!amiento ....................................................................
.......................................... 7D (iseGador de
<ots ...........................................................................
.......................................................................... 7@
Asistente de
*atrones .......................................................................
...................................................................... 7R
*antalla de
lan!amiento ....................................................................
..................................................................... 77
P.6
P.6.2
CA*A ()
>I,TA ..........................................................................
.................................. 211
(ia#rama de clases de la capa de
=ista ..........................................................................
................................216
P.P
P.P.2 P.P.5
CA*A ()
+)'OCIO ........................................................................
............................... 216
(ia#rama de clases de la Capa de
*ersistencia ...................................................................
.......................21P (ia#rama de clases de la capa de
ser=icios ......................................................................
...........................21P
P.D
P.D.2 P.D.5 P.D.6 P.D.P P.D.D P.D.@ P.D.0 P.D.R P.D.7
I/*L)/)+TACI"+ () LO, CA,O, ()
U,O .........................................................................
21D
Administracin de los
,itios..........................................................................
.....................................................21@ Control de la Lan!adera
................................................................................
.......................................................222 (iseGar
,.uttleots.....................................................................
...........................................................................225
Lan!amiento manual de un
,.uttle<ot .....................................................................
....................................22R /ontar un
,.uttle<ot .....................................................................
......................................................................256
'enerar un ,.uttle<ot
*ortale .......................................................................
................................................25D /ostrar
Resultados .....................................................................
...........................................................................250
Lan!ar el
IndeCador ......................................................................
.........................................................................261
Con&i#uracin
'eneral ........................................................................
..................................................................265
P.@
>.
(IA'RA/A ')+)RAL ()
CLA,), .........................................................................
............ 26D
R),ULTA(O, .....................................................................
................................................................................
........... 26@
D.2 D.5 D.6
>I.
T),T () LA
LA+LA()RA ......................................................................
........................... 26@ T),T TC* () LA >I,I"+
(I,TRI<UI(A ....................................................................
............ 260 ,IUTTL) ,)ARCI )+'I+): U+ ,)+CILLO <U,CA(OR T)/MTICO ()
A>)+TURA .......................... 2P1
A,*)CTO,
)CO+"/ICO, .....................................................................
................................................................ 2P0
@.2 @.5
CO,T) ORI)+TATI>O ()L
*ROQ)CTO .......................................................................
.......... 2P0 >IA<ILI(A( ()L
*RO(UCTO .......................................................................
..................... 2D1
2@R
@.5.2 @.5.5 @.5.6 @.5.P >II. >III. I?. ?. ?I.
Idea de
ne#ocio ........................................................................
................................................................................
2D1 (ia#rama
(A;O ...........................................................................
............................................................................2D1
An-lisis de
ne#ocio ........................................................................
.........................................................................2D2
Oportunidad de
ne#ocio ........................................................................
..............................................................2D5
CO+CLU,I"+ .....................................................................
................................................................................
.......2D6
'LO,ARIO .......................................................................
................................................................................
..........2@2
R);)R)+CIA, ....................................................................
................................................................................
...........2@D
<I<LIO'RA;A ...................................................................
................................................................................
..........2@@ +(IC)
()TALLA(O ......................................................................
.............................................................................2@0
ndice de ilustraciones
ILU,TRACI"+ 2. *I+TURA RU*),TR) ()
ALTA/IRA .......................................................................
.....................D ILU,TRACI"+ 5. I/*R)+TA () 'UT)+<)R'. 'RA<A(O ()L ,I'LO
?>. ......................................................@ ILU,TRACI"+ 6. LO'O
()
JA>A ...........................................................................
.......................................................... 71 ILU,TRACI"+ P.
LO'O ()
*I* ............................................................................
........................................................... 71 ILU,TRACI"+ D.
LO'O ()
/Q,:L ..........................................................................
....................................................... 72 ILU,TRACI"+ @. LO'O
()
+)T<)A+, .......................................................................
................................................. 72 ILU,TRACI"+ 0. LO'O ()
)A,Q*I* ........................................................................
.................................................... 75 )l autor de la
ilustracin 2H Locutus <or#H .a lierado los derec.os de autor de dic.a
&oto#ra&$a. La ilustracin 5 carece de derec.os de autor deido a su anti#dedad.
)l resto de ilustraciones son lo#otipos de productos 4ue pertenecen a
or#ani!aciones 8 empresas. )stas im-#enes son utili!adas para ilustrar sus
productos 8 est-n suAetas a los derec.os de autor de las or#ani!aciones
propietarias de dic.os lo#os.
ndice de #r-&icos
'RM;ICO 2. TA/AJO () LO, +(IC), () 'OO'L)H <I+' Q
QAIOOY ............................................................ 2D 'RM;ICO
5. R),ULTA(O, () LA )J)CUCI"+ () TR),
,IUTTL)<OT,..................................................... 2PP 'RM;ICO 6.
*M'I+A, K)< >I,ITA(A, *OR LO,
,IUTTL)<OT, .................................................................
2PD 'RM;ICO P. (I;)R)+CIA, )+ )L TI)/*O ()
)J)CUCI"+ ......................................................................
......... 2P@ 'RM;ICO D. R)+(I/I)+TO ()L AL'ORIT/O () ;RO+T)RA, () *RO;U+(I(A(
B*M'I+A,
>I,ITA(A,F .....................................................................
................................................................................
...................... 2D7 'RM;ICO @. R)+(I/I)+TO ()L AL'ORIT/O () ;RO+T)RA, ()
*RO;U+(I(A( BTI)/*OF...... 2D7 Los #r-&icos .an sido reali!ados con /icroso&t
O&&ice 5121 aAo licencia de estudiante.
2@7
ndice de dia#ramas
(IA'RA/A 2. 'OO'L) Q ,U
CRAKL)R ........................................................................
................................................. 0 (IA'RA/A 5. ;U+CIO+A/I)+TO
()
,IUTTL) ........................................................................
................................ 7 (IA'RA/A 6. ;U+CIO+A/I)+TO ()TALLA(O ()
,IUTTL) ........................................................................
. 21 (IA'RA/A P. ;U+CIO+A/I)+TO () U+
CRAKL)R.........................................................................
................... 20 (IA'RA/A D. *ROC),O ()
*AR,I+' ........................................................................
.................................................. 5P (IA'RA/A @. *ROC),O
)L)/)+TAL ()L
,I,T)/A ........................................................................
.................... 61 (IA'RA/A 0. *LA+I;ICACI"+ Q *LALO, ()L
*ROQ)CTO .......................................................................
......... 65 (IA'RA/A R. ),:U)/A ')+)RAL () LA AR:UIT)CTURA ()L
,I,T)/A ................................................ 65 (IA'RA/A 7. >I,I"+
(I,TRI<UI(A.....................................................................
........................................................ 66 (IA'RA/A 21.
(I;)R)+T), (I,TRI<UICIO+), ()L
,I,T)/A ......................................................................
6P (IA'RA/A 22. +I>)L), () U+
,ITIO ..........................................................................
............................................... 60 (IA'RA/A 25. AL'ORIT/O ()
;RO+T)RA, ()
*RO;U+(I(A( ..................................................................
6R (IA'RA/A 26. AL'ORIT/O () )?TRACCI"+ ()
(ATO,...........................................................................
....... 67 (IA'RA/A 2P. CO+,TRUCCI"+ ()
*ATRO+), .......................................................................
.............................. P6 (IA'RA/A 2D. ),:U)/A ()L ,I,T)/A ()
ARCII>O, .......................................................................
.............. PD (IA'RA/A 2@. /O()LO CO+C)*TUAL ;A,)
2 ..............................................................................
........................ P0 (IA'RA/A 20. CA,O, () U,O ()L ,I,T)/A () LA ;A,)
2 .............................................................................
PR (IA'RA/A 2R. (IA'RA/A, () I+T)RACCI"+ CR)AR ,ITIO Q /O(I;ICAR
,ITIO ................................ P7 (IA'RA/A 27. (IA'RA/A () COLA<ORACI"+
+)K
,IT) ...........................................................................
... D1 (IA'RA/A 51. (IA'RA/A () COLA<ORACI"+ U/L /O(I;Q
,IT)............................................................. D2 (IA'RA/A
52. (IA'RA/A () COLA<ORACI"+ U/L A(( T)/*
LAU+CII+' ....................................... D5 (IA'RA/A 55. (IA'RA/A ()
COLA<ORACI"+ U/L
,A>),IT) .................................................................... DP
(IA'RA/A 56. (IA'RA/A () I+T)RACCI"+ ,TART
,IUTTL)..................................................................... DP
(IA'RA/A 5P. (IA'RA/A () COLA<ORACI"+ U/L ,TART
,IUTTL) ..................................................... D@ (IA'RA/A 5D.
(IA'RA/A () I+T)RACCI"+ ,TO*
,IUTTL) .......................................................................
D@ (IA'RA/A 5@. (IA'RA/A () COLA<ORACI"+
,TO*,IUTTL) ....................................................................
D0 (IA'RA/A 50. (IA'RA/A () I+T)RACCIO+ R),)T
,IUTTL) ..................................................................... DR
(IA'RA/A 5R. (IA'RA/A () COLA<ORACI"+ U/L R),)T
,IUTTL) ...................................................... D7 (IA'RA/A 57.
(IA'RA/A () I+T)RACCI"+
/AI+T)+A+C) ....................................................................
... D7 (IA'RA/A 61. (IA'RA/A () COLA<ORACI"+ U/L
/AI+T)+A+C) ........................................................ @1 (IA'RA/A
62. /O()LO CO+C)*TUAL ()L (I,)JA(OR () <OT, B;A,)
5F........................................... @5 (IA'RA/A 65. +U)>O, CA,O, ()
U,O B;A,)
5F .............................................................................
..................... @6 (IA'RA/A 66. (IA'RA/A () I+T)RACCI"+ CR)AT) <OT a
/O(I;Q <OT ............................................. @P (IA'RA/A 6P.
(IA'RA/A () COLA<ORACI"+ U/L CR)AT)
<OT ............................................................. @D (IA'RA/A
6D. (IA'RA/A () COLA<ORACI"+ U/L /O(I;Q
<OT ............................................................. @@ (IA'RA/A
6@. (IA'RA/A () COLA<ORACI"+ U/L +)K
L)>)L ............................................................... @0
(IA'RA/A 60. (IA'RA/A () COLA<ORACI"+ U/L
A((T)/*KORe/I+)R....................................... @R (IA'RA/A 6R. (IA'RA/A
() COLA<ORACI"+ U/L A((
*ATT)R+, ....................................................... @7 (IA'RA/A 67.
(IA'RA/A () COLA<ORACI"+ U/L A((
KORe/I+)R .................................................. 01 (IA'RA/A P1.
(IA'RA/A () COLA<ORACI"+ U/L ,A>)
<OT ................................................................... 02
(IA'RA/A P2. (IA'RA/A () I+T)RACCI"+ LAU+CI
<OT............................................................................
02 (IA'RA/A P5. (IA'RA/A () COLA<ORACI"+ U/L LAU+CI
<OT ............................................................ 05 (IA'RA/A P6.
(IA'RA/A () I+T)RACCI"+ <UIL(
<OT ............................................................................
.... 06 (IA'RA/A PP. (IA'RA/A () COLA<ORACI"+ U/L <UIL(
<OT ................................................................. 06 201
(IA'RA/A PD. (IA'RA/A () I+T)RACCI"+ /Ae)
*ORTA<L) ................................................................... 0P
(IA'RA/A P@. (IA'RA/A () COLA<ORACI"+ U/L /Ae)
*ORTA<L) .................................................... 0P (IA'RA/A P0.
(IA'RA/A () I+T)RACCI"+ ,IOK
R),ULT, ......................................................................
0D (IA'RA/A PR. (IA'RA/A () COLA<ORACI"+ U/L ,IOK
R),ULT, ....................................................... 0D (IA'RA/A P7.
(IA'RA/A CO+C)*TUAL ()L ,)R>I(OR ()
<OT, ............................................................. 0@ (IA'RA/A
D1. /)+,AJ), ()
,IUTTL).........................................................................
............................................ 00 (IA'RA/A D2. I+T)RCA/<IO ()
/)+,AJ), ()
,IUTTL).........................................................................
..... 0R (IA'RA/A D5. (IA'RA/A () I+T)RCA/<IO () /)+,AJ), () ,IUTTL) CO+ (ATO,
R)AL), . 07 (IA'RA/A D6. *A:U)T) TC* () +U),TRA
A*LICACI"+ .....................................................................
............ R1 (IA'RA/A DP. A/*LIACI"+ () LO, CA,O, ()
U,O ............................................................................
............... R2 (IA'RA/A DD. (IA'RA/A () I+T)RACCI"+ A(( <OT
CO++)CTIO+....................................................... R5 (IA'RA/A
D@. (IA'RA/A () COLA<ORACI"+ U/L A(( <OT
CO++)CTIO+........................................ R6 (IA'RA/A D0. I+T)R;AL ()
,IUTTL) /Q ,:L
I+()?)R.........................................................................
....... RP (IA'RA/A DR. AL'ORIT/O ()
I+()?ACI"+ .....................................................................
.................................... RD (IA'RA/A D7. A/*LIACI"+ () LO, CA,O, ()
U,O B;A,)
6F ........................................................................ R@
(IA'RA/A @1. (IA'RA/A () I+T)RACCI"+ <UIL(
I+()?)R ......................................................................
R0 (IA'RA/A @2. (IA'RA/A () COLA<ORACI"+ <UIL(
I+()?)R.................................................................. R0
(IA'RA/A @5. (IA'RA/A () I+T)RACCI"+ /Ae) I+()?)R
*ORTA<L)............................................... RR (IA'RA/A @6. (IA'RA/A
() COLA<ORACI"+ /Ae) I+()?)R *ORTA<L) ..........................................
RR (IA'RA/A @P. (IA'RA/A () COLA<ORACI"+ LAU+CI
<OT ....................................................................... R7
(IA'RA/A @D. (IA'RA/A () CLA,),
,I/*LI;ICA(O ...................................................................
.................... R7 (IA'RA/A @@. (IA'RA/A () CLA,), () LA CA*A ()
>I,TA ..................................................................... 216
(IA'RA/A @0. (IA'RA/A () CLA,), () LA CA*A ()
*)R,I,T)+CIA................................................... 21P (IA'RA/A @R.
(IA'RA/A () CLA,), () LA CA*A ()
,)R>ICIO, ........................................................... 21D
(IA'RA/A @7. (IA'RA/A () CLA,),
')+)RAL.........................................................................
...................... 26D (IA'RA/A 01. CO+)?I"+ TC* )+TR) )L A(/I+I,TRA(OR Q U+
,IUTTL)<OT .............................. 260 (IA'RA/A 02. (I,)JO ()L /)+,AJ)
()L ,)R>I(OR ()
<OT, ................................................................. 260
(IA'RA/A 05. (A;O B()<ILI(A(),H A/)+ALA,H ;ORTAL)LA, Q
O*ORTU+I(A(),F ................... 2D1 (IA'RA/A 06. ;U+CIO+A/I)+TO ()
,IUTTL) ........................................................................
....................... 2D6 (IA'RA/A 0P. *ROC),O )L)/)+TAL ()
,IUTTL) ........................................................................
................ 2DP (IA'RA/A 0D. AL'ORIT/O () ;RO+T)RA, ()
*RO;U+(I(A( ............................................................... 2DP
(IA'RA/A 0@. AL'ORIT/O () )?TRACCI"+ ()
(ATO, ..........................................................................
..... 2DP (IA'RA/A 00. (IA'RA/A ')+)RAL () CLA,), JA>A
I/*L)/)+TA(A, ............................................ 2D@ (IA'RA/A 0R. (A;O
() U+ CA,O ;ICTICIO ()
CO/)RCIALILACI"+...................................................... 2D7 La
totalidad de los dia#ramas .an sido diseGados con /icroso&t >isio 5121.
ndice de cdi#o &uente
C"(I'O ;U)+T) 2. ,I,T)/A ()
AQU(A...........................................................................
...................................... 212 C"(I'O ;U)+T) 5. (),ACTI>AR )L *A+)L
()
;ILTRO, ........................................................................
....... 215 C"(I'O ;U)+T) 6. CAR'A () (ATO, A LA
I+T)R;AL .......................................................................
............. 215 C"(I'O ;U)+T) P. <OT"+
+U)>O ..........................................................................
................................................. 210 C"(I'O ;U)+T) D.
I+>OCACI"+ ()L /fTO(O
/O(I;Q,IT) .....................................................................
. 221 C"(I'O ;U)+T) @. I+ICIO ()L CA,O () U,O I+ICIAR
LA+LA()RA ......................................................... 222 202
C"(I'O ;U)+T) 0. <OT"+
'UAR(AR.........................................................................
.............................................220 C"(I'O ;U)+T) R. /fTO(O
R)C)*TOR () /)+,AJ), ()L ,)R>I(OR () <OT, ..............................251
C"(I'O ;U)+T) 7. )+>IO () U+ /)+,AJ) ()
,IUTTL).........................................................................
......251 C"(I'O ;U)+T) 21. CO+)?I"+ ITT* ()L
,IUTTL)<OT .....................................................................
.........255 C"(I'O ;U)+T) 22. /fTO(O
/OU+T<OT .......................................................................
....................................25D C"(I'O ;U)+T) 25. ')+)RACI"+ ARCII>O
LI*.............................................................................
...................250 C"(I'O ;U)+T) 26. /fTO(O /O,TRAR
R),ULTA(O, .....................................................................
.............25R C"(I'O ;U)+T) 2P. ATRI<UTO, () LA CLA,)
<OqO*TIO+,.JA>A ............................................................26P
C"(I'O ;U)+T) 2D. :U)RQ ,:L ()L /OTOR ()
<S,:U)(A ......................................................................2
P2 )l cdi#o &uente mostrado en la memoria es $nte#ramente eCtra$do del cdi#o
ori#inal de ,.uttleH pudiendo .aer sido simpli&icados para meAorar el
entendimiento del lector.
ndice de capturas de pantalla
CA*TURA () *A+TALLA 2.
,IUTTL)A(/I+ ...................................................................
....................................... 21 CA*TURA () *A+TALLA 5.
,IUTTL)<OT .....................................................................
........................................... 22 CA*TURA () *A+TALLA 6. ,IUTTL) /Q
,:L
I+()?)R ........................................................................
............ 22 CA*TURA () *A+TALLA P. <OT AT)+)AH R)ALILA(O (URA+T) LA
I+>),TI'ACI"+ ()L
*ROQ)CTO .......................................................................
................................................................................
........................ 56 CA*TURA () *A+TALLA D.
A,*,))e ........................................................................
.................................................. 5D CA*TURA () *A+TALLA @.
(ATA*ARAe,)ARCI ................................................................
................................. 5D CA*TURA () *A+TALLA 0.
K')T ...........................................................................
..................................................... 5D CA*TURA () *A+TALLA R.
I)RITRI? .......................................................................
................................................. 5@ CA*TURA () *A+TALLA 7.
IT:a(I' ........................................................................
................................................... 5@ CA*TURA () *A+TALLA 21.
ITTRACe.........................................................................
............................................. 5@ CA*TURA () *A+TALLA 22.
+UTCI ..........................................................................
................................................. 50 CA*TURA () *A+TALLA 25.
*I*CRAKL .......................................................................
........................................... 50 CA*TURA () *A+TALLA 26. I+T)R;AL
() U+
,IUTTL)<OT .....................................................................
... 6D CA*TURA () *A+TALLA 2P. *M'I+A ()L ,ITIO K)< TUAR)'
>IAT'), .................................................. 6@ CA*TURA ()
*A+TALLA 2D. *M'I+A ()L ,ITIO K)< () TUAR)'
>IAT'), ........................................... P6 CA*TURA () *A+TALLA 2@.
I+T)R;AL ()
,IUTTL)A(/I+....................................................................
...... P@ CA*TURA () *A+TALLA 20. I+T)R;AL 'RM;ICA ()L (I,)JA(OR ()
<OT, ......................................... @2 CA*TURA () *A+TALLA 2R.
*I*/QA(/I+ +O, /U),TRA )L CO+T)+I(O () LA <<<(................ RD CA*TURA ()
*A+TALLA 27. I/*L)/)+TACI"+ () ,IUTTL) CO+
+)T<)A+,.................................... 75 CA*TURA () *A+TALLA 51. *A+TALLA
*RI+CI*AL ......................................................................
..................... 76 CA*TURA () *A+TALLA 52. A(/I+I,TRA(OR ()
,ITIO, .........................................................................
...... 7P CA*TURA () *A+TALLA 55. +U)>O
LA+LA/I)+TO ....................................................................
...................... 7D CA*TURA () *A+TALLA 56. (I,)JA(OR () <OT, 3 *A+TALLA
() (I,)JO () R)COL)CCI"+ ()
LI+e,...........................................................................
................................................................................
............................... 70 CA*TURA () *A+TALLA 5P. A,I,T)+T) () *ATRO+),
,I/*L), ................................................................ 77
CA*TURA () *A+TALLA 5D. LA+LA/I)+TO () U+ <OT A TRA>f, () LA I+T)R;AL ()
LA+LA/I)+TO ....................................................................
................................................................................
.................. 77 CA*TURA () *A+TALLA 5@. *A+)L ()
AQU(A ..........................................................................
.........................212
205
CA*TURA () *A+TALLA 50. *A+)L () AQU(A AL *A,AR )L RAT"+ *OR )+CI/A () U+
CA/*O ..........................................................................
................................................................................
.......................................... 212 CA*TURA () *A+TALLA 5R. <OT"+ ()L
A(/I+I,TRA(OR () ,ITIO, .................................................. 21@
CA*TURA () *A+TALLA 57. A(/I+I,TRA(OR ()
,ITIO, .........................................................................
... 210 CA*TURA () *A+TALLA 61. CO+;I'URACIO+ () U+
,ITIO ........................................................................
21R CA*TURA () *A+TALLA 62. CO+;I'URACI"+ () U+
LA+LA/I)+TO .................................................... 21R CA*TURA ()
*A+TALLA 65. *RO'RA/AR U+ +U)>O
LA+LA/I)+TO ................................................... 217 CA*TURA ()
*A+TALLA 66. I+T)R;AL ()
CAL)+(ARIO......................................................................
........ 217 CA*TURA () *A+TALLA 6P. A(/I+I,TRA(OR ()
,ITIO, .........................................................................
... 221 CA*TURA () *A+TALLA 6D. LOCALILACI"+ ()L <OT"+
I+ICIAR ............................................................ 222 CA*TURA
() *A+TALLA 6@. LOCALILACI"+ () LO, <OTO+), *ARAR Q
R),)T ............................... 225 CA*TURA () *A+TALLA 60. LOCALILACI"+
()L <OT"+ <OT, .................................................................
225 CA*TURA () *A+TALLA 6R. (I,)JA(OR ()
<OT,............................................................................
............... 226 CA*TURA () *A+TALLA 67. *A+)L ,U*)RIOR () LA I+T)R;AL ()L
(I,)JA(OR () <OT, ...... 226 CA*TURA () *A+TALLA P1. *),TAJA, KORe/I+)R Q
;RO+T)RA, () RA,TR)O ......................... 226 CA*TURA () *A+TALLA P2. *A+)L
() (I,)JO ()L
KORe/I+)R .......................................................... 22P CA*TURA
() *A+TALLA P5. *M'I+A K)< () t)L
*)RI"(ICOt.................................................................. 22D
CA*TURA () *A+TALLA P6. C"(I'O ;U)+T) () U+A *M'I+A () t)L
*)RIO(ICOt ....................... 22D CA*TURA () *A+TALLA PP. A,I,T)+T) ()
*ATRO+), .......................................................................
......... 22@ CA*TURA () *A+TALLA PD. CA/*O ()
*ATR"+ .........................................................................
..................... 22@ CA*TURA () *A+TALLA P@. (I,)JO ()L AL'ORIT/O ()
;RO+T)RA, () *RO;U+(I(A( ........ 220 CA*TURA () *A+TALLA P0. LOCALILACI"+ ()L
<OT"+ <OT, ................................................................. 22R
CA*TURA () *A+TALLA PR. R)*O,ITORIO ()
,IUTTL)<OT, ...................................................................
22R CA*TURA () *A+TALLA P7. (),IA<ILITAR )+ LA+LA/I)+TO
/A+UAL ........................................... 22R CA*TURA () *A+TALLA D1.
)?TRACCI"+ )+ ,)/ILLA Q (),IA<ILITAR )+ LA+LA/I)+TO
/A+UAL .........................................................................
................................................................................
........................ 227 CA*TURA () *A+TALLA D2. LOCALILACI"+ ()L <OT"+
LA+LAR ........................................................... 227 CA*TURA
() *A+TALLA D5. CO+,OLA ()L
,I,T)/A ........................................................................
.............. 227 CA*TURA () *A+TALLA D6. U+ ,IUTTL)<OT )+
)J)CUCI"+ ...................................................................
252 CA*TURA () *A+TALLA DP. )?TRACCI"+ ()
I+;OR/ACI"+ ....................................................................
255 CA*TURA () *A+TALLA DD. LOCALILACI"+ ()L <OT"+
<OT, ................................................................. 256
CA*TURA () *A+TALLA D@. R)*O,ITORIO ()
<OT, ...........................................................................
............ 256 CA*TURA () *A+TALLA D0. LOCALILACI"+ ()L <OT"+
/O+TAR ......................................................... 25P CA*TURA ()
*A+TALLA DR. ARCII>O, )+ LA CAR*)TA ()L
,IUTTL)<OT ....................................... 25P CA*TURA () *A+TALLA D7.
LOCALILACI"+ ()L <OT"+
<OT, ................................................................. 25@
CA*TURA () *A+TALLA @1. LOCALILACI"+ ()L <OT"+
*ORTA<L) ..................................................... 25@ CA*TURA ()
*A+TALLA @2.LOCALILACI"+ ()L <OT"+
<OT, .................................................................. 250
CA*TURA () *A+TALLA @5. LOCALILACI"+ ()L <OT"+
R),ULTA(O, ................................................ 25R CA*TURA ()
*A+TALLA @6. LOCALILACI"+ ()L <OT"+
,ITIO,............................................................... 257
CA*TURA () *A+TALLA @P. <OT"+ *ARA /O,TRAR LO, SLTI/O, R),ULTA(O, () U+
LA+LA/I)+TO.....................................................................
................................................................................
............... 257 CA*TURA () *A+TALLA @D. ARCII>O C>, () R),ULTA(O, 3
/ICRO,O;T )?C)L 5121 ............... 261 CA*TURA () *A+TALLA @@. LOCALILACI"+
()L <OT"+ ,ITIO,...............................................................
261 CA*TURA () *A+TALLA @0. LOCALILACI"+ <OT"+ LA+LAR
I+()?A(OR .......................................... 262 CA*TURA () *A+TALLA @R.
)J)CUCI"+ ()L
I+()?A(OR ......................................................................
..... 262 CA*TURA () *A+TALLA @7. *I*/QA(/I+ +O, /U),TRA LA TA<LA () LA <A,) ()
(ATO, .. 265 206
CA*TURA () *A+TALLA 01. LOCALILACI"+ ()L <OT"+
O*CIO+),........................................................265 CA*TURA ()
*A+TALLA 02. *),TAJA, I+()?A(OR Q
<OT,)R>)R ........................................................266 CA*TURA ()
*A+TALLA 05. CO+;I'URACI"+ ()L
I+()?A(OR................................................................266
CA*TURA () *A+TALLA 06. CO+;I'URACI"+ ()L ,)R>I(OR ()
<OT, ................................................26P CA*TURA () *A+TALLA 0P.
>I()O ()L T),T R)*RO(UCI)+(O,) )+
>LC .........................................26@ CA*TURA () *A+TALLA 0D.
CO+>)RACI"+ CA*TURA(A CO+ KIR),IARe .......................................26R
CA*TURA () *A+TALLA 0@. *A:U)T) TC* () U+ /)+,AJ) ()
,IUTTL) ...........................................26R CA*TURA () *A+TALLA 00.
CO+T)+I(O ()L *A:U)T)
TC* ......................................................................267
CA*TURA () *A+TALLA 0R. (ATO, ()L
/)+,AJ) ........................................................................
...................267 CA*TURA () *A+TALLA 07. <U,CA(OR T)/MTICO ()
A>)+TURA .........................................................2P1 CA*TURA ()
*A+TALLA R1. R),U/)+ () LA <A,) () (ATO, /Q
,:L..................................................2P2 CA*TURA () *A+TALLA R2.
<S,:U)(A () O;)RTA, () )?CUR,IO+), AL eILI/A+JARO .........2P5 CA*TURA ()
*A+TALLA R5. R),ULTA(O () LA <S,:U)(A () )?CU)R,IO+), AL
eILI/A+JARO ....................................................................
................................................................................
................................................2P6 CA*TURA () *A+TALLA R6.
CO+TROL () LA LA+LA()RA () LA A*LICACI"+ A(/I+I,TRA(ORA ()L
,I,T)/A ........................................................................
................................................................................
................2DD CA*TURA () *A+TALLA RP. ,IUTTL) /Q ,:L
I+()?)R ........................................................................
.......2D@ CA*TURA () *A+TALLA RD. ,IUTTL) TR)eeI+' w A(>)+TUR) ,)ARCI
)+'I+).........................2DR
20P