Search the Community
Showing results for tags 'csharp'.
-
Microsoft Orleans: Framework pre Distribuované Aplikácie Čo je Microsoft Orleans? Microsoft Orleans je framework na tvorbu distribuovaných, vysoko škálovateľných a spoľahlivých aplikácií v .NETe. Bol vyvinutý v Microsoft Research a je založený na virtual actor pattern, čo uľahčuje prácu s objektami v distribuovanom prostredí. Orleans je navrhnutý tak, aby minimalizoval potrebu manuálnej správy stavových objektov a synchronizácie, čo z neho robí ideálne riešenie pre aplikácie, ktoré vyžadujú vysokú dostupnosť a horizontálnu škálovateľnosť, ako napríklad herné servery, IoT systémy, finančné aplikácie či analytické platformy. Hlavné Vlastnosti Orleans Virtual Actors: Objekty (aktéri), ktoré automaticky „ožívajú“ a „zanikajú“ podľa potreby, bez manuálneho riadenia ich životného cyklu. Distribuovaná správa stavov: Aktéri uchovávajú svoj stav v perzistentnom úložisku a obnovujú ho pri reaktivácii. Automatické škálovanie: Orleans dynamicky prerozdeľuje zaťaž v klustri. Jednoduchosť: Používa sa podobne ako klasický objektový model v C#. Podpora cloudových riešení: Nativne podporuje Azure, ale je použiteľný aj v iných prostrediach ako napriklad Kubernetes. Virtual Actor Pattern Orleans je postavený na Virtual Actor Model, ktorý eliminuje manuálnu správu aktérov. Tento model rieši niektoré nevýhody klasického Actor Model (ako v Akka.NET) nasledujúcim spôsobom: Nie je potrebné manažovať životný cyklus aktérov – aktéri existujú virtuálne a sú aktivovaní, keď sú potrební. Automatická persistencia – stav aktéra môže byť uložený v perzistentnom úložisku (napr. SQL, Azure Table Storage, DynamoDB). Transparentné spracovanie správ – odosielanie správ nevyžaduje vedieť, kde aktér beží, systém ho nájde automaticky. Príklad definície aktéra v Orleans: public interface IPlayer : IGrainWithStringKey { Task<int> GetScore(); Task SetScore(int score); } public class PlayerGrain : Grain, IPlayer { private int _score; public Task<int> GetScore() => Task.FromResult(_score); public Task SetScore(int score) { _score = score; return Task.CompletedTask; } } Príklad volania PlayerGrain: IGrainFactory grainFactory = ...; // Inicializácia Orleans Grain Factory var player = grainFactory.GetGrain<IPlayer>("player1"); await player.SetScore(100); int score = await player.GetScore(); Console.WriteLine($"Hodnotenie hráča: {score}"); Ako Orleans Funguje? Orleans beží na klustri serverov a riadi aktérov v rámci uzlov (silo). Každý uzol je schopný hostovať aktérov a spracovávať ich požiadavky. Základné komponenty: Grain (aktér) - Logická jednotka, ktorá uchováva stav a vykonáva operácie. Silo - Serverový proces, ktorý hostuje aktérov. Client - Externý proces, ktorý volá aktérov cez API. Storage Providers - Mechanizmus pre perzistenciu stavu. Komunikácia medzi aktérmi Aktéri v Orleans komunikujú asynchrónne pomocou správ odosielaných cez framework. Každý aktér je identifikovaný unikátnym kľúčom a môže byť vyhľadaný prostredníctvom IGrainFactory. Komunikácia medzi aktérmi prebieha cez proxy objekty generované Orleans runtime, ktoré zabezpečujú správne smerovanie správ. Príklad volania iného aktéra z aktuálneho aktéra: public class PlayerGrain : Grain, IPlayer { public async Task SendChallenge(string opponentId) { var opponent = GrainFactory.GetGrain<IPlayer>(opponentId); await opponent.ReceiveChallenge(this.GetPrimaryKeyString()); } public Task ReceiveChallenge(string challengerId) { Console.WriteLine($"Hráč {challengerId} vás vyzval na súboj!"); return Task.CompletedTask; } } V tomto prípade aktér PlayerGrain posiela výzvu inému aktérovi PlayerGrain prostredníctvom jeho identifikátora. Orleans runtime zabezpečí, že správa sa doručí správnemu aktérovi, aj keď momentálne nie je aktívny. Kde sa Orleans Používa? Microsoft Orleans je široko používaný v rôznych odvetviach: Herný priemysel: Používa ho napr. Bungie pre Destiny 2. IoT a telemetria: Zber a spracovanie veľkého množstva udalostí. Finančné systémy: Distribuované spracovanie obchodných transakcií. Analytika a AI: Pracuje s distribuovanými modelmi strojového učenia. Záver Microsoft Orleans je silný framework pre tvorbu distribuovaných aplikácií v .NET ekosystéme. Jeho virtual actor pattern robí prácu s distribuovanými objektmi jednoduchšou a menej náročnou na správu. Ak hľadáte riešenie pre vysokoškálovateľné systémy s automatickou distribúciou a perzistenciou, Orleans je skvelou voľbou.
- 1 odpověď
-
- orleans
- actor pattern
-
(a 1 další)
Tagged with:
-
Zdravím vás. Chtěl bych vám představit svůj programek naprogramovaný v C#, dělám ho už 2 dny a berte na vědomí, že není zrovna ve stabilní verzi.. O Co jde? O program ve kterém si budete moci psát vlastní scripty do her, CS1.6, SA-MP.. například AMXX Studio, Pawno, SA[MP]CE.. už snad víte co tím myslím, nenapadl mě lepší text než tento.. omlouvám se.. Na čem to funguje? Byl postavený v jazyce C# (.NET) dále využívá knihovnu SciLexer (Scintilla for .NET). Jaké jsou požadavky? Minimálně .NET Framework 3.0~ Nebýt líné prase. Co to obsahuje? Zatím jenom kódování do CS1.6, na SA-MP se pracuje. Dále samozřejmě textový editor, function list with help, kompilace do .amxx souboru a další na obrázku Kde to stáhnu? DOWNLOAD (V0.2.2) Aplikace vás o novější verzi informuje při dalším spuštěním. Changelog V0.2.2 - Opraveno hodně bugu - Větší pomoc při kódování - Upraven vzhled (Split Container) - k Search boxu přidán i třidič podle typu (Funkce, Proměnná) - Zvětšen počet zbarvení funkcí - Ke kompilaci přidáno "Kompilovat a spustit" - Možnost nastavit output cestu kde se bude kompilovaný soubor uložovat. ----- Důvod proč jsem tuto aplikaci je udělal protože mě v AMXX Studio doslova už s*re že nejde přidávát složená závorka "{", stahnul jsem si upravenou verzi, ale už nejde a Delphi mi také nefunguje proto jsem se tak na*ral a otevřel VS a makal..:DD