-
Notifications
You must be signed in to change notification settings - Fork 0
/
index.html
330 lines (297 loc) · 16.9 KB
/
index.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<title>STARDUST: Session Types for Reliable Distributed Systems</title>
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Cabin:wght@700|Hind&display=swap">
<!-- External CSS -->
<link href="/assets/css/bootstrap.min.css" rel="stylesheet">
<link href="/assets/css/icofont/icofont.min.css" rel="stylesheet">
<!-- Custom styles for this template -->
<link href="/assets/css/stardust.css" rel="stylesheet">
</head>
<body>
<header id="header" class="d-flex align-items-center nav-bg">
<div class="container">
<!-- The main logo is shown in mobile version only. The centered nav-logo in nav menu is displayed in desktop view -->
<div class="d-block d-lg-none">
<div class="mobile-logo-padding">
<a href="index.html"><img src="/assets/img/stardust-star-black.svg"
alt="Stardust Star Logo" class="mobile-nav-logo"></a>
</div>
</div>
<nav class="nav-menu d-none d-lg-block">
<ul class="nav-inner">
<li class="nav-logo"><a href="index.html"><img src="/assets/img/stardust-star-black.svg" alt="" class="img-fluid"></a></li>
<li class="active"><a href="#overview">In Brief</a></li>
<li><a href="#approach">Approach</a></li>
<li><a href="#mailing">Mailing Lists</a></li>
<li><a href="#people">People</a></li>
<li><a href="#publications">Publications</a></li>
<li><a href="#artefacts">Artefacts</a></li>
<li class="drop-down"><a href="#">Meetings</a>
<ul>
<li>
<a href="/meetings/kickoff.html">Kickoff (19th October 2020)</a>
</li>
<li> <a href="/meetings/kent22.html">Stardust Meeting at Kent (12th and 13th September 2022)</a></li>
<li>
<a href="/meetings/glasgow-2023.html">Stardust meeting at Glasgow (18th and 19th December 2023)</a>
</li>
</ul>
<!--
<ul>
<li><a href="#">Deep Drop Down 1</a></li>
<li><a href="#">Deep Drop Down 2</a></li>
<li><a href="#">Deep Drop Down 3</a></li>
<li><a href="#">Deep Drop Down 4</a></li>
<li><a href="#">Deep Drop Down 5</a></li>
</ul>
-->
</li>
</ul>
</nav><!-- .nav-menu -->
</div>
</header><!-- End Header -->
<main role="main">
<div class="jumbotron jumbotron-fluid star-image">
<div class="container">
<div class="logo">
<img style="max-width:100%;" src="assets/img/stardust-white.svg" alt="Stardust project logo">
</div>
<h1 class="header-text">Session Types for Reliable Distributed Systems</h1>
</div>
</div>
<!-- Marketing messaging and featurettes
================================================== -->
<!-- Wrap the rest of the page in another container to center all the content. -->
<div class="container marketing">
<!-- START THE FEATURETTES -->
<section id="overview">
<div class="row featurette">
<div class="col-md-12">
<!-- <h2 class="featurette-heading">Overview</h2> -->
<p>
<span class="lead">
Distributed software systems are an essential part of the infrastructure
of modern society.
</span>
Such systems typically comprise diverse software
components deployed across networks of hosts. Ensuring their reliability
is challenging, as software components must correctly communicate and
synchronise with each other, and any of the hardware or software
components may fail. Failure and service "outage" is extremely costly,
with worldwide financial losses due to software failures in 2017
estimated at US$1.7tn, up from US$1.1tn in 2016.
</p>
<p>
<span class="lead">
Failures can occur at all levels of the system stack: hardware,
operating systems, networks, software, and users.
</span>
Here we focus on using
advanced programming language technologies to enable the software level
to handle failures that arise from any level of the stack. Our aim is to
provide software-level reliability for distributed systems by combining
fault prevention with fault tolerance.
<em>The key objective is to combine
the communication-structuring mechanism of session types with the
scalability and fault-tolerance of actor-based software architectures.
</em>
</p>
<p>
<span class="lead">
The result will be a well-founded theory of reliable actor programming,
supported by a collection of libraries and tools, and validated on a
range of case studies.
</span>Key aims are to deliver tools that provide
lightweight support for developers – e.g. warning of potential issues –
and to allow developers to continue to use established idioms. By doing
so we aim to deliver a step change in the engineering of reliable
distributed software systems.
</p>
<p>
STARDUST is funded by <a href="https://epsrc.ukri.org">EPSRC</a>
(grants
<a href="https://gow.epsrc.ukri.org/NGBOViewGrant.aspx?GrantRef=EP/T014512/1">EP/T014512/1</a>,
<a href="https://gow.epsrc.ukri.org/NGBOViewGrant.aspx?GrantRef=EP/T014628/1">EP/T014628/1</a>,
<a href="https://gow.epsrc.ukri.org/NGBOViewGrant.aspx?GrantRef=EP/T014709/1">EP/T014709/1</a>)
between 1st October 2020 and 30th September 2024.
</p>
</div>
</div>
</section>
<hr class="featurette-divider">
<section id="approach">
<div class="row featurette">
<div class="col-md-7">
<h2 class="featurette-heading">Approach</h2>
<p class="lead">The research approach of STARDUST is organised into three strands:
<em>Principles</em>, <em>Programming</em>, and <em>Practice</em>.
</p>
<h4>Principles</h4>
<p>
We will develop foundational theories of reliable session types for distributed actor systems.
Our models will capture the two prevalent means for failure recovery in actor-based languages: supervision
trees and timeouts.
</p>
<h4>Programming</h4>
<p>
We will design, engineer and evaluate usable, open-source session type implementations and supporting tools for Erlang and Scala with Akka. We will develop type checking support for the enhanced session developed in the <em>Principles</em> strand, as well as a tool to help users to design session types for existing systems. These tools will be integrated with appropriate IDEs.
</p>
<h4>Practice</h4>
<p>
The theory and tools will be guided by, and evaluated against, a set of case studies provided by our industrial partners. The application domains are: industrial automation (Actyx); server engineering (Erlang Solutions); microservices (Lightbend); testing tools (Quviq); and organisation simulation (Tata).
</p>
</div>
<div class="col-md-5 d-flex flex-wrap align-items-center">
<img class="img-fluid" src="assets/img/approach.png"
alt="Project approach: Reliable session types, programming, and practice">
</div>
</div>
</section>
<hr class="featurette-divider">
<section id="mailing">
<div class="row featurette">
<div class="col-md-12">
<h2 class="featurette-heading">Mailing Lists</h2>
<p class="lead">There are two mailing lists for STARDUST: <span class="mono">stardust-announce</span>, for announcements, and <span class="mono">stardust-list</span>, for more general discussion.</p>
<p>
To subscribe, send an email to <span class="mono">[email protected]</span> with the following in the Subject line:
</p>
<p class="code-indent">
<code>SUB LISTNAME NAME</code>
</p>
<p>
where <code>LISTNAME</code> is one of <span class="mono">stardust-announce</span> or <span class="mono">stardust-list</span>, and <code>NAME</code> is your first name followed by your last name.
</p>
<p>
To unsubscribe, send an email to <span class="mono">[email protected]</span> with nothing in the Subject line. In the message body put the following:
</p>
<p class="code-indent">
<code>UNSUBSCRIBE LISTNAME EMAIL</code>
</p>
where <code>EMAIL</code> is an optional email address, useful if different from your "From:" address. If you normally have an automatic signature at the end of your email, please put the word <code>QUIT</code> just before your signature.
</div>
</div>
</section>
<hr class="featurette-divider">
<section id="people">
<div class="row featurette">
<div class="col-lg-12">
<h2 class="featurette-heading">People</h2>
</div>
<div class="col-sm">
<h3>
Glasgow
</h3>
<ul>
<li><a href="https://duncanatt.github.io">Duncan Paul Attard</a> (researcher)</li>
<li><a href="http://www.simonjf.com">Simon Fowler</a> (CoI)</li>
<li><a href="http://www.dcs.gla.ac.uk/~simon/">Simon Gay</a> (PI)</li>
<li><a href="https://www.starsandspira.ls">Danielle Marshall</a> (Researcher)</li>
<li><a href="http://www.dcs.gla.ac.uk/~trinder/">Phil Trinder</a> (CoI)</li>
</ul>
</div>
<div class="col-sm">
<h3>
Oxford
</h3>
<ul>
<li><a href="https://www.cs.ox.ac.uk/people/nobuko.yoshida/">Nobuko Yoshida</a> (PI)</li>
</ul>
</div>
<div class="col-sm">
<h3>
Kent
</h3>
<ul>
<li><a href="https://www.kent.ac.uk/computing/people/3119/bocchi-laura">Laura Bocchi</a> (PI)</li>
<li><a href="https://www.kent.ac.uk/computing/people/3164/thompson-simon">Simon Thompson</a> (CoI)</li>
<li><a href="https://www.kent.ac.uk/computing/people/3050/king-andy">Andy King</a> (researcher)</li>
</ul>
</div>
</div>
</section>
<hr class="featurette-divider">
<section id="publications">
<div class="row featurette">
<div class="col-lg-12">
<h2 class="featurette-heading">Publications</h2>
<h3>2024</h3>
<ul>
<li>Laura Bocchi, Andy King and Maurizio Murgia. Asynchronous Subtyping by Trace Relaxation. TACAS 2024, to appear.</li>
<li>Luca Aceto, Duncan Paul Attard, Adrian Francalanza, and Anna Ingólfsdóttir. <a target="_blank" href="https://duncanatt.github.io/papers/ecoop-2024.pdf">Runtime Instrumentation for Reactive Components</a>. ECOOP 2024. <em>(Distinguished artefact award)</em></li>
</ul>
<h3>2023</h3>
<ul>
<li>Simon Fowler, Duncan Paul Attard, Franciszek Sowul, Simon J. Gay, and Phil Trinder. <a href="https://simonjf.com/writing/pat.pdf">Special Delivery: Programming with Mailbox Types</a>. ICFP 2023.</li>
<li>Jonah Pears, Laura Bocchi, and Andy King. <a href="https://link.springer.com/chapter/10.1007/978-3-031-35361-1_12">Safe Asynchronous Mixed-Choice for Timed Interactions</a>. COORDINATION 2023.</li>
<li>Adam D. Barwell, Ping Hou, Nobuko Yoshida, and Fangyi Zhou. <a href="https://arxiv.org/abs/2305.06238">Designing Asynchronous Multiparty Protocols with Crash-Stop Failures</a>. ECOOP 2023.</li>
<li>Claudio Antares Mezzina, Francesco Tiezzi, and Nobuko Yoshida. <a href="https://link.springer.com/chapter/10.1007/978-3-031-35361-1_11">Rollback Recovery in Session-Based Programming</a>. COORDINATION 2023. <em>(Best paper award)</em></li>
<li>Simon Thompson and Dániel Horpácsi. <a href="https://drops.dagstuhl.de/entities/document/10.4230/OASIcs.EVCS.2023.26">Refactoring = Substitution + Rewriting: Towards Generic, Language-Independent Refactorings</a>. Eelco Visser Commemorative Symposium, 2023.</li>
</ul>
<h3>2022</h3>
<ul>
<li>Laura Bocchi, Dominic Orchard, and Laura Voinea. <a href="https://programming-journal.org/2023/7/6/">A Theory of Composing Protocols</a>.
The Art, Science, and Engineering of Programming (a preliminary version was presented at Code BEAM 2021 - <a href="https://www.youtube.com/watch?v=VPW6H0L4Gek&t=157s">video</a>).</li>
<li>
Adam Barwell, Alceste Scalas, Nobuko Yoshida, and Fangyi Zhou.
<a href="http://mrg.doc.ic.ac.uk/publications/generalised-mulitparty-session-types-with-crash-stop-failures/final.pdf">
Generalised Multiparty Session Types with Crash-Stop Failures
</a>. CONCUR 2022.
</li>
<li>Laura Bocchi, Julien Lange, Simon Thompson, and Laura Voinea. <a href="https://link.springer.com/chapter/10.1007/978-3-031-08143-9_9">A Model of Actors and Grey Failures</a>. COORDINATION 2022.</li>
<li>Laura Bocchi, Ivan Lanese, Claudio Antares Mezzina, and Shoji Yuen. <a href="https://link.springer.com/chapter/10.1007/978-3-031-08679-3_3">The Reversible Temporal Process Language</a>. FORTE 2022.</li>
<li>Jose Cano and Phil Trinder P.W. (Eds) Euro-Par 2022: Parallel Processing, Proceedings of the 28th International Conference on Parallel and Distributed Computing (<a href="https://link.springer.com/book/10.1007/978-3-031-12597-3">Euro-Par'22</a>) Glasgow, UK Springer LNCS 13440 (August 2022).</li>
<li>Aidan Randtoul and Phil Trinder <a href="http://www.dcs.gla.ac.uk/~trinder/papers/ReliableActorBenchmark.pdf">A Reliability Benchmark for Actor-Based Server Languages</a> Proceedings of the 21st ACM SIGPLAN International Workshop on Erlang (Erlang'22) Ljubljana, Slovenia (September 2022).</li>
<li>
Nicolas Lagaillardie, Rumyana Neykova, and Nobuko Yoshida.
<a href="http://mrg.doc.ic.ac.uk/publications/affine-rust-programming-with-multiparty-session-types/main.pdf">Stay Safe under Panic: Affine Rust Programming with Multiparty Session Types</a>. ECOOP 2022.
</li>
<li>Ruomeng Xu, Anna Lito Michala and Phil Trinder <a href="http://www.dcs.gla.ac.uk/~trinder/papers/CAEFL__Composable_and_Environment_Aware_Federated_Learning_Models.pdf">CAEFL: Composable and Environment Aware Federated Learning Models</a>
Proceedings of the 21st ACM SIGPLAN International Workshop on Erlang (Erlang'22) Ljubljana, Slovenia (September 2022).</li>
</ul>
<h3>2021</h3>
<ul>
<li>Paul Harvey, Simon Fowler, Ornela Dardha, and Simon J. Gay. <a href="https://drops.dagstuhl.de/opus/volltexte/2021/14053/">Multiparty Session Types for Safe Runtime Adaptation in an Actor Language</a>. ECOOP 2021.</li>
<li>Simon Fowler, Wen Kokke, Ornela Dardha, Sam Lindley, and J. Garrett Morris. <a href="http://www.simonjf.com/writing/hgv.pdf">Separating Sessions Smoothly</a>. CONCUR 2021.</li>
</ul>
</div>
</div>
</section>
<hr class="featurette-divider">
<section id="artefacts">
<div class="row featurette">
<div class="col-lg-12">
<h2 class="featurette-heading">Tools</h2>
<h3>2024</h3>
<ul>
<li>Duncan Paul Attard, Simon Fowler, Simon J. Gay, Phil Trinder, and Danielle Marshall. <a target="_blank" href="https://github.com/duncanatt/paterl/tags">Mailboxer: Early Detection of Erlang Communication Errors</a>. CodeBEAM 2024.</li>
<li>Luca Aceto, Duncan Paul Attard, Adrian Francalanza, and Anna Ingólfsdóttir. <a target="_blank" href="https://doi.org/10.5281/zenodo.10634182">Runtime Instrumentation for Reactive Components (Artefact)</a>. ECOOP 2024.</li>
</ul>
<h3>2023</h3>
<ul>
<li>Simon Fowler, Duncan Paul Attard, Franciszek Sowul, Simon J. Gay, and Phil Trinder. <a target="_blank" href="https://github.com/SimonJF/mbcheck">Special Delivery: Programming with Mailbox Types (Artefact)</a>. ICFP 2023.</li>
</ul>
</div>
</div>
</section>
<!-- /END THE FEATURETTES -->
</div><!-- /.container -->
<!-- FOOTER -->
<footer class="container">
<p class="float-left">
Navigation bar adapted from the Knight theme by <a href="http://www.bootstrapmade.com">BootstrapMade</a>.
</p>
<p class="float-right"><a class="back-to-top" href="#">Back to top</a></p>
</footer>
</main>
<script src="/assets/js/jquery-3.5.1.min.js"></script>
<script src="/assets/js/bootstrap.bundle.min.js"></script>
<script src="/assets/js/jquery.sticky.js"></script>
<script src="/assets/js/knight.js"></script>
</body>
</body>
</html>