Vorgurakendused 2 prax 2: erinevus redaktsioonide vahel
Mine navigeerimisribale
Mine otsikasti
Resümee puudub |
Resümee puudub |
||
| 1. rida: | 1. rida: | ||
[[Vorgurakendused_2_prax_2 2009| siit leiad 2009 praktikumi arhiivi]] | |||
Praktikumi eesmärk on mahuka rehkenduse paralleliseerimine, arendades vajaliku funktsionaalsuse esimeses praksis tehtud rakenduse külge. | |||
Selleks pead realiseerima süsteemi, kus üks rakendus - tööde koordinaator - jagab mahuka ülesande tükid teistele rakendustele, viimased täidavad need tükid, raporteerivad tulemused kordinaatorile, kes omakorda väljastab lõpptulemuse. | |||
Ülesanne, mida lahendada, on objektide (hoonete vms) ehitusaastate leidmine suurt hulka veebilehti läbi otsides ja enimleitud aasta väljaselgitamine. | |||
Konkreetsemalt: | |||
* koordinaatoril peab olema hulk URL-e, mille taga on harilikud veebilehed, mis tõenäoliselt (aga mitte tingimata kõik) sisaldavad infot ühe konkreetse objekti ehitusaasta kohta. Need URL-d võid võtta kas | |||
** ise objekti googeldades (näiteks "Eiffel tower") ja tulemused käsitsi faili kirjutades, mille koordinaatorile ette annad | |||
** või siis - parem variant - lastes koordinaatoril endal seda objekti googeldada, kasutades näiteks Google search API-t. | |||
* koordinaatoril peab olema mingi hulk IP-sid ja porte, kust ta otsib töötavaid rakendusi, millele ülesandeid jagada: | |||
** kas lihtsalt kontrollides etteantud IP/pordipaare (et kas seal on töötav rakendus) | |||
** või - parem variant - tehes eraldi rekursiivse/iteratiivse otsingu, leidmaks juurde IP/pordipaare, kus on töötav rakendus | |||
* koordinaator peab jagama ülesanded leitud töötajate vahel: | |||
** kas jagades N urli M töötajate vahel enamvähem võrdsetes osades | |||
** või - parem variant - jagades ülesanded väiksemate portsude kaupa, eeldades, et mõni töötaja saab varem valmis ja talle võiks anda järgmise portsu | |||
* töötaja peab leidma võimalike aastaarvude loetelu koos esinemiskordadega: | |||
** võtab tsüklis järgmise urli talle antud portsust, tõmbab endale urlil oleva teksti (misiganes formaadis) | |||
** jaotab teksti punkide järgi "lauseteks" ja visates välja ülipikad "laused". Osa lauseid ilmselt ei ole inimkeelsed "normaalsed" laused, vaid on näiteks css või javascripti tekst vms: sellest pole midagi. Ülipikad "laused" lihtsalt on suure tõenäosusega mitte-inimkeelsed ja neid pole ilmselt mõtet arvestada. | |||
** otsib välja kõik laused, kus on sees uuritava objekti nimi (näiteks "Eiffel tower") ja vaatab, kas selles lauses esineb aastaarv. | |||
** aastaarvuna käsitleme mistahes neljakohalist numbrit, näiteks 2010 või 1234 või 1889. | |||
** jätab meelde kõik selliselt leitud aastaarvud (st aastaarv lauses, kus oli objekti nimi) ja nende esinemiskordade arvu: võid nimelt leida hulga erinevaid arve, mõned lihtsalt on sagedamini esinevad. | |||
** raporteerib leitud aastaarvude/esinemiskordade loendi tagasi koordinaatorile | |||
* kui koordinaator on saanud raportid kõigilt töötajatelt, koostab ta omakorda koondnimekirja aastaarvude/esinemiskordadega ning trükin välja kõige enam leitud arvu kui tõenäolise vastuse, pluss huvi mõttes kogu nimekirja aastaarvudest/esinemiskordadest | |||
** parem variant: kui mingi N sekundi jooksul kõigilt töötajatelt vastuseid ei saa (mõni läheb näiteks offline) siis trükkida ikkagi tulemus välja hetkeseisuga | |||
- konkreetsem ülesanne on leida hoonete ehitamisaegu | |||
veebist crawlides | |||
- koordinaatoril on N urli | |||
- jagab urlid laiali, igaühele M tk | |||
- igaüks tõmbab urlilt lehe ja otsib kas leiab | |||
mingil moel arusaadavalt ehituse aja | |||
- koordinaator võtab ajad kokku ja vaatab, mis | |||
on kõige rohkem vastatud aeg ja valib selle | |||
- Aastaarvu otsimise põhimõte: | |||
otsingu jaoks vaja fraas ja url | |||
tõmbame urlilt htmli | |||
splitime htmli lauseteks punktide järgi | |||
võib visata välja ülipikki lauseid | |||
vaatame, kas lauses on etteantud fraas | |||
vaatame, kas samas lauses on aastaarv kujul | |||
1250 või 2004 vms (neli numbrit) või sajand | |||
kujul 12th või 20th vms. | |||
- NB! tingimata vaja M urli läbi käia ja leida | |||
lõpuks kõige rohkem esinenud aasta | |||
Redaktsioon: 10. november 2010, kell 14:45
siit leiad 2009 praktikumi arhiivi
Praktikumi eesmärk on mahuka rehkenduse paralleliseerimine, arendades vajaliku funktsionaalsuse esimeses praksis tehtud rakenduse külge.
Selleks pead realiseerima süsteemi, kus üks rakendus - tööde koordinaator - jagab mahuka ülesande tükid teistele rakendustele, viimased täidavad need tükid, raporteerivad tulemused kordinaatorile, kes omakorda väljastab lõpptulemuse.
Ülesanne, mida lahendada, on objektide (hoonete vms) ehitusaastate leidmine suurt hulka veebilehti läbi otsides ja enimleitud aasta väljaselgitamine.
Konkreetsemalt:
- koordinaatoril peab olema hulk URL-e, mille taga on harilikud veebilehed, mis tõenäoliselt (aga mitte tingimata kõik) sisaldavad infot ühe konkreetse objekti ehitusaasta kohta. Need URL-d võid võtta kas
- ise objekti googeldades (näiteks "Eiffel tower") ja tulemused käsitsi faili kirjutades, mille koordinaatorile ette annad
- või siis - parem variant - lastes koordinaatoril endal seda objekti googeldada, kasutades näiteks Google search API-t.
- koordinaatoril peab olema mingi hulk IP-sid ja porte, kust ta otsib töötavaid rakendusi, millele ülesandeid jagada:
- kas lihtsalt kontrollides etteantud IP/pordipaare (et kas seal on töötav rakendus)
- või - parem variant - tehes eraldi rekursiivse/iteratiivse otsingu, leidmaks juurde IP/pordipaare, kus on töötav rakendus
- koordinaator peab jagama ülesanded leitud töötajate vahel:
- kas jagades N urli M töötajate vahel enamvähem võrdsetes osades
- või - parem variant - jagades ülesanded väiksemate portsude kaupa, eeldades, et mõni töötaja saab varem valmis ja talle võiks anda järgmise portsu
- töötaja peab leidma võimalike aastaarvude loetelu koos esinemiskordadega:
- võtab tsüklis järgmise urli talle antud portsust, tõmbab endale urlil oleva teksti (misiganes formaadis)
- jaotab teksti punkide järgi "lauseteks" ja visates välja ülipikad "laused". Osa lauseid ilmselt ei ole inimkeelsed "normaalsed" laused, vaid on näiteks css või javascripti tekst vms: sellest pole midagi. Ülipikad "laused" lihtsalt on suure tõenäosusega mitte-inimkeelsed ja neid pole ilmselt mõtet arvestada.
- otsib välja kõik laused, kus on sees uuritava objekti nimi (näiteks "Eiffel tower") ja vaatab, kas selles lauses esineb aastaarv.
- aastaarvuna käsitleme mistahes neljakohalist numbrit, näiteks 2010 või 1234 või 1889.
- jätab meelde kõik selliselt leitud aastaarvud (st aastaarv lauses, kus oli objekti nimi) ja nende esinemiskordade arvu: võid nimelt leida hulga erinevaid arve, mõned lihtsalt on sagedamini esinevad.
- raporteerib leitud aastaarvude/esinemiskordade loendi tagasi koordinaatorile
- kui koordinaator on saanud raportid kõigilt töötajatelt, koostab ta omakorda koondnimekirja aastaarvude/esinemiskordadega ning trükin välja kõige enam leitud arvu kui tõenäolise vastuse, pluss huvi mõttes kogu nimekirja aastaarvudest/esinemiskordadest
- parem variant: kui mingi N sekundi jooksul kõigilt töötajatelt vastuseid ei saa (mõni läheb näiteks offline) siis trükkida ikkagi tulemus välja hetkeseisuga
- konkreetsem ülesanne on leida hoonete ehitamisaegu
veebist crawlides
- koordinaatoril on N urli
- jagab urlid laiali, igaühele M tk
- igaüks tõmbab urlilt lehe ja otsib kas leiab
mingil moel arusaadavalt ehituse aja
- koordinaator võtab ajad kokku ja vaatab, mis
on kõige rohkem vastatud aeg ja valib selle
- Aastaarvu otsimise põhimõte:
otsingu jaoks vaja fraas ja url
tõmbame urlilt htmli
splitime htmli lauseteks punktide järgi
võib visata välja ülipikki lauseid
vaatame, kas lauses on etteantud fraas
vaatame, kas samas lauses on aastaarv kujul
1250 või 2004 vms (neli numbrit) või sajand
kujul 12th või 20th vms.
- NB! tingimata vaja M urli läbi käia ja leida
lõpuks kõige rohkem esinenud aasta