SORU
13 Mayıs 2011, Cuma


Ne'In Scala?farklı Aktörler uygulama arasındaki fark

Scala sürüm 2.9.0, Typesafe Stack Akka çerçevesinde Scala dilini birleştiren de açıklandı. Scala standart kütüphane aktörler vardı. ama şimdi, Akka kendi uygulaması kullanır. Ve, eğer diğer uygulamalar açısından bakacak olursak, aynı zamanda Asansör ve Scalaz uygulamaları da buluruz!

Bu uygulamaları arasındaki fark nedir?

CEVAP
13 Mayıs 2011, Cuma


Bu cevap bana ait değil. It was produced Viktor Klang (Akka şöhret) David Pollak (Asansör şöhret) yardımıyla, Jason Zaugg (Scalaz şöhret), Philipp Haller (Scala Aktörlerin şöhret).

Burada tek yaptığım şey daha kolay, Taşma desteklenen tablolar Yığını olacaktı) biçimlendirme.

Daha çok zaman var daha sonra doldururum birkaç yer var.

Felsefe Tasarımı

  • Scalaz Aktörler

    Az karmaşıklık. Maksimal genellik, türü ve genişletebilme.

  • Asansör Aktörler

    Minimal karmaşıklık, Çöp Toplama tarafından JVM yerine düşünen bir açık yaşam döngüsü, hata işleme davranışı ile tutarlı diğer Scala Ve Java programları hafif/küçük bellek ayak izi, posta kutusu, statik olarak benzer Scala Aktörler ve Ayrık aktörler, yüksek performans.

  • Scala Aktörler

    Scala, hafif/küçük bellek ayak izi tam Ayrık aktör modeli bulunur.

  • Akka Aktörler

    Basit ve şeffaf bir şekilde dağıtılabilir, yüksek performanslı, hafif ve son derece uyarlanabilir.

Sürüm oluşturma

                    Scalaz Actors   Lift Actors     Scala Actors    Akka Actors
Current stable ver. 5               2.1             2.9.0           0.10
Minimum Scala ver.  2.8             2.7.7                           2.8
Minimum Java ver.                   1.5             1.5             1.6

Aktör Modeli Destekler

                    Scalaz Actors   Lift Actors     Scala Actors    Akka Actors
Spawn new actors    Yes             Yes             Yes             Yes
inside of actor
Send messages to    Yes             Yes             Yes             Yes
known actor 
Change behavior     Actors are      Yes             Yes: nested     Yes:
for next message    immutable                       react/receive   become/unbecome
Supervision         Not provided    No              Actor: Yes,     Yes
(link/trapExit)                                     Reactor: No

Devlet yalıtım düzeyi

Eğer kullanıcı ortak yöntemleri tanımlar onların Aktörler, onlar çağrılabilir dış?

  • Scalaz Aktörler: n/a. Aktör mühürlü bir özelliktir.
  • Asansör Aktörler: Evet
  • Scala Aktörler: Evet
  • Akka Aktör: aktör Hiçbir örnek bir ActorRef arkasına saklanmış.

Aktör yazın

  • Scalaz Aktörler: Actor[A] extends A => ()
  • Asansör Aktörler: LiftActor, SpecializeLiftActor[T]
  • Scala Aktörler: Reactor[T], Actor extends Reactor[Any]
  • Akka Aktörler: Actor[Any]

Aktör yaşam döngüsü yönetimi

                    Scalaz Actors   Lift Actors     Scala Actors    Akka Actors
Manual start        No              No              Yes             Yes
Manual stop         No              No              No              Yes
Restart-on-failure  n/a             Yes             Yes             Configurable per actor instance
Restart semantics                   n/a             Rerun actor     Restore actor to stable state by re-allocating it and
                                                    behavior        throw away the old instance
Restart configurability             n/a             n/a             X times, X times within Y time
Lifecycle hooks provided            No lifecycle    act             preStart, postStop, preRestart, postRestart

Mesaj gönder modları

                    Scalaz Actors   Lift Actors     Scala Actors    Akka Actors
Fire-forget         a ! message     actor ! msg     actor ! msg     actorRef ! msg
                    a(message)
Send-receive-reply  (see 1)         actor !? msg    actor !? msg    actorRef !! msg
                                    actor !! msg
Send-receive-future (see 2)                         actor !! msg    actorRef !!! msg
Send-result-of-     promise(message).                               future.onComplete( f => to ! f.result )
future              to(actor)
Compose actor with  actor comap f   No              No              No
function            (see 3)

(1) Herhangi bir fonksiyon f gibi bir oyuncu olur

val a: Msg => Promise[Rep] = f.promise
val reply: Rep = a(msg).get

(2) Herhangi bir fonksiyon f gibi bir oyuncu olur

val a = f.promise
val replyFuture = a(message)

(3) Karşıtı functor: actor comap f. Ayrıca Promise Kleisli kompozisyon.

Mesaj Cevap modu

Hala ayarlamaya çalışıyorum

                    Scalaz Actors   Lift Actors     Scala Actors    Akka Actors
reply-to-sender-in-message
reply-to-message

İleti işleme

İç içe geçmiş destekler alır?

  • Scalaz Aktörler: --
  • Asansör Aktörler: Evet küçük bir el kodlama ile ().
  • Scala Aktörler: Evet, parçacığı tabanlı iki olay tabanlı bir tepki alırsınız.
  • Aktörler Akka: yuvalama alır zamanla bellek sızıntıları ve performans düşüşüne neden olabilir.

İleti Yürütme Mekanizması

Hala ayarlamaya çalışıyorum

                    Scalaz Actors   Lift Actors     Scala Actors    Akka Actors
Name for Execution Mechanism
Execution Mechanism is
configurable
Execution Mechanism can be
specified on a per-actor basis
Lifecycle of Execution Mechanism
must be explicitly managed
Thread-per-actor execution
mechanism
Event-driven execution mechanism
Mailbox type
Supports transient mailboxes
Supports persistent mailboxes

Dağıtım/Uzaktan Aktörler

                    Scalaz Actors   Lift Actors     Scala Actors    Akka Actors
Transparent remote  n/a             No              Yes             Yes
actors
Transport protocol  n/a             n/a             Java            Akka Remote Protocol
                                                    serialization   (Protobuf on top of TCP)
                                                    on top of TCP
Dynamic clustering  n/a             n/a             n/a             In commercial offering

Nasıl

Hala ayarlamaya çalışıyorum

                    Scalaz Actors   Lift Actors     Scala Actors    Akka Actors
Define an actor
Create an actor instance
Start an actor instance
Stop an actor instance

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • boniver

    boniver

    17 NİSAN 2006
  • Evan Coury

    Evan Coury

    29 NİSAN 2007
  • Matt Davis

    Matt Davis

    4 ŞUBAT 2006