Megosztás a következőn keresztül:


Orleans Előnyök

A fő előnyei a Orleans következők:

  • Fejlesztői hatékonyság, még a nem szakértő programozók számára is.
  • Transzparens méretezhetőség alapértelmezés szerint a programozó különleges erőfeszítése nélkül.

Fejlesztői hatékonyság

A Orleans programozási modell a következő fő absztrakciók, garanciák és rendszerszolgáltatások biztosításával növeli mind a szakértő, mind a nem szakértő programozók hatékonyságát.

Ismerős objektumorientált programozás (OOP) paradigma

A szemcsék .NET-osztályok, amelyek deklarált .NET-szemcseillesztőket implementálnak aszinkron metódusokkal. A szemcsék távoli objektumokként jelennek meg a programozó számára, amelyek metódusai közvetlenül hívhatók meg. Ez biztosítja a programozó számára a jól ismert OOP-paradigmát azáltal, hogy a metódushívásokat üzenetekké alakítja, a megfelelő végpontokhoz irányítja őket, meghívja a célmag metódusait, és transzparens módon kezeli a hibákat és a sarokeseteket.

Szemcsék egyszálas végrehajtása

A futtatókörnyezet garantálja, hogy a szemcsék nem hajthatók végre egyszerre több szálon. A többi szemcsétől való elkülönítéssel kombinálva a programozónak soha nem kell egyidejűséggel szembesülnie a szemcse szintjén, és soha nem kell zárolásokat vagy más szinkronizálási mechanizmusokat használnia a megosztott adatokhoz való hozzáférés szabályozásához. Ez a funkció önmagában lehetővé teszi az elosztott alkalmazások fejlesztését a nem szakértő programozók számára.

Transzparens aktiválás

A futtatókörnyezet csak akkor aktiválja a szemcséket, ha a folyamathoz üzenet tartozik. Ez teljesen elválasztja a szemcsékre mutató hivatkozás létrehozásának fogalmát, amely az alkalmazáskódban látható és vezérelhető, valamint a szemcse fizikai aktiválása a memóriában, amely átlátható az alkalmazás számára. Ez hasonló a virtuális memóriához, mivel eldönti, hogy mikor "lapokat" (inaktivál) vagy "page in" (aktivál) egy szemcsét; Az alkalmazás zavartalan hozzáféréssel rendelkezik a logikailag létrehozott szemcsék teljes "memóriaterületéhez", függetlenül attól, hogy azok a fizikai memóriában vannak-e bármely adott időpontban.

A transzparens aktiválás dinamikus, adaptív terheléselosztást tesz lehetővé a szemcsék elhelyezésével és migrálásával a hardvererőforrások készletében. Ez a funkció jelentős javulást jelent a hagyományos aktormodellen, amelyben a színész élettartama alkalmazás által felügyelt.

Hely átlátszósága

A szemcsehivatkozás (proxyobjektum), amelyet a programozó a gabona metódusainak meghívására vagy más összetevőknek való átadására használ, csak a szemcse logikai identitását tartalmazza. A szemcse logikai identitásának a fizikai helyére történő fordítását és az üzenetek megfelelő útválasztását a Orleans futtatókörnyezet transzparens módon végzi.

Az alkalmazáskód úgy kommunikál a szemcsékkel, hogy közben a fizikai helyük is feledésbe merül, ami a hibák vagy az erőforrás-kezelés miatt idővel változhat, vagy mert a rendszer a híváskor inaktivál egy szemcsét.

Transzparens integráció egy állandó tárral

Orleans lehetővé teszi a gabona memóriabeli állapotának deklaratív leképezését egy állandó tárolóra. Szinkronizálja a frissítéseket, és transzparens módon garantálja, hogy a hívók csak az állandó állapot sikeres frissítése után kapják meg az eredményeket. Az elérhető meglévő állandó társzolgáltatók halmazának kiterjesztése és/vagy testreszabása egyszerű.

Hibák automatikus propagálása

A futtatókörnyezet automatikusan propagálja a nem kezelt hibákat a hívásláncban az aszinkron és elosztott try/catch szemantikával. Ennek eredményeképpen a hibák nem vesznek el egy alkalmazásban. Ez lehetővé teszi a programozó számára, hogy a hibakezelési logikát a megfelelő helyekre helyezze, anélkül, hogy minden szinten manuálisan propagálja a hibákat.

Transzparens méretezhetőség alapértelmezés szerint

A Orleans programozási modell úgy lett kialakítva, hogy végigvezetje a programozót egy alkalmazás vagy szolgáltatás több nagyságrenddel történő skálázásának sikerességén. Ez a bevált ajánlott eljárások és minták beépítésével és az alacsonyabb szintű rendszerfunkciók hatékony megvalósításával történik.

Íme néhány fontos tényező, amely lehetővé teszi a méretezhetőséget és a teljesítményt:

Az alkalmazásállapot implicit részletes particionálása

A szemcsék közvetlenül kezelhető entitásokként való használatával a programozó implicit módon lebontja alkalmazásuk általános állapotát. Bár a Orleans programozási modell nem írja elő, hogy mekkora vagy kicsi legyen egy szem, a legtöbb esetben érdemes viszonylag nagy számú szemből – milliókból vagy többből – rendelkezni, amelyek mindegyike az alkalmazás természetes entitását képviseli, például egy felhasználói fiókot vagy egy vásárlási megrendelést.

Mivel a szemcsék önállóan kezelhetők, és fizikai helyüket a futtatókörnyezet elvonja, óriási rugalmasságot nyújt a terheléselosztásban és a gyakori pontokat transzparensen és általánosan kezelni anélkül, Orleans hogy az alkalmazás fejlesztője meggondolta volna.

Adaptív erőforrás-kezelés

A szemcsék nem feltételezik a többi szem helyét, mivel interakcióba lépnek velük. A hely átláthatósága miatt a futtatókörnyezet dinamikusan kezelheti és módosíthatja az elérhető hardvererőforrások lefoglalását. A futtatókörnyezet ezt úgy teszi, hogy részletes döntéseket hoz a szemcsék a számítási fürtön való elhelyezéséről és migrálásáról a terhelési és kommunikációs mintákra reagálva – a bejövő kérések sikertelensége nélkül. Egy adott szemcsék több replikája létrehozásával a futtatókörnyezet az alkalmazáskód módosítása nélkül növelheti a szemcse átviteli sebességét.

Multiplexált kommunikáció

A Orleans szemcsék logikai végpontokkal rendelkeznek, és az üzenetek közöttük való üzenetkezelés a mindenhez való fizikai kapcsolatok (TCP-szoftvercsatornák) rögzített halmazán multiplexált. Ez lehetővé teszi, hogy a futtatókörnyezet több millió olyan címezhető entitást üzemeltetjen, amelyek esetében az operációs rendszer terhelése alacsony. Emellett a szemcsék aktiválása és inaktiválása nem jár fizikai végpont regisztrációjának/regisztrációjának megszüntetésével, például TCP-porttal vagy HTTP-URL-címgel, vagy akár EGY TCP-kapcsolat bezárásával.

Hatékony ütemezés

A futtatókörnyezet nagy számú egyszálas szemcse végrehajtását ütemezi a .NET-szálkészlet használatával, amely magas teljesítményoptimalizált. A nem blokkoló, folytatásalapú stílusban (a programozási modell egyik követelménye) írt szemcsés kóddal az Orleans alkalmazáskód nagyon hatékony "kooperatív" többszálú módon fut, versengés nélkül. Ez lehetővé teszi a rendszer számára, hogy magas átviteli sebességet érjen el, és nagyon magas processzorkihasználtság mellett fusson (akár 90%+) nagy stabilitás mellett.

Az a tény, hogy a rendszerben a szemek számának növekedése és a terhelés növekedése nem vezet további szálakhoz vagy más operációsrendszer-primitívekhez, segít az egyes csomópontok és az egész rendszer méretezhetőségében.

Explicit aszinkronság

A Orleans programozási modell explicitvé teszi az elosztott alkalmazások aszinkron jellegét, és a programozókat a nem blokkoló aszinkron kód írására irányítja. Az aszinkron üzenetkezeléssel és a hatékony ütemezéssel kombinálva ez lehetővé teszi az elosztott párhuzamosság és az általános átviteli sebesség nagy mértékű használatát a többszálas kommunikáció explicit használata nélkül.