Delphi kliens-szerver
2011-06-21T17:34:10+02:00
2011-06-21T22:42:40+02:00
2022-07-24T14:11:16+02:00
  • Ha nem akarod megérteni, akkor nem akarod. Egy webáruházban nem sql parancsokat küld a böngésző, hanem azt, hogy be akar jelentkezni x felhasználó, a felsorolt termékek közül x db. y-t tenne a kosarába, megrendeli, ami a kosárban van, stb.
    Az, hogy ez pontosan milyen tényleges műveletet jelent, azt a szerver programja tartalmazza. Meg azt is, hogy melyik userhez melyik kosár tartozik, illetve gondoskodik arról, hogy sok felhasználó böngészhessen, vásárolhasson egyszerre. És nem a darabszám miatt, hanem a tevékenységek elkülönítése miatt.
    Ezt lehetne úgy is, hogy van egy akár Delphiben megírt kliens, de az is csak annyit csinálhat, amit az előbb írtam. Ha ennél több funkció van benne, akkor fenn áll a lehetősége, hogy azt valaki visszafejti és egy sql kliensen keresztül maga ad ki sql utasításokat. Vagy egy régebbi klienssel csatlakozik, ami inkonzisztens adatokat rögzít.
    A lényeg, hogy a teljes logikának a szerveren (a te kezedben) kell maradnia, a kliensben pedig csak a logikai műveletek kezdeményezéséhez szükséges információk lehetnek. A te esetedben ez nem valósul meg, mert a logika az user gépén futó kliensben van. Semmivel nem tudod meggátolni, hogy bejusson az adatbázisodba és azt tegyen, amit csak akar.
    Mutasd a teljes hozzászólást!
  • Ennek a megoldására találták ki a 3 rétegű architektúrát. A kliens nem közvetlenül az adatbázis szerverjez kapcsolódik hanem egy ún. köztes réteg, ami tartalmazza azt a logikát, ki milyen esetekben fordulhat az adatbázis szervehez. Delphihez nem ihazán láttam jó köztes rendszert ami elosztott tranzakciókat kezel, mindenesetre jó lenne kicsit nekiállnod átlapozni a middleware fogalmát és megvalósításait valamint az elosztott rendszerekben történő tranzakció kezelést.
    Mutasd a teljes hozzászólást!
  • Igen, az alkalmazás tartalmazza. Ugyanilyen elven akkor egy böngészőből indított oldal, pl. egy webáruház is gondot okozhat az adatbázisban? Ott se mondhatjuk meg, hogy egyszerre hányan lehetnek az oldalon.
    Mutasd a teljes hozzászólást!
  • Ha a programodban van az adatbázis eléréséhez szükséges kód, akkor nem. Ha 100-an futtatják a programodat, ugyanahhoz az adatbázishoz kapcsolódva, akkor mi történik?
    Ha közvetlenül írnak a táblákba, akkor leginkább csak problémák tömkelegét okozzák. Arról nem is beszélve, hogy ha változik valami a táblákban, akkor mi lesz a nem frissített "kliensekkel"?
    Kliens-szerverről akkor beszélhetsz, ha a szerver kezeli a felhasználók bejelentkezését, és minden funkciót felügyel. Ha bármi olyan logika van a programban, amit a szerver nem kontrollál, akkor csak egy rosszul megtervezett alkalmazásról van szó.
    Ezt maximum úgy tudod megvalósítani, hogy a program csak tárolt eljárásokon keresztül végezhet bármilyen műveletet, azaz a teljes program logika ezekben van megvalósítva.
    Mutasd a teljes hozzászólást!
  • Talán annyival tudnám még kiegészíteni, hogy egy Mysql adatbázis szerverhez kapcsolódik majd. Konkrétan azt szeretném tudni, hogy két alkalmazás kell-e ahhoz, hogy kliens-szerver architektúráról beszéljünk, vagy elég az alkalmazásom, mint kliens, az adatbázis szerver pedig a szerver?
    Mutasd a teljes hozzászólást!
  • Bocsi, de nem az adatbázison van a hangsúly..
    Talán segít..(kliens-szerver modell - Informatikai fogalomtár)
    Másnéven ügyfél-kiszolgáló modell. Az ügyfél (kliens) valamilyen kéréssel fordul a kiszolgáló felé, amely a kért szolgáltatást nyújtja. A programozásban a főprogram-alprogram viszonynak feleltethető meg. A kommunikációt mindig az ügyfél kezdeményezi, sohasem a kiszolgáló. Az ügyfél általában egy alkalmazói program: ilyenek a levelezőprogramok, a böngészők, stb. A modell legnagyobb előnye az, ahogy a kéréseket a hálózatra kapcsolt kiszolgálók között elosztja. Tegyük fel például, hogy több száz felhasználó akar egyszerre elérni egy adott számítógépen található állományokat. Ha mindegyik felhasználó bejelentkezne a kiszolgálóra, és az ott található ügyfél-programot használná, akkor a kiszolgáló nem győzné teljesíteni a kéréseket (ez azt jelentené, hogy a program egyszerre több száz példányban futna a kiszolgálón). Az ügyfél-programoknak az elosztásával a kiszolgáló terhelése csökkenthető, és így a feldolgozás főleg a felhasználó gazdagépén történik. A kiszolgálóval a kapcsolat csak akkor épül ki, ha adatcserére van szükség.
    Mutasd a teljes hozzászólást!
  • jó lenne ha pontosítanád a kérdésedet
    Mutasd a teljes hozzászólást!
  • Sziasztok! Lehet, hogy hülye kérdés, de hozzátok fordulok. Szeretnék egy Delphi alkalmazást készíteni, ami adatbázissal kommunikál. Ebben az esetben tekinthető az alkalmazás kliens-szerver alkalmazásnak?
    Mutasd a teljes hozzászólást!
Tetszett amit olvastál? Szeretnél a jövőben is értesülni a hasonló érdekességekről?
abcd