Kompiuterių tinklai: pratybos
2009/10 m.m. rudens semestras
Programų sistemos, 3 kursas, 1 grupė, 1 pogrupis iš 2
* Naujienos
- Papildyti reikalavimai antrąjai užduočiai bei susiję naudingi šaltiniai. (2009-11-18)
- Pratybos vyks trečiadieniais, nuo 14 val., ITC 8 aud. (2009-09-24)
- Paskelbti reikalavimai pratybų užduotims bei pogrupio studentų sąrašas. (2009-09-24)
- Pasirinkti uždavinį galima iš pateikiamų pavyzdžių, tačiau pageidautina ir sveikintina, kad studentas uždavinį sugalvotų pats. (2009-09-14)
- Jeigu negalite atvykti į pratybas, suderinti uždavinį galima ir el. paštu, bet tuo atveju būtina išsamiai aprašyti, kokios bus klientinės ir serverinės dalies funkcijos. (2009-09-14)
- Į praeitas (2009-09-07) pratybas neatvyko nei vienas studentas. Primenu, kad pasirinkti uždavinį (kuris galios visoms trims programoms) reikia iki 2009-09-21 (arba tos savaitės pratybų, jeigu jų laikas bus perkeltas). (2009-09-14)
* Reikalavimai pratybų užduotims:
- Antroje užduotyje galima naudoti tiek tradicinį (java.io), tiek asinchroninį (java.nio) modelį.
- Pirmą užduotį pageidautina programuoti C programavimo kalba, tačiau galima ir C++.
- Pirma užduotis (C-C) turi kompiliuotis bei veikti uosio serveryje, kompiliuojama komanda make.
- Pirmai užduočiai reikia paruošti Makefile failą (žr. pavyzdį).
- Jeigu pirmą programą kuriate ne UNIX aplinkoje, išeities kodą reikia padaryti portabilų, t.y. tokį, kuris kompiliuotųsi ir veiktų tiek Windows, tiek UNIX aplinkose (žr. skirtumus).
- Serverinėje dalyje galima aptarnauti klientus galima pasirinktinai:
- Nuo pasirinkto uždavinio sudėtingumo ir jo realizavimo priklauso maksimalus galimas pirmos ir antros užduoties įvertinimas (trečia užduotis vertinama nepriklausomai, iki 1 balo):
- client-server modelis be multiklientiškumo – iki 70% (1 balas);
- client-server modelis su multiklientiškumu – iki 80% (1.2 balo);
- peer-to-peer, kai serveris yra tik nematomas tarpininkas – iki 90% (1.35 balo);
- peer-to-peer, kai serveris atlieka papildomas funkcijas – iki 100% (1.5 balo).
- client-server modelio atveju, klientas bendrauja su serveriu, o peer-to-peer atveju klientai bendrauja tarpusavyje, serveriui atliekant tarpininko vaidmenį. Kitaip tariant, esant laivų mūšio ar šaškių uždaviniui, client-server atveju klientas žais su serveriu, o peer-to-peer atveju klientai žais tarpusavyje. Kai kuriais atvejais (pavyzdžiui, turint pokalbių kambario uždavinį), serveris atlieka ne tik nematomo tarpininko, o ir kai kurias uždavinio funkcijas (išsiunčia pranešimą visiems pokalbio dalyviams, teikia informaciją vartotojams apie kanalo informaciją ir pan.).
- Serveris turi aptikti nenumatytą klientų atsijungimą, atlaisvinti resursus ir tęsti darbą.
* Naudingi šaltiniai:
- Beej’s Guide to Network Programming
- The C10K problem
- Java Socket Programming
- Lesson: All About Sockets (Java)
- Java Sockets
- Socket Programming in Java
- NIO, Apache MINA, Netty, Scalable IO in Java, Java.nio vs Java.io
* Kurso puslapis (dėst. Viktor Kiško).
* Pratybų tvarkaraštis
* Studentų sąrašas ir užduočių vertinimai
* Realizacijos pavyzdys (pokalbių klientas ir serveris), jos aprašymas ir demonstracija.
Klausimai ir atsakymai: dziugas \||/ baltrunas.lt
http://www.mif.vu.lt/~menulis/chat/Makefile
Naujausi komentarai