Advanced topics in concurrent systems

Instructors Marco Peressotti < peressotti [at] imada.sdu.dk >
Saverio Giallorenzo < saverio [at] imada.sdu.dk >
Period Spring 2019
Code DM869 (10ECTS, Master level, https://odin.sdu.dk/sitecore/index.php?a=searchfagbesk&internkode=dm869&lang=en)
Office hours Open door.
Prerequisites It is an advantage to know the contents of DM861 (Concurrency Theory) or DM848 (Microservice Programming).

Summary

This course covers advanced topics in the fields of concurrency theory, logic, and software engineering and their applications in the understanding and development of modern concurrent systems. The students will learn how to acquire strong scientific foundations to conduct innovative R&D in both industrial and academic environments.

In relation to the competence profile of the degree it is the explicit focus of the course to:

  • Give the competence to: plan and carry out scientific projects at a high professional level, including managing work and development situations that are complex, unpredictable, and require new solution.
  • Give skills to: describe, analyse, and solve advanced computational problems using the learned models; develop new variants of the methods learned.
  • Give knowledge and understanding of: a variety of specialized models and methods developed in computer science, based on the highest international research, including topics from the subject's research front; a scientific basis to reflect on the subject area and to identify scientific issues.

Selected topics

  • High-level programming languages for concurrent systems.
  • Formalisation and verification of concurrent systems.
  • Modern Software Architectures: Large-scale Networks, Microservices, Serverless.
  • Development Processes: Design, Development, Release.
  • System Operations: Automatic Scaling, Continuous Integration, Continuous Deployment.

Course evaluation

Results of the midterm and final course evaluations.

Schedule

Date Topic Reading Due
Unit 1: Formalisation of Concurrent Systems
Feb-04 Course Overview
Feb-05 Inference systems [1:Ch. 1]
Feb-11 Exercises
Feb-12 Process Algebras [2:Ch. 4]
Feb-25 Exercises
Feb-26 Behavioural Equivalences [2:Sec. 5.1,5.2]
Mar-04 Exercises
Mar-05 Concurrent Program Verification [2:Sec. 5.3]
Mar-11 Exercises
Unit 2: High-Level Languages for Cloud Systems
Mar-12 Service-Oriented Programming [3]
Mar-18 Exercises
Mar-19 Service Integration [4, 5]
Mar-25 Exercises
Mar-26 Exercises Midterm course evaluation
Apr-01 Midterm Presentations
Apr-02 Midterm Presentations
Apr-08 Microservice Architectural Patterns [6, 7]
Apr-09 Exercises
Apr-29 Project Overview
Unit 3: Type Systems for Concurrency
Apr-30 Logics and types [8]
May-06 Exercises Project Proposal
May-07 Pi-calculus [9]
May-13 Exercises
May-14 Behavioural types [10] Project Progress
May-20 Linear Logic and Session Types [11]
May-21 Exercises
May-27 Final Projects
May-28 Final Projects
Jun-03 Project Report

Material

Tools and languages
  • Concurrency Workbench (CAAL): a tool for modelling, visualising, and verifying CCS programs.
  • Stargazer: a visual simulator for π‑calculus programs.
  • Jolie: a programming language for service-oriented programming.
Reeding material
[1]
Montesi, F. Introduction to Choreographies.
[2]
Aceto, L., Larsen, K.G. and Ingólfsdóttir, A. An Introduction to Milner’s CCS.
[3]
Montesi, F., Guidi, C. and Zavattaro, G. 2014. Service-Oriented Programming with Jolie. Web Services Foundations. A. Bouguettaya, Q.Z. Sheng, and F. Daniel, eds. Springer. 81–107.
[4]
Montesi, F. and Carbone, M. 2011. Programming Services with Correlation Sets. Service-Oriented Computing - 9th International Conference, ICSOC 2011, Paphos, Cyprus, December 5-8, 2011 Proceedings (2011), 125–141.
[5]
Giallorenzo, S., Lanese, I. and Russo, D. 2018. ChIP: A Choreographic Integration Process. OTM Conferences (2) (2018), 22–40.
[6]
Montesi, F. and Weber, J. 2018. From the decorator pattern to circuit breakers in microservices. Proceedings of the 33rd Annual ACM Symposium on Applied Computing, SAC 2018, Pau, France, April 09-13, 2018 (2018), 1733–1735.
[7]
Montesi, F. and Weber, J. 2016. Circuit Breakers, Discovery, and API Gateways in Microservices. CoRR. abs/1609.05830, (2016).
[8]
Wadler, P. 2015. Propositions as types. Commun. ACM. 58, 12 (2015), 75–84. DOI:10.1145/2699407.
[9]
Parrow, J. 2001. An Introduction to the π-Calculus. Handbook of Process Algebra. J.A. Bergstra, A. Ponse, and S.A. Smolka, eds. North-Holland / Elsevier. 479–543.
[10]
Hüttel, H., Lanese, I., Vasconcelos, V.T., Caires Luı́s, Carbone, M., Deniélou, P.-M., Mostrous, D., Padovani, L., Ravara, A., Tuosto, E., Vieira, H.T. and Zavattaro, G. 2016. Foundations of Session Types and Behavioural Contracts. ACM Comput. Surv. 49, 1 (2016), 3:1–3:36. DOI:10.1145/2873052.
[11]
Wadler, P. 2014. Propositions as sessions. J. Funct. Program. 24, 2-3 (2014), 384–418. DOI:10.1017/S095679681400001X.

Policies

Open door

Students can come to us at any time to discuss issues, ask questions, get or give feedback.

Late submissions

No late submissions will be accepted/graded unless the instructor is contacted in advance with a reasonable explanation for the delay.

If the instructor approves late acceptance of a submission, the submission will incur a late penalty per late day (up to a maximum of 3 days). Submissions received 3 days or more after the due date will not be graded. The actual late penalty is at the instructor's discretion and may vary (based on the reason for the delay and how early the instructor was informed).

Collaboration

All submissions must be your own work. No collaboration is permitted on project write-ups (except with your project partner if you have one). No collaboration is permitted on exams. We will default to SDU's academic policies unless stated otherwise above.