Програмирање система

Циљ и исход предмета

Овладавање основним теоријским знањима, техникама, алатима и препорученом праксом из области програмирања система велике скале. По окончању предмета студенти су способни да у развоју сложених софтверских апликација уоче и примене софтверске обрасце. Оспособљени су да за конкретан задатак изаберу и примене најпогоднију платформу, моделују архитектуру и декомпонују систем. У стању су да имплеметирају делове у виду софтверских компоненти. Такође и да по потреби примењују сервисно-оријентисану и микросервисну архитектуру.

Теоријска настава

Категорије и каталози софтверских образаца и антиобразаца. Одвајање спецификације од имплементације. Поштовање SOLID принципа и примена дизајн образаца у развоју заснованом на компонентама. Стандарди за развој модуларних система за Java платформу – OSGi и Jigsaw. Софтверске лиценце и верзије. Сервисно оријентисана архитектура и веб сервиси. Технологије и стандарди за имплементацију веб сервиса – SOAP и REST. Концептуални дизајн сервиса: дефинисање домена сервиса, одређивање атомичких сервиса, креирање композитних сервиса. Развој логичких сервиса. Конверзија дизајна у спецификацију: спецификација операција, спецификација сервисног уговора, спецификација порука. Употреба микросервиса. Развој апликација заснованих на методологији 12-factor app. Поређење микросервиса, сервисно-оријентисаних архитектура и архитектура монолитних апликација. Различите имплементације микросервиса – доменски оријентисане архитектуре (Data-driven), програмирање вођено догађајима (Event-driven). Управљање дистрибуираним базама података. Агрегација логова микросервиса и њихово разумевање. Безбедност апликација заснованих на микросервисима. Употреба микросервиса код IoT апликација.

Практична настава

Обрасци и антиобрасци у програмирању система велике скале. Пример софтверске компоненте која користи друге компоненте и њено проширење додатним функционалностима. Коришћење build алата за Јаву – Apache Ant, Apache Maven и Gradle. Вежба креирања компоненте са одвојеном спецификацијом. HTTP протокол и REST архитектура. Имплементација микросервисне апликaције коришћењем Spring Boot технологије. Рад са релациoним и нерелационим базама података у микросервисној архитектури. Употреба Hiberante ORM алата за перзистенцију података у релациону базу. Комуникација између микросервиса и коришћење система за размену порука. Изолoвање апликација у Docker контејнере (писање Dockerfile-а, регистар Docker image-a), оркестрација контејнера, скалирање микросервисне апликацијe.

sbobet88 slot agb99 situs slot slot777 AMANAHTOTO toto AMANAHTOTO AMANAHTOTO slot SLOT GACOR AMANAHTOTO toto slot88 ASIA200 ASIA200 ASIA200 bayijudy.com situs resmi bayitoto slot gacor popotogel login situs slot eropa99 hoki99 roma77 babe138 roma77 roma77 hoki99 abadicash