Szerializáció, hálózat
Egy egyszerű feladatra fogunk elosztott megoldást megalkotni. Használjunk automatikus szerializációt biztosító objektum stream-eket a kommunikációhoz.
Kódminták a feladathoz
- Készítsünk egy PrimeFinder osztályt, ami egyesével ellenőrzi számokról, hogy prímszámok-e. Az eredményt eltárolja egy listában. Legyen egy
step
függvénye, ami ellenőrzi az aktuális számot, ha prím akkor berakja az eredmény-listába és lépteti.
- Készítsünk egy szerver osztályt, ami irányítani fogja a számítás menetét.
- Készítsünk egy kliens osztályt, ami ténylegesen elvégzi a számítást.
- A protokoll a következő:
- Megjelenik egy kliens, elkéri a számítási feladatot
- A szerver válaszként elküldi a számítás jelenlegi állapotát
- A kliens bizonyos ideig végzi a számítást (a végét jelezze egy enter leütése)
- A kliens visszaadja a számítás végső állását, a szerver ezt elmenti (a szerver ekkor írja ki a feladat aktuális állapotát ellenőrzésre)
- Mindkét fél bontja a kapcsolatot
- A szerver készen áll a következő kliens fogadására
- A három üzenetet (Feladatkérés, Feladatkiosztás és Eredményvisszaadás) egy-egy osztályként reprezentáljuk. Ezeknek példányai lesznek átküldve a processzek között a protokoll végrehajtása során.