Програмування web-сервісів

Вибіркова дисципліна
Навчальна дисципліна професійної підготовки
Обсяг освітнього компонента: 
• у кредитах ЄКТС — 6.0.
Кількість аудиторних занять: 
30 годин лекційних занять, 16 години лабораторних занять.
Самостійна робота: 
складає 134 години.
Семестровий контроль: 
Залік.
Освітню компоненту забезпечує: 
Викладач: 
: к.т.н., доц. Писаренко К.О..
Анотація: 

Анотація навчальної дисципліни

Мета дисципліни:
формування у майбутніх бакалаврів комплексу знань щодо основ розробки веб-сервісів різних видів і набуття практичних навичок використання цієї технології при розробці програмного забезпечення.

Завдання дисципліни:
–    сформувати комплексне уявлення про стек технологій веб-сервісів;
–    ознайомити з різними видами технологій представлення і обробки даних у веб-сервісах, та інструментами для автоматизації цього процесу;
–    ознайомити з різними технологіями взаємодії веб-сервісів в мережі;
–    сформувати практичні навики розробки серверної та клієнтської частини веб-сервісів типу SOAP;
–    сформувати практичні навики розробки серверної та клієнтської частини веб-сервісів типу REST;
–    ознайомити з питаннями захисту веб-сервісів та зв’язком веб-сервісів із хмарними обчисленнями.

Основні результати навчання

ФК2. Здатність брати участь у проектуванні програмного забезпечення, включаючи проведення моделювання (формальний опис) його структури, поведінки та процесів функціонування. 
ПР05. Знати і застосовувати відповідні математичні поняття, методи доменного, системного і об’єктно-орієнтованого аналізу та математичного моделювання для розробки програмного забезпечення. 
ПР11. Вибирати вихідні дані для проектування, керуючись формальними методами опису вимог та моделювання.

ФК3. Здатність розробляти архітектури, модулі та компоненти програмних систем.
ПР12. Застосовувати на практиці ефективні підходи щодо проектування програмного забезпечення.

Форми організації освітнього процесу та види навчальних занять

Л – лекційні заняття; ЛЗ – лабораторні заняття; СРС – самостійна робота здобувача вищої освіти; МКР – модульна контрольна робота; К – консультації.

Тематика та види навчальних занять

1    тиждень
Л1. Введення в веб-сервіси. Стек технологій веб-сервісів. Формат даних XML та JSON. Правила побудови документу. Методи кодування тексту. Юнікод. Їх вплив на XML та JSON.  
ЛЗ1. Генерація XML та JSON  документу.
СРС. К.

2    тиждень
Л2. Мова опису структури XML документу DTD. Мова опису структури XML документу XSD — огляд простих та складних структур. Мова опису структури JSON документу JSON-schema. Парсинг.
СРС. К.

3    тиждень
Л3. Інструменти для автоматизованої генерації та розбору даних в форматі JSON та XML. Розбір XML документу за допомогою інструменту SAX та StAX. Розбір XML документу за допомогою інструменту DOM, що генерує дерево об’єктів. Розбір XML документу за допомогою інструменту JAXB. Розбір JSON-документу
ЛЗ2. Розробка опису структури документу. Парсинг.
СРС. К.

4    тиждень
Л4. Сервісно-орієнтована архітектура.
СРС. К.

5    тиждень
Л5. Короткий огляд мікросервісов. Ключові концепції мікросервісов. Можливість незалежного розгортання. Моноліти
ЛЗ3. Розбір документу 
СРС. К.

6    тиждень
Л6. Моделювання та проектування мікросервісів
СРС. К.

7    тиждень
Л7. Основні поняття Spring та Spring Boot. Створення RESTfull з використанням Spring Framework. Налаштування конфігурації. 
ЛЗ4. Створення мікросервіса
СРС. К.
8    тиждень
Л8. Оптимізація мікросервісів
МКР1. СРС. К.

9    тиждень
Л9. Стилі мікросервісной комунікації. Шаблони. Маршрутизація
ЛЗ5. Побудова веб-сервісу 
СРС. К.

10    тиждень
Л10. Управління даними. Spring Data
СРС. К.

11    тиждень
Л11. Реалізація мікросервісного зв’язку. Створення інфраструктури мікросервісів
ЛЗ6. Управління даними у створеному веб-сервісі
СРС. К.

12    тиждень 
Л12. Інтеграція даних. Тестування у Spring Boot. Комплексне тестування. Сквозне тестування.
СРС. К.

13    тиждень
Л13. Випуск мікросервісів. Зв’язок веб-сервісів та хмарних обчислень.  Міграція застосування у хмару
ЛЗ7. Тестування веб-сервісу
СРС. К.

14    тиждень
Л14. Забезпечення інформаційної безпеки веб-сервісів. Spring Security. Spring Cloud Security
МКР2.СРС. К.

15    тиждень
Л15. Управління змінами
ЛЗ8. Розгортання веб-сервісу
СРС. К.

Процедура оцінювання

Система оцінювання рівня навчальних досягнень ґрунтується на принципах ЄКТС та є накопичувальною. Здобувачі протягом семестру готуються до лекційних та лабораторних занять, виконують 2 модульні контрольні роботи. Для забезпечення оперативного контролю за успішністю та якістю рівня навчальних досягнень здобувачів вищої освіти дисципліна поділяється на два семестрові модулі. Кожний модуль оцінюється у максимально можливі 50 балів.

Критерії оцінювання модульних контрольних робіт
Максимальна оцінка за бездоганне виконання модульної контрольної роботи становить 25 балів.
Перша модульна контрольна робота складається з:
1.    Тестової частини (6 тестових питання). Максимальна оцінка за правильну відповідь на кожне питання становить 2 бали.
2.    Теоретичної частини (2 теоретичних питання). Максимальна оцінка за правильну відповідь на кожне питання становить 3 бали.
3.    Практичної частини (2 практичних завдання). Максимальна оцінка за правильну відповідь на кожне питання становить 3.5 бали.
Друга модульна контрольна робота складається з:
1.    Тестової частини (6 тестових питання). Максимальна оцінка за правильну відповідь на кожне питання становить 2 бали.
2.    Теоретичної частини (3 теоретичних питання). Максимальна оцінка за правильну відповідь на кожне питання становить 2 бали.
3.    Практичної частини (2 практичних завдання). Максимальна оцінка за правильну відповідь на кожне питання становить 3.5 бали.

Критерії оцінювання заліку
Підсумковим контролем з дисципліни є залік. Залік з дисципліни складається з двох частин: перевірки теоретичних знань шляхом опитування та виконання практичного завдання. Мінімальна кількість балів. що зараховується як позитивний результат, дорівнює 60 (за 100-бальною системою). 
Бали розподіляються наступним чином: 40 балів – теоретична частина та 60 балів – практична. Білет містить 4 теоретичних питання рівної складності. 
За бездоганну відповідь на кожне питання студент отримує – 10 балів. При цьому відповідь вважається бездоганною, якщо студент не зробив жодної помилки та повністю виклав зміст питання. 
За кожне запитання знімається 10 балів, якщо була здійснена невірна відповідь або за відсутність відповіді, 5 балів знімається за виправлення відповіді на запитання (за кожне виправлення).
Білет містить 3 практичних питання. За бездоганне виконання завдання практичної частини студент отримує – 60 балів. 
Практична частина заліку вважається виконаною бездоганно, якщо при наявності розв’язання приклада, при цьому усі дії виконані вірно, без помилок; всі записи, щодо розв’язання записані послідовно, зроблена перевірка (якщо потрібно). Крім цього усі малюнки, креслення та схеми виконані охайно, без помилок.
Залік вважається не складаним, якщо студент отримав незадовільну оцінку. 

Критерії оцінювання виконання накопичувальної частини дисципліни
Накопичувальна частина дисципліни складається з поточного контрольного опитування та виконання 8-ми лабораторних робіт. У кожному модульному контролі виконання та захист кожної лабораторної роботи оцінюється 4-ма балами.

Критерії оцінювання поточного контрольного опитування.
Контрольне опитування проводиться у формі письмових контрольних робіт.
Контрольні роботи в кожному з модулів полягають в рішенні практичного завдання, та виборі правильної відповіді для тестових питань або відповіді на теоретичне питання. Відповідь вважається  бездоганною, якщо студент не зробив жодної помилки та відповів правильно на всі питання. 
За кожне запитання знімається 1 бал, якщо була здійснена невірна відповідь або за відсутність відповіді. Якщо студент відмовився від проходження тестування, то він отримує незадовільну оцінку. Контрольна робота вважається не складеною, якщо студент отримав незадовільну оцінку. 
Контрольне опитування проводиться після опанування лекційним матеріалом змістових модулів. У кожному модулі на опитування відводиться 9 балів.

Семестровий модуль № 1
ЛЗ1- ЛЗ4. Оцінка за виконання – 16 балів. Термін виконання – 1-8 тиждень. 
Контрольні роботи – 9 балів. Термін виконання – 1-8 тиждень.
МК1. Модульна контрольна робота – 25 балів (8 тиждень). Перескладання можливе протягом 9–11 тижнів за розкладом консультацій.

Семестровий модуль № 2
ЛЗ5- ЛЗ8. Оцінка за виконання – 16 балів. Термін виконання – 9-15 тиждень. 
Контрольні роботи – 9 балів. Термін виконання – 1-8 тиждень.
МК2. Модульна контрольна робота – 25 балів (14 тиждень).

Умови допуску до підсумкового контролю

До заліку допускаються здобувачі вищої освіти, які виконали всі види навчальних елементів навчальної дисципліни на не менш, ніж на 60 %.
Залік відбувається за всіма тематичними (змістовними) модулями дисципліни.

Політика освітнього процесу

Здобувач зобов’язаний своєчасно та якісно виконувати всі отримані завдання; за необхідністю з метою з’ясування всіх не зрозумілих під час самостійної та індивідуальної роботи питань, відвідувати консультації викладача. Дотримуватись принципів академічної доброчесності.

Виконаний не свій варіант завдання здобувачем не оцінюється.

Робота, яка виконана після встановлених викладачем термінів, не приймається.

Відсутність здобувача на екзамені або на контрольній роботі відповідає оцінці «0». 
Складання/перескладання екзаменів – за встановленим деканатом розкладом.

Під час лекції здійснювати телефонні дзвінки забороняється.

Заборонено використання будь-яких підручників, посібників, конспектів лекцій, шпаргалок під час проходження модульних контролів та екзамену з дисципліни.

Документи (файли), що додаються: Робоча програма навчальної дисципліни.

Література
1. Джош Лонг. JAVA В ОБЛАКЕ. SPRING BOOT, SPRING CLOUD, CLOUD FOUNDRY/Джош Лонг, Кеннет Бастани- СПБ: Питер, 2019 - 624с.
2.    Raja CSP Raman, Ludovic Dewailly. Building RESTful Web Services with Spring 5 - Second Edition: Leverage the power of Spring 5.0, Java SE 9, and Spring Boot 2.0 /Packt Publishing, 2018 -  228p.
3.    Ronnie Mitra, Irakli Nadareishvili. Microservices: Up and Running/O'Reilly Media – 2020
4. Adam Bellemare. Building Event-Driven Microservices/O'Reilly Media - 2020
5. John Carnell, Illary Huaylupo Sánchez. Spring Microservices in Action - 2019, 453p.
6. Magnus Larsson. Hands-On Microservices with Spring Boot and Spring Cloud: Build and deploy Java microservices using Spring Cloud, Istio, and Kubernetes - 2019 
7. Sam Newman. Monolith to Microservices/O'Reilly Media, Inc.- 2019
8. Morgan Bruce, Paulo A Pereira. Microservices in Action/Manning Publications - 2018
9. Craig Walls. Spring Boot in Action - 2015, 264p.
10. Dinesh Rajput. Mastering Spring Boot 2.0: Build modern, cloud-native, and distributed systems using Spring Boot - 2018

2020 рік