Distributed system development with ScalaLoci
Distributed applications are traditionally developed as separate modules, often in different languages, which react to events, like user input, and in turn produce new events for the other modules. Separation into components requires time-consuming integration. Manual implementation of communication...
Saved in:
| Published in: | Proceedings of ACM on programming languages Vol. 2; no. OOPSLA; pp. 1 - 30 |
|---|---|
| Main Authors: | , , |
| Format: | Journal Article |
| Language: | English |
| Published: |
01.11.2018
|
| ISSN: | 2475-1421, 2475-1421 |
| Online Access: | Get full text |
| Tags: |
Add Tag
No Tags, Be the first to tag this record!
|
| Abstract | Distributed applications are traditionally developed as separate modules, often in different languages, which react to events, like user input, and in turn produce new events for the other modules. Separation into components requires time-consuming integration. Manual implementation of communication forces programmers to deal with low-level details. The combination of the two results in obscure distributed data flows scattered among multiple modules, hindering reasoning about the system as a whole.
The ScalaLoci distributed programming language addresses these issues with a coherent model based on placement types that enables reasoning about distributed data flows, supporting multiple software architectures via dedicated language features and abstracting over low-level communication details and data conversions. As we show, ScalaLoci simplifies developing distributed systems, reduces error-prone communication code and favors early detection of bugs. |
|---|---|
| AbstractList | Distributed applications are traditionally developed as separate modules, often in different languages, which react to events, like user input, and in turn produce new events for the other modules. Separation into components requires time-consuming integration. Manual implementation of communication forces programmers to deal with low-level details. The combination of the two results in obscure distributed data flows scattered among multiple modules, hindering reasoning about the system as a whole.
The ScalaLoci distributed programming language addresses these issues with a coherent model based on placement types that enables reasoning about distributed data flows, supporting multiple software architectures via dedicated language features and abstracting over low-level communication details and data conversions. As we show, ScalaLoci simplifies developing distributed systems, reduces error-prone communication code and favors early detection of bugs. |
| Author | Weisenburger, Pascal Köhler, Mirko Salvaneschi, Guido |
| Author_xml | – sequence: 1 givenname: Pascal surname: Weisenburger fullname: Weisenburger, Pascal organization: TU Darmstadt, Germany – sequence: 2 givenname: Mirko surname: Köhler fullname: Köhler, Mirko organization: TU Darmstadt, Germany – sequence: 3 givenname: Guido surname: Salvaneschi fullname: Salvaneschi, Guido organization: TU Darmstadt, Germany |
| BookMark | eNplj0tLAzEURoNUsNbiX5idq2hucmc6WUp9wkAX1fWQZG4wMo-SRKX_XsUuRFfftzgcOKdsNk4jMXYO4hIAyyslVxVqfcTmElclB5Qw-_VP2DKlVyEEaIW10nPGb0LKMdi3TF2R9inTUHT0Tv20G2jMxUfIL8XWmd40kwtn7NibPtHysAv2fHf7tH7gzeb-cX3dcCeFVhwkWCyhk-jRazSq8t6TrKm03jgAj1XtVUeuq8BpZUsCsFJYEA5JEaoFu_jxujilFMm3uxgGE_ctiPY7tD2EfpH8D-lCNjlMY44m9P_4TxVlVSU |
| CitedBy_id | crossref_primary_10_1145_3607849 crossref_primary_10_1145_3360570 crossref_primary_10_1109_TSE_2024_3393070 crossref_primary_10_1145_3276477 crossref_primary_10_1145_3604629 crossref_primary_10_1145_3397495 crossref_primary_10_1145_3622802 crossref_primary_10_1016_j_scico_2020_102499 crossref_primary_10_1016_j_jss_2024_111976 crossref_primary_10_1145_3632398 crossref_primary_10_1016_j_iot_2024_101412 crossref_primary_10_1145_3622873 |
| Cites_doi | 10.1007/11693024_20 10.1145/2535838.2535881 10.1145/2103656.2103665 10.1145/1640089.1640091 10.1145/2491956.2462161 10.1145/1596638.1596643 10.1016/0167-6423(92)90005-V 10.1145/2093328.2093337 10.5555/1777707.1777724 10.1145/380749.380767 10.1145/2635868.2635895 10.1145/2034773.2034812 10.1145/1869459.1869489 10.1145/258948.258973 10.1145/581339.581365 10.1145/857076.857078 10.1093/comjnl/bxh120 10.1007/978-3-540-45070-2_5 10.1109/IPDPSW.2016.138 10.1145/1900160.1900173 10.1145/2611286.2611290 10.1145/2661136.2661146 10.1145/1040305.1040324 10.1145/2577080.2577083 10.1145/2951913.2951916 10.1145/3064899.3064901 10.1145/3110246 10.1145/3009837.3009880 10.1145/2660193.2660240 10.1007/978-3-642-39038-8_29 10.1007/978-3-642-13953-6_3 10.1145/2489837.2489840 10.1145/3276477 10.1145/1639950.1640058 10.1145/2716320 10.1145/3180155.3180156 10.1145/2884781.2884815 10.1145/581690.581695 10.1145/1176617.1176756 10.1145/3158130 10.1145/3001929.3001930 10.1145/1244381.1244403 10.1006/inco.1994.1093 10.1145/1345206.1345211 10.1145/1159876.1159889 10.1145/3055378.3055385 10.1109/TSE.2018.2833109 10.1007/978-3-662-44202-9_13 10.1145/195473.195481 10.1109/5.97300 10.1145/2676726.2677004 10.1145/3141858.3141861 10.1145/1236360.1236422 10.1145/2661136.2661140 |
| ContentType | Journal Article |
| DBID | AAYXX CITATION |
| DOI | 10.1145/3276499 |
| DatabaseName | CrossRef |
| DatabaseTitle | CrossRef |
| DatabaseTitleList | CrossRef |
| DeliveryMethod | fulltext_linktorsrc |
| Discipline | Computer Science |
| EISSN | 2475-1421 |
| EndPage | 30 |
| ExternalDocumentID | 10_1145_3276499 |
| GroupedDBID | AAKMM AAYFX AAYXX ACM AEFXT AEJOY AIKLT AKRVB ALMA_UNASSIGNED_HOLDINGS CITATION EBS GUFHI LHSKQ M~E OK1 ROL |
| ID | FETCH-LOGICAL-c2093-121b451d24f4f94a36fffe28e5bfac11f468f3decd61c93b5e11b20b10c4e3e43 |
| ISSN | 2475-1421 |
| IngestDate | Sat Nov 29 07:50:06 EST 2025 Tue Nov 18 21:46:25 EST 2025 |
| IsDoiOpenAccess | false |
| IsOpenAccess | true |
| IsPeerReviewed | true |
| IsScholarly | true |
| Issue | OOPSLA |
| Language | English |
| LinkModel | OpenURL |
| MergedId | FETCHMERGED-LOGICAL-c2093-121b451d24f4f94a36fffe28e5bfac11f468f3decd61c93b5e11b20b10c4e3e43 |
| OpenAccessLink | https://dl.acm.org/doi/pdf/10.1145/3276499 |
| PageCount | 30 |
| ParticipantIDs | crossref_primary_10_1145_3276499 crossref_citationtrail_10_1145_3276499 |
| PublicationCentury | 2000 |
| PublicationDate | 2018-11-01 |
| PublicationDateYYYYMMDD | 2018-11-01 |
| PublicationDate_xml | – month: 11 year: 2018 text: 2018-11-01 day: 01 |
| PublicationDecade | 2010 |
| PublicationTitle | Proceedings of ACM on programming languages |
| PublicationYear | 2018 |
| References | e_1_2_2_4_1 e_1_2_2_24_1 e_1_2_2_49_1 e_1_2_2_6_1 e_1_2_2_22_1 e_1_2_2_20_1 Murphy Tom (e_1_2_2_60_1) Ramson Stefan (e_1_2_2_75_1) 2017 e_1_2_2_2_1 e_1_2_2_41_1 e_1_2_2_62_1 e_1_2_2_87_1 e_1_2_2_43_1 e_1_2_2_64_1 e_1_2_2_85_1 e_1_2_2_8_1 e_1_2_2_28_1 e_1_2_2_66_1 e_1_2_2_26_1 e_1_2_2_47_1 e_1_2_2_68_1 e_1_2_2_89_1 Salvaneschi Guido (e_1_2_2_80_1) e_1_2_2_83_1 e_1_2_2_81_1 Hewitt Carl (e_1_2_2_44_1) Rajchenbach-Teller David (e_1_2_2_74_1) 2010 e_1_2_2_13_1 e_1_2_2_38_1 e_1_2_2_11_1 Miller Mark S. (e_1_2_2_58_1) e_1_2_2_30_1 e_1_2_2_76_1 e_1_2_2_32_1 e_1_2_2_53_1 e_1_2_2_17_1 e_1_2_2_34_1 e_1_2_2_55_1 e_1_2_2_15_1 e_1_2_2_36_1 e_1_2_2_57_1 e_1_2_2_78_1 e_1_2_2_70_1 e_1_2_2_72_1 e_1_2_2_25_1 e_1_2_2_48_1 e_1_2_2_5_1 e_1_2_2_23_1 e_1_2_2_7_1 e_1_2_2_21_1 e_1_2_2_1_1 Biboudis Aggelos (e_1_2_2_16_1) e_1_2_2_3_1 e_1_2_2_40_1 e_1_2_2_63_1 e_1_2_2_86_1 e_1_2_2_42_1 e_1_2_2_65_1 e_1_2_2_84_1 e_1_2_2_9_1 e_1_2_2_29_1 e_1_2_2_67_1 e_1_2_2_27_1 e_1_2_2_46_1 e_1_2_2_69_1 e_1_2_2_88_1 Mogk Ragnar (e_1_2_2_59_1) 2018; 109 e_1_2_2_82_1 e_1_2_2_61_1 Carbone Paris (e_1_2_2_19_1) 2015 e_1_2_2_14_1 e_1_2_2_37_1 e_1_2_2_12_1 e_1_2_2_39_1 e_1_2_2_10_1 e_1_2_2_52_1 Hudak Paul (e_1_2_2_45_1) 2002 e_1_2_2_54_1 e_1_2_2_73_1 e_1_2_2_18_1 e_1_2_2_33_1 e_1_2_2_56_1 e_1_2_2_79_1 e_1_2_2_35_1 e_1_2_2_77_1 e_1_2_2_50_1 e_1_2_2_71_1 |
| References_xml | – volume-title: IJCAI ’73 ident: e_1_2_2_44_1 – volume-title: Transactions on Aspect-Oriented Software Development XI (Lecture Notes in Computer Science) ident: e_1_2_2_80_1 – ident: e_1_2_2_27_1 doi: 10.1007/11693024_20 – ident: e_1_2_2_85_1 – ident: e_1_2_2_22_1 doi: 10.1145/2535838.2535881 – ident: e_1_2_2_47_1 doi: 10.1145/2103656.2103665 – ident: e_1_2_2_56_1 doi: 10.1145/1640089.1640091 – ident: e_1_2_2_29_1 doi: 10.1145/2491956.2462161 – ident: e_1_2_2_36_1 doi: 10.1145/1596638.1596643 – ident: e_1_2_2_14_1 doi: 10.1016/0167-6423(92)90005-V – ident: e_1_2_2_38_1 – ident: e_1_2_2_15_1 doi: 10.1145/2093328.2093337 – ident: e_1_2_2_26_1 doi: 10.5555/1777707.1777724 – ident: e_1_2_2_37_1 – volume-title: Apache Flink: Stream and Batch Processing in a Single Engine year: 2015 ident: e_1_2_2_19_1 – ident: e_1_2_2_21_1 doi: 10.1145/380749.380767 – ident: e_1_2_2_78_1 doi: 10.1145/2635868.2635895 – ident: e_1_2_2_76_1 – ident: e_1_2_2_42_1 doi: 10.1145/2034773.2034812 – ident: e_1_2_2_66_1 doi: 10.1145/1869459.1869489 – ident: e_1_2_2_35_1 doi: 10.1145/258948.258973 – ident: e_1_2_2_4_1 – ident: e_1_2_2_9_1 doi: 10.1145/581339.581365 – ident: e_1_2_2_28_1 – volume-title: Summer School on Advanced Functional Programming year: 2002 ident: e_1_2_2_45_1 – ident: e_1_2_2_11_1 – volume: 109 volume-title: International Proceedings in Informatics (LIPIcs)) year: 2018 ident: e_1_2_2_59_1 – ident: e_1_2_2_39_1 doi: 10.1145/857076.857078 – ident: e_1_2_2_54_1 doi: 10.1093/comjnl/bxh120 – ident: e_1_2_2_3_1 – ident: e_1_2_2_10_1 doi: 10.1007/978-3-540-45070-2_5 – ident: e_1_2_2_24_1 doi: 10.1109/IPDPSW.2016.138 – ident: e_1_2_2_55_1 doi: 10.1145/1900160.1900173 – ident: e_1_2_2_52_1 doi: 10.1145/2611286.2611290 – ident: e_1_2_2_68_1 doi: 10.1145/2661136.2661146 – ident: e_1_2_2_62_1 doi: 10.1145/1040305.1040324 – ident: e_1_2_2_79_1 doi: 10.1145/2577080.2577083 – ident: e_1_2_2_84_1 doi: 10.1145/2951913.2951916 – ident: e_1_2_2_6_1 – ident: e_1_2_2_69_1 – volume-title: Opa: Language support for a sane, safe and secure web. In OWASP AppSec Research . year: 2010 ident: e_1_2_2_74_1 – ident: e_1_2_2_73_1 doi: 10.1145/3064899.3064901 – ident: e_1_2_2_71_1 – ident: e_1_2_2_49_1 – ident: e_1_2_2_67_1 doi: 10.1145/3110246 – ident: e_1_2_2_46_1 doi: 10.1145/3009837.3009880 – ident: e_1_2_2_7_1 – ident: e_1_2_2_82_1 – ident: e_1_2_2_1_1 – ident: e_1_2_2_33_1 doi: 10.1145/2660193.2660240 – ident: e_1_2_2_50_1 doi: 10.1007/978-3-642-39038-8_29 – ident: e_1_2_2_20_1 doi: 10.1007/978-3-642-13953-6_3 – ident: e_1_2_2_17_1 doi: 10.1145/2489837.2489840 – volume-title: TGC ’05 ident: e_1_2_2_58_1 – ident: e_1_2_2_32_1 doi: 10.1145/3276477 – ident: e_1_2_2_34_1 doi: 10.1145/1639950.1640058 – ident: e_1_2_2_30_1 doi: 10.1145/2716320 – ident: e_1_2_2_13_1 doi: 10.1145/3180155.3180156 – ident: e_1_2_2_48_1 – ident: e_1_2_2_81_1 doi: 10.1145/2884781.2884815 – ident: e_1_2_2_64_1 doi: 10.1145/581690.581695 – ident: e_1_2_2_83_1 doi: 10.1145/1176617.1176756 – ident: e_1_2_2_87_1 – ident: e_1_2_2_65_1 doi: 10.1145/3158130 – volume-title: Active Expressions: Basic Building Blocks for Reactive Programming. CoRR year: 2017 ident: e_1_2_2_75_1 – ident: e_1_2_2_61_1 doi: 10.1145/3001929.3001930 – ident: e_1_2_2_41_1 doi: 10.1145/1244381.1244403 – ident: e_1_2_2_72_1 – volume-title: TGC ’07 ident: e_1_2_2_60_1 – ident: e_1_2_2_70_1 – ident: e_1_2_2_88_1 doi: 10.1006/inco.1994.1093 – ident: e_1_2_2_23_1 doi: 10.1145/1345206.1345211 – ident: e_1_2_2_12_1 doi: 10.1145/1159876.1159889 – ident: e_1_2_2_40_1 doi: 10.1145/3055378.3055385 – ident: e_1_2_2_8_1 – ident: e_1_2_2_53_1 doi: 10.1109/TSE.2018.2833109 – ident: e_1_2_2_57_1 doi: 10.1007/978-3-662-44202-9_13 – ident: e_1_2_2_86_1 doi: 10.1145/195473.195481 – ident: e_1_2_2_5_1 – ident: e_1_2_2_43_1 doi: 10.1109/5.97300 – ident: e_1_2_2_25_1 doi: 10.1145/2676726.2677004 – ident: e_1_2_2_2_1 – ident: e_1_2_2_89_1 – ident: e_1_2_2_18_1 doi: 10.1145/3141858.3141861 – volume-title: ECOOP ’15 ident: e_1_2_2_16_1 – ident: e_1_2_2_63_1 doi: 10.1145/1236360.1236422 – ident: e_1_2_2_77_1 doi: 10.1145/2661136.2661140 |
| SSID | ssj0001934839 |
| Score | 2.3170986 |
| Snippet | Distributed applications are traditionally developed as separate modules, often in different languages, which react to events, like user input, and in turn... |
| SourceID | crossref |
| SourceType | Enrichment Source Index Database |
| StartPage | 1 |
| Title | Distributed system development with ScalaLoci |
| Volume | 2 |
| hasFullText | 1 |
| inHoldings | 1 |
| isFullTextHit | |
| isPrint | |
| journalDatabaseRights | – providerCode: PRVHPJ databaseName: ROAD: Directory of Open Access Scholarly Resources customDbUrl: eissn: 2475-1421 dateEnd: 99991231 omitProxy: false ssIdentifier: ssj0001934839 issn: 2475-1421 databaseCode: M~E dateStart: 20170101 isFulltext: true titleUrlDefault: https://road.issn.org providerName: ISSN International Centre |
| link | http://cvtisr.summon.serialssolutions.com/2.0.0/link/0/eLvHCXMwtV1Lb9QwELZK4cCF8hSFgnJA3ALxK7GP2_KSutuu1AK9rWzHllaUbLXbop747R3HjjELEuXQixVZtpXkG4_H80TolSKcWlzpUjLY5ExzXQqndckds0QIbkXv5ftl3BwciJMTOY0W_FVfTqDpOnF5Kc9uFGroA7B96Ox_wJ0WhQ54BtChBdihvRbw73wqXF_FCkTJkKd5iIzq7f694vUIkFFjwCWXTafpLOvdO0Z7E29JiA5c371KYVBuJjn8q52vQvKEgPxUrYxKPhv73gq_Ww_1lSfz5bdF0uioU5DhLdyte3eCjxfzdpFrILCIoXiJURHW8BKzEOn8xv6lL3JakhHU4eH0aDzKWCfOzuBgqvmTuzOfCIOSpmahqtLv-bPXzrXkbRhir_ksTryFbpOGS88CJz8zhZykTPSV59K7hyBrP_dtnJtJL5kYcnwf3Yv3h2IUcH-ANmz3EG0NtTmKyKofoTIjgyKQQZGRQeHJoEhk8Bh9_vD-eO9TGUtjlIZUkpaYYM04bglzzEmmaO2cg81luXbKYOxYLRxtrWlrbCTV3GKsSaVxZZilltEnaLNbdPYpKiolOVzEVSNJxazx8aPUGFipam1dUbGNXg-fPDMxb7wvX3I6W_uv26hIA89CqpT1Ic_-PeQ5uvuLxnbQ5vnywr5Ad8yP8_lq-bKH7ArmMFrG |
| linkProvider | ISSN International Centre |
| openUrl | ctx_ver=Z39.88-2004&ctx_enc=info%3Aofi%2Fenc%3AUTF-8&rfr_id=info%3Asid%2Fsummon.serialssolutions.com&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=article&rft.atitle=Distributed+system+development+with+ScalaLoci&rft.jtitle=Proceedings+of+ACM+on+programming+languages&rft.au=Weisenburger%2C+Pascal&rft.au=K%C3%B6hler%2C+Mirko&rft.au=Salvaneschi%2C+Guido&rft.date=2018-11-01&rft.issn=2475-1421&rft.eissn=2475-1421&rft.volume=2&rft.issue=OOPSLA&rft.spage=1&rft.epage=30&rft_id=info:doi/10.1145%2F3276499&rft.externalDBID=n%2Fa&rft.externalDocID=10_1145_3276499 |
| thumbnail_l | http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=/lc.gif&issn=2475-1421&client=summon |
| thumbnail_m | http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=/mc.gif&issn=2475-1421&client=summon |
| thumbnail_s | http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=/sc.gif&issn=2475-1421&client=summon |