This module is aimed at introducing the principles of concurrency theory (1, 2, 3) and demonstrating how these can be applied to design and implement distributed applications (4). Advanced concepts of Web services will be studied and placed in the perspective of these principles (5, 6).
The following is an indicative list of topics:
• Message passing primitives for concurrency: synchronous versus asynchronous message passing, the actor model.
• Reasoning on processes: temporal logic, safety and liveness properties, bisimulation.
• Channel passing and mobility.
• Design and implementation of application–level protocols.
• Web services: from stateless services to distributed business processes (also known as service orchestrations).
• Transaction protocols on the Web: two-phase commit, long running transactions.
This module appears in the following module collections.
Total contact hours: 32 hours
Private study hours: 118 hours
Total study hours: 150 hours
Method of assessment
13. Assessment methods
13.1 Main assessment methods
Concurrent programming in Java Coding assignment (20%)
Concurrent programming in GO Coding assignment (20%)
Seminar (Presentation and oral discussion) 10%
2-hour unseen written examination (50%)
13.2 Reassessment methods
Like for like.
Armstrong, J, Virding, R, Williams,W.M, Wilkstrom, (1996). C. Concurrent Programming in ERLANG. Prentice-Hall.
Lynch, N.A. (1996). Distributed Algorithms. Morgan Kaufmann Publishers In (Section 7)
Milner, R. (1989). Communication and Concurrency. Prentice-Hall,
See the library reading list for this module (Canterbury)
8. The intended subject specific learning outcomes.
On successfully completing the module students will be able to:
8.1 Have a critical understanding of the principles of concurrent programming, as well as its advantages and challenges;
8.2 Reason on the properties of a distributed process (e.g., safety and liveness), and compare the behaviour of different processes.
8.3 Design and implement processes satisfying given properties.
8.4 Apply the acquired knowledge to real scenarios e.g. application-level protocols, Web services.
8.5 Be familiar with advanced concepts of Web Services.
9. The intended generic learning outcomes.
On successfully completing the module students will be able to demonstrate:
9.1 Systematic and rigorous reasoning,
9.2 Application of abstract concepts to concrete scenarios,
9.3 Ability of presenting and discussing state of the art topics.
Back to top
Credit level 6. Higher level module usually taken in Stage 3 of an undergraduate degree.
- ECTS credits are recognised throughout the EU and allow you to transfer credit easily from one university to another.
- The named convenor is the convenor for the current academic session.
University of Kent makes every effort to ensure that module information is accurate for the relevant academic session and to provide educational services as described. However, courses, services and other matters may be subject to change. Please read our full disclaimer.