Модель актора

редактировать
Модель параллельных вычислений

Модель акторав информатике - это математическая модель параллельных вычислений, которая рассматривает субъект как универсальный примитив параллельных вычислений. В ответ на полученное сообщение субъект может: принимать локальные решения, создавать больше субъектов, отправлять больше сообщений и определять, как отвечать на следующее полученное сообщение. Акторы могут усилить свое собственное частное состояние, но могут влиять на друга только косвенно через обмен сообщениями (устраняя необходимость в синхронизации на основе блокировки ).

Модель акторовла возникла в 1973 году. Она использовалась как в основе для теоретического понимания вычислений, так и в качестве теоретической основы для нескольких практических реализаций из параллельных систем. Связь модели с другими работами обсуждается в модели акторов и расчетах процессов.

Содержание
  • 1 История
  • 2 Основные концепции
  • 3 Формальные системы
  • 4 Приложения
  • 5 Сообщение -проходная семантика
    • 5.1 Неограниченное противоречие недетерминизма
    • 5.2 Прямая связь и асинхронность
    • 5.3 Создание актора плюс адреса в сообщениях означает переменную топологию
    • 5.4 По своей сути параллельный
    • 5.5 Нет требований к порядку сообщений сообщений
    • 5.6 Локальность
    • 5.7 Составление систем акторов
    • 5.8 Поведение
    • 5.9 Моделирование других систем параллелизма
    • 5.10 Теорема о вычислительном представлении
    • 5.11 Связь с логическим программированием
    • 5.12 Миграция
    • 5.13 Безопасность
    • 5.14 Синтез субъектов адресов
    • 5.15 Контраст с другими моделями параллелизма передачи сообщений
  • 6 Влияние
    • 6.1 Теория
    • 6.2 Практика
  • 7 Исправленные проблемы
  • 8 Программирование с акторами
    • 8.1 Ранние языки программистов рования акторов
    • 8.2 Более поздние языки программирования акторов
    • 8.3 Библиотеки и фреймворки акторов
  • 9 См. Также
  • 10 Ссылки
  • 11 Дополнительная литература
  • 12 Внешние ссылки
История

Согласно Карлу Хьюитту, В отличие от предыдущих моделей вычислений, модель акторов была вдохновлена физикой, включая общую теорию относительности и квантовую механику. На нем также повлияли языки программирования Lisp, Simula, ранние версии Smalltalk, системы на основе возможностей и коммутация пакетов. Его «мотивирована перспективой создания высокопараллельных вычислительных машин, состоящих из десятков, сотен или даже независимых микропроцессоров, каждая со своей собственной памятью и коммуникационным процессором, обменивающихся данными через высокопроизводительную коммуникационную сеть». С тех пор появление массового параллелизма в компьютерных архитектурах многоядерных и многоядерных возродило интерес к модели акторов.

После публикации Хьюитта, Бишопа и Штайгера 1973 года Ирен Грейф разработала операционную семантику для моделей акторов в рамках своего докторского исследования. Два года спустя Генри Бейкер и Хьюитт опубликовали набор аксиоматических заболеваний для акторных систем. Другие важные вехи диссертацию Уильяма Клингера 1981 года, в которой вводится денотационная семантика, основанная на области власти и диссертация Гул Ага 1985 года , которая получила дальнейшее развитие. семантическая модель на основе переходов, дополнительные модель Клингера. Это привело к полной разработке теории моделей акторов.

. Основная работа по реализации программного обеспечения была проделана Рассом Аткинсоном, Джузеппе Аттарди, Генри Бейкером, Джерри Барбером, Питером Бишопом, Питером де Йонгом, Кеном Каном, Генри Либерманом, Карлом Мэннингом. , Том Рейнхардт, Ричард Штайгер и Дэн Териолт в группе семантики передачи сообщений Массачусетского технологического института (MIT). Исследовательские группы во главе с Чаком Зейтсом из Калифорнийского технологического института (Калифорнийский технологический институт) и Биллом Далли из Массачусетского технологического института создали компьютерные архитектуры, которые в дальнейшем развили передачу сообщений в модели. См. Реализация модели актора.

Исследование модели актора проводилось в Калифорнийском технологическом институте, Киотском университете Лаборатория Токоро, Microelectronics and Computer Technology Corporation (MCC), Лаборатория искусственного интеллекта Массачусетского технологического института, SRI, Стэнфордский университет, Университет Иллинойса в Урбана-Шампейн, Университет Пьера и Марии Кюри (Парижский университет 6), Пизанский университет, Токийский университет Лаборатория Йонедзава, Centrum Wiskunde & Informatica (CWI) и другие.

Фундаментальные концепции

Модель актора принимает философию, согласно которой все является актером. Это похоже на философию «все есть объект», используемую некоторые объектно-ориентированными языками программирования.

Актер - это вычислительный объект, который в ответ на полученное сообщение может одновременно:

  • отправить конечное количество сообщений другим субъекту;
  • создать конечное количество новых акторов;
  • обозначают поведение, какое будет сообщение для следующего полученного сообщения.

Не существует предполагаемых вариантов выполнения указанных действий.

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

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

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

Формальные системы

За прошедшие годы было разработано несколько различных формальных систем, которые позволяют рассуждать о системах в модели акторов. К ним относятся:

Существуют также формы, которые не полностью соответствуют модели акторов, поскольку они не формализуют гарантированную доставку сообщений, включая следующие (см. Попытки связать семантику актора с алгеброй и линейной логикой ):

Приложения

Модель актора может быть в качестве основы для анализа, понимания и рассуждений в широком диапазоне параллельных систем. Например:

  • Электронная почта (электронная почта ) может быть смоделирована как система субъектов. Учетные записи моделируются как субъекты, а адрес электронной почты как адреса субъектов.
  • Веб-службы могут быть смоделированы с помощью конечных точек Простого протокола доступа к объекту (SOAP ), смоделированных как адреса субъектов.
  • Объекты с блокировками (например, как в Java и C # ) могут быть смоделированы как сериализатор при условии, что их реализация таковы, что сообщения может постоянно поступать (возможно, сохраняясь во внутренней очереди ). Сериализатор - это важный тип актора, который определен тем своимством, что он постоянно сообщает для поступления новых сообщений; каждое отправленное в сериализатор, гарантированно поступит.
  • Тестирование и нотация управления тестированием (TTCN ), как TTCN-2, так и TTCN-3, следует модели актора довольно близко. В TTCN субъектом является тестовый компонент: либо параллельный тестовый компонент (PTC), либо основной тестовый компонент (MTC). Компоненты тестирования могут отправлять и получать сообщениями удаленного партнера (компоненты однорангового тестирования тестовой системы), причем последний идентифицируется по его адресу. Каждый тестовый компонент имеет привязанное к нему дерево поведения; тестовые программные компоненты. Встроенные языковые конструкции определяют действия, которые могут быть получены при получении объекта внутренней очереди сообщений, как отправка другого однорангового сообщения или создание новых тестовых компонентов.
Семантика передачи сообщений

Модель актора основ на семантике передачи сообщений.

Споры о неограниченном недетерминизме

Возможно, первыми параллельными программами были обработчики прерываний. В процессе нормальной работы компьютер должен иметь возможность получить информацию извне (символы с клавиатуры, пакеты из сети и т. Д.). Таким образом, когда информация поступила, выполнение компьютера было прервано, и вызван специальный код (называемый обработчиком прерывания) для помещения информации в буфер данных , откуда она могла быть возможна извлечена.

В начале 1960-х прерывания начать работу для имитации нескольких программ на одном процессоре. Наличие параллелизма с разделяемой памятью породило проблему управления параллелизмом. Первоначально эта проблема задумывалась как одна из взаимного исключения на одном компьютере. Эдсгер Дейкстра разработал семафор и позже, между 1971 и 1973 годами, Тони Хоар и Пер Бринч Хансен разработал мониторы решить проблему взаимного исключения. Однако ни одно из этих средств предоставляет конструкцию языка программирования, которая инкапсулирует доступ к общим ресурсам. Эта инкапсуляция была позже выполнена конструкцией сериализатора ([Hewitt and Atkinson 1977, 1979] и [Atkinson 1980]).

Первые модели вычислений (например, машины Тьюринга, Постпродукция, лямбда-исчисление и т. Д.) Были основаны на математике и использовали глобальное состояние для представления вычислительного шага (позже обобщенный в [McCarthy and Hayes 1969] и [Dijkstra 1976] см. упорядочение событий в сравнении с глобальным состоянием ). Каждый вычислительный шаг был от одного глобального состояния вычислений к следующему глобальному состоянию. Подход глобального состояния был продолжен в теории автоматов для конечных автоматов и выталкивающих стековых машин, включая их недетерминированные версии. Такие недетерминированные автоматы обладают своим ограниченного недетерминизма ; то есть, если машина всегда останавливается при запуске в своем начальном состоянии, то есть ограничение на количество состояний.

Эдсгер Дейкстра далее развил недетерминированный подход глобального состояния. Модель Дейкстры вызвала споры относительно неограниченной недетерминизма (также называемой неограниченной неопределенности), свойства параллелизма, из-за которого время задержки в обслуживании запроса может стать предоставлением в результате арбитража разногласий за общие ресурсы с гарантией того, что запрос в конечном итоге будет обслужен. Хьюитт утверждал, что модель актера должна обеспечивать гарантию обслуживания. В модели Дейкстры, хотя между выполнением последовательных инструкций на компьютере может быть неограниченное количество времени, (параллельная) программа, начавшаяся в четко определенном состоянии, может завершиться только в ограниченном количестве состояний [Dijkstra 1976]. Следовательно, его модель не могла предоставить гарантию обслуживания. Дейкстра утверждал, что невозможен неограниченный недетерминизм.

Хьюитт утверждал, нет никаких ограничений, которые можно поставить на то, сколько времени вычислительной схемы, называемой , для урегулирования (см. метастабильность (электроника) ). Арбитры используются в компьютере, чтобы справиться с тем обстоятельством, что компьютерные часы работают асинхронно в отношении ввода извне, например ввода с клавиатуры, доступа к диску, ввода сети и т. Д. Таким образом, сообщение, отправленное на компьютер, может занять неограниченное время. быть полученным, и тем временем компьютер может пройти неограниченное количество состояний.

Модель актора отличается неограниченным недетерминизмом, который был зафиксирован в математической модели Уиллом Клингером с использованием теории предметной области. В модели актора нет глобального состояния.

Прямая связь и асинхронность

Сообщения в модели актора не обязательно буферизуются. Это был резкий разрыв с предыдущими подходами к моделям параллельных вычислений. Отсутствие буферизации вызвало множество недоразумений во время разработки моделей акторов и до сих пор остается спорным вопросом. Некоторые исследователи утверждали, что сообщения буферизируются в «эфире» или «среде». Кроме того, сообщения в модели актора просто отправляются (например, пакеты в IP ); синхронное рукопожатие с получателем не требуется.

Создание актора плюс адреса в сообщениях означает переменную топологию

Естественное начало модели акторов было разрешение адресов в сообщениях. Под коммутацией пакетов сетей с коммутацией [1961 и 1964] Хьюитт использует новую модель параллельных вычислений, в которой используется связь вообще не бы каких-либо обязательных полей: они могли быть пустыми. Конечно, если отправитель сообщения желает, чтобы получатель имел доступ к адресам, которых у получателя еще не было, адрес быть отправлен в сообщении.

Например, субъекту может потребовать сообщение субъекту-получателю, от которого он позже ожидает получить ответ, но на самом деле ответ будет обрабатываться третьим компонентом, который был настроен на получение и обработать ответ (например, другой субъект, реализующий шаблон наблюдателя ). Исходный субъект мог бы выполнить это, отправив сообщение, которое включает сообщение, которое он хочет отправить, вместе с адресом третьего субъекта, который будет обрабатывать ответ. Этот третий субъект, который будет обрабатывать ответ, называется возобновлением (иногда также называется продолжением или кадром стека ). Когда субъект-получатель готов отправить ответ, он отправляет ответное сообщение на адрес возобновления, который был включен в исходное сообщение.

Итак, способность субъектов создавать новые объекты, с которыми они могут обмениваться сообщениями, наряду с другими объектами сообщениями, дает возможность создавать новые объекты в произвольно изменяемых топологических отношениях. друг с другом, так же как объекты в Simula и других объектно-ориентированных языках могут быть реляционно скомпонованы в переменные топологии объектов обмена сообщениями.

По своей сути параллельный

В отличие от предыдущего подхода, основанного на составлении последовательных процессов, модель акторов была по своей сути параллельная модель. В модели акторов была особым случаем, который возник в результате параллельных вычислений, как объяснено в теории моделей акторов.

Нет требований к порядку сообщения сообщений

Хьюитт возражал против добавления требований о том, что сообщения должны быть приходить в порядок, в котором они отправляются актеру. Если требуется упорядочение выходных сообщений, его можно смоделировать с помощью актора очереди, который обеспечивает эту функциональность. Такой субъект очереди будет ставить в очередь поступившие сообщения, чтобы их можно было получить в порядке FIFO. Итак, если субъект Xотправил сообщение M1субъекту Y, а позже Xотправил другое сообщение M2до Y, не требуется, чтобы M1достиг Yперед M2.

. В этом отношении модель актора отражает коммутацию пакетов системы, которые не гарантируют, что пакеты должны быть получены в порядке отправки. Отсутствие гарантии доставки позволяет коммутировать пакеты для буферизации пакетов, повторно использовать несколько путей для отправки пакетов, повторно отправлять указанные пакеты и обеспечивать оптимизацию.

Например, участникам разрешено конвейерно обрабатывать сообщения. Это означает, что в ходе обработки сообщения M1субъект может указать поведение, которое было инициировано обработкой другого сообщения M2до завершения обработки M1. Тот факт, что субъекту разрешено конвейерно обрабатывать сообщения, не означает, что он должен конвейерно обрабатывать обработку. Конвейерная передача сообщения - это инженерный компромисс. Как внешний наблюдатель узнает, была ли конвейерная обработка сообщения актором? Нет двусмысленности в определении актера, созданного возможностью конвейерной обработки. Конечно, в некоторых реализациях возможно выполнить оптимизацию конвейера неправильно, и в этом случае может возникнуть непредвиденное поведение.

Локальность

Другой важной характеристикой модели актора является локальность.

Локальность означает, что при обработке сообщения субъект может отправлять сообщения только по адресам, которые он получает в сообщении, адресам, которые он уже имел до получения сообщения, и адресам для субъектов, которые он создает при обработке сообщения. сообщение. (Но см. Синтез адресов актеров.)

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

Составление систем акторов

Идея объединения систем акторов в более крупные является важным аспектом модульности, которая была развита в докторской диссертации Гул Аги, разработанной позже Гул Ага , Ян Мейсон, Скотт Смит и Кэролайн Талкотт.

Поведение

Ключевым нововведением стало введение поведения, заданного как математическая функция, чтобы выразить, что делает актер, когда он обрабатывает сообщение, включая указание новое поведение для обработки следующего поступившего сообщения. Поведение предоставило механизм математического моделирования совместного использования в параллелизме.

Поведение также освободило модель актора от деталей реализации, например, интерпретатора потока токенов Smalltalk-72. Однако важно понимать, что эффективная реализация систем, описываемых моделью акторов, требует обширной оптимизации. Подробнее см. Реализация модели актера.

Моделирование других систем параллелизма

Другие системы параллелизма (например, вычисление процессов ) можно смоделировать в модели актора с использованием протокола двухфазной фиксации.

Теорема о вычислительном представлении

В модели акторов есть теорема о вычислительном представлении для систем, которые закрыты в том смысле, что они не получают сообщений извне. Математическое обозначение, обозначенное замкнутой системой S {\ displaystyle {\ mathtt {S}}}{\ displaystyle {\ mathtt {S}}} , построено на основе начального поведения ⊥Sи функции аппроксимации поведения прогрессS. Они получают все более точные приближения и создают обозначение (значение) для S {\ displaystyle {\ mathtt {S}}}{\ displaystyle {\ mathtt {S}}} следующим образом [Hewitt 2008; Clinger 1981]:

D enote S ≡ lim i → ∞ прогрессия S i (⊥ S) {\ displaystyle \ mathbf {Обозначение} _ {\ mathtt {S}} \ Equiv \ lim _ {i \ to \ infty} \ mathbf {progression} _ {{\ mathtt {S}} ^ {i}} (\ bot _ {\ mathtt {S}})}{\ displaystyle \ mathbf {Обозначить} _ {\ mathtt { S}} \ Equiv \ lim _ {i \ to \ infty} \ mathbf {progression} _ {{\ mathtt {S}} ^ {i}} (\ bot _ {\ mathtt {S}})}

Таким образом, Sможно описать математически с точки зрения всех его возможных вариантов поведения (включая те, которые связаны с неограниченным недетерминизмом). Хотя D enote S {\ displaystyle \ mathbf {Denote} _ {\ mathtt {S}}}{\ displaystyle \ mathbf {Обозначить} _ {\ mathtt {S}}} не является реализацией S {\ displaystyle {\ mathtt {S}}}{\ displaystyle {\ mathtt {S}}} , его можно использовать для доказательства обобщения тезиса Черча-Тьюринга-Россера-Клини [Kleene 1943]:

Следствием вышеупомянутой теоремы является то, что конечный субъект может недетерминированно реагировать с бесчисленным количеством разных выходов.

Связь с логическим программированием

Одним из ключевых мотивов для разработки модели акторов было понимание и решение проблем структуры управления, которые возникли при разработке языка программирования Planner. После того, как модель акторов была изначально определена, важной задачей было понять силу модели по сравнению с тезисом Роберта Ковальски о том, что «вычисления можно подразделить на дедукцию». Хьюитт утверждал, что тезис Ковальского оказался ложным для параллельных вычислений в модели акторов (см. Неопределенность в параллельных вычислениях ).

Тем не менее, были предприняты попытки расширить логическое программирование на параллельные вычисления. Однако Хьюитт и Ага [1991] утверждали, что полученные системы не были дедуктивными в следующем смысле: вычислительные шаги систем параллельного логического программирования не следуют дедуктивно из предыдущих шагов (см. Неопределенность в параллельных вычислениях ). Недавно логическое программирование было интегрировано в модель акторов таким образом, чтобы сохранить логическую семантику.

Миграция

Миграция в модели акторов - это способность акторов менять местоположение. Например, в своей диссертации Аки Ёнэдзава смоделировал почтовое отделение, в которое субъекты клиентов могли заходить, менять местоположение внутри во время работы и выходить. Актер, который может мигрировать, можно смоделировать с помощью актора местоположения, который изменяется при миграции актера. Однако верность этого моделирования является спорной и предметом исследования

Безопасность

Безопасность субъектов может быть защищена следующим образом:.

Синтез адресов акторов

Тонким моментом в модели акторов является возможность синтезировать адрес акторов. В некоторых случаях безопасность может использоваться для предотвращения синтеза адресов (см. Безопасность ). Однако, если адрес актора представляет собой просто битовую строку, очевидно, что он может быть синтезирован, хотя может быть трудно или даже невозможно угадать адрес актера, если битовые строки достаточно длинные. SOAP использует URL для адреса конечной точки, по которой может быть достигнут субъект. Поскольку URL представляет собой символьную строку, его можно явно синтезировать, хотя шифрование может сделать практически невозможным угадание.

Синтез адресов акторов обычно моделируется с помощью сопоставления. Идея состоит в том, чтобы использовать систему акторов для отображения фактических адресов акторов. Например, на компьютере структура памяти компьютера может быть смоделирована как система акторов, которая выполняет отображение. В случае адресов SOAP он моделирует DNS и остальную часть отображения URL.

Контраст с другими моделями параллелизма при передаче сообщений

Первоначальная опубликованная работа Робина Милнера по параллелизму также была примечательна тем, что она не была основана на создании последовательных процессов. Его работа отличалась от модели актора, потому что она была основана на фиксированном количестве процессов фиксированной топологии, передающих числа и строки с помощью синхронной связи. Исходная модель взаимодействующих последовательных процессов (CSP), опубликованная Тони Хоаром, отличалась от модели актора, поскольку она была основана на параллельной композиции фиксированного числа последовательных процессов, соединенных в фиксированной топологии. и общение с использованием синхронной передачи сообщений на основе имен процессов (см. Модель актора и история вычислений процесса ). Более поздние версии CSP отказались от коммуникации, основанной на именах процессов, в пользу анонимной коммуникации по каналам, подход, который также использовался в работе Милнера по исчислению коммуникационных систем и π-исчислению.

. обе модели Милнера и Хора обладали свойством ограниченного недетерминизма. Современные теоретические CSP ([Hoare 1985] и [Roscoe 2005]) явно обеспечивают неограниченный недетерминизм.

Сети Петри и их расширения (например, цветные сети Петри) похожи на акторов в том, что они основаны на асинхронной передаче сообщений и неограниченном недетерминизме, в то время как они похожи на ранние CSP в том, что они определяют фиксированные топологии элементарных шагов обработки (переходы) и репозитории сообщений (места).

Влияние

Модель акторов оказала влияние как на теоретическую, так и на практическую разработку программного обеспечения.

Теория

Модель акторов повлияла на развитие π-исчисления и последующих вычислений процессов. В своей лекции Тьюринга Робин Милнер писал:

Итак, чистое лямбда-исчисление построено всего с двумя видами вещей: термами и переменными. Можем ли мы достичь такой же экономии для расчета процессов? Карл Хьюитт со своей актерской моделью давно ответил на этот вызов; он объявил, что значение, оператор над значениями и процесс должны быть одним и тем же: актором.

Эта цель произвела на меня впечатление, потому что она подразумевает однородность и полноту выражения... Но это было задолго до того, как я смог увидеть, как достичь цели в терминах алгебраического исчисления...

Итак, в духе Хьюитта, наш первый шаг состоит в том, чтобы требовать, чтобы все вещи, обозначаемые терминами или доступные по именам - значения, регистры, операторы, процессы, объекты, - все были одного вида; все они должны быть процессами.

Практика

Модель акторов оказала большое влияние на коммерческую практику. Например, Twitter использовал актеров для масштабируемости. Кроме того, Microsoft использовала модель акторов при разработке своей библиотеки асинхронных агентов. В разделе «Библиотеки и фреймворки» ниже перечислены многие другие библиотеки акторов.

Решаемые проблемы

Согласно Хьюитту [2006], модель актора решает проблемы в компьютерной и коммуникационной архитектуре, языках параллельного программирования и веб-сервисах включая следующее:

  • Масштабируемость : задача увеличения параллелизма как локально, так и нелокально.
  • Прозрачность : преодоление пропасти между локальным и нелокальным параллелизмом. Прозрачность в настоящее время является спорным вопросом. Некоторые исследователи выступают за строгое разделение локального параллелизма с использованием языков параллельного программирования (например, Java и C # ) от нелокального параллелизма с использованием SOAP для веб-служб.. Строгое разделение приводит к недостаточной прозрачности, что вызывает проблемы, когда желательно / необходимо переключаться между локальным и нелокальным доступом к веб-службам (см. Распределенные вычисления ).
  • Несогласованность : несогласованность является нормой, потому что все очень большие знания системы взаимодействия человека с информационными системами несовместимы. Это несоответствие распространяется на документацию и спецификации очень больших систем (например, программное обеспечение Microsoft Windows и т. д.), которые внутренне несовместимы.

Многие идеи, представленные в модели акторов, являются теперь также находит применение в многоагентных системах по тем же причинам [Hewitt 2006b 2007b]. Ключевое отличие состоит в том, что системы агентов (в большинстве определений) накладывают дополнительные ограничения на участников, обычно требуя, чтобы они использовали обязательств и целей.

Программирование с акторами

Ряд различных язык ов программирования используют модель акторов или некоторые ее вариации. Эти языки включают человек:

Ранние языки программирования актеров

  • Акт 1, 2 и 3
  • Acttalk
  • Ани
  • Кантор
  • Розетта

Более поздние языки программирования акторов

библиотеки и фреймворки Actor

Actor также были реализованы библиотеки или фреймворки, позволяющие программировать в стиле акторов на языках, в которых нет встроенных акторов. Вот некоторые из этих сред:

ИмяСтатусПоследний выпускЛицензия Языки
Acteur Активный2020-04 -16Apache-2.0 / MIT Rust
Bastion Active2020-08-12Apache-2.0 / MIT Rust
Actix Active30 мая 2019MIT Rust
Aojet Active17.10.2016MIT Swift
Actor Active09.03.2017MIT Java
Actor4j Active2020-01-31Apache 2.0 Java
Actr Active2019-04-09Apache 2.0 Java
Vert.x Active13.02. 2018Apache 2.0 Java, Groovy, Javascript, Ruby, Scala, Kotlin, Ceylon
ActorFx Неактивный13.11.2013Apache 2.0 .NET
Akka (набор инструментов) Активный21.05.2019Apache 2.0 Java и Scala
Akka.NET Активный2020-08 -20Apache 2.0 .NET
Remact.Net Неактивный26.06.2016MIT .NET, Javascript
Ateji PX Неактивный??Java
czmq Активный10.11.2016MPL-2 C
F # MailboxProcessor Активто же, что и F # (встроенная основная библиотека)Лицензия Apache F #
Korus Активный04.02.2010GPL 3 Java
Килим Активный09.11.2018MIT Java
ActorFoundry (на основе Kilim)Неактивный2008-12-28?Java
ActorKit Active13.09.2011BSD Objective-C
Cloud Haskell Active17 июня 2015BSD Haskell
CloudI Активный19 декабря 2018MIT C / C ++, Elixir / Erlang / LFE, Go, Haskell, Java, Javascript, OCaml, Perl, PHP, Python, Ruby
Беспорядок Активный12.05. 2017LGPL 2.1 C, C ++ (cluttermm), Python (pyclutter), Perl (perl-Clutter)
NAct Inactive2012-02-28LGPL 3.0 .NET
Nact Active06.06.2018Apache 2.0 JavaScript / ReasonML
Retlang Неактивный18.05.2011N ew BSD .NET
JActor Неактивный22.01.2013LGPL Java
Jetlang Активный2013-05-30Новый BSD Java
Haskell-Actor Активен?2008Новый BSD Haskell
GPars Активный09.05.2014Apache 2.0 Groovy
OOSMOS Активный09.05.2019GPL 2.0 и коммерческий (двойное лицензирование)C. Совместимость с C ++
Panini Активный22.05.2014MPL 1.1 Сам по себе язык программирования
PARLEY Активен?2007-22-07GPL 2.1 Python
Peernetic Active2007-06-29LGPL 3.0 Java
PostSharp Active24.09.2014Коммерческий / Freemium .NET
Pulsar Active2016- 07-09Новый BSD Python
Pulsar Active18.02.2016LGPL / Eclipse Clojure
Pykka Активный07.05.2019Apache 2.0 Python
Схема термитов Активен?21.05.2009Схема LGPL (реализация Gambit)
Терон Неактивный2014-01-18MIT C ++
Thespian Active2020-03-10MIT Python
Quasar Active02.11.2018LGPL / Eclipse Java
Libactor Активен?2009GPL 2.0 C
Actor-CPP Активный2012-03-10GPL 2.0 C ++
S4 Неактивный31.07.2012Apache 2.0 Java
C ++ Actor Framework (CAF) Active08.02.2020Лицензия на программное обеспечение Boost 1.0 и BSD 3-Clause C ++ 11
Целлулоид Активный20.12.2018MIT Ruby
LabVIEW Actor Framework Active01.03.2012National Instruments SLA LabVIEW
LabVIEW Messenger Library Active01.06.2016BSDLabVIEW
Orbit Active2019-05-28Новые инфраструктуры BSD Java
QP для встроенных в реальном времени системы Активный2019-05-25GPL 2.0 и коммерческий (двойное лицензирование)C и C ++
libprocess Активный19.06.2013Apache 2.0 C ++
SObjectizer Активный2020-05-09Новый BSD C ++ 11
ротор Активный23.10.2020Лицензия MIT C ++ 17
Орлеан Активный2019 -06-02Лицензия MIT C # /. NET
Skynet Active2016-07-11Лицензия MIT C / Lua
Реакторы.IO Активный14.06.2016Лицензия BSD Java / Scala
libagents Активный08.03.2020Лицензия бесплатного программного обеспечения C ++ 11
protoactor Активный22.09.2018Лицензия бесплатного программного обеспечения Go, C #, Python, JavaScript, Java, Kotlin
FunctionalJava Активный2018-08-18BSD 3-Clause Java
Riker Active2019-01-04Лицензия MIT Rust
Comedy Active2019-03-09EPL 1.0 JavaScript
vlingo Active2020 -07-26Общественная лицензия Mozilla 2.0 Java, Kotlin, скоро.NET
waSCC Active2020-08-30Apache 2.0 WebAssembly ( Rust, TinyGo, Zig, AssemblyScript)
ray Active27.08.2020Apache 2.0 Python
См. Также
Ссылка n ces
Дополнительная литература
Внешние ссылки
  • Хьюитт, Мейер и Шиперски: модель актера (все, что вы хотели знать, но боялись спросить) Microsoft Channel 9. 9 апреля 2012 г.
  • Функциональная Java - библиотека Java, которая включает реализацию параллельных акторов с примерами кода в стандартном стиле Java и Java 7 BGGA.
  • ActorFoundry - библиотека на основе Java для актерское программирование. Знакомый синтаксис Java, файл сборки ant и множество примеров делают входной барьер очень низким.
  • ActiveJava - прототип расширения языка Java для программирования акторов.
  • Akka - библиотека акторов в Scala и Java от Lightbend Inc..
  • GPars - библиотека параллелизма для Apache Groovy и Java
  • Библиотека асинхронных агентов - библиотека акторов Microsoft для Visual C ++. «Библиотека агентов - это библиотека шаблонов C ++, которая продвигает модель программирования на основе акторов и внутрипроцессную передачу сообщений для задач крупномасштабного потока данных и конвейерной обработки».
  • ActorThread в C ++ 11 - базовый шаблон, обеспечивающий суть модели актора по голым потокам в стандарте C ++ 11
Последняя правка сделана 2021-06-08 22:13:30
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте