Активное сообщение - Active message - Wikipedia

An Активное сообщениевычисление ) - это объект обмена сообщениями, способный выполнять обработку самостоятельно. Это облегченный протокол обмена сообщениями, используемый для оптимизации сетевых коммуникаций с упором на сокращение задержки за счет устранения программных издержек, связанных с буферизацией, и предоставления приложениям прямого доступа на уровне пользователя к сетевому оборудованию.[1][2] Это контрастирует с традиционными компьютерными системы обмена сообщениями в котором сообщения являются пассивными объектами без вычислительной мощности.[3]

Распределенное программирование памяти

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

Основная идея состоит в том, что каждое сообщение имеет заголовок, содержащий адрес или индекс обработчик пользовательского пространства для выполнения по прибытии сообщения, с передачей содержимого сообщения в качестве аргумента обработчику. Ранние активные системы сообщений передавали фактический удаленный кодовый адрес по сети, однако этот подход требовал, чтобы инициатор знал адрес функции удаленного обработчика при составлении сообщения, что может быть весьма ограничивающим даже в контексте СПМД модель программирования (и обычно полагается на единообразие адресного пространства, которое отсутствует во многих современных системах). Более новые интерфейсы активных сообщений требуют, чтобы клиент зарегистрировал в программном обеспечении таблицу во время инициализации, которая сопоставляет целочисленный индекс с локальным адресом функции-обработчика; в этих системах отправитель активного сообщения предоставляет индекс в таблицу удаленного обработчика, и по прибытии активного сообщения таблица используется для сопоставления этого индекса с адресом обработчика, который вызывается для обработки сообщения.[4]

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

Интеграция, использование для микросервисов, оркестровка, архитектура ESB

Также называется реализация более высокого уровня для активных сообщений Роевое общение в проекте SwarmESB. Базовая модель активных сообщений расширяется новыми концепциями, а для выражения кода активных сообщений используется Java Script.

Рекомендации

  1. ^ Торстен фон Эйкен, Дэвид Э. Каллер, Сет Копен Гольдштейн, Клаус Эрик Шаузер "Активные сообщения: механизм для интегрированной коммуникации и вычислений ", Материалы 19-го ежегодного международного симпозиума по компьютерной архитектуре (ISCA'92), май 1992 г., ACM.
  2. ^ Алан М. Мэйнваринг и Дэвид Э. Каллер, "Интерфейс программирования приложений активных сообщений и организация коммуникационной подсистемы" (Спецификация AM-2), Департамент EECS, Калифорнийский университет, Беркли, Технический отчет No. UCB / CSD-96-918, Октябрь 1996 г.
  3. ^ «Операционная семантика активной системы сообщений», Портал ACM. Доступ 20 июля 2009 г.
  4. ^ Дэн Боначеа и Пол Х. Харгроув. «Спецификация GASNet, v1.8.1». Технический отчет Национальной лаборатории Лоуренса Беркли LBNL-2001064, Август 2017.

Источники и внешние ссылки