ись параметрами своєї структури, він є процесом по відношенню до сервера. p align="justify"> При взаємодії клієнта і сервера ініціатором діалогу з сервером, як правило, є клієнт. Сервер сам не ініціює власну роботу. Це не виключає, однак, того, що сервер може сповіщати клієнтів про якихось зареєстрованих ним події. Ініціювання взаємодії, запит на обслуговування, сприйняття результатів від сервера, обробка помилок - це обов'язки клієнта. p align="justify"> У В«клієнт-серверноїВ» системі програма сервера стартує першою і пасивно очікує запитів від клієнта і при отриманні обробляє їх за допомогою різних механізмів. Таким чином, в моделі В«клієнт-серверВ» розрізняють запити та відповіді. <В
У даному випадку мережа зображена у вигляді овалу, при розмові про аспекти мережі будемо розкривати цей овал. Програмування в цьому середовищі буває досить різноманітним внаслідок різноманітних мережевих ОС (NOS - Network Operating System), які об'єднують ПК в ЛВС. Кожна така NOS має свій власний інтерфейс прикладного програмування (API - Application Programming Interface) на високому рівні і підтримує різні інтерфейси прикладного програмування нижчого рівня для здійснення зв'язку. p align="justify"> Мережеве додаток В«файл-серверноїВ» архітектури відрізняється від попередньої тим, де відбувається обробка даних. Дані у вигляді одного або декількох файлів розміщуються на файловому сервері. Сервер приймає запити від ПК в мережі і передає їм необхідні дані. Основна обробка даних відбувається в процесі клієнта. Сервер стежить лише за тим, щоб не виникало конфліктів при одночасному зверненні до файлів. p align="justify"> У В«клієнт-серверноїВ» архітектурі сервер не тільки забезпечує пересилку необхідної інформації, але і бере на себе частину або всю обробку цих даних.
Недоліки В«файл-серверноїВ» архітектури очевидні і випливають з того, що дані зберігаються в одному місці, а обробляються в іншому. Це означає, що дані в великих кількостях необхідно передавати по мережі, а це призводить до великого навантаження на мережу і, як наслідок, до зниження продуктивності при збільшенні кількості одночасно працюючих користувачів. p align="justify"> В«Клієнт-сервернаВ» архітектура дозволяє усунути ці недоліки шляхом розподілу обчислювального навантаження між клієнтом і сервером. Саме цей розподіл і є досить складним завданням при проектуванні програмного забезпечення мережевих обчислювальних систем. p align="justify"> Основне завдання клієнтського додатку - це забезпечення інтерфейсу з користувачем, тобто введення даних і надання результатів в зручному для користувача вигляді і керування сценаріями роботи додатку.
Основне завдання серверного додатка - це забезпечення надійності, узгодженості і захищеності даних, управління запитами клієнтів, швидка обробка запитів та надання відповідей.
В
Спочатку велику частину функцій програми виконував клієнт, і така архітектура отримала назву В«товстий клієнт - тонкий серверВ». Коли з'явилася можливість зберігати на сервери виконувані процедури, то це призвело до тенденції більшу частину програми зберігати на сервері. Таке рішення мало очевидні переваги, наприклад його легше підтримувати, тому що зміни потрібно вносити тільки в одному місці - на сервері. Але мова опису збережених процедур не був достатньо гнучким у порівнянні з мовами програмування клієнтських додатків. Тому виникли триланкову і багатоланкові архітектури В«клієнт-серверВ», що поєднують в собі переваги всіх перерахованих вище систем. p align="justify"> Структурування мережевого ПЗ
Для спрощення структури більшість мереж організовуються в набори рівнів або шарів, кожен їх яких зводиться над попереднім. У всіх мережах метою кожного такого рівня є надання сервісу для вищестоящих рівнів. При цьому від них ховаються деталі наданого сервісу. Фундаментальною ідеєю тут є надання деяким апаратним або програмним рівнем сервісів своїм користувачам без розкриття деталей свого внутрішнього стану і подробиць алгоритмів. br/>В
Між парою суміжних рівнів знаходиться інтерфейс, що визначає набір примітивних операцій, що надається нижнім рівнем верхнього. При проектуванні мережі важливим завданням є визначення та реалізація ясних інтерфейсів між рівнями не залежно від їх фізичного виконання. Наприклад, при заміні телефонних проводів супутниковим каналом зв'язку потрібно, щоб нова реалізація рівня виконувала ті ж функції і надавала той же набір послуг, що і попередня. p align="justify"> Рівень N одного ПК підтримує зв'язок з рівнем N іншого ПК. Правила та угоди, які використовуються в цьому спілкуванні, називаються протоколом. По суті - це домовленість спілкуються сторін про те, як відбувається спілкування. Порушення протоколу в спілкуванні може утруднити його або зробити взагалі неможливим. Хости різного виконання рівнів - цілком ...