Другой обзор реализаций агента Scala

Я пытаюсь найти 'правильную' реализацию агента. Я понял, что существует набор их, и это немного сбивает с толку для выбора того. Лично я особенно интересуюсь удаленными агентами, но я предполагаю, что полный обзор был бы полезен многим другим. Это - довольно общий вопрос, поэтому не стесняйтесь отвечать только за реализацию, о которой Вы знаете.

Я знаю о следующих Реализациях агента Scala (SAI). Добавьте недостающие.

  • Scala 2.7 (различие к)
  • Scala 2.8
  • Akka (http://www.akkasource.org/)
  • Лифт (http://liftweb.net/)
  • Scalaz (http://code.google.com/p/scalaz/)


  • Каковы целевые примеры использования для них САИС (легкий вес по сравнению с "тяжелой" платформой предприятия)?

  • они поддерживают удаленных агентов? Какие недостатки удаленные агенты имеют в САИСЕ?
  • Как их производительность?
  • Как активный является там общественным?
  • Как легкий они должны начать? Насколько хороший документация?
  • Как легкий они должны расшириться?
  • Насколько стабильный они? Какие проекты используют их?
  • Каковы их недостатки?
  • Каковы их принципы разработки?
    • Они, распараллеливают базирующийся, или базирующееся событие (получите/, реагируют), или оба?
    • Вложенный получает
    • замена в горячем режиме цикла сообщения Агента

53
задан Stefan K. 22 August 2012 в 18:15
поделиться

3 ответа

Насколько мне известно, только Scala и Akka поддерживают удаленных участников.

Akka поддерживается масштабируемыми решениями, которые предлагают коммерческую поддержку и плагины для akka. Akka кажется тяжелым решением, которое нацелено на интеграцию с существующими фреймворками (camel, AMQP, JTA, Comet, Spring, Redis), а также с STM и постоянством.

Akka по сравнению со Scala не поддерживает вложенные приемы, но поддерживает горячую замену цикла сообщений акторов и имеет как потоковые, так и основанные на событиях акторы, а также так называемые «однопоточные на основе событий».

6
ответ дан 7 November 2019 в 08:52
поделиться

Scala 2.7.7. против 2.8 после Дистрибутива Scala 2.8.0 RC3:

Новые реакторы обеспечивают более лёгкие, чисто событийные акторы с необязательной, неявной идентификацией отправителя. Добавлена поддержка акторов с семантикой в стиле демона. Акторы могут быть настроены на использование эффективного пула JSR166y fork/join, что приводит к значительному повышению производительности на JVM версии 1.6. Планировщики теперь подключаемые и легче настраиваются.

Также есть проектный документ Haller: Scala Actors: Унификация программирования на основе потоков и событий

8
ответ дан 7 November 2019 в 08:52
поделиться

Я понял, что акка требует исчерпывающих совпадений. Таким образом, даже если технически receive ожидает частичную функцию, функция не должна быть частичной. Это означает, что вы должны обрабатывать каждое сообщение немедленно.

3
ответ дан 7 November 2019 в 08:52
поделиться
Другие вопросы по тегам:

Похожие вопросы: