Jakaś dobra implementacja Actors dla C#? [zamknięte]
Czy jest jakaś dobra implementacja actors concurrency model dla. Net / c#?
Muszę zoptymalizować C# i uważam, że model actors idealnie pasuje jako rozwiązanie mojego problemu. Niestety mam doświadczenie tylko z implementacją Scali.
13 answers
W tym celu należy zapoznać się z MS Concurrency & Coordination Runtime (CCR) oraz Decentralized Software Services (DSS), częścią Robotic Studio.
Te ramy pozwoliłyby na rozwój luźno powiązanych usług, które spełniają większość wymagań podejścia aktora.
Axum byłby najlepszy, niestety nadal jest w jakiejś fazie alfa / beta (UPDATE został zabity w lutym. 2011). Używam go do moich badań i muszę powiedzieć, że ogólny kierunek jest wielki i ma ogromny potencjał.
Nie C# , ale C++ jest biblioteką Microsoft asynchronicznych agentów, która daje Ci wszystkie funkcje, których potrzebujesz.
Przyjrzyj się dobrze równoległym funkcjom . NET 4.
Mam nadzieję, że to pomoże!
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-04-15 22:38:05
. NET Model Framework:
Proto.Aktor
- aktorzy
- Wirtualni Aktorzy
Https://github.com/AsynkronIT/protoactor-dotnet
Akka.NET
- aktorzy
Https://github.com/akkadotnet/akka.net
Microsoft Orleans
- Wirtualni Aktorzy
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-03-24 07:50:44
Można też przyjrzeć się podejściu Project Orleans Microsofts do aktorów.(który został wydany w zeszłym tygodniu)
To jest strona projektu: http://research.microsoft.com/en-us/projects/orleans/
Oto również dobra rozmowa z build 2014 jako wprowadzenie
Wykorzystanie Orleans do budowy rozproszonych usług chmurowych Halo 4 na Azure http://channel9.msdn.com/Events/Build/2014/3-641
Należy pamiętać, że bity do pobrania opublikowane dzisiaj są CTP.
Wprowadzenie do Orleanu: http://felixnotes.com/orleans-microsofts-take-on-the-actor-pattern-in-net/
I tak, był też open source: https://github.com/dotnet/orleans
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-02-02 21:25:15
Stact
Aktor-lib na .Net. całkiem kompetentny i dobrze sprawdzony. Fundacja TopShelf, MassTransit i NServiceBus.Gospodarz.Https://github.com/phatboyg/stact
Zawiera abstrakcje:
- Obieg pracy, pozwalający na definiowanie i wykonywanie złożonych protokołów sterowanych przez Stany]}
- kanały, do obsługi komunikatów przesyłanych pomiędzy obiektami
- aktorzy, zarówno Pisani jak i Anonimowi
- włókna, gwintowanie kooperacyjne model
- Routing
- Prośba / Odpowiedź
- Schedulers
Nadchodzący:
- właściwe hierarchie przełożonego
Jest aktywnie rozwijany w czasie pisania przez Chrisa.
Przegląd:
Tworzenie aplikacji współbieżnych wymaga podejścia, które odbiega od obecnych metod tworzenia oprogramowania, podejścia, które kładzie nacisk na współbieżność i komunikację między komponentami systemu autonomicznego. Model aktora definiuje system komponentów oprogramowania zwanych aktorami, które współdziałają ze sobą poprzez wymianę komunikatów (zamiast wywoływania metod na interfejsach w projekcie zorientowanym obiektowo), tworząc system, w którym dane (zamiast sterowania) przepływają przez komponenty, aby spełnić wymagania funkcjonalne systemu.
Stact jest biblioteką do budowania aplikacji z wykorzystaniem modelu actor w .NET. główny zespół, Stact.dll, jest biblioteką actor i zawiera wszystko, co potrzebne do korzystania z modelu actor w dowolnym rodzaj zastosowania. Istnieją również dodatkowe ramy wspierające, takie jak Stact.ServerFramework, który może być używany do wystawiania aktorów za pośrednictwem gniazd lub HTTP, umożliwiając tworzenie usług przy użyciu aktorów.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-10-06 15:27:13
NAct jest frameworkiem dla. NET, który wymaga naprawdę łatwego w użyciu podejścia. (Disclaimer: I wrote it)
Komunikat przechodzący między dwoma aktorami jest tylko wywołaniem metody między dwoma obiektami. Musisz się upewnić, że wszystkie argumenty metody są niezmienne i będą bezpieczne dla wątków.
Działa poprzez zawijanie obiektów w proxy, który zajmuje się przełączaniem wątków. Wszystkie normalne funkcje. NET, w szczególności zdarzenia, są obsługiwane poprawnie, więc można pisać normalny kod i łączenie wątków będzie przebiegać samodzielnie.
Istnieje nawet gałąź z obsługą C # 5 asynchronicznego / oczekującego.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-03-03 22:16:28
Dzisiaj Microsoft ogłosił usługę Azure Service Fabric, która zgodnie z tym obrazem implementuje model programowania aktora:
Zobacz ogłoszenie: http://azure.microsoft.com/blog/2015/04/20/announcing-azure-service-fabric-reducing-complexity-in-a-hyper-scale-world/
Aktualizacja: SDK jest już dostępny, a także jest Video tutorial.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-04-30 20:53:29
Nie znam żadnych implementacji do C#, ale jest zupełnie nowy język programowania oparty na modelu Actor firmy Microsoft. Nazywa się Axum :
Axum
(wcześniej nazwa kodowaMaestro
) - język programowania współbieżnego oparty na modelu Actor, rozwijany przez firmę Microsoft. Jest to obiektowy język oparty na środowisku uruchomieniowym. NET Common Language wykorzystujący składnię podobną do C, która jako język specyficzny dla domeny jest przeznaczona do rozwoju części aplikacji, która jest dobrze przystosowana do współbieżności. Zawiera jednak wystarczająco dużo konstrukcji ogólnego przeznaczenia, że nie trzeba przełączać się na język programowania ogólnego przeznaczenia (jak C#) dla sekwencyjnych części współbieżnych komponentów.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-02-02 17:36:35
Czy rozważałeś Mailboxprocesor T, dostarczony z F#?
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-04-07 13:12:39
Należy również rozważyć PostSharp aktorów
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-02-09 09:12:09
Moim poprzednim projektem był AsyncWcfLib . Jest to biblioteka C# dla aktorów komunikujących się w procesie lub między różnymi aplikacjami. Zdalne przekazywanie wiadomości wykorzystuje WCF.
Usługa actor catalog umożliwia wyszukiwanie aktora na kilku hostach.Gospodarze mogą Uruchom Windows lub Linux.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-02-19 23:01:29
FSharp.Aktor
/ Align = "left" /Z przykładu:
let rec schizoPing =
(fun (actor:IActor<_>) ->
let log = (actor :?> Actor.T<_>).Log
let rec ping() =
async {
let! (msg,_) = actor.Receive()
log.Info(sprintf "(%A): %A ping" actor msg, None)
return! pong()
}
and pong() =
async {
let! (msg,_) = actor.Receive()
log.Info(sprintf "(%A): %A pong" actor msg, None)
return! ping()
}
ping()
)
Wysłanie dwóch Wiadomości do aktora "schizo" skutkuje
let schizo = Actor.spawn (Actor.Options.Create("schizo")) schizoPing
!!"schizo" <-- "Hello"
!!"schizo" <-- "Hello"
Wyjście:
(schizo): "Hello" ping
(schizo): "Hello" pong
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-06-17 09:10:06
Właśnie zauważyłem to pytanie i pomyślałem o dodaniu nowszego punktu danych. Microsoft ma obecnie częściowo oficjalny projekt dla tego, o nazwie ActorFX . Jest to open source i wciąż ewoluuje, ale warto mieć na niego oko...
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-10-30 13:21:31