185.226 Distributed Programming with Space Based Computing Middleware
This course is in all assigned curricula part of the STEOP.
This course is in at least 1 assigned curriculum part of the STEOP.

2018S, VU, 4.0h, 6.0EC
TUWEL

Properties

  • Semester hours: 4.0
  • Credits: 6.0
  • Type: VU Lecture and Exercise

Aim of course

Evaluation and classification of current tools and technologies for distributed programming. Learning of basic principles of distributed programming with a special focus on innovative space based computing (SBC) technologies. Design of GRID, P2P and Blockchain based distributed and scalable application architectures. Deepening practical experiences with language bindings for Java. Learning of language extensions for SBC: General introduction: Extension of programming languages towards SBC based P2P coordination. SBC application programming interface (language independent). Coordination design patterns. Language bindings Java. Distributed programming with the Java language binding in detail. Application examples. Design of GRID architectures using SBC.

Subject of course

Development of the Internet towards peer-to-peer (P2P) and GRID computing: The 3rd generation of the Internet will be based on P2P. True P2P technologies and models. Critical considerations. Advantages of P2P over client/server technologies. P2P application scenarios in the area of enterprise application integration. Space based computing (SBC) platforms: Overview and principles: Computer networks and P2P allow for new application areas (mobile e-commerce, e-collaboration etc.) and pose new complex challenges on software developers. Importance of middleware platforms. Classification of technologies for distributed programming: Internet protocols, standards, middleware, frameworks. Message passing versus space based programming. Reliable communication based on shared objects ("virtual shared memory"). Software fault-tolerance through replication. Java Spaces & API. Extensible virtual shared memory & API. Relevance of SBC for GRID computing and today's Internet technologies. Application example: P2P database replication. Practical experiences with the design and implementation of fault-tolerant, distributed P2P applications: Practical exercises: Solving of tasks for a distributed system in Java: concurrency control, secure communication, on/off-line mode, naming services, event based notification, scalability and caching. Didactic concept: The course consists of a theoretical part with a written exam on the lecture topics and practical exercises. The practical part will be done in groups of two students and contains programming tasks that should be solved using different middleware systems. Java and C# can be used as programming languages. Beside the implementation, the used technologies should also be compared and evaluated. The solutions are presented in feedback and review meetings. Homepage: http://www.complang.tuwien.ac.at/eva/.

Additional information

ECTS Breakdown:

6 ECTS = 150 Hours

Hours / Purpose:

  •  14 / Lecture time
  •   1 / Exam
  •  17 / Preparation for exam
  •   6 / Preparation for final presentation
  •   1 / Review meetings
  • 111 / Programming assignments

For further information see http://www.complang.tuwien.ac.at/eva/.

Lecturers

Institute

Course dates

DayTimeDateLocationDescription
Tue13:00 - 16:0013.03.2018EI 3 Sahulka HS - UIW Lecture
Tue13:00 - 16:0020.03.2018EI 3 Sahulka HS - UIW Lecture
Tue13:00 - 16:0003.04.2018EI 3 Sahulka HS - UIW Reserve
Tue13:00 - 16:0017.04.2018EI 3 Sahulka HS - UIW Vorlesung
Tue13:00 - 16:0024.04.2018EI 3 Sahulka HS - UIW Lecture
Tue13:00 - 16:0008.05.2018EI 3 Sahulka HS - UIW Prüfungstermin
Tue13:00 - 16:0012.06.2018EI 3 Sahulka HS - UIW Ersatztermin
Tue16:00 - 18:0019.06.2018EI 3 Sahulka HS - UIW Abschlußpräsentation
Tue13:00 - 16:0026.06.2018EI 3 Sahulka HS - UIW Prüfungstermin

Course registration

Begin End Deregistration end
28.01.2018 00:00 30.04.2018 00:00 30.04.2018 00:00

Registration modalities

Registration

Curricula

Study CodeObligationSemesterPrecon.Info
066 936 Medical Informatics Mandatory elective
066 937 Software Engineering & Internet Computing Mandatory elective
066 938 Computer Engineering Mandatory elective

Literature

No lecture notes are available.

Previous knowledge

* Programming Skills in Java * Distributed Systems VO * Distributed Systems LU

Language

German