Professional Documents
Culture Documents
Proiect de curs
la APPOO Tema: Motor de cutare
Chisinau 2012
Introducrere: Un motor de cutare este un apelabil program cuttor, care acceseaz Internetul n mod automat i frecvent i care stocheaz titlul, cuvinte cheie i, parial, chiar coninutul paginilor web ntr-o baz de date. n momentul n care un utilizator apeleaz la un motor de cutare pentru a gsi o informaie, o anumit fraz sau un cuvnt, motorul de cutare se va uita n aceast baz de date i, n funcie de anumite criterii de prioritate, va crea i afia o list de rezultate (englez: hit list ). Problema nu este de loc trivial, deoarece:
exist
deja peste 100 milioane de situri web, sumnd n total miliarde de pagini web, distribuite pe tot globul coninutul acestor pagini nu este static, ci chiar extrem de dinamic (se schimb frecvent) rspunsul la o comand de cutare trebuie s vin repede, n general n mai puin de o jumtate de secund, chiar atunci cnd lista de rezultate conine, s zicem, zeci de mii de pagini web potrivite la criteriile de cutare folosite. Cele mai utilizate motoare de cutare n iulie 2011 sunt: Motor Google Yahoo! Baidu Bing Ask Aol Excite Cota pe pia 82,7% 6,5% 4,7% 3,7% 0,5% 0,4% 0,0%
Pentru crearea acestor motoare de cutare este necesar un spider (bot, spider, crawler) care este realizat ntr-un limbaj care poate fi Perl, Ruby, Java, Php. Acesta extrage linkurile utile. Apoi aceste linkuri se gsesc ntr-o form prelucrat i filtrat prin metode specifice ntr-o baz de date.
Analiza: Pentru realizarea unui motor de cutare vom avea nevoie de o interfa grafica (gui form) cu minimum 3 componente: unul pentru introducerea cuvintelor cheie (o linie de text), unul pentru pornirea cautarii (buton) i unul pentru afiarea rezultatelor (un text container sau list container). Apoi vom avea nevoie de o clas care va efectua cutarea i de un tabel n baza de date n care se vor pstra hosturile prin care se face cutarea. Adica programul prlund cuvinetle-cheie i hosturile din baza de date va face pentru fiecare host request prin protocolul HTTP i cu ajutorul unui robot va face parcurge toate paginile ce aparin acesui host, va controla parametrul keywords a tag-ului meta al fiecarei pagini si daca va gasi cuvintele cheie acolo va adauga lincul acestei pagini n rezultate. Aceasta idee are ca avantaj principal actualitatea datelor. Adica datele ce au fost modificate recent vor aprea n rezultatul cutrii. Dar are i un dezavantaj foarte mare cutarea va fi prea lent, fiindc pentru cutare vor trebui parcurse milioane de lincuri ceea ce va suprancrca sistemul. Deci varianta data s-a considerat ineficienta i a fost nlturat. Alt variant inverseaz avantajele i dezavantajele primei variante, dar din motiv c am considerat-o mai eficient am hotrt s m opresc la ea. Aceast variant const n crearea unei baze de date mai complexe n care se vor pstra nu numai hosturile dar i lincurile i cuvintele cheie. n acest caz, la cutare programul va apela doar la baza de date de unde dup cuvintele cheie va selecta url-urile necesare i le va prezenta utilizatorului. Actualizarea unei aa baze de date se va face pentru toate hosturile pstrate n ea la o oarecare perioad de timp. i pentru hostul nou adugat la adugarea hostului. Un astfel de motor va lucra foarte repede. Elementele principale ale motorului de cutare: interfaa pentru cutare (gui form) interfaa pentru adaugarea hostului (gui form, doar pentru programatori de site-uri) baza de date program de cutare n baza de date robot pentru cutarea paginilor host-ului program pentru actualizarea bazei de date.
Diagrama de clase:
Ec E E E E E E E E E
l a s s
A A A
+
9a n . a 2 l i s i Us 9 . 2 9x t . a2
s u U s e r G U
_ c l a s s I
n r e n r e n r me n r e
< <
g i s t eE r A e d 9 g i s t eE Mr A eo t od 9r
s e g > + > S
. T 2 r iU a nl . T 2 r iU a < n<l . T 2 r iU a nl . T 2 r iU a nl . T 2 r iU a nl . T 2 r iU a nl
B g ) u
V e e g r is s i to eE n r A e r V s e e e >g r> is s i to eE n r A e r V e e g r is s i to eE n r A e r V e e g r is s i to eE n r A e r
u s e > > g a r r a d y a D B t a b
d9 d9
a
. T 2 r iU a nl . T 2 r iU a nl
s e
F i e l d k e y w o r d t e r e r e l t
U U U
u : s t r i n a
a e l e : s t r i n g
e n r r a
g i t s t eE r A e d 9
y
r c
( s t r i n
: s t r i n
d9 d9 d9 d9 d9 d9 d9 d9
. T 2 r iU a nl . T 2 r iU a nl . T 2 r iU a nl . T 2 r iU a nl . T 2 r iU a nl
r . T 2 r r iU aa y nl
A + A A A A A A
+ + -
b u t t o n s e a r c h
9 . 2 9 . 2
o S e
g i s t eE r A e d 9
o
<
<
r c
U U U U U U
h
n r e n U Ir e n < r <e
t t p
( )
: v
g i s t eE r A e d 9 g i s t eE r A e d 9
U
i d
V e e g r is s i to eE n r A e r V e e g r is s i to eE n r A e r
> V< e < e ug r s ies s > i to eE n r A e r
D b a F h A
e v u d
9 . e 2l o 9 . 2 9 . 2
d d t t o d n i e l d o s t = H
p e r G
p d a t e D
s t ( )
n r e
: v
: / /
9 . 2 9 . 2
n r e n r e
g i s t eE p r A e d 9 g i s t eE r A e d 9
l i b r a r y p r o t o c o l w H o s t ( s t r i n g ) : v o H i Td T P w o r d s B y U R L ( s t r i n g ) : s t r i n g a s B y H o s t ( s t r i n g ) : s t r i n g a r r a y D B U R L ( s t r i n g , s t r i n g ) : v o i d E n t i r e D B ( ) : v o i d
. T 2 r iU a nl . T 2 r iU a nl . T 2 r iU a nl
V e e g r is s i to eE n r A e r V e e g r is s i to eE n r A e r V e e g r is s i to eE n r A e r
. T 2 r iU a nl . T 2 r iU a nl
E A 9 2 U n r e g i eE r A e d 9 . T 2 r iU l V e g is s r e n clase . Deci, dup . aceast diagram vas fit nevoie de realizat ao nbaze de rdate,i toiE 4r A e d 9 deT 2 r iU a nl lucru, dintre care 2 pentru formulare grafice i dou pentru realizarea codului. E A 9 . 2 U U n r e n r e g i s t eE r A e d 9 g i s t eE r A e d 9 . T 2 r iU a nl . T 2 r iU a nl V e e g r is s i to eE n r A e r V e e g r is s i to eE n r A e r d9 d9 . T 2 r iU a nl . T 2 r iU a nl
Proiectarea:2 E A 9 .
Pentru nceput prezint cum va aveat loc rlucrul9 cu. Tbaza iUde date. eBaza isde i date rva constaT 2 r iU a nl E A 9 . 2 U n r e g i s eE A e d 2 r a nl V e g r s to eE n A e d 9 . r din urmtoarele tabele:
E E E E E E E E E E E A A A A A A A A A A A 9 . 2 9 . 2 9 . 2 9 . 2 9 . 2 9 . 2 9 . 2 9 . 2 9 . 2 9 . 2 9 . 2 U U U U U U U U U U U n r e n r e n r e n r e n r e n r e n r e n r e n r e n r e n r e g i s t eE r A e d 9 g i s t eE r A e d 9 g i s t eE r A e d 9 g i s t eE r A e d 9 g i s t eE r A e d 9 g i s t eE r A e d 9 g i s t eE r A e d 9 g i s t eE r A e d 9 g i s t eE r A e d 9 g i s t eE r A e d 9 g i s t eE r A e d 9 . T 2 r iU a nl . T 2 r iU a nl . T 2 r iU a nl . T 2 r iU a nl . T 2 r iU a nl . T 2 r iU a nl . T 2 r iU a nl . T 2 r iU a nl . T 2 r iU a nl . T 2 r iU a nl . T 2 r iU a nl V e e g r is s i to eE n r A e r V e e g r is s i to eE n r A e r V e e g r is s i to eE n r A e r V e e g r is s i to eE n r A e r V e e g r is s i to eE n r A e r V e e g r is s i to eE n r A e r V e e g r is s i to eE n r A e r V e e g r is s i to eE n r A e r V e e g r is s i to eE n r A e r V e e g r is s i to eE n r A e r V e e g r is s i to eE n r A e r d9 d9 d9 d9 d9 d9 d9 d9 d9 d9 d9 . T 2 r iU a nl . T 2 r iU a nl . T 2 r iU a nl . T 2 r iU a nl . T 2 r iU a nl . T 2 r iU a nl . T 2 r iU a nl . T 2 r iU a nl . T 2 r iU a nl . T 2 r iU a nl . T 2 r iU a nl
Tabelul hosts servee pentru pstrarea tuturor hosturilor prin care se face cutarea. Tabelul urls servete pentru pstrarea tuturor paginilor existente pe hosturile incluse n baza de date. Tabela keywords pstreaz toate frazele i cuvintele cheie ntlnite pe paginile din tabelul urls vreodat. Ele sunt unice i sunt indexate pentru a face cutarea mai rapid. Tabelul keywordsUrls realizeaz legtura n-n ntre tabelul keywords i urls. Deci pentru a stoca datele necesare pentru cutare avem aceast baz de date. n continuare prezentm procesul de cutare a cuvintelor-cheie, care se reduce n a fi cel mai simplu proces din ntreg sistemul informatic. Cutarea se va efectua dup urmtorul algoritm: utilizatorul acceseaz formularul i introduce cuvintele cheie dup introducere utilizatorul apas butonul search la apsarea butonului se valideaz cuvintele cheie introduse (not null) dac validarea nu a reuit cutarea se ntrerupe dac validarea a reuit cuvintele-cheie sunt transmise clasei motor clasa motor face cteva apeluri la baza de date (depinde de nr de cuvinte cheie) i acumuleaz URL-urile primite ntr-un obiect obiectul obinut este prelucrat n text i returnat formularului formularul nscrie rezultatul primit n containerul pentru rezultat. n continuarea prezint diagrama caz-utilizare pentru efectuarea cutrii, aplicaia ce urmeaz a fi efectuat:
u c s e a r c h _ u s e _ c a s e
E E E E E E E E E E E E E E
A A A A A A A A A A A A A A
9 . 2 9 . p2o 9 . 2 9 . 2 9 . 2 9 . 2 9 . 2 9 . 2 9 . 2
v
U U U U U U U U U U U U U U
n r e g is t e r e d E n ra pe l i g a it isa t e r e d E c n r e g is t e r e d E n r e g is t e r e d E n r e g i s U tS eE Rr e d E
a p l i c a t i a
AT AT AT AT AT AT AT AT
e
r9 i a. 2 l r9 i a. 2 l
c a u t a
VU e n r r s e i og ni s t e r e d E
c a u ta i n
D B
AT AT AT AT AT AT AT AT AT AT
r9 i a. 2 l r9 i a. 2 l r9 i a. 2 l r9 i a. 2 l r9 i a. 2 l r9 i a. 2 l r9 i a. 2 l r9 i a. 2 l r9 i a. 2 l r9 i a. 2 l
d j r9 e i a. a 2 l b a z a a t e .
VU e n r r s
r n e s te
VU e n r r s
r9 i a. 2 l r9 i a. 2 l
VU e n r r s
r e z u l t a t e
VU e n r r s e i og ni s t e r e d E
VU e n r r s
VU e n r r s
i n c h i d e
n r e g is t e r e d E n r e g is t e r e d E
a d a u g a e n i r n ec l gu d i s t e r e d E
r9 i a. 2 l r9 i a. 2 l r9 i a. 2 l
VU e n r r s e i og ni s t e r e d E VU e n r r s e i og ni s t e r e d E VU e n r r s e i og ni s t e r e d E VU e n r r s e i og ni s t e r e d E
a f i s a r e a d e M u a f o s u c d e f i a 2 4 l t u m s t i n c e s i d a t e c t u a o r e .
VU e n r r s
VU e n r r s
h o s t
9 . 2 9 . 2 9 . 2 9 . 2 9 . 2
a l i d a r e a D B
n r e g is t e r e d E
h o s t u l u i i n i n c l u
AT
r9 i a. 2 l r9 i a. 2 l r9 i a. 2 l r9 i a. 2 l r9 i a. 2 l r9 i a. 2 l
i n
i n
l u
e s c . S r e g i s t n b a z . I n f o r l i z a t a
i t e - u l d v r a t c u a n o a s t r a m a t i a v a t i m p d e
VU e n r r s
VU e n r r s
n r e g is t e r e d E n r e g i s t e D rB e d E n r e g is t e r e d E n r e g is t e r e d E n r e g is t e r e d E
a d a u g a r e a
AT AT AT AT AT
VU e n r r s e i i n ogf o nir ms a t t ei e ir e d E VU e n r r s e i og ni s t S e i t re e- u dl E VU e n r r s e i og ni s t e r e d E VU e n r r s e i og ni s t e r e d E VU e n r r s e i og ni s t e r e d E
a n d o a a d t u g a s t r a
VU e n r r s
h o s tu l u i
v AT
AT AT AT
i n d e
VUf o e sn t r r s
r9 i a. 2 l r9 i a. 2 l r9 i a. 2 l
VU e n r r s
VU e n r r s
VU e n r r s
ns procesul principal const n actualizarea bazei de date care este pornit de un timer la fiecare 24 ore. Deci prezint diagrama cazurilor de utilizare pentru procesul de actualizare:
u c u p d a t e _ u s e _ c a s e
E E E E E
T I M
A A A A A
E R
9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9
. 2 . 2 . 2 . 2 . 2 . 2 . 2
i n c
U U U U U U U
l u
n n n
r e r e r e
i n c
g g g
l u
i s tE e A r e 9 d . 2 T
h o s t u r i
rU i a n l r V e rU i a n l r V e
" c r a w
rU i a n rU i a n rU i a n rU i a n rU i a n rU i a n rU i a n rU i a n rU i a n rU i a n rU i a n rU i a n rU i a n rU i a n rU i a n rU i a n rU i a n rU i a n rU i a n rU i a n rU i a n rU i a n rU i a n
a
s e l e c t a r e
i s tE e A r e 9 d . 2 T
p o r n i r e
l e r "
i s tE e A r e 9 d . 2 T
d e
rU i a n l r V e rU i a n l r V e
p r i m i r e c r a w
n n n n
d
r e r e r e r e
e i n c
g g g
i s i n tE ce l Au r de e 9 d . 2 T i s tE ei n A rc le u 9 dd e. 2 T i s tE ei n A r c el u 9 dd .e 2 T
ge ir s s tEi eo A r n e 9 d . 2 T
d e l a
i n
l u
u p d a t e
rU i a n l r V e rU i a n l r V e
R l e r
ge ir s s tEi eo A r n e 9 d . 2 T ge ir s s tEi eo A r n e 9 d . 2 T
E E E E E E E E E E E E E E E E E E
A A A A
a A
e g i n i cs l utE ed A r e 9 d . 2 T
p r i m
. 2 . 2 . 2 . 2 . 2 . 2 . 2 . 2 . 2 . 2 . 2 . 2 . 2 . 2 . 2 . 2
U U
i n
n n
r e l u g d ie s tE e A r e 9 d . 2 T r e g g g g g g g g g g g g g g g i s tE e A rc e n 9 dt e . n 2t T o i s tE e A r e 9 d . 2 T
d i n D B c a u t a r e c u v
rU i a n l r V e
i n t e - c h e i e
ge ir s s tEi eo A r n e 9 d . 2 T
i n
rU i a n l r V e rU i a n l r V e rU i a n l r V e rU i a n l r V e rU i a n l r V e rU i a n l r V e rU i a n l r V e rU i a n l r V e rU i a n l r V e rU i a n l r V e rU i a n l r V e rU i a n l r V e rU i a n l r V e rU i a n l r V e rU i a n l r V e
ge ir s s tEi eo A r n e 9 d . 2 T ge ir s s tEi eo A r n e 9 d . 2 T ge ir s s tEi eo A r n e 9 d . 2 T ge ir s s tEi eo A r n e 9 d . 2 T ge ir s s tEi eo A r n e 9 d . 2 T ge ir s s tEi eo A r n e 9 d . 2 T ge ir s s tEi eo A r n e 9 d . 2 T ge ir s s tEi eo A r n e 9 d . 2 T ge ir s s tEi eo A r n e 9 d . 2 T ge ir s s tEi eo A r n e 9 d . 2 T ge ir s s tEi eo A r n e 9 d . 2 T ge ir s s tEi eo A r n e 9 d . 2 T ge ir s s tEi eo A r n e 9 d . 2 T ge ir s s tEi eo A r n e 9 d . 2 T ge ir s s tEi eo A r n e 9 d . 2 T
d a u g a r e
U U U U U U U U U U U U U U
nB r e n n n n n n n n n n n n n r e r e r e r e r e r e r e r e r e r e r e r e r e
s t e r g e r e a
A A A A A A A A A A A A A
i s tE e A r e 9 d . 2 T i s tE e A r e 9 d . 2 T i s tE e A r e 9 d . 2 T i s tE e A r e 9 d . 2 T i s tE e A r e 9 d . 2 T i s tE e A r e 9 d . 2 T i s tE e A r e 9 d . 2 T i s tE e A r e 9 d . 2 T i s tE e A r e 9 d . 2 T i s tE e A r e 9 d . 2 T i s tE e A r e 9 d . 2 T i s tE e A r e 9 d . 2 T i s tE e A r e 9 d . 2 T
n continuare folosesc diagrama de activiti pentru a reprezenta modul de funcionare a algoritmilor aplicaiei. Pentru procesul de cutare avem urmtoarea diagram de activiti:
a c t a n a l i s i s _ c l a s s
E E E E E E E E E E E E E E E E E E E E
A A A A A A A A A A A A A A A A A A A A
9 9 9 9 9
n
. 2 . 2 . 2 . 2 . 2
u l l
U U U U U U
r Ue
n n n n n n n n n n n n n n n n n n n n
v
r e r e r e r e r e r e r e r e r e r e r e r e r e r e r e r e r e r e r e r e
e
g g g g g
r i f i c
p a
i E s p A i ec a r9 t ei e. 2i d lt iE s A e t iE s A e t i E ss a Ar ee t iE s A e t iE s A e t iE s A e t iE s A e t iE s A e t iE s A e t iE s A e t iE s A e t iE s A e t
r e z u a r e a
r n
i r e
U T U T
u v
U T U T U T U T U T
p r i m
r9 e . 2 d r9 e . 2cd r9 b e u . t 2o d r9 e . 2 d r9 e . 2 d r9 e . 2 d r9 e . 2 d r9 e . 2 d r9 e . 2 d r9 e . 2 d r9 e . 2 d r9 e . 2 d
l t a t u l u n u l i t a
i n t r o d u c e r e a c h e i e
a p a
n u l u i
rn d i ear e l g V i Ees trA es ri 9 o e . n2 d rn i ar e l g V i Ees trA es ri 9 o e . n2 d rn i ar e l g V i Ees trA es ri 9 o e . n2 d rn i ars e l l e g Vc t i Ees r e trA ecs u ri 9v o ei n. nt2 e d e a
U R L - u r i d i n D B c u v n o t i n t e n u l l l o r - c h e i e
c a u t a r e
9 9 9 9 9 9 9 9 9 9 9 9 9 9 9
. 2 . 2 . 2 . 2 . 2 . 2 . 2 . 2 . 2 . 2 . 2 . 2 . 2 . 2 . 2
g g g g g g g g g g g g g g g
U T U T U T U T U T U T U T U T U T U T U T U T U T U T U T
U T U T U T U T U T U T U T U T U T U T U T U T U T U T U T
r e t u r n e a z a
z u l t a t
g o l
c h e
U U U U U U U U U U U U U
rn i ar e l g V i Ees trA es ri 9 o e . n2 d rn i ar e l g V i Ees trA es ri 9 o e . n2 d rn i ar re el t guV pr inEesie m a trA iz ets a ris9 o et r . i nn2 d r rn i ar e l g V i Ees trA es ri 9 o e . n2 d rn i ar e l g V i Ees trA es ri 9 o e . n2 d rn i ar e l g V i Ees trA es ri 9 o e . n2 d
i
a d u n a r e a U R L - u r i l o r i n t r - u n s t r i n g - a r r a y
g - a r r
i E s a Af ie s a r9 r e e . a 2 t d iE s A e t iE s A e t iE s A e t iE s A e t iE s A e t iE s A e t r9 e . 2 d r9 e . 2 d r9 e . 2 d r9 e . 2 d r9 e . 2 d r9 e . 2 d
rn i ar e l g V i Ees trA es ri 9 o e . n2 d rn i ar e l g V i Ees trA es ri 9 o e . n2 d rn i ar e l g V i Ees trA es ri 9 o e . n2 d rn i ar e l g V i Ees trA es ri 9 o e . n2 d rn i ar e l g V i Ees trA es ri 9 o e . n2 d rn i ar e l g V i Ees trA es ri 9 o e . n2 d rn i ar e l g V i Ees trA es ri 9 o e . n2 d
Iar pentru procesul de actualizare a bazei de date avem urmtoarea diagram de activiti:
a c t a n a l i s i s _ c l a s s
E E E E E E E E E E E E E E E E E E E E E E E E E E
A A A A A A A A A A A A A A A A A A A A A A A A A A
9 . 2 9 . 2 9 . 2 9 . 2 9 . 2
n u
U U U U U U U U U U U U U U U U U U U U U U U U U U
n r e g n r e g n r e g n r e g n r e g n r e g n r e g n r e g n r e g n r e g n r e g n r e g n r e g n r e g n r e g n r e g n r e g
n u
i s e t v E e nr A ei m d9e n . Tt2 e
t i m e r
r e
l i z
r e
r Ui a nl rV e e g r i ss i t o E n r A e d9 . T2 e r Ui a nl rV e e g r i ss i t o E n r A e d9 . T2 e r Ui a nl rV e e g r i ss i t o E n r A e d9 . T2 e r Ui a nl rV e e g r i ss i t o E n r A e d9 . T2 e r Ui a nl rV e e g r i ss i t o E n r A e d9 . T2 e r Ui a nl rV e e g r i ss i t o E n r A e d9 . T2 e r Ui a nl rV e e g r i ss i t o E n r A e d9 . T2 e r Ui a nl rV e e g r i ss i t o E n r A e d9 . T2 e r Ui a nl rV e e g r i ss i t o E n r A e d9 . T2 e r Ui a nl rV e e g r i ss i t o E n r A e d9 . T2 e r Ui a nl rV e e g r i ss i t o E n r A n e u d9 . T2 e
s u n t U R L - u r i i n a r r a y s t e r g e d i n D B p e n t r u h o s t u l d a t t o a t e U R L - u r i l e ( c a s c a d a ) e x t r a p a g i n i n t r ( g e U R i l o r p e - u n s t r c r a w l e L - u r i l e t u t u r o r n t r u h o s t u l d a t i n g - a r r a y r ) a a r r a d y
r Ui a nl rV e e g r i ss i t o r Ui a nl rV e e g r i ss i t o r Ui a nl rV e e g r i ss i t o r Ui a nl rV e e g r i ss i t o r Ui a nl rV e e g r i ss i t o r Ui a nl rV e e g r i ss i t o r Ui a nl rV e e g r i ss i t o r Ui a nl rV e e g r i ss i t o r Ui a nl rV e e g r i ss i t o r Ui a nl rV e e g r i ss i t o r Ui a nl rV e e g r i ss i t o r Ui a nl rV e e g r i ss i t o
d i n a r r a y
i s t E r A e d9 . T2 e i s t E r A e d9 . T2 e i s t E r A e d9 . T2 e i s t E r A e d9 . T2 e
s u
s e l e c t a r e a t u t u r o r h o s t u r i l o r d i n D B i n s t r i n g - a r r a y
9 . 2 9 . 2 9 . 2 9 . 2 9 . 2 9 . 2 9 . 2 9 . 2 9 . 2 9 . 2 9 . 2 9 . 2 9 . 2 9 . 2 9 . 2 9 . 2 9 . 2 9 . 2 9 . 2 9 . 2 9 . 2
i s t E r A e d9 . T2 e i s t E r A e d9 . T2 e i s t E r A e d9 . T2 e i s t E r A e d9 . T2 e i s t E r A e d9 . T2 e i s t E r A e d9 d .a T2 e i s t E r A e d9 . T2 e i s t E r A e d9 . T2 e
s t u
r i
i n
r Ui a nl rV e e g r i ss i t o E n r A e d9 . T2 e
s t e r g e
e x t r a g e r e a c o n t e n t u l u i d u p a U R L
h o s t
r Ui a nl rV e e g r i ss i t o E n r A e d9 . T2 e
r Ui a nl rV e e g r i ss i t o r Ui a nl rV e e g r i ss i t o r Ui a nl rV e e g r i ss i t o r Ui a nl rV e e g r i ss i t o r Ui a nl rV e e g r i ss i t o r Ui a nl rV e e g r i ss i t o r Ui a nl rV e e g r i ss i t o r Ui a nl rV e e g r i ss i t o r Ui a nl rV e e g r i ss i t o r Ui a nl rV e e g r i ss i t o r Ui a nl rV e e g r i ss i t o r Ui a nl rV e e g r i ss i t o r Ui a nl rV e e g r i ss i t o r Ui a nl rV e e g r i ss i t o
i s t e Ex t rr Ada e ig n ed9c < o .mnT2 te e t rna Uit ka e nyl w rV o e r ed g s r> i ss i t o E n r A e d9 . T2 e e i s t E p a r Ar es e d9 k e . T2 w ro Uir da s nl i n rVt oe e g r i ss i t o E n r A e d9 . T2 e e y
s t r i n g - a r r a y
i s t E r A e d9 . T2 e i s t E r A e d9 . T2 e i s t E r A e d9 . T2 e
L s u n t k e y w
r Ui a nl rV e e g r i ss i t o E n r A e d9 . T2 e r Ui a nl rV e e g r i ss i t o E n r A e d9 . T2 e
o
n r e g
s t e r g e
r Ui a nl rV e e g r i ss i t o E n r A e d9 . T2 e
U r Ui a a nld di rV ekt o ee gyd wra i tsosa r bi dt o sE s nae r An ed d9 R .L T2 e n a
r d
i n
r r a
n r e g n r e g n r e g n r e g n r e g n r e g n r e g n r e g
i s t E r A e d9 . T2 e i s t E r A e d9 . T2 e i s t E r A e d9 . T2 e i s t E r A e d9 . T2 e i s t E r A e d9 . T2 e i s t E r A e d9 . T2 e i s t E r A e d9 . T2 e i s t E r A e d9 . T2 e
d i n
a r r a y
r Ui a nl rV e e g r i ss i t o E n r A e d9 . T2 e
s t e r g e k e y w o r d d i n
a r r a y
r Ui a nl rV e e g r i ss i t o E n r A e d9 . T2 e r Ui a nl rV e e g r i ss i t o E n r A e d9 . T2 e r Ui a nl rV e e g r i ss i t o E n r A e d9 . T2 e r Ui a nl rV e e g r i ss i t o E n r A e d9 . T2 e r Ui a nl rV e e g r i ss i t o E n r A e d9 . T2 e r Ui a nl rV e e g r i ss i t o E n r A e d9 . T2 e
Pentru prezentarea interschimbului de informaii n procesul de lucru a aplicatiei am elaborat diagrame de secven. Diagrama de secven a procesului de cutare:
s d
E E E E E E E E E E
a n a l i s i s _ c l a s s
A A A A A A A A A A
9 . 2 9 . 2
U U U
n n n
r e
g i s t eE r A e
d9 d9 d9 d9 d9 d9 d9 d9 d9 d9
. T 2 r U a nl rV e e g r i s s i to eE n r A e d 9 . T 2 r U a nl rV e e g i i
r e G gU I i s t eE r A e r e
s
. T 2 rm U ao t nlo r rV e e g r i s s i to eE D n rB A e d 9 . T 2 r U a nl rV e e g i i
9 . 2
k e y w
g i s t eE r A e g i s t eE r A e
k e y w o r d s
. T 2 r U a nl rV e e g r i s s i to eE n r A e d 9 . T 2 r U a nl rV e e g i i
r d
9 . 2 9 . 2 9 . 2 9 . 2 9 . 2 9 . 2 9 . 2
U U U U U U U
n n n n n n n
r e r e r e r e r e r e r e
. T 2 r U a nl rV e e g r i s s i to eE n r A e d 9 . T 2 r U a nl rV e e g i i
k e y w o r d s
g i s t eE r A e g i s t eE r A e g i s t eE r A e
u r l - s
. T 2 r U a nl rV e e g r i s s i to eE n r A e d 9 . T 2 r U a nl rV e e g i i
. T 2 r U a nl rV e e g r i s s i to eE n r A e d 9 . T 2 r U a nl rV e e g i i
u r l - s
. T 2 r U a nl rV e e g r i s s i to eE n r A e d 9 . T 2 r U a nl rV e e g i i
g i s t eE r A e g i s t eE r A e g i s t eE r A e
. T 2 r U a nl rV e e g r i s s i to eE n r A e d 9 . T 2 r U a nl rV e e g i i
. T 2 r U a nl rV e e g r i s s i to eE n r A e d 9 . T 2 r U a nl rV e e g i i
. T 2 r U a nl rV e e g r i s s i to eE n r A e d 9 . T 2 r U a nl rV e e g i i
A E A E A E
E A E A E E E E E E E
A A A A A A
9 9 9 9 9 9
9 . 2
. 2 . 2 . 2 . 2 . 2 . 2
U U U U U U
U U U U U U U
n n n n n n
n n n n n n n
r e r e r e r e r e r e
r e r e r e r e r e r e r e
g g g g g g
g i s m t eEe sr As e a gd 9
i s t eE r A e i s t eE r A e i s t eE r A e i s t eE r A e i s t eE r A e i s t eE r A e
d 9 e . T 2 r iU a nl V e e g r is s i to eE n r A e r d9 d9 d9 d9 d9 . T 2 r iU a nl V e e g r is s i to eE n r A e r . T 2 r iU a nl V e e g r is s i to eE n r A e r . T 2 r iU a nl V e e g r is s i to eE n r A e r . T 2 r iU a nl V e e g r is s i to eE n r A e r . T 2 r iU a nl V e e g r is s i to eE n r A e r
. T 2 r U a nl rV e e g r i s s i to eE n r A e d 9 . T 2 r U a nl rV e e g i i
d9 d9 d9 d9 d9 d9
. T 2 r iU a nl . T 2 r iU a nl . T 2 r iU a nl . T 2 r iU a nl . T 2 r iU a nl . T 2 r iU a nl
9 . 2 9 . 2 9 . 2 9 . 2 9 . 2 9 . 2
g i s t eE r A e g i s t eE r A e g i s t eE r A e g i s t eE r A e g i s t eE r A e g i s t eE r A e
d9 d9 d9 d9 d9 d9
. T 2 r U a nl rV e e g r i s s i to eE n r A e d 9 . T 2 r U a nl rV e e g i i
. T 2 r U a nl rV e e g r i s s i to eE n r A e d 9 . T 2 r U a nl rV e e g i i
. T 2 r U a nl rV e e g r i s s i to eE n r A e d 9 . T 2 r U a nl rV e e g i i
. T 2 r U a nl rV e e g r i s s i to eE n r A e d 9 . T 2 r U a nl rV e e g i i
. T 2 r U a nl rV e e g r i s s i to eE n r A e d 9 . T 2 r U a nl rV e e g i i
. T 2 r U a nl rV e e g r i s s i to eE n r A e d 9 . T 2 r U a nl rV e e g i i
A E A E
E E E E E E E E E E
s d
Aa A A A A A A A A A
n a l i s i s _ c l a s s
9 9i 9 9 9 9 9 9 9 9
. 2 . e2 . 2
U U U
n r e
g i s t eE r A e d 9 . T2 r U a nl rV e e g r i s s i t o e n r A e i E
d9 d9 d9 d9 d9 d9 d9 d9 d9 d9 d9 d9
. T2 . T2 . T2 . T2 . T2 . T2 . T2 . T2 . T2 . T2 . T2 . T2
n r e
t e
g i s t eE r A e d 9 . T2 r U a nl rV e e g r i s s i t o e n r A e i E g i s t eE r A e d 9 . T2 r U a nl rV e e g r i s s i t o e n r A e i E
g e t h o s t s
. 2 . 2 . 2 . 2 . 2 . 2 . 2
U U U U U U U
n r e n r e n r e n r e n r e n r e n r e
g i s t eE r A e d 9 . T2 r U a nl rV e e g r i s s i t o e n r A e i E
h o s t s
g ih s o ts teE s r A e d 9 . T2 r U a nl rV e e g r i s s i t o e n r A e i E g i U s R t LeE - sr A e d 9 . T2 r U a nl rV e e g r i s s i t o e n r A e i E
r s g g i e s t t k eEe y r Aw e o d 9 d .s T2 b ry U Ua R nl L rV- e e g r i s s i t o e n r A e i E r s g s ei s t tk eeE y r wA e o d 9d s . T2a n r dU a U nl R rVL e - e g r i s s i t o e n r A e i E
g i s t eE r A e d 9 . T2 r U a nl rV e e g r i s s i t o e n r A e i E . T2 r U a nl rV e e g r i s s i t o e n r A e i E
s 9a n . a 2 l i s i U S
. _ 2c
n l a r s es g r Ue
g a
n r e
i s E t eA r e9 d. 2 T U r i n a r l e V g e i s E ts eA i or e9n d. 2 T U r i n a r l e V g e i s E st eA i o r r
g i s t eE r A e d 9 . T2 r U a nl rV e e g r i s s i t o e n r A e i E
+ + -
AE
A E e 9x At . a 2 r 9e aU . 2 n l e r mUe t e
r e s u l t n h : s t r i n
F i e k e y
e a r c h G U I 9 A . 2 9 U. 2 n l d w o r d s
E i E e A r g n i rs E etM eA og tr o ie9 s d. t2 e T Ur Ar <e i nu a ds 9el e > .VT>g2 e i r s EU tsa eA i nlor er9V< ed.< e2u g sTr e Us >sr >iintao er l n r V ge e i ds9E st . eA 2 o r ri n r Ti <
a r c h ( s t r i n g ) : s t r i n l i b g W a o rr r k a w y r a r y i t h d a t a b a s e d a t a b a s e D B
AE A A
D
b u t t o s e a r c o
9 A . 2 9 U. 2 n 9 9
S
r Ue r e
: v o
g n i rs E et eA g r ie9 s d. t2 e T Ur Ar e i n a d 9 l e .VTg2 e i r s EU tsa eA i nlor er9V ed. e2 g Tr Us sr iintao er l n r V ge e i ds9E st . eA 2 o r ri n r Ti E i E e A < < u s e > > g g
i d
E
A
. 2 . 2o . 2
d t o
r c
9 9 n 9 9
o
U U U
( )
. 2 . 2 . t t2 p . 2
U
n nI
U U U U
n r e n r e
>- >t i m
i s E t eA r e9 d. 2 T U r i n a r l e V g e i s E ts eA i or e9n d. 2 T U r i n a r l e V g e i s E st eA i o r r
g i s t eE r A e d 9 . T2 r U a nl rV e e g r i s s i t o e n r A e i E g U pi sd a tt e eED B r A e d 9 . T2 r U a nl rV e e g rl i i sb s r ia t or ey n r A e i E
H T T P p r o t o c o l
d9 d9 d9 d9
. T2 . T2 . T2 . T2
A+ A A
-
E A b u t
a
d d H
s t G
r e
<
i s E t eA r e9 d. 2 T U r i n a r l e V g e i s E ts eA i or e9n d. 2 T U r i n a r l e V g e i s E st eA i o r r
9d 9 9
<
n n n
r u e s eg
: v
E E
F h A
i e l d o s t = d
A A
. 2
H
s t ( )
U U
: / /
r e
o
i d
g g
n + rA ed n rUU epp
g e
. 2
r e r Ue r Ue r Ue r e
i s E t eA r e9 d. 2 T U r i n a r l e V g e i s E ts eA i or e9n d. 2 T U r i n a r l e V g e i s E st eA i o r r
AE AE AE A
9 A . 2 9 U. 2 n 9 A . 2 9 U. 2 n 9 A . 2 9 U. 2 n 9
l i b r a r y E i l E e A g n i rs E et eA g r ie9 s d. t2 e T Ur Ar e i n a d 9 l e .VTg2 e i r s EU tsa eA i nlor er9V ed. e2 gC Trr aUs swr iinteao er l n r V ge e i ds9E st . eA 2 o r ri n r Ti r
. 2
. 2
n r e
i s E t eA r e9 d. 2 T U r i n a r l e V g e i s E ts eA i or e9n d. 2 T U r i n a r l e V g e i s E st eA i o r r
g i s t eE r A e d 9 . T2 r U a nl rV e e g r i s s i t o e n r A e i E
d9
. T2
Implementare: La aceast etap, folosind datele prezentate mai sus se elaboreaz codul surs al programului.