~~~~~~~~~~~~~~~~~~~~ Arc.Ask3.Ru ~~~~~~~~~~~~~~~~~~~~~ 
Номер скриншота №:
✰ EF809719944CBB9C2B2E989CC73DFF3B__1710568440 ✰
Заголовок документа оригинал.:
✰ Choreographic programming - Wikipedia ✰
Заголовок документа перевод.:
✰ Хореографическое программирование - Википедия ✰
Снимок документа находящегося по адресу (URL):
✰ https://en.wikipedia.org/wiki/Choreographic_programming ✰
Адрес хранения снимка оригинал (URL):
✰ https://arc.ask3.ru/arc/aa/ef/3b/ef809719944cbb9c2b2e989cc73dff3b.html ✰
Адрес хранения снимка перевод (URL):
✰ https://arc.ask3.ru/arc/aa/ef/3b/ef809719944cbb9c2b2e989cc73dff3b__translat.html ✰
Дата и время сохранения документа:
✰ 16.06.2024 10:26:48 (GMT+3, MSK) ✰
Дата и время изменения документа (по данным источника):
✰ 16 March 2024, at 08:54 (UTC). ✰ 

~~~~~~~~~~~~~~~~~~~~~~ Ask3.Ru ~~~~~~~~~~~~~~~~~~~~~~ 
Сервисы Ask3.ru: 
 Архив документов (Снимки документов, в формате HTML, PDF, PNG - подписанные ЭЦП, доказывающие существование документа в момент подписи. Перевод сохраненных документов на русский язык.)https://arc.ask3.ruОтветы на вопросы (Сервис ответов на вопросы, в основном, научной направленности)https://ask3.ru/answer2questionТоварный сопоставитель (Сервис сравнения и выбора товаров) ✰✰
✰ https://ask3.ru/product2collationПартнерыhttps://comrades.ask3.ru


Совет. Чтобы искать на странице, нажмите Ctrl+F или ⌘-F (для MacOS) и введите запрос в поле поиска.
Arc.Ask3.ru: далее начало оригинального документа

Хореографическое программирование - Википедия Jump to content

Хореографическое программирование

Из Википедии, бесплатной энциклопедии

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

Обзор [ править ]

Хореография [ править ]

В хореографическом программировании разработчики используют язык хореографического программирования для определения предполагаемого коммуникативного поведения одновременных участников. Программы в этой парадигме называются хореографиями . [1] Хореографические языки основаны на нотации протокола безопасности (также известной как нотация «Алисы и Боба»). Ключом к этим языкам является примитив общения, например

Алиса.выражение -> Боб.х
 

читает " Alice сообщает результат вычисления выражения expr к Bob, который сохраняет его в своей локальной переменной x". [3] Алису, Боба и т. д. обычно называют ролями или процессами . [2]

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

Хореография такая:

Client.(учетные данные, идентификатор службы) -> CAS.authRequest 
  если CAS.check(authRequest), то 
    CAS.token = genToken(authRequest) 
    CAS.Success(токен) -> Client.result 
    CAS.Success(токен) -> Service.result 
  еще 
    CAS.Failure -> Client.result 
    CAS.Failure -> Service.result 
 

Хореография начинается с первой строки, где Client передает пару, состоящую из некоторых учетных данных и идентификатора службы, к которой он хочет получить доступ. CAS. CAS сохраняет эту пару в своей локальной переменной authRequest(для запроса аутентификации). В строке 2 CASпроверяет, действителен ли запрос для получения токена аутентификации. Если да, он генерирует токен и передает Success сообщение, содержащее токен для обоих Client и Service(Строки 3–5). В противном случае CAS информирует Client и Service что аутентификация не удалась, отправив Failureсообщение (строки 7–8). В остальном мы называем эту хореографию «хореографией SSO».

Проекция конечной точки [ править ]

Ключевой особенностью хореографического программирования является возможность компилировать хореографии в распределенные реализации. Эти реализации могут представлять собой библиотеки для программного обеспечения, которое должно участвовать в компьютерной сети, следуя протоколу. [1] [3] [4] или автономные распределенные программы. [5] [6]

Преобразование хореографии в распределенные программы называется проекцией конечной точки (сокращенно EPP). [2] [3]

Проекция конечной точки возвращает программу для каждой роли, описанной в исходной хореографии. [3] Например, учитывая приведенную выше хореографию, проекция конечной точки вернет три программы: одну для Client, один для Serviceи один для CAS. Они показаны ниже в форме псевдокода, где send и recv являются примитивами для отправки и получения сообщений в/из других ролей.

Проекция конечной точки (EPP) хореографии SSO
Клиент
отправить (учетные данные, идентификатор службы) в CAS 
  получить результат из CAS 
 
Услуга
получить результат из CAS
 
КАС
Recv authRequest от клиента 
  если проверить (authRequest), то 
    токен = genToken(authRequest) 
    отправить успех (токен) клиенту 
    отправить успех (токен) в службу 
  еще 
    отправить отказ клиенту 
    отправить отказ в обслуживание 
 

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

Развитие [ править ]

Парадигма хореографического программирования берет свое начало из его титульной кандидатской диссертации. [7] [8] [9] Вдохновение для синтаксиса хореографических языков программирования можно найти в нотации протокола безопасности , также известной как нотация «Алисы и Боба». [1] Хореографическое программирование также находится под сильным влиянием стандартов хореографии обслуживания и диаграмм взаимодействия , а также развития теории исчисления процессов . [1] [3] [10]

Хореографическое программирование – активное направление исследований. Парадигма использовалась при изучении информационных потоков , [11] параллельные вычисления , [12] киберфизические системы , [13] [14] адаптация времени выполнения , [6] и системная интеграция . [15]

Языки [ править ]


См. также [ править ]

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

  1. ^ Перейти обратно: а б с д Это Монтези, Фабрицио (2023). Введение в хореографию . Издательство Кембриджского университета. дои : 10.1017/9781108981491 . ISBN  978-1-108-83376-9 . S2CID   102335067 .
  2. ^ Перейти обратно: а б с Ёсида, Нобуко; Васконселос, Васко Т.; Падовани, Лука; Боно, Николас Нг; Нейкова, Румяна; Монтези, Фабрицио; Маскарди, Вивиана; Мартинс, Франциско; Йонсен, Эйнар Брох; Ху, Раймонд; Джакино, Елена; Гесберт, Нильс; Гей, Саймон Дж.; Дениелу, Пьер-Мало; Кастанья, Джузеппе; Кампос, Хоана; Молодец, Марио; Боно, Вивиана; Анкона, Давиде (2016). «Типы поведения в языках программирования» . Основы и тенденции в языках программирования . 3 (2–3): 95–230. дои : 10.1561/2500000031 . hdl : 10044/1/44282 .
  3. ^ Перейти обратно: а б с д Это ж Джяллоренцо, Саверио; Монтези, Фабрицио; Перессотти, Марко; Рихтер, Дэвид; Сальванески, Гвидо; Вайзенбургер, Паскаль (2021). Многопартийные языки: хореографический и многоуровневый кейсы (Жемчужина) . Международные труды Лейбница по информатике (LIPIcs). Том. 194. стр. 22:1–22:27. doi : 10.4230/LIPIcs.ECOOP.2021.22 . ISBN  9783959771900 . (Выдающийся доклад ОКООП 2021)
  4. ^ Хоровой язык программирования
  5. ^ Перейти обратно: а б Карбоне, Марко; Монтези, Фабрицио (2013). «Задуманная свобода из тупика» . Материалы 40-го ежегодного симпозиума ACM SIGPLAN-SIGACT по принципам языков программирования — POPL '13 . п. 263. дои : 10.1145/2429069.2429101 . ISBN  9781450318327 . S2CID   15627190 .
  6. ^ Перейти обратно: а б с Преда, Мила Далла; Габбриелли, Маурицио; Джяллоренцо, Саверио; Ланезе, Иван; Мауро, Якопо (2017). «Динамическая хореография: теория и реализация» . Логические методы в информатике . 13 (2). дои : 10.23638/LMCS-13(2:1)2017 . S2CID   5555662 .
  7. ^ Монтези, Фабрицио (2013). Хореографическое программирование (PDF) (доктор философии). ИТ-университет Копенгагена. ISBN  978-87-7949-299-8 . (Награда EAPLS за лучшую докторскую диссертацию)
  8. ^ Перейти обратно: а б Хирш, Эндрю К.; Гарг, Дипак (16 января 2022 г.). «Пируэт: типизированная функциональная хореография высшего порядка» . Труды ACM по языкам программирования . 6 (ПОПЛ): 1–27. arXiv : 2111.03484 . дои : 10.1145/3498684 . S2CID   243833095 . (Выдающийся доклад POPL 2022)
  9. ^ Аренд Ренсинк (30 августа 2015 г.). «Фабрицио Монтези получает награду EAPLS за лучшую докторскую диссертацию 2014 года» . Европейская ассоциация языков и систем программирования.
  10. ^ Карбоне, Марко; Хонда, Кохей; Ёсида, Нобуко (2012). «Структурированное коммуникационно-ориентированное программирование для веб-сервисов» . Транзакции ACM в языках и системах программирования . 34 (2): 1–78. дои : 10.1145/2220365.2220367 . S2CID   15737118 .
  11. ^ Ллуч Лафуэнте, Альберто; Нильсон, Флемминг; Нильсон, Ханне Риис (2015). «Дискретное управление информационными потоками для спецификаций, ориентированных на взаимодействие» . Логика, переписывание и параллелизм (PDF) . Конспекты лекций по информатике. Том. 9200. стр. 427–450. дои : 10.1007/978-3-319-23165-5_20 . ISBN  978-3-319-23164-8 . S2CID   32617923 .
  12. ^ Крус-Филипе, Луис; Монтези, Фабрицио (2016). «Хореография на практике» . Формальные методы для распределенных объектов, компонентов и систем . Конспекты лекций по информатике. Том. 9688. стр. 114–123. arXiv : 1602.08863 . дои : 10.1007/978-3-319-39570-8_8 . ISBN  978-3-319-39569-2 . S2CID   18067252 .
  13. ^ Лопес, Уго А.; Хойссен, Кай (2017). «Хореография киберфизических распределенных систем управления для энергетики» . Материалы симпозиума по прикладным вычислениям . стр. 437–443. дои : 10.1145/3019612.3019656 . ISBN  9781450344869 . S2CID   39112346 .
  14. ^ Лопес, Уго А.; Нильсон, Флемминг; Нильсон, Ханне Риис (2016). «Обеспечение доступности в отказоустойчивых системах связи» (PDF) . Формальные методы для распределенных объектов, компонентов и систем . Конспекты лекций по информатике. Том. 9688. стр. 195–211. дои : 10.1007/978-3-319-39570-8_13 . ISBN  978-3-319-39569-2 . S2CID   12872876 .
  15. ^ Джяллоренцо, Саверио; Ланезе, Иван; Руссо, Дэниел (2018). «ЧИП: Процесс хореографической интеграции» . На пути к значимым интернет-системам. Конференции OTM 2018 (PDF) . Конспекты лекций по информатике. Том. 11230. стр. 22–40. дои : 10.1007/978-3-030-02671-4_2 . ISBN  978-3-030-02670-7 . S2CID   53015580 .
  16. ^ Крус-Филипе, Луис; Монтези, Фабрицио (2020). «Базовая модель хореографического программирования» . Теоретическая информатика . 802 : 38–66. arXiv : 1510.03271 . дои : 10.1016/j.tcs.2019.07.005 . S2CID   199122777 .
  17. ^ Коэн, Лирон; Калишик, Цезарь (2021). Формализация тьюринг-полного хореографического языка в Coq . Международные труды Лейбница по информатике (LIPIcs). Том. 193. стр. 15:1–15:18. doi : 10.4230/LIPIcs.ITP.2021.15 . ISBN  9783959771887 . S2CID   231802115 .
  18. ^ Крус-Филипе, Луис; Монтези, Фабрицио; Перессотти, Марко (27 мая 2023 г.). «Формальная теория хореографического программирования» . Журнал автоматизированного рассуждения . 67 (2): 21. arXiv : 2209.01886 . дои : 10.1007/s10817-023-09665-3 . ISSN   1573-0670 . S2CID   252090305 .
  19. ^ Крус-Филипе, Луис; Монтези, Фабрицио; Перессотти, Марко (2021), Чероне, Антонио; Ольвечки, Питер Чаба (ред.), «Сертификационный сборник хореографии» , «Теоретические аспекты вычислений - ICTAC 2021» , Конспекты лекций по информатике, том. 12819, Чам: Springer International Publishing, стр. 115–133, arXiv : 2102.10698 , doi : 10.1007/978-3-030-85315-0_8 , ISBN  978-3-030-85314-3 , S2CID   231985665 , получено 7 марта 2022 г.
  20. ^ Похьола, Йоханнес Оман; Гомес-Лондоньо, Алехандро; Шейкер, Джеймс; Норриш, Майкл (2022). Андроник, июнь; де Моура, Леонардо (ред.). «Калас: проверенный сквозной компилятор хореографического языка» . 13-я Международная конференция по интерактивному доказательству теорем (ITP 2022) . Международные труды Лейбница по информатике (LIPIcs). 237 . Дагштуль, Германия: Замок Дагштуль – Центр информатики Лейбница: 27:1–27:18. дои : 10.4230/LIPIcs.ITP.2022.27 . ISBN  978-3-95977-252-5 . S2CID   251322644 .

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

Arc.Ask3.Ru: конец оригинального документа.
Arc.Ask3.Ru
Номер скриншота №: EF809719944CBB9C2B2E989CC73DFF3B__1710568440
URL1:https://en.wikipedia.org/wiki/Choreographic_programming
Заголовок, (Title) документа по адресу, URL1:
Choreographic programming - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть, любые претензии не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, денежную единицу можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)