
- •1. Основні ознаки розподілених програмних систем.
- •2. Характеристики розподілених систем, що впливають на продуктивність обчислень.
- •3. Характеристики розподілених систем, що впливають на надійність обчислень.
- •4. Характеристики розподілених систем, що впливають на економію ресурсів.
- •6. Недоліки розподілених систем, що пов’язані з їх використанням.
- •7. У чому полягає складність розробки розподілених систем?
- •8. Основні види архітектур розподілених систем.
- •9. Особливості архітектури клієнт/сервер.
- •10. Види архітектур клієнт/сервер та галузі їх застосування.
- •11. Особливості застосування архітектури Клієнт / сервер на Основі тонкого клієнта.
- •12. Особливості застосування архітектури Клієнт / сервер на Основі Товстого клієнта.
- •13. Особлівості багаторівневої архітектури Клієнт / сервер.
- •14. Характеристики архітектури розподіленіх об'єктів.
- •15. Основні Переваги архітектури розподіленіх об'єктів.
- •16. Основні недолікі архітектури розподіленіх об'єктів.
- •17. Характеристика систем реального часу.
- •18. Класифікація систем реального часу за типами вхідніх сігналів.
- •19. Особливості проектування систем реального часу.
- •20. Засоба підвіщення продуктівності систем реального часу.
- •21. Моделі систем реального часу.
- •22. Вимоги до засобів програмування систем реального часу.
- •23. Керуючі компоненти систем реального часу.
- •24. Компоненти, що підвищують надійність систем реального часу.
- •25. Особливості керування процесами в системах реального часу.
- •26. Види інтерфейсів користувача та їх особливості.
- •27. Переваги та недоліки графічного інтерфейсу користувача.
- •28. Особливості проектування інтерфейсу користувача.
- •29. Основні засади проектування інтерфейсу користувача.
- •31 Основні види взаємодії користувача і програми та сфери їх застосування.
- •32 Недоліки та переваги основних видів взаємодії користувача з програмою.
- •33 Способи подання інформації користувачу.
- •34 Основні правила використання кольору в інтерфейсах користувача.
- •35 Засоби інтерфейсу спрямовані на підтримку користувача.
- •36 Основні види документації для користувачів програмних систем.
- •37 Основні складові надійності програмних систем.
- •38 Обґрунтування потреби у високонадійних програмних системах.
- •39 Поняття критичної системи.
- •40 Основні типи критичних систем.
- •41. Основні джерела відмов та підходи до проектування критичних систем.
- •42. Основні підходи для підвищення безвідмовності систем.
- •43. Рівні безпечності програмних систем.
- •44. Способи підвищення безпечності програмних систем.
- •45. Типи пошкоджень систем, що викликаються зовнішніми чинниками.
- •46. Засоби підвищення захищеності програмних систем.
- •47 Основні підходи до проектування надійного програмного забезпечення.
- •48 Основні вимоги до розробки безвідмовного програмного забезпечення.
- •49. Конструкції мов програмування, що потенційно можуть призвести помилок.
- •50. Методи програмування, що потенційно можуть призвести до помилок.
- •51. Укривання даних, як спосіб підвищення надійності програмування.
- •52. Технологічні заходи мінімізації числа відмов у програмних системах.
- •53. У проблемі безвідмовності виділяють чотири аспекти.
- •54. Існує два підходи, що використовуються для розробки пз, стійкого до збоїв.
- •55. Обробка виключень в мовах програмування як засіб підвищення надійності.
- •56.Основні типи виявлення збоїв у програмних системах.
- •57. Способи локалізації помилок та пошкоджень даних в програмах.
- •58. Види стійких до відмов архітектур.
- •59. Основні підходи до створення стійкого до відмов програмного забезпечення.
- •60. Шляхи досягнення відмінностей між різними версіями програмного забезпечення. Досягти відмінності між різними версіями пз можна також такими способами:
8. Основні види архітектур розподілених систем.
Завдання розробників розподілених систем - спроектувати програмне або апаратне забезпечення так, щоб надати всі необхідні характеристики розподіленої системи. А для цього потрібно знати переваги та недоліки різних архітектур розподілених систем. Тут виділяється два споріднених типу архітектур розподілених систем.
Архітектура клієнт / сервер. У цій моделі систему можна представити як набір сервісів, що надаються серверами клієнтам. У таких системах сервери і клієнти значно відрізняються один від одного.
Архітектура розподілених об'єктів. У цьому випадку між серверами і клієнтами немає відмінностей і систему можна представити як набір взаємодіючих об'єктів, місце розташування яких не має особливого значення. Між постачальником сервісів і їх користувачами не існує відмінностей.
У розподіленій системі різні системні компоненти можуть бути реалізовані на різних мовах програмування і виконуватися на різних типах процесорів. Моделі даних, подання інформації та протоколи взаємодії - все це не обов'язково буде однотипним в розподіленій системі. Отже, для розподілених систем необхідно таке програмне забезпечення, яке могло б керувати цими різнотипними частинами і гарантувати взаємодія і обмін даними між ними. Проміжне програмне забезпечення відноситься саме до такого класу ПЗ. Воно знаходиться як би посередині між різними частинами розподілених компонентів системи.
У статті [37] описані різні типи проміжного ПЗ, яке може підтримувати розподілені обчислення. Як правило, таке ПЗ складається з готових компонентів і не вимагає від розробників спеціальних доопрацювань. В якості прикладів проміжного ПО можна привести програми управління взаємодією з базами даних, менеджери транзакцій, перетворювачі даних, комунікаційні інспектори та ін Далі в главі буде описана структура розподілених систем як клас проміжного ПО.
Розподілені системи зазвичай розробляються на основі об'єктно-орієнтованого підходу. Ці системи створюються з слабо інтегрованих частин, кожна з яких може безпосередньо взаємодіяти як з користувачем, так і з іншими частинами системи. Ці частини по можливості повинні реагувати на незалежні події. Програмні об'єкти, побудовані на основі таких принципів, є природними компонентами розподілених систем. Якщо ви ще не знайомі з концепцією об'єктів, рекомендую спочатку прочитати главу 12, а потім знову повернутися до даної глави.
9. Особливості архітектури клієнт/сервер.
Дуже важливо ясно уявляти, хто або що розглядається як «клієнт». Можна говорити про клієнтський комп'ютер, з якого відбувається звернення до інших комп'ютерів. Можна говорити про клієнтське та серверне програмне забезпечення. Нарешті, можна говорити про людей, які бажають за допомогою відповідного програмного та апаратного забезпечення отримати доступ до тієї чи іншої інформації.
Загальноприйнятим є положення, що клієнти та сервери – це перш за все програмні модулі. Найчастіше вони знаходяться на різних комп'ютерах, але бувають ситуації, коли обидвіпрограми – і клієнтська, і серверна, фізично розміщуються на одній машині; в такій ситуації сервер часто називається локальним.

Модель клієнт-серверної взаємодії визначається перш за все розподілом обов'язків між клієнтом та сервером. Логічно можна виокремити три рівні операцій: рівень представлення даних, який по суті являє собою інтерфейс користувача і відповідає за
представлення даних користувачеві і введення від нього керуючих команд;
прикладний рівень, який реалізує основну логіку застосунку і на якому здійснюється
необхідна обробка інформації; рівень управління даними, який забезпечує зберігання даних та доступ до них.
Дворівнева клієнт-серверна архітектура передбачає взаємодію двох програмних модулів – клієнтського та серверного. В залежності від того, як між ними розподіляються наведені вище функції, розрізняють:
модель
тонкого клієнта, в рамках якої вся
логіка
застосунку
та управління даними
зосереджена на сервері. Клієнтська програма забезпечує тільки функції рівня представлення;
модель товстого клієнта, в якій сервер тільки керує даними, а обробка інформації та
інтерфейс користувача зосереджені на стороні клієнта. Товстими клієнтами часто також називають пристрої з обмеженою потужністю: кишенькові комп’ютери, мобільні телефони та ін.