%0 Conference Proceedings %T Simpler Coordination of JavaScript Web Workers %+ Open University of the Netherlands [Heerlen] %+ Imperial College London %A Krauweel, Marco %A Jongmans, Sung-Shik %Z Part 2: Languages and Tools %< avec comité de lecture %( Lecture Notes in Computer Science %B 19th International Conference on Coordination Languages and Models (COORDINATION) %C Neuchâtel, Switzerland %Y Jean-Marie Jacquet %Y Mieke Massink %I Springer International Publishing %3 Coordination Models and Languages %V LNCS-10319 %P 40-58 %8 2017-06-19 %D 2017 %R 10.1007/978-3-319-59746-1_3 %Z Computer Science [cs] %Z Computer Science [cs]/Networking and Internet Architecture [cs.NI]Conference papers %X JavaScript is a popular sequential language for implementing Web applications. To enable concurrent execution of JavaScript code, modern JavaScript engines support the Web Workers API. Using this API, developers can spawn concurrent background workers from a distinguished main worker. These workers, which run on the same machine (e.g., to exploit multicore), interact via message-passing.The Web Workers API is relatively low-level, which makes implementing coordination protocols among background workers laborious and error-prone. To simplify this, we propose to hide the Web Workers API behind a coordination language that provides higher-level constructs. Importantly, developers already use JavaScript together with domain-specific languages HTML (for markup/structure) and CSS (for style/design); another domain-specific language (for coordination) seamlessly fits this practice. Using the coordination language Reo, we demonstrate the advantages and feasibility of this approach by example. We also present the necessary tool support (compiler; runtime library and API; front-end). %G English %Z TC 6 %Z WG 6.1 %2 https://inria.hal.science/hal-01657346/document %2 https://inria.hal.science/hal-01657346/file/450044_1_En_3_Chapter.pdf %L hal-01657346 %U https://inria.hal.science/hal-01657346 %~ IFIP-LNCS %~ IFIP %~ IFIP-TC %~ IFIP-WG %~ IFIP-TC6 %~ IFIP-WG6-1 %~ IFIP-COORDINATION %~ IFIP-LNCS-10319