Vous êtes sur la page 1sur 83

TTOL: Implementaci d'un crawler modular per a cercadors temtics.

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.

)n el mercado eCisten crawlers de so&tware lire para uscadores we


#eneralistas 8 &ocali!adosH pero no .emos encontrado so&tware si#ni&icati=o para
montar uscadores tem-ticos del tipo comparador de productos. ,e .a detectado
4ue la ausencia de este so&tware lire es deida principalmente a dos ra!ones:
)n primer lu#arH la tecnolo#$a utili!ada es di&erente respecto a los motores
#eneralistas o &ocali!ados. 'oo#le usca cominaciones de palaras 8 #uardan las
direcciones donde aparecen. )n camioH como =eremos m-s adelanteH un comparador
necesitar- reali!ar una ase de datos de los productos. )sto oli#a al crawler a
tener un sistema por el cual pueda reco#er m-s datos 4ue la propia direccin de
la p-#ina. )n se#undo lu#arH deido al au#e actual de este tipo de portales
tem-ticosH .an aparecido astantes comparadores como a#encias de =iaAes on3lineH
comparadores de precios o de se#uros. Los uscadores =erticales se est-n
con=irtiendo en un nue=o modelo de ne#ocio. (urante el pro8ecto se .a intentado
contactar Zin&ructuosamente3 con al#unas empresas 8 centros de desarrollo como
Qa.oo Las o Tri=a#o.
R
2.P
,.uttle: Un crawler =ertical con&i#urale
,.uttleH denominado as$ dada la metonimia con uno de sus procesosH es el sistema
diseGado e implementado durante la reali!acin de este pro8ecto. ,.uttle es un
crawler =ertical capa! de eCtraer in&ormacin tem-tica. )st- orientado
principalmente para poder acoplarlo a un uscador de car-cter comparador. (ada
su &leCiilidad puede ser tami%n utili!ado en Apps de ,mart.p.one 8 en -reas
pro&esionales como el marXetin# o la in=esti#acin cient$&icaH donde es usual
traaAar con &uentes de in&ormacin tem-tica. Con este so&tware podemos eCtraer
in&ormacin espec$&ica de sitios weH tales como preciosH .orarios o
descripciones. Las eCtracciones pueden ser pro#ramadas mediante un mecanismo
tempori!ador de lan!amiento de e=entos.
(IA'RA/A 5. ;U+CIO+A/I)+TO () ,IUTTL)
)l sistema se compone de tres aplicaciones di&erentes 4ue reali!an procesos
se#Vn las -reas de responsailidad asi#nadas. )stas -reas se estalecieron
durante el an-lisis inicial del diseGo. )n concretoH ,.uttle consi#ue ataAar el
prolema del comportamiento del crawler mediante la auto#eneracin de crawlers
en len#uaAe *I*H los cuales son Nlan!adosO a Internet cada cierto tiempo:
,.uttleH inicialmente contiene solo una aplicacin administradora. )n la
con&i#uracin #enera los cdi#os de dos pro#ramas m-s: ,.uttle<ot 8 ,.uttle /8
,:L IndeCer. )l primeroH es un root diseGado por el usuario 4ue simula el
comportamiento .umanoH =isitando sitios we 8 eCtra8endo in&ormacinW el
se#undoH es un indeCador 4ue #uarda los resultados eCtra$dos en una ase de
datos /8 ,:L. Los resultados tami%n se #uardan en C,>H un &ormato de arc.i=os
de teCto estandari!ado:
7
(IA'RA/A 6. ;U+CIO+A/I)+TO ()TALLA(O () ,IUTTL)
Aplicaciones diseGadas: ,.uttleAdmin: Aplicacin 4ue administra el sistema.
Contiene un proceso capa! de lan!ar crawlers cada cierto tiempo. Adem-s inclu8e
&uncionalidades como un (iseGador de crawlers 8 un ser=idor TC*. ,e .a diseGado
con la metodolo#$a orientada a oAetos e implementado en Ja=a 0.2.
CA*TURA () *A+TALLA 2. ,IUTTL)A(/I+
21

,.uttle<ot: )s una aplicacin we con&i#urale capa! de eCtraer la in&ormacin


de sitios we. Los ,.uttle<ots pueden aloAarse en e4uipos distintos del
Administrador. Cuando &inali!aH el AdministradorH descar#a los resultados del
e4uipo del ,.uttle<otH as$ dotamos al sistema de una =isin distriuida. )sta
aplicacin est- diseGada en *I* 8 es replicada 8 con&i#urada se#Vn el diseGo del
usuario.
CA*TURA () *A+TALLA 5. ,IUTTL)<OT

,.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

Repositorio de resultados distriuido 8 centrali!ado: Aun4ue los ,.uttle<ots


#uardan el arc.i=o de resultados en su e4uipoH el ,istema tami%n los #uarda en
el e4uipo del administrador. Resultados en arc.i=os le#iles: Los resultados se
#uardan en &ormato C,>H NComma3,eparated3>aluesO. C,> es mu8 utili!ado en las
aplicaciones de datos deido a 4ue es un est-ndar para #uardar datos por
columnas en teCto plano. ,istema de eCtraccin de linXs: )l sistema es capa! de
crear $ndices de linXsH llamados &ronteras. Cada &rontera contiene los linXs de
los ni=eles de pro&undidad del ,itio. >isin distriuida de las aplicaciones:
Las aplicaciones est-n interconectadas mediante los protocolos TC* 8 ITT*
permitiendo as$ una =isin distriuida de los e4uipos 8 aplicaciones
BclusteredF.

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.

Otro aspecto a tener en cuenta en estos uscadores es el #ran =olumen de datos


4ue soportan. )s por ello 4ue no usan ases de datos con=encionales como /8,:LH
si no 4ue utili!an $ndices traaAados a aAo ni=el en estructuras diseGadas al
itH de a.$ la rapide! de sus Vs4uedas T0U.
5.2.5 (irectorios )stos son los uscadores m-s simples. Constan de cate#or$as 8
directorios en los cuales la in&ormacin es clasi&icada manualmenteH o con una
inter=encin m-s directa. +ormalmente son los propios usuarios los 4ue dan de
alta dic.a in&ormacin. *osteriormenteH la peticin es re=isada 8 catalo#ada por
un e4uipo del sitio.
2D
)s una tecnolo#$a arata 8 sencilla 8 adem-s o&rece una in&ormacin precisa 8
clasi&icadaH 8a 4ue durante el proceso de seleccin .an inter=enido personas.
Actualmente 4uedan pocos uscadores de este tipo. Al#unos anti#uos directorios
como Qa.oo o Terra optaron por mi#rar a una tecnolo#$a Aer-r4uica. Aun4ue
normalmente son utili!ados como &uente de in&ormacin mu8 particular como es el
directorio de la U*C. ,e si#ue desarrollando esta tecnolo#$a para cat-lo#osH
como pueden ser las p-#inas de enlaces on3line como series.l8 o portales
inmoiliarios como idealista.com.
5.2.6 /etauscadores Un metauscador es un motor de Vs4ueda 4ue carece de ase
de datos. Utili!a las Vs4uedas de otros motores para reali!ar las su8as. )l
oAeti=o no es mostrar el enlace &inalH 8a 4ue respetan el &ormato ori#inalH
sino recopilar las Vs4uedas de di&erentes motores cominando los meAores
resultados de cada uno. Al#unos eAemplos son IC4uicX o (o#pile.
5.2.P /otores >erticales )Ciste un tipo de uscadores 4ue se especiali!an en la
Vs4ueda en un sector concreto. )sto .ace 4ue analicen la in&ormacin m-s
eC.austi=amente 8 proporcionen in&ormacin oculta 4ue no encontrar$a un uscador
Aer-r4uico. )stos uscadores tem-ticos proporcionan Vs4uedas a=an!adas 8
concretasH por eAemploH los uscadores de =iaAes Xa8aX.comH tri=a#o.com o e3
dreams.com o&recen =iaAes 8 .oteles en determinadas &ec.as 4ue un usuario de sus
uscadores puede encontrar &-cilmente. Los motores de Vs4ueda =erticalesH
tami%n llamados tem-ticosH se especiali!an en in&ormacin de un solo -mito.
)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.

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

)* ] )dad de p-#ina p. pt ] Tiempo de Vltima actuali!acin. t ] Tiempo indicado.


5.5.2.6 *olitica de <uen Uso
)l uso de rastreadores en Internet es al#o usual 8 trae consi#o una multitud de
=entaAas. A tra=%s de los ser=icios 4ue estos pro=isionan meAoran la eCperiencia
del usuario. Una de las des=entaAas m-s plausiles del uso de estas .erramientas
es el estr%s 4ue pueden lle#ar a pro=ocar en los ser=idores de ori#en de la
&uente. Un crawler puede =isitar un sitio muc.o m-s r-pido 4ue un usuario 8
puede descar#ar arc.i=os astante pesadosH incluso en concurrenciaH por lo 4ue
pueden lle#ar a saturar el ser=idor de destino con dic.as peticiones. *or elloH
es con=eniente respetar los recursos de ori#en 8 reali!ar un uen diseGo e
implementacin para e=itar una saturacin de la &uente. )Cisten soluciones
parciales complementarios como el Retardo de re&resco o el *rotocolo de
)Cclusin de <ots. Retardo de re&resco: )l Retraso de Re&resco es un tiempo
de pausa =oluntario para no saturar el ser=er de ori#en. ,e#Vn =arios estudios
lo ideal ser$an @1 se#undosH aun4ue este tiempo puede ser demasiado amplio para
descar#ar in&ormacin de sitios con un #ran =olumen de in&ormacinH por ello se
suele reducir entre 21 8 61 se#undosH e incluso en al#unos crawlers como el
anti#uo /ercatorKe estalece el retardo en 21 =eces el tiempo 4ue .a tardado en
descar#arse. Roots )Cclusion *rotocol: )l wemaster de un sitio puede utili!ar
un protocolo para 4ue los crawlers no rastreen parcial o totalmente el contenido
de su we. Tami%n puede utili!arlo para indicar 4ue in&ormacin es innecesaria
en los rastreos. )ste sistema se denomina Roots )Cclusion *rotocol T22U.
Consiste en aloAar un arc.i=o con nomre roots.tCt indicando 4ue arc.i=os o
directorios espec$&icos se 4uiere 4ue no se contemplen en la recoleccin de
datos.

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

Al#oritmo de )Ctraccin de datos o worXminer: )ste al#oritmo se encar#a de


=isitar una &rontera de rastreo 8 eCtraer los datos se#Vn unos patrones
prestalecidos.
6.5.6.2 Al#oritmo de &ronteras de pro&undidad
)ste al#oritmo es el encar#ado de la recoleccin de los linXs del sitio. )n %lH
encontramos un conAunto inicial de URLsH llamado ;rontera de rastreo n Bn indica
el ni=el de pro&undidadF. (e dic.o conAunto se eCaminaran sus contenidos en
usca de nue=os linXs de una pro&undidad ma8or. Iasta 4ue se .a8an tratado todas
las URL de la ;rontera + se .ar- el si#uiente proceso: 2. 5. 6. P. ,e eCtrae una
URL de la ;rontera +. ,e recopilan los linXs de la URL. ,e trata la URL con unos
&iltros con&i#urales para otener el resultado. )stas nue=as URL nb2 se
introducen en la ;rontera nb2.
(IA'RA/A 25. AL'ORIT/O () ;RO+T)RA, () *RO;U+(I(A(
Los &iltros para las URL nos a8udan a acotar la &rontera resultanteH dando un
menor tiempo de proceso 8 traaAo al si#uiente ni=el. Unos &iltros mu8
restricti=os pueden .acer perder resultados. Los &iltros diseGados son:
Comien!a con: (ee comen!ar por ^par-metro_. +o comien!a con: +o
dee comen!ar por ^par-metro_. Acaa con ^par_: (ee acaar con ^par-metro_. +o
acaa con ^par_: +o dee acaar por ^par-metro_. Contiene ^par_: (ee contener
^par-metro_. +o contiene ^par_: +o dee contener ^par-metro_. Autocompletar: ,i
la URL es relati=a 8 no comien!a por el dominioH se le inclu8e el dominio.
Cerrar ;rontera: ,i se acti=a este &iltro nin#una URL 4ue est% en la ;rontera n
ser- incluida en la ;rontera nb2.
6R
6.5.6.5 Al#oritmo de eCtraccin de datos
)l Al#oritmo de eCtraccin de datos es el encar#ado de eCtraer la in&ormacin de
un sitio. )l proceso consiste en eCaminar cada una de las p-#inas almacenadas en
una de las &ronteras de rastreo. (urante este an-lisis se eCtraen todos los
=alores 4ue coincidan con una serie de patronesH anteriormente con&i#urados.
Iasta 4ue se .a8an tratado todas las URL de la ;rontera + se .ar- el si#uiente
proceso: 2. 5. 6. P. ,e eCtrae una URL de la ;rontera. ,e uscan coincidencias
con los patrones. ,e encapsulan los datos coincidentes. )stos datos se
introducen en los Resultados ;inales.
(IA'RA/A 26. AL'ORIT/O () )?TRACCI"+ () (ATO,
<Vs4ueda de patrones
)ste al#oritmo contiene uno de los suprocesos &undamentales del ,istema: La
Vs4ueda de patrones. Consiste en uscar una serie de patrones en un teCto 4ue
puede ser 4ue est% en el cuerpo del teCto de la p-#inaH el cuerpo de la
direccin URL o est% en otra p-#ina similar.
)Cpresiones re#ulares
(eido a 4ue la in&ormacin se muestra de &ormas mu8 di=ersas se .a decidido
utili!ar eCpresiones re#ulares. Una eCpresin re#ular es un patrn en el cual
cada car-cter se re&leAa as$ mismoH pero adem-sH puede contener ciertos s$molos
4ue a8uden a de&inir ciertas caracter$sticas. ,upon#amos 4ue ten#amos el
si#uiente teCto: N)iH ten#o casa. *erdnH ten#o casi casa. Qa 4ue el ao#ado
dice 4ue ten#o el caso #anado. /iraH tanta cosa para nadaH si ten$a coc.e para
dormir.O 67
A continuacin tres eAemplos de eCpresiones sore el teCto anterior:
)Cpresin re#ular gTen#o casah gTen#o cas.h giT```` c```h
)4ui=alencias gTen#o casah gTen#o casahH gTen#o casih gTen#o Casoh gTen#o casah
gten$a Coc.eh gTanta Cosah
La eCpresin re#ular gTen#o Casah coincidir- con cual4uier teCto i#ual a cada
car-cter 4ue conten#aH es decirH e4ui=aldr$a a la misma cadena: gTen#o Casah. ,i
aGadimos un s$molo como g`hH 4ue si#ni&ica 4ue en esa posicin puede .aer
cual4uier car-cter 8 lo sustituimos por la Vltima letraH gTen#o Cas`hH nos
coincidir$a con gTen#o CasohH gTen#o Casih o cual4uier &rase del teCto 4ue
conten#a el teCto con la Vltima letra camiada. Las posiilidades de las
eCpresiones re#ulares son cuasi in&initasH eCisten multitud de modi&icadores 8
s$molos 4ue nos a8udar-n a construir un uen patrn. A continuacin mostraremos
los s$molos o metacar-cteres m-s importantes de las eCpresiones re#ularesH el
resto de eCpresiones se pueden consultar en cual4uier manual en Internet o en el
liro T20U.
/eta car-cter . j
(escripcin Coincide con cual4uier car-cter indi=idual eCcepto el salto de
l$nea. Coincide con cero o m-s apariciones de la eCpresin precedente. )s decirH
4ue la eCpresin aj coincide con cero m-s apariciones de a minVsculasH 8 .j
coincide con cero o m-s caracteres. Los corc.etes deen contener uno o m-s
caracteresW la eCpresin completa entre los corc.etes coincide eCactamente con
uno o m-s caracteres en la serie. (e esta &ormaH TacUcoincide con una aH una H
o una cW no coincide con cero caracteresH 8 no coincide con otro car-cter 4ue no
sea uno de estos tres. ;iAa la Vs4ueda al principio de la l$nea. La eCpresin
iT.e coincide con T.e cuando aparece al principio de la l$nea. +o puede .aer
espacios antes de T.e. ,i desea permitir espaciosH puede permitir cero o m-s
espacios de la manera si#uiente: ijT.e. Coincide con el &inal de la l$nea. endk
precisa 4ue el teCto end est% al &inal de la l$neaH sin espacios ni teCto en
medio.
TcaracteresU
i
k
P1
TicaracteresU
)sta eCpresin in=ierte el sentido de una lista entre corc.etes. (e esta &ormaH
TiacU coincide con cual4uier car-cter Vnico eCcepto aH H or c. *uede
especi&icar un ran#o de caracteres dentro de una lista de par%ntesis cuadrados.
*ara coincidir con cual4uier letra minVsculaH utilice Ta3!U. *uede especi&icar
m-s de un ran#oW de esta maneraH para especi&icar las tres primeras o las tres
Vltimas letras del aecedarioH escria Ta3cC3!U. *ara especi&icar cual4uier
letraH sea ma8Vscula o minVsculaH pruee con Ta3!A3LU. *uede poner Auntos ran#os
de caracteres 8 caracteres VnicosH adem-s del metacar-cter imetac.aracterW por
eAemplo Tia3!<LUsi#ni&ica lcual4uier car-cterH eCcepto una letra minVsculaH una
< ma8Vscula o una L ma8Vsculam. *uede utili!ar los par%ntesis para a#rupar
partes de la eCpresin re#ularH i#ual 4ue lo .ar$a con una eCpresin matem-tica.
,i#ni&ica lom. Util$celo para especi&icar una serie de eCpresiones alternati=as.
'eneralmente desear- poner las alternati=as entre par%ntesisH de la si#uiente
manera: cBadnanatFcoincide con cad o ien ca o ien cat. ,in los par%ntesisH
coincidir$a con cad o a o at. *ermite escapar cual4uier car-cter especialW si
desea encontrar literalmente un asterisco jH escria oj. La arra in=ertida
permite i#norar el si#ni&icado especial al 4ue estamos acostumrados para j.
Tcar-cter3car-cterU
BF
n
o
Ie a4u$ al#unos eAemplos m-s: )Cpresin re#ular c.pa co .pa stojp car.jn C8!.j
iT.e P2 )4ui=alencias cepaH capaH copaH copar c.paH c.par stpH stopH stoop
cartonH cartoonH Carmen Con C8! 8 con cual4uier cosa 4ue le si#a. T.e al
principio de la l$nea.
tiempok i,olok
tiempo al &inal de la l$nea. Con una l$nea 4ue est- compuesta Vnicamente por la
palara ,oloH sin espaciosH ni otros caracteresH nada en asoluto. ,lo se
permite la palara ,olo. pasaH pesaH posa Ca(reH Ca)reH Ca;re Con >er se#uido
por cual4uier car-cter 4ue no sea un nVmero. con salarH salanH salirH salin. Con
cual4uier palara 4ue est% compuesta Vnicamente 8 al menos por una letra. +o
coincidir- con nVmeros o espacios.
pTaeoUsa CaT(3;Ure >erTi137U salTaiUTrnU TA3La3!UTA3La3!Uj
Construccin de patrones para el al#oritmo
)l patrn es un conAunto de caracteres 4ue de&inir- el resultado de la Vs4ueda.
Como anteriormente .emos descritoH se utili!ar-n las potentes eCpresiones
re#ulares durante este proceso. Las eCpresiones re#ulares de los patrones deen
contener la marca gB.jFh 4ue indica al sistema la in&ormacin a eCtraer. )s
decirH si deseamos eCtraer la palara gcasah de gTen#o Casah deeremos
introducir la si#uiente eCpresin gTen#o B.jFh. Adem-sH para aumentar la
potencia de la Vs4ueda se .an diseGado cuatro tipos de patrn: Tipo
1 B+ormalF: )ste patrn usca la eCpresin re#ular en el cuerpo de la p-#ina
re&erenciada por la URL. Tipo 2 BURLF: <uscar- la eCpresin re#ular en el cuerpo
de la direccin URL. Tipo 5 BReempla!oF: ,ustituir- una parte de la URL por
otra indicada por un patrn de rempla!o. <uscar- el patrn en el contenido de la
p-#ina de la URL resultante. Tipo 6 B)speAoF: )ste patrn se constru8e a partir
de dos supatrones 8 un nVmero de patrn. Los supatrones corresponden a la
eCpresin re#ular partida en dos 8 en medio los datos eCtra$dos en un patrn 8a
tratado.
P5
(IA'RA/A 2P. CO+,TRUCCI"+ () *ATRO+),
Como eAemplo =amos a construir los patrones para eCtraer la in&ormacin del
sitio indicado en inicio del cap$tulo:
CA*TURA () *A+TALLA 2D. *M'I+A ()L ,ITIO K)< () TUAR)' >IAT'),
P6
,i inspeccionamos el cdi#o de dic.o sitioH encontraremos 4ue estos tres campos
est-n en las si#uientes partes del cdi#o IT/L: N^.5_India : ,toX ean#ri
@.2D1m con #u$a ,an#a^a.5_O 8 N^stron#_fpoca :^astron#_(e Junio a
,eptiemre^ap_O.
Los patrones resultantes son: Campo Lona BIndiaF T$tulo B,toX ean#ri @.2D1mcF
(atos del patrn *atrn: N^.5_B.jF3N ,upatrn2: N^.5_O +p patrn: 2
,upatrn5: OB.jF ^a.5_O *atrn: Ofpoca :^astron#_B.jF^ap_O. Tipo de patrn 1 3
+ormal 6 Z )speAo
fpoca BJunio a ,eptiemreF
1 3 +ormal
Con estos mismos patrones podremos eCtraer in&ormacin de todas las p-#inas
re&erenciadas en la &rontera de rastreo 4ue se asemeAen. Qa 4ueH por eAemploH
encontramos este mismo &ra#mento de cdi#o en todas las &ic.as de =iaAes de este
sitio como:

N^.5_;rancia : Tour del /ont <lanc^a.5_O 8 N^stron#_fpoca :^astron#_(e Junio a
,eptiemre^ap_O. N^.5_CA<O >)R() : Cao >erde Z ,anto Antao^a.5_O 8
N^stron#_fpoca :^astron#_Todo el aGo^ap_O.
6.5.P Iniciali!acin 8 sistema de arc.i=os )l ,cript est- preparado para car#ar
la con&i#uracin deseada para su eAecucin. )stos datos est-n en arc.i=os con
eCtensin j.con& en el directorio donde se aloAa el script. La &rontera inicialH
las con&i#uraciones de cada ni=el 8 del eCtractor son car#adas en el momento 4ue
.a#a &alta utili!arlas. Los arc.i=os de datos #enerados por el script tendr-n
eCtensin j.datH cada &rontera despu%s de ser construida ser- almacenada en un
arc.i=o llamado Nl=lO b nVmero de &rontera b N.datO. A su =e!H los resultados de
la eCtraccin del sitio se almacenar-n con el nomre de arc.i=o indicado en la
iniciali!acin del script. A continuacin se muestra un es4uema de la
iniciali!acin 8 el sistema de arc.i=os. )n amarillo los arc.i=os 4ue deen ser
creados en el inicio del script 8 en a!ul los arc.i=os creados por el propio
script. Los posiles inicios del proceso se indican con una &lec.a de color
roAo. )s4uema del sistema de arc.i=os:
PP
La iniciali!acin del proceso comien!a con la car#a del arc.i=o ini.con& donde
estalece la con&i#uracin de iniciali!acin. )ste arc.i=o contiene:
)l nVmero de ni=eles con&i#urados. )l dominio del sitio. ,i se desea eCtraer
resultados. ,i se desea acti=ar el protocolo de )Cclusin de Roots. Los
se#undos m$nimos de espera entre peticin 8 peticin.
(IA'RA/A 2D. ),:U)/A ()L ,I,T)/A () ARCII>O,
PD
6.6
)l administrador: La lan!adera
)l administrador es la aplicacin responsale del -rea de administracin del
,istema. ,e muestran la lan!adera 8 los componentes necesarios para su
&uncionamiento. La lan!adera es un proceso o ser=icio del administrador 4ue dee
#estionar 8 controlar los lan!amientos de los ,.uttle<ots o de ots eCternos.
Adem-sH para una #estin de los sitiosH se .a diseGado la con&i#uracin de los
lan!amientos sore los ,itios Ke. ,e utili!ar- la pro#ramacin a oAetos con el
&in de otener un resultado meAor en la #estin del sistema. )l diseGo se asa
en la metodolo#$a modelo3=ista3controlador. )n concreto se presentan los diseGos
de la capa de +e#ocio.
*antalla del Administrador del ,itios:
CA*TURA () *A+TALLA 2@. I+T)R;AL () ,IUTTL)A(/I+
P@
6.6.2 (ia#rama conceptual U/L A continuacinH eCpondremos los conceptos
necesarios para diseGar la aplicacin. *ara ello se .a desarrollado el dia#rama
conceptual B(ia#rama 2@F:
(IA'RA/A 2@. /O()LO CO+C)*TUAL ;A,) 2
(nde: ,itio: )s el lu#ar o sitio we al 4ue se desea eCtraer
in&ormacin. <ot: )s el enlace entre el administrador con el ot *I* 4ue
eCtraer- la in&ormacin. Iora de Lan!amiento: )s la &ec.a en la cual se =a a
eAecutar el ot. Lan!amiento: )s el proceso de eAecucin de un ot. Lan!adera:
)s el oAeto encar#ado de #estionar la cola de lan!amientos. Iora de
/antenimiento: )n una .ora determinada la lan!adera dee reiniciarse para aco#er
las eAecuciones del nue=o d$a.
P0
6.6.5 ConteCto de traaAo *ara poder lle=ar el diseGo a cao se necesitan
repositorios. Los repositorios son almacenes de in&ormacin donde se #uardan
ciertos oAetos con la intencin de recuperarlos m-s adelante. Los repositorios
necesarios en este conteCto de traaAo son: +ecesitaremos un repositorio
centrali!ado de ,itios: BList^,itio_F. +ecesitaremos un se#undo repositorioH en
este caso distriuido por lan!amientos por cada ot. Tami%n ser- necesario un
arc.i=o inario para #uardar la con&i#uracin de los sitios: sities.crw 8 de la
con&i#uracin inicial options.crw.
6.6.6 Casos de Uso Un caso de uso es una secuencia de interacciones entre el
sistema 8 un actor 4ue se desarrollan en respuesta a un e=ento 4ue inicia el
primero. )ste actor puede ser un usuarioH otro sistema o el propio sistema. Los
casos de uso de&inen las &uncionalidades principales de la aplicacin.
A continuacin los casos de Uso detectados para la aplicacin:
(IA'RA/A 20. CA,O, () U,O ()L ,I,T)/A () LA ;A,) 2

Crear ,itio: Crea un ,itio en el sistema. /odi&icar ,itio: /odi&ica un ,itio
eCistente. Iniciar Lan!adera: Iniciar la lan!adera. *arar Lan!adera: (etener la
lan!adera. Reiniciar Lan!adera: Reiniciar la lan!adera. /antenimiento: Reinicia
la lan!adera a las 1:11. PR
6.6.6.2 Crear ,itio a /odi&icar ,itio
Crear ,itio 8 /odi&icar ,itio son los casos de uso relacionados con la creacin
o modi&icacin de los sitios en el ,istema. Amos diseGos se muestran Auntos 8a
4ue comparten dos de las tres secuencias diseGadas:
(IA'RA/A 2R. (IA'RA/A, () I+T)RACCI"+ CR)AR ,ITIO Q /O(I;ICAR ,ITIO
P7
,ecuencia new,ite
Contrato
Responsailidad *repara la lista de eAecuciones temporal para la introduccin
de un nue=o ,itio. *recondiciones Cierto. *ostcondiciones )Ciste una nue=a
lista temporal de )Aecuciones.
(iseGo
)l caso de Uso comien!a con el mensaAe +ewq,itioBF .acia el controladorB2F. )s
aconseAale traaAar con una lista temporal para no modi&icar el oAeto durante
la edicin. )sto permitir- des.acer los camios si el usuario lo re4uiere. )l
controlador crear- una lista de Lan!amientos temporales BTempLaunc.in#sF para
crear o modi&icar el sitio B2.2F.
(IA'RA/A 27. (IA'RA/A () COLA<ORACI"+ +)K ,IT)
D1
modi&8,ite
Contrato
Responsailidad *repara la lista de lan!amientos temporales para la
introduccin de un nue=o ,itio. *recondiciones )Ciste un ,itio con
I(q,itio],trin# idqsit. *ostcondiciones ,iT<olU TempLaunc.in#s se le
asi#nar- la lista de Temp,itio. ,iTr<olU TempLaunc.in#s ser- reseteada.
(iseGo
)l Controlador recie el mensaAe para modi&icar un ,itio con una cadena como
identi&icador: Idqsit BmensaAe 2F. Resol=er- la encaAada del identi&icador 8
de=ol=er- el oAeto 8 lo asi#nar- a un ,itio Temporal para car#ar los datos en
la inter&a! BmensaAe 2.5F. Asi#nar- los lan!amientos del sitio a la lista
temporal de lan!amientos B2.5.2F.
(IA'RA/A 51. (IA'RA/A () COLA<ORACI"+ U/L /O(I;Q ,IT)
D2
AddTempLaunc.in#
Contrato
Responsailidad Introduce una nue=a eAecucin en la lista de eAecuciones
temporal. )ste m%todo es compartido con el /odi&icarq,itioBidqsitioF.
*recondiciones )Ciste una lista temporal de Lan!amientos. *ostcondiciones
)Ciste una nue=a eAecucin con: (iseGo IdqLaunc.in#]idqeC
<otLaunc.in#]otr Initial(ate]din ;inal(ate]dout Iour].our /in]min
Una =e! reciido el mensaAe addTempLaunc.in# BmensaAe 2FH creamos un nue=o
lan!amiento B)CF con los par-metros reciidos BmensaAe 2.2F. ,e#uidamenteH lo
aGadimos a la lista temporal B2.5F.
(IA'RA/A 52. (IA'RA/A () COLA<ORACI"+ U/L A(( T)/* LAU+CII+'
D5
sa=e,ite
Contrato
Responsailidad 'uarda el ,itio en el sistema. )ste m%todo es compartido con
el /odi&icarq,itio BidqsitioF. *recondiciones )Ciste una Lista de ,itios
BList^,itio_ ,itiosF *ostcondiciones T,i Bacti=ado]true or empt8]trueFU
)Ciste un ,itio con: o Idq,itio]idqsit o (escripcion](escr T,i notBacti=ado]true
or empt8]trueFU )Ciste un ,itio con: o Idq,itio]idqsit o (escripcion](escr o
)Ciste un +ue=o <ot enla!ado al ,itio con: <otAdress]adqot
List^Launc.in#_ Launc.in#s ] List^Launc.in#_ TemporalLaunc.in#s
(iseGo
)l mensaAe sa=e,ite es reciido desde la inter&a! por el Controlador BUCRFH este
con&irma su eCistencia BmensaAe 2.2F. ,i eCisteH el caso de Uso camiar- al Caso
de Uso /odi&icar ,itioH el cual eliminar- dic.o ,itio BmensaAe 2.5F. Una =e!
.ec.o este proceso ser- el mismo camino para amos Casos de Uso: ,e crea un
nue=o ,itio BmensaAe 2.6F. ,i est- acti=ado el ot o la inter&a! 8a conten$a
lan!amientos Bsi#no de 4ue se 4uiere modi&icar o se est-n aGadiendo m-sF. ,e
crear- un <ot en el ,itio BmensaAes 2.6.2 8 2.6.5F 8 se le sustituir- su lista
de Lan!amientos BmensaAe 2.6.6F. )l Vltimo mensaAe lo reali!a el Controlador 4ue
aGade el nue=o ,itio al ,istema.
D6
(IA'RA/A 55. (IA'RA/A () COLA<ORACI"+ U/L ,A>),IT)
6.6.6.5 Iniciar Lan!adera
)ste caso de uso es el encar#ado de eAecutar la Lan!adera. Crear- un .ilo de
eAecucin 4ue despertar- cada =e! 4ue ten#a 4ue eAecutarse un ot.
(IA'RA/A 56. (IA'RA/A () I+T)RACCI"+ ,TART ,IUTTL)
DP
start,.uttle
Contrato
Responsailidad )s el encar#ado de eAecutar la Lan!adera. Crear- un .ilo de
eAecucin 4ue despertar- cada =e! 4ue ten#a 4ue eAecutarse un ot.
*recondiciones )Ciste al#Vn ,itio en el ,istema. *ostcondiciones La lista
de lan!amientos est- =ac$a o se .a interrumpido mediante los casos de uso
reset,.uttle o stop,.uttle.
(iseGo
)ste caso de uso inicia el proceso de lan!amientos de los ots. Consta de una
lista de lan!amientos BmensaAe 2.2F 4ue es actuali!ada por una lista de
lan!amientos pro#ramados para el d$a actual BmensaAes 2.5.2 8 2.5.5F. A
continuacinH el Controlador pro=ee a la Lan!adera de la lista de lan!amientos
diarios BmensaAe 2.6.2F. ,e#uidamenteH en=$a un mensaAe para iniciar la
Lan!adera BmensaAe 2.PF. Al iniciarse la Lan!adera co#e el primer elemento de la
lista Lan!amientosBmensaAe 2.P.2F 8 lo #uarda en el componente neCtLaunc.in# 8
se inicia un .ilo de eAecucin BmensaAe 2.P.5F )ste .ilo consulta el tiempo 4ue
4ueda para su prCima eAecucin BmensaAe 2.P.6F 8 se duerme .asta 4ue transcurra
dic.o tiempo BmensaAe 2.P.PF. Cuando despierte mandar- la orden al lan!amiento
para 4ue eAecute el <ot BmensaAes 2.P.P .2 8 2.P.P.5F. Una =e! eAecutado el otH
el .ilo de eAecucin elimina de la lista de lan!amientos el oAeto aloAado en el
componente neCtLaunc.in# BmensaAe 2.P.DF. ,e#uidamenteH el .ilo de eAecucin
mira si la lista est- =ac$a 8 en ese caso sale del ucle reiniciando la
lan!adera BmensaAe 2.P.@F. *or el contrario si 4uedan m-s eAecuciones coAera el
si#uiente elemento BmensaAe 2.P.DF 8 =ol=er- a comen!ar el proceso desde el
mensaAe 2.P.2 reali!ando las mismas tareas 4ue en el lan!amiento anterior.
DD
(IA'RA/A 5P. (IA'RA/A () COLA<ORACI"+ U/L ,TART ,IUTTL)
6.6.6.6 *arar Lan!adera
)ste caso de uso interrumpir- la lan!adera siempre 8 cuando se .a8a iniciado el
caso de uso anterior.
(IA'RA/A 5D. (IA'RA/A () I+T)RACCI"+ ,TO* ,IUTTL)
D@
stop,.uttle
Contrato
Responsailidad (etener la lan!adera. *recondiciones )Ciste un componente
,.uttle iniciado. *ostcondiciones )l componente ,.uttle .a detenido su .ilo
de eAecucin.
(iseGo
)l Controlador recie el mensaAe ,.uttle,top BmensaAe 2F 8 si tiene una
reali!acin de la Lan!adera le en=$a el mensaAe ,top,.uttle BmensaAe 2.2F. ,i se
est- eAecutando un .iloH la lan!adera en=$a un mensaAe de interrupcin BmensaAe
2.5F. )n ese casoH tratar- la eCcepcin del mensaAe de interrupcin 8 pondr- el
ooleano 4ue controla el ucle a cierto BmensaAe 2.5.2F.
(IA'RA/A 5@. (IA'RA/A () COLA<ORACI"+ ,TO*,IUTTL)
D0
6.6.6.P Reiniciar Lan!adera
)ste caso de uso reinicia la Lan!adera.
(IA'RA/A 50. (IA'RA/A () I+T)RACCIO+ R),)T ,IUTTL)
reset,.uttle
Contrato
Responsailidad Reiniciar la lan!adera. *recondiciones )Ciste un
componente ,.uttle iniciado. *ostcondiciones (iseGo ,e .a reiniciado la
lan!adera.
)n este caso de uso reapro=ec.aremos los dos casos de uso anterioresH 8a 4ue es
necesario parar la lan!adera correctamente. )l actor en=$a el mensaAe de
reset,.uttleBF al Controlador UCRBmensaAe 2F. )Aecuta el caso de uso
,top,.uttleBFBmensaAe 2.2F 8 por Vltimo el caso de uso ,tart,.uttleBF BmensaAe
2.5F.
DR
(IA'RA/A 5R. (IA'RA/A () COLA<ORACI"+ U/L R),)T ,IUTTL)
6.6.6.D /antenimiento
A las 1:11 el sistema dee reco#er los datos para el nue=o d$a. *or ello este
caso de uso mantendr- un .ilo dormido .asta las 1:11 de cada d$a para reali!ar
un reset de la Lan!adera.
(IA'RA/A 57. (IA'RA/A () I+T)RACCI"+ /AI+T)+A+C)
/aintenance
Contrato
Responsailidad Reiniciar la lan!adera a las 1:11. *recondiciones )l
,istema est- iniciado. *ostcondiciones D7 ,e .a iniciado un reinicio de la
lan!adera a las 11.11.
(iseGo
)n primer lu#arH el actor en=$a el mensaAe maintenanceBF al Controlador UCR.
)ste crea una nue=a reali!acin del componente /aintenance. Al crearse eAecuta
un .ilo BmensaAe 2.5F 4ue dormir- BmensaAe 2.6F .asta las 1:11. A dic.a .ora el
.ilo reali!ar- el reset BmensaAe 2.PF.
(IA'RA/A 61. (IA'RA/A () COLA<ORACI"+ U/L /AI+T)+A+C)
@1
6.P
)l administrador: )l diseGador de ots
A continuacin =amos a proceder a eCplicar el diseGo del (iseGador de ots. Como
comentamos en la ar4uitectura del sistemaH necesitamos dotar al administrador de
al#una metodolo#$a para diseGar 8 construir los ots a tra=%s de los arc.i=os de
con&i#uracin de los ,cripts. )l script para &uncionar correctamente necesita
los arc.i=os de worXminer.con&H ni=el1.dat 8 ini.con&. )n cada arc.i=o se
con&i#ura cada suproceso del scriptH es por ello 4ue para diseGar el (iseGador
de <ots crearemos nue=os conceptos asados en los procesos de los al#oritmos de
&ronteras 8 eCtraccin de datos BKorXminerF.
CA*TURA () *A+TALLA 20. I+T)R;AL 'RM;ICA ()L (I,)JA(OR () <OT,
@2
6.P.2 Ampliacin del (ia#rama conceptual U/L >amos a proceder a ampliar el
dia#rama conceptual con las nue=as relaciones 4ue sur#en al aGadir los
si#uientes conceptos: +i=el: Representa a cada uno de los ni=eles del
sitio. Cada ni=el #uarda la con&i#uracin 4ue posteriormente se utili!ar- para
crear los arc.i=os de con&i#uracin de cada ni=el del script. KorXminer:
Representa la con&i#uracin del al#oritmo de eCtraccin del script. La &inalidad
de este concepto ser- la con&i#uracin del arc.i=o worXminer.con&. *atrn: Los
patrones son eCpresiones re#ulares con una con&i#uracin adicional para el
al#oritmo de eCtraccin del ,cript. Adem-sH se necesitan aGadir nue=os atriutos
a los conceptos del diseGo de la primera &ase: <ot: ,e le aGaden los
atriutos: List^worXminer_worXminersH List^Le=el_le=elsH ,trin# &ile,8stemH int
rootsT?TH int #ap. Lan!amiento: ,e le aGaden los atriutos int le=elqeCecutionH
int worXminer.

(ia#rama conceptual resultante:


(IA'RA/A 62. /O()LO CO+C)*TUAL ()L (I,)JA(OR () <OT, B;A,) 5F
@5
6.P.5 Ampliacin del ConteCto de traaAo ,e ampl$a el conteCto de traaAo:
+ecesitaremos aGadir un repositorio centrali!ado de <ots: BList^<ot_<otsF.
+ecesitaremos un repositorio distriuido de ni=eles por <ot. +ecesitaremos un
repositorio distriuido de worXminers por ot. +ecesitaremos un repositorio
distriuido de patrones por ot.
6.P.6 Ampliacin de los Casos de Uso ,e aGaden seis nue=os casos de uso: Create
otH modi&8 otH Launc. otH <uild <otH /aXe portale 8 ,.ow Results:
(IA'RA/A 65. +U)>O, CA,O, () U,O B;A,) 5F
@6

Crear <ot: ,e crea un nue=o <ot. /odi&icar <ot: ,e crea o se modi&ica un nue=o
,itio. Lan!ar <ot: Lan!a un ot. /ontar <ot: /onta un ot en un directorio
especi&icado. <ot *ortale: Crea un arc.i=o comprimido LI* con un ot montado.
/ostrar Resultados: /uestra resultados con el =isor C,> por de&ecto.
6.P.6.2 Crear <ot a /odi&icar <ot
Create <ot 8 /odi&8 <ot son los casos de uso relacionados con la creacin o
modi&icacin de los ots de nuestro sistema. Comparten dos de las tres
secuencias diseGadasH es por ello 4ue se amos diseGos se muestran Auntos.
(IA'RA/A 66. (IA'RA/A () I+T)RACCI"+ CR)AT) <OT a /O(I;Q <OT
@P
,ecuencia create ot
Contrato
Responsailidad *repara el ot temporal para la introduccin de un nue=o ot.
*recondiciones Cierto. *ostcondiciones )Ciste un nue=o ot temporal
llamado <otTemp 8 enla!ado con el controlador.
(iseGo
)l caso de uso comien!a con el mensaAe Createq<otBF .acia el controladorBmensaAe
2F. )s aconseAale traaAar con un oAeto temporal para no modi&icar el oAeto
durante la edicin. )sto permitir- des.acer los camios si el usuario lo
re4uiere. )l controlador crear- un <ot temporal BotTempF el cual crear- una
lista de worXminers 8 ni=eles =ac$a. B/ensaAes 2.2.2 8 2.2.5F.
(IA'RA/A 6P. (IA'RA/A () COLA<ORACI"+ U/L CR)AT) <OT
@D
modi&8 ot
Contrato Responsailidad *repara la lista de eAecuciones temporales para la
introduccin de un nue=o ,itio. *recondiciones )Ciste un ,itio con
I(q,itio],trin# idqsit. *ostcondiciones ,iT<olU Temp)Cecutions se le asi#nar-
la lista de Temp,itio. ,iTr<olU Temp)Cecutions ser- reseteada. (iseGo )l
Controlador recie el mensaAe para modi&icar un ,ite con una cadena Idqsit
BmensaAe 2F. Resol=er- la encaAada del identi&icador 8 de=ol=er- el oAeto 8 lo
asi#nar- a un ,ite Temporal para car#ar los datos en la inter&a! BmensaAe 2.5F.
Asi#nar- las eAecuciones del sitio a la lista temporal de eAecuciones B2.5.2F.
(IA'RA/A 6D. (IA'RA/A () COLA<ORACI"+ U/L /O(I;Q <OT
addLe=el
Contrato Responsailidad Introduce aGade un nue=o ni=el al ot temporal.
*recondiciones )Ciste un ot temporal con nomre <otTemp. )Ciste en <ot
Temp una lista de oAetos Le=el. *ostcondiciones
@@

)Ciste una nue=a oAeto Le=el con: int idLe=el]l=l ,trin#


startqwit. ]sw <ool startqwit.qne# ] swn ,trin# endsqwit.]ew <ol endsqwit.qne# ]
ewn ,trin# contains ] co <ool containsqne#]con
(iseGo Una =e! reciido el mensaAe indicando el inicio de la secuencia BmensaAe
2.2FH en=iamos los datos a tra=%s del controlador al ot temporal BmensaAe 2.2F.
Creamos un nue=o +i=el B2.2.5FH siendo el <ot su creador cannico 8 se aGade
pre=iamente el identi&icador B2.2.2F. *or Vltimo aGadimos a la lista Le=els el
nue=o oAeto.
(IA'RA/A 6@. (IA'RA/A () COLA<ORACI"+ U/L +)K L)>)L
add TempKorXminer
Contrato Responsailidad AGade un nue=o worXminer temporal. *recondiciones
)Ciste un ot temporal con nomre <otTemp. *ostcondiciones )Ciste una nue=a
reali!acin del oAeto tempKorXminer con una lista =ac$a de oAetos *attern.
@0
(iseGo
)l controlador recie el mensaAe de creacin del oAeto temporal. fste indica al
ot la creacin de un worXminer temporal mendiante el mensaAe 2.2. ,e crea el
oAeto 8 la lista temporal de patrones BmensaAes 2.5 8 2.6F. (ia#rama de
secuencia U/L:
(IA'RA/A 60. (IA'RA/A () COLA<ORACI"+ U/L A((T)/*KORe/I+)R
add *attern
Contrato Responsailidad AGade un nue=o patrn a la lista de patrones del
worXminer temporal BKorXTempF *recondiciones )Ciste un ot temporal con
nomre <otTemp. )Ciste en <ot Temp un worXminer temporal llamado KorXTemp.
KorXtemp contiene una lista de patrones. *ostcondiciones )Ciste una nue=a
oAeto *attern con: ,trin# )Cpresion2 ] )2 ,trin# )Cpresion5 ] )5
intqremplace ] Re ,trin# URLqremplace]Ure ,trin# URLqremplaceq8]Ur
(iseGo La secuencia empie!a con el mensaAe en=iado por el actor al controlador
UCR. )ste en=ia los datos al worXminer temporal mediante el ot temporal
BmensaAes 2.2 8 2.5F. TempKorX crea un identi&icador Vnico para el patrn
BmensaAe 2.5.2FH lo crea BmensaAe 2.5.5F 8 lo aGade a la lista de patrones
BmensaAe 2.5.6F.
@R
(IA'RA/A 6R. (IA'RA/A () COLA<ORACI"+ U/L A(( *ATT)R+,
add KorXminer
Contrato
Responsailidad AGade un nue=o worXminer a la lista de worXminers del ot
temporal. *recondiciones )Ciste un ot temporal con nomre <otTemp. )Ciste
en <ot Temp una lista de oAetos KorXminer con nomre KorXminers.
*ostcondiciones )Ciste un nue=o oAeto KorXminer en la lista KorXminers con:
La in&ormacin suministrada a <otTemp. Int IdqworXminer ]idqwXm Int
)CtractionLe=el ] eCtractionqle=el Int )Cpected] eCpected
(iseGo
)l controlador en=ia el mensaAe de creacin del nue=o worXminer a tra=%s del
mensaAe 2.2. Crea el identi&icador Vnico BmensaAe 2.2.2F 8 aGade la in&ormacin
al KorXminer temporal BmensaAe 2.2.5F. *osteriormenteH se reali!a una copia de
los datos 8 se in8ectan en una nue=a reali!acin BmensaAe 2.2.6FH la cual es
aGadida a la lista de worXminers del ot temporal BmensaAe 2.2.PF. @7
(IA'RA/A 67. (IA'RA/A () COLA<ORACI"+ U/L A(( KORe/I+)R
sa=e<ot
Contrato
Responsailidad 'uarda el <ot en el sistema. )ste m%todo es compartido con el
/odi&icarq<ot BidqotF.
*recondiciones )Ciste una Lista de <ots BList^<ot_ <otsF
*ostcondiciones )Ciste un nue=o <ot con los datos in8ectados desde el ot
temporal.
(iseGo
)l mensaAe sa=e<ot es reciido desde la inter&a! por el Controlador BUCRFH este
con&irma su eCistencia mensaAe B2.2.2F. ,i eCisteH el caso de Uso camiar- al
Caso de Uso /odi&icar <otH el cual eliminar- dic.o <ot posteriormente en el
mensaAe 2.2.P. Una =e! .ec.o este proceso ser- el mismo camino para amos Casos
de Uso: ,e aGade la in&ormacin al <ot temporal BmensaAe 2.2.5FH se crea un
nue=o ot in8ectando los datos del ot temporal B2.2.6F. *or VltimoH se aGade a
la lista de <ots del repositorio centrali!ado BmensaAe 2.2.DF.
01
(IA'RA/A P1. (IA'RA/A () COLA<ORACI"+ U/L ,A>) <OT
6.P.6.5 Lan!ar <ot
)ste caso de uso es el encar#ado de eAecutar el script del <ot indicado a
peticin del sistema Blan!amiento mediante la lan!aderaF o a peticin del
usuario Blan!amiento manualF.
(IA'RA/A P2. (IA'RA/A () I+T)RACCI"+ LAU+CI <OT
Contrato
02
Responsailidad )Aecuta un <ot. )stalece las comunicaciones si .iciera &alta 8
muestra el script en una nue=a =entana. *recondiciones +o puede estar
eAecut-ndose el mismo ot al mismo tiempo. *ostcondiciones ,e .a eAecutado un
<ot.
(iseGo )l caso de Uso comien!a con el mensaAe launc.q<otBF .acia el
controladorBmensaAe 2F. )ste crea un nue=o oAeto de la capa de ,er=icio
B,)q<otF el cual en=iar- el mensaAe para crear una nue=a coneCin a la capa de
comunicaciones BmensaAe 2.5.2F. *or Vltimo crea una nue=a reali!acin del oAeto
Launc.*adH el cual nos crear- la =entana de eAecucin del ot.
(IA'RA/A P5. (IA'RA/A () COLA<ORACI"+ U/L LAU+CI <OT
05
/ontar <ot
)ste caso de uso es el encar#ado de montar el sistema de arc.i=os necesario para
la eAecucin de un <ot.
(IA'RA/A P6. (IA'RA/A () I+T)RACCI"+ <UIL( <OT
Contrato
Responsailidad Constru8e el sistema de arc.i=os necesario para la eAecucin
de un <ot. *recondiciones (ee eCistir el directorio ra$! donde se =a a
montar el <ot. *ostcondiciones ,e .a montado el <ot.
(iseGo )l caso de uso comien!a con el mensaAe uild<otBF .acia el controlador
BmensaAe 2F. )ste retransmite el mensaAe al <ot Temporal para 4ueH Aunto con los
datos incluidosH monte el <ot en el directorio especi&icado en la durante el
diseGo del <ot.
(IA'RA/A PP. (IA'RA/A () COLA<ORACI"+ U/L <UIL( <OT
06
6.P.6.6 <ot *ortale
)ste caso de uso es el encar#ado de crear un arc.i=o LI* con los arc.i=os
necesarios para la eAecucin de un <ot en un directorio especi&icado.
(IA'RA/A PD. (IA'RA/A () I+T)RACCI"+ /Ae) *ORTA<L)
Contrato
Responsailidad Crea un nue=o arc.i=o LI* con el contenido de la carpeta
especi&icada. *recondiciones )l ot dee estar montado pre=iamente.
*ostcondiciones (iseGo ,e .a creado un arc.i=o LI* con un ot portale.
Cuando recie el mensaAe el controladorH esteH 4ue es eCperto en los datos para
poder reali!ar la operacinH crea el arc.i=o portale.
(IA'RA/A P@. (IA'RA/A () COLA<ORACI"+ U/L /Ae) *ORTA<L)
0P
6.P.6.P /ostrar Resultados
)ste caso de uso muestra los resultados en el pro#rama prede&inido del ,.O.
encar#ado de =isuali!ar arc.i=os C,>.
(ia#rama de interaccin
(IA'RA/A P0. (IA'RA/A () I+T)RACCI"+ ,IOK R),ULT,
Contrato
Responsailidad /uestra los resultados en el pro#rama prede&inido del ,.O.
encar#ado de =isuali!ar arc.i=os C,>. *recondiciones (ee eCistir una
aplicacin en el sistema de&inida a tal uso. ,e .a eAecutado el pro#rama =isor
de C,> con el documento. *ostcondiciones
(iseGo )n este caso de usoH se en=$a el mensaAe s.owResults al Controlador
indic-ndole 4ue tipo de resultados se desea otener. ,e#Vn la opcin mostrar-
los Vltimos resultados de un <ot o los resultados de un lan!amiento espec$&ico.
(IA'RA/A PR. (IA'RA/A () COLA<ORACI"+ U/L ,IOK R),ULT,
0D
6.D
)l ser=idor de <ots TC*
)l Administrador dee comunicarse de al#una manera con los ,.uttle<ots para
tener un intercamio de in&ormacin. )l sistema se ampliar- con un ser=idor TC*
para la #estin de las comunicaciones entre el Administrador 8 los ,.uttle<ots.
)l ser=idor de <ots pertenece a la capa de ,er=icios de la aplicacinH la cual
se uica dentro de la capa de ne#ocio. +ecesitamos traaAar sore un protocolo
&iale para controlar el estado de la coneCin 8 reciir correctamente los
resultados en el repositorio centrali!ado de arc.i=os. )s por ello 4ue el
protocolo TC* nos o&rece los re4uisitos necesarios para reali!ar este diseGo.
6.D.2 (ia#rama conceptual U/L
(IA'RA/A P7. (IA'RA/A CO+C)*TUAL ()L ,)R>I(OR () <OT,
,e aGaden los si#uientes conceptos: ,er=idor de <ots: 'estiona las
mVltiples coneCiones a los ots. ConeCin de <ot: )s el componente responsale
de la comunicacin indi=idual entre el script 8 el ,er=idor de <ots. <ot de
,er=icio: )ste componente contiene un <ot de la capa de ne#ocio 8 una plata&orma
de Lan!amiento. *lata&orma de Lan!amiento: )ste componente representa el oAeto
donde ser- eAecutado el <ot. *ara ello se re4uerir- de al#Vn componente para la
na=e#acin de p-#inas we.
0@
6.D.5 ConeCin TC* )l sistema propuesto necesita dotarse de al#Vn m%todo de
intercamio de in&ormacin entre las di&erentes aplicaciones 4ue lo componen.
Las aplicaciones pueden estar en di&erentes plata&ormas 8 adem-s est-n diseGadas
en di&erentes len#uaAes de pro#ramacin. )sto nos oli#a a utili!ar un uen
protocolo de comunicaciones con el oAeti=o de dotar al sistema de la =isin
distriuida 4ue 4ueremos. )l *rotocolo de Control de TransmisinH conocido
comVnmente por sus si#las en in#l%s TC* BTrans&er Control *rotocolFH nos o&rece
una comunicacin se#ura 8 una estandari!acin en todos los sistemas operati=os.
TC* es el protocolo m-s estandari!ado para este tipo de coneCiones. /Vltiples
protocolos de aplicacin lo utili!an: ITT*H ,/T*H ,,I 8 ;T*. )s por ello 4ue
nuestro sistema de intercamio de mensaAes ir- sore este protocolo.
6.D.5.2 Intercamio de /ensaAes TC*.
Los mensaAes de (atos entre las aplicaciones 4ue inte#ran ,.uttle se
transmitir-n dentro de se#mentos TC*. Un se#mento TC* es la unidad de datos del
protocolo 8 la &orman un conAunto de its 4ue representan la in&ormacin. )l
/ensaAe de ,.uttle es la unidad de datos de nuestro sistema. (istin#uimos dos
mensaAes di&erentes:
(IA'RA/A D1. /)+,AJ), () ,IUTTL)
00

/ensaAe del ,er=idor de <ots: )s el mensaAe 4ue en=$a el ,er=idor de <ots en el


inicio de la sesin TC*. )st- compuesto por cuatro campos: o o o o I(
,.uttle<ot: )ste campo indica el identi&icador del <ot. )l cual le ser=ir- al
<ot para #uardar el arc.i=o de in&ormacin. *eticin: )s el nVmero de la
&rontera 4ue construir- primero. +Vmero de +i=eles: )s el total de ni=eles 4ue
dee considerar el <ot. +i=el de )Ctraccin: A4u$ se indica el ni=el del cualH
el KorXminer procesar- la &rontera de rastreo.

/ensaAe de un ,.uttle<ot: )Cisten cuatro tipo de mensaAes: o g*h: In&ormacin de


+i=el. )l par-metro uno es el ni=el actual. )l par-metro dos el nVmero total de
ni=eles. o gTh: )stado de *roceso. )l par-metro uno son los anali!ados 8 el
par-metro dos el total a anali!ar. o gKh: In&ormacin del KorXminer. )l primer
par-metro es el ni=el de eCtraccin 8 el se#undo el total de ni=eles. o g;h: ;in
de proceso. )l primer par-metro es el total de resultados encontrados 8 el
se#undo es 1.
(IA'RA/A D2. I+T)RCA/<IO () /)+,AJ), () ,IUTTL)
0R
)Aemplo 5. /ensaAes de un caso &icticio de transmisin entre un ,.uttle<ot con
I( Tuare#<ot 8 un ,er=idor de <ots:
(IA'RA/A D5. (IA'RA/A () I+T)RCA/<IO () /)+,AJ), () ,IUTTL) CO+ (ATO, R)AL),
07
A continuacin mostraremos el pa4uete TC* T2RU 4ue en=$an nuestras aplicaciones
B(ia#rama D6F:
(IA'RA/A D6. *A:U)T) TC* () +U),TRA A*LICACI"+
(nde: *uerto de ori#en: B2@ itsF )l nVmero del puerto de ori#en.
*uerto de destino: B2@ itsF )l nVmero del puerto de destino. +Vmero de
secuencia: B65 itsF )l nVmero de secuencia del primer octeto de datos. +Vmero
de acuse de recio: B65 itsF ,i el it de control ACe est- puesto a unoH este
campo contiene el =alor del si#uiente nVmero de secuencia 4ue el emisor del
se#mento espera reciir. *osicin de los datos: BP itsF )l nVmero de palaras
de 65 its 4ue ocupa la caecera de TC*. Reser=ado: B@ itsF Reser=ado para uso
&uturo. <its de control: B@ itsF: o UR': Iace si#ni&icati=o el campo *untero
ur#ente. o ACe: Iace si#ni&icati=o el campo +Vmero de acuse de recio. o *,I:
;uncin de )ntre#ar datos inmediatamente. o R,T: Reiniciar la coneCin. o ,Q+:
,incroni!ar los nVmeros de secuencia. o ;I+: Sltimos datos del emisor. R1


>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

Conectar <ot: Crea una coneCin TC* entre el Administrador 8 un ot.


R2
6.@.6.2 Conectar <ot
)ste caso de uso es acti=ado cuando es necesario estalecer una comunicacin
indi=idual con un <ot. )ste caso de uso pertenece a la sucapa de ,er=icios.
(IA'RA/A DD. (IA'RA/A () I+T)RACCI"+ A(( <OT CO++)CTIO+
Contrato
Responsailidad Crea una coneCin con el <ot. *recondiciones +o .a8 nin#Vn
<ot con el mismo I( eAecut-ndose en estos momentos. *ostcondiciones Ia
&inali!ado la coneCin. ,i no .a8 m-s ots pendientes de conectar el ser=idor se
apa#ar-.
(iseGo
)n este caso de uso se introduce un controlador dedicado eCclusi=amente a las
comunicaciones BComm/ana#erF. Una =e! iniciado el caso de uso el controlador se
ase#urar- si est- en marc.a el ,er=idor de <ots. )n caso ne#ati=oH crear- una
nue=a reali!acin del mismo BmensaAe 2.2F. )n caso positi=o el controlador
indicar$a el ser=idor los par-metros para una coneCin inminente BmensaAe 2.5F.
(esde el inicio el ,er=idor siempre est- escuc.ando en usca de coneCiones
BmensaAe 2.2.5F. )n cuanto .a8 una peticin de un ,.uttle<otH este acepta la
coneCin 8 crea una nue=a ConeCin de <ot BmensaAe 2.5.2F. Al mismo tiempoH para
ase#urarse de 4ue se .a estalecido correctamente la coneCinH esperar- durante
un se#undo mediante el oAeto /aintenance BmensaAes 2.2.5.2 8 2.2.5.5F. Cuando
el se#undo .a8a transcurrido en=iar- el mensaAe 2.2.5.P a la ConeCin de <ot
para 4ue se cerciore del estalecimiento. La ConeCin de <ot lee los datos del
,.uttle<ot 8 los en=$a a la reali!acin del oAeto <ot en el sistema de
administracin R5
BmensaAe 2.5.6F. ,i la coneCin se interrumpe o se recie el mensaAe de
&inali!acin la coneCin se cierra. )n el caso de no pre=er nue=as coneCiones el
ser=idor se apa#a autom-ticamente.
(IA'RA/A D@. (IA'RA/A () COLA<ORACI"+ U/L A(( <OT CO++)CTIO+
R6
6.@
,.uttle /8 ,:L IndeCer
)l indeCador es el Vltimo mdulo a diseGar. )ste mdulo utili!a la
in&raestructura del administrador para lan!ar un ,cript mediante el cual se
indeCen los resultados en una ase de (atos /8 ,:L. Con este diseGo 4uedar$a
cerrado el diseGo de ,.uttle. Consi#uiendo pro=eer a un uscador tem-tico de
car-cter comparador una ase de datos con in&ormacin actuali!ada.
(IA'RA/A D0. I+T)R;AL () ,IUTTL) /Q ,:L I+()?)R
RP
6.@.P Al#oritmo del script )ste al#oritmo reali!a una peticin N4uer8O ,:L a la
<ase de (atos con&i#urada en el arc.i=o de con&i#uracin. )l indeCador lee el
arc.i=o C,> 8 car#a la con&i#uracin de la ase de datos. Reali!a una coneCin
/8,:L 8 crea una tala en la ase de datos indicada con el contenido del arc.i=o
de resultados.
(IA'RA/A DR. AL'ORIT/O () I+()?ACI"+
*I*/8Admin nos muestra el resultado de una indeCacin de un &ic.ero C,>:
CA*TURA () *A+TALLA 2R. *I*/QA(/I+ +O, /U),TRA )L CO+T)+I(O () LA <<<(
RD
6.@.D Ampliacin de los Casos de uso ,e aGaden los nue=os casos de uso:
IndeCador *ortaleH /ontar IndeCador 8 Lan!ar IndeCador.
(IA'RA/A D7. A/*LIACI"+ () LO, CA,O, () U,O B;A,) 6F

/ontar IndeCador: /onta el sistema de arc.i=os para la eAecucin de un
indeCador. IndeCador *ortale: Crea un arc.i=o LI* con un indeCador portale.
Lan!ar IndeCador: Lan!a el indeCador.
R@
6.0.5.2 /ontar indeCador
)ste caso de uso es el encar#ado de montar el sistema de arc.i=os necesario para
la eAecucin del indeCador.
(IA'RA/A @1. (IA'RA/A () I+T)RACCI"+ <UIL( I+()?)R
Contrato
Responsailidad Constru8e el sistema de arc.i=os necesario para la eAecucin
de un IndeCador. *recondiciones (ee eCistir el directorio ra$! donde se =a a
montar el IndeCador. *ostcondiciones ,e .a montado el IndeCador.
(iseGo
)l caso de Uso eAecuta el m%todo uildIndeCerBF )l controlador es eCperto en los
datos 8 monta el sistema de arc.i=os. Qa 4ue en la iniciali!acin del sistema
estos se .an re&erenciado.
(IA'RA/A @2. (IA'RA/A () COLA<ORACI"+ <UIL( I+()?)R
R0
6.0.5.5 IndeCador *ortale
)ste caso de uso es el encar#ado de crear un arc.i=o LI* con los arc.i=os
necesarios para la eAecucin de un <ot en un directorio especi&icado.
(IA'RA/A @5. (IA'RA/A () I+T)RACCI"+ /Ae) I+()?)R *ORTA<L)
Contrato
Responsailidad Crea un nue=o arc.i=o LI* con el contenido de la carpeta
especi&icada. *recondiciones )l indeCador dee estar montado pre=iamente.
*ostcondiciones (iseGo ,e .a creado un arc.i=o LI* con un indeCador portale.
Cuando recie el mensaAe el controladorH esteH 4ue es eCperto en los datos para
poder reali!ar la operacinH crea el arc.i=o portale.
(IA'RA/A @6. (IA'RA/A () COLA<ORACI"+ /Ae) I+()?)R *ORTA<L)
6.0.5.6 Lan!ar IndeCador
)ste caso de uso es el encar#ado de eAecutar el script del IndeCador. )l
indeCador es un scriptH i#ual 4ue el otH es por ello 4ue se apro=ec.a la
in&raestructura montada para el caso de uso Lan!ar <ot. La di&erencia es 4ue
en=iamos los datos espec$&icos del indeCador 8 el resto de par-metros los
deAamos a nuloH &also o a 1. RR
(IA'RA/A @P. (IA'RA/A () COLA<ORACI"+ LAU+CI <OT
6.0
(ia#rama de clases simpli&icado
)n el dia#rama de clases simpli&icado podemos =er la interaccin de las clases
diseGadas Bdia#rama @DF. )stas clases corresponden a la capa de ne#ocio de la
aplicacin del Administrador:
(IA'RA/A @D. (IA'RA/A () CLA,), ,I/*LI;ICA(O
R7
I>.
I/*L)/)+TACI"+
P.2
,o&tware utili!ado
A continuacin se eCpondr- las .erramientas principales utili!adas en la
implementacin del pro8ecto. ,e clasi&ican por el -mito de uso: Len#uaAes de
pro#ramacinH ases de datosH entornos de desarrollo 8 .erramientas de ser=icio.
P.2.2 Len#uaAes de pro#ramacin
P.2.2.2 Ja=a 2.0 Ja=a es uno de los len#uaAes m-s populares .o8 en d$a. )s de
propsito #eneral 8 orientado a oAetos. )sto nos permite adaptar el diseGo 4ue
.emos desarrollado a Ja=a sin demasiados prolemas. Ja=a est- asado en
&ra#mentos de cdi#o reutili!ales llamados clases. )stas clases representan
oAetos astractos con datos 8 m%todos propios. Al cominar los oAetos nos
permite una pro#ramacin &leCileH -#ilH 8 &-cil de aGadir camios en los
re4uisitos. Al#o &undamental para este pro8ectoH asado en la in=esti#acin de
una nue=a metodolo#$aH es el poder modi&icar el diseGo 8 se#uidamente la
ILU,TRACI"+ 6. implementacin. )sto .a permitido reali!ar el desarrollo -#il
propuesto en el LO'O () JA>A diseGo.
P.2.2.5 *I* D.P *I* BI8perteCt *re3processorF es otro len#uaAe de propsito
#eneral. A di&erencia de Ja=aH este no est- orientado a oAetos. )s secuencial 8
apenas se suelen escriir m%todos o &unciones. )s un len#uaAe interpretadoH es
decirH no lle#a a compilarse. La aplicacin creada con *I* es un script de
cdi#o 4ue es eAecutado a tra=%s de un na=e#ador 8 procesado en un ser=idor ITT*
con soporte a este ILU,TRACI"+ P. LO'O () *I* len#uaAe. )sto .ace 4ue podamos
arir una p-#ina we en *I*H =er el contenidoH pero no su&rir el impacto de los
procesos en nuestra m-4uinaH 8a 4ue *I* se eAecuta en la m-4uina del ser=idor.
*I* es un len#uaAe ideal para encomendarle la tarea de rastreo de in&ormacin.
*odremos crear el cdi#o desde nuestra aplicacin Ja=aH aloAarlo en un tercer
e4uipo 8 eAecutarlo a tra=%s de Ja=a.
71
P.2.5 <ases de datos
P.2.5.2 /8,:L /8,:L es un sistema de #estin de ases de datos desarrollado por
Oracle 8 con licencia '+U '*L. )ste sistema nos permite .acer consultas en la
ase de datos utili!ando un len#uaAe relacional llamado ,:L. ,:L nos permite
operar en la ase de datos mediante instrucciones 4ue pueden ser lan!adas desde
terceros len#uaAes como Ja=a 8 *I*. /8,:L est- &uertemente li#ado al se#undoH 8a
4ue amos suelen aparecer Auntos en suites de so&tware para la creacin de
sitios wes din-micos.
ILU,TRACI"+ D. LO'O () /Q,:L
)n la implementacin se .a utili!ado en el mdulo indeCador con el oAeti=o de
o&recer una &uncionalidad de indeCacin para este tipo de ases de datos tan
popular.
P.2.6 )ntorno de (esarrollo P.2.6.2 +et<eans 0.5
+et<eans es un entorno de desarrollo para pro#ramar en mVltiples len#uaAes.
Concretamente .emos traaAado con +et<eans 0.5 para Ja=a 2.0. Adem-sH eCisten
mVltiples plu#ins 8 mdulos para ampliar sus &uncionalidades. )sta plata&orma
nos permite desarrollar el cdi#o Ja=a mediante mdulos Ja=a 4ue contienen
clases de Aa=a 4ue interactVan con las lirer$as de +et<eans.
ILU,TRACI"+ @. LO'O () +)T<)A+,
'racias a esta .erramienta podemos eCplotar al m-Cimo las caracter$sticas de
Ja=a 8H por eCtensin de nuestro diseGo.
72
CA*TURA () *A+TALLA 27. I/*L)/)+TACI"+ () ,IUTTL) CO+ +)T<)A+,
P.2.P Ierramientas de ser=icios P.2.P.2 )as8*I* )as8*I* es una suite de so&tware
4ue nos con&i#ura un ser=idor ITT* Apac.e con soporte *I*. )l ser=idor Apac.e es
de la '+U ;undation 8 es el ser=idor we m-s distriuido del mundo. Adem-sH nos
con&i#ura e instala el sistema de #estin /8,:L autom-ticamente. +os o&rece un
panel de administracin 8 una aplicacin de escritorio para con&i#urarlo.
ILU,TRACI"+ 0. LO'O () )A,Q*I*
)n el pro8ecto se .a utili!ado para montar ser=idores ITT* con soporte *I* 8
<ases de datos ,:L de eAemplo donde poder .acer prueas de la implementacin. )s
recomendale .ailitar la lirer$a CURL de *I*H 8a 4ue muc.as suites como
)as8*I* =iene des.ailitada por de&ecto.
75
P.5
Inter&a! 'r-&ica
)n este cap$tulo se mostrar- la inter&a! #r-&ica de la aplicacin. )sta inter&a!
la componen seis pantallas. *ara construirla se .an desarrollado mVltiples
clases en Ja=a 4ue detallaremos a continuacin. P.5.2 Inter&a! *antalla
principal
CA*TURA () *A+TALLA 51. *A+TALLA *RI+CI*AL
Cuando iniciamos el pro#ramaH la primera pantalla en aparecer es la *antalla
*rincipal. )sta inter&a! se constru8e a tra=%s de la clase Inter&aceqmain.Aa=a
del pa4uete ,.uttle. La =entana se compone de una otonera donde podemos acceder
a las principales &uncionalidades del ,istema. Los tres primeros otones
corresponden al control de la Lan!adera BIniciarH *arar 8 ResetF. Los tres
se#undos nos deAan acceder a las inter&aces del administrador de ,itiosH el
(iseGador de <ots 8 el *anel de Opciones. Tami%n encontramos in&ormacin Vtil
como es el estado de la cola de Lan!amiento. )n la talaH 4ue podemos oser=ar
en la captura de pantalla 51 aparecen todos los lan!amientos al iniciar la
Lan!adera.
76
P.5.5 Inter&a! del Administrador de ,itios
CA*TURA () *A+TALLA 52. A(/I+I,TRA(OR () ,ITIO,
La inter&a! del Administrador de ,itios est- creada eCpresamente para el caso de
uso crear a modi&icar ,itio. *odemos oser=ar 4ue contiene una lista de ,itios 8
los otones correspondientes para crearlos 8 modi&icarlos. Los campos 4ue
aparecen son: +omre: Identi&icador del ,itio. (ominio a
,emilla: (ominio del ,itio o la semilla por la cual comen!ar- el proceso de
eCtraccin de linXs. (escripcin: Campo para notas o la descripcin del propio
,itio. URL de <ot: (ireccin del <ot a eAecutar. )Cterno: ,i est- acti=o el
,istema eAecutar- el ,cript del campo URL de <ot. ,.uttle<ots: Lista donde
aparecen re&erenciados los ,.uttle<ots creados por el (iseGador. Lan!amientos
pro#ramados: A4u$ nos aparece la in&ormacin de los lan!amientos pro#ramados.
<otonera de lan!amiento: )n la otonera encima de la lista podemos crear o
eliminar lan!amientos. Tami%n posee los otones correspondientes los casos de
uso /ostrar Resultados 8 Lan!ar IndeCador. )n el caso de crear un lan!amiento se
nos arir- una inter&a! auCiliar para dic.a secuencia del caso de uso.
7P
P.5.6 Inter&a! AuCiliar +ue=o Lan!amiento
CA*TURA () *A+TALLA 55. +U)>O LA+LA/I)+TO
La inter&a! +ue=o Lan!amiento aparece al pulsar el otn 4ue inicia la secuencia
de +ue=o Lan!amiento. )n ella podremos pro#ramar los lan!amientos 4ue la
lan!adera eAecutar-. )sta inter&a! consta de dos paneles: ,.uttle<ot: o +i=el
inicial: +i=el por el cual empe!ar- la reco#ida de linXs. o +i=el de )Ctraccin:
+i=el en el cual el KorXminer uscar- patrones. o )Ctraccin en ,emilla: Opcin
para eCtraer solo en semilla. o (es.ailitar ;ronteras: (es.ailita la reco#ida
de linXs. o (es.ailitar KorXminer: (es.ailita la Vs4ueda de patrones.

Calendario de Lan!amiento: o ;ec.a inicial: ;ec.a en la cual se producir- la


eAecucinW en caso de ser diaria ser- la primera =e! 4ue se lance. o ;ec.a de
;inali!acin: Sltimo d$a en el cual se eAecutar- un lan!amiento diario. o
Repetir cada d$a: Indicador para poder pro#ramar lan!amientos diarios.
7D
P.5.P (iseGador de <ots
CA*TURA () *A+TALLA 56. (I,)JA(OR () <OT, Z *A+TALLA ()L (I,)JO ()L KORe/I+)R
7@
CA*TURA () *A+TALLA 56. (I,)JA(OR () <OT, 3 *A+TALLA () (I,)JO () R)COL)CCI"+ ()
LI+e,
)sta es la inter&a! m-s compleAa. (esde esta =entana dotamos de comportamientoH
lan!amos oa8 montamos ,.uttle<ots.
70
)ncontramos una otonera principal en el lateral derec.o. )n estos cuatro
otones se inician los casos de uso Lan!ar <otH /ontar <ot 8 <ot *ortale.
Adem-s incorpora la Vltima secuencia del caso de uso Creara/odi&icar <otH
representado por el otn #uardar. )n la pantalla tenemos tres pestaGas
principalesH correspondientes a cada repositorio del ,istema: <otsH KorXminer 8
;rontera de rastreo B+i=elesF. Junto a la in&ormacin re4uerida para crear o
modi&icarlos. *anel superior: A4u$ aparece el repositorio de <otsH el otn
nue=o 8 eliminar <ot. Adem-s contiene in&ormacin -sica del <ot: +omreH URLH
UicacinH ,itio prede&inidoH *rotocolo Roots T?T 8 'ap de tiempo. *anel
in&erior: Consta de dos pestaGas principalesH cada una dedicada a la
con&i#uracin del al#oritmo del ,.uttle<ot. o *estaGa KorXminer: A4u$ se crean 8
se modi&ican los KorXminers 8 sus patrones. o *estaGa de ;ronteras de
pro&undidad: ,e con&i#uran los ni=eles de eCtraccin.

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

CA*TURA () *A+TALLA 65. *RO'RA/AR U+ +U)>O LA+LA/I)+TO


,e .a introducido un mecanismo para &acilitar la seleccin de &ec.a mediante un
asistente de calendario:
CA*TURA () *A+TALLA 66. I+T)R;AL () CAL)+(ARIO
Una =e! editados los datosH 8a sea por el caso de uso Crear ,itio o /odi&icar
,itioH pulsaremos el otn #uardar. ,e#uidamente se eAecutar- el al#oritmo para
sal=ar la in&ormacin en el sistema T21U:
217
CA*TURA () *A+TALLA 6P. A(/I+I,TRA(OR () ,ITIO,
A partir de este punto 8a es el controlador BucrF 4uien se ocupa de #estionar
las Vltimas secuencias de los caso de uso pro#ramados. )n el &ra#mento de cdi#o
&uente D podemos =er como se in=oca el m%todo del controlador encar#ado de
in=ocar la secuencia del caso de uso para modi&icar. La inter&a! reco#e los
datos de una =ariale temporal: Temporal,ite. )sta =arialeH es un sitio
temporal 4ue se .a creado eCpresamente para 4ue el usuario solo modi&i4ue la
in&ormacin en caso de #uardarla 8 pueda des.acer camios si lo desea. )sta
metodolo#$a est- asada en el principio de la incorporacin tard$a estudiado en
In#enier$a del ,o&tware I:
C"(I'O ;U)+T) D. I+>OCACI"+ ()L /fTO(O /O(I;Q,IT)
221
P.D.5 Control de la Lan!adera )l control de la lan!adera se lle=a a cao
mediante el panel lateral de la =entana principal de del administrador de
sitios. Una =e! introducido los lan!amientos a tra=%s de los casos de uso
anterioresH el sistema nos permite ponerla en marc.a. )sta accin se reali!a
mediante el otn Iniciar T2U.
CA*TURA () *A+TALLA 6D. LOCALILACI"+ ()L <OT"+ I+ICIAR
(ic.a accin eAecutar- el caso de uso Iniciar Lan!adera. )n el cdi#o &uente @
podemos oser=ar el inicio del caso de uso mediante el controlador BucrF. )l
caso de uso de=uel=e cierto o &also si se .a podido iniciar. )ste mecanismo nos
permite de&inir el comportamiento de la inter&a! adecuado al caso de uso:
C"(I'O ;U)+T) @. I+ICIO ()L CA,O () U,O I+ICIAR LA+LA()RA
222
Una =e! iniciada la lan!aderaH el monitor nos o&rece la in&ormacin -sica de
los lan!amientos para el d$a de actual T5U. Recordamos 4ue el sistema tiene
implementado un mecanismo por el cual se reinician lan!amientos en caso de estar
eAecut-ndose en un camio de d$aH mes o aGo. )n caso de .aer eAecuciones
pro#ramadas en el sitioH nos deAar- .ailitados los otones *arar 8 ResetH los
cuales in=ocan los casos de uso *arar Lan!adera 8 Reiniciar Lan!adera.
CA*TURA () *A+TALLA 6@. LOCALILACI"+ () LO, <OTO+), *ARAR Q R),)T
P.D.6 (iseGar ,.uttleots *ara diseGar un ,.uttle<ot deemos acceder al
(iseGador de <ots pulsando el otn <ots de la pantalla principal T2U:
CA*TURA () *A+TALLA 60. LOCALILACI"+ ()L <OT"+ <OT,
Una =e! reali!ada la accinH nos aparecer- la =entana del (iseGador (e <otsH la
cual descriimos en el punto P.5.5.5 de este documento: 225
CA*TURA () *A+TALLA 6R. (I,)JA(OR () <OT,
*ara crear un ,.uttle<ot lo primero ser- seleccionar el <otn +ue=o e introducir
los datos #enerales del <ot: +omreH URLH Uicacin 8 seleccionar un ,itio
*rede&inido T5U. Adem-s podemos con&i#urar las pol$ticas de <uen Uso del
,.uttle<ot T6U: )s posile asi#nar un tiempo de + se#undosH lo cual indicar- al
,.uttle<ot 4ue tiempo dee detenerse cada =e! 4ue =a a entrar a una p-#ina
nue=a. Con ello conse#uimos no saturar ni nuestro ser=idor ni el ser=idor donde
se aloAe el sitio. Adem-s podemos acti=ar el *rotocolo de )Cclusin de Roots
para detectar si nuestro <ot es deseado.
CA*TURA () *A+TALLA 67. *A+)L ,U*)RIOR () LA I+T)R;AL ()L (I,)JA(OR () <OT,
A continuacin se pueden diseGar la eCtraccin de datos 8 las &ronteras mediante
las pestaGas KorXminer 8 ;ronteras de Rastreo:
CA*TURA () *A+TALLA P1. *),TAJA, KORe/I+)R Q ;RO+T)RA, () RA,TR)O
226
*ara proceder al diseGo de la eCtraccin de datos se dee con&i#urar al menos un
KorXminer. *ara aGadirloH deemos pulsar el otn b del panel del KorXminer TPU.
)n la pantalla 4ue aparecer-H el usuario puede con&i#urar el nVmero de patrones
4ue se espera reconocer 8H si se deseaH prede&inir el KorXminer por de&ecto.
Tami%n eCiste la posiilidad de des.ailitarlo en los lan!amientos manuales
TDU.
CA*TURA () *A+TALLA P2. *A+)L () (I,)JO ()L KORe/I+)R
Los KorXminers utili!an patrones para reconocer el teCto de un sitio. *ara
a#re#ar patrones deemos pulsar el otn b del panel de (iseGo de *atrn T@U e
introducir una eCpresin re#ular. ,e#uidamente deemos seleccionar el tipo de
eCtraccin T0U 8 con&i#urarla se#Vn el diseGo descrito en el punto 6.6.6.5 de
este documento. Con el oAeti=o de &acilitar el diseGo del *atrn se .a aGadido
un asistente para reali!ar patrones simples. *ara acceder deemos pulsar el
otn del asistente TRU. >amos a con&i#urar un patrn de eAemplo. *ara ello
entraremos al sitio we de )l *eridico 8 =amos a eCtraer el resumen de la
noticia principal de cada seccin T7U:
22P
CA*TURA () *A+TALLA P5. *M'I+A K)< () t)L *)RI"(ICOt
,i inspeccionamos el cdi#o para uscar un patrn podremos esco#er un candidato
T21UH el cual lo podremos copiar en asistente T22U:
CA*TURA () *A+TALLA P6. C"(I'O ;U)+T) () U+A *M'I+A () t)L *)RIO(ICOt
22D
Una =e! .emos copiado el cdi#o IT/L o teCtoH seleccionaremos la parte 4ue
deseamos eCtraer del patrn T25U. ,e#uidamenteH .aremos el proceso in=erso en el
si#uiente recuadroH ,eleccionaremos el teCto 4ue siempre =a a camiar en el
patrn T26U 8 otendremos el resultado en el Vltimo recuadro T2PU:
CA*TURA () *A+TALLA PP. A,I,T)+T) () *ATRO+),
)l resultado nos aparecer- copiado en el campo *atrnH listo para #uardarlo
T2@U. Cuando .a8amos acaado con los patronesH podremos #uardar el KorXminer
T20U.
CA*TURA () *A+TALLA PD. CA/*O () *ATR"+
Una =e! con&i#urado la eCtraccin =amos a diseGar la recoleccin de linXs. *ara
ello pulsaremos la pestaGa de ;ronteras de Rastreo. )n esta pestaGa podemos
diseGar el comportamiento de la recolecta de linXs de cada &rontera. Las
&ronteras son el conAunto de linXs 4ue elaora el al#oritmo de &ronteras por
cada ni=el del ,itio. *or elloH con&i#uraremos los ni=eles se#Vn su pro&undidad
en el ,itioH partiendo desde la semilla T2RU:
22@
CA*TURA () *A+TALLA P@. (I,)JO ()L AL'ORIT/O () ;RO+T)RA, () *RO;U+(I(A(
*ara crear un nue=o ni=el pulsaremos el otn b en el repositorio de +i=eles de
)Cploracin T27U. ,e#uidamente se .ailitar- el panel para lo con&i#uracin del
ni=el T51U. )n %lH podremos con&i#urar el comportamiento del al#oritmo: Cerrar
la &ronteraH autocompletar los linXs con el dominio o marcar el ni=el actual
como prede&inidoW adem-sH podremos con&i#urar los &iltros de URL restrin#iendo
la recolecta de linXs a casos determinados T52U. Cada =e! 4ue deseemos #uardar
el ni=el pulsaremos el otn diseGado a tal &in T55U. *odemos diseGar tantos
ni=eles como se deseen. Una =e! diseGados todosH #uardaremos el ot T56U. A
partir de esta accin el sistemaH i#ual 4ue pas con los sitiosH #uardar- la
in&ormacin del <ot Temporal 4ue se .a ido #enerando en un ,.uttle<ot temporal
4ue ser- almacenado en el repositorio de <ots. A continuacin podemos =er la
in=ocacin de la Vltima secuencia de los casos de uso /odi&icar <ot 8 Crear <ot:
C"(I'O ;U)+T) 0. <OT"+ 'UAR(AR
Una =e! completado el procesoH el ,.uttle<ot 8a est- listo para montarse 8
lan!arse. ,i el diseGo es el correctoH deer$amos encontrar resultados. ,i no
los .emos encontrado deeremos de re=isar las restricciones en el comportamiento
dotado al ,.uttle<ot.
220
P.D.P Lan!amiento manual de un ,.uttle<ot *ara lan!ar manualmente un ,.uttle<ot
deemos acceder al (iseGador de <ots pulsando el otn <ots de la pantalla
principal T2U:
CA*TURA () *A+TALLA P0. LOCALILACI"+ ()L <OT"+ <OT,
,eleccionaremos un ,.uttle<ot del Repositorio T5U:
CA*TURA () *A+TALLA PR. R)*O,ITORIO () ,IUTTL)<OT,
,e#uidamente el usuario puede des.ailitar el KorXminer T6U o el al#oritmo de
;ronteras TPU de rastreo. Adem-sH podr- con&i#urar la eCtraccin sea en la
semilla TDU.
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
Una =e! con&i#urado el lan!amiento pulsamos el <otn Lan!arH el cual iniciar- el
mecanismo de lan!amiento del ,istema T@U.
)
CA*TURA () *A+TALLA D2. LOCALILACI"+ ()L <OT"+ LA+LAR
)n esta &uncionalidad concurren dos procesos en paraleloH el primero se encar#a
de eAecutar el ot con el caso de uso Lan!ar <ot 8 el se#undo es el
estalecimiento de la coneCin TC* por parte del ,er=idor de <ots. )l ser=idor
de <ots es transparente al usuario pero se acti=a 8 desacti=a autom-ticamente
se#Vn se re4uiera. ,i el sistema espera una coneCin el ser=idor de <ots se
enciende 8 en cuanto no pre=% nue=as coneCiones se apa#a. )ste proceso lo
podemos =er simpli&icado en la consola del ,istema de la pantalla principal:
CA*TURA () *A+TALLA D5. CO+,OLA ()L ,I,T)/A
227
)n la captura de pantalla D5 podemos =er como el ,er=idor de ots crea la
coneCin 8 reali!a un intercamio de mensaAes. A continuacin =amos a =er un
&ra#mento del cdi#o de la clase <otConnection.Aa=a:
C"(I'O ;U)+T) R. /fTO(O R)C)*TOR () /)+,AJ), ()L ,)R>I(OR () <OT,
)n el cdi#o &uente R podemos oser=ar cmo se tratan los mensaAes 4ue reciimos
a tra=%s del oAeto NrecepcionO. )ste oAeto es una reali!acin de la clase
<u&&eredReader.Aa=a de la lirer$a Aa=a.utils de Ja=a 0.2. Tami%n utili!amos la
lirer$a ,trin#ToXeni!er para tratar el teCto reciido desde el ,.uttle<ot. *or
el lado del ,.uttle<ot en=iamos los mensaAes mediante la &uncin &write de *I*.
Utili!amos una =arialeH ksocXetH 4ue contiene la coneCin con ,.uttleAdmin:
C"(I'O ;U)+T) 7. )+>IO () U+ /)+,AJ) () ,IUTTL)
251
Una =e! reali!ada la coneCin nos aparecer- la =entana de lan!amiento de
,.uttle<ot donde podremos =er el estado de la eAecucin del ot. )n esta
inter&a! podremos =er la in&ormacin del proceso T0U. )sta in&ormacin la en=$a
el ,.uttle<ot a tra=%s del ,er=idor de <ots. La parte in&erior corresponde al
estado de los procesos del ,.uttle<ot TRU. )n el contenido del -rea central se
muestra la propia inter&a! del ,.uttle<otH la cual reciimos a tra=%s del
protocolo ITT*. )l ,.uttle<ot es una p-#ina we din-micaH 4ue nos sir=e
in&ormacin 8 reali!a el proceso en el ser=idor we donde est- aloAado.
CA*TURA () *A+TALLA D6. U+ ,IUTTL)<OT )+ )J)CUCI"+
)l tiempo en reali!arse todo el proceso puede ir desde unos minutos a .oras. )l
tiempo depende del tamaGo del sitioH de las restricciones del diseGo 8 las
pol$ticas de uen uso con&i#uradas. Una =e! acaado el procesoH la inter&a!
indicar- el nVmero de resultados en la arra de estado T7U. ,i no pulsamos el
candado de la es4uina in&erior derec.a T21UH se cerrar- autom-ticamente en die!
se#undos la =entana. ,i por el contrario .emos pulsado el candado podremos =er
los resultados de la eCtraccin T22U. A4u$ podremos =er cmo .an &uncionado
nuestros patrones 8H as$H meAorar los resultados.
252
CA*TURA () *A+TALLA DP. )?TRACCI"+ () I+;OR/ACI"+
)n el &ra#mento de cdi#o &uente 21 4ue pertenece al ,.uttle<otH podemos =er
como reali!a la coneCin we utili!ando los linXs de la &rontera. )ste proceso
se respalda en la lirer$a CURLi de *I*. Un ,.uttle<ot se identi&ica como un
na=e#ador we. )sto &acilitar- su deteccin por parte de los administradores del
,itio al cual accedemos.
C"(I'O ;U)+T) 21. CO+)?I"+ ITT* ()L ,IUTTL)<OT
*odemos =er otros elementos como un sleepH 4ue esceni&ica el #ap o tiempo a
esperarW o el en=$o de un mensaAe a tra=%s del socXet.
255
P.D.D /ontar un ,.uttle<ot *ara montar un ,.uttle<ot deemos acceder al
(iseGador de <ots pulsando el otn <OT, de la pantalla principal T2U:
CA*TURA () *A+TALLA DD. LOCALILACI"+ ()L <OT"+ <OT,
Una =e! en el (iseGador de <otsH seleccionaremos el ,.uttle<ot a montar del
repositorio de <ots T5U:
CA*TURA () *A+TALLA D@. R)*O,ITORIO () <OT,
,e#uidamenteH deemos pulsar el otn /ontar T6U. )l cual crear- la estructura
de arc.i=os TPU necesaria para la eAecucin de un ,.uttle<ot.
256
CA*TURA () *A+TALLA D0. LOCALILACI"+ ()L <OT"+ /O+TAR
CA*TURA () *A+TALLA DR. ARCII>O, )+ LA CAR*)TA ()L ,IUTTL)<OT
)n el &ra#mento de cdi#o BCdi#o &uente 22FH podemos =er el inicio del m%todo
mount<otB...F de la clase <Oq<ot.Aa=a. )n %lH =emos la creacin del arc.i=o
inicial de con&i#uracin del ,.uttle<ot Bini.con&F. ,e utili!a la clase
,)q;ile/ana#er.Aa=aH un ser=icio implementado para #estionar arc.i=os. )n el
al#oritmo oser=amos cmo se crea el sistema de arc.i=os mediante la instruccin
&older.mXdirsBF. ,e escrien los datos del <ot en los arc.i=os mediante las
lirer$as ;ileKriterH ;ile 8 <u&&eredKritter:
25P
C"(I'O ;U)+T) 22. /fTO(O /OU+T<OT
P.D.@ 'enerar un ,.uttle<ot *ortale A =eces puede ser necesario instalar
manualmente un ,.uttle<ot. ,i el usuario no es el administrador del e4uipo donde
se =a a instalarH es posile 4ue no ten#amos acceso al sistema de &ic.eros de
dic.o e4uipo. )ste prolema puede ocasionar 4ue ,.uttle no pueda montar el
,.uttle<ot por causas aAenas al diseGo. *or eAemploH un ,.uttle<ot puede estar
instalado en una red pri=ada en *eX$n 8 el administrador estar en Londres. ,i el
usuario 4uiere modi&icar el ,.uttle<otH el sistema le proporciona la
&uncionalidad de crear los arc.i=os en un &ic.ero comprimido LI*. As$ el
,.uttle<ot estar- listo para ser en=iado a su destino para su instalacin
mediante al#Vn sistema de mensaAer$aH como el correo electrnico o el ;T*. *ara
montar un ,.uttle<ot deemos acceder al (iseGador de <ots pulsando el otn <OT,
de la pantalla principal T2U:
25D
CA*TURA () *A+TALLA D7. LOCALILACI"+ ()L <OT"+ <OT,
,eleccionamos i#ual 4ue en el caso anterior el <ot. )n la inter&a! aparecer- el
otn portale .ailitado en caso 4ue .a8a sido montado al#una =e!H si noH
deer- montarlo. T5U.
CA*TURA () *A+TALLA @1. LOCALILACI"+ ()L <OT"+ *ORTA<L)
Con la accin anterior se inicia el caso de uso <ot *ortale. )l sistema crear-
un arc.i=o LI* mediante la clase ,)q;ile/ana#er. )n ella encontramos el m%todo
createqLipB...FH el cual podemos =er en el cdi#o 4ue aparece a continuacin.
*odemos oser=ar como creamos el arc.i=oH leemos los 8tes de los arc.i=os 8 los
=amos escriiendo en el LI* respald-ndonos en la lirer$a Aa=a.util.!ip :
25@
C"(I'O ;U)+T) 25. ')+)RACI"+ ARCII>O LI*
P.D.0 /ostrar Resultados )sta &uncionalidad implementa el caso de uso /ostrar
Resultados. *ara mostrar los resultados el usuario tiene dos =$asH puede =er los
Vltimos resultados de un ,.uttle<ot o =er los resultados de lan!amientos
anteriores. *ara =er los Vltimos resultados de un ,.uttle<ot deeremos de
acceder al (iseGador de <ots T2U:
CA*TURA () *A+TALLA @2.LOCALILACI"+ ()L <OT"+ <OT,
Una =e! dentro del (iseGador de <otsH seleccionaremos el ,.uttle<ot 4ue deseemos
8 pulsaremos sore el otn diseGado a tal e&ecto T5U.
250
CA*TURA () *A+TALLA @5. LOCALILACI"+ ()L <OT"+ R),ULTA(O,
Una =e! pulsado este otnH ,.uttle eAecutar- el pro#rama por de&ecto del
,istema Operati=o para leer arc.i=os C,>. )n el cdi#o &uente BCdi#o &uente
26FH podemos =er como eAecutamos la aplicacin lectora de C,>H para ello
indicamos el arc.i=o de Vltimos resultados a la lirer$a RuntimeH este arc.i=o
de resultados lle=a el nomre del ,.uttle<ot:
C"(I'O ;U)+T) 26. /fTO(O /O,TRAR R),ULTA(O,
,i lo 4ue deseamos es =er los resultados de lan!amientos eAecutados por la
Lan!aderaH accederemos al Administrador de ,itios T6U. All$ encontraremos un
otn 4ue se .ailitar- si un lan!amiento los .a otenido TPU:
25R
CA*TURA () *A+TALLA @6. LOCALILACI"+ ()L <OT"+ ,ITIO,
CA*TURA () *A+TALLA @P. <OT"+ *ARA /O,TRAR LO, SLTI/O, R),ULTA(O, () U+
LA+LA/I)+TO
A continuacin un eAemplo de un =isor de C,>. ,e trata del conocido procesador
de .oAas de c-lculo /, )Ccel:
257
CA*TURA () *A+TALLA @D. ARCII>O C>, () R),ULTA(O, 3 /ICRO,O;T )?C)L 5121
P.D.R Lan!ar el IndeCador ,i el usuario lo re4uiereH el sistema le o&rece una
&uncionalidad para poder suir resultados a una ase de datos /8 ,:L. *ara ello
deemos pulsar el otn ,itios de la pantalla principal T2U:
CA*TURA () *A+TALLA @@. LOCALILACI"+ ()L <OT"+ ,ITIO,
261
,eleccionamos un lan!amiento 8H si este otu=o resultados durante la eAecucin
del ,.uttle<ot =eremos .ailitado el otn para eAecutar el IndeCador T5U:
CA*TURA () *A+TALLA @0. LOCALILACI"+ <OT"+ LA+LAR I+()?A(OR
+os aparecer- la =entana de eAecucin de <otsH pero esta =e! en =e! de un
,.uttle<ot =eremos la inter&a! del indeCador:
CA*TURA () *A+TALLA @R. )J)CUCI"+ ()L I+()?A(OR
262
Una =e! &inali!ado el proceso podremos consultar en nuestra ase de datos /8 ,:L
el contenido de la nue=a tala. )l portalH uscador =ertical o aplicacin m=il
4ue est% conectada a esta ase de datos podr- utili!arlos como &uente de
in&ormacin para su ne#ocio. *odemos =er se#uidamente un eAemplo de la tala
#enerada:
CA*TURA () *A+TALLA @7. *I*/QA(/I+ +O, /U),TRA LA TA<LA () LA <A,) () (ATO,
P.D.7 Con&i#uracin 'eneral La con&i#uracin #eneral del Administrador se
reali!a mediante el Asistente de con&i#uracin del sistema. *ara acceder deemos
.acer clic en el otn Opciones de la pantalla principal T2U:
CA*TURA () *A+TALLA 01. LOCALILACI"+ ()L <OT"+ O*CIO+),
Al pulsar nos aparecer- el asistente de con&i#uracin del ,istema. )n la =entana
nos aparecen dos pestaGas: IndeCador 8 <ot,er=er T5U:
265
CA*TURA () *A+TALLA 02. *),TAJA, I+()?A(OR Q <OT,)R>)R

Con&i#uracin del IndeCador: ,e compone de dos -reas. )n la primera introducimos


la con&i#uracin de la coneCin de la ase de (atos ,:L T6U. )n la se#unda -rea
TPUH encontramos la uicacin donde se montar- el indeCador 8 la URL donde se
aloAar- el ,cript. Aun4ueH tiene un tratamiento especialH por parte del sistemaH
se .a apro=ec.ado la in&raestructura de los ,.uttle<ots para poder montar el
IndeCador 8 .acerlo portale. )sto se consi#ue utili!ando los otones /ontar
IndeCador 8 IndeCador portale TDU.
CA*TURA () *A+TALLA 05. CO+;I'URACI"+ ()L I+()?A(OR

Con&i#uracin del ,er=idor de <ots: )n esta pestaGa podemos con&i#urar el *uerto


TC* donde se reali!ar- la coneCin 8 la direccin I* del e4uipo donde est%
aloAado ,.uttleAdmin.
266
CA*TURA () *A+TALLA 06. CO+;I'URACI"+ ()L ,)R>I(OR () <OT,
Una caracter$stica de la implementacin de esta &uncionalidad es el oAeto
diseGado para #uardar los datos de con&i#uracin: <OqOptions.Aa=a. Una
reali!acin de este oAeto la #uarda el controlador. )sto nos #aranti!a poder
#uardar la con&i#uracin mediante la inter&a! ,eriali!ale de Ja=aH la cual nos
&acilita la persistencia de oAetos en arc.i=os inarios:
C"(I'O ;U)+T) 2P. ATRI<UTO, () LA CLA,) <OqO*TIO+,.JA>A
26P
P.@
(ia#rama 'eneral de Clases
)l dia#rama de clases #eneral consta de 50 clases. )n total son aproCimadamente
0511 l$neas de cdi#oH sin contar las lirer$as eCternas utili!adas:
(IA'RA/A @7. (IA'RA/A () CLA,), ')+)RAL
(eido al tamaGo del dia#ramaH se .an ocultado los m%todos 8 los atriutos de
las clases. *ara consultarlo se &acilita Aunto a la memoria di#ital el acceso a
las im-#enes en alta de&inicin de los tres dia#ramas de clases reali!ados. 26D
>.
R),ULTA(O,
)ste cap$tulo trata de mostrar los resultados otenidos despu%s de diseGar e
implementar el pro8ecto. *odremos =er di&erentes tests 4ue se .an lle=ado a cao
para comproar la inte#ridad del sistema. Adem-sH se inclu8e la implementacin
de un pe4ueGo uscador tem-tico de a=entura. )ste uscador utili!a ,.uttle para
aastecerse de in&ormacin pro=eniente de tres a#encias de =iaAes. *ara reali!ar
estas prueas se .a tenido 4ue montar ser=idores con soporte a las aplicaciones
de ,.uttle.
D.2
Test de la Lan!adera
,e .an reali!ado mVltiples prueas de lan!amientos pro#ramando la eAecucin de
,.uttleots en distintos d$as. La &iailidad de esta parte es astante
importanteH 8a 4ue al traaAar con &ec.as puede .aer al#Vn desaAusteH como el
&amoso e&ecto 5111. *ara comproar el uen &uncionamiento del sistemaH se deA
eAecutando el sistema con =arios ots la noc.e de &in de aGo. ,e otu=ieron
resultados satis&actorios: todos los ots se lan!aron a la .ora adecuada. )sta
pruea se #ra en =ideo con el pro#rama Auto,creenRecorder BCaptura de pantalla
0PF. La #raacin dura desde las 56:D5 del d$a 62 de diciemre de 5125 a las
11:1P del 2 de )nero de 5126. +o se mostraron anomal$as en el proceso.
CA*TURA () *A+TALLA 0P. >I()O ()L T),T R)*RO(UCI)+(O,) )+ >LC
26@
D.5
Test TC* de la =isin distriuida
Uno de las caracter$sticas m-s llamati=as de ,.uttle es su =isin distriuida.
)s decirH las tres aplicaciones del sistema pueden estar en di&erentes e4uipos.
,e diseG e implement el ,er=idor de <ots con el oAeti=o de #estionar las
operaciones del ,.uttle<ot. Adem-sH de la coneCin TC*H utili!amos otras
coneCiones como una coneCin we ITT*H por la cual el ,.uttle<ot muestra su
inter&a! en el na=e#ador del Administrador de ,.uttle. *ara comproar 4ue el
sistema est% &uncionando correctamente nos .emos dispuesto a capturar la
con=ersacin inicial TC* entre un ,.uttle<ot 8 el Administrador. ,e .a instalado
un ,.uttle<ot llamado N,an#a<otO en un e4uipo con I* 275.2@R.5.211H ,istema
operati=o Kindows 0 8 con la .erramienta )as8*I* en &uncionamiento. )n el otro
e4uipo se aloAar- ,.uttleAdmin. )s un port-til con I* 275.2@R.5.21PH Kindows 0H
)as8*I* 8 Ja=a 0.2.
(IA'RA/A 01. CO+)?I"+ TC* )+TR) )L A(/I+I,TRA(OR Q U+ ,IUTTL)<OT
)l pa4uete seleccionado para capturar es el contenedor del mensaAe del ,er=idor
de <ots durante el inicio la coneCin ITT*:
(IA'RA/A 02. (I,)JO ()L /)+,AJ) ()L ,)R>I(OR () <OT,
Iemos utili!ado el pro#rama Kire,.arXH con licencia '*LH para capturar la
con=ersacin. *odemos oser=ar en la captura de pantalla 0P los intercamios de
mensaAes TC* entre amos dispositi=os. 260
CA*TURA () *A+TALLA 0D. CO+>)RACI"+ CA*TURA(A CO+ KIR),IARe
Adem-sH podemos =er el contenido del pa4uete 8 oser=ar 4ue es i#ual al 4ue
descriimos durante el diseGo:
CA*TURA () *A+TALLA 0@. *A:U)T) TC* () U+ /)+,AJ) () ,IUTTL)
26R
*ara comproar el &ormatoH aun4ue se puede distin#uir el mensaAe de ,.uttle T2UH
KiresarX nos permite mostrar el contenido del campo datos. Con esto
comproaremos como el mensaAe diseGado se .a implementado correctamente T5U:
CA*TURA () *A+TALLA 00. CO+T)+I(O ()L *A:U)T) TC*
CA*TURA () *A+TALLA 0R. (ATO, ()L /)+,AJ)
267
D.6
,.uttle ,earc. )n#ine: Un sencillo uscador tem-tico de a=entura
Una =e! testadas las comunicaciones 8 la lan!aderaH se procedi a implementar un
sencillo uscador tem-tico de eCcursiones de a=entura. ,.uttle se .a con&i#urado
con tres ots 4ue reco#er-n in&ormacin de tres a#encias especiali!adas en
=iaAes de treXXin# 8 a=entura.
CA*TURA () *A+TALLA 07. <U,CA(OR T)/MTICO () A>)+TURA
)l uscador tiene a ,.uttle como crawler. ,e .an diseGado tres ,.uttle<ots 4ue
mantienen actuali!ada la ase de datos del uscador: o o o ,an#a<ot: <ot 4ue
eCtrae in&ormacin de la a#encia >iaAes ,an#a. Tuare#<ot: <ot lan!ado sore la
we de Tuare# >iat#es. Clu /arco *olo: <ot 4ue reco#e datos en la we del Clu
/arco *olo.
La in&ormacin 4ue deseamos eCtraer de los sitios we son: )l
enlace a la p-#ina de la descripcin del =iaAe. La !ona de la eCcursin Bpa$sH
continenteH re#in...F. )l t$tulo de la eCcursin. La temporadaH la %poca o
salidas 4ue tiene la eCcursin. (escripcin: Itinerario o descripcin de los
d$as de la eCcursin.
2P1
)ste uscador no es un producto destinado al pVlicoH 8a 4ue se .a creado con la
intencin de =eri&icar los procesos para adaptar ,.uttle a un motor de Vs4ueda.
*ara reali!ar un uscador m-s potente deeremos tratar los datos con m-s
pro&undidad para adaptarlos a la l#ica de un nue=o uscador e incrementar el
nVmero de ots. )ste motor de Vs4ueda traaAa con tres sitios weH los #randes
comparadores traaAan con una 4uincena de sitios di&erentes.
*ara ponerlo en marc.a se .an lan!ado los ots sore los sitios we de las
a#encias de =iaAes oteniendo 225DT2U re#istros. ,e#uidamente mediante el
indeCador se .an creado las tres talasH una por cada ot T5UH en la ase de
datos /8,:L.
CA*TURA () *A+TALLA R1. R),U/)+ () LA <A,) () (ATO, /Q ,:L
Cuando las talas est-n creadasH el uscador 8a est- preparado para &acilitar
in&ormacin a un usuario. )ste .ar- consultas sore los datos otenidos. +uestro
oAeti=o con este uscador sencillo es =eri&icar el sistemaH por lo cual no se
.an tratado los datos al completo 8 se muestran con el &ormato eCtra$do a
eCcepcin de la descripcin 4ueH por moti=os est%ticosH se .a reducido a D1
caracteres. )l uscador reali!a una 4uer8 ,:L sore la ase de datos para
otener los resultados 4ue coincidan con una palara cla=e en los campos
gpatron1h 8 gpatron2h. La Vs4ueda podr- ser por el lu#arH !ona o por el t$tulo
de la eCcursinH por eAemplo NT$etOH NeilimanAaroOH NAm%ricaO o NOdisea en
/arruecosO.
C"(I'O ;U)+T) 2D. :U)RQ ,:L ()L /OTOR () <S,:U)(A
A continuacin =amos a mostrar un eAemplo de una Vs4ueda. ,upon#amos 4ue
4ueremos reali!ar una eCcursin al m$tico =olc-n Xen8ano eilimanAaroH uno de los
destinos tur$sticos pre&eridos de los a=entureros interesados en este tipo de
eCcursiones. 2P2
*ara ello deeremos introducir la cla=e en el uscador 8 pulsar sore el otn
NrA la a=enturaYO T2U:
CA*TURA () *A+TALLA R2. <S,:U)(A () O;)RTA, () )?CUR,IO+), AL eILI/A+JARO
)l uscador nos mostrar- los resultados clasi&icados por el ,itio we donde
recolect la in&ormacin T5U:
2P5
CA*TURA () *A+TALLA R5. R),ULTA(O () LA <S,:U)(A () )?CU)R,IO+), AL eILI/A+JARO
*odemos oser=ar 4ue deaAo de los resultados nos aparece el total de o&ertas de
=iaAes de la a#encia T6U. Los enlaces TPU son di&erentes entre ellosH se puede
oser=ar pasando el ratn por encima de los mismos TDU. )n este motor de
Vs4ueda .emos distin#uido a cada o&erta por su enlaceH por lo 4ue pueden
aparecer repetidas pero con di&erente linX. )sto es as$ por4ue 4ueremos
comproar la totalidad de los datosH 8a 4ue es Vtil saer dnde se encuentra
cada eCcursinH aun4ue capturemos los mismos datosH al ser p-#inas di&erentesH
pueden contener in&ormacin rele=ante.
2P6
A continuacinH mostramos un #r-&ico con los resultados de la eCtraccin sore
los sitios anteriores:
P11 6D1 611 5D1 511 2D1 211 D1 1 Tuare#<ot /arco<ot Tiempo Bdecimas de minutoF
(escar#a Be8tesF O&ertas di&erentes ,an#a<ot
'RM;ICO 5. R),ULTA(O, () LA )J)CUCI"+ () TR), ,IUTTL)<OT,
Los ,.uttleots .an tenido un comportamiento similarH deido a 4ue tienen los
&iltros optimi!ados. *odemos =er 4ue el tiempo es casi proporcional a la
cantidad de resultados otenidos. )n el caso de Tuare#<ot tarda cinco minutos
m-s 4ue /arco<otH esteH saca treinta o&ertas de =iaAes menos. La di&erencia se
dee a 4ue los itinerarios del sitio de Tuare# >iat#es son muc.o m-s completos.
)sto lo podemos comproar tras oser=ar como duplica la cantidad de e8tes de
in&ormacin. A continuacin =amos a comparar los tres ,.uttle<ots con otros tres
i#ualesH pero esta =e! no le aGadiremos nin#una con&i#uracin en la eCploracin
de los sitios. Con esto =eremos el impacto 4ue tiene sore el tiempo 8 el nVmero
de p-#inas =isitadas por parte de un crawler con una na=e#acin sin
restricciones ni &iltros. ,e muestran en color claro los nue=os ots 8 en oscuro
los optimi!ados:
2PP
2@111
2P111
25111
21111 *-#inas =isitadas
R111
@111
P111
5111
1 ,an#a<ot /arco<ot Tuare#<ot ,an#a<ot BOptF /arco<ot BOptF Tuare#<ot BOptF
,emilla 2 2 2 2 2 2
;rontera 2 RR @D 5D0 R6 6R 5DD
;rontera 5 05P 7@P 2@51 D6D PD0 2D@0
;rontera 6 PPD1 DP6R 26RP2 655 2D5R 615
'RM;ICO 6. *M'I+A, K)< >I,ITA(A, *OR LO, ,IUTTL)<OT,
Como oser=amos en la #r-&ica anteriorH la di&erencia entre amos es astante
#randeH soretodo en la Vltima &rontera. )sto es deido a 4ueH si no se ponen
ciertas restriccionesH el nVmero de p-#inas a =isitar crece eCponencialmente.
Los resultados &inales son id%nticosH pero este &actor .ar- 4ue ten#a un impacto
en otra =ariale importante: )l tiempo. La eCploracin 4ue .an 2PD
reali!ado los ,.uttle<ots sin &iltros se asemeAar$a a una eCploracin de una
sola &ronteraH como .acen los crawlers Aer-r4uicos. A continuacin =amos a =er
otro #r-&ico comparando el tiempo entre amas con&i#uraciones. )s a4u$H donde
notamos la di&erencia m-s notale:
611
5D1
511 /inutos
2D1
211
D1
1 Tuare#<ot /arco<ot ,an#a<ot
Optimi!ado
,in ;iltros
'RM;ICO P. (I;)R)+CIA, )+ )L TI)/*O () )J)CUCI"+
Como apreciamos en el #r-&icoH la di&erencia es astante amplia. ,in unos
&iltros adecuados nos mo=emos en unos m-r#enes de tiempo astante superiores.
Adem-sH estamos a la merced del =olumen del contenido del sitio. ,iH por el
contrarioH les .emos de&inido comportamiento mediante los &iltrosH comproaremos
como reducimos consideralemente la dependencia del tiempo respecto al tamaGo
del sitio.
2P@
>I.
A,*)CTO, )CO+"/ICO,
@.2
Coste orientati=o del pro8ecto
Los costes de la implantacin de este sistema son =ariales dependiendo del
motor de Vs4ueda o aplicacin usuario de ,.uttle. +ormalmenteH una empresa o
particular 4ue desee eCplotar este so&tware deer$a tener 8a las tecnolo#$as de
ase de datosH inclu8endo las respecti=as licencias. /8 ,:L se distriu8e aAo
licencia '*LH lo 4ue implica un coste en el caso de sacar un r%dito econmico de
su usoH 4ue es aproCimadamente de 2D11u. Los e4uipos in=olucrados en una =isin
distriuida depender-n tami%n del =olumen de datos 4ue eCtrai#an 8 la potencia
de la aplicacin usuaria. )n un uscador tem-tico sencillo se puede instalar
nuestro sistema en ordenadores de o&icina o ad4uirir e4uipos personales comunesH
los cuales rondan los D11u en el mercado. ,i el uscador =a a ser la ase de un
ne#ocio donde se necesita acondicionar ,.uttleH en teor$aH tami%n deer$an
tener ad4uirido un ser=idor we para el uscador. ,i no lo tieneH se deer$a
ad4uirir uno o montarlo en un pc comVn. Un ser=idor we podr$a ser un Iewlett
*acXard de la clase *roliant H su precio oscila entre @11 8 61.111uH se#Vn
prestaciones. ,istema operati=o pude tener desde un LinuC #ratuito a un Kindows
,er=er 5125 (ata Center de P211u. Adem-s se deer$a asumir el coste de lu!H al
tener los e4uipos encendidos las =einticuatro .oras del d$a. Un local pe4ueGo
con cinco o seis e4uipos deer$a consumir una media parecida a un .o#ar
&amiliarH es decir unos R1u al mes. ,ore la coneCin a InternetH &undamental
para nuestras aplicacionesH se deer$a contratar un pa4uete para empresas a un
precio adecuado. La &actura puede rondar se#Vn los re4uisitos del anc.o de anda
necesarioH desde 2RuH de una coneCin sencilla a InternetH a una coneCin
*remium de TelecaleH 4ue costar$a unos 26Du al mes con un alta de P1u. Adem-s
de todo ello .ar$a 4ue aGadir las .oras traaAadas por el e4uipo. Iemos
estimado un e4uipo de seis pro#ramadoresH un analista 8 un Ae&e de pro8ecto para
desarrollarlo. Al .aer .ec.o un diseGo de &orma -#il 8 con tecnolo#$as como
Ja=aH la cual nos permiten una pro#ramacin m-s r-pidaH se .a utili!ado otro
m%todo. (ado 4ue el mito .omre3mes est- comproado 4ue no es &ialeH se .a
esco#ido un m%todo astante comVn de pre=isin de es&uer!o: *untos de &uncin
por casos de uso T27U. )n este sistema puntuamos en primer lu#ar los casos de
usoH dependiendo de su compleAidad. Utili!ando unos =alores proporcionados por
el m%todo:
2P0
Crear ,itio /odi&icar ,itio Iniciar Lan!adera *arar Lan!adera Reiniciar
Lan!adera /antenimiento Crear <ot /ontar <ot /odi&icar <ot Lan!ar <ot <ot
*ortale /ostrar Resultados ConeCin de <ot Lan!ar IndeCador IndeCador *ortale
/ontar IndeCador
*untos por caso de Uso B*CUF *eso Total 6 D 6 D 2 21 2 D 2 D 2 D 6 D 2 D 6 D 2
2D 2 2 5 2 2 2 TOTAL D D D D D 21 211
,e#uidamenteH con a8uda de las talas 4ue nos .an proporcionadoH puntuamos los
&actores t%cnicos: ;actores T%cnicos B;TF In&luencia *eso Total ,istema
(istriuido 5 D 21 OAeti=os de rendimiento 5 6 @ )&iciencia respecto al usuario
&inal 2 6 6 *rocesamiento compleAo 2 6 6 Cdi#o reutili!ale 2 6 6 Instalacin
sencilla 1HD 2 1HD ;-cil utili!acin 1HD 1 1 *ortailidad 5 6 @ ;-cil de camiar
2 2 2 Uso concurrente 2 5 5 Caracter$sticas de se#uridad 2 2 2 Accesile por
terceros 2 D D ,e re4uiere &ormacin especial 2 6 6 TOTAL P6HD
*or VltimoH .acemos lo mismo con los &actores de )ntorno:
2PR
;amiliar con U/L )Cperiencia con la aplicacin )Cperiencia en la orientacin de
oAetos Capacidades de an-lisis /oti=acin Re4uisitos estales TraaAadores a
tiempo parcial Len#uaAe compleAo
;actores de )ntorno B;)F *eso In&luencia Total 2HD D 0HD 1HD 6 2HD 2 D D 1HD 2 5
32 32 TOTAL 6 D 5 1 1 2HD D P 1 1 5PHD
Aplicando la si#uiente &rmulaH nos dar- el total de es&uer!o necesario:
)s&uer!o ] 5R j B*CU b ;)F j B2HP b ;)jB31H16FF j B1H@bB1H12j;TFF ] 50@@ .oras3
.omre. )l e4uipo de pro#ramadores tardar$a tres meses 8 medio en implementar el
sistemaH lo 4ue a Rua. tendr$a un coste de 55.25Ru aproCimadamente. Adem-s el
analista 8 el Ae&e de pro8ecto dedicar$an .oras al diseGo 8 a la direccin del
pro8ecto respecti=amente. )l analista dedicar$a R .oras durante mes 8 medioH lo
4ue acarrear$a un coste adicional de 5.511uH corando 21ua.. Adem-s .a8 4ue
sumarle el sueldo del Ae&e de pro8ecto por el traaAo de control reali!adoH
supon#amos 4ue dedi4ue 52 .oras a 26ua.H costar$a 506u. ,i sum-semos un par de
e4uipos in&orm-ticos 8 un ser=idorH la suma total orientati=a ascender$a a
57.D21H como podemos oser=ar en las si#uientes talas: Tala resumen costes en
recursos .umanos: TraaAador *ro#ramador Analista Je&e de *ro8ecto TOTAL +Vmero
D 2 2 ua. Rua. 21ua. 26ua. total 27.@11u 5.511u 506u 5P@62u
Coste orientati=o del pro8ecto para un uscador medio: Recursos necesarios 5
e4uipos in&orm-ticos 2 ser=idor mediano Licencia /8,:L ,.O. Uuntu Recursos
.umanos Alta A(,L )lectricidad Total 2P7 Coste 2111u 2D11u 2511u 5P@62u @07u
D11u 57.D21u
@.5
>iailidad del producto
)n este cap$tulo =amos a anali!ar re=emente el producto reali!ado desde un
-mito comercial. A tra=%s de un dia#rama (A;O eCtraeremos di&erentes
conclusiones sore la =iailidad de nuestro so&tware como producto comercial.
@.5.2 Idea de ne#ocio )l producto reali!ado en este pro8ecto puede destinarse
como eAe principal de un ne#ocio de uscadores =erticales de tipo comparador.
*or un ladoH nos pro=ee de la principal .erramienta para poder construir un
portal we comparador de preciosH Vs4ueda de =iaAesH etcc *or otro ladoH dado
el au#e de este tipo de ne#ocioH tami%n podemos dotar a terceros de este
ser=icio. @.5.5 (ia#rama (A;O
(IA'RA/A 05. (A;O B()<ILI(A(),H A/)+ALA,H ;ORTAL)LA, Q O*ORTU+I(A(),F
)ste dia#rama se denomina matri! (A;O o ,KOT 8 es utili!ado en el estudio de un
producto o pro8ecto. *ara reali!arlo se .a .ec.o sore un caso &icticioH 8a 4ue
el in=ersor ser$a el propio autor. 2D1
)n el dia#rama podemos oser=ar cuatro recuadrosH en cada uno se inclu8en
conceptos 4ue con&orman una deilidadH una amena!aH una &ortale!a o una
oportunidad. )sto nos ser=ir- para poder =er la situacin real del producto en
el mercado.
@.5.6 An-lisis de ne#ocio Como .emos =isto en el dia#rama (A;O tenemos al#unas
=entaAas e incon=enientes para poder comerciali!ar un producto como este:
Amena!as detectadas con el an-lisis eCterno: Crisis del )uro: Con la
crisis actual es di&$cil encontrar cr%ditos pri=ados 8 pVlicos. Competencia: La
competencia puede desarrollar so&tware parecido una =e! comerciali!ado el
nuestro. Con un e4uipo .umano menorH estamos en des=entaAa. Camio de
Tecnolo#$a: Una nue=a re=olucin en Internet podr$a .acer 4ue nuestro producto
no &uncionase correctamente 8 necesitase una actuali!acin tecnol#ica.
Oportunidades detectadas con el an-lisis eCterno: Crisis: Aun4ue sea una
amena!aH los periodos de crisis suelen ser donde .a8 meAores oportunidades para
desarrollar un ne#ocioH 8a 4ue los costes de emprender son m-s aAos. Ampliacin
de &uncionalidades: )l so&tware podr$a ampliarse con nue=as &uncionalidades 4ue
aumenten el nVmero de clientes potenciales 4ue eCisten actualmente. /ercado
Internacional: Aun4ue el mercado europeo no est% en su meAor momentoH podemos
intentar entrar en mercados internacionales de pa$ses 4ue no est-n su&riendo una
aAada en el consumo. *a$ses emer#entes como <rasil o /%Cico nos pueden aportar
nue=os clientes potenciales. <enc.marXin#: ,i ampliamos o se .iciera una edicin
del so&tware especial para <enc.marXin#H con una promocin adecuada podr$amos
conse#uir nue=os clientes &uera del sector inicial con el 4ue cont-amos.
'ad#ets ,martp.one: Actualmente eCisten Apps 4ue podr$an utili!ar nuestro
sistema. )s otra =$a de producir otras aplicaciones 4ue se puedan mantener con
,.uttle.

;ortale!as detectadas en el an-lisis interno: Orientado a producto: +uestro


so&tware est- orientado al producto. )s decirH nos .emos especiali!ado en
resol=er los prolemas de los uscadores =erticales tipo comparadorH lo cual nos
da una =entaAa competiti=a. ,istema multitem-tico: Al estar orientado a
productoH .emos podido crear soluciones para poder ser con&i#urado en di&erentes
tem-ticas de&inidas por el usuario.

2D2

+o necesita mantenimiento: Una persona t%cnica puede maneAar e incorporar


,.uttle a su sistema sin necesidad de terceros. >isin distriuida: Una de las
=entaAas competiti=as 4ue m-s destacan es la posiilidad de traaAar en modo
clusteredH es decir de &orma distriuidaH asi#nado responsailidades a los
e4uipos. /ultiplata&orma: )l sistema ,.uttle est- implementado con tecnolo#$a
Ja=a 8 *I*H amas utili!ales en di&erentes sistemas operati=os.
(eilidades detectadas en el an-lisis interno: ,o&tware en desarrollo: )l
so&tware diseGado est- reci%n implementado. Aun4ue .a pasado los tests
pertinentesH no .a sido proado a #ran escala. La competencia es capa! de
corre#ir su so&tware se#Vn su implantacinH utili!ando casos reales con clientes
8 en e4uipos muc.o m-s potentes 4ue los 4ue poseemos. +osotrosH al no .aer
empe!ado una .ipot%tica comerciali!acin 8 al no tener capitalH carecemos de
esta =entaAa. Carencia de recursos econmicos: (ado el estatus actual del autorH
estudiante 8 paradoH en estos momentos ser$a in=iale la in=ersin de capital.
Carencia de recursos .umanos: )l e4uipo de ,.uttle lo compone un Vnico autorH lo
4ue .ace di&$cil una ampliacin 8 comerciali!acin del producto. ,e necesitar$a
m-s manos t%cnicas para prose#uir en un &uturo con este pro8ecto.

@.5.P Oportunidad de ne#ocio )n este apartado responderemos a la si#uiente


pre#unta: v,.uttle es un producto comerciali!ale` La respuesta a la pre#unta
de si ,.uttle es un producto comerciali!ale es a&irmati=a. Tenemos las
su&icientes =entaAas competiti=as: Caracter$sticas como la especiali!acin del
producto o la superioridad en &uncionalidades respecto a otros productos de la
competenciaH o la posiilidad multitem-tica del sistemaH nos sir=en como ase de
una .ipot%tica comerciali!acin de ,.uttle. ,e necesitar$a meAorar en las
deilidades como la carencia de recursos .umanosH lo cualH nos puede .acer m-s
&uertes de cara a a&rontar amena!as eCternas. )l tema econmico tami%n es
importanteH 8 .ar$a 4ue encontrar una &uente de &inanciacin. Respecto a las
oportunidadesH tenemos -mitosH como el enc.marXin# o los #ad#ets para
,martp.onesH aptos para la introduccin de este tipo de so&tware con el oAeti=o
de diseGar terceras aplicaciones 4ue o&re!can in&ormacin reco#ida mediante
nuestro sistema. A partir de este pe4ueGo estudio se podr$a elaorar un plan de
ne#ocio. )n este plan se deer$a incluir una estrate#ia de marXetin# encarada a
la comerciali!acin de ,.uttleH donde podamos eCplotar sus &ortale!as 8
oportunidades. Q por otro ladoH un se#undo plan econmico encarado a la
in=ersin econmica 8 &inancieraH el cual nos ser=ir$a como una .erramienta para
captar in=ersiones 8 capitali!ar la comerciali!acin. 2D5
>II.
CO+CLU,I"+
)l eAe principal de este pro8ecto .a sido el diseGo e implementacin de un
sistema de aplicaciones capa! de eCtraer in&ormacin de sitios we. )ste sistema
de aplicaciones se le .a denominado ,.uttleH 8 &orma parte de la &amilia de
so&tware catalo#ada como crawlers. Los crawlers pro=een in&ormacin a tercerosH
normalmente aplicaciones we como los uscadores #eneralistas o tem-ticosH como
sonH respecti=amenteH Qa.ooY o Tri=a#o.
(IA'RA/A 06. ;U+CIO+A/I)+TO () ,IUTTL)
,.uttle es un so&tware Vnico entre su #%nero. )s el resultado del traaAo e
in=esti#acin desarrollado durante medio aGo con el oAeti=o de otener un
crawler multitem-tico. (urante estos cinco meses se .a ampliado el pro8ecto
inicial con nue=as caracter$sticas para poder proponer una solucin lo m-s
completa posile. )l pro8ecto se .a reali!ado en cinco mesesH comen!ando en
=erano de 5125 8 &inali!ando en enero de 5126. Cada ampliacin se .a plani&icado
como una &ase nue=a del pro8ecto. La primera corresponde a la propuesta inicial
del pro8ecto 8 las dos &ases si#uientes .an sido las restantes ampliaciones.
2D6
*rimera &ase: (iseGo del Administrador de ,itiosH la Lan!adera 8 los <ots.
,e#unda &ase: (iseGo 8 acople dela .erramienta creadora de <ots. Tercera &ase:
(iseGo e implementacin del indeCador 8 el ,er=idor TC*.
La se#unda &ase es producto de la in=esti#acin 8 la eCperiencia en la primera.
,e lo#r resol=er el oAeti=o secundario planteado: (otar de di&erentes
comportamientos al crawlerH es decirH la posiilidad de con&i#urarlo para
di&erentes tem-ticas 8 sitios we. )ste .ec.o .ace de ,.uttle el Vnico so&tware
en el mercado capa! de camiar la tem-tica de un crawler =ertical. La tercera
&ase corresponde a la Vltima ampliacin. *ara dar consistencia al sistema se
implanta un indeCador /Q ,:L 8 un ,er=idor TC*H completando as$ las
&uncionalidades de ,.uttle. +uestro diseGo parti de unos conceptos pre=ios
donde estalecimos los re4uisitos m$nimos del diseGo de un crawler de estas
caracter$sticas. (e este an-lisis inicialH otu=imos dos aplicacionesH las
cuales con&ormar$an el crawler -sico: La lan!adera 8 los ots.
(IA'RA/A 0P. *ROC),O )L)/)+TAL () ,IUTTL)
,e diseGaron e implementaron dos al#oritmos para los <otsH capaces de resol=er
el prolema. ,e intent uscar pautas en la creacin de sitios 4ue nos
&acilitaran la creacin de al#Vn mecanismo para la resolucin de las tareas de
eCtraccin de linXs 8 datos: Al#oritmo de &ronteras de pro&undidad: )Cplora
los linXs de un sitio creando una &rontera de rastreo por cada ni=el del mismo.
(IA'RA/A 0D. AL'ORIT/O () ;RO+T)RA, () *RO;U+(I(A(

Al#oritmo de )Ctraccin de datos: )ste al#oritmo =isita una &rontera de rastreo


eCtra8endo datos se#Vn patrones prestalecidos.
(IA'RA/A 0@. AL'ORIT/O () )?TRACCI"+ () (ATO,
2DP
,e#uidamente se inici el diseGo del Administrador del ,istema una aplicacin
Ja=a 4ue permitiera #estionar los ots. ,e le inclu8 la Lan!adera 8 el mdulo
necesario para su uso: )l Administrador de ,itios.
CA*TURA () *A+TALLA R6. CO+TROL () LA LA+LA()RA () LA A*LICACI"+ A(/I+I,TRA(ORA
()L ,I,T)/A
Con la eCperiencia ad4uirida en la &ase anteriorH replanteamos el diseGo para
intentar .allar una solucin al oAeti=o secundario propuesto: (otar de
comportamientos di&erentes al crawler. Recordamos al lector 4ue los crawlers
=erticales suelen ser diseGados espec$&icamente para una tem-ticaH deido a la
di&icultad de reco#er datos especiali!ados. ,e in=esti# la &orma de .acerlo 8H
tras estudiar 8 replantear los al#oritmos anterioresH se encontr una t%cnica
4ueH mediante la creacin de unos arc.i=osH podr$a sol=entar dic.o prolema.
'racias a la introduccin de dic.os arc.i=os en el diseGoH los al#oritmos
podr$an autocon&i#urarse para la eCtraccin 8 eCploracin de sitios we.
*udiendo as$ otener los datos de las p-#inasH independientemente de la
tem-tica. Con el oAeti=o de aumentar la potencia del sistema se suministr al
Administrador un nue=o mdulo para el diseGo de <ots. )l nue=o diseGo permite
replicar el cdi#o de los al#oritmos 8 dotarle de un comportamiento mediante
arc.i=os #enerados por el (iseGador de <ots. Adem-sH el diseGo orientado a
oAetos eCpuesto aumenta consideralemente la l#ica de los scripts. A estos
ots se les denominaron ,.uttle<otsH para distin#uirlos de los scripts #enerados
por el usuarioH 8a 4ue la Lan!adera puede eAecutar cual4uier ot eCterno en *I*
o similar. Una =e! &inali!ada la &ase anteriorH se decidi aumentar las
&uncionalidades del sistema dot-ndolo de un ser=idor de <ots. )ste nue=o mdulo
nos permite eAecutar =arios ,.uttle<ots a la =e!H oteniendo un control directo
sore los procesos mediante comunicaciones aAo tecnolo#$a TC*. *ara cerrar el
conAunto de aplicacionesH aGadimos el Vltimo mdulo utili!ando la
in&raestructura 8a montada para los ,.uttle<ots. )ste mdulo trata de acercar
los resultados lo m-Cimo posile a una tercera aplicacinH como puede ser un
uscador o una App para tel%&onos inteli#entes.
2DD
)ste indeCador es un script con&i#urale 4ue est- conectado al ser=idor de <ots
8 con&ecciona talas en una ase de datos /8,:L con los resultados otenidos. )s
eAecutado por el administrador a tra=%s de la inter&a! del Administrador de
,itios 8 es capa! de indeCar todos los resultados.
CA*TURA () *A+TALLA RP. ,IUTTL) /Q ,:L I+()?)R
La implementacin del pro8ecto consta de m-s de 0511 l$neas de cdi#oH &ormando
a su =e! 50 clases Ja=a 8 dos aplicaciones we en *I*. Ja=a .a sido el len#uaAe
esco#ido para la implementacin de la ma8or$a de cdi#oH 8a 4ue nos dota de una
l#ica orientada a oAetosH al#o totalmente necesario para nuestro diseGo. *I*H
en camioH nos .a o&recido un len#uaAe simpleH mu8 manipulale 8 poseedor de
potentes lirer$as de coneCinH tanto a otros dispositi=os como a ases de
datos.
(IA'RA/A 00. (IA'RA/A ')+)RAL () CLA,), JA>A I/*L)/)+TA(A,
2D@
A continuacinH repasaremos las caracter$sticas diseGadas e implementadas del
so&tware. )n =erde se muestran las &uncionalidades del pro8ecto inicialH 8 en
ne#ro las &uncionalidades implementadas para meAorar el sistema:
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 #ener%. 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.

2D0

Repositorio de resultados distriuido 8 centrali!ado: Aun4ue los ,.uttle<ots


#uardan el arc.i=o de resultados en su e4uipoH el ,istema tami%n los #uarda en
el e4uipo del administrador. Resultados en arc.i=os le#iles: Los resultados se
#uardan en &ormato C,>H NComma3,eparated3>aluesO. C,> es mu8 utili!ado en las
aplicaciones de datos deido a 4ue es un est-ndar para #uardar datos por
columnas en teCto plano. ,istema de eCtraccin de linXs: )l sistema es capa! de
crear $ndices de linXsH llamados &ronteras. Cada &rontera contiene los linXs de
los ni=eles de pro&undidad del ,itio. >isin distriuida de las aplicaciones:
Las aplicaciones est-n interconectadas mediante los protocolos TC* 8 ITT*
permitiendo as$ una =isin distriuida de los e4uipos 8 aplicaciones
BclusteredF.

,e .an reali!ado di&erentes tests para proar la implementacin del sistema.


Capturamos un pa4uete del ser=idor de <otsH donde oser=amos con el pro#rama
KiresXarX el contenido de un pa4uete realW se pro durante las campanadas de
aGo nue=o la Lan!aderaH apro=ec.ando un caso real de camio de &ec.aW 8H por
VltimoH se implement un pe4ueGo uscador tem-tico 4ue tu=iera a ,.uttle como
ser=idor de datos. N,.uttle TreXXin# w Ad=enture ,erac. )n#ineOH es una
aplicacin adicional al pro8ectoH reali!ada con el &in de comproar la
inte#ridad de los datos 8 el acoplamiento de ,.uttle a un caso real.
CA*TURA () *A+TALLA RD. ,IUTTL) TR)eeI+' w A(>)+TUR) ,)ARCI )+'I+)
*ara poder =er el impacto de los al#oritmos en los resultados &inales de la
aplicacinH se diseGaron tres ,.uttle<ots $nte#ramente con el (iseGador de <ots
8 se proaron con di&erentes &iltros 8 restricciones. A continuacin recordamos
las #r-&icas de los tests del al#oritmo de &ronteras de pro&undidad del cap$tulo
>H donde oser=amos como un diseGo optimi!ado de los ,.uttle<ots consi#uen
reducir astante el ran#o de p-#inas eCploradasH 8 por eCtensinH del tiempo
&inal en reali!ar el proceso.
2DR
2@111 *-#inas we =isitadas 2P111 25111 21111 R111 @111 P111 5111 1 ,emilla
;rontera ;rontera ;rontera 2 5 6
'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
,an#a<ot /arco<ot Tuare#<ot ,an#a<ot BOptF /arco<ot BOptF Tuare#<ot BOptF
611 5D1
/inutos
511 2D1 211 D1 1 Tuare#<ot /arco<ot Optimi!ado ,in ;iltros ,an#a<ot
'RM;ICO @. R)+(I/I)+TO ()L AL'ORIT/O () ;RO+T)RA, () *RO;U+(I(A( BTI)/*OF
,.uttle es un sistema =iale para su comerciali!acinH como eCpusimos durante el
An-lisis de >iailidad econmica del cap$tulo >IH en este mismo documento. >imos
los pros 8 contras de su comerciali!acin a tra=%s de un caso &icticio donde
otu=imos un dia#rama (A;O 4ue nos a8ud a estudiar la oportunidad de ne#ocio de
este pro8ecto:
2D7
(IA'RA/A 0R. (A;O () U+ CA,O ;ICTICIO () CO/)RCIALILACI"+
La especiali!acin del so&tware en el Ncrawlin#O tem-tico o la dotacin de
comportamientos di&erentes a los ,.uttle<otsH son caracter$sticas di&$ciles de
encontrar en un so&tware pVlico. *artiendo de la ase de 4ue todo so&tware es
meAoraleH la aplicacin desarrolladaH adem-s de ser un producto Vnico en sus
&uncionalidadesH tiene las su&icientes =entaAas competiti=as para ser un
producto atracti=o en el mercado. Respecto a las oportunidadesH tenemos -mitos
como el enc.marXin# o las Apps para ,martp.ones aptos para la introduccin de
este tipo de so&tware con el oAeti=o de diseGar terceras aplicaciones 4ue
puedan o&recer in&ormacin reco#ida mediante nuestro sistema. A continuacinH
mostramos al#unas meAoras posiles del sistema 4ue &ortalecer$an el producto:
,eleccin de patrones directamente desde la p-#ina we: Actualmente el sistema
posee un asistente para la creacin de eCpresiones re#ulares mediante la captura
de cdi#o IT/L. ,i#uiendo este mismo mecanismoH podr$amos .allar al#una &orma
para reco#er directamente el teCto sin pasar por el cdi#o &uente del sitio we.
Reconocimiento de im-#enes: +o siempre la in&ormacin se muestra en modo teCtoH
por lo cualH proponemos dotar de un nue=o mdulo a ,.uttle con el &in 4ue recoAa
datos de im-#enes en los sitios we 4ue eCplore. Ampliacin de los &iltros de
<ots: Actualmente eCisten astantes &iltros para el diseGo de los <otsH los
cuales resuel=en los casos m-s importantes encontrados. Un estudio m-s eCtenso
en este campo podr$a dotar al sistema de un meAor acople sore un ma8or nVmero
de sitios we. Uso de los &ormularios de uscadores: Aun4ue ,.uttle es capa! de
lle#ar en la ma8or$a de =eces a eCplorar todo el contenido de un sitioH no
manipulaH ni utili!a los propios uscadores 4ue estos conten#an. Una meAora
sustancial en el tiempo de lan!amiento ser$a adaptarlo para utili!arlos.
'enerador de portales tem-ticos: ,i#uiendo las t%cnicas de creacin de #estores
de contenidosH reali!ar los camios necesarios para crear un #estor de
uscadores tem-ticos 8 a#re#arlo como nue=o mdulo.

(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

,istema eCterno: Tercera aplicacin o sistema de aplicaciones 4ue interactVa de


al#una &orma con ,.uttle. ,istema operati=o: ConAunto de pro#ramas 4ue en un
sistema in&orm-tico #estiona los recursos de .ardware 8 pro=ee ser=icios a los
pro#ramas de aplicacinH eAecut-ndose en modo pri=ile#iado respecto de los
restantes. ,itio we: ConAunto de p-#inas contenidas en un mismo dominio.
,o&tware lire: ,o&tware 4ue est- suAeto a licencias d%iles 4ue &omentan su
lire uso. TC*: *rotocolo de comunicaciones orientado a coneCin de la capa de
transporte O,I. URL: )s una secuencia de caracteres est-ndar 4ue se usa para
nomrar recursos en Internet para su locali!acin o identi&icacin. Usuario
&inal: Usuario 4ue utili!ar- la aplicacin. >isin distriuida: *osiilidad de
aloAar las aplicaciones en di&erentes e4uipos 8 4ue estas se comuni4uen entre
s$. KorXminer: Al#oritmo de eCtraccin de datos.

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:

NIow To <uild A <asic Ke Crawler To *ull In&ormation ;rom A KesiteOH James


<ruceH .ttp:aawww.maXeuseo&.comata#auild3asic3we3crawler3pull3in&ormation3
wesiteaH 21 de (iciemre de 5121. NCrawlin# de Iidden KeOH Ricardo <ae!a
QatesH contentauploadsa511Ra1Racapitulo5.pd&H AGo 511@.
.ttp:aawww.ciw.clawordpressawp3

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

Vous aimerez peut-être aussi