Võrgurakendused II: erinevus redaktsioonide vahel

Allikas: Lambda
Mine navigeerimisribale Mine otsikasti
Resümee puudub
 
(ei näidata 2 kasutaja 127 vahepealset redaktsiooni)
5. rida: 5. rida:
</td>
</td>
<td>
<td>
Ainekood: ITV0120<br>
Ainekoodid: ITV0120 ja ITI0215<br>
Täielik nimi: Võrgurakendused II - hajussüsteemide tehnoloogia<br>
Aine nimed: Võrgurakendused II ja Hajussüsteemid<br>
Link:  http://www.lambda.ee/index.php/V%C3%B5rgurakendused_II<br>
Link:  http://www.lambda.ee/index.php/V%C3%B5rgurakendused_II<br>
Punkte: 5 EAP<br><br>
Punkte: 5 EAP<br><br>
Õppejõud: Tanel Tammet, Martin Verrev, Priit Järv<br>
Õppejõud: Tanel Tammet, Martin Verrev, Gert Kanter<br>
Kontakt: tanel.tammet@ttu.ee<br>
Kontakt: tanel.tammet@ttu.ee<br>
Olemas on ka [[itv0120 2016 |2016 aasta materjalide arhiiv]].
Olemas on ka [[itv0120 2017|2017 aasta materjalide arhiiv]].
</td>
</td>
</tr>
</tr>
</table>
</table>
<!--
== <font color="red">NB! 15 veebruari loengu algus veidi hilineb</font> ==


Rongi rikkimineku tõttu loengu algus veidi viibib (täpne aeg teadmata) aga ära ei jää.
= <font color="red">NB! See on 2019 aasta arhiiv, mitte hetkel kehtiv õppematerjal</font> =


--><!--
= <font color="red">Eksamitulemused</font> =
== <font color="red">Eksam</font> ==


Eksamiajad:
* kolmapäev, 06.01.2016 12:00, ruum SOC-311
* teisipäev, 19.01.2016 12:00, ruum SOC-212


Aega on kuni kolm tundi, tüüpiliselt peaks piisama ca pooleteisest tunnist.
Siin [[Võrgurakendused II koguseis 2019]] pärast teist eksamit, sh praktikumipunktid.


Eksamile registreeruma ei pea, välja arvatud tudengid, kes ei ole deklareerinud ainet sel semestril, vaid teevad uuesti mõnel varasemal aastal deklareeritud ainet (eeldusel, et deklaratsioon kehtib).
Viimane eksam toimub kolmapäeval, 12. juunil kell 17:00 ruumis U04-103 (sama, mis loenguruum)


Küsimused tulevad järgmiste teemade kohta, igaühe kohta üks/kaks.
Siin [[Võrgurakendused II esimene eksam 2019]] <b>parandatud</b> tulemused. Praktikumipunkte lisatud ei ole.


Keerulisemad teemad all boldis:
= Eksam =


* Protokollid: json,xml-rpc,soap (ilma uddi ja wsdlta),protocol buffers.
Kolmapäevadel kell 17:00
* P2P: Napster, Gnutella, Kazaa/skype, <b>DHT (ntx Chord), Bittorrent</b>.
* <b>Transaktsioonid ja lukustamine</b> paralleelprotsesside jaoks: baseerudes Priit Järve materjalidele allpool peatükkides paralleelrehkendused 1. ja 2. osa.
* Andmelaod ja andmekogude integreerimine Kalle Tominga loengumaterjalide põhjal: hetkel toimetamisel, ilmuvad lähiajal.


Vastustena oodatakse enamikel küsimustel mikro-esseesid näidete ja selgitustega.
* 22 Mai 17:00 ruumis U04-103 (sama, mis loenguruum)
* 29 Mai 17:00 ruumis U04-103 (sama, mis loenguruum)
* 12 Juuni 17:00 ruumis U04-103 (sama, mis loenguruum)


Eksamil ei tule küsimusi nendel kursuse jooksul käsitletud teemadel: andme-apid, pilvekeskkonnad, mapreduce, hajutatud failisüsteemid, autentimine, X-tee, riigi it-süsteemid, apache konfimine, serdid ja autentimine.
Eksam on kirjalik, materjale kasutada ei või.
-->


Siin on [[võrgurakendused II eksamiteemad ja materjalid]].


<!--
Aega 2.5 tundi, tõenäoliselt saab valmis 1.5 tunniga.


== <font color="red">Praktikumiaja muutus veel lahtine</font> ==


Õppeosakonnale paistis, et osadel tudengitel paistab võimaliku alternatiivse praksiaja - teisipäeval kell 12 enne loengut - aja olema muu loeng ja aeg ei sobi. Samas, kuna meil on valikaine, siis võibolla aeg ikkagi sobib kõigile, kes tegelikult võrgurakendused II deklareerivad.
<font color="red">NB!</font> 17 mail - reedel - on toimub täiendav (viimane) praktikumiaeg: kell 8:00 hommikul ruumis ICT 401.


Palun seega kõigil, kellel teisipäeval kell 12 muu loeng ja võrgurakendused II praksi sinna nihutamine ei sobi, anda mulle emailiga ASAP sellest teada.
<!--
= <font color="red">NB! Järgmine loeg 8. mail!</font> =


Õppeosakond otsib praegu alternatiivseid variante praksiaja nihutamiseks.
24. aprilli ja 1. mai loengud jäävad ära (õppejõud reisil, riigipüha): nende asemel teeme kursuse lõpus lisapraksiajad.
 
-->
See nädal teeme praksi veel esialgselt planeeritud ajal, kolmapäeval 08:00-09:30  arvutiklassis ICT-501.
<!--
 
= Loeng Martin Verrevilt =
* teisip 12: ca 5le inimisele ei sobi
* kolmap 14: ca 10le inimesele ei sobi


13. veebruari loengu annab Martin Verrev: teemaks P2P jätk, alustades bittorrentiga.
-->
-->


== Aeg, koht ==
= Aeg, koht =


Semester: kevad<br>
Semester: kevad<br>
Tulemus: eksam<br>
Tulemus: eksam<br>
Hindamise meetod: praktikumide tulemused (pool) pluss eksam (teine pool)<br>
Hindamise meetod: praktikumide tulemused (pool) pluss eksam (teine pool)<br>
Loeng: neljapäeval 10:00-11:30 ruumis U05-103<br>
Loeng:  
Praktikum: reedel kell 10:00-11:30 ruumides ICT 121 ja ICT 122
* kolmapäeval 17:45 - 19:15 ruumis U04-103
Praktikum:  
* neljapäeval kell 8:00 - 9:30 ühiselt ruumides ICT 121 ja ICT 122
* regulaarset neljapäevast magistrite praktikumi kell 12:00 - 13:30 ei toimu, kuid kord kuus viime ka sel ajal praktikumi läbi: info, et millal toimub, ilmub eelnevalt siia lehele.
* magistritele toimub lisaks praktikumi-konsultatsioon iganädalaselt kell 17:15 - 17:45, ehk pool tundi enne loengut ruumis U04-103. Kui oled millegagi hätta jäänud, tule ja saad abi.


== Praktilised tööd ja tähtajad ==
= Praktilised tööd ja tähtajad =


Kokku on töid 2. Kumbki praktikum täismahus tehtuna annab 25 punkti, sellele võivad lisanduda ekstrapunktid. Puudulikult tehtud töö punktiarv jääb alla 25 punkti. Hilinenud kodutöö eest saab pooled muidu saadaolevad punktid.
Kokku on töid 2. Kumbki praktikum täismahus tehtuna annab 25 punkti, sellele võivad lisanduda ekstrapunktid. Puudulikult tehtud töö punktiarv jääb alla 25 punkti. Hilinenud kodutöö eest saab pooled muidu saadaolevad punktid.


* [[Vorgurakendused 2 prax 1 2018 kevad | 1 praks on P2P rakendus]]: kas distributed ledgeri komponent või anonümiseeriv võrk.  Tähtaeg 23 märts. Grupitöö 1-3 inimest.  
* [[Vorgurakendused 2 prax 1 2019 kevad| 1 praks on P2P rakendus]]: kas distributed ledgeri komponent või anonümiseeriv võrk.  Tähtaeg 21 märts. Grupitöö 1-3 inimest.  
* [[Vorgurakendused 2 prax 2 2018 kevad | 2 praks]]: kas terve distributed ledger või autentimis-veebirakendus. Tähtaeg 11. mai. Grupitöö 1-3 inimest.
* [[Vorgurakendused 2 prax 2 2019 kevad | 2 praks]]: Grupitöö 1-3 inimest. Tähtaeg mai keskpaik, enne auditoorse töö lõppu, 16 mai hommikul. Magistrandid saavad erandina esitada teist praktikumi ka 22 Mai ja 29 Mai eksamite eel, kell 16:00 enne eksamit eksamiruumis või selle ees (kui eksamiruum on sellal hõivatud).


== Loengukava ==
= Hindamine =


Kursus jaguneb laias laastus neljaks teemaks:  
Hindamine: praktikumid annavad kokku 50% kogupunktidest ning eksam teise 50%. Kursuse edukaks sooritamiseks on sul vaja:
 
* saada arvestatud mõlemid praktikumid
* teha eksam tasemel vähemalt 1/3 eksami kogupunktidest.
* saada praktikumid+eksam kokku vähemalt 50 punkti.
 
NB! Eksamile võtta kaasa pildiga dokument.
 
= Loengukava =
 
Kursus jaguneb laias laastus viieks teemaks:  


* Protokollid ja P2P (neil teemadel - pluss veidi andme-apidest- esimene praks),  
* Protokollid ja P2P (neil teemadel - pluss veidi andme-apidest- esimene praks),  
* Distributed ledger ehk bitcoini alustehnoloogia
* Distributed ledger ehk bitcoini alustehnoloogia
* X-tee ja riigi IT-korraldus
* Andme-apid, autentimine, pilvekeskkonnad, andmete hajutamine ja hajutatud andmete koondamine.
* Paralleelrehkendused  
* Paralleelrehkendused  
* Andme-apid, autentimine, pilvekeskkonnad, andmete hajutamine ja hajutatud andmete koondamine.


Päris hea õpiku saad tasuta alla laadida [https://www.distributed-systems.net/index.php/books/distributed-systems-3rd-edition-2017/ siit]. Meie kursuse sisu on sellest õpikust küllalt erinev, samas on ka ühisosi.
Päris hea õpiku saad tasuta alla laadida [https://www.distributed-systems.net/index.php/books/distributed-systems-3rd-edition-2017/ siit]. Meie kursuse sisu on sellest õpikust küllalt erinev, samas on ka ühisosi.
96. rida: 103. rida:
:http://www.stanford.edu/class/cs244b/
:http://www.stanford.edu/class/cs244b/


=== Protokollid ja P2P ===
== Protokollid ja P2P ==


==== Protokollid ====
=== Protokollid ===


<!-- :[[Media:Protocols.ppt|Loengu raampresentatsioon]] -->
<!-- :[[Media:Protocols.ppt|Loengu raampresentatsioon]] -->
:<b>Http ja json</b>: [[võrgurakenduste protokollid 1]]
:<b>Kohustuslikud osad lugeda</b>:
 
:Http ja json: [[võrgurakenduste protokollid 1]]
:xml protokollid xml-rpc, soap ja seotud tehnoloogiad: [[võrgurakenduste protokollid 2]]
:REST ja binary protokollid: [[võrgurakenduste protokollid 3]]
 
:<b>Täiendavalt soovitav lugeda</b>:


:Xml põhised protokollid, REST ja binaarsed protokollid
:<b>xml protokollid xml-rpc, soap ja seotud tehnoloogiad</b>: [[võrgurakenduste protokollid 2]]
:Probleemidest: [[veebiteenuste võlu ja valu]] ja [http://harmful.cat-v.org/software/xml/soap/simple s stands for simple]
:Probleemidest: [[veebiteenuste võlu ja valu]] ja [http://harmful.cat-v.org/software/xml/soap/simple s stands for simple]
:<b>REST, binary protokollid, XMPP</b>: [[võrgurakenduste protokollid 3]]
:[http://gafferongames.com/networking-for-game-programmers/udp-vs-tcp/ Gaffer on games: UDP vs TCP] ja [http://gafferongames.com/2015/09/12/is-it-just-me-or-is-networking-really-hard/ selle jätk]
:[http://gafferongames.com/networking-for-game-programmers/udp-vs-tcp/ Gaffer on games: UDP vs TCP] ja [http://gafferongames.com/2015/09/12/is-it-just-me-or-is-networking-really-hard/ selle jätk]
:Veidi seotud asi [https://en.wikipedia.org/wiki/Wireless_ad_hoc_network ad hoc networks] vt ka  <!--[http://www.eliko.ee/smart-streetlight-control-system-3/ ELIKO valgustussüsteemid] DEAD ja --> [http://www.freepatentsonline.com/8966046.html Defendeci ja Jürgo Predeni patent]
:Veidi seotud asi [https://en.wikipedia.org/wiki/Wireless_ad_hoc_network ad hoc networks] vt ka  <!--[http://www.eliko.ee/smart-streetlight-control-system-3/ ELIKO valgustussüsteemid] DEAD ja --> [http://www.freepatentsonline.com/8966046.html Defendeci ja Jürgo Predeni patent]


====  P2P sissejuhatus ====
===  P2P sissejuhatus ===


:<b>Kohustuslikud osad lugeda</b>:


:[http://en.wikipedia.org/wiki/Peer-to-peer vikipeedia ülevaade]
:[http://en.wikipedia.org/wiki/Peer-to-peer vikipeedia ülevaade]
118. rida: 129. rida:
<!-- :[http://www.it.lut.fi/comlab/ssotc/ssotc08/presentations/Lappeenranta_summer_school_Jukka_K_Nurminen.ppt alternatiivne ülevaatepresentatsioon] -->
<!-- :[http://www.it.lut.fi/comlab/ssotc/ssotc08/presentations/Lappeenranta_summer_school_Jukka_K_Nurminen.ppt alternatiivne ülevaatepresentatsioon] -->
<!-- :[http://www14.in.tum.de/personen/schmiste/dynamo08.ppt hea detailne ülevaade eri P2P tehnoloogiatest] -->
<!-- :[http://www14.in.tum.de/personen/schmiste/dynamo08.ppt hea detailne ülevaade eri P2P tehnoloogiatest] -->
: [[Media:P2p_overview.ppt|ülevaade eri P2P tehnoloogiatest]]
: loengumaterjal: [[Media:P2p_overview.ppt|pikem ülevaade eri P2P tehnoloogiatest]]


====  P2P DHT (distributed hash tables) ja bittorrent ====
===  P2P DHT (distributed hash tables) ja bittorrent ===


:[http://en.wikipedia.org/wiki/Distributed_hash_table ülevaade wikipedias]
:[http://en.wikipedia.org/wiki/Distributed_hash_table ülevaade wikipedias]
136. rida: 147. rida:
:[http://en.wikipedia.org/wiki/Tor_%28anonymity_network%29 TOR wikipedias]
:[http://en.wikipedia.org/wiki/Tor_%28anonymity_network%29 TOR wikipedias]


=== Distributed ledger, ajatemplid ja bitcoin ===
== Distributed ledger, ajatemplid ja bitcoin ==


Soovitav on lugeda neid materjale algusest: põhiasjad on esimestes, ning mida kaugemale edasi, seda detailsemad/spetsiifilisemad materjalid tulevad.
Soovitav on lugeda neid materjale algusest: põhiasjad on esimestes, ning mida kaugemale edasi, seda detailsemad/spetsiifilisemad materjalid tulevad.


==== Kriitiline taust järgneva mõistmiseks ====
=== Kriitiline taust järgneva mõistmiseks ===


* https://en.wikipedia.org/wiki/Cryptographic_hash_function : ühtlaselt jaotuv hash, nii et kui püüad leida stringi S, et hash(S)=teadaolev_hash, siis parim viis S leidmiseks on lihtsalt random S-de katsetamine. Praktikas kasutatakse enamasti SHA2 hash algoritmi.
* https://en.wikipedia.org/wiki/Cryptographic_hash_function : ühtlaselt jaotuv hash, nii et kui püüad leida stringi S, et hash(S)=teadaolev_hash, siis parim viis S leidmiseks on lihtsalt random S-de katsetamine. Bitcoin kasutab [https://en.wikipedia.org/wiki/SHA-2 SHA2] hash algoritmi varianti, mis annab tulemuseks 256 bitise (ehk 32 baiti) väärtuse.
* https://en.wikipedia.org/wiki/Merkle_tree : kirjete sidumine hashide puuna (veidi keerukam/efektiivsem, kui lihtne hashiahel. Mis on hashiahel: kui tahad siduda kirjeid K1, K2, K3, siis salvestad K1+hash(K1), K2+hash(K2+eelmise hash (ehk K1+hash(K1)),  K3+hash(K3+eelmise hash(ehk hash(K2+eelmise hash (ehk K1+hash(K1)))), jne
* https://en.wikipedia.org/wiki/Merkle_tree : kirjete sidumine hashide puuna (veidi keerukam/efektiivsem, kui lihtne hashiahel). Mis on hashiahel: kui tahad siduda kirjeid K1, K2, K3, siis salvestad [K1,hash(K1)], [K2,hash(K2+eelmise hash (ehk hash(K1)))],  [K3,hash(K3+eelmise hash(ehk hash(K2+hash(K1))))], jne, kus hashi-osa node N jaoks on üldiselt hash(KN+(KN-1 hashi-osa)) ehk hash(KN+hash(KN-1+hash(KN-2+hash(KN-3+...) ...)
* https://en.wikipedia.org/wiki/Proof-of-work_system : arvuti sundimine mõttetut tööd tegema, et raskendada spammimist. Levinud meetod on nõuda, et hashi alguses oleks N nulli (mida suurem N, seda raskem leida). Selleks tuleb sul hash(S) asemel katsetada läbi palju hash(S+nonce) arvutusi, kus nonce on random string, kuni juhtumisi saad N nulliga algava hashi.
* https://en.wikipedia.org/wiki/Proof-of-work_system : arvuti sundimine mõttetut tööd tegema, et raskendada spammimist. Levinud meetod on nõuda, et hashi alguses oleks N nulli (mida suurem N, seda raskem leida). Selleks tuleb sul hash(S) asemel katsetada läbi palju hash(S+nonce) arvutusi, kus nonce on random string, kuni juhtumisi saad N nulliga algava hashi.
* https://en.wikipedia.org/wiki/Blockchain : lihtsalt ülevaade kogu teemast
* https://en.wikipedia.org/wiki/Blockchain : lihtsalt ülevaade kogu teemast
* [https://anders.com/blockchain/ Eelmiste asjade demo]: vajuta üleval "Hash", "Block", "Blockchain" linkidele ja proovi igal lehel ise datat muuta ja "Mine" nupule vajutada. "Mine" teeb proof-of-worki ehk otsib random stringi (nonce) mille lisamisel datale saame mitme nulliga algava hashi.
* [https://anders.com/blockchain/ Eelmiste asjade demo]: vajuta üleval "Hash", "Block", "Blockchain" linkidele ja proovi igal lehel ise datat muuta ja "Mine" nupule vajutada. "Mine" teeb proof-of-worki ehk otsib random stringi (nonce) mille lisamisel datale saame mitme nulliga algava hashi.


==== Kasulik taust laiema pildi jaoks ====
=== Kasulik taust laiema pildi jaoks ===


* Konsensus hajutatud süsteemides: [http://www.di.univaq.it/~proietti/slide_algdist2010/5-Consensus.ppt hea presentatsioon põhjalikumaks arusaamiseks] ([http://lamport.azurewebsites.net/pubs/byz.pdf siin on] klassikaline Bütsantsi kindralite probleemi artikkel, mis on suht keeruline)
* Konsensus hajutatud süsteemides: [http://www.di.univaq.it/~proietti/slide_algdist2010/5-Consensus.ppt hea presentatsioon põhjalikumaks arusaamiseks] ([http://lamport.azurewebsites.net/pubs/byz.pdf siin on] klassikaline Bütsantsi kindralite probleemi artikkel, mis on suht keeruline)
154. rida: 165. rida:
* RIA tellitud ja küberi koostatud [https://www.ria.ee/public/RIA/kruptograafiliste_algoritmide_elutsukli_uuring_2017.pdf eestikeelsest uuringust] lugeda alates lk 15 ptk "Plokiahelad"
* RIA tellitud ja küberi koostatud [https://www.ria.ee/public/RIA/kruptograafiliste_algoritmide_elutsukli_uuring_2017.pdf eestikeelsest uuringust] lugeda alates lk 15 ptk "Plokiahelad"


==== Best intro for reading ====
=== Best intro for reading ===


* https://bitsonblocks.net/2015/09/01/a-gentle-introduction-to-bitcoin/
* https://bitsonblocks.net/2015/09/01/a-gentle-introduction-to-bitcoin/
160. rida: 171. rida:
* https://bitsonblocks.net/2015/09/21/a-gentle-introduction-to-bitcoin-mining/
* https://bitsonblocks.net/2015/09/21/a-gentle-introduction-to-bitcoin-mining/


==== Põhjalik õpik ====
=== Põhjalik õpik ===


* Lae alla  [https://d28rh4a8wq0iu5.cloudfront.net/bitcointech/readings/princeton_bitcoin_book.pdf hea tasuta õpik]
* Lae alla  [https://d28rh4a8wq0iu5.cloudfront.net/bitcointech/readings/princeton_bitcoin_book.pdf hea tasuta õpik]
* Kui eelmine link mingil põhjusel ei tööta, [http://bitcoinbook.cs.princeton.edu/ mine õpiku lehele ] (sealt leiad ka videoloengud) ja otsi sealt alapealkiri "Free pre-publication draft" mille all on link "... for download here".
* Kui eelmine link mingil põhjusel ei tööta, [http://bitcoinbook.cs.princeton.edu/ mine õpiku lehele ] (sealt leiad ka videoloengud) ja otsi sealt alapealkiri "Free pre-publication draft" mille all on link "... for download here".


==== Python examples with detailed explanations ====
=== Python examples with detailed explanations ===


It is enough to go through one or two of these:
It is enough to go through one or two of these:
182. rida: 193. rida:
** https://hackernoon.com/learn-blockchains-by-building-one-117428612f46
** https://hackernoon.com/learn-blockchains-by-building-one-117428612f46


==== More details and tutorials ====
=== More details and tutorials ===
 
Have a look at the actual bitcoin data, latest blocks and transactions:
 
* https://blockexplorer.com/


How does the P2P stuff work, i.e finding nodes:
How does the P2P stuff work, i.e finding nodes:
208. rida: 223. rida:
* https://crypto.stanford.edu/cs251/
* https://crypto.stanford.edu/cs251/


=== Paralleelrehkendused  ===
== X-tee ja e-riigi IT korraldus ==


==== Esimene osa ====


Näited:
=== X-tee  ===
:[[Java näide loengust]]
:[http://stackoverflow.com/a/16207592 Thread, Queue ja Lock] Pythonis
:C: alguses oli [http://www.csl.mtu.edu/cs4411.ck/www/NOTES/process/fork/create.html fork()], hea [https://computing.llnl.gov/tutorials/pthreads/ pthreads tutorial].


Loengunäide: TCP (HTTP) socket server
:[[x-tee märkmed loengust]]


Kuidas TCP server elementaarsel tasemel töötab (Java tutorialid): [http://javarevisited.blogspot.com.ee/2015/06/how-to-create-http-server-in-java-serversocket-example.html Socket serveri sissejuhatus], [http://www.javaworld.com/article/2853780/core-java/socket-programming-for-scalable-systems.html threadidega server].
Kasulikud lisamaterjalid:


Skaleeruvus praktikas: [http://merbist.com/2011/01/18/causality-of-scalability/ Causality of Scalability], [http://merbist.com/2011/01/31/designing-for-scalability/ Designing for Scalability].
:[https://www.x-tee.ee/docs/live/xroad/pr-mess_x-road_message_protocol.html x-tee protokolli spec]
<!--:Veebiserverid, nende sise-elu ja konf
:[https://cyber.ee/products/secure-data-exchange/ UXP]: AS Cybernetica eksport-kommertsversioon X-teest.
:ip/tcp, socketid, http jne
:Kaks screencasti UXP keskserveri konfimisest [https://vimeo.com/321936653 1] ja [https://vimeo.com/321936768 2]
<!--
:[https://www.ria.ee/public/publikatsioonid/x-road.jpg Big official picture of the state IT-architecture]
-->
:[[Media:Ahto_xtartu.ppt|Ahto Kalja detailne ülevaade X-tee projektist aastast 2004]]
:[https://www.ria.ee/ee/x-tee.html X-road official page] <!--and [https://www.ria.ee/index.php?query=X-tee a materials query] SAMA -->
:[http://x-road.ee/docs/est/turvaserveri_kasutusjuhend_14.04_lts.pdf X-road security server manual (detailed)]
<!--
:[http://apisuomi.fi/2014/07/soap-rest-json-and-x-road-x-tee/ X-tee from the Finnish perspective] and the [https://portal.educloudalliance.org/x-road-rest-gateway-development-initiated-github X-tee/Json gateway] and [http://www.hel.fi/palvelukarttaws/rest/ver2_en.html a nice REST api example from Finland]
-->
<!--
:[https://www.ria.ee/public/x_tee/X-Road_message_protocol_4.0.1.pdf newest X-road message protocol] and corresponding [https://www.ria.ee/public/x_tee/pr-meta_x-road_service_metadata_protocol_0.7_Y-743-14.pdf metainfo protocol]
-->
-->
<!-- :[[example algorithm for xml serialization of Python data|Example: X-road oriented Soap call tool for Python]] -->
:[http://research.cyber.ee/~jan/publ/xroadares07final.pdf Paper by Ansper and Willemson]


===  Riigi IT-infrastruktuuri korraldus ===


==== Lukustamine, andmebaasid jms ====
:[[Riigi IT korralduse märkmeid loengust]]


:Paralleelsus andmebaasides: [[Media:na2_ccdb_slides.pdf|slaidid]].
Kasulikud lisamaterjalid:
Lisaks võib lugeda:
:[[Media:na2_ccdb.pdf|Konspekt]], käsitleb teemat oluliselt põhjalikumalt kui loeng/slaidid
:[[Media:11-transactions.pdf|Introduction to Transactions (slaidid)]]


:Sünkroniseerimisprimitiivid: [[Media:na2_sync_slides.pdf|slaidid]]
:[https://riha.eesti.ee/ RIHA] ja [https://www.ria.ee/ee/riha.html jutud RIHA kohta]
 
Mittekohustuslik lisalugemine:
:[[Media:na2_sync.pdf|Konspekt]] pikemalt ja põhjalikumalt loengus läbitud teemadest.
:[[Media:Locking_v2.ppt|T.Tammeti slaidid]]
 
 
==== Paralleliseerimise automatiseerimine ja klastrid ====
 
:[https://en.wikipedia.org/wiki/MapReduce Mapreduce framework]
<!--:[http://www.google.com/url?sa=t&source=web&cd=2&ved=0CBkQxQEwAQ&url=http%3A%2F%2Fdocs.google.com%2Fviewer%3Fa%3Dv%26q%3Dcache%3AziVIMWHr2GsJ%3Anet.pku.edu.cn%2F~course%2Fcs501%2F2008%2Fresource%2Fmapreduce_in_a_week%2Fllm3-mapreduce.ppt%2Bgoogle%2Bmapreduce%2Btheory%2Band%2Bimplementation%2BChristophe%2BBisciglia%2C%2BAaron%2BKimball%2Bllm3%26hl%3Den%26pid%3Dbl%26srcid%3DADGEESiMwU-9htEZEAthU5bRtGGBQgkzwUf5vM549R-6QBooeBv10FFd-GLvrklDHx-RhI3OehhNio1E7m5GvwKyKK9ndM6oNbDO3LERl8M8YSZ5tdO4bRQ3PEs8sQ6_sdJVIF_Splx7%26sig%3DAHIEtbQVGyhnhEx0aTA0W7okwP8KdVqG1w&rct=j&q=google%20mapreduce%20theory%20and%20implementation%20Christophe%20Bisciglia%2C%20Aaron%20Kimball%20llm3&ei=plH_TPWOI4ay8gPVss2MCw&usg=AFQjCNE9y0GiXVo_hNWPmywfUjt_3ZhQqg&cad=rja Mapreduce sissejuhatus] -->
:[[Mapreduce katsetused Azure platvormil]]
:Mapreduce [http://research.google.com/archive/mapreduce.html klassikaline põhiartikkel]
:memcached
:[http://www.majordojo.com/2007/03/memcached-howto.php memcached ülevaade]


=== Andme-apid, autentimine, pilveteenused, andmete koondamine jms ===
== Andme-apid, autentimine, pilveteenused, andmete koondamine jms ==


====  Suured avalikud andme-apid ====
=== Erinevad API-stiilid ===


: [[Andme-apide märkmed loengust]]
* [https://en.wikipedia.org/wiki/Representational_state_transfer rest wikipedias] ja [http://www.restapitutorial.com/ rest tutorial (vt linke all!)]
: Read an OK short book [http://apigee.com/about/resources/ebooks/web-api-design on web api design]
* [http://www.odata.org/ odata.org: microsoft/oasis recommendations for rest style]
: Check out [http://www.odata.org/ odata.org]
* [https://docs-apis.apigee.io/files/Web-design-the-missing-link-ebook-2016-11.pdf api design book download] or [https://pages.apigee.com/eBook-Web-API-Design-The-Missing-Link-reg.html?int_source=resources-main&int_medium=website&int_campaign=ebook&int_content=web-api-design-missing-link api design book (must register)]
* [https://graphql.org/ Graphql start] and [https://blog.pusher.com/rest-versus-graphql/ graphql vs rest] and [https://medium.com/codingthesmartway-com-blog/rest-vs-graphql-418eac2e3083 similar take on rest vs graphql] and [https://blog.graph.cool/how-to-wrap-a-rest-api-with-graphql-8bf3fb17547d wrap rest in graphql]


====  X-tee, RIHA ja riigi IT-infrastruktuur ====
===  Suured avalikud andme-apid ===


:[https://www.ria.ee/public/publikatsioonid/x-road.jpg Big official picture of the state IT-architecture]
: [https://market.mashape.com/ API-de kogu uurimiseks]
 
: [https://en.wikipedia.org/wiki/List_of_open_APIs list of open apis from wikipedia]
:[[Media:Ahto_xtartu.ppt|Ahto Kalja detailne ülevaade X-tee projektist aastast 2004]]
: [https://developers.google.com/apis-explorer/#p/ google api explorer]
:[https://www.ria.ee/ee/x-tee.html X-road official page] <!--and [https://www.ria.ee/index.php?query=X-tee a materials query] SAMA -->
: [[Andme-apide märkmed loengust|Andme-apide näiteid]]
:[http://x-road.ee/docs/est/turvaserveri_kasutusjuhend_14.04_lts.pdf X-road security server manual (detailed)]
: [https://techcrunch.com/2018/04/04/facebook-instagram-api-shut-down/ facebook api limitations/shutdowns in 2018]
:[http://apisuomi.fi/2014/07/soap-rest-json-and-x-road-x-tee/ X-tee from the Finnish perspective] and the [https://portal.educloudalliance.org/x-road-rest-gateway-development-initiated-github X-tee/Json gateway] and [http://www.hel.fi/palvelukarttaws/rest/ver2_en.html a nice REST api example from Finland]
:[https://www.ria.ee/public/x_tee/X-Road_message_protocol_4.0.1.pdf newest X-road message protocol] and corresponding [https://www.ria.ee/public/x_tee/pr-meta_x-road_service_metadata_protocol_0.7_Y-743-14.pdf metainfo protocol]
:[[example algorithm for xml serialization of Python data|Example: X-road oriented Soap call tool for Python]]
:[https://riha.eesti.ee/ RIHA] ja [https://www.ria.ee/ee/riha.html jutud RIHA kohta]


====  Autentimine ====
===  Autentimine ===


: facebook, google, pangalink.
: facebook, google, pangalink.
278. rida: 283. rida:
:[http://eid.eesti.ee/index.php/EID_rakendusjuhend#Tehnoloogilised_detailid_ja_taustinfo taustaks id-kaardi kasutusstsenaariumid]
:[http://eid.eesti.ee/index.php/EID_rakendusjuhend#Tehnoloogilised_detailid_ja_taustinfo taustaks id-kaardi kasutusstsenaariumid]


[[Autentimise märkmed: mobiil-ID]]
:[[Autentimise märkmed: mobiil-ID]]


==== Pilvekeskkonnad  ====
=== Pilvekeskkonnad  ===


[https://support.rackspace.com/white-paper/understanding-the-cloud-computing-stack-saas-paas-iaas/ Understanding cloud computing]
[https://support.rackspace.com/white-paper/understanding-the-cloud-computing-stack-saas-paas-iaas/ Understanding cloud computing]
298. rida: 303. rida:
[[Azure märkmed]]
[[Azure märkmed]]


==== Google appengine, database api, google bigtable and file system stack ====
=== Google appengine, database api, google bigtable and file system stack ===


http://cloud.google.com/appengine/ AppEngine on nüüd osa Google Cloud platvormist
http://cloud.google.com/appengine/ AppEngine on nüüd osa Google Cloud platvormist
304. rida: 309. rida:
[[Hajutatud failisüsteemide märkmed loengust]]
[[Hajutatud failisüsteemide märkmed loengust]]


== Lisamaterjalid ==
== Paralleelrehkendused  ==


=== Esimene osa ===






=== Hajutatud andmekogude integreerimine ===
Näited:
<!-- :[[Java näide loengust]] -->
 
:C: alguses oli [http://www.csl.mtu.edu/cs4411.ck/www/NOTES/process/fork/create.html  fork()], hea [https://computing.llnl.gov/tutorials/pthreads/ pthreads tutorial].
:[http://stackoverflow.com/a/16207592 Thread, Queue ja Lock] Pythonis
 
Presentatsioonid lugemiseks:
 
* [[Media:Locking_v2.ppt|lukustamine]]
* [[Media:na2_ccdb_slides.pdf|Paralleelsus andmebaasides]].
 
<!--
Loengunäide: TCP (HTTP) socket server
 
Kuidas TCP server elementaarsel tasemel töötab (Java tutorialid): [http://javarevisited.blogspot.com.ee/2015/06/how-to-create-http-server-in-java-serversocket-example.html Socket serveri sissejuhatus], [http://www.javaworld.com/article/2853780/core-java/socket-programming-for-scalable-systems.html threadidega server].
-->
<!--
Skaleeruvus praktikas: [http://merbist.com/2011/01/18/causality-of-scalability/ Causality of Scalability], [http://merbist.com/2011/01/31/designing-for-scalability/ Designing for Scalability].
-->
<!--:Veebiserverid, nende sise-elu ja konf
:ip/tcp, socketid, http jne
-->
 
=== Lukustamine, andmebaasid jms ===
 
Lisaks võib lugeda:
:[[Media:na2_ccdb.pdf|Konspekt]], käsitleb teemat oluliselt põhjalikumalt kui loeng/slaidid
:[[Media:11-transactions.pdf|Introduction to Transactions (slaidid)]]
 
:Sünkroniseerimisprimitiivid: [[Media:na2_sync_slides.pdf|slaidid]]
 
Mittekohustuslik lisalugemine:
:[[Media:na2_sync.pdf|Konspekt]] pikemalt ja põhjalikumalt loengus läbitud teemadest.
 
 
 
=== Paralleliseerimise automatiseerimine ja klastrid ===
 
:[https://en.wikipedia.org/wiki/MapReduce Mapreduce framework]
<!--:[http://www.google.com/url?sa=t&source=web&cd=2&ved=0CBkQxQEwAQ&url=http%3A%2F%2Fdocs.google.com%2Fviewer%3Fa%3Dv%26q%3Dcache%3AziVIMWHr2GsJ%3Anet.pku.edu.cn%2F~course%2Fcs501%2F2008%2Fresource%2Fmapreduce_in_a_week%2Fllm3-mapreduce.ppt%2Bgoogle%2Bmapreduce%2Btheory%2Band%2Bimplementation%2BChristophe%2BBisciglia%2C%2BAaron%2BKimball%2Bllm3%26hl%3Den%26pid%3Dbl%26srcid%3DADGEESiMwU-9htEZEAthU5bRtGGBQgkzwUf5vM549R-6QBooeBv10FFd-GLvrklDHx-RhI3OehhNio1E7m5GvwKyKK9ndM6oNbDO3LERl8M8YSZ5tdO4bRQ3PEs8sQ6_sdJVIF_Splx7%26sig%3DAHIEtbQVGyhnhEx0aTA0W7okwP8KdVqG1w&rct=j&q=google%20mapreduce%20theory%20and%20implementation%20Christophe%20Bisciglia%2C%20Aaron%20Kimball%20llm3&ei=plH_TPWOI4ay8gPVss2MCw&usg=AFQjCNE9y0GiXVo_hNWPmywfUjt_3ZhQqg&cad=rja Mapreduce sissejuhatus] -->
:[[Mapreduce katsetused Azure platvormil]]
:Mapreduce [http://research.google.com/archive/mapreduce.html klassikaline põhiartikkel]
:memcached
:[http://www.majordojo.com/2007/03/memcached-howto.php memcached ülevaade]
 
 
=== Hajutatud andmekogud ===
 
 
 
Integreerimine:
 
:[[Integreerimise lühimärkmed]]
:[http://research.cs.wisc.edu/dibook/slides/Chapter_10.ppt data warehousing]
 
Hajutamine:
 
:[[Hajutamise lühimärkmed]]
:[https://memcached.org/ memcached]
:[http://momjian.us/main/writings/pgsql/replication.pdf Postgres replication intro]
:[http://wiki.postgresql.org/wiki/Replication,_Clustering,_and_Connection_Pooling Postgres clustering and replication]
 
Konsensus:
 
: [https://en.wikipedia.org/wiki/Paxos_(computer_science) Paxos algoritm] ja [https://understandingpaxos.wordpress.com/ veel Paxos] ja [https://github.com/dgryski/awesome-consensus väga palju Paxost ja sõpru]
: [https://en.wikipedia.org/wiki/Proof-of-work_system bitcoinist tuttav proof-of-work]
 
Hulk teemasid põhjalikult:
 
:[http://christophermeiklejohn.com/distributed/systems/2013/07/12/readings-in-distributed-systems.html readings in distributed databases]
:[http://codex.cs.yale.edu/avi/db-book/db6/slide-dir/PPT-dir/ch19.ppt Chapter for db system concepts book]
 
Detailsed lisamaterjalid:


: [http://momjian.us/main/writings/pgsql/replication.pdf Postgres replication intro]
: [http://wiki.postgresql.org/wiki/Replication,_Clustering,_and_Connection_Pooling Postgres clustering and replication]
: [http://www.postgresql.org/docs/current/interactive/high-availability.html Postgres high availability]
: [http://www.postgresql.org/docs/current/interactive/high-availability.html Postgres high availability]
: [http://goanna.cs.rmit.edu.au/~e76763/tiger_ref/lkmt10-dnis.pdf Integrating distributed sem web data]
<!-- : [http://goanna.cs.rmit.edu.au/~e76763/tiger_ref/lkmt10-dnis.pdf Integrating distributed sem web data] -->
: [http://docs.oracle.com/cd/B28359_01/server.111/b28318/integrat.htm Oracle information integration]
: [http://docs.oracle.com/cd/B28359_01/server.111/b28318/integrat.htm Oracle information integration]


322. rida: 398. rida:
* [[võrgurakendused 2: täiendavad lingid]]
* [[võrgurakendused 2: täiendavad lingid]]
* [[Sehke speci draft]]
* [[Sehke speci draft]]
* [[lnotes2]]
<!--* [[katse]] -->
<!--* [[katse]] -->


[[Category:Kursus]]
[[Category:Kursus]]

Viimane redaktsioon: 29. jaanuar 2020, kell 15:41

revolutsioon
revolutsioon

Ainekoodid: ITV0120 ja ITI0215
Aine nimed: Võrgurakendused II ja Hajussüsteemid
Link: http://www.lambda.ee/index.php/V%C3%B5rgurakendused_II
Punkte: 5 EAP

Õppejõud: Tanel Tammet, Martin Verrev, Gert Kanter
Kontakt: tanel.tammet@ttu.ee
Olemas on ka 2017 aasta materjalide arhiiv.

NB! See on 2019 aasta arhiiv, mitte hetkel kehtiv õppematerjal

Eksamitulemused

Siin Võrgurakendused II koguseis 2019 pärast teist eksamit, sh praktikumipunktid.

Viimane eksam toimub kolmapäeval, 12. juunil kell 17:00 ruumis U04-103 (sama, mis loenguruum)

Siin Võrgurakendused II esimene eksam 2019 parandatud tulemused. Praktikumipunkte lisatud ei ole.

Eksam

Kolmapäevadel kell 17:00

  • 22 Mai 17:00 ruumis U04-103 (sama, mis loenguruum)
  • 29 Mai 17:00 ruumis U04-103 (sama, mis loenguruum)
  • 12 Juuni 17:00 ruumis U04-103 (sama, mis loenguruum)

Eksam on kirjalik, materjale kasutada ei või.

Siin on võrgurakendused II eksamiteemad ja materjalid.

Aega 2.5 tundi, tõenäoliselt saab valmis 1.5 tunniga.


NB! 17 mail - reedel - on toimub täiendav (viimane) praktikumiaeg: kell 8:00 hommikul ruumis ICT 401.


Aeg, koht

Semester: kevad
Tulemus: eksam
Hindamise meetod: praktikumide tulemused (pool) pluss eksam (teine pool)
Loeng:

  • kolmapäeval 17:45 - 19:15 ruumis U04-103

Praktikum:

  • neljapäeval kell 8:00 - 9:30 ühiselt ruumides ICT 121 ja ICT 122
  • regulaarset neljapäevast magistrite praktikumi kell 12:00 - 13:30 ei toimu, kuid kord kuus viime ka sel ajal praktikumi läbi: info, et millal toimub, ilmub eelnevalt siia lehele.
  • magistritele toimub lisaks praktikumi-konsultatsioon iganädalaselt kell 17:15 - 17:45, ehk pool tundi enne loengut ruumis U04-103. Kui oled millegagi hätta jäänud, tule ja saad abi.

Praktilised tööd ja tähtajad

Kokku on töid 2. Kumbki praktikum täismahus tehtuna annab 25 punkti, sellele võivad lisanduda ekstrapunktid. Puudulikult tehtud töö punktiarv jääb alla 25 punkti. Hilinenud kodutöö eest saab pooled muidu saadaolevad punktid.

  • 1 praks on P2P rakendus: kas distributed ledgeri komponent või anonümiseeriv võrk. Tähtaeg 21 märts. Grupitöö 1-3 inimest.
  • 2 praks: Grupitöö 1-3 inimest. Tähtaeg mai keskpaik, enne auditoorse töö lõppu, 16 mai hommikul. Magistrandid saavad erandina esitada teist praktikumi ka 22 Mai ja 29 Mai eksamite eel, kell 16:00 enne eksamit eksamiruumis või selle ees (kui eksamiruum on sellal hõivatud).

Hindamine

Hindamine: praktikumid annavad kokku 50% kogupunktidest ning eksam teise 50%. Kursuse edukaks sooritamiseks on sul vaja:

  • saada arvestatud mõlemid praktikumid
  • teha eksam tasemel vähemalt 1/3 eksami kogupunktidest.
  • saada praktikumid+eksam kokku vähemalt 50 punkti.

NB! Eksamile võtta kaasa pildiga dokument.

Loengukava

Kursus jaguneb laias laastus viieks teemaks:

  • Protokollid ja P2P (neil teemadel - pluss veidi andme-apidest- esimene praks),
  • Distributed ledger ehk bitcoini alustehnoloogia
  • X-tee ja riigi IT-korraldus
  • Andme-apid, autentimine, pilvekeskkonnad, andmete hajutamine ja hajutatud andmete koondamine.
  • Paralleelrehkendused

Päris hea õpiku saad tasuta alla laadida siit. Meie kursuse sisu on sellest õpikust küllalt erinev, samas on ka ühisosi.

Üldist materjali ja kursusi mujalt:

http://en.wikipedia.org/wiki/Distributed_computing
http://dcg.ethz.ch/lectures/podc_allstars/index.html
http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-824-distributed-computer-systems-engineering-spring-2006/index.htm
http://www.stanford.edu/class/cs244b/

Protokollid ja P2P

Protokollid

Kohustuslikud osad lugeda:
Http ja json: võrgurakenduste protokollid 1
xml protokollid xml-rpc, soap ja seotud tehnoloogiad: võrgurakenduste protokollid 2
REST ja binary protokollid: võrgurakenduste protokollid 3
Täiendavalt soovitav lugeda:
Probleemidest: veebiteenuste võlu ja valu ja s stands for simple
Gaffer on games: UDP vs TCP ja selle jätk
Veidi seotud asi ad hoc networks vt ka Defendeci ja Jürgo Predeni patent

P2P sissejuhatus

Kohustuslikud osad lugeda:
vikipeedia ülevaade
loengumaterjal: pikem ülevaade eri P2P tehnoloogiatest

P2P DHT (distributed hash tables) ja bittorrent

ülevaade wikipedias
Chord:
Põhimaterjal - kas Chordi põhimõtted või vanem versioon, loe kuni Ivy osani Täiendavalt võib vaadata seda presentatsiooni visualiseeritud algoritmidega (ppt presentatsioonirezhiimis!)
Lisaks tasuks veidi uurida artikleid wikipedia sissekande lõpus (external links)
Kademlia:
Põhimaterjal presentatsioon autoritelt
Täiendavalt autorite artikkel
Bittorrent:
bittorrenti protokoll ja ülevaade
täiendavalt wikipediast
TOR:
TOR wikipedias

Distributed ledger, ajatemplid ja bitcoin

Soovitav on lugeda neid materjale algusest: põhiasjad on esimestes, ning mida kaugemale edasi, seda detailsemad/spetsiifilisemad materjalid tulevad.

Kriitiline taust järgneva mõistmiseks

  • https://en.wikipedia.org/wiki/Cryptographic_hash_function : ühtlaselt jaotuv hash, nii et kui püüad leida stringi S, et hash(S)=teadaolev_hash, siis parim viis S leidmiseks on lihtsalt random S-de katsetamine. Bitcoin kasutab SHA2 hash algoritmi varianti, mis annab tulemuseks 256 bitise (ehk 32 baiti) väärtuse.
  • https://en.wikipedia.org/wiki/Merkle_tree : kirjete sidumine hashide puuna (veidi keerukam/efektiivsem, kui lihtne hashiahel). Mis on hashiahel: kui tahad siduda kirjeid K1, K2, K3, siis salvestad [K1,hash(K1)], [K2,hash(K2+eelmise hash (ehk hash(K1)))], [K3,hash(K3+eelmise hash(ehk hash(K2+hash(K1))))], jne, kus hashi-osa node N jaoks on üldiselt hash(KN+(KN-1 hashi-osa)) ehk hash(KN+hash(KN-1+hash(KN-2+hash(KN-3+...) ...)
  • https://en.wikipedia.org/wiki/Proof-of-work_system : arvuti sundimine mõttetut tööd tegema, et raskendada spammimist. Levinud meetod on nõuda, et hashi alguses oleks N nulli (mida suurem N, seda raskem leida). Selleks tuleb sul hash(S) asemel katsetada läbi palju hash(S+nonce) arvutusi, kus nonce on random string, kuni juhtumisi saad N nulliga algava hashi.
  • https://en.wikipedia.org/wiki/Blockchain : lihtsalt ülevaade kogu teemast
  • Eelmiste asjade demo: vajuta üleval "Hash", "Block", "Blockchain" linkidele ja proovi igal lehel ise datat muuta ja "Mine" nupule vajutada. "Mine" teeb proof-of-worki ehk otsib random stringi (nonce) mille lisamisel datale saame mitme nulliga algava hashi.

Kasulik taust laiema pildi jaoks

Best intro for reading

Põhjalik õpik

  • Lae alla hea tasuta õpik
  • Kui eelmine link mingil põhjusel ei tööta, mine õpiku lehele (sealt leiad ka videoloengud) ja otsi sealt alapealkiri "Free pre-publication draft" mille all on link "... for download here".

Python examples with detailed explanations

It is enough to go through one or two of these:

More details and tutorials

Have a look at the actual bitcoin data, latest blocks and transactions:

How does the P2P stuff work, i.e finding nodes:

Real hardcore documentation:

Just a big collection of materials and examples: https://github.com/openblockchains/awesome-blockchains

Some additional OK tutorials:

X-tee ja e-riigi IT korraldus

X-tee

x-tee märkmed loengust

Kasulikud lisamaterjalid:

x-tee protokolli spec
UXP: AS Cybernetica eksport-kommertsversioon X-teest.
Kaks screencasti UXP keskserveri konfimisest 1 ja 2
Ahto Kalja detailne ülevaade X-tee projektist aastast 2004
X-road official page
X-road security server manual (detailed)
Paper by Ansper and Willemson

Riigi IT-infrastruktuuri korraldus

Riigi IT korralduse märkmeid loengust

Kasulikud lisamaterjalid:

RIHA ja jutud RIHA kohta

Andme-apid, autentimine, pilveteenused, andmete koondamine jms

Erinevad API-stiilid

Suured avalikud andme-apid

API-de kogu uurimiseks
list of open apis from wikipedia
google api explorer
Andme-apide näiteid
facebook api limitations/shutdowns in 2018

Autentimine

facebook, google, pangalink.
Autentimise märkmed: facebook ja google
veebiserveri seadistamine id-kaardi jaoks ja abistavad koodijupid
taustaks id-kaardi kasutusstsenaariumid
Autentimise märkmed: mobiil-ID

Pilvekeskkonnad

Understanding cloud computing

Suured:

Pilveteenuse tarkvara:

OpenStack

Näide: Azure

Azure märkmed

Google appengine, database api, google bigtable and file system stack

http://cloud.google.com/appengine/ AppEngine on nüüd osa Google Cloud platvormist

Hajutatud failisüsteemide märkmed loengust

Paralleelrehkendused

Esimene osa

Näited:

C: alguses oli fork(), hea pthreads tutorial.
Thread, Queue ja Lock Pythonis

Presentatsioonid lugemiseks:


Lukustamine, andmebaasid jms

Lisaks võib lugeda:

Konspekt, käsitleb teemat oluliselt põhjalikumalt kui loeng/slaidid
Introduction to Transactions (slaidid)
Sünkroniseerimisprimitiivid: slaidid

Mittekohustuslik lisalugemine:

Konspekt pikemalt ja põhjalikumalt loengus läbitud teemadest.


Paralleliseerimise automatiseerimine ja klastrid

Mapreduce framework
Mapreduce katsetused Azure platvormil
Mapreduce klassikaline põhiartikkel
memcached
memcached ülevaade


Hajutatud andmekogud

Integreerimine:

Integreerimise lühimärkmed
data warehousing

Hajutamine:

Hajutamise lühimärkmed
memcached
Postgres replication intro
Postgres clustering and replication

Konsensus:

Paxos algoritm ja veel Paxos ja väga palju Paxost ja sõpru
bitcoinist tuttav proof-of-work

Hulk teemasid põhjalikult:

readings in distributed databases
Chapter for db system concepts book

Detailsed lisamaterjalid:

Postgres high availability
Oracle information integration

Varu