Тема 15. Сучасна архітектура додатків
Яка різниця між http і https?
"Https - з використанням SSL ( сертифікат для шифрування інформації. Працюють через різні порти: http - 80, https - 443 (є більш безпечним)."
У API є документація?
"У API повинна бути документація. Вона може генеруватись автоматично. Розробник описує функції в своєму програмному коді, запускає код, і згенерується документація, в якій буде вся інформація про всі методи запитів, end-points, параметри і т.і."
Що таке API (Application Programming Interface)?
API (Application Programming Interface) - це сукупність різних інструментів, функцій, реалізованих у вигляді інтерфейсу для створення нових додатків, завдяки якому одна програма буде взаємодіяти з іншою.
Що включає контракт?
API - це контракт, який надає програма. "До мене можна звертатися так і так, я зобов'язуюсь робити те і це". ("Я можу віддати тобі дані про користувачів, якщо ми мені пришлеш запит GET users.") Контракт включає: ● саму операцію, яку ми можемо виконати ● дані, що надходять на вхід ● дані, що опиняються на виході
Види API з точки зору доступу?
API бувають внутрішні і зовнішні. Коли кажемо про API Google, Facebook для легкої реєстрації - це зовнішні (відкриті) API. Закриті (внутнішні) API - це API для комунікування між, наприклад, мікросервісами всередені якогось програмного комплексу.
Що таке HTTP-сервер?
HTTP-сервер — це частина ПЗ, яка розуміє URL'и (веб-адреси) та HTTP (протокол, який ваш браузер використовує для перегляду веб-сторінок).
Що таке REST (Representational State Transfer)?
REST (Representational State Transfer) - насправді архітектурний стиль, а не протокол. На відміну від SOAP, REST не підкріплено офіційним стандартом. Фактично, він ґрунтується на угодах. Веб-сервіс, побудований з урахуванням усіх вимог та обмежень архітектурного стилю, можна назвати RESTful веб-сервісом. REST не використовує конвертацію даних під час передачі, дані передаються у вихідному вигляді - це знижує навантаження на клієнт веб-сервісу, але збільшує навантаження на мережу.
Що таке SOAP (Simple Object Access Protocol)?
SOAP (Simple Object Access Protocol) — протокол обміну структурованими повідомленнями в розподіленому обчислювальному середовищі. Протокол використовується для обміну довільними повідомленнями у форматі XML. SOAP може використовуватися будь-яким протоколом прикладного рівня: SMTP, FTP, HTTP, HTTPS та ін. Найчастіше SOAP використовується поверх НТТР. SOAP є одним із стандартів, на яких базуються технології веб-служб.
З чого складається URL?
https://www.website-name.com, де: https:// - protocol www. - host name www.website-name - domain name .com - top-level domain website-name.com - root domain
Що визначає архітектура «клієнт-сервер»?
Архітектура «клієнт-сервер» визначає загальні принципи організації взаємодії у мережі, де є сервери, вузли-постачальники деяких специфічних функцій (сервісів) і клієнти (споживачі цих функций).
З чого складається архітектура клієнт-сервер?
Архітектура клієнт-сервер складається з клієнтів та серверів. Основна ідея полягає в тому, щоб розміщувати сервери на потужних комп'ютерах, а для менш потужних комп'ютерів клієнтів надати доступ до них за допомогою зовнішніх інтерфейсів.
Які є відмінності між Товстим і Тонким клієнтом?
Базові відмінності між Товстим і Тонким клієнтом - це варіанти обробки даних. Товсті клієнти працюють з інформацією на основі власних апаратних та програмних можливостей, в той же час тонкі застосовують ПЗ центрального сервера тільки для обробки даних, надаючи системі лише необхідний графічний інтерфейс для виконання роботи користувачем.
Що таке Файрвол/брандмауер (firewall/brandmauer)?
Брандмауери можуть бути як програмним забезпеченням, так і обладнанням для сканування вхідних та вихідних пакетів даних на вашому комп'ютері через Інтернет. Якщо мережевий фільтр ловить якісь підозрілі пакети, то таким пакетам блокується доступ до вашого пристрою або приватної мережі. Брандмауери дуже важливі для запобігання проникненню небезпечного або шахрайського трафіку у вашу мережу. Вони блокують доступ певних програм до інтернету, якщо активність є надто ризикованою. ("Це, по суті, поверхнева перевірка пакетів з мережі. Не антивірус.")
З яких елементів складається будь-яке повідомлення в протоколі SOAP?
Будь-яке повідомлення в протоколі SOAP - це XML документ, що складається з наступних елементів (тегів): • Envelope. Кореневий обов'язковий елемент. Визначає початок та закінчення повідомлення. • Header. Необов'язковий елемент - заголовок. Містить елементи, необхідні для обробки самого повідомлення. Наприклад, ідентифікатор сесії. • Body. Основний елемент містить основну інформацію повідомлення. Обов'язковий. • Fault. Елемент, який містить інформацію про помилки, що виникають у процесі обробки повідомлення. Необов'язковий.
Чи може сервер додатків робити те, на що здатний веб-сервер?
Більшість серверів додатків мають веб-сервер як невід'ємну частину, що означає, що сервер додатків може робити все, на що здатний веб-сервер. Оскільки веб-сервери добре підходять для статичного контенту та сервери додатків для динамічного контенту, більшість робочих середовищ мають веб-сервер, що діє як зворотний проксі-сервер для сервера додатків. Це означає, що під час обслуговування запиту сторінки статичний вміст (наприклад, зображення / статичний HTML) обслуговується веб-сервером, який інтерпретує запит. Client - Web server - Application servers - Database
Які основні відмінності між веб-сервером та сервером додатків?
Веб-сервер призначений для обслуговування статичних сторінок, наприклад HTML та CSS. Веб-сервер віддає дані клієнтам за протоколом HTTP. Веб-сервер просто передає дані клієнту, не змінюючи їх. Сервер додатків відповідає за створення динамічного контенту шляхом виконання коду на стороні сервера. ("back-end") Сервер додатків також може обслуговувати контент HTTP, але не обмежується лише HTTP. Можлива підтримка інших протоколів Веб-сервер: служить для передачі вмісту в мережу по протоколу http. Сервер додатків: розміщує та надає доступ до бізнес-логіки та процесів.
Що таке Веб-сервіси?
Веб-сервіси (або веб-служби) — це технологія, що дозволяє системам обмінюватися даними між собою через мережеве підключення. Зазвичай веб-сервіси працюють поверх протоколу HTTP або протоколу вищого рівня. Веб-сервіс - просто адреса, посилання, звернення до якого дозволяє отримати дані або виконати дію. Веб-сервіси - це технологія. Це реалізація абсолютно чітких інтерфейсів обміну даними між різними програмами, які не тільки написані різними мовами, але й розподілені на різних вузлах мережі.
Що таке Сервер віддаленого доступу?
Віддалений сервер - це програмний веб-сервер, до якого можна отримати доступ через Інтернет. Найчастіший варіант використання: на ньому розміщена база даних і до неї звертається велика кількість користувачів. Вони роблять це з будь-якої точки світу, будучи вдома або в локальній корпоративній мережі. Доступ здійснюється через Інтернет, причому лише його швидкість, а не територіальне розташування сервера впливає на те, наскільки зручно працювати з розміщеною там інформацією.
Які компоненти включає в себе веб-сервер з точки зору ПЗ?
З точки зору ПЗ, веб-сервер включає кілька компонентів, які контролюють доступ веб-користувачів до розміщених на сервері файлів, як мінімум - це HTTP-сервер.
Що таке Зворотний (Reverse) проксі сервер?
Зворотний (Reverse) - зворотний проксі-сервер в основному використовується адміністраторами серверів для забезпечення балансування навантаження та високої доступності. Веб-сайт може мати кілька веб-серверів за зворотним проксі-сервером. Зворотний проксі-сервер приймає запити з Інтернету та перенаправляє ці запити на один із веб-серверів.
Як працює проксі-з'єднання?
Кожному комп'ютеру, з якого здійснюється вихід до мережі Інтернет, присвоєно унікальну IP-адресу, завданням якої є ідентифікація інтернет-користувача. IP-адреса несе інформацію про країну та регіон, номер інтернет-провайдера та персонального комп'ютера в його мережі. Проксі-серверам теж присвоєно унікальні IP-адреси. Після підключення до проксі та передачі запитів до мережі перевірка покаже, що вони виходять із сервера-посередника, а сам абонент зможе зберігати своє інкогніто (у разі роботи з безкоштовними серверами, на платних інформація про клієнта зберігається). Для підключення до проксі потрібно виконати налаштування в браузері, який буде використовуватися для надсилання запитів користувача. Всі наступні підключення до мережі будуть виконуватися на IP-адресу проксі-сервера. Коли потрібно буде звернутися до будь-якого веб-ресурсу, локальним комп'ютером буде відкрито з'єднання з проксі та здійснено запит. Після перевірки коректності запиту з'явиться з'єднання з ресурсом. Потім отримана відповідь буде передана на комп'ютер абонента.
Які тести ми маємо на увазі, коли говоримо про автотести на рівні API?
Коли говоримо про автотести на рівні API, ми маємо на увазі інтеграційні автотести (IAPI).
Коли говорять про API з тестувальником, які варіанти обговорюють?
Коли говорять про API з тестувальником, обговорюють два варіанти: ● автотести на рівні API (уміння автоматизувати) ● інтеграцію між двома різними системами (зазвичай SOAP або REST, тобто роботу в SOAP Ui або Postman) ("з цим варіантом ми і працюємо як мануальні тестувальники")
Навіщо і кому потрібен проксі?
На сьогоднішній день проксі-сервери використовуються в основному для приховування справжньої IP-адреси. Причин цього може бути кілька. Найбільш популярні бажання відвідати сайт, доступ до якого заблокований для вашого IP, та необхідність анонімного надсилання пошти. Є ще кілька прикладів, коли потрібен проксі: ● захист мережі або локального комп'ютера від деяких видів мережевих атак та необхідність захисту конфіденційної інформації; ● обмеження доступу користувачів до деяких типів веб-ресурсів. Практикується у компаніях, щоб запобігти не раціональному витрачанню робочого часу співробітниками; ("Є VPN компанії. І через нього фільтруються доступні ресурси. VPN і є Проксі.") ● бажання підключити до Інтернету кілька комп'ютерів за наявності однієї IP-адреси. Налаштування можуть бути виконані таким чином, що від зовнішніх машин буде прихована інформація про локальні машини, бачити вони зможуть лише посередника; ● потреба в економії спожитого трафіку - отримана з мережі Інтернет інформація буде передана користувачеві в компактному вигляді; ● необхідність зниження навантаження на Інтернет-канал та забезпечення клієнтам оперативного доступу до інформації. Для таких випадків виконується кешування файлів та їхнє подальше зберігання на проксі-сервері.
Які є найвідоміші способи реалізації веб-сервісів?
Найвідоміші способи реалізації веб-сервісів: ❑ XML-RPC (XML Remote Procedure Call) - протокол віддаленого виклику процедур з використанням XML. Прабатько SOAP. Гранично простий у реалізації. ❑ SOAP (Simple Object Access Protocol) - стандартний протокол за версією W3C. Чітко структурований та задокументований. ❑ JSON-RPC (JSON Remote Procedure Call) — найсучасніший аналог XML-RPC. Основна відмінність - дані передаються у форматі JSON. ❑ REST (Representational State Transfer) - архітектурний стиль взаємодії комп'ютерних систем у мережі, заснований на методах протоколу HTTP. ❑ Спеціалізовані протоколи для конкретного типу завдань, такі як GraphQL. ❑ Менш поширений, але більш ефективний gRPC, що передає дані в бінарному вигляді та використовує HTTP/2 як транспорт.
Що означає тестування API?
Насамперед, ми маємо на увазі тестування ЧЕРЕЗ API. ("тобто тестуємо веб-сервіси через API інтерфейс") "Тестування API" - загальновживаний термін, так дійсно кажуть, але технічно термін некоректний. Ми не тестуємо API, ми не тестуємо GUI (графічний інтерфейс). Ми тестуємо якусь функціональність через графічний чи програмний інтерфейс.
Які недоліки Товстого клієнта?
Недоліки Товстого клієнта: ● всі робочі машини на постійній основі потребують технічного обслуговування ● потреба в індивідуальному оновленні апаратного ПЗ кожного клієнта до рівня програмного забезпечення ● масивні обсяги дистрибутивів ● повна залежність від платформ, під яку ці клієнти були створені
Які недоліки Тонкого клієнта?
Недоліки Тонкого клієнта: ● при збої на сервері "постраждають" всі підключені користувачі ● немає можливості працювати без активного підключення до мережі ● при взаємодії з великим масивом даних може знижуватись обсяг продуктивності основного сервера
Яке основне завдання веб-сервера?
Основне завдання веб-сервера - приймати НТТР-запити (HTTP Request), обробляти їх та видавати НТТР-відповіді (HTTP Response). Коли браузеру потрібен файл, розміщений на веб-сервері, браузер запитує його через HTTP-протокол. Коли запит досягає потрібного веб-сервера ("залізо" ("тобто апаратне забезпечення"), сервер HTTP (ПЗ) приймає запит, знаходить запитуваний документ ("фізично") (якщо ні, повідомляє про помилку 404) і відправляє назад, також через HTTP.
Яке основне завдання створення API?
Основне завдання створення API - дати можливість програмістам суттєво полегшити задачу при розробці різних ПЗ за рахунок використання вже готового коду (будь-якої стандартної функції, процедури, структури або постійного значення, які будуть виконуватися в кінцевому продукті).
Які основні відмінності між REST та SOAP?
Основні відмінності між REST та SOAP ▪ REST підтримує різноманітні формати: txt, JSON, XML; SOAP - лише XML, ▪ REST працює тільки за HTTP(S), а SOAP може працювати з різними протоколами, ▪ REST може працювати із ресурсами. Кожен URL - це представлення будь-якого ресурсу. SOAP працює з операціями, які реалізують будь-яку бізнес-логіку за допомогою декількох інтерфейсів, ▪ SOAP на основі читання не може бути поміщений у кеш, а REST у цьому випадку може бути закешований, ▪ SOAP підтримує SSL і WS-security, тоді як REST - тільки SSL.
Які переваги і недоліки REST?
Переваги REST: ▪ простота реалізації; ▪ економічність у плані ресурсів; ▪ не вимагає програмних надбудов (json_decode є майже в кожній мові). Недоліки REST: ▪ відсутність специфікації; ▪ неоднозначність методів керування даними.
Які переваги і недоліки SOAP?
Переваги SOAP: ▪ галузевий стандарт за версією W3C; ▪ наявність суворої специфікації; ▪ широка підтримка у продуктах Microsoft, ▪ однозначність. Недоліки SOAP: ▪ складність реалізації; ▪ складність/ресурсоємність парсингу XML-даних.
Які переваги Товстого клієнта?
Переваги Товстого клієнта: ● велика функціональність ● наявність розрахованого на багато користувачів режиму ● можливість роботи в режимі офлайн ● миттєва швидкодія ● мінімальна залежність від складних серверів
Які переваги Тонкого клієнта?
Переваги Тонкого клієнта: ● мінімальне апаратне обслуговування ● низький ризик виникнення несправності ("саме на клієнті") ● мінімальні технічні вимоги до апаратного обладнання
Які переваги використання проксі сервера?
Переваги використання проксі сервера: ● проксі-сервери підтримуються абсолютною більшістю відомих веб- браузерів; ● здійснюється повний контроль доступу, зручний облік трафіку, його фільтрація (у разі інтеграції з антивірусами); ● можливість роботи з мінімальними правами на будь-якій операційній системі; ● відсутність виходу в Інтернет за іншими протоколами значно підвищує безпеку обміну інформацією корпоративної мережі.
Що таке веб-сервер?
Поняття «веб-сервер» може стосуватися як апаратної начинки ("залізо"), так і програмного забезпечення. Або навіть обох частин, що працюють разом. ("Основна його функція - комунікація з клієнтом за допомогою HTTP"). З точки зору "заліза", "веб-сервер" - це комп'ютер, який зберігає файли сайту (HTML-документи, CSS-стилі, JavaScript-файли, картинки та інші) і доставляє їх на пристрій кінцевого користувача (веб-браузер тощо). ("приймає запити від клієнта, направляє на app сервер, після відповіді - відповідає на клієнт") Він підключений до Інтернету і може бути доступний через доменне ім'я. "Приклади веб-серверів - nginx, Apache."
Що таке Поштовий сервер?
Поштовий сервер - це програмний додаток, який отримує вхідні електронні листи від місцевих користувачів (тих, що знаходяться в тому ж домені), що і одержувач, а також від віддалених користувачів (тих, що знаходяться в іншому домені), і надсилає вихідні листи. Термін «місцевий» стосовно домену електронної пошти не повинен вводити в оману. Наприклад, користувачі поштового сервісу GMail можуть знаходитися на різних континентах, але використовувати один і той же домен gmail.com, і тому відносно один одного вони - «місцеві» (local). Фізичний (або віртуальний) комп'ютер, на якому встановлено цей програмний додаток, також може називатися поштовим сервером.
Приклади Товстого клієнта?
Приклади товстого клієнта: програми для спільної діяльності, якщо вони встановлені на певні комп'ютери - Microsoft Office, Microsoft Outlook.
Приклади Тонкого клієнта?
Приклади тонкого клієнта: всі веб-браузери та веб-програми, наприклад Google Docs.
Що таке проксі сервер?
Проксі сервер - це елемент мережевої інфраструктури, який виконує роль посередника між клієнтським комп'ютером (браузер, програма), що знаходиться у внутрішній мережі та іншим сервером, який живе у зовнішній мережі або навпаки. Це додаткова ланка між вами та Інтернетом. ("VPN, без особистих даних у запиті")
Для чого використовується проксі сервер?
Проксі сервер може застосовуватися для вирішення наступних завдань: ❑ посилення безпеки ❑ захист приватності ❑ балансування навантаження на відвідуваний ресурс
Які є протоколи email-систем?
Протоколи email-систем: ● IMAP (Internet Mail Access Protocol) ● POP (Post Office Protocol) ● SMTP (Simple Mail Transfer Protocol)
Що таке Прямий (Forward) проксі сервер?
Прямий (Forward) - це такий проміжний сервер між клієнтом та сервером призначення, до якого звертається клієнт. Щоб отримати контент із сервера призначення, клієнт надсилає запит проксі- серверу із зазначенням сервера призначення як ціль, а проксі запитує контент і повертає його клієнту. Клієнт повинен бути спеціально налаштований (наприклад, можна вказати проксі у браузері) для використання такого проксі для доступу до інших сайтів.
Які є види проксі-серверів?
Прямий (Forward) і зворотний (Reverse).
Що таке Сервер бази даних?
Сервер бази даних (БД) виконує обслуговування та управління базою даних та відповідає за цілісність та збереження даних, а також забезпечує операції введення- виводу при доступі клієнта до інформації. ("Сервер бази даних відповідає за збереження інформації. На ньому фізично знаходиться база даних. З ним комунікує веб-сервер, або сервер додатків.")
Які режими роботи підтримує Сервер віддаленого доступу?
Сервер віддаленого доступу підтримує два режими роботи: 1. Віддалений доступ до мережі. Класичний випадок, коли віддалені клієнти звертаються на сервер. Підтримує різноманітні мережеві протоколи. 2. Віддалене управління. Клієнти дистанційно керують роботою сервера (його ще називають сервером терміналів). Рішення, в якому реалізовані інструменти спільного використання екрана, маніпулятора та клавіатури за допомогою дистанційного з'єднання. ("Приклад - Team viewer")
Що таке Сервер додатків (Application server)?
Сервер додатків - це набір фізичного та програмного забезпечення, яке здатне забезпечити доступ клієнтів до програм, що виконуються безпосередньо на серверному обладнанні. По суті це якийсь комплект, до якого можна отримати доступ за допомогою спеціальних API та забезпечити не тільки виведення будь-яких даних, але й оптимізувати виконання програмного коду на будь-яких пристроях. ("По суті, у якості Application server'а йде наш додаток (Back-end частина). Application server може бути окремим, але досить часто це, по суті, один фізичний сервер, на якому знаходиться і веб-сервер програма, і додаток back-endу. Це може бути і мікросервіс додатку.") Client - Application server - Database.
Які є типи серверів?
Типи серверів: □ Web-сервери. □ Сервери додатків. □ Сервери бази даних. □ Файл-сервери. □ Проксі-сервер. □ Файрволи (брандмауери). □ Поштові сервери. □ Сервери віддаленого доступу (RAS).
Що таке Товстий клієнт?
Товстий клієнт - клієнт, який виконує запитані з боку користувача маніпуляції незалежно від провідного сервера. Товстий клієнт - це робоча машина або ПК, які функціонують на основі своєї ОС та наповнені повноцінним набором програмного забезпечення для необхідних завдань користувача.
Що таке Тонкий клієнт?
Тонкий клієнт - вид клієнта, який може переносити виконання завдань з обробки інформації на сервер, не застосовуючи свої потужності для обчислення для їх впровадження. Всі обчислювальні ресурси подібного клієнта максимально обмежені, важливо, щоб їх вистачало для старту потрібного мережного ПЗ, застосовуючи, наприклад, веб-інтерфейс (приклад - веб-браузер). ("Більшість функціональності тонкого клієнта виконується на сервері.")
Як відбувається управління даними в REST?
Управління даними відбувається за допомогою методів HTTP: GET - отримати дані; POST - додати дані; PUT - змінити дані; DELETE - видалити дані.
Що таке Файловий сервер?
Файловий сервер - пристрій, призначений для зберігання файлів та надання спільного доступу до цих даних. Це може бути сервер, спеціалізоване устаткування, звичайний комп'ютер, дисковий накопичувач. Залежно від можливостей програмного забезпечення, файловий сервер також може забезпечити безпеку зберігання інформації та її збереження. ("Якщо на сервері бази даних інформація зберігається у вигляді записів ("таблиці, інформація про файли: коли доданий, розмір, шлях до файлу..."), то файловий сервер - місце зберефення файлів (зображень, відео...)")
Приклади використання API
● Процес швидкої реєстрації в різних додатках використовуючи обліковий запис будь-якої із запропонованої соціальної мережі, коли за допомогою АПІ соц. мережі (Facebook, Linkedin) сторонні компанії отримують можливість використовувати спеціальний код та АПІ для надання вам оперативного та спрощеного доступу до їхнього продукту; ● Компанія Google за рахунок використання API дає потенційну можливість розробникам різних програм використовувати інтеграцію інформації зі своїх сервісів на своїх платформах. Завдяки цьому ви зможете переглянути відео взяте з відео хостингу YouTube.com прямо всередині програми. ● Велика кількість комерційних компаній пропонують API як готовий до використання продукту. Так, американська компанія Weather Underground заробляє рахунок продажу доступу до свого API для оперативного отримання метеорологічних даних у будь-якій точці нашої планети. ● Оплата онлайн в будь-якому інтернет магазині через банківські АПІ (Приват24, PayPal, Liqpay тощо).