{"id":"https://openalex.org/W4390117112","doi":"https://doi.org/10.22152/programming-journal.org/2024/8/8","title":"Real-World Choreographic Programming: Full-Duplex Asynchrony and Interoperability","display_name":"Real-World Choreographic Programming: Full-Duplex Asynchrony and Interoperability","publication_year":2023,"publication_date":"2023-10-15","ids":{"openalex":"https://openalex.org/W4390117112","doi":"https://doi.org/10.22152/programming-journal.org/2024/8/8"},"language":"en","primary_location":{"id":"doi:10.22152/programming-journal.org/2024/8/8","is_oa":false,"landing_page_url":"https://doi.org/10.22152/programming-journal.org/2024/8/8","pdf_url":null,"source":{"id":"https://openalex.org/S4210199781","display_name":"The Art Science and Engineering of Programming","issn_l":"2473-7321","issn":["2473-7321"],"is_oa":false,"is_in_doaj":false,"is_core":true,"host_organization":null,"host_organization_name":null,"host_organization_lineage":[],"host_organization_lineage_names":[],"type":"journal"},"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"The Art, Science, and Engineering of Programming","raw_type":"journal-article"},"type":"article","indexed_in":["crossref"],"open_access":{"is_oa":true,"oa_status":"green","oa_url":"https://portal.findresearcher.sdu.dk/da/publications/0c760a4a-f15f-40b0-a4dc-831a9219919a","any_repository_has_fulltext":true},"authorships":[{"author_position":"first","author":{"id":"https://openalex.org/A5083323562","display_name":"Lovro Lugovi\u0107","orcid":"https://orcid.org/0000-0001-9684-9567"},"institutions":[{"id":"https://openalex.org/I177969490","display_name":"University of Southern Denmark","ror":"https://ror.org/03yrrjy16","country_code":"DK","type":"education","lineage":["https://openalex.org/I177969490"]}],"countries":["DK"],"is_corresponding":true,"raw_author_name":"Lovro Lugovi\u0107","raw_affiliation_strings":["University of Southern Denmark, Denmark"],"affiliations":[{"raw_affiliation_string":"University of Southern Denmark, Denmark","institution_ids":["https://openalex.org/I177969490"]}]},{"author_position":"last","author":{"id":"https://openalex.org/A5000566520","display_name":"Fabrizio Montesi","orcid":"https://orcid.org/0000-0003-4666-901X"},"institutions":[{"id":"https://openalex.org/I177969490","display_name":"University of Southern Denmark","ror":"https://ror.org/03yrrjy16","country_code":"DK","type":"education","lineage":["https://openalex.org/I177969490"]}],"countries":["DK"],"is_corresponding":false,"raw_author_name":"Fabrizio Montesi","raw_affiliation_strings":["University of Southern Denmark, Denmark"],"affiliations":[{"raw_affiliation_string":"University of Southern Denmark, Denmark","institution_ids":["https://openalex.org/I177969490"]}]}],"institutions":[],"countries_distinct_count":1,"institutions_distinct_count":2,"corresponding_author_ids":["https://openalex.org/A5083323562"],"corresponding_institution_ids":["https://openalex.org/I177969490"],"apc_list":null,"apc_paid":null,"fwci":0.3855,"has_fulltext":true,"cited_by_count":3,"citation_normalized_percentile":{"value":0.57306987,"is_in_top_1_percent":false,"is_in_top_10_percent":false},"cited_by_percentile_year":{"min":90,"max":96},"biblio":{"volume":"8","issue":"2","first_page":null,"last_page":null},"is_retracted":false,"is_paratext":false,"is_xpac":false,"primary_topic":{"id":"https://openalex.org/T12784","display_name":"Modular Robots and Swarm Intelligence","score":0.9998000264167786,"subfield":{"id":"https://openalex.org/subfields/2210","display_name":"Mechanical Engineering"},"field":{"id":"https://openalex.org/fields/22","display_name":"Engineering"},"domain":{"id":"https://openalex.org/domains/3","display_name":"Physical Sciences"}},"topics":[{"id":"https://openalex.org/T12784","display_name":"Modular Robots and Swarm Intelligence","score":0.9998000264167786,"subfield":{"id":"https://openalex.org/subfields/2210","display_name":"Mechanical Engineering"},"field":{"id":"https://openalex.org/fields/22","display_name":"Engineering"},"domain":{"id":"https://openalex.org/domains/3","display_name":"Physical Sciences"}},{"id":"https://openalex.org/T10772","display_name":"Distributed systems and fault tolerance","score":0.9987000226974487,"subfield":{"id":"https://openalex.org/subfields/1705","display_name":"Computer Networks and Communications"},"field":{"id":"https://openalex.org/fields/17","display_name":"Computer Science"},"domain":{"id":"https://openalex.org/domains/3","display_name":"Physical Sciences"}},{"id":"https://openalex.org/T12203","display_name":"Mobile Agent-Based Network Management","score":0.998199999332428,"subfield":{"id":"https://openalex.org/subfields/1705","display_name":"Computer Networks and Communications"},"field":{"id":"https://openalex.org/fields/17","display_name":"Computer Science"},"domain":{"id":"https://openalex.org/domains/3","display_name":"Physical Sciences"}}],"keywords":[{"id":"https://openalex.org/keywords/computer-science","display_name":"Computer science","score":0.8186195492744446},{"id":"https://openalex.org/keywords/choreography","display_name":"Choreography","score":0.8084591627120972},{"id":"https://openalex.org/keywords/protocol","display_name":"Protocol (science)","score":0.6200940012931824},{"id":"https://openalex.org/keywords/scripting-language","display_name":"Scripting language","score":0.6006182432174683},{"id":"https://openalex.org/keywords/javascript","display_name":"JavaScript","score":0.5537869334220886},{"id":"https://openalex.org/keywords/programming-language","display_name":"Programming language","score":0.5499347448348999},{"id":"https://openalex.org/keywords/interoperability","display_name":"Interoperability","score":0.4409655034542084},{"id":"https://openalex.org/keywords/code","display_name":"Code (set theory)","score":0.4394388794898987},{"id":"https://openalex.org/keywords/implementation","display_name":"Implementation","score":0.4375554621219635},{"id":"https://openalex.org/keywords/asynchrony","display_name":"Asynchrony (computer programming)","score":0.41053470969200134},{"id":"https://openalex.org/keywords/world-wide-web","display_name":"World Wide Web","score":0.22968131303787231},{"id":"https://openalex.org/keywords/dance","display_name":"Dance","score":0.1180136501789093},{"id":"https://openalex.org/keywords/asynchronous-communication","display_name":"Asynchronous communication","score":0.11500069499015808}],"concepts":[{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.8186195492744446},{"id":"https://openalex.org/C183920142","wikidata":"https://www.wikidata.org/wiki/Q180856","display_name":"Choreography","level":3,"score":0.8084591627120972},{"id":"https://openalex.org/C2780385302","wikidata":"https://www.wikidata.org/wiki/Q367158","display_name":"Protocol (science)","level":3,"score":0.6200940012931824},{"id":"https://openalex.org/C61423126","wikidata":"https://www.wikidata.org/wiki/Q187432","display_name":"Scripting language","level":2,"score":0.6006182432174683},{"id":"https://openalex.org/C544833334","wikidata":"https://www.wikidata.org/wiki/Q2005","display_name":"JavaScript","level":2,"score":0.5537869334220886},{"id":"https://openalex.org/C199360897","wikidata":"https://www.wikidata.org/wiki/Q9143","display_name":"Programming language","level":1,"score":0.5499347448348999},{"id":"https://openalex.org/C20136886","wikidata":"https://www.wikidata.org/wiki/Q749647","display_name":"Interoperability","level":2,"score":0.4409655034542084},{"id":"https://openalex.org/C2776760102","wikidata":"https://www.wikidata.org/wiki/Q5139990","display_name":"Code (set theory)","level":3,"score":0.4394388794898987},{"id":"https://openalex.org/C26713055","wikidata":"https://www.wikidata.org/wiki/Q245962","display_name":"Implementation","level":2,"score":0.4375554621219635},{"id":"https://openalex.org/C2779019669","wikidata":"https://www.wikidata.org/wiki/Q25203946","display_name":"Asynchrony (computer programming)","level":3,"score":0.41053470969200134},{"id":"https://openalex.org/C136764020","wikidata":"https://www.wikidata.org/wiki/Q466","display_name":"World Wide Web","level":1,"score":0.22968131303787231},{"id":"https://openalex.org/C147446459","wikidata":"https://www.wikidata.org/wiki/Q11639","display_name":"Dance","level":2,"score":0.1180136501789093},{"id":"https://openalex.org/C151319957","wikidata":"https://www.wikidata.org/wiki/Q752739","display_name":"Asynchronous communication","level":2,"score":0.11500069499015808},{"id":"https://openalex.org/C177264268","wikidata":"https://www.wikidata.org/wiki/Q1514741","display_name":"Set (abstract data type)","level":2,"score":0.0},{"id":"https://openalex.org/C142724271","wikidata":"https://www.wikidata.org/wiki/Q7208","display_name":"Pathology","level":1,"score":0.0},{"id":"https://openalex.org/C142362112","wikidata":"https://www.wikidata.org/wiki/Q735","display_name":"Art","level":0,"score":0.0},{"id":"https://openalex.org/C124952713","wikidata":"https://www.wikidata.org/wiki/Q8242","display_name":"Literature","level":1,"score":0.0},{"id":"https://openalex.org/C31258907","wikidata":"https://www.wikidata.org/wiki/Q1301371","display_name":"Computer network","level":1,"score":0.0},{"id":"https://openalex.org/C204787440","wikidata":"https://www.wikidata.org/wiki/Q188504","display_name":"Alternative medicine","level":2,"score":0.0},{"id":"https://openalex.org/C71924100","wikidata":"https://www.wikidata.org/wiki/Q11190","display_name":"Medicine","level":0,"score":0.0}],"mesh":[],"locations_count":3,"locations":[{"id":"doi:10.22152/programming-journal.org/2024/8/8","is_oa":false,"landing_page_url":"https://doi.org/10.22152/programming-journal.org/2024/8/8","pdf_url":null,"source":{"id":"https://openalex.org/S4210199781","display_name":"The Art Science and Engineering of Programming","issn_l":"2473-7321","issn":["2473-7321"],"is_oa":false,"is_in_doaj":false,"is_core":true,"host_organization":null,"host_organization_name":null,"host_organization_lineage":[],"host_organization_lineage_names":[],"type":"journal"},"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"The Art, Science, and Engineering of Programming","raw_type":"journal-article"},{"id":"pmh:oai:sdu.dk:publications/0c760a4a-f15f-40b0-a4dc-831a9219919a","is_oa":true,"landing_page_url":"https://portal.findresearcher.sdu.dk/da/publications/0c760a4a-f15f-40b0-a4dc-831a9219919a","pdf_url":null,"source":{"id":"https://openalex.org/S4306400423","display_name":"University of Southern Denmark Research Portal (University of Southern Denmark)","issn_l":null,"issn":null,"is_oa":false,"is_in_doaj":false,"is_core":false,"host_organization":"https://openalex.org/I177969490","host_organization_name":"University of Southern Denmark","host_organization_lineage":["https://openalex.org/I177969490"],"host_organization_lineage_names":[],"type":"repository"},"license":"cc-by","license_id":"https://openalex.org/licenses/cc-by","version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Lugovi\u0107, L & Montesi, F 2024, 'Real-World Choreographic Programming: Full-Duplex Asynchrony and Interoperability', The Art, Science, and Engineering of Programming, vol. 8, no. 2, 8. https://doi.org/10.22152/programming-journal.org/2024/8/8","raw_type":"info:eu-repo/semantics/publishedVersion"},{"id":"pmh:oai:sdu.dk:openaire/0c760a4a-f15f-40b0-a4dc-831a9219919a","is_oa":true,"landing_page_url":"https://portal.findresearcher.sdu.dk/files/256826173/2303.03983.pdf","pdf_url":"https://findresearcher.sdu.dk/ws/files/256826173/2303.03983.pdf","source":{"id":"https://openalex.org/S4306400423","display_name":"University of Southern Denmark Research Portal (University of Southern Denmark)","issn_l":null,"issn":null,"is_oa":false,"is_in_doaj":false,"is_core":false,"host_organization":"https://openalex.org/I177969490","host_organization_name":"University of Southern Denmark","host_organization_lineage":["https://openalex.org/I177969490"],"host_organization_lineage_names":[],"type":"repository"},"license":"cc-by","license_id":"https://openalex.org/licenses/cc-by","version":"submittedVersion","is_accepted":false,"is_published":false,"raw_source_name":"Lugovi\u0107, L & Montesi, F 2024, 'Real-World Choreographic Programming: Full-Duplex Asynchrony and Interoperability', The Art, Science, and Engineering of Programming, vol. 8, no. 2, 8. https://doi.org/10.22152/programming-journal.org/2024/8/8","raw_type":"info:eu-repo/semantics/publishedVersion"}],"best_oa_location":{"id":"pmh:oai:sdu.dk:publications/0c760a4a-f15f-40b0-a4dc-831a9219919a","is_oa":true,"landing_page_url":"https://portal.findresearcher.sdu.dk/da/publications/0c760a4a-f15f-40b0-a4dc-831a9219919a","pdf_url":null,"source":{"id":"https://openalex.org/S4306400423","display_name":"University of Southern Denmark Research Portal (University of Southern Denmark)","issn_l":null,"issn":null,"is_oa":false,"is_in_doaj":false,"is_core":false,"host_organization":"https://openalex.org/I177969490","host_organization_name":"University of Southern Denmark","host_organization_lineage":["https://openalex.org/I177969490"],"host_organization_lineage_names":[],"type":"repository"},"license":"cc-by","license_id":"https://openalex.org/licenses/cc-by","version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Lugovi\u0107, L & Montesi, F 2024, 'Real-World Choreographic Programming: Full-Duplex Asynchrony and Interoperability', The Art, Science, and Engineering of Programming, vol. 8, no. 2, 8. https://doi.org/10.22152/programming-journal.org/2024/8/8","raw_type":"info:eu-repo/semantics/publishedVersion"},"sustainable_development_goals":[],"awards":[{"id":"https://openalex.org/G6911123063","display_name":null,"funder_award_id":"29518","funder_id":"https://openalex.org/F4320310490","funder_display_name":"Villum Fonden"}],"funders":[{"id":"https://openalex.org/F4320310490","display_name":"Villum Fonden","ror":"https://ror.org/007ww2d15"}],"has_content":{"pdf":false,"grobid_xml":false},"content_urls":null,"referenced_works_count":33,"referenced_works":["https://openalex.org/W84711077","https://openalex.org/W122332163","https://openalex.org/W1515796738","https://openalex.org/W1884454758","https://openalex.org/W1885428543","https://openalex.org/W1986277018","https://openalex.org/W1991621238","https://openalex.org/W2008626182","https://openalex.org/W2038408649","https://openalex.org/W2059243982","https://openalex.org/W2097964891","https://openalex.org/W2114877704","https://openalex.org/W2153074919","https://openalex.org/W2293875919","https://openalex.org/W2325347394","https://openalex.org/W2327265941","https://openalex.org/W2475400411","https://openalex.org/W2620231412","https://openalex.org/W2962520317","https://openalex.org/W3042159823","https://openalex.org/W3100170303","https://openalex.org/W3106048870","https://openalex.org/W3106204602","https://openalex.org/W3173862082","https://openalex.org/W3187321874","https://openalex.org/W4205907492","https://openalex.org/W4206553077","https://openalex.org/W4226047741","https://openalex.org/W4313055167","https://openalex.org/W4366265285","https://openalex.org/W4376105341","https://openalex.org/W4384999944","https://openalex.org/W4388903845"],"related_works":["https://openalex.org/W2534656837","https://openalex.org/W2397017983","https://openalex.org/W2262525553","https://openalex.org/W3184506649","https://openalex.org/W2970612522","https://openalex.org/W2373396016","https://openalex.org/W4247806713","https://openalex.org/W2121003636","https://openalex.org/W4378700020","https://openalex.org/W2737171366"],"abstract_inverted_index":{"In":[0,190,274],"the":[1,6,44,49,66,72,122,125,143,151,155,160,195,206,251,275,283,306,331,336,347,352,356,364,398,409],"paradigm":[2,38,337],"of":[3,9,68,89,94,111,124,134,169,201,237,285,299,319,359,367,397,413],"choreographic":[4,69,90,116,135,199,222,326,353,426],"programming,":[5,327],"overall":[7],"behaviour":[8],"a":[10,16,19,31,102,109,184,202,280,323,440],"distributed":[11,292],"system":[12],"is":[13,39,80,108,174,215,330,379,428],"coded":[14],"as":[15,183],"choreography":[17,23],"from":[18,46,154,163],"global":[20],"viewpoint.":[21],"The":[22,78],"can":[24,226,338,435],"then":[25],"be":[26,227,339,437],"automatically":[27],"projected":[28,153],"(compiled)":[29],"to":[30,100,242,258,341,363,439],"correct":[32],"implementation":[33,318,378,415],"for":[34,177,249,268,302,325,393],"each":[35,146],"participant.":[36],"This":[37,157],"interesting":[40],"because":[41],"it":[42,329,387,434],"relieves":[43],"programmer":[45],"manually":[47],"writing":[48,368],"separate":[50,369],"send":[51,370],"and":[52,61,120,231,371,395,403,411],"receive":[53,372],"actions":[54],"performed":[55],"by":[56,297,416],"participants,":[57,171],"which":[58,303],"simplifies":[59],"development":[60,197,214],"avoids":[62],"communication":[63,264],"mismatches.":[64],"However,":[65],"applicability":[67],"programming":[70,91,136,200,223,427],"in":[71,129,142,198,430],"real":[73],"world":[74],"remains":[75],"largely":[76],"unexplored.":[77],"reason":[79],"twofold.":[81],"First,":[82],"while":[83,262],"there":[84,107],"have":[85,97],"been":[86,98],"several":[87],"proposals":[88],"languages,":[92],"none":[93],"these":[95],"languages":[96],"used":[99,248,340],"implement":[101],"realistic,":[103],"widely-used":[104],"protocol.":[105],"Thus":[106],"lack":[110],"experience":[112,421],"on":[113,121,217,229,290,314],"how":[114],"realistic":[115,441],"programs":[117],"are":[118,140,240,247,266,294],"structured":[119],"relevance":[123],"different":[126],"features":[127,239],"explored":[128],"theoretical":[130],"models.":[131],"Second,":[132],"applications":[133],"shown":[137],"so":[138],"far":[139],"intrusive,":[141],"sense":[144],"that":[145,173,235,255,288,335,351,376,423],"participant":[147],"must":[148],"use":[149],"exactly":[150],"code":[152,161],"choreography.":[156],"prevents":[158],"using":[159],"generated":[162],"choreographies":[164,230,246],"with":[165,271,309,382],"existing":[166],"third-party":[167,272,383],"implementations":[168],"some":[170,396],"something":[172],"very":[175],"beneficial":[176],"testing":[178],"or":[179],"might":[180],"even":[181,424],"come":[182],"requirement.This":[185],"paper":[186],"addresses":[187],"both":[188],"problems.":[189],"particular,":[191],"we":[192,277,304,385],"carry":[193,232],"out":[194],"first":[196,332],"widespread":[203],"real-world":[204],"protocol:":[205],"Internet":[207],"Relay":[208],"Chat":[209],"(IRC)":[210],"client-server":[211],"protocol":[212],"[28].The":[213],"based":[216,313],"Choral,":[218],"an":[219,310],"object-oriented":[220],"higher-order":[221,245],"language":[224],"(choreographies":[225],"parametric":[228],"state).We":[233],"find":[234],"two":[236],"Choral\u2019s":[238],"key":[241],"our":[243,360,377,414],"implementation:":[244],"modelling":[250],"complex":[252],"interaction":[253,357],"patterns":[254],"arise":[256],"due":[257],"IRC\u2019s":[259],"asynchronous":[260],"nature,":[261],"user-definable":[263],"semantics":[265],"relevant":[267],"achieving":[269],"interoperability":[270],"implementations.":[273],"process":[276],"also":[278,407],"discover":[279],"missing":[281],"piece:":[282],"capability":[284],"statically":[286],"detecting":[287],"choices":[289],"alternative":[291],"behaviours":[293],"appropriately":[295],"communicated":[296],"means":[298],"message":[300],"types,":[301],"extend":[305],"Choral":[307,317],"compiler":[308],"elegant":[311],"solution":[312],"subtyping.":[315],"Our":[316,420],"IRC":[320,394,401],"arguably":[321],"represents":[322],"milestone":[324],"since":[328],"empirical":[333],"evidence":[334],"faithfully":[342],"codify":[343],"protocols":[344],"found":[345],"\u2018in":[346],"wild\u2019.":[348],"We":[349,406],"observe":[350],"approach":[354,366],"reduces":[355],"complexity":[358],"program,":[361],"compared":[362],"traditional":[365],"actions.":[373],"To":[374],"check":[375],"indeed":[380],"interoperable":[381],"software,":[384],"test":[386],"against":[388],"publicly":[389],"available":[390],"conformance":[391],"tests":[392],"most":[399],"popular":[400],"client":[402],"server":[404],"software.":[405],"evaluate":[408],"performance":[410,418],"scalability":[412],"performing":[417],"tests.":[419],"shows":[422],"if":[425],"still":[429],"its":[431],"early":[432],"life,":[433],"already":[436],"applied":[438],"setting.":[442]},"counts_by_year":[{"year":2025,"cited_by_count":2},{"year":2024,"cited_by_count":1}],"updated_date":"2026-04-10T15:06:20.359241","created_date":"2025-10-10T00:00:00"}
