Munkamenet (informatika) - Session (computer science)

A számítástechnikában és különösen a hálózatépítésben a munkamenet egy ideiglenes és interaktív információcsere két vagy több kommunikációs eszköz között, vagy egy számítógép és egy felhasználó között (lásd a bejelentkezési munkamenetet ). A munkamenetet egy adott időpontban hozzák létre, majd valamikor később „lebontják” - véget vetve. A létrehozott kommunikációs munkamenet több irányú üzenetet is tartalmazhat. A munkamenet jellemzően állapotszerű , vagyis a kommunikáló felek közül legalább az egyiknek aktuális állapotinformációkkal kell rendelkeznie, és a munkamenet előzményeiről információkat kell tárolnia ahhoz, hogy képes legyen kommunikálni, szemben a hontalan kommunikációval, ahol a kommunikáció válaszokkal ellátott független kérésekből áll.

A kialakított munkamenet a kapcsolatorientált kommunikáció alapkövetelménye . A munkamenet is az alapvető lépés kapcsolat nélküli kommunikációs módokban történő továbbításhoz . Bármely egyirányú továbbítás nem határoz meg munkamenetet.

A kommunikáció A protokollok és szolgáltatások részeként megvalósítható az OSI modellben az alkalmazásrétegen , a munkamenetrétegen vagy a szállítási rétegen .

Olyan szállítási protokollok esetén, amelyek nem valósítanak meg hivatalos munkamenet réteget (pl. UDP ), vagy ahol az alkalmazás réteg munkamenetei általában nagyon rövid ideig tartanak (pl. HTTP), a munkameneteket egy magasabb szintű program tartja fenn, egy meghatározott módszerrel a kicserélt adatokban. Például egy böngésző és egy távoli gazdagép közötti HTTP-csere tartalmazhat egy HTTP-cookie-t, amely azonosítja az állapotot, például egyedi munkamenet-azonosítót , információkat a felhasználó preferenciáiról vagy az engedélyezési szintről.

Úgy gondolták, hogy a HTTP / 1.0 csak egyetlen kérést és választ engedélyez egy Web / HTTP munkamenet során. A HTTP / 1.1 protokoll verzió javította ezt a Common Gateway Interface (CGI) kitöltésével , megkönnyítve a webes munkamenet karbantartását, és támogatva a HTTP cookie-kat és fájlfeltöltéseket.

A legtöbb kliens-kiszolgáló munkamenetet a szállítási réteg tartja fenn - egyetlen kapcsolat egyetlen munkamenethez. A web / HTTP munkamenet minden tranzakciós fázisa azonban külön kapcsolatot hoz létre. A fázisok közötti munkamenet-folytonosság fenntartásához munkamenet-azonosítóra van szükség . A munkamenet-azonosító be van ágyazva a dinamikus weboldalak <A HREF> vagy <FORM> linkjeibe, így visszakerül a CGI-hez. A CGI ezután a munkamenet-azonosítóval biztosítja a munkamenet folytonosságát a tranzakciós fázisok között. Egy fázisonkénti kapcsolat egyik előnye, hogy jól működik alacsony sávszélességű (modem) kapcsolatoknál.

Szoftver megvalósítás

A TCP munkameneteket általában gyermekfolyamatok és / vagy többszálas alkalmazás segítségével valósítják meg a szoftverekben , ahol egy új folyamat vagy szál jön létre, amikor a számítógép létrehoz egy munkamenetet vagy csatlakozik ahhoz. A HTTP munkamenetek általában nem munkamenetenként egy szál segítségével valósulnak meg, hanem egy adatbázis segítségével, amely információkat tartalmaz az egyes munkamenetek állapotáról. A több folyamat vagy szál előnye a szoftver bonyolult bonyolultsága, mivel mindegyik szál egy példány , amelynek saját előzményei és beágyazott változói vannak. Hátránya, hogy a rendszer erőforrásait tekintve nagy a rezsi, és hogy a munkamenet megszakadhat, ha a rendszert újraindítják.

Amikor egy kliens a kiszolgálófürt bármelyik kiszolgálójához csatlakozhat, különleges probléma lép fel a konzisztencia fenntartása során, amikor a szervereknek karbantartaniuk kell a munkamenet állapotát. Az ügyfelet vagy ugyanarra a szerverre kell irányítani a munkamenet időtartama alatt, vagy pedig a kiszolgálóknak szerveroldali munkamenet-információkat kell megosztaniuk megosztott fájlrendszeren vagy adatbázison keresztül. Ellenkező esetben az ügyfél újra csatlakozhat egy másik kiszolgálóhoz, mint amellyel a munkamenetet megkezdte, ami problémákat okoz, ha az új szerver nem fér hozzá a régi tárolt állapotához.

Szerveroldali webes munkamenetek

A szerveroldali munkamenetek praktikusak és hatékonyak, de nehezen kezelhetővé válhatnak a terheléselosztó / magas rendelkezésre állású rendszerekkel együtt, és egyáltalán nem használhatók egyes beágyazott, tárolás nélküli rendszerekben. A terheléselosztási probléma megoldható megosztott tároló használatával, vagy kényszerített társviszony-létesítéssel az egyes kliensek és a fürt egyetlen kiszolgálója között, bár ez veszélyeztetheti a rendszer hatékonyságát és a terheléselosztást.

A kiszolgálóoldali munkamenetek tömegtárolás nélküli rendszerekben történő felhasználásának módja az, hogy a RAM egy részét lefoglalja a munkamenet adatainak tárolására. Ez a módszer korlátozott számú klienssel rendelkező kiszolgálókra alkalmazható (pl. Útválasztó vagy hozzáférési pont egyszerre több vagy nem engedélyezett hozzáféréssel több ügyfélhez).

Ügyféloldali webes munkamenetek

Az ügyféloldali munkamenetek cookie-kat és rejtjelezési technikákat használnak az állapot fenntartásához anélkül, hogy annyi adatot tárolnának a szerveren. Dinamikus weboldal bemutatásakor a kiszolgáló cookie formájában elküldi az aktuális állapotadatokat az ügyfélnek (webböngészőnek). Az ügyfél a cookie-t memóriába vagy lemezre menti. Minden egymást követő kérés esetén az ügyfél visszaküldi a cookie-t a szervernek, és a szerver az adatokat arra használja, hogy "emlékezzenek" az alkalmazás állapotára az adott ügyfél számára, és megfelelő választ generáljanak.

Ez a mechanizmus bizonyos körülmények között jól működhet; a kliensen tárolt adatok azonban sérülékenyek a felhasználó vagy az ügyfélszámítógéphez hozzáférő szoftver általi beavatkozásokkal szemben. Az ügyféloldali munkamenetek használatához, ahol titoktartás és integritás szükséges, garantálni kell a következőket:

  1. Titoktartás: A kiszolgálón kívül semmi sem képes értelmezni a munkamenet adatait.
  2. Adatintegritás: A szerveren kívül semmi sem manipulálhatja a munkamenet adatait (véletlenül vagy rosszindulatúan).
  3. Hitelesség: A szerveren kívül semmi másnak nem lehet képes érvényes munkameneteket kezdeményezni.

Ennek megvalósításához a szervernek titkosítania kell a munkamenet adatait, mielőtt elküldené azokat az ügyfélnek, és az ilyen információk bármely más fél általi módosítását kriptográfiai eszközökkel meg kell akadályozni.

Az állapot oda-vissza továbbítása minden kéréssel csak akkor praktikus, ha a süti mérete kicsi. Lényegében az ügyféloldali munkamenetek a kiszolgáló lemezterületét cserélik az egyes webkérelmekhez szükséges extra sávszélességre. Ezenkívül a webböngészők korlátozzák a weboldal által tárolható cookie-k számát és méretét. A hatékonyság javítása és több munkamenet-adat megengedése érdekében a szerver a cookie létrehozása előtt tömörítheti az adatokat, majd később kicsomagolja, amikor a kliens visszaküldi a sütit.

HTTP munkamenet token

A munkamenet token egyedi azonosítót generál és küld a szerver a kliens azonosításához az aktuális interakció ülésen. Az ügyfél általában elmenti és elküldi a tokent HTTP cookie- ként és / vagy paraméterként elküldi a GET vagy POST lekérdezésekben. A munkamenet-tokenek használatának oka az, hogy az ügyfélnek csak az azonosítót kell kezelnie - az összes munkamenet-adatot a kiszolgálón tárolják (általában egy adatbázisban , amelyhez az ügyfélnek nincs közvetlen hozzáférése), ehhez az azonosítóhoz kapcsolódva. Példák a neveket, hogy néhány programozási nyelv használ elnevezésére a HTTP cookie-tartalmaznia JSESSIONID ( JSP ), PHPSESSID ( PHP ), CGISESSID ( CGI ) és ASPSESSIONID ( ASP ).

Ülésmenedzsment

Az ember-számítógép interakció , a session-kezelést a folyamat nyomon követését, a felhasználó tevékenysége az egész ülésein való kölcsönhatás a számítógépes rendszer .

Az asztali környezetben a tipikus munkamenet-kezelési feladatok magukban foglalják annak nyomon követését, hogy mely alkalmazások vannak nyitva, és mely dokumentumokat nyitották meg az egyes alkalmazások, így ugyanaz az állapot helyreállítható, amikor a felhasználó kijelentkezik és később bejelentkezik. Webhely esetén a munkamenet-kezelés magában foglalhatja a felhasználó újbóli bejelentkezésének megkövetelését, ha a munkamenet lejárt (azaz egy bizonyos időkorlát telt el felhasználói tevékenység nélkül). Arra is szolgál, hogy információkat tároljon a szerver oldalon a HTTP kérések között.

Asztali munkamenet-kezelés

Az asztali munkamenet-kezelő olyan program, amely mentheti és visszaállíthatja az asztali munkameneteket. Asztali munkamenet az összes jelenleg futó ablak és aktuális tartalmuk. A munkamenetkezelést Linux alapú rendszereken az X session manager biztosítja . A Microsoft Windows rendszerek, a session-kezelés által nyújtott munkamenet-kezelő alrendszer (Smss.exe); a felhasználói munkamenet funkcionalitását harmadik féltől származó alkalmazásokkal, például a twinsplay-mel is bővíthetjük .

Böngésző munkamenetek kezelése

A munkamenet-kezelés különösen hasznos egy webböngészőben, ahol a felhasználó az összes megnyitott oldalt és beállítást elmentheti, majd később vagy egy másik számítógépen visszaállíthatja (lásd az adatok hordozhatóságát ).

A rendszer vagy az alkalmazás összeomlásának helyreállítása érdekében az oldalak és a beállítások a következő futtatáskor is visszaállíthatók. A Google Chrome , a Mozilla Firefox , az Internet Explorer , az OmniWeb és az Opera példák azokra a böngészőkre, amelyek támogatják a munkamenet-kezelést. A munkamenet-kezelést gyakran sütik alkalmazásával kezelik .

Webkiszolgáló munkamenetek kezelése

A Hypertext Transfer Protocol (HTTP) hontalan: a webböngészőt futtató kliens számítógépnek minden új HTTP GET vagy POST kéréssel új TCP ( Transmission Control Protocol ) hálózati kapcsolatot kell létrehoznia a webszerverrel. A webkiszolgáló tehát nem támaszkodhat egy létrehozott TCP hálózati kapcsolatra hosszabb ideig, mint egyetlen HTTP GET vagy POST művelet. A munkamenet-kezelés az a módszer, amelyet a webfejlesztő használ a hontalan HTTP-protokollt támogató munkamenet állapotának létrehozására. Például, miután a felhasználót hitelesítették a webszerveren, a felhasználó következő HTTP-kérésének (GET vagy POST) nem szabad arra késztetnie a webszervert, hogy újra megkérdezze a felhasználó fiókját és jelszavát. A megvalósításhoz használt módszerekről lásd a HTTP-cookie-t és a Munkamenet-azonosítót

Olyan helyzetekben, amikor több webkiszolgálónak meg kell osztania a munkamenet állapotának ismeretét (amint az a fürtkörnyezetben jellemző ), a munkamenet információkat meg kell osztani a webszerver szoftvert futtató fürtcsomópontok között. Módszerei megosztás műveleti állapot csomópontok között a klaszterben tartalmazzák: muiticast munkamenet-információt, hogy tagja csomópontok (lásd JGroups egy példa erre a technika), megosztása ülésszak információt egy partner csomópont segítségével osztott közös memóriát , vagy memória-virtualizációs , megosztás ülésszak információt közötti csomópontok használatával hálózati aljzatok, munkamenet-információk tárolása megosztott fájlrendszerben, például elosztott fájlrendszerben vagy globális fájlrendszerben , vagy a munkamenet-információk tárolása a fürtön kívül adatbázisban .

Ha a munkamenet adatait átmeneti, ingatag adatoknak tekintik, amelyekre nincs szükség a tranzakciók visszautasításához , és amelyek nem tartalmaznak olyan adatokat, amelyek megfelelési auditnak vannak alávetve (lásd például az Egyesült Államokban az Egészségbiztosítási hordozhatóságról és elszámoltathatóságról szóló törvényt és a Sarbanes-Oxley-t Használjon két törvény példáját, amelyek megkövetelik a megfelelőség ellenőrzését), akkor a munkamenet információk tárolásának bármilyen módja alkalmazható. Azonban, ha a munkamenet-információk ellenőrzésének megfelelnek, figyelembe kell venni a munkamenet-tároláshoz, a replikációhoz és a fürtözéshez használt módszert.

A szolgáltatás-orientált architektúra , Simple Object Access Protocol, vagy SOAP üzenetek épített Extensible Markup Language ( XML ) üzeneteket lehet használni a fogyasztói alkalmazások oka webszerverek létrehozni ülés.

Munkamenet-kezelés SMS-en keresztül

Ahogy a HTTP hontalan protokoll , ugyanúgy az SMS is . Amint az SMS 1999-ben átjárhatóvá vált a rivális hálózatokon, és a szöveges üzenetküldés megindult az egyre szélesebb körű globális kommunikációs formává válás felé, különféle vállalkozások érdeklődtek az SMS-csatorna kereskedelmi célú felhasználása iránt. A kezdeti szolgáltatások nem igényelték a munkamenet-kezelést, mivel csak egyirányú kommunikációt folytattak (például 2000-ben az első mobil hírszolgáltatást SMS-ben nyújtották Finnországban ). Manapság ezeket az alkalmazásokat alkalmazás-to-peer (A2P) üzenetküldésnek nevezik , elkülönítve a peer-to-peer (P2P) üzenetküldéstől. Az interaktív vállalati alkalmazások fejlesztése munkamenet-menedzsmentet igényelt, de mivel az SMS a GSM szabványok által meghatározott hontalan protokoll, a korai megvalósításokat kliens oldalon vezérelték azzal, hogy a végfelhasználók manuálisan adtak meg parancsokat és szolgáltatásazonosítókat.

Lásd még

Hivatkozások

  1. ^ Sessionless-orientált protokoll és session-orientált protokoll
  2. ^ InterCarrier Messaging Guidelines (PDF) , CTIA , letöltve: 2018.06.06
  3. ^ Hppy bthdy txt! A BBC News World Edition, http://news.bbc.co.uk/2/hi/uk_news/2538083.stm 2002. december 3.
  4. ^ GSM Doc 28/85 "A GSM-rendszerben nyújtandó szolgáltatások és létesítmények", 1985. június 2-i rev2

Külső linkek