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.
Sadržaj predmeta
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. M. Ben-Ari , Principles of concurent and distributed programming, New York: Prentice-Hall 1991.
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.
10. Materijali u e-formi, sa portala za e-učenje moodle.elab.fon.bg.ac.rs
Katedra za elektronsko poslovanje Univerzitet u Beogradu, Fakultet organizacionih nauka
