Naslov Usporedba tehnologija za reaktivno programiranje
Naslov (engleski) Reactive Programming Technology Comparison
Autor Lovro Buničić
Mentor Mario Kušek (mentor)
Član povjerenstva Mario Kušek (predsjednik povjerenstva)
Član povjerenstva Ivana Podnar Žarko (član povjerenstva)
Član povjerenstva Jurica Babić (član povjerenstva)
Ustanova koja je dodijelila akademski / stručni stupanj Sveučilište u Zagrebu Fakultet elektrotehnike i računarstva Zagreb
Datum i država obrane 2019-07-09, Hrvatska
Znanstveno / umjetničko područje, polje i grana TEHNIČKE ZNANOSTI Računarstvo
Znanstveno / umjetničko područje, polje i grana TEHNIČKE ZNANOSTI Elektrotehnika
Sažetak Pojam reaktivnog programiranje označava deklarativni način programiranja orijentiran oko podatkovnih tokova i propagacije promijene. Glavne karakteristike ovakvoga načina programiranja su asinkronost, neblokirajući rad te sposobnost upravljanja povratnim pritiskom za spriječavanje preopterećenja potrošača podataka. U praksi, reaktivno je programiranje najzastupljenije u obliku korištenja skupa programskih knjižnica ReactiveXa. Glavni fokus ReactiveX knjižnica je uz asinkronost i temeljenost na događajima. Iako je primarno razvijena za .NET, danas sadrži zasebne knjižnice za većinu najzastupljenijih programskih jezika. Uz asinkronost, neblokirajući rad te upravljanje povratnim pritiskom ReactiveX uklanja brigu o sinkronizaciji, upravljanju dretvama, njihovoj sigurnosti te konkurentim strukturama podataka. Navedene karakteristike ostvaruju se korištenjem koncepata kao što su promatrač, vidljivi objekt, operator, subjekt te raspoređivač. Najkorištenije knjižnice su RxJava, RxSwift, RxAndroid, RxKotlin, Project Reactor te RxJS. Za postizanje svih prednosti reaktivnosti potrebno je da je cijeli sustav reaktivan pa je stoga iznimno važna reaktivna mrežna komunikacija korištenjem protokola RSocket te reaktivni pristup bazama podataka. Reaktivni pristup nerelacijskim bazama podataka moguć je za značajan broj baza podataka od kojih su najpoznatije MongoDB, Apache Cassandra, Redis i Realm. Pristup relacijskim bazama podataka na reaktivni način nije toliko zastupljen no postoje nastojanja za ostvarenjem istoga. Aplikacijska programska sučelja za reaktivni pristup relacijskim bazama podataka koja trenutno postoje ili su u razvoju su ADBA i R2DBC. Reaktivnost ima svoje prednosti kako u razvoju poslužitelja tako i u razvoju klijenstkih web i mobilnih aplikacija. Knjižnice ReactiveXa osim spomenutih prednost imaju pozitivan utjecaj na razvoj grafičkih korisničkih sučelja pa osim knjižnica koje implementiraju osnovne ReactiveX koncepte postoje i knjižnice koje fokusirajući se na korisničko sučelje proširuju funkcionalnosti ReactiveXa. Unatoč nekolicini nedostaka korištenja reaktivnog programiranja zbog značajnih pozitivnih utjecaja kako na perfomanse tako i na proces pisanja programskoga koda zastupljenost reaktivnoga programiranja u budućnosti vjerojatno će samo rasti.
Sažetak (engleski) Term reactive programming signifies declarative programming paradigm focused on data streams and propagation of change. Its main characteristics are asynchronicity, non blocking work and capability of controlling the backpressure. In practice, reactive programming is mostly used in form of ReactiveX libraries which another strong focus is event based work. Although it was firstly developed for .NET today it has separate libraries for every mayor programming language. Alongside already mentioned benefits ReactiveX removes concern related to synchronisation, thread management, thread security and care for concurrent data structures. All of this is done by introducing concepts such as Observer, Observable, Operator, Subject and Scheduler. Most used ReactiveX libraries are RxJava, RxSwift, RxAndroid, RxKotlin, Project Reactor and RxJS. In order to achieve all benefits related to reactive programming all system components have to be reactive including networking and database access. RSocket protocol provides support for reactive networking. Reactive access for non relational databases is supported for significant number of databases where some of the most popular are MongoDB, Apache Cassandra, Redis and Realm database. Reactive access for relational databases is still under development in form of APIs such as ADBA and R2DBC. Reactive programming has its benefits for server development as well as for Web, Android and iOS development. Because of the benefits that reactive UI programming has there are multiple libraries that extend on basic ReactiveX concepts by adding UI related functionalities. Despite few downsides, reactive programming is probably going to become even more used thanks to its significant benefits.
Ključne riječi
reaktivnost
ReactiveX
vidljivi objekti
promatrač
pretplata
Ključne riječi (engleski)
reactive
ReactiveX
Observable
Observer
Subscription
Jezik hrvatski
URN:NBN urn:nbn:hr:168:534855
Studijski program Naziv: Informacijska i komunikacijska tehnologija Vrsta studija: sveučilišni Stupanj studija: diplomski Akademski / stručni naziv: magistar/magistra inženjer/inženjerka informacijske i komunikacijske tehnologije (mag. ing. inf. et comm. techn.)
Vrsta resursa Tekst
Način izrade datoteke Izvorno digitalna
Prava pristupa Zatvoreni pristup
Uvjeti korištenja
Javna napomena
Datum i vrijeme pohrane 2020-01-07 17:08:27