[MWy] Prvni cviceni pondeli 10. 3. 14:00 SU2
Martin Decky
decky at dsrg.mff.cuni.cz
Fri Mar 7 17:48:53 CET 2008
Hezke odpoledne,
prvni cviceni z predmetu Middleware (pro treti beh, viz poznamka
o prvnim cviceni v Grupiku) se uskutecni v terminu uvedenem v predmetu
tohoto emailu. Tema bude Java RMI, takze Vam doporucujeme oprasit
vedomosti z prednasky, abyste meli predstavu, do ceho jdete. Pro
prakticke zkouseni se Vam muze hodit Hello World example z wiki predmetu:
http://dsrg.mff.cuni.cz/~ceres/wik/mwy/uploads/Main/Example-RMI.tar.bz2
Na konci emailu naleznete take pravdepodobnou podobu zadani ulohy,
kterou budete na cviceni vypracovavat (neocekavame do pondeli nejake
radikalni zmeny). Samotny prubeh cviceni, forma odevzdavani, zadani
rozsirene ulohy a dalsi podrobnosti budou vyreseny v uvodu cviceni.
M.D.
Zadani 1. ulohy z Middleware
Cilem 1. zadani je ziskat zakladni zkusenost s distribuovanymi objekty
v prostredi Java RMI a predstavu o tom, jak muze zpusob prace s nimi
ovlivnit vykon aplikace.
Uloha spociva v implementaci vyhledavani nejkratsi cesty mezi dvema
vrcholy v orientovanem grafu, kde vsechny hrany maji delku 1. Graf je
reprezentovan vrcholy. Kazdy vrchol si udrzuje mnozinu primych sousedu
(vrcholu, do kterych vede z daneho vrcholu hrana) a poskytuje metody
pro pridani, odebrani a ziskani teto mnoziny. Vyhledavani cesty je
realizovano pomoci Searcher objektu a jeho metody, ktera dostane jako
parametry dva vrcholy grafu, najde nejkratsi cestu z prvniho do
druheho a jeji delku vrati.
0. Implementujte toto zadani zcela lokalne a zmerte rychlost provadeni
na nahodne generovanych hustych a ridkych grafech.
Pozn.: Na cviceni bude poskytnuta implementace lokalniho reseni.
1. Vytvorte server, ktery bude poskytovat Searcher jako vzdaleny
objekt (bude potreba mirne rozsirit stavajici interface Searcher).
Rozsirte klient tak, aby krome zcela lokalniho vyhledavani take
vyhledaval pomoci sluzby serveru, kteremu preda uzly lokalne
vytvoreneho grafu. Porovnejte rychlost obou variant.
2. Implementujte vrcholy grafu jako distribuovane objekty vytvarene na
zadost klienta na serveru. Doporucuje se distribuovanou variantu
implementovat jako odlisnou tridu od lokalni, obe vsak implementuji
spolecny interface. Zmerte rychlost vyhledavani cesty, kdy Searcher
na klientu pracuje s vrcholy grafu na serveru. Porovnejte
s predchozimi variantami.
3. Zmerte rychlost vyhledavani cesty, kdy klient vzdalenemu Searcheru
predava uzly vzdaleneho grafu. Porovnejte s predchozimi variantami.
4. Porovnejte rychlosti vsech variant v pripadech, kdy klient a server
jsou na stejnem stroji a ruznych strojich.
More information about the NSWI080
mailing list