Kockadobás kliens-szerver alkalmazás

Fejlesszünk elosztott, hálózatos, datagram alapú üzenetküldéssel megvalósított Java alkalmazást!

A kockadobás kliens egyszerre két szabályos dobókockával dob, amit ezerszer megismétel és a dobott számok összegét datagram típusú üzenetküldéssel folyamatosan elküldi a szervernek. A szerver localhost-on fut és egy megadott porton keresztül várja a klienstől. A szerver és a kliens egyaránt szálkezelést alkalmazó konzolos alkalmazás.

A projektben van egy swing GUI-s alkalmazás, amely JFreeChart oszlopdiagramon – folyamatosan frissítve – megjeleníti az összesített adatokat, mindez a szerver üzenetküldésével irányítva (amint beérkezik egy dobott (2-12-ig) összeg).

A kommunikációnak – a lehetőségekhez képes – biztonságosnak és – a hálózati adatforgalmat tekintve – takarékosnak kell lennie! Ennek részeként szükséges egy azonosító és egy egyszerű szabály (protokoll).

Tekintsük át mondatszerűen a szálkezelést használó kliens és szerver kommunikációhoz kötődő feladatait:

Ezek működését összefogja egy központi vezérlőosztály és a programok az alábbiak szerint működnek együtt:

A bejegyzéshez tartozó forráskódot ILIAS e-learning tananyagban tesszük elérhetővé tanfolyamaink résztvevői számára.

A feladat a Java EE szoftverfejlesztő tanfolyam 1-8. óra: Elosztott alkalmazások, webszolgáltatások, szálkezelés, párhuzamosság alkalmához kapcsolódik.

“Kockadobás kliens-szerver alkalmazás” bejegyzéshez 2 hozzászólás

  1. A datagram (UDP) nem garantálja a csomag megérkezését. Próbálgattam már ilyen programot és 100000 küldésnél már előfordult, hogy 1-2 csomag elveszett. Persze nem biztos, hogy ez a csekély hibaarány számít egy adatátvitelnél, de lehet, hogy kritikus. Tudom, hogy lecserélhető a datagram másra. Meg lehetne oldani a kommunikációt egy olyan programban, ami datagramot használ és MVC-s? Megbeszélhetjük ezt valamelyik következő órán?

    Válasz
    • Áron: igen.
      Egy egyszerű ötlet: ennél a programnál többutas kézfogás üzenetküldéssel összegyűjthetnénk, hogy a szükséges kockadobásból mennyi történt meg (“mennyi ment át”) és pótoltathatnánk a hiányzó dobásokat.
      Mutatok majd 3 – iparban is használt – ötletet és folyamatokban gondolkodva végigkövetjük egy projekt forráskódjában böngészve a lehetőségeket a beavatkozásra. Algoritmusban kell gondolkodni, amivel felülről korrigáltatható egy rendszerben egy-egy alul lévő gyengébb láncszem.

      Válasz

Szólj hozzá!