You are on page 1of 52

UNIVERSITETI I PRISHTINËS

FAKULTETI I INXHINIERISË ELEKTRIKE DHE KOMPJUTERIKE

Lënda: Siguria e të dhënave

Tema: Google, si funksionon dhe si të mashtrohet

Mentori: Studenti:
Dr. techn. Blerim REXHA Valon RAÇA

Qershor 2007, Prishtinë


________________________________________________________________________
i
Abstrakt
Analiza e mega-sistemeve, çfarë është Google, paraqitet duke ngërthyer në vetvete shqyrtimin e
pjesëve që e përbëjnë, atyre në të cilat sistemi mbështetet, dhe rrethinave tjera që i mundësojnë
sistemit të funksionojë pa probleme apo të përtërihet lehtë nga ndonjë dështim eventual.
Përgjithësisht makina kërkuese Google paraqitet si sistemi i kompjuterëve të projektuar për
kërkimin e informatave në ueb. Google mundohet t’i kuptojë kërkesat e njerëzve në mënyrë
“njerëzore”, dhe t’iu kthej atyre përgjigjen në formën të qartë. Por, ky synim nuk është as afër
ideales dhe realizimi i tij sa vjen e vështirësohet me zgjerimin eksponencial që sot po përjeton
ueb-i.
Procesi i grumbullimit të të dhënave dhe paraqitja e tyre në rezultatet e kërkimit ngërthen në vete
regjistrimin e të dhënave nga ueb-faqe të ndryshme dhe vendosjen e tyre në rezervuarin e
sistemit, përkatësisht në bazën e të dhënave ku edhe realizohen pyetësorët që kthejnë rezultatet e
radhitura në mënyrën e caktuar nga algoritmi i Google. Mbledhja, sistemimi dhe paraqitja e
rezultateve nga Google paraqet boshtin e shtjellimit në këtë punim.
Me rritjen e Google, përkatësisht, me fuqizimin e Google në ueb, paraqiten edhe problemet e
përshtatshmërisë dhe përputhshmërisë së sistemit me teknologjitë aktuale që disponon tregu.
Sikur që çdo sistem i veçantë, kërkon zgjidhje të veçantë, edhe Google ka sistemin e saj shumë
specifik për funksionalizimin e pjesëve të saj në mënyrat, të cilat janë treguar mjaft optimale,
sidomos financiarisht.
Përfundimisht, pjesë e këtij punimi janë edhe mashtrimet që i bëhen Google duke shfrytëzuar
dobësitë e algoritmit për radhitjen e rezultateve, si dhe studimi i mundësive dhe ideve për
zhvillimin e mëtutjeshëm dhe avancimin e teknologjive të kërkimit në ueb.

Fjalët kyçe: Google makina kërkuese, Google klaster arkitektura, PageRank, ueb semantike

________________________________________________________________________
ii
Abstract

Analysis of mega-systems, such as Google, is constructed by inspecting particles from which


system is composed, those one in which system lays on, as well as environments that make system
work without encountering problems or recover the system from eventual failures.
Generally, Google search machine is presented as a projected system of computers that handles
the search requests for information on web. Google tries to understand human search requests in
a “human” way, as well as it tries to return search results in the most possible clear format. But,
this goal is not so close to the ideal case, and its realization is becoming more difficult when we
take in consideration webs exponential enlargement.
The process of collecting data and their representation in search results comprises data
registration from various web pages and saving of those data into system reservoirs, respectively
in the databases, that are used to run queries. These queries returns search results to the users,
ordered in the way that is defined by Google algorithm. Data collecting, systematization and
result representation from Google engine will be in the center of explication on this paper.
While web is enlarging, Google’s taking a new role in the web. But, this is also followed by a
range of problems, starting from system compatibility with current technologies. As all specific
systems does, also this issue needs a specific solution, so Google has its own system for turning
its system components work in a particular way, which has been seen more efficient and
financially optimal.
Finally, in this paper are discussed also the ‘work around’ or ‘cheats’ on Google, through using
algorithm weaknesses, which orders the search result. Advanced technologies for web searching
are discussed at the very end of this paper.

Keywords: Google search engine, Google cluster architecture, PageRank, web semantics

________________________________________________________________________
iii
FALËNDERIME

Dëshiroj të falënderoj në rend të parë familjen time, babain Jetonin, nënën Fatmiren, motrat
Vlorën dhe Azrën, për ndihmën dhe përkrahjen e pakursyer që më dhanë gjatë studimeve.

Falënderim të veçanta kam edhe për familjen e gjerë, të cilët me interesimin e tyre, më dhanë
shtytje të fortë, që t’i përfundoj studimet me sukses.

Dëshiroj t’i falënderoj, gjithashtu shokët e shoqet për përkrahjen që më kanë dhënë, dhe për
kujtimet e mira nga koha e studimeve.

Një falënderim të posaçëm kam për profesorin Dr. techn. Blerim Rexha, në radhë të parë për
durimin e tij, mbështetjen dhe ndihmën e pakursyer që më ka dhënë si gjatë studimeve, ashtu
edhe në punimin e tezës së diplomës.

________________________________________________________________________
iv
PËRMBAJTJA
1 HYRJA DHE MOTIVIMI.................................................................................1
1.1 Hyrje................................................................................................................................................ 1

1.2 Motivimi.......................................................................................................................................... 2

1.3 Përshkrimi i problemit dhe objektivat ......................................................................................... 2

2 PARAQITJA E GOOGLE NË UEB ...............................................................3


2.1 Zhvillimi i makinave kërkuese ...................................................................................................... 3

3 ARKITEKTURA E GOOGLE MAKINËS KËRKUESE ..................................6


3.1 Arkitektura e klasterëve të Google ............................................................................................... 6

3.2 Sistemi i skedarëve të Google ........................................................................................................ 8

3.3 Struktura e të dhënave................................................................................................................. 13

4 ORGANIZIMI I TË DHËNAVE NË GOOGLE...............................................15


4.1 Struktura funksionale e komponentëve të klasterëve të Google .............................................. 15

4.2 Mbledhja e informative në ueb ................................................................................................... 18

4.3 Indeksimi i uebit dhe MapReduce modeli.................................................................................. 21

5 REZULTATET E KËRKIMIT........................................................................25
5.1 Analiza e pyetësorëve dhe përpilimi i rezultateve preliminare të kërkimit ............................ 25

5.2 Renditja e rezultateve të kërkimit përmes algoritmit PageRank............................................. 27

5.3 Efektshmëria e sistemit................................................................................................................ 31

5.4 Google dhe makinat tjera kërkuese ............................................................................................ 32

6 SI TË MASHTROHET GOOGLE?...............................................................35
6.1 Teknikat për manipulimin e rezultateve të kërkimit të Google makinës kërkuese ................ 35

6.2 Teknikat e makinave kërkuese për mbrojtje kundër mashtrimeve......................................... 36

7 E ARDHMJA E MAKINAVE KËRKUESE ...................................................38


7.1 Zhvillimi i vetive semantike te makinat kërkuese ..................................................................... 38

________________________________________________________________________
v
8 PËRFUNDIMI ..............................................................................................41

SHTESAT ...........................................................................................................42
Lista e figurave ........................................................................................................................................... 42

Lista e tabelave ........................................................................................................................................... 42

Lista e shkurtesave ..................................................................................................................................... 42

REFERENCAT ...................................................................................................44

________________________________________________________________________
vi
1. Hyrja dhe motivimi 1.1 Hyrje

Kapitulli 1

1 Hyrja dhe motivimi

1.1 Hyrje
Informacioni dhe shpejtësia e arritjes deri te ai, janë bërë esenca e zgjidhjeve, thelbi i çdo
ekonomie kapitaliste, baza e çdo kërkimi shkencor ose thjeshtë thënë janë bërë pjesë e
përditshmërisë dhe e suksesit të shoqërisë njerëzore.

Me rreth 11.2 miliardë [1] ueb faqe në internet, vështirë mund të thuhet se do të gjenim atë që
dëshirojmë pa na ndihmuar ndokush, sikur që nuk do të mund të hulumtonim për një libër të
caktuar në një bibliotekë që ka një fond prej miliarda ekzemplarësh, pa ndihmën e një
profesionisti që punon aty. Aq më tepër, nëse ato libra nuk janë të sistemuara në mënyrë logjike
sikur që është rasti me ueb faqet në internet dhe, të mos përmendim faktin që dyfishimi i numrit
të ueb faqeve është çështje vitesh e jo dekadash. Jo shumë vite prapa, ky dyfishim ishte çështje
muajsh [2, 3]. Sigurisht që epilogu i çdo kërkimi në ueb do të ishte një bredhje poshtë-lartë, me
gjasa jashtëzakonisht të vogla për të arritur deri te ndonjë rezultat i kënaqshëm.
Në mënyrë të natyrshme lind nevoja për një ‘qendër globale të informimit’ lidhur me atë se çfarë
gjendet në këtë rezervuar gjigant të informatave. Dhe kjo nuk përfundon këtu. Sfidë e vërtetë
është përcaktimi i objektivave që do t’i ketë kjo ‘qendër informuese’, duke filluar nga ato të
kërkimit dhe mbledhjes së materialit e deri te paraqitja e kuptueshme e rezultateve dhe shpejtësia
e kthimit të rezultatit. Google dhe shumë makina kërkuese i qëndrojnë përballë këtyre
problemeve me fanatizëm i qëndrojnë besnik detyrimeve të tyre si qendra informuese dhe
drejtuese për popullatën që ka qasje në internet e që po rritet çdo ditë e më shumë.

Kërkimi i materialeve duke u bazuar në strukturën e lidhjeve në mes ueb faqeve paraqitet si mjaft
sfidues. Nga kjo edhe rrjedh nevoja për dizajnimin e robotëve softuerik, për të kursyer njerëzit
dhe natyrisht edhe për efikasitet më të lartë (nuk lodhen, nuk kanë nevojë të ushqehen, nuk
vonohen në punë, nuk hidhërohen dhe nuk japin dorëheqje në momente kyçe).

Analiza e materialeve paraqitet si korrektues ‘gramatikor’ i ueb faqeve, ashtu që i përkthen


materialet në forma të standardizuara, por puna e saj nuk përfundon me kaq, jo së paku për
Google. Google bën edhe analizën e hollësishme të lidhjeve ndërmjet ueb faqeve, veti kjo që do
të ndikojë në formulën për radhitjen e rezultateve [2].

Për të gjetur, gjegjësisht për të kërkuar diçka të veçantë, njerëzit janë të prirur të japin të
ashtuquajturat ‘fjalë kyçe’ (nga ang. keywords) që pamohueshmërisht lidhen në një mënyrë a
tjetrën me atë që kërkojmë. Mirëpo, shumë makina kërkuese rrallëherë i paraqesin ‘rezultatet e
pritura’ në rend të parë. Dhe kush do të kishte durim që të shfletonte mijëra faqe për të arritur deri
te rezultati i dëshiruar? – Jo së paku një qenie njerëzore. Kërkimet shkencore [4] kanë bërë të
ditur se njerëzit janë të prirur të shikojnë vetëm 10-20 rezultatet e para, para se të mërziten.
Fatmirësisht, një qasje më të mirë në këtë drejtim e ofron Google makina kërkuese.

________________________________________________________________________
1
1. Hyrja dhe motivimi 1.1 Hyrje

1.2 Motivimi
Nevoja për drejtimin e shfrytëzuesve drejt lokacioneve në ueb, që përmbajnë informacionet që
shfrytëzuesit i kërkojnë, imponoi paraqitjen dhe përsosjen e makinave kërkuese në internet.
Algoritmet që tanimë përdoren nga këto makina kërkuese, për të mbledhur, sistemuar të dhënat si
dhe për të renditur rezultatet, përbën një fushë mjaft interesante për studim, dhe mjaft tërheqëse
për eksperimentim.

Arsyeja kryesore për të marr në studim këtë teknologji të uebit, rrodhi si rezultatet i rritjes enorme
që po pëson uebi sot, dhe nevojës për sistemim të informatave të paraqitura në ueb.

1.3 Përshkrimi i problemit dhe objektivat


Funksionimi i makinës kërkuese Google, duke përfshirë këtu grumbullimin e informatave nga
uebi, deponimin e tyre nëpër kompjuterët e klasterëve të Google, të dizajnuar me kreativitet të
madh, përshkrimi i funksionimit të modeleve klaster, si dhe analiza e sistemit specifik të
skedarëve që Google shfrytëzon për të ruajtur të dhënat, përbejnë vetëm njërën nga objektivat e
këtij punimi.

Vend të veçantë në këtë punim, zë studimi i formave dhe modaliteteve, të cilat përdoren si për
sistemimin e të dhënave të mbledhura në ueb dhe indeksimin e këtyre të dhënave, ashtu edhe për
paraqitjen e rezultateve të kërkimit, të cilat përzgjidhen me kujdes, përmes algoritmit që ka
zhvilluar Google.

Në përmbushje të synimit, për përshkrimin sa më të thuktë të funksionimit të Google makinës


kërkuese, si objektiv është paraparë edhe krahasimi i efektshmërisë së Google makinës kërkuese
kundruall makinave tjera kërkuese, sikurse edhe shqyrtimi i modeleve dhe ideve të paraqitura për
avancimin e efektshmërisë së makinave kërkuese në të ardhmen.

________________________________________________________________________
2
2. Paraqitja e Google në ueb 2.1 Zhvillimi i makinave kërkuese

Kapitulli 2
2 Paraqitja e Google në ueb

2.1 Zhvillimi i makinave kërkuese


Kërkimi për një dokument a informatë në mënyrë elektronike nuk ka lindur me lindjen e uebit,
por para saj. Në të 90-tat e hershme ekzistonin hapësirat për diskutime e shkëmbime të
informatave apo siç quhen në anglisht bulletin boards, ku universitetet e ndryshme të ndërlidhura
ndërmjet veti ofronin dhomat e bashkëbisedimit (ang. Chat) dhe shkëmbimin e punimeve
shkencore në mes profesorëve, pastaj depot elektronike të departamentit amerikan të mbrojtjes që
shërbenin për shkëmbimin e skedarëve dhe ruajtjen e bartjen e të dhënave në mes pikave të
atëhershme strategjike për deponim elektronik. Të gjitha këto shërbime realizoheshin përmes
shërbimeve të atëhershme komunikuese si telnet-i, posta elektronike (ang. e-mail), usenet grupet
e FTP faqet. Transferi i këtyre skedarëve ishte detyra e shërbimit FTP, por, leximi apo ekzekutimi
i tyre ishte ngushtë i lidhur me pajisjen me softuer që përkrahte tipin specifik të atij skedari.

Makina Para Projektuesi Profesioni i Mjeshtëria


kërkuese qitja projektuesit
Archie 1990 Alan Emtage Student - Arkivimi i FTP skedarëve
Universiteti
McGill
Gopher 1991 Mark McCahill Student - Arkivimi i FTP skedarëve
Universiteti i
Minnesota-s
WWW Worm 1993 Martin Koster Ueb direktoriumi i parë

WebCrawler 1994 Brian Pinkerton Student - Indeksimi i tekstit në ueb faqe


Universiteti i
Washington-it
Yahoo! 1994 David Filo & Studentë - Direktorium
Jerry Jang Univeristeti i
Stanfordit
Lycos 1994 Michael Maldin Student - Direktorium
Universiteti
Carnegie Mellon
MetaCrawler 1995 Eric Selburg & Studentë - Metakërkuesi i parë
Oren Etizioni Univeristeti i
Washington-it
AltaVista 1995 Digital Kërkimi i parë përmes gjuhës
Equipment natyrale dhe operatorëve 'boolean'
Corp.
MSN Search 1998 Microsoft Kërkim dhe direktorium
Google 1998 Larry Page & Studentë - Merret parasysh struktura e
Sergey Brin Universiteti i lidhjeve

________________________________________________________________________
3
2. Paraqitja e Google në ueb 2.1 Zhvillimi i makinave kërkuese

Stanfordit

Tabela 1: Makinat kërkuese [5]

Makina e parë kërkuese që paraqitet në Internet është Archie, më 1990, e dizajnuar nga Alan
Emtage, atëbotë student i Universitetit McGill, Montreal, Québec, Kanadë. Detyra e Archie-t
ishte të indeksonte skedarët e FTP serverëve në rrjetë. Në këtë kohë u paraqit edhe Gopher, apo
GopherSpace siç u quajttë sistemi i të gjithë kompjuterëve Gopher që ofrojnë katalogun e FTP
qendrave të lidhura në rrjet dhe skedarët që ato përmbanin [5].
Pas vitit 1993, me paraqitjen e ueb shfletuesit të parë, paraqitet edhe ueb-i (World Wide Web), si
një mënyrë universale e leximit të të dhënave, duke lënë qasjen përmes FTP-së vetëm për transfer
skedarësh [5].

Zhvillimi i internetit drejt teknologjisë HTML (HyperText Markup Language) bëri të mundur që
të gjithë shfrytëzuesit që kanë qasje fizike në internet dhe një shfletues të çfarëdoshëm, pa pasur
nevojë për ndonjë program shtesë të vizitojnë qendra të ndryshme informative në internet. Ishte e
qartë se me paraqitjen e HTML-së një dimension i ri i kërkimit në internet po merrte formë.
Makinave kërkuese iu imponua qasja e re që duhet të kishin në internet. Ato tanimë nuk ishin
vetëm kërkues të skedarëve por edhe kërkues të informacionit, të vënë përmes HTML-së në
formë të materialit tekstual, grafik apo tingullor.

Marr parasysh se kufizimet softuerike/harduerike për komunikim i takonin të kaluarës,


shfrytëzuesit e internetit, ku tashmë përfshihen prezantuesit e informatave, si universitet,
institucionet, bizneset e të tjerë, dhe vizituesit e tyre apo ueb lundruesit (nga ang. web surfers)
filluan të rriten eksponencialisht. Numri i ueb faqeve rritej, shumëfishohej nga viti në vit në
mënyrë marramendëse [2, 3].

Diagrami i rritjes së numrit të ueb faqeve

12,000,000,000.00

10,000,000,000.00
Numri i ueb faqeve

8,000,000,000.00
11,200,000,000

6,000,000,000.00

4,000,000,000.00
1,292,000,000
150,000,000

604,000,000
11,400,000
2,000,000

2,000,000,000.00
110,000

0.00

94 97 95 98 00 01 05
19 19 19 19 20 20 I 20
X

Figura 1: Grafi i rritjes së numrit të ueb faqeve [2, 3]

________________________________________________________________________
4
2. Paraqitja e Google në ueb 2.1 Zhvillimi i makinave kërkuese

Numrat e paraqitur në diagramin e sipërm paraqesin sasinë e ueb faqeve që kanë arritur të
indeksohen, përderisa kapaciteti i uebit mendohet të jetë 400 deri 500 herë më i madh se vlerat e
paraqitura në figurë [6].

Në shtator 1998, Sergey Brin dhe Lawrence Page, studentë në Universitetin e Stanfordit,
propozojnë Google, një projekt të tyre për kërkimin e informatave në internet. Ky projekt
përfshinte algoritmin për radhitjen e veçantë të rezultateve të kërkimit. Algoritmi PageRank është
patentuar në SHBA më 1998 [7]. Ky algoritëm ishte e veçanta më e madhe e Google si makinë
kërkuese, dhe arriti që Google ta bënte makinën kërkuese më të shfrytëzueshme në internet.

Sipas statistikave më 2000 [8], një qytetar i rëndomtë i SHBA-ve kalon afërsisht 1 orë e gjysmë
gjatë javës duke kërkuar përmes makinave kërkuese, dhe nëse këtu marrim parasysh se përqindja
e të gjitha kërkimeve në internet që i takon Google është 43% [9], përllogaritet lehtë, sa i vizituar
është Google dhe sa e dobishme do të ishte një reklamë biznesi në këtë ueb faqe.

Me rritjen e frekuentimit, Google fillon me politikat komerciale si Pay-per-click dhe AdWords, të


dy këto mundësi për reklamim, nga të cilat Google korr një shumë të jashtëzakonshme parash.

________________________________________________________________________
5
3. Arkitektura e Google makinës kërkuese 3.1 Arkitektura e klasterëve të Google

Kapitulli 3
3 Arkitektura e Google makinës kërkuese

3.1 Arkitektura e klasterëve të Google


Google posedon një arkitekturë tërësisht jokonvencionale sa i përket strukturës së sistemit
harduerik. Për t’i ikur shpenzimeve të mëdha për blerjen e serverëve të sofistikuar (ang. high-end
servers), të cilët posedojnë fuqi të madhe të përpunimit të të dhënave, zënë pak hapësirë e janë të
thjeshtë për tu menaxhuar, Google zgjodhi një qasje tjetër e cila doli të jetë mjaft efektive dhe
mjaft e volitshme financiarisht [2].
Ideja është që të blihen shumë kompjuterë të klasit të mesëm, të cilët kushtojnë lirë, e që me një
ndërlidhje të duhur softuerike do të mundësohej përpunimi paralel, ku si rezultat do të kishim
performancën konkurruese me serverët e sofistikuar, të cilët përdoren nga rivalët e pasur [2].

Megjithatë, shumë kompjuterë, përveç që kërkojnë një sistem operativ të veçantë dhe të
distribuueshëm, për të siguruar përpunimin paralel të të dhënave në të gjithë kompjuterët,
kërkojnë edhe hapësirë të mjaftueshme për vendosje, kapacitet të mjaftueshëm elektrik dhe të
ftohjes. Klaster arkitektura e Google lind si zgjidhje mjaft e mirë dhe ajo bëhet njëra nga shumë
shtyllat të cilat e bëjnë Google të veçohet nga sistemet tjera në pothuaj të gjitha aspektet.
Klaster arkitektura në esencë paraqet vendosjen në një hapësirë të përbashkët dhe jo shumë të
madhe, të një sasie të konsiderueshme të kompjuterëve të tipit x86 dhe sigurimin e
bashkëveprimit mes tyre [9].

Një grumbull i tillë i kompjuterëve të Google, apo një stendë me kompjuterë, mund të vendoset
komfor në një hapësirë prej rreth 2.5 m2 [10].

Figura 2: Klaster arkitektura (stendat) e Google

________________________________________________________________________
6
3. Arkitektura e Google makinës kërkuese 3.1 Arkitektura e klasterëve të Google

Kjo ka bërë që Google të investoj në krijimin e shumë stendave të kompjuterëve dhe t’i distribuoj
ato në shumë vende të botës, ashtu që sistemi si tërësi të mos varet vetëm nga një qendër e
përpunimit të të dhënave dhe e reagimit ndaj kërkesave [9].
Stenda të këtilla janë të vendosura në shumë qendra botërore dhe në rast të dështimeve fatale të
ndonjërës nga to, ndërlidhja e sistemit përmes rrjetës globale i mundëson Google që të
rikuperohet pothuaj pa u vërejtur fare [9].

Stendat e Google klaster arkitekturës përbëhen prej 40 deri 80 kompjuterë të tipit x86. Gjatë
projektimit të stendave i kushtohet kujdes diferencës në fuqi në mes kompjuterëve, ashtu që ajo të
mos jetë shumë e dallueshme e në dobi të balancimit të ngarkesës në mes pjesëve. Kështu që,
nëpër kompjuterët e vendosur në stenda mund të hasim lloje të ndryshme procesorësh që këta
kompjuterë përmbajnë, por diferenca e tyre në kuptim të fuqisë përpunuese nuk është e madhe
[10].

Në stendë ekziston edhe një ndërmjetës për balancimin e ngarkesës, i cili vepron menjëherë pasi
që të pranohet kërkesa, duke i ndarë punët që duhet kryer në mënyrë të barabartë mes
kompjuterëve në stendë. Ky ndërmjetësues ka natyrë harduerike [10]. Në këtë mënyrë fitohet
edhe paralelizmi i një shkalle të lartë të përpunimit të të dhënave por, edhe sigurohet që në rast të
dështimit të ndonjë komponenti në stendë (p.sh. hard disku i ndonjërit nga kompjuterët e stendës),
sistemi të reagojë shpejt duke ia ndarë atë detyrë ndonjërës nga makinat tjera në kuadër të
stendës.

Shkalla e amortizimit të këtij sistemi, përkatësisht dallimi në vjetërsi i komponentëve në këto


stenda vlerësohet të jetë jo mbi tre vjeçar pasi që vendosja e disa komponentëve të kompjuterëve
në të njëjtën stendë çfarë janë, procesorët, e që kanë dallim në kohë të prodhimit njëri nga tjetri
më shumë se 3 vjet, do të shkaktonte zhbalancimin e fuqisë në stendë, pasi siç e dimë fuqia e
përpunimit të procesorëve të sotëm vetëm sa po vjen e rritet, dhe kjo do të ndërlikonte punën e
ndërmjetësuesit për balancimin e ngarkesës në stendë, dhe si rezultat do të kishim vonesën e
reagimit të sistemit [10]. Ndërmjetësuesi i balancimit të ngarkesës me pranimin e një kërkesë e
cila po e zëmë do të kërkonte 10 miliardë operacione procesorike, do ta ndante përpunimin në, të
themi 10 procesorë me fuqi përpunimi 1 GHz (1 miliardë operacione për sekondë), në mënyrë që
i gjithë procesi të përfundojë për një sekondë. Si rezultat do të kishim reagimin linear dhe të
njëkohshëm të të gjithë procesorëve. Por nëse njëri nga këta procesorë nuk ka fuqi 1 GHz, por ta
zëmë vetëm 500 MHz, atëherë i tërë sistemi do të ishte në pritje të reagimit të këtij procesorit të
fundit dhe kjo do të kishte ndikim jo edhe aq të vogël në kohën e përgjithshme të reagimit të
sistemit. Nëse në të parën sistemi i përbërë prej 10 procesorëve do të reagonte brenda një
sekonde, në të dytën edhe pse 9 procesorët e parë kanë përfunduar punën për një sekondë, i tërë
procesi zvarritet edhe për një sekondë tjetër për shkak të procesorit 500 MHz, të cilit do t’i duhen
2 sekonda për ta përfunduar sasinë e njëjtë të operacioneve. Prandaj, më e dobishme është të kemi
serverë me konfigurim të ngjashëm sesa të krijojmë një lloj të dytë ndërmjetësuesi të balancimit
të ngarkesës por kësaj here në nivelin softuerik, në mënyrë që ai të kontrollojë se cila pjesë e
stendës çfarë mund të kryejë dhe për sa kohë mund ta kryejë.

Sa i përket komponentëve tjera konfigurimi i serverëve dallon varësisht prej natyrës së punës që
ka për të kryer serveri. Në kuadër të stendës së klaster arkitekturës ka serverë të cilët kryejnë punë
për të cilat kërkohet gjerësi më e madhe e brezit frekuencor në kanalet që bartin të dhënat për te
memoria punuese për të evituar të ashtuquajturin ‘fytin e shishes’ (nga ang. bottleneck), përderisa
te disa të tjerë qenësore është hapësira në disk, apo fuqia e përpunimit [10].

________________________________________________________________________
7
3. Arkitektura e Google makinës kërkuese 3.1 Arkitektura e klasterëve të Google

Në anën tjetër, të gjithë kompjuterët në stendë janë të lidhur ndërmjet veti përmes arkitekturës
Ethernet, me shpejtësi të bartjes 100 Mbps. Ethernet switch-i që ndërlidh serverët brenda stendës
ka një apo dy lidhje me gigabit switch-in që ndërlidh stendat ndërmjet veti [10].

Klaster arkitektura e Google, ka bërë atë që edhe pritej. Falë saj Google gëzon përparësi ndaj
rivalëve që paguajnë rreth 3 herë më shtrenjtë për efektshmëri të njëjtë. Kjo del nga një studim i
bërë nga inxhinierët e Google në [10], sipas të cilit në fund të 2002 një stendë me 176 CPU 2-
GHz të Xeon-it, 176 GB RAM dhe 7 TB (terabajt) hapësirë në disk kushtonte rreth 278,000
dollarë amerikanë, përderisa një konfiguracion i serverit të sofistikuar me 8 procesorë 2-GHz të
Xeon-it, 64 GB RAM dhe 8 TB hapësirë disku mund të blihej për rreth 758,000 dollarë
amerikanë. Nga ky përshkrim shihet që jo vetëm financiarisht zgjidhja e Google është më e mirë,
por ajo ka 22 herë më shumë fuqi përpunuese dhe rreth 3 herë më shumë hapësirë punuese në
RAM, me një disfavor të vogël në hapësirën e diskut.

Google, pasi që filloi me politikat komerciale, ka pasur në posedim rreth 30 stenda me


kompjuterë, gjersa tani nuk dihet saktësisht numri i tyre, por vlerësohet të jetë shumë më i madh,
ngaqë Google ruan dhjetëra kopje të uebit nëpër kompjuterë [9]. Sipas vlerësimit të Stephen E.
Arnold [11], Google posedon rreth 150,000 deri 170,000 serverë dhe është zgjeruar në më se 60
qendra të përpunimit të të dhënave nëpër botë.

Përparësi e veçantë e kësaj arkitekture, është se ajo është shumë e përshtatshme dhe shumë
fleksibile ndaj rritjes së sistemit me kohë. Thjeshtë, me rritjen e vëllimit të uebit, mund të shtohen
serverë nëpër stenda dhe me kaq zgjidhet problemi. Pa formula matematikore! Pra, zgjidhja le që
është lineare, por është edhe e volitshme financiarisht dhe lejon parashikimin e të ardhmes së
sistemit. Natyrisht, ky përfundim rrjedh duke mos marr parasysh problemet e konsumit të
energjisë dhe kapacitetet e ftohjes brenda stendës.

3.2 Sistemi i skedarëve të Google


Nevojat praktike në shumë raste nuk përkojnë me teknologjitë standarde, dhe si rezultat ne bëjmë
modifikimin e sistemeve tona, duke i përshtatur sistemet me teknologjitë që disponon tregu, ose
në raste të rralla, çfarë është Google, projektuesit ndërmarrin projekte të përmasave të mëdha si
projektimi i teknologjive të veçanta të cilat përkojnë me sistemet tashmë të zhvilluara në
kompani.
Google ka dizajnuar sistemin e vet të skedarëve, që ndryshon mjaft nga sistemet e popullarizuara
të skedarëve, e të cilat përkrahen nga sistemet moderne operative si Windows e Linux.

Sistemi i skedarëve të Google SSG (nga ang. GFS – Google File System), parimisht është
dizajnuar për përkrahjen e skedarëve të mëdhenj shumë megabajtësh apo shumë gigabajtësh, dhe
kjo është njëra prej arsyeve kryesore për projektimin e këtij sistemi, krahas edhe nevoja të tjera si
qasja më e shpejtë në të dhëna në disk për kohë minimale, apo sistemi që do të toleronte gabimet
[12].

SSG i konsideron të gjitha disqet, përkatësisht pajisjet për regjistrim brenda një stende si një njësi
e vetme për ruajtjen e të dhënave, mirëpo ekziston një ndarje logjike e sistemit e cila mundëson
funksionimin e një rregullimi të tillë. Sipas kësaj ndarje SSG paraqitet si sistem i nyjave Master
dhe Chunkserver-ëve. Ky grumbullim i hapësirave deponuese në një mega depo, na jep idenë për
analogjinë me stendat e Google. Tek stendat kishim grumbullimin e shumë makinave të cilat
funksionojnë si një sistem unik për përpunimin e të dhënave, derisa te SSG kemi grumbullimin e

________________________________________________________________________
8
3. Arkitektura e Google makinës kërkuese 3.2 Sistemi i skedarëve të Google

disqeve të cilat funksionojnë si një hapësirë unike për regjistrimin e të dhënave. Përfundojmë se
edhe te SSG, Google ka përdorur një lloj të klaster arkitekturës, por këtu në anën softuerike [12].
Sa i përket operacioneve themelore të sistemeve të skedarëve, SSG posedon pothuaj të gjitha
operacionet standarde si create, delete, open, close, read dhe write, por po ashtu përmban
operacione shtesë si snapshot dhe record append [12].

SSG përmban një Master dhe shumë Chunkserver-ë, dhe këtij rregullimi mund t’i qasen shumë
klientë njëkohësisht. Skema funksionale e këtij sistemi jepet me figurën e mëposhtme, të cilën e
kemi huazuar nga [12].

Figura 3: Arkitektura e sistemit të skedarëve të Google [12]

Master-i i SSG bën kontrollin e përgjithshëm të sistemit, por disa nga detyrat e tij i delegohen
edhe chunkserver-ëve. Master ka të gjitha informatat për sistemimin e chunkserverëve dhe
skedarëve në to.

Skedarët bazë ose më mirë thënë pjesët fundamentale të skedarëve quhen chunk (shqip: copëzë),
dhe janë të madhësisë fikse 64 MB, që është format vërejtshëm më i madh në krahasim me
formatet e skedarëve të sistemeve operative Linux e Windows . Secili chunk identifikohet me një
numër 64-bitësh, i cili quhet chunk handle. Të drejtën ekskluzive për ndarjen e chunk handles-ve
e ka Master-i, dhe kjo e drejtë i jepet klientit/shfrytëzuesit për një kohë të caktuar, të fundme [12].

Duke pasur parasysh se stendat e Google përbëhen nga kompjuterë të kualitetit të dobët, pra këtu
s’kemi të bëjmë me serverë të sofistikuar, kuptojmë që besueshmëria se skedarët do të jenë të
sigurt me vetëm një kopje të regjistruar, bie, sidomos duke e ditur se mundësitë që komponentët e
stendës të dështojnë papritur, janë mjaft të mëdha. Kështu që, Google, ruan së paku tre kopje të
secilit chunk, në disqe të ndryshme, duke përfshirë këtu edhe ruajtjen e chunk-ëve edhe në stenda
të tjera përpos asaj burimore. Veprimi i fundit kryhet me qëllim të sigurisë sa më të madhe të të
dhënave dhe për qasje në të dhëna edhe nëse e tërë stenda del nga sistemi, si rezultat i dështimeve
në rrjetë, apo për shkak të lidhjeve të shkurta në qarqet e rrymës elektrike [12].
Si funksion të Master-it të SSG, do të definojmë edhe një koncept, metadata, apo në shqip të
dhënat për të dhënat – meta të dhënat, me çka kuptojmë ruajtjen e të dhënave të cilat na çojnë tek
të dhëna të tjera, sigurisht më të dobishme. Meta të dhënat mirëmbahen si nga Master-i ashtu
edhe nga chunkserver-ët, dhe kanë qëllim informimin e klientëve lidhur me vendndodhjen e
skedarëve, përkatësisht në nivel më të ulët, chunk-ëve.
Meta të dhënat, meqë nuk zënë vend të madh, ruhen në memorien e Master serverit, duke e bërë
të mundshme qasjen e shpejtë në to me rastin e kthimit të përgjigjes, klientëve.

________________________________________________________________________
9
3. Arkitektura e Google makinës kërkuese 3.2 Sistemi i skedarëve të Google

Meta të dhënat janë të tri llojeve: ato që kanë të bëjnë me skedarët dhe me domenet e chunk-ëve,
lidhjet në mes të skedarëve dhe chunk-ëve, dhe vendndodhjen e secilës kopje të chunk-ëve. Këto
të llojit të fundit, ruhen në mënyrë të përhershme vetëm nga chunkserver-ët, dhe në rast se
Master-i nuk posedon ndonjë informatë të atij lloji, ia kërkon atë chunkserver-it përkatës [12].
Meta të dhënat nuk i jepen shfrytëzuesit në secilin operacion që ai kërkon/ndërmerr meqë kjo do
të shkaktonte ngarkesë të madhe në linjat e komunikimit, sikurse edhe do ta ngarkonte pamasë
Master-in, duke shkaktuar kaos në sistem, ku Master-i në pjesën më të madhe të kohës do të
merrej me identifikimin e vendndodhjes së të dhënave dhe me kthimin e përgjigjeve
shfrytëzuesve, gjë që do ta bënte thuaja të papërdorshëm Master-in për operacionet si krijimi i
chunk-ëve ndryshimi i emrave të skedarëve e të tjera. Si zgjidhje për këtë problem, është pranuar
zgjidhja që ofrohet përmes ruajtjes së të dhënave në anën e klientit – peshimi (cache). Kështu që,
fillimisht shfrytëzuesi kërkon informata për një skedar të caktuar, Master-i ia jep ato informata, të
cilat shfrytëzuesi i keshon dhe i shfrytëzon për inicimin e operacioneve, duke kontaktuar
chunkserver-ët drejtpërdrejtë pa e munduar Master-in [12].

Master-i, me rastin e startimit apo ristartimit të sistemit komunikon me të gjithë chunkserver-ët,


me qëllim marrjen e informatave për secilin prej tyre, informata këto që kanë të bëjnë me
gjendjen e chunkserver-ëve (a është në funksion chunkserver-i, a mund t’i pranoj urdhrat etj.).
Mirëpo, edhe në gjendje stabile, Master-i komunikon me chunkserver-ët në intervale të
kohëpaskohshme përmes porosive që quhen porositë ‘rrahja e zemrës’ (nga ang. Heart-beat
messages), për të verifikuar rënien eventuale nga sistemi të ndonjë chunkserver-i, dhe me këtë
vërtetimin nëse chunkserver-i është duke i kryer punët e parapara [12].

SSG gjithashtu mirëmban edhe një ‘ditar të operacioneve’ apo operation log, ku regjistron të
gjitha veprat e ndërmarra nga Master-i dhe në rast të dështimit të Master serverit, Master-i jo që
startohet pothuaj menjëherë por edhe do t’i kaloj pikat verifikuese sipas këtij ditari. Me këtë
sistemi, do t’i kthehet punës aty ku është ndërprerë, apo me fjalë të tjera do të rikuperohet
plotësisht, me mundësi gabimi shumë të vogël. Në rast dështimi, Master-i lexon ditarin e
azhurnuar më së fundi (nga ang. most up-to-date operation log) dhe nëse ai është me gabime
atëherë merr ndonjë version më të hershëm të tij [12] .

Gjithsesi, edhe pse Master serveri ka fjalën kryesore, në çdo klaster të SSG-së përveç Master-it,
veprojnë edhe ‘masterët në hije’ (nga ang. shadow masters), të cilët e mirëmbajnë sistemin
njëkohësisht dhe bashkërisht me Master-in kryesor, por edhe në raste kur ai ka rënë nga sistemi.
Mirëpo, Master-ët në hije nuk i kanë të gjitha kompetencat për të vepruar, ata kanë të drejtë të
japin doreza (nga ang. handle) për lexim të skedarëve, por jo edhe për shkrim apo bashkëngjitje.
Regjistrimi (inçizimi) i skedarëve në disqe kryhet në njërën nga dy mënyrat e parapara me SSG,
përmes të shkruarit apo përmes bashkëngjitjes (nga ang. record append). Përvec kësaj, të shkruarit
apo bashkëngjitja është e lejuar për më shumë se një klient. Të shkruarit vazhdon në fund të
pjesës tashmë të mbushur të skedarit apo fillon në pjesën e parë të skedarit të sapokrijuar, dhe
dallojmë shkrime të gjata të vazhdueshme, dhe të shkurta e të rastësishme. Me të parën
nënkuptohet mundësia e një shfrytëzuesi për të shkruar në sekuencë për një kohë më të gjatë,
ndërsa me të dytën synohet arritja e paralelizmit në të shkruar, duke i dhënë secilit shfrytëzues
mundësinë që të shkruaj nga pak, dhe quhet e rastësishme, për shkak se shfrytëzuesi i parë nuk do
të vazhdojë shkrimin aty ku e ka lënë por pas pjesës të cilën e kanë shkruar shfrytëzuesit tjerë. Ky
regjistrim është i nivelit të pak kilobajtëve, dhe mirëmbajtja e të shkruarave (çfarë u shkrua, nga
kush, dhe si të lidhen pjesët që i ka shkruar i njëjti shfrytëzues) është mjaft sfiduese, andaj jo
rastësisht quhet regjistrim atomik. Të gjitha shkrimet drejtohen ekskluzivisht nga Master-i, gjë që
e bën më të besueshëm sistemin. Mirëpo, duke marr parasysh se mund të ndodhin gabime edhe në
këtë nivel, Google ka zhvilluar një model me të cilin përcaktohet niveli i konsistencës së
skedarëve. Sipas këtij modeli, i cili aplikohet si për të shkruar ashtu edhe për bashkëngjitje, apo

________________________________________________________________________
10
3. Arkitektura e Google makinës kërkuese 3.2 Sistemi i skedarëve të Google

përgjithësisht për çfarëdo mutacioni të skedarëve, një pjesë e skedarit mund të quhet konsistente,
nëse të gjithë shfrytëzuesit gjithmonë shohin të njëjtat të dhëna në të gjitha kopjet. Nëse gjatë të
shkruarit, nuk ndërhyn asnjë shfrytëzues, dhe me këtë azhurnimi bëhet vetëm nga një shfrytëzues,
ajo pjesë quhet e definuar, meqë shfrytëzuesit gjithnjë do të shohin të njëjtat të dhëna, gjë që
implikon edhe konsistencën e asaj pjese. Nëse mutacionet janë konkurruese (shumë shfrytëzues
shkruajnë në pothuaj të njëjtën kohë) dhe të suksesshme, pjesa e azhurnuar do të jetë konsistente
por e padefinuar. Ndërsa, nëse mutacionet dështojnë për arsye të ndërprerjes së energjisë elektrike
gjatë të shkruarit, apo për ndonjë arsye tjetër, kjo e lë atë pjesë të skedarit jokonsistente dhe me
këtë edhe të padefinuar [12].

Ndërprerja e befasishme e të shkruarit jo që mund të ndodhë në të gjitha kopjet, por mund të


ndodhë edhe vetëm në ndonjërën prej këtyre kopjeve, duke e bërë edhe më të vështirë detektimin
e gabimeve. Kështu krijohen të ashtuquajturat ‘kopje bajate’ (stale replicas). Fatmirësisht,
Master-i ruan edhe numrat e versioneve të chunk-ëve, ashtu që në rast të thirrjes së ndonjë
kopjeje, Master-i verifikon numrin e versionit, dhe në rast se detektohet ndonjë ‘kopje bajate’, ajo
fshihet [12].
Si siguri shtesë, secili chunkserver shfrytëzon checksum-in (vlerë e cila derivohet nga të dhëna të
caktuara), për të detektuar të dhënat e korruptuara. Secili chunk ndahet në blloqe 64 KB, dhe
secilit prej tyre i ndahet një checksum 32-bitësh, i derivuar nga të dhënat në bllok, i cili ruhet
bashkë me meta të dhënat tjera të chunkserver-it.

Mjaft esenciale dhe mirë të rregulluara janë edhe bashkëveprimet në kuadër të sistemit.
Sipas [12] një mutacion kryhet në shtatë etapa.

Figura 4: Kontrolli i shkrimit dhe rrjedha e të dhënave [12]

Shfrytëzuesi (klienti) i kërkon Master serverit t’i raportojë nëse ndonjëri nga chunkserver-ët që i
interesojnë e posedon të drejtën e shfrytëzimit ekskluziv të ndonjë chunk-u dhe vendndodhjen e
kopjeve të tij (1). Master-i i kthen përgjigjen se cili prej tyre e ka këtë të drejtë, ose nëse jo, ia jep
të drejtën e shfrytëzimit, shfrytëzuesit të parë që e kërkon (2). Chunk-u i cili shfrytëzohet
ekskluzivisht quhet parësor (primary replica), ndërsa kopjet tjera quhen dytësore (secondary
replica). Në këtë sekuencë, shfrytëzuesi pasi të merr të drejtën e shfrytëzimit ekskluziv, iu dërgon
të gjitha kopjeve të dhënat për mutacion (3). Pasi që të gjitha kopjet t’i kenë marrë të dhënat,
shfrytëzuesi i dërgon kopjes parësore kërkesën për regjistrim (4), dhe ajo e pason atë në kopjet
dytësore (5). Të gjitha kopjet dytësore i raportojnë kopjes parësore për kryerjen e operacioneve
(6). Dhe në fund kopja parësore lajmëron klientin për zhvillimin e operacioneve, dhe për
dështimet eventuale (7) [12].

________________________________________________________________________
11
3. Arkitektura e Google makinës kërkuese 3.2 Sistemi i skedarëve të Google

Rrymimi apo rrjedhja e të dhënave në rrjet, nuk bëhet sipas topologjive si ajo e degëzimit, ku
paketat e të dhënave i dërgohen veç e veç të gjithë chunkserver-ëve sipas nevojave/kërkesave, por
shfrytëzohet i tërë brezi frekuencor i rrjetës, ashtu që të gjitha të dhënat i dërgohen chunkserver-it
më të afërt, e pastaj ai i bart ato tek chunkserver-i tjetër më i afërt dhe kështu me radhë.

SSG ofron edhe një operacion jo të zakonshëm që bën kopjimin e skedarit apo të tërë
direktoriumit (snapshot operation), pothuaj njëkohësisht me mutacionet që mund të bëhen në atë
skedar apo në skedarët e atij direktoriumi. Mirëpo, nëse snapshot-i ka filluar para se në ndonjë
chunk të fillojë ndonjë mutacion, atëherë kërkesa për mutacion në atë chunk dhe në të gjitha
kopjet e tij refuzohet. Por, situata nuk është edhe gjithaq e pashpresë. Nëse arrihet në këtë
gjendje, SSG urdhëron ndonjërin nga chunkserver-ët që përmbajnë një kopje të chunk-ut në fjalë
që të krijojë një chunk të ri identik në të cilin mund të bëhen mutacionet [12].

Siç mund të kuptohet nga pjesa e mësipërme Master-i e rezervon të drejtën për bllokuar një
chunk, apo një numër të tyre, apo edhe ndonjë direktorium të tërë, në rastet kur i jep të drejtën e
shfrytëzimit mbi te, ndonjërit prej shfrytëzuesve. Nëse i përmbahemi sistemit të skedarëve të
Linux nëse në shtegun /me/docs/professional/thesis (Google shfrytëzon Linux-in si sistem
operativ me disa modifikime në kernel), një shfrytëzues ka të drejtën ekskluzive të shfrytëzimit
për thesis, atëherë asnjë shfrytëzues nuk mund të ketë të drejtat e shfrytëzimit (shkrimit) për me,
docs, professional, thesis apo për çfarëdo skedari që mund të gjendet në kuadër të këtyre
direktoriumeve, pasi që sistemi operativ vënë bllokadë të leximit mbi me, docs, professional, dhe
bllokadë të shkrimit apo leximit mbi thesis, varësisht nëse thesis është skedar apo direktorium.
Master-i përveç që i krijon kopjet e chunk-ëve, ai po ashtu edhe i rikopjon ato nëse numri i
kopjeve të tyre është më i vogël se ai i planifikuar. Gjithashtu, SSG përcakton prioritetin e
kopjimit të chunk-ëve, ashtu që prioritet më i madh i jepet kopjimit të chunk-ëve që kanë më së
paku kopje të regjistruara në krahasim me ato të planifikuara. Për shembull, nëse për dy chunk-ë
të ndryshëm janë paraparë që të ruhen nga tri kopje (tri kopje është edhe numri i nënkuptueshëm i
kopjeve që ruan sistemi) për secilin, dhe nëse i pari ka humbur dy nga tri kopjet e tjetri vetëm një,
atëherë prioritet i jepet të parit.

Rebalancimi i hapësirës dhe ngarkesës, është gjithashtu pjesë e punës së Master-it. Master-i
gjithnjë kërkon nëse ndonjëri nga chunkserver-ët është shumë i ngarkuar, pra, hapësira deponuese
i është konsumuar mjaft, dhe në anën tjetër ka chunksever-ë të tillë që janë të pashfrytëzueshëm
apo pak të shfrytëzueshëm, atëherë Master-i bënë zhvendosjen e chunk-ëve për të balancuar
hapësirën dhe me këtë edhe ngarkesën në stendë [12].
Kur një skedar fshihet, ky operacion nuk e imponon drejtpërdrejtë largimin e përhershëm të këtij
skedari nga disqet, por si fazë e parë bëhet ndërrimi i emrit të skedarit dhe fshehja e skedarit nga
shfrytëzuesit. Pastaj nis procesi i ashtuquajtur i mbledhjes së mbeturinave, kur bëhet largimi i
përhershëm. Fshirja zakonisht ndodh për ‘kopjet bajate’, chunk-ët e korruptuar apo chunk-ët
jetimë, siç quhen chunk-ët të cilat pas disa mutacioneve apo modifikimeve të skedarëve, nuk janë
të lidhura më me asnjë skedar [12].
E veçantë e këtij sistemi të skedarëve, është se shfrytëzuesit i jepet mundësia që të lexojë mbi
pjesët të cilat njëkohësisht janë duke u modifikuar dhe kjo nuk i shkakton sistemit gabime në
shkrim mu për shkak të përsosmërisë së lartë të kontrollit të operacioneve.
Ky sistem i skedarëve, edhe pse duke mjaft i përsosur, është më shumë i orientuar në shërbim të
makinave kërkuese, dhe si i tillë nuk është një zgjidhje e mirë për tu aplikuar edhe në sistemet
tjera. Vetë fakti se ky sistem është projektuar kryesisht për përpunimin e skedarëve të mëdhenj, e
bën të mundimshëm aplikimin e tij në kompjuterët për shfrytëzim personal apo për biznese tjera.

________________________________________________________________________
12
3. Arkitektura e Google makinës kërkuese 3.3 Struktura e të dhënave

3.3 Struktura e të dhënave


Strukturimi dhe ruajtja e të dhënave bëhet përmes BigTable, sistem ky i zhvilluar nga Google.
BigTable, me paraqitjen e saj ka arritur një zgjerim jashtëzakonisht të madh, duke u përdorur në
më se 60 aplikacione/shërbime të Google [13].
BigTable është e ngjashme me një bazë të të dhënave jorelacionale, duke mos përkrahur modelet
relacionale të të dhënave, respektivisht i jep më shumë mundësi klientit që në mënyrë dinamike të
kontrolloj formatimin e të dhënave dhe dukjen e jashtme të tyre [13].

BigTable paraqitet në formë shumë-dimensionale, përderisa të dhënat janë të renditura sipas një
çelësi të caktuar. Të dhënat indeksohen përmes tri vlerave, çelësit të rreshtit, çelësit të kolonës
dhe vulës që përmban kohën reale të futjes së të dhënave. Pra, për të arritur deri tek një e dhënë e
caktuar duhet t’i kemi që të tri këto indekse:

(rreshti: string, kolona: string, time: int64) Æ Vlera (E dhëna)

Çelësat e rreshtave dhe kolonave, mund të jenë vargje shkronjash e jo domosdoshmërish numra,
ndërsa indeksi i tretë që paraqet kohën, jepet si një vlerë 64-bitëshe e numrave të plotë [13].

Figura 5: Një pjesë e tabelës të BigTable, që ruan të dhënat për ueb faqe [13]

Do të marrim që tabela jonë përmban të dhëna të ueb-faqeve të ndryshme. Kështu që, URL-të e
ueb-faqeve do të jenë çelësat e rreshtave.
Çelësat e rreshtave mund të jenë të gjatë deri 64 KB. Të dhënat janë të renditura në mënyrë
leksikografike sipas rreshtit. Çdo tabelë ndahet sipas një rangu vlerash duke krijuar tabelzat e
quajtura tablets, të cilat përmbajnë në vetvete një pjesë të të dhënave të tabelës së caktuar. Ndarja
nëpër tableta bëhet, në mënyrë që të mundësohet ngarkimi i balancuar nëpër komponentet e
klasterëve, ndërsa përfitojmë edhe në shfrytëzimin efikas të rrjetit, pasi që leximet do të jenë më
të rralla dhe të dhënat e bartura më të pakta (nuk do ta bartim tërë tabelën, por vetëm një pjesë të
saj: tabletën). Meqë, www do të ishte e përbashkët për të gjithë çelësat e rreshtave, Google bën
rigrupimin e pjesëve të URLs dhe rivendosjen e tyre, ashtu si është paraqitur në figurë e
mësipërme (në vend të ‘www.cnn.com’, ruhet ‘com.cnn.www’) [13].
Kolonat, përkatësisht, çelësat e kolonave, për dallim nga rreshtat, grupohen nëpër sete të quajtura
familje kolonash. Zakonisht të gjitha të dhënat e tipit të njëjtë janë të grupuara në një familje të
caktuar. Çelësat e kolonave, sikurse edhe familjet krijohen para se të futen të dhënat, ashtu që, me
rastin e futjes së të dhënave mund të përdoret cilido çelës i familjes. Kolonat paraqiten në formën:
family:qualifier, ku së pari paraqitet emri i familjes, e pastaj çelësi. Një rast konkret do të ishte
familja language, e cila ruan numrat identifikues të gjuhëve në të cilat paraqitet përmbajtja e ueb-
faqes [13].
Timestamp, apo vula e kohës reale, shërben për të bërë të mundshëm vendosjen e të dhënave në
formën e matricave shumë-dimensionale. Përderisa, me rresht dhe kolonë, paraqitnim të dhënat
përmes matricave dy-dimensionale, timestamp, na mundëson shtimin e dimensioneve tjera. Në

________________________________________________________________________
13
3. Arkitektura e Google makinës kërkuese 3.3 Struktura e të dhënave

një rast konkret, një qeli e tabelës mund të ketë të dhëna të ndryshme, për shembull përmbajtja e
një ueb-faqeje mund të ndryshohet në intervale të caktuara kohore. Atëherë, në mënyrë që t’i ikim
shtimit të një rreshti të ri vetëm e vetëm për një qeli ne krijojmë faqet e matricave, ashtu që një
qeli e caktuar mund të ketë më shumë se një version, dhe indeksimin e këtyre versioneve do ta
bëjë timestamp. Me hapjen e tabletës të dhënat e para që do të na paraqiten do të jenë celulat me
të dhënat e azhurnuara më së fundi, e pastaj versionet e mëhershme të renditura në mënyrë
kronologjike [13].

BigTable mbështet në SSG (Sistemin e skedarëve të Google), për ruajtjen e të dhënave në disk,
ashtu që formati i skedarëve SSTable, përdoret për ruajtjen e këtyre të dhënave nëpër serverët e
klasterëve. SSTable paraqitet si një hartë e të dhënave të renditura e të lidhura përmes logjikës
çelës-vlerë. Ato janë të ndërtuara nga blloqet sekuenciale (zakonisht këto blloqe kanë madhësi të
përcaktuar 64 KB, por trajta e tyre mund të ndryshohet). Në kuadër të SSTable gjendet edhe një
hartë e blloqeve, në të cilën ndodhen indekset e blloqeve, të cilat, rrjedhimisht, janë të indeksuara
në mënyrë që të ofrojnë kërkim efikas. Kjo zvogëlon kohën, për të cilën të dhënat do të arrinin
për përpunim, pasi që do të duhej vetëm të gjenim bllokun në hartë dhe pastaj përmes vetëm një
kërkimi në disk do të gjenim të dhënat e kërkuara, ose edhe më mirë, SSTable është e mundur që
e tëra të vendoset në memorien punuese, me çka do të evitonim kërkimin nëpër disk [13].

Për t’i evituar mutacionet e padëshirueshme të të dhënave BigTable mbështet në një shërbim
mjaft efikas për bllokimin (lock) e të dhënave Chubby [13]. Chubby krijon 5 kopje, nga të cilat
njëra zgjidhet master. Çdo klient mban një sesion me Chubby shërbimin, ashtu që çdo ndryshim
eventual, do të ndodhte vetëm me bekimin e Chubby master kopjes. Nëse, klienti nuk arrin që ta
mbaj sesionin të gjallë apo nëse e humbet bllokimin mbi skedarët në ndonjë mënyrë tjetër, atëherë
ai klient nuk mund të bëjë ndryshime të mëtutjeshme pa marrë përsëri të drejtën mbi to [13].
BigTable është e implementuar në atë mënyrë që përmban një librari, në të cilën janë të lidhur të
gjithë klientët, një master server, si dhe disa tablet servera. Master serveri bën ndarjen e tabletave,
tablet serverëve, të cilët pastaj menaxhojnë me to. Master serveri po ashtu është përgjegjës për
detektimin gjendjes së tablet serverëve, balancimin e ngarkesës nëpër tablet serverë, si dhe për
pastrimin e diskut nga skedarët e panevojshëm [13].

Çdo tablet server menaxhon një set me tableta, duke përfshirë leximin dhe shkrimin nëpër ato
tableta, sikurse edhe ndarjen e tyre në rastet kur ato rriten shumë. Është e rëndësishme të
potencohet se klientët nuk komunikojnë me master serverin për ndryshimet nëpër tablet-a, por
direkt me tablet serverin, gjë që mundëson një efikasitet më të madh të master serverit [13].

Hierarkia e vendosjes së tabletave paraqitet në tri nivele. Në nivelin e parë është skedari i
Chubby-t, i cili ruan të dhënat për tabletën kryesore (rrënjë) [13]. Tableta kryesore përmban të
dhënat për tableta e tjera përmes një metadata tabele. Çdo metadata tabletë, përmban
vendndodhjen e një seti të tabletave të shfrytëzuesve.
Një gjendje persistente e SSTable skedarëve ruhet në disk, përderisa azhurnimet e fundit që bëhen
nëpër tabela ruhen në të ashtuquajturën memtable. Pasi kemi azhurnime të vazhdueshme,
BigTable posedon edhe dy metodat e saja për kompaktizimin e tabletave. Dallojmë minor
compation, e cila shërben për krijimin e SSTable, ashtu që minimizon të dhënat që do të duhej të
rikuperoheshin nga ndonjë dështim eventual, dhe major compaction, që shërben për bashkimin e
SSTable të krijuara gjatë kompaktizimit të mëparshëm [13].

________________________________________________________________________
14
4. Organizimi i të dhënave në Google 4.1 Struktura funksionale e komponentëve

Kapitulli 4
4 Organizimi i të dhënave në Google

4.1 Struktura funksionale e komponentëve të klasterëve të Google


Sistemi i grumbullimit dhe i manipulimit me të dhëna është po aq kompleks sa edhe ai renditjes
së rezultateve, apo shpërndarjes së ngarkesës nëpër kompjuterët e klasterëve. Për grumbullimin e
të dhënave përdoren të ashtuquajturit web crawler (nga ang. crawler - zvarritës) apo siç
preferojnë t’i quajnë disa autorë të tjerë, merimanga.
Google makina kërkuese, lëshon në qarkullim shumë crawler në të njëjtën kohë, të cilët luajnë
rolin e agjentit duke grumbulluar të dhëna nga ueb faqet e prezantuara në ueb [2].

Figura 6: Arkitetktura e nivelit të lartë të Google makinës kërkuese [2]

Njëri nga serverët e klaster arkitekturës është i paraparë që të shërbej vetëm si furnizues i crawler-
ëve me URL, do të thotë që t’i orientojë ata fillimisht se cilave ueb faqe t’i referohen për t’i
grumbulluar të dhënat dhe quhet URL Server [2].
Të gjitha të dhënat e mbledhura nga crawler-ët destinacion primar e kanë serverin, i cili shërben
për ruajtjen e përkohshme të të dhënave, e i cili quhet Store Server. Hapi i ardhshëm në
organizimin dhe përpunimin e të dhënave, i takon përsëri Store Server-it, i cili bën ngjeshjen e të
dhënave, kompresimin, në mënyrë që të përfitojmë sa më shumë në hapësirën e diskut. Pasi që të
kompresohen të dhënat, ato i dorëzohen rezervuarit, përkatësisht depos së të dhënave që në figurë
paraqitet me emrin Repository [2].

________________________________________________________________________
15
4. Organizimi i të dhënave në Google 4.1 Struktura funksionale e komponentëve

Me këtë rast secilës ueb faqe të analizuar, i jepet një ID unike e cila quhet docID [2]. Ky element
identifikues është unik për secilën ueb faqe pasi nxirret si hash funksion i secilës URL të ueb
faqeve të përpunuara.

Pasi që të dhënat të jenë të deponuara në rezervuarin e sistemit, fillon funksioni i indeksimit, që


siç e dimë parimisht mundëson kërkimin më të shpejtë nëpër depot e të dhënave. Indeksimin e të
dhënave e kryejnë komponentët e destinuara për këtë punë si Indexer dhe Sorter. Indeksuesi
(Indexer) përveç tjerash bën leximin e të dhënave nga rezervuari, i dekompreson ato, dhe fillon
me analizën e këtyre dokumenteve. Çdo dokument i analizuar, tashmë shndërrohet në një set
fjalësh të cilat paraqiten më së shpeshti në dokument, e që quhen hits. Një shënim (hit) regjistron
fjalën, pozitën e saj në dokument, madhësinë e shkronjave të përdorura për këtë fjalë në
dokument dhe formën në të cilën është shkruar (me shkronja të mëdha, të vogla apo të përziera)
[2]. Indeksuesi, pasi që t’i kryen të gjitha këto manipulime me dokumentin përkatës i shpërndan
rezultatet e analizave (hits) nëpër fuqitë (barelët) e të dhënave. Mirëpo, puna e indeksuesit nuk
përfundon me kaq. Ai po ashtu i analizon të gjitha linçet nga ueb faqet e shqyrtuara, dhe i
regjistron të gjitha të dhënat relevante lidhur me ato linçe, në një skedar të dizajnuar vetëm për to,
Anchors. Në Anchor, ka informata të mjaftueshme, për secilën lidhje (linç), nga ku dhe për ku
është i drejtuar, sikurse edhe teksti që i është shoqëruar atij linçi.

Pjesa e ardhshme e përpunimit i takon komponentit URL Resolver, i cili lexon skedarin e linçeve,
dhe i konverton të gjitha URL-të e linçeve në URL absolute, e po ashtu edhe në docID. URL
Resolver-i, kryen edhe një funksion tjetër. Ai vendos tekstin përreth linçit në indeksin e avancuar,
duke ia shoqëruar atij edhe docID-në, në të cilën ai linç është i drejtuar. Si rezultat final, URL
Resolver-i gjeneron një bazë të të dhënave, të përbërë vetëm nga linçet, e në formë të docID-ve.
Kjo bazë e të dhënave shërben më vonë për të llogaritur rëndësinë e secilës ueb faqe, përmes
algoritmit të Google, PageRank [2].
Indeksuesi i dokumenteve shërben për të ruajtur të dhënat relevante për të gjitha dokumentet, të
cilat nëpër barela janë të radhitura sipas docID elementit. Ndër informatat relevante që ruhen për
dokumentet janë statusi i dokumentit, treguesi se ku gjendet dokumenti në rezervuarin e sistemit
(Repository), numri i gjeneruar nga docID (checksum), i cili siguron se nuk është bërë asnjë
ndryshim i rastësishëm në përmbajtjen e docID, si dhe statistika tjera. Nëse dokumenti në fjalë
është përpunuar nga crawler-ët, atëherë do të gjendet edhe informata se ku gjendet docinfo,
variabël kjo që përmban URL-në e dokumentit dhe titullin e tij [2].

Leksikoni, si pjesë e sistemit, shërben për ruajtjen e të gjitha fjalëve të cilat janë hasur gjatë
përpunimit të dokumenteve (ueb faqeve). Fjalët identifikohen përmes wordID-së, e cila është
unike për secilën fjalë. Leksikoni është i implementuar në atë mënyrë, që ruan në njërën anë të
gjithë wordID-të dhe në anën tjetër ju shoqëron atyre hash tabelat me tregues, se ku janë hasur
ato fjalë nëpër dokumente[2].

Radhitësi apo Sorter, merr të dhënat e radhitura sipas docID-ve nëpër barela dhe i riradhitë ato në
bazë të wordID elementit, për të gjeneruar indeksin e përmbysur (inverted index).

Hit listat apo listat e shënimeve, shërbejnë për të ruajtur numrin e paraqitjeve të fjalëve të veçanta
nëpër secilin dokument veç e veç. Aty ruhen edhe të dhënat që kanë të bëjnë me pozitën e fjalës
në dokument, fontin që është përdorur, dhe informata lidhur me formën në të cilën është shkruar
fjala (me shkronja të mëdha, të vogla apo të përziera)[2].
Hit listat zënë hapësirën më të madhe në indekset e avancuara dhe të përmbysura. Kështu që, për
të përfituar sa më shumë hapësirë është përdorur një lloj kodimi i informatave, i cili mundëson
shfrytëzimin optimal të hapësirës në disk.

________________________________________________________________________
16
4. Organizimi i të dhënave në Google 4.1 Struktura funksionale e komponentëve

Sipas këtij kodimi, përdoren 2 bajt për çdo shënim (hit). Ekzistojnë dy lloje të shënimeve:
shënimet e përfytyruara dhe ato të dukshme (fancy hits and plain hits). Shënimet e përfytyruara
paraqesin shënimet të cilat hasen në kuadër të URL-së, titullit të ueb faqes, tekstit përreth linçeve,
ose në etiketave (tag) meta. Ndërsa shënimet e dukshme paraqesin tërë pjesën tjetër, duke
përfshirë këtu bitin e formës së shkronjave, madhësinë e fontit, dhe 12 bit për pozitën e fjalës në
dokument (të gjitha pozitat të cilat e kalojnë shifrimin mbi 4095, shënohen si 4096).

Figura 7: Indekset e avancuara dhe të përmbysura dhe leksikoni [2]

Madhësia e fontit paraqitet me tre bit, por vetëm 7 nga mundësitë e permutacionit shfrytëzohen
për të koduar atë, pasi që permutacioni 111, lajmëron se kemi të bëjmë me shënim të përfytyruar.
Në anën tjetër, shënimet e përfytyruara përmbajnë bitin e formës së shkronjave, 3 bit për të
sinjalizuar se kemi të bëjmë më shënim të përfytyruar, 4 bit për kodimin e llojit të shënimit të
përfytyruar, dhe 8 bitët e mbetur për pozitën e fjalës. Për shënimet që kanë të bëjnë me tekstin e
linçeve 8 bitëshi i fundit ndahet në dy pjesë, ku 4 bitët e parë përdoren për hashin e docID-së të
cilit i referohet linçi dhe 4 të tjerët për pozitën e fjalës në tekstin e linçit [2].

Indeksi i avancuar është i radhitur pjesërisht me rastin e indeksimit të dokumenteve nga ana e
indeksuesit dhe si i tillë është i vendosur në barelat e sistemit. Meqë nevojitet hapësirë e madhe
për t’i vendosur të gjitha të dhënat, numri i barelave në sistem është gjithnjë më i madh se një.
Secili prej barelave përmban në vete një rang të vlerave të wordID-së. Fjalët e regjistruara nëpër
barele, përmbajnë në listat e tyre edhe referencën në dokumentin përkatës nga i cili burojnë. Dhe,
sigurisht, duke pasur parasysh se qëllimi i sistemit është që të ruhet sa më shumë hapësirë e
diskut, wordID-të nuk regjistrohen me numrat e tyre përkatës, me ç’rast do të na duheshin 32 bit,
por, me një teknikë tjetër, ku wordID-të paraqiten vetëm si diferencë relative nga numri minimal i
wordID-së në atë barelë [2].

Indeksi i përmbysur përdor të njëjtat hapësira për të deponuar të dhënat sikurse indeksi i avancuar
(barelat), përveçse indeksi i përmbysur paraqet të dhënat e përpunuara tanimë nga radhitësi
Sorter.
Për çdo wordID, leksikoni përmban informatën se në cilën barelë gjendet ajo fjalë dhe referencën
e saj në listën e dokumenteve, përkatësisht në dokumentet, të cilave ajo fjalë iu referohet.

________________________________________________________________________
17
4. Organizimi i të dhënave në Google 4.1 Struktura funksionale e komponentëve

Një çështje për të cilën, është menduar mjaftë, është se në çfarë radhitje duhet të paraqiten
dokumentet në listën e dokumenteve. Prej tyre, ideja e parë ishte të paraqiten të radhitura sipas
docID-së, ndërsa tjetra sipas numrit të përsëritjes së fjalës përkatëse në atë dokument. Si zgjidhje,
u morr një kompromis në mes këtyre ideve, sipas të cilit do të gjeneroheshin dy sete barelash,
njëri me informata nga teksti përreth linçeve (anchor) dhe titujt e dokumenteve, e tjetri me të
gjitha të dhënat tjera, ashtu që, me rastin e kërkimit së pari do të kërkohej nëpër setin e parë, dhe
nëse nuk do të ktheheshin mjaft informata, atëherë do të fillonte kërkimi në setin e dytë [2].

4.2 Mbledhja e informative në ueb


Grumbullimi i të dhënave nga tashmë më shumë se 10 miliardë dokumente [3], nuk është punë që
do të mund të kryhej nga një proces i paautomatizuar. Vështirë mund të mendohen qindra
punëtorë fizikë që do të regjistronin materialet nga ueb-i. Kjo jo që do të ishte e shtrenjtë dhe e
mërzitshme, por edhe do të merrte aq shumë kohë, sa që do të mund të vinte deri te dështimi i
projektit, sidomos duke pasur parasysh se ueb-i i është drejtuar një dinamike të ndryshimit të të
dhënave, sa që të dhënat e mbledhura sot, nesër do të ishin të vjetruara. Si zgjidhje për këtë
problem vjen në konsiderim zhvillimi aplikacioneve të cilat do të bënin mbledhjen e këtij
materiali. Mu këtu edhe fillon historia e programeve të njohura sot si crawlers (zvarritësit), që më
parë quheshin edhe me emrat si wanderer (endacak), robotë, merimanga, peshq, krimba etj. [14].

Figura 8: Rrjedha e një crawler-i të thjeshtë sekuencial [14]

Figura 8 shpjegon funksionin e një crawler-i të thjeshtë sekuencial [14].

Në formën e tyre më të thjeshtë crawler-ët fillojnë me një faqe bërthamë, e pastaj vazhdojnë me
linçet e jashtme të cilat i hasin në kuadër të dokumentit, të cilin janë duke e ekzaminuar. Procesi
vazhdon me ekzaminimin e dokumenteve të cilat buronin nga linçet e faqes bërthamë dhe
vazhdon me dokumentet të cilat vijnë si rezultat i linçeve të jashtme në këto dokumente. Pak a
shumë kjo paraqet jetën e një crawler-i, e cila përfundon kur ai të ndalet nga personi që e
mbikëqyr, pasi që t’i harxhohen të gjitha linçet e nxjerra nga analiza e dokumenteve, apo pasi që
të jetë arritur ndonjë objektiv tjetër [14].

Crawler-ët mund të jenë selektivë sa i përket natyrës së ueb faqeve që ata marrin në shqyrtim.
Këta të fundit quhen crawler preferencial.

________________________________________________________________________
18
4. Organizimi i të dhënave në Google 4.2 Mbledhja e informatave në ueb

Crawler-i mirëmban një listë me URL të cilat nuk i ka vizituar, e cila quhet frontier (nga ang.
frontier - zona të pashkelura) [14].

Frontier-i paraqet listën e detyrave që duhet t’i kryejë crawler-i. Mirëpo, gjatë ekzaminimit të
dokumenteve paraqiten edhe linçe të tjera, kështu që lista nuk përfundon me detyrat e parapara në
fillim. Sipas [14], është shumë e zakonshme që një frontier me 10.000 URL të ueb faqeve të
futura në fillim të rritet në një listë prej më se 60.000 URL-ve.

Procesi i mbledhjes së informatave nga ueb faqet, i rikthehet pikës fillestare pasi që të jetë
ekzaminuar dokumenti përkatës, duke kërkuar URL-në e ardhshme në listë dhe për të marr në
shqyrtim dokumentin, të cilit ajo i referohet.
Procesi, në mënyrë të zakonshme përfundon kur nuk mbetet asnjë URL në frontier për tu
ekzaminuar [14].

Në disa raste, mund të ndodh që crawler-i të hyjë në të ashtuquajturën spider trap (kurthin e
merimangës). Kjo paraqitet atëherë, kur crawler-i has në shumë URL të ndryshme të cilat i
referohen të njëjtës ueb faqe. Rastet më të shpeshta janë ato kur ueb faqet në kuadër të një ueb
sajti i referohen njëra tjetrës, ashtu që pas ekzaminimit të njërës prej tyre përmes linçeve të
jashtme (eksterne) crawler-i kalon në faqen tjetër, e cila përmes linçeve të saja eksterne (por të
formuluara ndryshe), e kthen përsëri në faqen paraprake, dhe kështu crawler-i hyn në një rreth
vicioz. Po ashtu URL-të të cilat përmbajnë ndryshore (variabla) si :

http://www.cfaredodomeni.com/index.php?moduli=FaqjaKryesore&Pjesa=1
http://www.cfaredodomeni.com/index.php?moduli=FaqjaKryesore&Pjesa=4

mund të jenë linçe të cilat i referohen të njëjtës faqe. Për t’i evituar këto kurthe Google ka
vendosur politika, me të cilat i dekurajon shfrytëzuesit që të përdorin URL në forma të tilla,
natyrisht, nëse ata dëshirojnë që Google t’i vizitojë faqet e tyre.

Një qasje tjetër, është ofruar nga [14], ku thuhet se ky problem mund të zgjidhet edhe me
kufizimin e numrit të faqeve që do të merren në shqyrtim nga një domen i caktuar.

Crawler-ët e avancuar, përdorin edhe metoda të tjera për t’iu ikur kurtheve. Ndër to është edhe
kthimi i URL-ve në formë kanonike [14]. Procesi fillon me kthimin e të gjitha shkronjave në
URL në shkronja të vogla, ashtu që crawler-i të mos bëjë dallimin në mes të:

http://www.CFAREDODOMENI.com dhe http://www.cfaredodomeni.com.

Pastaj, vjen kodimi i URL-ve në formë standarde, ashtu që crawler-i të mos bëjë dallimin mes të:

http://www.cfaredodomeni.com/Faqja e pare.html dhe


http://www.cfaredodomeni.com/Faqja%20e%20pare.html

Sikurse edhe standardizimi i formës së paraqitjes së URL-ve si në rastin:

http://www.cfaredodomeni.com/modulet/shitja/pagesat/keshi.html dhe
http://www.cfaredodomeni.com/modulet/shitja/pagesat/transaksionet/../keshi.html

Po ashtu, edhe rregulla të tjera për kthim në formën kanonike të URL-ve mund të aplikohen, duke
filluar nga numri i portit që vendoset ose nuk vendoset në URL e deri tek ato që kanë të bëjnë me
kufizimin e shkronjave të mara në shqyrtim nga një URL.

________________________________________________________________________
19
4. Organizimi i të dhënave në Google 4.2 Mbledhja e informatave në ueb

Crawler-ët kanë për detyrë, përveç mbledhjes së materialit, edhe ta bëjnë analizën e të dhënave
nëpër dokumente. Në mënyrë që ky qëllim të arrihet atëherë do të na duhej një HTTP klient, i cili
do të na mundësonte dërgimin e HTTP kërkesave dhe shqyrtimin e përgjigjeve të kthyera. Këta
klient zakonisht janë të konfiguruar ashtu që të presin përgjigjen për një kohë të caktuar, dhe jo
përjetësisht, pasi që kjo do ta bllokonte tërë procesin, pasi që tek Google, një crawler mund të
mbajë deri 300 lidhje të hapura me serverët nëpër botë, në të njëjtën kohë [2].

Gjithashtu, crawler-ët zakonisht janë të konfiguruar që të lexojnë ueb faqet më të vogla se 20 KB,
përderisa ato më të mëdha se 20 KB, ose nuk i lexojnë fare, e ose e lexojnë vetëm pjesën fillestare
të tyre [14].
Një problem i paraqitur me rastin e mbledhjes së informatave, ka të bëjë me faqet për të cilat
autorët nuk dëshirojnë që informatat e publikuara në to, të regjistrohen diku tjetër, disa për shkak
të të drejtave autoriale, e të tjerat edhe për shkak se në to mund të kishte informata të fshehta, si
numrat e kredit kartelave të klientëve etj. Google, është ballafaquar që në ditët e para me këtë
problem. Si përgjigje ndaj kësaj u krijua i ashtuquajturi Robot Exclusion Protocol, sipas të cilit në
të gjitha dosjet (folders) në të cilat crawler-i nuk do të duhej të hynte të gjurmonte, përkatësisht të
mblidhte material, duhet të kenë një skedar të vogël të shkruar, e të emëruar si robots.txt [2, 14].
E tëra që duhet të shkruhet në këtë skedar është përcaktimi i crawler-ëve që dëshirojmë apo nuk
dëshirojmë t’i lejojmë të vizitojnë pjesë të caktuara të ueb sajtit.
Për shembull,

User-agent: BadBot
Disallow: /

Do t’ia ndalonte qasjen crawler-it me emrin BadBot [15] në gjithë skedarët e ueb sajtit, përderisa
me

User-agent: *
Disallow: /administrata/
Disallow: /pagesat/

Do t’i ndalonim të gjithë crawler-ët që të gjurmonin në dosjet (folders) administrata dhe pagesat.
Mënyra e punës së crawler-ëve përcaktohet me algoritmin mbi të cilin ato janë zhvilluar. Duke iu
referuar literaturës gjejmë një numër të konsiderueshëm të algoritmeve mbi të cilat janë zhvilluar
këto programe [15].

Naive Best-First crawler algoritmi mbështet në krijimin e një vektori me fjalë të paraqitura në
dokumentin e shqyrtuar, e të renditura sipas frekuencës së paraqitjes së atyre fjalëve në
dokument. Pas kësaj, crawler-i bën llogaritjen e ngjashmërisë në bazë të kosinusit, të ueb faqes
me pyetësin apo përshkrimin e formuluar nga iniciuesi i crawler-it, dhe në bazë të saj i jep vlera
të caktuara URL-ve të pavizituara që rrjedhin nga kjo ueb faqe, duke përcaktuar kështu rëndësinë
e tyre në formë artificiale [14].

SharkSearch crawler algoritmi përdor të njëjtat masa për përcaktimin e ngjashmërisë sikurse edhe
Naive Best-First algoritmi. Mirëpo, për dallim, SharkSearch, iu jep vlerat URL-ve të pavizituara
edhe duke marr parasysh vlerat që kanë pasur URL-të paraardhëse dhe tekstet përreth linçeve
[14].

Focused crawler algoritmi i klasifikon faqet e mbledhura sipas kategorive përmes taksonomisë së
përmbajtjes së tyre [14, 16]. Në fillim ky crawler kërkon të përcaktohet taksonomia e përmbajtjes
së faqeve. Iniciuesi mund që të kyçet në proces duke krijuar kategori të reja, apo të heq ato që

________________________________________________________________________
20
4. Organizimi i të dhënave në Google 4.2 Mbledhja e informatave në ueb

mendon se nuk munt të cilësohen si të mira. Se cila faqe, cilës kategori do t’i takojë, përkatësisht
në cilën kategori do të futet përcaktohet përmes të ashtuquajturit Bayesian classifier, i cili
shfrytëzon probabilitetin për të përcaktuar se një faqe e caktuar f i takon një kategorie te caktuar
k.

Context Focused crawler algoritmi gjithashtu përdor klasifikuesit Bayesian, për t’i drejtuar
crawler-ët. Por, për dallim nga algoritmit e tjera, ky algoritëm shfrytëzon edhe vlerësimin e
distancës mes faqeve për të arritur te rezultatet e dëshiruara [14].

Crawler-ët të cilët nuk janë të dizajnuar mirë mund të hasin në shumë probleme, sidomos duke
pasur parasysh atë sasi marramendëse të të dhënave në ueb. Sipas [2], Google crawler-ët duke
provuar që të mbledhin të dhënat nëpër ueb faqet e një domeni, kishin filluar të mbledhin të
dhënat e disa skedarëve që ishin pjesë e një online loje, me ç’rast nëpër ekranet e shfrytëzuesve të
kësaj online loje kishin filluar të paraqiteshin gabime të ndryshme. Andaj, çdo crawler, i cili
mendohet të futet në përdorim në ueb, duhet të përgatitet në atë formë, që të tejkalojë edhe
objektivat shoqërore. Të marrësh informata, por të mos shkaktosh probleme.

4.3 Indeksimi i uebit dhe MapReduce modeli


Çdo indeksimi i paraprinë analiza e dokumenteve të mbledhura. Meqë, çdokush mund të zhvillojë
ueb faqe përkatësisht ueb aplikacione, duhet pritur që do të na paraqiten standarde të llojllojshme
dhe gabime të llojllojshme gjatë analizës së tyre.
Përveç problemeve si ballafaqimi me karaktere të cilat nuk janë në listën ASCII, që paraqet
standardin amerikan të shkrimit, ballafaqimit me shkronjat jo latine, si cirilike, arabe, kineze etj.,
një problem të madh paraqet edhe shqyrtimi i kodimit të dokumentit sipas gjuhës HTML. Shumë
shfrytëzues i shkruajnë dokumentet e tyre pa pasur fare kujdes në vendosjen e etiketave (tags) [2].
Janë të shumta dokumentet të cilat as që i kanë etiketat mbyllëse, gjithë kjo në saje të
fleksibilitetit të gjuhës HTML. Si pasojë e kësaj, shqyrtuesit të ueb faqeve do t’i duhej që t’i bëj
këto punë, në mënyrë që të kemi një pasqyrë të mirë të dokumenteve, dhe natyrisht, edhe për t’i
evituar problemet e mundshme.

Figura 9: Një faqe e bazuar në HTML dhe struktura përkatëse [16]

________________________________________________________________________
21
4. Organizimi i të dhënave në Google 4.3 Indeksimi i uebit dhe MapReduce modeli

Në Figurën 9 është paraqitur një dokument i rregullt i shkruar në gjuhën HTML së bashku me
grafin përkatës të etiketave (tags).

<html> etiketa paraqet kreun e dokumentit dhe tregon se një dokument i bazuar në gjuhën HTML
pason.
Pastaj kemi pjesën <head> e cila nuk iu paraqitet vizitorëve, mirëpo kjo pjesë është
jashtëzakonisht e shfrytëzueshme për crawler-ët, pasi që në këtë pjesë vendosen titulli i
dokumentit, në kuadër të etiketës <title>, sikurse edhe etiketat <meta>, ku mund të vendoset
përshkrimi i dokumentit, apo edhe fjalët kyçe (keywords), sikurse edhe informatat për gjuhën në
të cilën është shkruar dokumenti.
Pjesa tjetër <body>, paraqet pjesën e cila do të përmbajë informatat të cilat do t’i paraqiten secilit
klient, i cili viziton këtë faqe përmes ndonjërit nga shfletuesit e ueb faqeve, që janë në
dispozicion.
Gjatë analizës së dokumenteve mund të paraqiten fjalë të cilat paraqiten aq shpesh, si lidhëzat apo
parafjalët, sa që analizuesit i injorojnë ato dhe nuk i vendosin në listat e fjalëve që i referohen
dokumenteve, gjatë indeksimit. Si shembull kemi fjalët në gjuhën shqipe si: dhe, të, do, për etj.,
apo në gjuhën angleze fjalët: an, and, by, it, can, for, from e të tjera. Procesi i mos indeksimit të
këtyre fjalëve quhet Stoplisting [14].
Gjatë indeksimit dallojmë edhe procesin Stemming, i cili mundohet që t’i reduktojë fjalët deri në
rrënjët e tyre, për të kthyer rezultate sa më të mira, si për shembull fjalët connected, connection
mund të reduktohen në rrënjën e përbashkët connect [14].
Si Stoplisting ashtu edhe Stemming, përdoren mjaft nga makinat kërkuese si gjatë indeksimit
ashtu edhe gjatë përpilimit të rezultateve.

MapReduce paraqet një model programimi me anë të të cilit përpunohen dhe gjenerohen sete të
mëdha të dhënash, brenda një kohe të arsyeshme. MapReduce përbëhet nga dy funksionet e
njohura map dhe reduce të gjuhës funksionale Lisp [17].
Map funksioni përpunon çiftet çelës/vlerë për të gjeneruar një set të ndërmjetëm të këtyre çifteve.
Më saktësisht map funksioni merr setin hyrës të çifteve çelës/vlerë dhe prodhon një set dalës të po
këtyre çifteve.
Përderisa, funksioni tjetër, reduce merr setin dalës dhe shkrin të gjitha çiftet që kanë çelësin e
ndërmjetëm të përbashkët në një të dhënë të vetme.

Figura 10: Pseudokodi i funksionit map dhe reduce [16]

________________________________________________________________________
22
4. Organizimi i të dhënave në Google 4.3 Indeksimi i uebit dhe MapReduce modeli

Sipas kodit në figurën 10, map funksioni merr secilin çift çelës/vlerë dhe si rezultat kthen secilën
fjalë dhe numrin e paraqitjeve të saj, në rastin tonë ‘1’ [17].
Ndërsa, reduce funksioni gjen shumën e të gjitha numërimeve të dala nga funksioni map.
Këto funksione janë jashtëzakonisht të shfrytëzueshme sidomos gjatë krijimit të indeksit të
përmbysur.
Më këtë rast map funksioni analizon çdo dokument dhe emiton nga një çift në sekuencë <word,
docID>. Reduce funksioni pranon të gjitha rezultatet nga map funksioni dhe prodhon një çift
<word, list(docID)>. Seti i të gjitha rezultateve dalëse nga funksioni reduce formon indeksin e
përmbysur [17].

Figura 11: Pamja e përgjithshme e ekzekutimit të funksionit map dhe reduce [16]

Thirrjet e map funksionit nuk bëhen vetëm nga një makinë e klasterit, por ato distribuohen nëpër
disa makina, në mënyrë që të shkurtohet koha e realizimit të funksionit. Kjo realizohet duke i
ndarë të dhënat në M pjesë splits (split 0, split 1...). Në anën tjetër thirrjet e funksionit reduce
bëhen nga disa makina, mirëpo këtu bëhet ndarja e hapësirës së çelësave të ndërmjetëm në R
pjesë duke shfrytëzuar ndonjë funksion për ndarje [17].
Procesi fillon me ndarjen e skedarëve në M pjesë të cilat janë të madhësisë nga 16 MB deri 64
MB. Pas kësaj startohen disa kopje të programit në disa makina të klasterit. Si zakonisht, njëra
nga kopjet është master, ndërsa të gjithë të tjerët janë punëtorë të cilët kryejnë punët e dhëna nga
master kopja. Janë saktësisht M punë për map funksionin, dhe R punë për reduce funksionin [17].
Punëtori, të cilit i është ndarë njëra nga M kopjet, bën regjistrimin e çifteve çelës/vlerë. Të gjithë
çelësat e ndërmjetëm të prodhuar nga map funksioni regjistrohen në memorien punuese.
Nganjëherë, të dhënat e regjistruara në memorien punuese shkruhen në disk, i cili është i ndarë në
R regjione nga funksioni për copëtim [17].

Vendndodhja e këtyre të dhënave, i jepet në formë informate master kopjes së programit, i cili
është përgjegjës që këto të dhëna t’iu jep punëtorëve të cilët janë të ngarkuar me detyrën e
reduktimit (reduce function) [17].

________________________________________________________________________
23
4. Organizimi i të dhënave në Google 4.3 Indeksimi i uebit dhe MapReduce modeli

Pasi që punëtorët reduktues të jenë informuar më vendndodhjen e këtyre të dhënave ata përdorin
thirrjet e procedurave në largësi (remote procedure calls) për t’i lexuar këto të dhëna nga disku
apo memoria punuese [17].
Me rastin e leximit të të gjitha të dhënave të ndërmjetme, punëtorët reduktues bëjnë radhitjen e
çifteve sipas çelësit të ndërmjetëm, me qëllim grupimin e të dhënave të cilat kanë të përbashkët
çelësin e ndërmjetëm [17].
Punëtori reduktues pasi që t’i kalon të gjitha vlerat e ndërmjetme i dërgon reduce funksionit,
çelësin unik të ndërmjetëm që ka gjetur dhe setin e vlerave të ndërmjetme që i bashkëngjiten atij.
Rezultati i reduce funksionit i bashkëngjitet një skedari i cili përmban rezultatet e kësaj pjese të
reduktimit. Pasi që të kenë përfunduar të gjitha map dhe reduce funksionet e thirrura, master
kopja e lajmëron shfrytëzuesin [17].

Sa i përket gabimeve në të cilat mund të has programi, ekziston një funksion (ping) me të cilin
master kopja në mënyrë periodike i kontrollon punëtorët dhe në rast se ndonjëri nga ta nuk kthen
përgjigje, puna e paraparë për te i jepet njërit nga punëtorët të cilët janë të lirë.
Ndërsa nëse master kopja ‘vdes’, atëherë si zgjidhje mund të merret zgjedhja e ndonjërës kopje
aktive të programit për master, në mënyrë që të udhëheq me punët aty ku kanë mbetur. Mirëpo në
Google, preferojnë që të ndërpresin tërë operacionin MapReduce me rastin e ‘vdekjes’ së Master
kopjes, meqë ‘vdekja’ e master kopjes shihet si dukuri e rrallë [17].

________________________________________________________________________
24
5. Rezultatet e kërkimit 5.1 Analiza e pyetësorëve dhe përpilimi i rezultateve

Kapitulli 5
5 Rezultatet e kërkimit

5.1 Analiza e pyetësorëve dhe përpilimi i rezultateve preliminare


të kërkimit
Mund të thuhet se makinat kërkuese, përkatësisht vetë kërkimi i informative në ueb përmes këtyre
makinave e ka ndryshuar perceptimin e popullatës së rëndomtë që shfrytëzon uebin, për vetë
uebin. Por, jo vetëm ata janë përfitues të kësaj teknologjie. Bizneset, hulumtuesit dhe pothuajse
për secilin individ që është në kontakt me teknologjitë e sotme të shkëmbimit të informacionit,
një epokë e re ka filluar me paraqitjen e makinave kërkuese. Uebi ndoshta edhe nuk do të ishte ai
që është sot, me më shumë se 10 miliardë ueb faqe [3] të deponuara në mijëra serverët e vendosur
kudo në botë.

Makinat e sotme kërkuese, edhe pse larg ideales që të ofrojnë rezultatet e qëlluara të kërkimit
përmes disa fjalëve kyçe, janë në rrugë të mbarë për të kuptuar nevojat e njerëzve.
Duke pasur parasysh, se uebi paraqitet si një bazë e madhe e të dhënave (më e madhja e njohur),
kërkimi për informacion na detyron qasjen e kërkimit, të ngjashme me atë të pyetësorëve që
realizohen nëpër bazat e të dhënave.

Përmes fjalëve kyçe që iu ofrojmë makinave kërkuese, rrjedhin edhe rezultatet e kërkimit.
Makinat kërkuese ekzekutojnë pyetësorët në bazat e tyre të të dhënave duke kërkuar mu këto fjalë
kyçe nëpër dokumentet e deponuara në rezervuarët e sistemit [2]. Natyrshëm, rezultatet
preliminare të renditura së pari në rezultatet e kërkimit (për disa makina kërkuese këto janë edhe
rezultate finale) do të jenë ato dokumente që do të përmbajnë fjalë që janë më së afërmi të
përshtatshme me fjalët kyçe, dhe dokumentet, në të cilat afërsia fizike në mes të fjalëve kyçe
është e vogël. Pastaj vijnë rezultatet nga dokumentet në të cilat fjalët kyçe gjenden në të njëjtin
dokument, mirëpo nuk janë afër njëra tjetrës, dhe së fundmi rezultatet nga dokumentet që
përmbajnë vetëm ndonjërën nga fjalët kyçe apo jo të gjitha fjalët nga vargu i fjalëve kyçe [2].

Në prapavijën e Google, fjalët kyçe përdoren për të formuluar pyetësorin. Të gjitha fjalët kthehen
në wordID. Si hap i ardhshëm kërkohet nëpër barelat e listës së dokumenteve për fjalët kyçe, dhe
fillon kërkimi nëpër dokumente derisa të gjendet përshtatja ndërmjet fjalëve kyçe dhe fjalëve që
përmbahen në dokumente [2].

Shumica e makinave kërkuese, kërkimin e parë e bëjnë nëpër barelat që përmbajnë të dhëna mbi
tekstin përreth linçeve, titujt e dokumenteve dhe etiketave (tags) meta. Pas kësaj, nëse nuk ka
rezultate të mjaftueshme fillohet me kërkimin e përgjithshëm nëpër dokumente. Kjo bëhet për
arsye efektshmërie, meqë barelat me informatat si ato më lartë janë më të vogla në madhësi dhe
kërkimi mund të kryhet më shpejtë, dhe pa e ngarkuar shumë sistemin [2].

________________________________________________________________________
25
5. Rezultatet e kërkimit 5.1 Analiza e pyetësorëve dhe përpilimi i rezultateve

Përveç përdorimit të fjalëve kyçe për të gjetur informatat e dëshiruara ekzistojnë edhe teknika të
shumta, me anë të të cilave ne bëjmë filtrime të ndryshme në kërkim me qëllim gjetjen e
informatave sa më të sakta dhe relevante [18].
Nëse dëshirojmë që makina kërkuese të na kthej vetëm dokumentet të cilat, përmbajnë të gjitha
fjalët kyçe që kemi përdorur në fushën e kërkimit, atëherë sikurse edhe te çdo sintaksë e
pyetësorëve mund të përdoren operatorët AND dhe + si

produkte + qumësht ose produkte AND qumësht

Me këtë e kemi udhëzuar makinën kërkuese, se ne dëshirojmë të shohim vetëm dokumentet që


kanë të bëjnë me produktet e qumështit, duke i mënjanuar kështu nga rezultatet e kërkimit,
dokumentet që kanë të bëjnë me produkte tjera, sikurse edhe dokumentet që kanë të bëjnë vetëm
me qumështin. Në rastin e anasjelltë mund të përdoret operatori OR, mirëpo ky është një operator
i nënkuptueshëm gjatë rezultateve të kërkimit.

Në rast se shtypim, po e zëmë vetëm George në fushën e fjalëve kyçe, është shumë e mundshme
që të kemi përplot rezultate me dokumente që i referohen presidentit amerikan George Bush. Për
t’i eliminuar rezultatet që kanë të bëjnë me presidentin amerikan, në mënyrë që të kemi rezultatet
që kanë të bëjnë me George-t tjerë na mjafton të shkruajmë:

George – Bush ose George NOT Bush

Nëse fjalët kyçe i fusim nën thonjëza si

“Universiteti i Prishtinës”

makina kërkuese do të kuptojë se ne dëshirojmë t’i shohim vetëm dhe vetëm dokumentet që e
përmbajnë kompozicionin e fjalëve në të njëjtën mënyrë. Më këtë jo që kemi mënjanuar rezultatet
për dokumentet që përmbajnë vetëm njërën nga fjalët, por edhe rezultatet me dokumentet që
mund të kenë fjalët si Universiteti Prishtinës, apo Universiteti i Prishtina.

Ka edhe teknika tjera filtruese si në rastet kur e dimë se fjala jonë kyçe gjendet në kuadër të URL-
së së ueb sajtit që dëshirojmë ta vizitojmë, me ç’rast eliminojmë rezultatet me dokumentet që e
përmbajnë atë fjalë kyçe. Si shembull, rastet kur nuk jemi të sigurt për URL-në e Kuvendit të
Kosovës shkruajmë në fushën e kërkimit

allinurl: kuvendi

Në këtë rast Google do të na i kthej të renditura më së larti ueb faqet e Kuvendit të Kosovës, dhe
me gjasë edhe të Kuvendit të Shqipërisë, nëse pjesë e URL-së së ueb sajtit të Kuvendit të
Shqipërisë është fjala kyçe kuvendi.
Në rastet kur dëshirojmë të shohim vetëm rezultatet të cilat përmbajnë vetëm një tip të veçantë të
skedarëve si shembull .pdf skedarët, atëherë shkruajmë

pdf: tatimet

Me ç’rast do të na kthehen të gjithë skedarët me prapashtesën .pdf që përmbajnë fjalën kyçe


tatimet.
Është e rëndësishme të theksohet se edhe gjatë kërkimit makinat kërkuese përdorin funksionet
Stoplisting dhe Stemming. Me të parën eliminojnë nga rezultatet e kërkimit fjalët që përdoren

________________________________________________________________________
26
5. Rezultatet e kërkimit 5.1 Analiza e pyetësorëve dhe përpilimi i rezultateve

shpesh, e me të dytën makinat kërkuese mundohen të hamendësojnë rezultatet në bazë të rrënjëve


të fjalëve [14].

5.2 Renditja e rezultateve të kërkimit përmes algoritmit PageRank


Projektuesit e Google thonë se qëllimi i kërkimit është që të kemi sa më shumë rezultate cilësore
të kthyera nga makina kërkuese [2].
Pjesë e rëndësishme e implementimit të makinave kërkuese është edhe renditja logjike e
rezultateve të kthyera, bile Google triumfon mbi makinat tjera kërkuese mu në saje të kësaj vetie
specifike.
Google përdor një algoritëm special për renditjen e rezultateve, i cili quhet PageRank. Pasi që të
realizohen rezultatet preliminare të kërkimit, fillon procesi i renditjes së rezultateve në bazë të
rëndësisë duke iu referuar po këtij algoritmi. Së pari paraqiten dokumentet që kanë rezultatet më
të përafërta, e që kanë vlerën më të madhe të PageRank-ut të tyre [2].

Sipas [7], një bazë e lidhur e të dhënave (si fjalorët, uebi, rastet e gjykatave etj.) mund të
paraqiten si graf i drejtuar i N nyjeve, ku secila nyje korrespondon me ndonjë ueb dokument dhe
ku lidhjet e drejtuara në mes nyjeve korrespondojnë me linçet nga një dokument në tjetrin. Një
nyje e caktuar përmban një grumbull linçesh që na drejtojnë drejt nyjeve ‘fëmijë’, dhe një
grumbull linçesh që na drejton praptazi te nyjet ‘prind’, sic është paraqitur ne Figuren 12.

Figura 12: Relacioni në mes tri dokumenteve të linçuara ndërmjet veti [7]

Në figurën 12 kemi thjeshtësuar problemin në tri ueb dokumente. Themi se ueb faqja B dhe C
kanë linçe të drejtuara përpara drejt ueb faqes ‘fëmijë’ A, dhe themi se ueb faqja A ka dy linçe të
drejtuara praptazi drejt ueb faqeve ‘prind’ B dhe C.

Metoda e renditjes së rezultateve sipas PageRank, bazohet parimisht në numërimin e thirrjeve nga
dokumentet tjera, mirëpo kjo metodë është më komplekse sesa vendosja e vlerave në bazë të
numrit të thirrjeve. Në rastin më të thjeshtë dokumenti A i cili ka N thirrje të drejtuara praptazi do
të kishte rangun r(A) = N [7].

________________________________________________________________________
27
5. Rezultatet e kërkimit 5.2 Renditja e rezultateve të kërkimit

Mirëpo, rangu i faqes A në mënyrë më precize llogaritet përmes formulës

α ⎛ r ( B1 ) r ( Bn ) ⎞
r ( A) = + (1 − α )⎜⎜ + ... + ⎟, (1)
N ⎝ | B1 | | Bn | ⎟⎠

ku me B1,..., Bn kemi shënuar të gjitha linçet e drejtuara praptazi (backlinks) nga faqja A, me
r(B1),...,r(Bn) kemi paraqitur rangjet e faqeve B1,..., Bn, ndërsa |B1|,..., |Bn| paraqesin numrin e
linqeve që janë të drejtuara jashtë nga këto faqe (forward links). α është një konstantë në
intervalin [0, 1] dhe N është numri i të gjitha faqeve në ueb [7]. Sikurse edhe tek rangu sipas
numrit të thirrjeve, siç edhe shihet nga relacioni rangu i faqes A do të rritet varësisht nga numri i
linçeve të drejtuara praptazi nga faqja A. Mirëpo, sipas kësaj metode, thirrjeve nga linçet e
drejtuara praptazi të cilat kanë rang më të lartë iu jepet rëndësi më e madhe sesa thirrjeve nga
linçet e drejtuara praptazi të cilat kanë rang më të ulët. Si shembull që rrjedh nga ky përkufizim
mund të merret fakti se një ueb faqe e cila ka vetëm një linç të drejtuar praptazi në një ueb faqe
me rang të lartë, do të ketë rang më të lartë, se një ueb faqe e cila ka shumë linçe të drejtuara
praptazi, e të cilat janë me rang më të ulët. Kjo edhe e bën të dallueshme këtë metodë të
përcaktimit të rangut nga metodat që bazohen në numërimin e thirrjeve.
Rangu i një faqeje mund të interpretohet si probabilitet që një vizitorë do të jetë në atë faqe pasi
që ka përcjellë disa linçe. Konstantja α në formulë interpretohet si probabilitet se një vizitor do të
kërcej në mënyrë të rastësishme në një ueb faqe, në vend se të përcjell linçet [7].

Figura 13: Diagrami i tri dokumenteve me vlerat e rangut sipas algoritmit [7]

Rangu i faqeve mund të llogaritet duke përdorur një algoritëm, i cili korrespondon me një eigen-
vektor (vektor, anëtarët e të cilit janë funksione) të një matrice të normalizuar e që përmban linçet
e uebit.
Të supozojmë se r = 0. Dokumenti A ka një linç të drejtuar praptazi në dokumentin C, dhe ky
është linçi i vetëm i drejtuar përpara nga dokumenti C, nga kjo rrjedh

r(A) = r(C). (2)

Dokumenti B ka një linç të vetëm të drejtuar praptazi në dokumentin A, por ky linç është njëri nga
dy linçet e drejtuara përpara nga dokumenti A, nga rrjedh

________________________________________________________________________
28
5. Rezultatet e kërkimit 5.2 Renditja e rezultateve të kërkimit

r(B) = r(A)/2. (3)

Dokumenti C ka dy linçe të drejtuara praptazi. Njëri është i drejtuar në dokumentin B, e që është


linçi i vetëm i drejtuar përpara nga ueb faqja B. Linçi tjetër i drejtuar praptazi nga dokumenti C
është në dokumentin A, kështu që

r(C) = r(B) + r(A)/2. (4)

Në figurën 13, ueb faqeve iu janë dhënë vlerat e rangjeve si vijon r(A) = 0.4, r(B)=0.2 dhe r(C) =
0.4. Edhe pse vlera e zakonshme e konstantës α është e përafërt me 0.1, këtu është marrë α = 0.5.
Numri i faqeve N është 3. Duke shfrytëzuar relacionin kryesor fitojmë sistemin e ekuacioneve

r(A) = 1/6 + r(C)/2,


r(B) = 1/6 + r(A)/4, dhe (5)
r(C) = 1/6 + r(A)/4 + r(B)/2.

Zgjidhja e këtij ekuacioni është r(A) = 14/39, r(B) = 10/39 dhe r(C) = 15/39, nga ku na del se ueb
faqja C ka rangun më të lartë.
Meqë uebi nuk përbëhet nga vetëm tri ueb faqe, duket se aplikimi i këtyre formulave për
llogaritjen e rangjeve të miliarda ueb faqeve bëhet i pamundshëm. Mirëpo, meqë nuk nevojitet
ndonjë llogaritje precize në rastin tonë, mund të shërbehemi me formula të thjeshtuara, të cilat do
të jepnin vlera të përafërta.

Modeli i gjetjes së këtyre vlerave nuk është edhe aq i thjeshtë, dhe përfshin (a) një vektor iniciues
p0 N-dimensional të shpërndarjes së probabilitetit, ku secili anëtarë p0[i] jep probabilitetin fillestar
se një vizitor i rastësishëm do të filloj vizitën në një nyje i, dhe (b) një matricë transitore të
probabilitetit A, të rangut NxN, ku secili anëtarë A[i][j] jep probabilitetin se një vizitor do të
zhvendoset nga nyja i në nyjën j [7].
Grafi i shpërndarjes së probabilitetit, pasi që vizitori të përcjell një linç do të jetë p1 = Ap0, dhe
pasi që të përcjell dy linçe p2 = Ap1 = A2p0. Duke supozuar se relacioni do të konvergjojë, do të
kemi relacionin

p∞ = lim A n p0 , (6)
n →∞

që paraqet eigen-vektorin e matricës A [7].

Problemi paraqitet me ueb faqet të cilat nuk përmbajnë linçe, dhe me këtë bëjnë që të rritet faktori
α. Kështu që, rangu r[i] i një nyje i mund të definohet si funksion i gjendjes stabile të
shpërndarjes së probabilitetit. Në mënyrë më të thjeshtë rangu mund të definohet si r[i] = p∞[i],
që është një metodë e barasvlershme me relacionet e nxjerra më parë.

Meqë rangu i dokumenteve mund të dalloj shumë në mes të dokumenteve, është më e


përshtatshme të definohet rangu logaritmik i një ueb faqeje

p∞ [i ]
r[i ] = log (7)
min
{ p∞ [k ]}
k ∈ [1, N ]

________________________________________________________________________
29
5. Rezultatet e kërkimit 5.2 Renditja e rezultateve të kërkimit

Ky relacion i jep vlerën 0 nyjës më së paku të rëndësishme, dhe e rrit vlerën për 1 për çdo shkallë
më të lartë të rangut.

Figura 14 paraqet një manifestim të metodës kompjuterike për llogaritjen e rangut të rëndësisë për
N nyje të lidhura të një baze të lidhur të të dhënave [7]. Në hapin 101 të prezantuar në figurën 14,
është zgjedhur një vektor N-dimensional iniciues p0. Në hapin 103, në pajtim me formulën e
gjendjes stabile për p∞, llogaritet pn = Anp0. Matrica A e rangut NxN, që është matricë transitore e
probabilitetit, paraqitet me elementet A[i][j], që tregojnë probabilitetin e zhvendosjes nga nyja i
në nyjën j. Në hapin 105 përcaktohet rangu r[k] për nyjën k, nga anëtari i k-të i vektori pn.

Figura 14: Rrjedha e një manifestimi të bazuar në invencionin [7]

Shpërndarja fillestare mund të caktohet të jetë e njëtrajtshme apo jo e njëtrajtshme. Shpërndarja e


njëtrajtshme do t’ia caktojë vlerën çdo anëtari të vektorit p0 në 1/N, përderisa shpërndarja jo e
njëtrajtshme mund ta ndaj probabilitetin nëpër disa nyje që dihen a priori se kanë rëndësi relative
të madhe [7].

Në një manifestim tjetër, matrica transitore A jepet me relacionin

α
A= 1 + (1 − α ) B , (8)
N

ku me 1 është përcaktuar një matricë N-dimensionale me të gjithë anëtarët 1. α është përsëri


konstanta që përcakton probabilitetin se një vizitor do të kërcej rastësisht nga një faqe në tjetrën

________________________________________________________________________
30
5. Rezultatet e kërkimit 5.2 Renditja e rezultateve të kërkimit

pa përcjellë linçet, N numri i nyjeve, ndërsa B është një matricë elementet e së cilës B[i][j] janë të
dhëna si vijon

⎧1
⎪ nëse ⋅ nyja ⋅ i ⋅ drejton ⋅ në ⋅ nyjen ⋅ j
B[i ][ j ] = ⎨ ni (9)
⎪⎩ 0 ⋅ rastet ⋅ tjera

ku ni është numri i përgjithshëm i linçeve të drejtuara përpara nga një nyje i [7].
(1 - α) luan rolin e faktorit të frenimit, i cili kufizon hapësirën përmes së cilës rangu i një
dokumenti mund të trashëgohet nga dokumentet fëmijë. Konstantja α zakonisht e ka vlerën 15%,
andaj faktori (1 - α) rrjedhimisht ka vlerën 0.85 [7].

Përveç faktorëve që përmendëm, po ashtu në shqyrtim gjatë renditjes së rezultateve merren edhe
faktorë të tjerë. Për shembull, mund të vijmë në përfundim se në shumicën e rasteve faqja e parë e
një ueb sajti është më e vizituara, dhe të supozojmë se edhe është më së larti e renditur në
rezultatet e kërkimit. Atëherë, cilado ueb faqe që mund të ketë linçin në faqen e parë do të ketë
rangun më të lartë të trashëguar nga faqja e parë sesa ueb faqet tjera, të cilat nuk kanë linçet e tyre
në faqen e parë.
Pastaj, linçet të cilat janë mjaft të dukshme në maje të faqes, me shkronja të mëdha, a me madhësi
të fontit më të madh iu jepet rëndësi më e madhe se ndonjë linçi që nuk është edhe aq i dukshëm.
Rëndësi e veçantë iu jepet edhe teksteve përreth linçeve (anchors), pasi që shpeshherë ato
përshkruajnë ueb faqen më mirë se vetë materiali që ajo ueb faqe përmban.

5.3 Efektshmëria e sistemit


Google garanton se me algoritmin e saj për renditjen e rezultateve, në rezultatet e kërkimit do të
paraqiten dokumentet më të rëndësishme, me këtë me gjasë edhe dokumentet më relevante, duke
pasur parasysh fjalët kyçe që i përdorim në fushën e kërkimit të makinave kërkuese.
Efektshmëria e këtij sistemi mund të vërehet qartë nëse bëjmë çfarëdo kërkimi, për të cilin e dimë
pak a shumë se çfarë rezultatesh duhet pritur.

Në një eksperiment të bërë në vitin 1998 nga themeluesit e Google për fjalët kyçe “bill clinton”,
rezultatet e kthyera nga makina kërkuese, e cila mbështetej në bazën e të dhënave me më se 24
milion ueb faqe të indeksuara, ishin befasuese. Në figurën 15 janë paraqitur rezultatet e këtij
kërkimi [2].
Sipas këtij eksperimenti, rezultatet e renditura më së larti janë njëkohësisht edhe më relevantet.
Shohim, ndër rezultatet e para paraqiten ueb faqet që janë në kuadër të ueb sajtit të Shtëpisë së
Bardhë, pastaj linçi që na drejton tek posta elektronike e presidentit. Ndërsa më poshtë janë
paraqitur faqet më pak relevante si ueb faqet jozyrtare të admiruesve të tij apo edhe shkrimet e
ndryshme diskredituese për presidentin.

________________________________________________________________________
31
5. Rezultatet e kërkimit 5.3 Efektshmëria e sistemit

Figura 15: Rezultatet e kërkimit të kthyera nga Google për fjalët kyçe bill clinton [2]

5.4 Google dhe makinat tjera kërkuese


Është theksuar shumë herë në kuadër të këtij punimi se përparësia e dukshme e Google është
PageRank algoritmi për radhitjen e rezultateve. Kjo ishte edhe fushë beteja, në të cilën Google
fitoi mbi makinat tjera kërkuese. Google sot është makina kërkuese më e shfrytëzueshme në
internet [5].

Për të demonstruar këtë veçori superiore të Google ndaj makinave tjera kërkuese do t’i
komentojmë disa nga rezultatet e mara nga kërkimet në Google dhe Altavista [3].
Në këtë eksperiment është përfshirë kërkimi përmes fjalëve kyçe që gjenden në kuadër të bazës së
të dhënave që përmban titujt e dokumenteve, e që ka të regjistruara rreth 16 milion dokumente
[3].

________________________________________________________________________
32
5. Rezultatet e kërkimit 5.4 Google dhe makinat tjera kërkuese

Për fjalën kyçe university, shohim rezultatet e kërkimit nga të dyja makinat në figurën e
mëposhtme, ku në anën e majtë janë paraqitur rezultatet e kërkimit të Google, ndërsa në të
djathtën rezultatet e kërkimit të Altavista.

Figura 16: Rezultatet e kërkimit për fjalën kyçe universit, të kthyera nga Google (majtas) dhe
Altavista(djathtas)

Shihet qartë se në rezultatet e paraqitura nga Google prijnë universitetet amerikane me renome
botërore si Stanford University, University of Illinois, Indiana University etj., përderisa Altavista
e ka parë të arsyeshme që me kërkimin për fjalën kyçe university, t’i jep rëndësi më të madhe
departamentit të fizikës optike në Universitetin e Oregonit, sesa ueb faqeve fillestare të
universiteteve, apo edhe vet faqes fillestare të Universitetit të Oregonit.

Në shembullin vijues do të demonstrojmë fuqinë e rezultateve të Google, të krahasuar më tri


makinat tjera kërkuese, Yahoo, MSN Search dhe WebSearch. Që të tri këto makina kanë renome
botërore. Eksperimenti është kryer në qershor të 2007, përderisa është kërkuar për fjalën kyçe
qeveria. Rezultatet e kërkimit janë paraqitur në figurën e mëposhtme.
Kërkimi është bërë në ueb sajtin http://www.multi-search-engine.com, i cili mundëson përmes
ndërfaqes së tij kërkimin e përnjëhershëm në më shumë se një makinë kërkuese. Lartë-djathtas
janë paraqitur rezultatet e makinës kërkuese Yahoo, lartë-majtas rezultatet e Google, poshtë-
djathtas rezultatet e MSN Search dhe poshtë-majtas rezultatet e WebSearch.
Përderisa Google për fjalën kyçe qeveria ka kthyer adresat më të rëndësishme, si ueb portalin e
qeverisë shqiptare në rend të parë, dhe atë të qeverisë së Kosovës në rend të dytë, makinat tjera
kërkuese duket se nuk iu kanë dhënë edhe aq rëndësi këtyre ueb portaleve. Rezultatet më të
kënaqshme nga makinat tjera kërkuese, edhe pse larg efektshmërisë që ka Google, i ka dhënë
MSN Search, ku pas linçeve që të drejtojnë në ueb sajtin e qeverisë studentore shqiptare në rendin

________________________________________________________________________
33
5. Rezultatet e kërkimit 5.4 Google dhe makinat tjera kërkuese

e tretë është paraqitur ueb portali i Qeverisë së Kosovës. Në anën tjetër, Yahoo dhe WebSearch,
nuk kanë paraqitur këto dy ueb faqe, e as rezultate të përafërta me to, as në 10 rezultatet e para të
këtij kërkimi.

Figura 17: Rezultatet e kërkimit për fjalën kyçe qeveria, të kthyera nga Yahoo (lartë-majtas), Google (lartë-
djathtas), MSN Search (poshtë-majtas) dhe WebSearch (poshtë-djathtas)

________________________________________________________________________
34
6. Si të mashtrohet Google? 6.1 Teknikat për manipulimin e rezultateve të kërkimit

Kapitulli 6
6 Si të mashtrohet Google?

6.1 Teknikat për manipulimin e rezultateve të kërkimit të Google


makinës kërkuese
PageRank është algoritmi më i avancuar për renditjen e rezultateve të kërkimit, mirëpo PageRank
nuk është një algoritëm i përsosur. Kur Larry Page, projektuesi i këtij algoritmi, hodhi idenë për
krijimin e Google makinës kërkuese së bashku me Sergey Brin, ata vendosen që ta patentojnë
këtë algoritëm, por njëkohësisht edhe ta bëjnë publik punimin. Kjo përveç që iu ndihmojë pa
masë makinave kërkuese konkurrente në treg, e që edhe sot shihet nga shumë analistë biznesi si
gabim i Google, iu ndihmojë edhe shumë individëve që të gjejnë ‘pikat e dobëta’ të këtij
algoritmi. Kjo padyshim, iu erdhi në ndihmë atyre për manipulimin me rezultatet e kërkimit.

Teknika e manipulimit jo të drejtë të rezultateve të kërkimit të makinës kërkuese Google, quhet


Google Bomb ose link bomb. Me këtë shprehje nënkuptohen tendencat e llojllojshme për të
influencuar rangun e rezultateve të kërkimit të kthyera nga makina kërkuese Google, zakonisht
me qëllime satirike apo politike [19].

Meqë, siç thamë edhe në kapitullin e kaluar, Google i jep rëndësi të madhe teksteve përreth
linçeve (anchors), duke i pranuar ato si përshkruesit më të mirë të një ueb faqeje të caktuar, nga
kjo rrjedh që sa më koherent të jetë teksti përreth linçeve, aq më lartë në renditjen e rezultateve do
të vendoset ajo ueb faqe [19].
Do të themi se një Google Bomb është krijuar, nëse një numër i madh ueb faqesh përmban linçin
me përshkrim koherent drejt një ueb faqeje të caktuar (ueb faqes e cila është cak i këtij
manipulimi) [19].

Google Bomb është e ngjashme me spamdexing, teknikë kjo që mundëson ndryshimin e


qëlimshëm të HTML faqeve me qëllim manipulimin e rezultateve të kërkimit.
Shumë analistë të këtyre teknikave, bien dakord se Google Bomb-at e para ishin aksidentale, dhe
njerëzit kanë filluar të kuptojnë se përmes ca termave të caktuara mund të arrijnë deri te qëllime
të caktuara [19].

Ndër Google Bomb-at më të njohura, dhe ndoshta edhe më me ndikim, ishte ajo që kishte të bënte
me presidentin amerikan George W. Bush. Në shumë ueb faqe, në atë kohë, do të mund të gjenit
linçet me përshkrimin miserable failure (dështim fatkeq), të cilat të drejtonin në ueb faqen që
përmbante biografinë e presidentit amerikan Bush, e që ishte në kuadër të ueb sajtit zyrtar të
Shtëpisë së Bardhë [19].
Edhe përkundër presioneve të mëdha mbi Google për të hequr nga rezultatet e kërkimit këtë linç,
Google vendosi që t’i qëndrojë besnik algoritmit PageRank, duke u arsyetuar se kjo është vetëm
reflektim i opinionit publik në internet [19].
George W. Bush, nuk ishte caku i vetëm i të pasionuarve pas Google Bomb, kryeministrin
britanik do të mund ta gjenit të renditur të parin në rezultatet e kërkimit për fjalën kyçe liar
(rrenacak).

________________________________________________________________________
35
6. Si të mashtrohet Google? 6.1 Teknikat për manipulimin e rezultateve të kërkimit

Cikli jetësor i një Google Bomb-e përfundon kur ajo të bëhet e popullarizuar, dhe kur të
përmendet në ueb sajtet e njohura apo edhe nëpër media [19].
E gjithë historia e Google Bomb-ave duket ta ketë parë fundin në janar të këtij viti, kur Google
lajmëroi se përmes disa përmirësimeve që ka bërë në algoritëm do të minimizohet efekti i kësaj
teknike. Pas ca ditësh nga ky lajmërim, ishte e pamundur të gjinden në rezultatet e kërkimit të
Google linçet e famshme që i drejtonin vizitorët drejt faqeve të presidentit amerikan apo
kryeministrit britanik [19].
Mirëpo, jo këtu përfundon historia e manipulimit të rezultateve të kërkimit. Sot, kudo në botë janë
themeluar kompani të shumta që merren me biznesin e optimizmit të makinave kërkuese, ose më
mirë thënë me manipulimin e rezultateve të kërkimit. Çdokush që dëshiron t’i radhitet ueb sajti në
rendin e parë të rezultateve, do të mund t’iu drejtohej SEO (Search Engine Optimization)
kompanive, që këtë ta bëjë pa investuar edhe aq shumë [20]. Bile, profiti që do të vilet si rezultat i
shtimit të numrit të vizitorëve në ueb sajt, dhe me këtë edhe rritja e shitjes online i mbulojnë, e
edhe i tejkalojnë investimet për të qenë i pari në rezultatet e Google.
Te optimizimi i makinave kërkuese dallojmë teknikat e ashtuquajturat ‘kapela e bardhë’ dhe
‘kapela e zezë’ [20].
Me të parën nënkuptohet arritja e synimeve përmes teknikave të ndershme dhe të përkrahura nga
makinat kërkuese. Vetë Google ka dhënë njoftimin për të gjithë ata që janë të interesuar të
renditen sa më lartë në rezultatet e kërkimit, se përmes përmbushjes së disa kritereve, ueb faqet e
tyre do të renditen sa më lartë nëpërmjet algoritmit PageRank [20]. Ndër kriteret që kërkohen janë
freskimi sa më i madh i informatave në ueb faqe, pra, nga ky kriter pësojnë ueb faqet statike.
Pastaj, projektimi i linçeve, i tillë që të mos shkaktojë konfuzionin e crawler-ëve, siç është rasti
me spider trap [21].
Në anën tjetër, ‘kapela e zezë’, nënkupton shfrytëzimin e teknikave të cilat nuk përkrahen nga
makinat kërkuese, ku bënë pjesë, në rend të parë, teknika spamdexing. Këtu përdoren mënyra të
ndryshme për arritjen e qëllimit si fshehja e tekstit në fillim të faqeve. Në këtë tekst zakonisht
paraqiten fjalët kyçe dhe të dhëna të tjera, të cilat indeksohen nga makinat kërkuese, por nuk
shihen nga vizitorët. Fshehja e tekstit bëhet në mënyra të ndryshme, duke i dhënë atij ngjyrën e
njëjtë si të prapavijës së ueb faqes, apo vendosjen e tekstit në kuadër të etiketave <div>, të cilat e
kanë opsionin që të fshihen nga sytë e vizitorëve. Pastaj, teknikat si cloaking, me ç’rast i jepet
një version i ueb faqes crawler-ëve, e një tjetër version iu paraqitet shfrytëzuesve [20].
Gjithsesi, teknikat e ‘zeza’ janë nën mbikëqyrjen e plotë të makinave kërkuese. Makinat kërkuese
marrin masa të rrepta ndaj ueb faqeve të cilat mundohen t’i thyejnë rregullat e lojës.

6.2 Teknikat e makinave kërkuese për mbrojtje kundër


mashtrimeve
Jo gjithçka është e lehtë, kur bëhet fjalë për mashtrimet. ‘Të mashtruarit’, gjithmonë tentojnë të
jenë një hap para, për t’i parandaluar mashtrimet e radhës. E njëjtë është edhe situata me makinat
kërkuese.
Google dhe makinat tjera kërkuese janë vazhdimisht të involvuara në procesin e mbrojtjes kundër
mashtrimeve, duke krijuar teknika anti-mashtrim.
Por, jo vetëm makinat kërkuese janë të interesuara të minimizojnë efektin e manipulimit me
rezultat e kërkimit. Në rastin e Google Bomb-ave, individë të fyer me manipulimin e bërë me
rezultatet e kërkimit, filluan procesin e ashtuquajtur, të dekonstruktimit të Google Bomb-ave. Një
armatë e tërë individësh, përkrahës të presidentit amerikan Bush, filluan anti-kampanjën për

________________________________________________________________________
36
6. Si të mashtrohet Google 6.2 Teknikat mbrojtëse kundër mashtrimeve

Google Bomb-ën miserable failure. Kjo u realizua ashtu që u krijuan qindra ueb faqe që
përmbanin linçet me përshkrimin miserbale failure, por kësaj radhe të drejtuara në caqe tjera, në
rend të parë kundër figurave të partisë demokratike në SHBA. Kjo balancoj disi rezultatet e
kërkimit [19].
Në anën tjetër, makinat kërkuese ndërmorën fushatë të egër kundër ‘kapelave të zeza’, duke i
bërë SEO kompanitë të pendohen për të bëmat e tyre në të kaluarën. Google, si prijës i këtij
procesi, ndërmori hapa, përmes të cilave ndëshkoi rëndë ueb faqet që përdornin këto teknika duke
i eliminuar tërësisht nga indeksi i ueb faqeve, të gjitha ueb faqet në të cilat është gjetur material
që do të mund të shkaktonte spamdexing [20].
Mjaft është përfolur edhe për teknikën Sandbox, për të cilën në Google mohojnë ta kenë përdorur.
Sipas kësaj teknike, domenet e regjistruara rishtazi, apo domenet që ndërrojnë shpesh pronarin,
edhe pse të indeksuara nuk paraqiten në rezultatet e kërkimit, për një kohë të caktuar, përderisa
Google të vërtetojë se ueb sajti është serioz, ose së paku është krijuar me qëllime serioze. Kjo
teknikë duket të mos i ketë ndikuar rezultatet e kërkimit të makinave tjera kërkuese [22].

Lufta kundër përfituesve jo të ndershëm tashmë ka filluar, përderisa Google duket të jetë mjaft
vigjilent në përcjellje të këtyre zhvillimeve, dhe në ndërmarrjen e masave ndëshkuese, kundrejt
gjithë atyre që nuk janë konform rregullave.

________________________________________________________________________
37
7. E ardhmja e makinave kërkuese 7.1 Zhvilimi i vetive semantike te makinat kërkuese

Kapitulli 7
7 E ardhmja e makinave kërkuese

7.1 Zhvillimi i vetive semantike te makinat kërkuese

Drejtimet e zhvillimit që tani po marrin makinat kërkuese, ofrojnë hapësirë për projektim më të
mirë të vetive të tyre semantike. Në garën globale për të qenë në krye të tabelës së klasifikimeve
për makinat kërkuese, po imponohet nevoja për zhvillimin e kuptueshmërisë apo të inteligjencës
artificiale për makinat kërkuese, dhe jo vetëm për to. Google është duke e mbajtur primatin si
makinë kërkuese, vetëm duke u vlerësuar si makina më e mirë kërkuese në aspektin e
kuptueshmërisë së kërkesave njerëzore, dhe kthimin e përgjigjeve në mënyrën më të afërt me
perceptimin njerëzor [5]. Por, është e qartë se Google është larg të qenit ëndrrës, për një
bashkëpunim inteligjent makinë-njeri.

Strukturat mikroskopike dhe idiomat në ueb kanë vënë themelet e tyre në hulumtimet për
kërkimet në ueb. Përpjekje të shumta janë duke u bërë në hulumtimet për çmontimin e ueb faqeve
nëpër regjione të vogla e të definuara më mirë, ashtu që të arrihet deri te ndonjë përfundim logjik
nga frazat dhe fjalitë e nxjerra [16].
Informatat e nxjerra në këtë mënyrë po integrohen së bashku me bazat e tjera të njohurive si
fjalorët, katalogët e ndryshme të domeneve të veçanta e të tjera, sikurse edhe të dhënat e nxjerra
nga burime të ndryshme po ndërthuren së bashku për t’iu qasur problemeve të informacionit. E
gjithë kjo po arrihet përmes XML-it, duke shfrytëzuar strukturën e tij për t’i paraqitur të dhënat
në njërën anë, dhe për t’i përshkruar ato të dhëna përmes meta të dhënave që XML disponon. Kjo,
njëherit po e bën më të thjeshtë dhe më të lehtë shkëmbimin e të dhënave ndërmjet bazave të
njohurive [16].

Duke supozuar se një analisti i duhet ta mbaj të azhurnuar një bazë të të dhënave ku regjistrohen
ndryshimet në departamentin e burimeve njerëzore në një kompani, dhe se shablloni i
informatave në bazën e të dhënave jepet në formën “X ka zëvendësuar Y në pozitën P të
kompanisë K”. Këtë vështirë se do ta gjenim duke kërkuar përmes fjalëve kyçe të formuluara në
pyetësor, pasi pyetësorët e bazuar në fjalë kyçe zakonisht kërkojnë për një entitet të specifikuar
përmes një emri apo grupi emëror. Këta pyetësorë nuk janë të konstruktuar për të bërë kërkime
apo filtrime në bazë të shablloneve ku në mes të anëtarëve kyç ekziston një relacion, emrat e të
cilëve do të duhej të nxirreshin nga një dokument i caktuar [16].
Këto janë probleme bazike në nxjerrjen e informacionit. Zakonisht, hasim në forma përplot me
fusha të cilat duhet mbushur me të dhëna, në mënyrë që ato të krahasohen me shabllonet
përkatëse në kuadër të një dokumenti. Një hap para drejt nxjerrjes së informatave, janë vetë
makinat kërkuese, të cilave kryejnë detyrat si nxjerrja e të dhënave që kanë të bëjnë me URL-në
e ueb faqes, pjesëzat e nënvizuara të dokumentit e të tjera.
Pjesë më e komplikuar në këtë drejtim është nxjerrja e shënimeve si për shembull për një punim
përplot me citate. Kjo është gjë e lehtë nëse i referohemi listës së referencave, mirëpo duket
shumë e komplikuar nëse do të duhej t’i nxirrnim këto të dhëna nga vetë brendia e punimit, ku
emrat e autorëve mund të jenë shkurtuar, viti i publikimit të librit që është cituar mund të

________________________________________________________________________
38
7. E ardhmja e makinave kërkuese 7.1 Zhvilimi i vetive semantike te makinat kërkuese

paraqitet me vetëm dy numra, dhe nuk ekziston ndonjë standard i caktuar se me çfarë fonti duhen
të shkruhen apo në çfarë forme [16].
Kuptimi i porosive duket të jetë pjesa më së vështiri e realizueshme sa i përket nxjerrjes së
informacionit. Këtu bënë pjesë si shembull nxjerrja e një tregimi të një zhanri të caktuar nga
artikujt e lajmeve.
Teknikat e nxjerrjes së informatave mund të bazohen në vetitë e induksionit të rregullave apo të
mësimit statistikor, çfarë edhe ofron modeli i fshehtë i Markov-it (HMM) për makinat e gjendjes
fundore (finite-state machines). Një HMM është makinë e gjendjes fundore me mundësi
tranzicioni probabil në një set gjendjesh Q. Kjo makinë fillon me një gjendje fillestare qI dhe
zhvendoset rastësisht nga një gjendje në tjetrën derisa të arrij gjendjen e fundit qF. Në çdo gjendje
ajo hedh nga një monedhë të shumanshme për të vendosur se cilin linç ta përcjell nga gjendja e
tanishme. Përmes formulës së probabilitetit Pr(q→q’) jepet probabiliteti i zhvendosjes nga
gjendja q në gjendjen q’. Po ashtu ekziston edhe një shpërndarje polinomiale e termave që i
shoqërohet secilës nyje, e që janë pjesë e një seti të përgjithshëm Σ të simboleve dalëse.
Probabiliteti Pr(q↑σ) shfaq mundësinë që simboli σ të emitohet si simbol dalës kur makina të jetë
në gjendjen q. Vargu i simboleve dalëse të HMM makinës është x = x1x2...xl$ ($ është simboli
dalës përmbyllës që ka probabilitetin një se do të paraqitet kur makina ta arrij gjendjen e fundme)
[16].

Figura 18: Modeli i Markov-it për nxjerrjen e informatave nga një punim hulumtues [23]

Në figurën 18 është paraqitur diagrami i tranzicionit të gjendjeve për një ballinë të një punimi
hulumtues, e ku përfshihen titulli, autorët, e-mail adresat e tyre, abstrakti etj.
Përveç nxjerrjes së informatave, edhe përpunimi i gjuhës natyrale hyn në zhvillimet e vetive
semantike të makinave kërkuese. Teknikat e paraqitura për përpunimin e gjuhëve natyrale arrijnë
që me mjaftë saktësi t’i analizojnë fjalitë në shumë gjuhë të botës. Në mënyrë që kjo teori të
avancohet edhe më tutje duhet që të krijohen leksikone me fjalë të cilat janë të ndërlidhura në një
rrjet leksikor [16].
WordNet, një fjalor anglisht, ka arritur që të krijojë një rrejt të tillë leksikor. Në këtë rrjet
konceptet unike janë të paraqitura si nyje të quajtura synsets (synonim sets) në një numër grafesh.
Nga një graf për secilën pjesë të ligjeratës. Në secilin graf, synsets janë të lidhura përmes nyjeve
të etiketuara. Grafi i emrave është grafi më i pasur me linqe, meqë në kuadër të tij gjenden
hiponimet (është i llojit të) dhe metonimet (është pjesë e). Këto grafe mund të ju dalin shumë në
ndihmë makinave kërkuese në perceptimin e kërkesave të shfrytëzuesve, edhe pse fjalët e
shumëkuptimta vazhdojnë të paraqesin problem për digjitalizimin e gjuhëve [16].

________________________________________________________________________
39
7. E ardhmja e makinave kërkuese 7.1 Zhvilimi i vetive semantike te makinat kërkuese

Një qasje më të përafërt me realitetin e tanishëm e ofrojnë [24], të cilët propozojnë një teori, me
anën e së cilës do të matej distanca e ngjashmërisë në mes fjalëve. Kjo teori mund të përkufizohet
me analizimin e thjeshtimit në vijim. Kemi dy fjalë të çfarëdoshme x dhe y. Gjatësia e programit
më të shkurtër binar i cili bën llogaritjen, dhe në dalje fiton y, nga hyrja x quhet distancë e
informatës dhe shënohet me E(x, y).

E ( x, y ) = K ( x, y ) − min{K ( x), K ( y )} (10)

ku K(x, y) është gjatësia binare e programit më të shkurtër që prodhon palën x dhe y, dhe jep
idenë se si mund të ndahen ato.
Si rrjedhojë e kësaj lind distanca e normalizuar e informacionit NID (Normalized Information
Distance), e cila llogaritet përmes formulës

K ( x, y ) − min( K ( x), K (Y ))
NID ( x, y ) = (11)
max( K ( x), K ( y ))

dhe mund të ketë vlerat nga 0 deri 1. Përmes kësaj formule nxjerrim distancën e informatës të
dhënë në intervalin nga 0 në 1 [24].
Për shkak se kjo teori bazohet në teorinë komplekse të Kolmogorovit, e cila është e
pallogaritshme, as NID nuk mund të llogaritet. Mirëpo, ekzistojnë forma të ndërmjetme që na
mundësojnë llogaritjen e këtij koeficienti [24].
NCD (Normalized Compression Distnace) apo distanca e normalizuar e ngjeshjes, përdoret si
zëvendësim për llogaritjen e distancës së informacionit. Duke përdorur C(x) dhe C(y) për të
paraqitur gjatësinë e versionit të ngjeshur të fjalëve x dhe y arrijmë te formula

C ( xy ) − min(C ( x), C ( y ))
NCD ( x, y ) = (12)
max(C ( x), C ( y ))

ku K(x, y) është zëvendësuar me C(xy). Mirëpo, në Google përdorin një metodë tjetër për këtë
njehsim. Sipas kodit mbi të cilin është zhvilluar Google makina kërkuese, kjo distancë llogaritet
përmes formulës 13

G ( x, y ) − min(G ( x), G ( y )) max{log f ( x), log f ( y )} − log f ( x, y )


NGD ( x, y ) = = (13)
max(G ( x), G ( y )) log N − min{log f ( x), log f ( y )}

e cila quhet NGD Google distanca e normalizuar. Në këtë formulë me G(x) kuptohet gjatësia më e
vogël e prefiks-kodit për një fjalë të caktuar, pasi që te Google, me x shprehet më shumë emri i
një objekti sesa vetë objekti. Rangu i vlerave të NGD është në mes 0 dhe pakufi [24].
Do të marrim një shembull për të ilustruar këtë dukuri. Sipas eksperimenteve të [24], nëse
kërkojmë në Google për fjalën kyçe horse na kthehen 46.700.000 rezultate. Për fjalën kyçe rider
do të na kthehen 12.200.000 rezultate. Ndërsa, nëse i fusim të dyja bashkë në fushën e kërkimit
do të kemi 2.630.000 rezultate. Nga kjo rrjedh

NGD(horse, rider) ≈ 0.443

Vijmë në përfundim se nëse merren parasysh këto llogaritje, makinat kërkuese do të jenë në
gjendje që në mënyrë intuitive t’ia ‘qëllojnë’ se çfarë po kërkojnë shfrytëzuesit.

________________________________________________________________________
40
8. Përfundimi Google, si funksionon dhe si të mashtrohet

Kapitulli 8
8 Përfundimi
Marrë parasysh të gjeturat e eksperimenteve dhe hulumtimeve, sikurse edhe duke u mbështetur në
literaturën e gjerë mbi makinat kërkuese, arrijmë në përfundim se makinat kërkuese janë një
teknologji mjaft e përdorur në ueb nga individët e të gjitha lëmive. Në bazë të po këtyre gjetjeve
arritëm ta paraqesim një pasqyrë të qartë mbi funksionimin e makinave të sotme kërkuese, duke
iu përmbajtur objektivave të paraqitura në fillim, për shpjegimin detaj të rrjedhës së funksionit të
makinës deri tani më të përsosur dhe më të shfrytëzueshme në ueb.

Teknologjitë që Google përdor për, mbledhjen e informacioneve në ueb, deponimin e këtyre të


dhënave nëpër klasterët aspak konvencional, por mjaft efikas, strukturimin e të dhënave,
indeksimin e tyre, si dhe radhitjen e rezultateve të kërkimit përmes algoritmit të posaçëm,
përbëjnë një udhërrëfyes shumë të mirë, për projektimin e makinave të ardhshme kërkuese.

Gjithnjë duke iu përmbajtur objektivave të paraqitura në fillim, realizuam eksperimente për të


vërtetuar efektshmërinë e makinës kërkuese Google. Në bazë të hulumtimeve, shqyrtuam edhe
teknikat joligjore për përfitim duke manipuluar me algoritmin e Google për radhitjen e
rezultateve të kërkimit, sikurse edhe teknikat mbrojtëse, të ndërmarra nga Google për të
minimizuar efektin e këtyre mashtrimeve.

Gjithsesi, makinat kërkuese janë në zhvillim e sipër, si teknologji e re softuerike, dhe në të


ardhmen pritet zhvillimi i tyre drejt qëllimeve të tyre për të ofruar një qasje më të afërt dhe më të
kuptueshme për shfrytëzuesit.

________________________________________________________________________
41
Shtesat Lista e figurave

Shtesat
Lista e figurave
Figura 1: Grafi i rritjes së numrit të ueb faqeve .............................................................................. 4
Figura 2: Klaster arkitektura (stendat) e Google ............................................................................. 6
Figura 3: Arkitektura e sistemit të skedarëve të Google ................................................................. 9
Figura 4: Kontrolli i shkrimit dhe rrjedha e të dhënave ............................................................... 11
Figura 5: Një pjesë e tabelës të BigTable, që ruan të dhënat për ueb faqe13
Figura 6: Arkitetktura e nivelit të lartë të Google makinës kërkuese ............................................ 15
Figura 7: Indekset e avancuara dhe të përmbysura dhe leksikoni ................................................. 17
Figura 8: Rrjedha e një crawler-i të thjeshtë sekuencial................................................................ 18
Figura 9: Një faqe e bazuar në HTML dhe struktura përkatëse .................................................... 21
Figura 10: Pseudokodi i funksionit map dhe reduce ..................................................................... 22
Figura 11: Pamja e përgjithshme e ekzekutimit të funksionit map dhe reduce............................. 23
Figura 12: Relacioni në mes tri dokumenteve të linçuara ndërmjet veti ....................................... 27
Figura 13: Diagrami i tri dokumenteve me vlerat e rangut sipas algoritmit.................................. 28
Figura 14: Rrjedha e një manifestimi të bazuar në invencionin .................................................... 30
Figura 15: Rezultatet e kërkimit të kthyera nga Google për fjalët kyçe bill clinton...................... 32
Figura 16: Rezultatet e kërkimit për fjalën kyçe universit, të kthyera nga Google (majtas) dhe
Altavista(djathtas)................................................................................................................. 33
Figura 17: Rezultatet e kërkimit për fjalën kyçe qeveria, të kthyera nga Yahoo (lartë-majtas),
Google (lartë-djathtas), MSN Search (poshtë-majtas) dhe WebSearch (poshtë-djathtas).... 34
Figura 18: Modeli i Markov-it për nxjerrjen e informatave nga një punim hulumtues................. 39

Lista e tabelave
Tabela 1: Makinat kërkuese............................................................................................................. 4

Lista e shkurtesave
ASCII American Standard Code for Information Interchange
CPU Central Processing Unit
FTP File Transfer Protocol
GFS Google File System
HMM Hidden Markov Model
HTML HyperText Markup Language
HTTP HyperText Transfer Protocol
NCD Normalized Compression Distance
NID Normalized Information Distance
NGD Normalized Google Distance
SEO Search Engine Optimization
SSG Sistemi i Skedarëve të Google
URL Uniform Resource Locator
WWW World Wide Web
XML eXtended Markup Language

________________________________________________________________________
42
Shtesat Lista e figurave

________________________________________________________________________
43
Referencat

Referencat
[1] Search Engines and Web Dynamics.
Knut Magne Risvik, Rolf Michelsen.
Fast Search & Transfer ASA.

[2] The Anatomy of a Large-Scale Hypertextual Web Search Engine.


Sergey Brin and Lawrence Page.
University of Stanford, CA 94305, USA.

[3] The PageRank Citation Ranking: Bringing orden to the ueb.


Sergey Brin & Lawrence Page.
University of Stanford, CA 94305, USA.

[4] Improving the Ranking Capability of the Hyperlink Based Search Engines Using
Heuristic Approach.
Haider A. Ramadhan and Khalil Shihab.
Sultan Qaboos University, Muscat, Oman.

[5] Learn Google.


Michael Busby.

[6] Crawling hidden web.


André Bergholz, Boris Chidlovskii.
Xerox Research Centre Europe, Meylan, France

[7] United States Patent 6,285, 999.

[8] Web Top Rage Study.


http://www.searchenginewatch.com

[9] How Google Works.


David F. Carr.
http://www.baselinemag.com

[10] Web Search for a Planet: The Google Cluster Architecture.


Luiz André Barroso, Jeffrey Dean, Urs Hölzle.
Google, Inc.

[11] The Google Legacy.


Stephen E. Arnold.

[12] The Google File System.


Sanjay Ghemawat, Howard Gobioff, Shun-Tak Leung.
Google, Inc.

________________________________________________________________________
44
Referencat

[13] Bigtable: A Distributed Storage System for Structured Data.


Fay Chang, Jeffrey Dean, Sanjay Ghemawat, Wilson C. Hsieh, Deborah A.
Wallach, Mike Burrows, Tushar Chandra, Andrew Fikes, Robert E. Gruber.
Google, Inc.

[14] Crawling the Web.


Gautam Pant, Padmini Srinivasan, Filippo Menczer.

[15] Robots Exclusion Standard.


Wikipedia.
http://www.wikipedia.org

[16] Mining the Web – Discovering Knoledge from Hypertext Data.


Soumen Chakrabarti.

[17] MapReduce: Simplified Data Processing on Large Clusters.


Jeffrey Dean and Sanjay Ghemawat.
Google, Inc.

[18] Building Reasearch Tools with Google for Dummies.


Harold Davis.

[19] Google Bomb.


Wikipedia.
http://www.wikipedia.org

[20] Search Engine Optimization.


Wikipedia.
http://www.wikipedia.org

[21] Spider trap.


Wikipedia.
http://www.wikipedia.org

[22] Sandbox Effect.


Wikipedia.
http://www.wikipedia.org

[23] Learning Hidden Markov Model strukture for information extraction.


K. Seymore, A. McCallum, R. Rosenfeld
http://www-2.cs.cmu.edu/~kseymore/papers/ie_aaai99.ps.gz

[24] The Google Similarity Distance.


Rudi L. Cilibrasi and Paul M.B. Vitanyi.

________________________________________________________________________
45

You might also like