2010-05-25 20 views
53

Ich versuche, die 'richtige' Akteur-Implementierung zu finden. Ich habe festgestellt, dass es eine Reihe von ihnen gibt, und es ist ein wenig verwirrend, einen auszuwählen. Persönlich bin ich besonders an entfernten Schauspielern interessiert, aber ich denke, ein vollständiger Überblick wäre für viele andere hilfreich. Das ist eine ziemlich allgemeine Frage, also antworten Sie einfach auf die Implementierung, von der Sie wissen.Verschiedene Scala Actor Implementierungen Übersicht

Ich weiß über die folgenden Scala Actor-Implementierungen (SAI). Bitte füge die fehlenden hinzu.

  • Scala 2.7 (Unterschied)
  • Scala 2.8
  • Akka (http://www.akkasource.org/)
  • Aufzug (http://liftweb.net/)
  • Scalaz (http://code.google.com/p/scalaz/)


  • Was sind die Ziel-Anwendungsfälle für diese ORKB (leichtgewichtig vs. "schweres" Enterprise Framework)?

  • unterstützen sie entfernte Akteure? Welche Mängel haben entfernte Akteure in den ORKB?
  • Wie ist ihre Leistung?
  • Wie aktiv ist die Gemeinschaft?
  • Wie einfach sind sie zu beginnen? Wie gut ist die Dokumentation?
  • Wie einfach sind sie zu erweitern?
  • Wie stabil sind sie? Welche Projekte benutzen sie?
  • Was sind ihre Mängel?
  • Was sind ihre Designprinzipien?
    • Sind sie Thread-basiert oder ereignisbasiert (empfangen/reagieren) oder beides?
    • Nested Empfängt
    • Hotswapping die Botschaft der Schauspieler Schleife
+0

Antworten unter http://stackoverflow.com/questions/3357332/which-actor-model-library-framework-for-java/7693638#7693638 – satyagraha

Antwort

6

Soweit ich weiß, nur Scala und Akka Unterstützung Remote-Akteure.

Akka wird von skalierbaren Lösungen unterstützt, die kommerzielle Unterstützung und Plugins für akka bieten. Akka scheint eine schwergewichtige Lösung zu sein, die auf die Integration in bestehende Frameworks (Camel, AMQP, JTA, Comet, Spring, Redis) und zusätzlich auf STMs und Persistenz ausgerichtet ist.

Akka im Vergleich zu Scala unterstützt keine verschachtelten Receivers, sondern unterstützt das Hotswapping der Nachrichtenschleife des Aktors und hat sowohl threadbasierte als auch ereignisbasierte Aktoren und sogenannte "ereignisbasierte single-threaded" Aktoren.

8

Scala 2.7.7. vs 2.8 nach The Scala 2.8.0 RC3 distribution:

Neue Reaktoren bieten leichtere, rein ereignisbasierte Aktoren mit optionaler, impliziter Senderidentifikation. Unterstützung für Akteure mit Daemon-Stil-Semantik wurde hinzugefügt. Akteure können so konfiguriert werden, dass sie den effizienten JSR166y Fork/Join-Pool verwenden, was zu erheblichen Leistungsverbesserungen bei 1.6 JVMs führt. Planer sind jetzt steckbar und einfacher anzupassen.

Es gibt auch ein Designdokument von Haller: Scala Actors: Unifying Thread-based and Event-based Programming

3

Ich erkannte, dass akka erschöpfende Streichhölzer erzwingt. Auch wenn technisch eine Teilfunktion erwartet wird, darf die Funktion nicht partiell sein. Dies bedeutet, dass Sie jede Nachricht sofort behandeln müssen.

9

Ab Scala 2.10 wird scala Schauspieler jetzt ist jetzt der Standard-Distribution veraltet und Akka Schauspieler Teil

einige nützliche
+2

http://docs.scala-lang.org/overviews/core/actors-migration-guide.html –

Verwandte Themen