2010-05-25 35 views
53

Tôi đang cố gắng tìm triển khai diễn viên 'đúng'. Tôi nhận ra rằng có một đám họ và có chút rắc rối khi chọn một. Cá nhân tôi đặc biệt quan tâm đến các diễn viên từ xa, nhưng tôi đoán một cái nhìn tổng quan hoàn chỉnh sẽ hữu ích cho nhiều người khác. Đây là một câu hỏi khá chung chung, vì vậy hãy trả lời chỉ để thực hiện bạn biết.Triển khai diễn viên Scala diễn viên khác nhau Tổng quan

Tôi biết về các triển khai diễn viên Scala sau đây (SAI). Hãy thêm những cái còn thiếu.

  • Scala 2,7 (chênh lệch tới)
  • Scala 2,8
  • Akka (http://www.akkasource.org/)
  • Lift (http://liftweb.net/)
  • Scalaz (http://code.google.com/p/scalaz/)


  • là gì các trường hợp sử dụng đích cho các SAI này (trọng lượng nhẹ so với khung công tác "nặng" của doanh nghiệp)?

  • họ có hỗ trợ các diễn viên từ xa không? Những thiếu sót nào diễn ra từ xa trong các SAI?
  • Biểu diễn của họ như thế nào?
  • Hoạt động của cộng đồng ở mức nào?
  • Bắt đầu dễ dàng như thế nào? Tài liệu hướng dẫn tốt đến mức nào?
  • Làm cách nào để mở rộng?
  • Chúng ổn định như thế nào? Những dự án nào đang sử dụng chúng?
  • Những thiếu sót của họ là gì?
  • Nguyên tắc thiết kế của chúng là gì?
    • Có phải dựa trên chủ đề hoặc sự kiện (nhận/phản hồi) hoặc cả hai?
    • Nested nhận
    • hotswapping vòng lặp thông điệp của diễn viên
+0

Một số hữu ích câu trả lời tại http://stackoverflow.com/questions/3357332/which-actor-model-library-framework-for-java/7693638#7693638 – satyagraha

Trả lời

6

Theo như tôi biết, chỉ Scala và Akka hỗ trợ diễn viên từ xa.

Akka được sao lưu bằng khả năng mở rộng, cung cấp hỗ trợ thương mại và phích cắm cho akka. Akka có vẻ như một giải pháp hạng nặng, nhắm mục tiêu tích hợp với các khung công tác hiện có (lạc đà, AMQP, JTA, Sao chổi, Mùa xuân, Redis) và STM bổ sung và kiên trì.

Akka so với Scala không hỗ trợ nhận lồng nhau, nhưng hỗ trợ hotswapping vòng lặp thông điệp tác nhân và có cả hai, dựa trên chủ đề và sự kiện dựa trên diễn viên và cái gọi là "dựa trên sự kiện đơn luồng".

8

Scala 2.7.7. so với 2,8 sau The Scala 2.8.0 RC3 distribution:

Các lò phản ứng mới cung cấp thêm các tác nhân nhẹ, thuần túy dựa trên sự kiện với nhận dạng người gửi tiềm ẩn tùy chọn. Hỗ trợ cho các diễn viên với ngữ nghĩa daemon phong cách đã được thêm vào. Các diễn viên có thể được cấu hình để sử dụng pool fork/join JSR166y hiệu quả, dẫn đến các cải tiến hiệu suất đáng kể trên 1,6 JVM. Trình lập lịch biểu hiện có thể cắm và dễ tùy chỉnh hơn.

Ngoài ra còn có một hồ sơ thiết kế của Haller: Scala Actors: Unifying Thread-based and Event-based Programming

3

tôi nhận ra rằng AKKA thi hành các trận đấu đầy đủ. Vì vậy, ngay cả khi kỹ thuật nhận được mong đợi một chức năng một phần, chức năng không phải là một phần. Điều này có nghĩa là bạn phải xử lý mọi thư ngay lập tức.

9

Tính đến Scala 2.10, diễn viên scala hiện đang bị phản đối và Akka diễn viên hiện là một phần của phân phối chuẩn

+2

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

Các vấn đề liên quan