Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

Axum (ранее под кодовым названием Maestro ) - это предметно-ориентированный язык параллельного программирования , основанный на модели Actor , который активно разрабатывался Microsoft [1] в период с 2009 по 2011 год [2]. Это объектно-ориентированный язык, основанный на . NET Common Language Runtime с использованием синтаксиса, подобного C, который, будучи предметно-ориентированным языком, предназначен для разработки частей программного приложения, которые хорошо подходят для параллелизма. Но он содержит достаточно универсальных конструкций, поэтому не нужно переключаться на язык программирования общего назначения (например, C #) для последовательных частей параллельных компонентов. [1]

Основная идиома программирования в Axum - это агент (или актер ), который представляет собой изолированную сущность, которая выполняется параллельно с другими агентами. [3] На языке Аксума это называется агентами, выполняющимися в отдельных изолированных доменах ; [3] объекты, созданные в одном домене, не могут быть доступны напрямую из другого. [4] Агенты слабо связаны (т.е. число зависимостей между агентами минимально) и не разделяют ресурсы , как память ( в отличие от общей памяти модели C # и подобных языках); вместо этого используется модель передачи сообщений . [3]Чтобы координировать действия агентов или чтобы агент запрашивал ресурсы другого, явное сообщение должно быть отправлено агенту. Axum предоставляет каналы для облегчения этого.

Каналы можно рассматривать как направленный путь для связи между экземплярами агентов. Функции-члены объекта Channel после его привязки к экземпляру агента могут использоваться для связи с ним. Канал содержит входные и выходные порты , которые являются очередями , которые используются для передачи данных к агенту или принимать данные от одного. Чтобы координировать обмен данными между агентами, Axum позволяет каждому каналу иметь определенный пользователем протокол связи. Протокол определяется как конечный автомат . [5] Данные, отправляемые по каналу, могут быть дополнительно ограничены, чтобы соответствовать определенной предопределенной схеме.. Компилятор и среда выполнения будут обеспечивать соответствие схеме. [6] Под капотом схема транслируется в сериализуемый класс .NET, который содержит только свойства и методы без побочных эффектов. [7]

Проект Axum достиг состояния прототипа с работающей интеграцией Microsoft Visual Studio . [8] Microsoft сделала CTP Axum общедоступной, [9] но с тех пор она была удалена. Хотя Microsoft решила не превращать Axum в проект [2], некоторые идеи, лежащие в основе Axum, используются в TPL Dataflow в .Net 4.5.

Ссылки [ править ]

  1. ^ a b «Маэстро: управляемый домен для параллельного программирования» . Канал 9 . Архивировано 7 апреля 2009 года . Проверено 16 апреля 2009 .
  2. ^ а б «Государство Аксум» . Никлас Густафссон . Проверено 28 февраля 2011 .
  3. ^ a b c Филипс Джошуа. «Мы не забыли и о других моделях - честно!» . Блоги MSDN . Архивировано 8 мая 2009 года . Проверено 16 апреля 2009 .
  4. ^ Никлас Густафссон. «Изоляция в маэстро» . Блоги MSDN . Архивировано 8 мая 2009 года . Проверено 16 апреля 2009 .
  5. ^ Никлас Густафссон. «Каналы» . Блоги MSDN . Архивировано 26 апреля 2009 года . Проверено 16 апреля 2009 .
  6. ^ Джошуа Филипс. «Аксум» . Презентация Lang.NET. Архивировано из оригинального 21 апреля 2009 года . Проверено 20 апреля 2009 .
  7. ^ Никлас Густафссон. «Объекты в Аксуме» . Блоги MSDN . Архивировано 26 апреля 2009 года . Проверено 20 апреля 2009 .
  8. ^ «Аксум: еще одна часть головоломки параллельного программирования Microsoft» . CNet блоги. Архивировано 17 апреля 2009 года . Проверено 16 апреля 2009 .
  9. ^ "Аксум" . MSDN DevLabs. Архивировано из оригинального 11 мая 2009 года . Проверено 9 мая 2009 .

Внешние ссылки [ править ]

  • Руководство программиста