- •Лекція 7 «технологія клієнт-сервер»
- •1. Основні поняття
- •2. Реляційні бази даних
- •3. Реляційні зв'язки між таблицями баз даних
- •Відношення «один-до-багатьох»
- •Відношення «один-до-одного»
- •Відношення «багато-до-багатьох»
- •4. Стандарт і реалізація мови sql
- •5. Введення в технологію клієнт-сервер
- •6. Роль сервера. Класифікація серверів
- •Класифікація стандартних серверів
- •1. Універсальні сервери
- •2. Файл-сервери
- •3. Сервери доступу до даних
- •4. Сервери віддаленого доступу
- •5. Сервери розподілу ресурсів
- •7. Типи команд sql
- •9. Проблеми технології «клієнт-сервер»
6. Роль сервера. Класифікація серверів
Поняття сервер і клієнт і закріплені за ними ролі утворять програмну концепцию «клиент-сервер».
Для взаємодії із клієнтом (або клієнтами, якщо підтримується одночасна робота з декількома клієнтами) сервер виділяє необхідні ресурси міжпроцесної взаємодії (поділювана пам'ять, пайп, сокет, і т.п.) і очікує запитів на відкриття з’єднання (або запитів на надаваний сервіс). Залежно від типу такого ресурсу, сервер може обслуговувати процеси в межах однієї комп'ютерної системи або процеси на інших машинах через канали передачі даних (наприклад COMM-порт) або мережні з'єднання.
Формат запитів клієнта й відповідей сервера визначається протоколом. Специфікації відкритих протоколів описуються відкритими стандартами, наприклад протоколи Інтернету визначаються в документах RFC.
Залежно від виконуваних завдань одні сервери, при відсутності запитів на обслуговування, можуть простоювати чекаючи. Інші можуть виконувати якусь роботу (наприклад, роботу зі збору інформації), у таких серверів робота із клієнтами може бути другорядним завданням.
Класифікація стандартних серверів
Як правило, кожен сервер обслуговує один (або трохи схожих) протоколів і сервери можна класифікувати по типі послуг які вони надають.
1. Універсальні сервери
Універсальні сервери - особливий вид серверної програми, що не надає ніяких послуг самостійно. Замість цього універсальні сервери надають серверам послуг спрощений інтерфейс до ресурсів межпроцессного взаємодії й/або уніфікований доступ клієнтів до різних послуг. Існують кілька видів таких серверів:
inetd від англ. internet super-server daemon демон сервісів IP - стандартний засіб UNIX-систем, програма що дозволяє писати сервери TCP/IP (і мережних протоколів інших сімейств) працюючі із клієнтом через переспрямовані inetd потоки стандартного введення й виводу (stdin й stdout).
RPC від англ. Remote Procedure Call віддалений виклик процедур — система інтеграції серверів у вигляді процедур доступних для виклику вилученим користувачем через уніфікований інтерфейс. Інтерфейс винайдений Sun Microsystems для своєї операційної системи (SunOS, Solaris; Unix-система), у цей час використовується як у більшості Unix-систем, так й в Windows.
Прикладні клієнт-серверні технології Windows:
(D-)COM (англ. (Distributed) ComponentObjectModel—модель складених об'єктів) і ін. — Дозволяє одним програмам виконувати операції над об'єктами даних використовуючи процедури інших програм. Спочатку дана технологія призначена для «впровадження й зв'язування об'єктів» (OLE англ. Object Linking and Embedding), але в загальному дозволяє писати широкий спектр різних прикладних серверів. COM працює тільки в межах одного комп'ютера, DCOM доступна віддалено через RPC.
Active-X — Розширення COM й DCOM для створення мультимедіа-додатків для Інтернету.
Універсальні сервери часто використовуються для написання всіляких інформаційних серверів, серверів, яким не потрібна якась специфічна робота з мережею, серверів не мають ніяких завдань, крім обслуговування клієнтів. Наприклад у ролі серверів для inetd можуть виступати звичайні консольні програми й скрипты.
Більшість внутрішніх і мережних cпецифічних серверів Windows працюють через універсальні сервери (RPC, (D-)COM).
