Osztott rendszerek esti tagozat, 2014-15 tavaszi félév

Beadandó feladat

Szerver

Készítsd el a hu.elte.esti.bead csomagba a KetfajtaSzerver osztály, amely tartalmazzon főprogramot.

A főprogram indítson el egy szervert (SOR üzemmódban, lásd lejjebb), amely az első parancssori paraméterben megadott sorszámú porton várja egy kliens beérkezését. A kliens a következő tartalmú sorokat küldheti a szervernek.

uj <port> <szolgáltatás>

A megadott porton induljon el egy új szerver (amely működjön függetlenül az eddigiektől). A tartalma lehet "SOR" vagy "SUM", ez a szerver üzemmódját adja meg (lásd lejjebb).

valt <port1> <port2>

A port1 porton működő szerver váltson át a port2 portra: még várja be a következő kapcsolatot a port1 porton, de aztán a következő kliensre már a port2 porton várjon.

torol <port>

A port porton működő szerver álljon le: még várja be a következő kapcsolatot a porton, de aztán már ne fogadjon több klienst.

vege

A program azonnal álljon le: System.exit(0).

sor <fájlnév> <sorszám>

Ezt a kérést csak SOR üzemmódban működő szerverek fogadják. Az ilyen szerverek visszaküldik a megadott nevű fájl megadott számú sorának tartalmát (ha a fájl létezik, és van ennyi sora). Ha a sor nem érhető el, vagy a szerver nem SOR üzemmódban van, küldje vissza a "HIBA" üzenetet egy sorban.

sum <szám>

A szerver megjegyzi az így beküldött számokat, és mindegyik szám beérkeztekor visszaírja a kliensnek egy sorban, hogy az adott szám hányszor érkezett már be (a jelen beérkezést nem számítva).

Kliens

Mivel a programot telnet kapcsolattal ki lehet próbálni, nem szükséges külön klienst készíteni.

RMI

Készíts RMI szolgáltatást, amelyhez tartozó osztályok kerüljenek a hu.elte.esti.bead.rmi csomagba.

A szolgáltatás interfésze a KetfajtaInterfesz osztályba kerüljön, és legyen a fenti szervernek megfelelő (int illetve String paraméterekkel a megfelelő pozíciókon) annyi különbséggel, hogy most a portok helyét az RMI-be bejegyzett nevek veszik át: "új szerver indításakor" portszám helyett kapjunk egy nevet, és ezen jegyezd be a szolgáltatás új példányát; a valt és a torol műveletek szintén nevekkel dolgozzanak portok helyett, és most nincsen külön várakozási kitétel sem.

A szolgáltatást a KetfajtaSzerver osztály valósítsa meg, ebből a KetfajtaDeploy indítson el kezdetben egy példányt, és jegyezze be a ketfajta1 néven.

A KetfajtaKliens osztályba készíts olyan főprogramot, amely kipróbálja a szolgáltatás összes funkcióját.

Egyéb

A program elkészítésével kapcsolatos további részletek: