едає для виконання своєї локальної ОС. Після того, як результат отриманий, сервер звертається до транспортної підсистемі і направляє відповідь клієнту, який видав запит. Клієнтська частина перетворює результат у відповідний формат і адресує його додатку, яка видала запит. [2]
1.3 Модель Клієнт-Сервер
У базовій моделі клієнт-сервер всі процеси в розподілених системах діляться на дві можливо перекриваються групи. Процеси, що реалізують деяку службу, наприклад службу файлової системи або бази даних, називаються серверами (servers). Процеси, що запитують служби у серверів шляхом посилки запиту і подальшого очікування відповіді від сервера, називаються клієнтами (clients). Взаємодія клієнта і сервера, відоме також під назвою режим роботи запит-відповідь (request-reply behavior), ілюструє рис.1.3.
В
Рис 1.3 - Узагальнене взаємодія між клієнтом і сервером
Якщо базова мережа так само надійна, як локальні мережі, взаємодія між клієнтом і сервером може бути реалізовано за допомогою простого протоколу, що не потребує встановлення з'єднання. У цьому випадку клієнт, запитуючи службу, наділяє свій запит у форму повідомлення із зазначенням у ньому служби, якій він бажає скористатися, і необхідних для цього вихідних даних. Потім повідомлення посилається серверу. Останній, у свою чергу, постійно очікує вхідного повідомлення, отримавши його, обробляє, упаковує результат обробки у повідомлення-і відправляє його клієнту. p align="justify"> Використання не що вимагає з'єднання протоколу дає суттєвий виграш в ефективності. До тих пір поки повідомлення не почнуть пропадати або пошкоджуватися, можна цілком успішно застосовувати протокол типу запит-відповідь. На жаль, створити протокол, стійкий до випадкових збоїв зв'язку, - нетривіальне завдання. Все, що ми можемо зробити, - це дати клієнту можливість повторно надіслати запит, на який не було отримано відповідь. Проблема, однак, полягає в тому, що клієнт не може визначити, чи дійсно первинне повідомлення із запитом було втрачено або помилка сталася при передачі відповіді. Якщо загубився відповідь, повторна посилка запиту може призвести до повторного виконання операції. Якщо операція являла собою щось на кшталт "зняти 10 000 доларів з мого банківського рахунку", зрозуміло, що було б набагато краще, якби замість повторного виконання операції вас просто повідомили про помилку, що відбулася. З іншого боку, якщо операція була "повідомте мені, скільки грошей у мене залишилося", запит чудово можна було б послати повторно. Неважко помітити, що у цієї проблеми немає єдиного рішення. p align="justify"> В якості альтернативи в багатьох системах клієнт-сервер використовується надійний протокол з установкою з'єднання. Хоча це рішення у зв'язку з й...