Fakultet organizacionih nauka, Univerzitet u Beogradu

Katedra za elektronsko poslovanje

Konkurentno i distribuirano programiranje – projekat

Studijski programNaziv predmetaNastavnik/nastavnici:Status predmeta:Broj ESPB
Informacioni sistemi i tehnologije
Konkurentno i distribuirano programiranje - projekatBožidar Radenković, Zorica Bogdanović, Veljko MilutinovićIzborni5

Ishod predmeta

Studenti, preko teorijske nastave i projekta stiču teorijska i praktična znanja neophodna za razvoj i implementaciju paralelizovanih programa i kompleksnih distribuiranih računarskih sistema koji imaju konkretnu primenu u elektronskom poslovanju.

Cilj predmeta

Cilj ovog kursa je da se studenti upoznaju sa konceptima, metodama, tehnološkom infrastrukturom i softverskim alatima koji se koriste u razvoju i implementaciji paralelnih konkurentnih programa, koji se izvršavaju u distribuiranim računarskim okruženjima, kao i da stečena znanja primene u projektovanju i implementaciji rešenja jednog konkretnog i kompleksnog problema u oblasti elektronskog poslovanja.

Sadržaj

Teorijska nastava

Racionala multiprogramskih sistema, hardverske inovacije. Kernel multiprogramskog sistema. Flunn-ova klasifikacija, MIMD mašine. Tipične organizacije multiprocesora i računarskih mreža, klasteri. Distribuirani računarski sistemi, komponente distribuiranih računarskih sistema. Tipični problemi komunikacije i sinhronizacije procesa. Sistemska i arhitektonska sredstva za kontrolu pristupa kritičnom regionu: region, semafor, događaj, uslov i monitor. Koordinacija i sinhronizacija procesa u distribuiranim računarskim sistemima. Upravljanje procesima, memorijom i uređajima u distribuiranom okruženju. Procesno i servisno orijentisane arhitekture zasnovane na distribuiranoj razmeni poruka. Konkurentno i distribuirano programiranje u programskim jezicima: C++ , JAVA i Python. Razvojna okruženja za distribuirane sisteme. Primeri primene: P2P mreže, distribuirani fajl sistemi, distribuirane baze podataka, poslovna analitika, blockchain tehnologije. Savremeni trendovi u distribuiranom i konkurentnom programiranju.

Praktična nastava

Projektovanje i implementacija distribuiranog i paralelizovanog softverskog rešenja za kompleksan i konkretan problem elektronskog poslovanja korišćenjem jednog ili više razvojnih okruženja i softverskih paketa: Pympi, OpenMP, Webmapreduce, Hadoop, Spark, Flink, Hyperledger. Projekat sadrži: projektni zadatak, dokumentaciju projektnog rešenja, implementacionu dokumentaciju i analizu postignutih rezultata. Odbrana projekta se vrši pred predmetnim nastavnicima i svim studentima modula Elektronsko poslovanje. Projektna dokumentacija se dostavlja studentima modula, a predmetni nastavnik imenuje jednog studenta koji će biti oponent i čiji zadatak će biti da na osnovu detaljno proučene dokumentacije pripremi komentare, pitanja i uz pomoć predmetnih nastavnika vodi diskusiju tokom odbrane projekta.

Literatura

1. Despotović-Zrakić M., Milutinović V., Belić A. (Eds), High performance and cloud computing in scientific research and education, monografija, IGI Global, 2014.

2. N.N. Sakhare, V.V. Meshram Meshram, S.A. Chiwhane, Principles of concurent and distributed programming, Nirali Prakashan, 2015.

3. B. Burns, Designing Distributed Systems: Patterns and Paradigms for Scalable, Reliable Services, O’Reilly Media, 2018

4. C. Varela, Programming Distributed Computing Systems: A Foundational Approach, The MIT Press, 2013.

5. E.Hewwit, Technology Strategy Patterns: Architecture as Strategy, O’Reilly Media, 2018.

6. J.F. Gonzalez, Mastering Concurrency Programming with Java 9 – Second Edition: Fast, reactive and parallel application development, Packt Publishing; 2nd Revised edition edition, 2017.

7. B. Wittman, A. Mathur, T. Korb, Start Concurrent: An Introduction to Problem Solving in Java With a Focus on Concurrency, Purdue University Press, 2014.

8. B. Benmammar, Concurrent, Real-Time and Distributed Programming in Java: Threads, RTSJ and RMI, Wiley-ISTE, 2017.9. M. Raynal, Concurrent Programming: Algorithms, Principles, and Foundations, Springer, 2013.

9. B.Radenković, M. Despotović-Zrakić, Z. Bogdanović, D. Barać, A. Labus, Materijali za predmet Konkurentno i distribuirano programiranje – projekat, u e-formi, sa portala za e-učenje moodle.elab.fon.bg.ac.rs, 2021.

10. Materijali u e-formi, sa portala za e-učenje moodle.elab.fon.bg.ac.rs