СИСТЕМИ “КЛІЄНТ / СЕРВЕР”

Як зазначалося в розділі 211, системи клієнт / сервер можуть розглядатися як окремий випадок розподілених систем Точніше, система клієнт / сервер – Це розподілена система, в якій одні вузли – клієнти, а інші – сервери всі дані розміщені на вузлах, які є серверами всі програми виконуються на узлахкліентах і шви видно користувачеві (Повна локальна незалежність не надається) Звернемося до рис 216 (або до рис 26 з глави 2)

Наприкінці 1980-х років і в період від початку до середини 1990-х років підвищений комерційний інтерес виявлявся до систем клієнт / сервер і порівняно невеликий інтерес – до справжніх розподіленим системам загального призначення Останнім часом ці тенденції трохи змінилися, як показано в наступному розділі, але системи клієнт / сервер все ще відіграють важливу роль, тому й було потрібно включити в книгу даний розділ

Насамперед, нагадаємо, що термін клієнт / сервер визначає архітектуру, або логічне поділ обовязків Клієнт – Це додаток, яке називають також інтерфейсної частиною (Front end), а сервер прикладною частиною (Back end) або СУБД Однак саме тому, що всю систему можна так чітко розділити на дві частини, зявилася можливість експлуатації її частин на різних компютерах І ця можливість з багатьох причин виявилася настільки привабливою (див розділ 2), що під поняттям система клієнт / сервер на практиці мається на увазі виключно той випадок, коли

клієнт і сервер дійсно розміщуються на різних компьютерах5 Хоча це і кілька вільне використання терміну, але воно широко поширене і тому ми будемо його дотримуватися

Рис 216 Система клієнт / сервер

Нагадаємо, що можливі кілька варіантів основної схеми, які описані нижче

■ Кілька клієнтів можуть спільно використовувати один і той же сервер (факти тично це звичайна практика)

■ Окремий клієнт може мати доступ до декількох серверів Цей варіант, у свою чергу, підрозділяється на два представлених нижче випадку

а) Клієнт обмежений доступом за один раз лише до одного сервера, тобто кожен окремий запит до бази даних повинен бути направлений тільки на один сервер Неможливо в межах одного запиту отримати дані з двох або декількох різних серверів Більш того, користувач повинен знати, на якому саме сервері зберігаються ті чи інші частини даних

б) Клієнт може мати одночасний доступ до декількох серверів, тобто окремих ний запит може обєднувати дані з декількох серверів А це означає, що кілька серверів представляються клієнту так, як ніби це насправді один сервер Користувач не повинен знати, які частини даних зберігаються на кожному сервері

5 Також з очевидних міркувань використовується термін дворівнева система, який, по суті, має такий же зміст

Але у випадку б) фактично описана система розподіленої бази даних (шви виявляються прихованими) Це не зовсім те, що зазвичай мають на увазі під терміном клієнт / сервер, тому ми даний випадок розглядати не будемо

Стандарти для систем клієнт / сервер

Існує кілька стандартів, що мають відношення до систем клієнт / сервер.

Ці стандарти описані нижче

■ Насамперед, певні функції для підтримки систем клієнт / сервер включені в стандарт мови SQL Обговорення цих можливостей відкладемо до розділу 217 Крім того, є стандарт ISO для віддаленого доступу до даних (Remote Data Access – RDA) (див [2123] і [2124]) Завдання специфікації RDA полягає у визначенні форматів і протоколів взаємодії в середовищі клієнт / сервер. Мається на увазі, що клієнт формулює запит до бази даних в стандартній формі мови SQL (по суті, застосовується підмножина стандарту SQL), а сервер підтримує стандартний каталог (також в основному відповідає вимогам стандарту SQL) Крім того, визначено конкретні формати представлення для повідомлень, переданих між клієнтом і сервером (Запити SQL, дані та результати, діагностична інформація)

Третій, і останній, стандарт, який ми тут згадуємо, – стандартархітектури розподілених реляційнихбазданих(Distributed Relational Database Architecture – DRDA), запропонований компанією IBM [2122] (він є фактично визнаним, а не офіційно затвердженим стандартом) Стандарти DRDA і RDA мають аналогічне призначення, але стандарт DRDA відрізняється від стандарту RDA в багатьох важливих відносинах Зокрема, багато характеристики стандарту DRDA обумовлені його походженням (він розроблений компанією IBM) Наприклад, в стандарті DRDA клієнт не обовязково повинен використовувати стандартну версію мови SQL, тому дозволено застосування будь-яких довільних діалектів мови SQL Наслідком цього, можливо, є підвищення продуктивності, оскільки клієнту дозволяється використовувати деякі специфічні можливості сервера Але, з іншого боку, цей підхід знижує можливості переносимості, оскільки подібні специфічні функції не є прихованими від клієнта, тобто клієнту відомо, з яким типом сервера він працює Аналогічно цьому, в стандарті DRDA не мається наявність будь-якої конкретної структури каталогу сервера Формати і протоколи DRDA істотно відрізняються від форматів стандартуRDA   По суті, стандарт DRDA базується на власній архітектурі і власних стандартах IBM, в той час як стандарт RDA грунтується на міжнародних стандартах, незалежних від конкретних постачальників

Більш докладно стандарти RDA і DRDA в справжній книзі не розглядаються

(Див [2120] і [2128], де наведено їх порівняльний аналіз)

Програмування додатків клієнт / сервер

Необхідно відзначити, що система клієнт / сервер – Це окремий випадок розподілених систем в цілому Як вказувалося у введенні до цього розділу, вона може розглядатися як розподілена система, в якій всі запити створюються на одному

вузлі, а вся обробка виконується на іншому, якщо вважати для простоти, що є лише один вузол клієнта і один вузол сервера

Примітка Згідно з цим простому визначенню, безумовно, вузол клієнта зовсім не є вузлом системи баз даних в повному розумінні цього поняття, і така система суперечить визначенню систем розподілених баз даних загального призначення, яке було дано в розділі 212 Зрозуміло, вузол клієнта може мати власну локальну базу даних, однак такі бази даних не мають безпосереднього відношення до системи клієнт / сервер як такої

Але, як би там не було, підхід клієнт / сервер має певні особливості з точки зору програмування (як і самі розподілені системи) На одну з таких особливостей ми вже вказували при обговоренні завдання 7 (розподілена обробка

запитів) в розділі 213, а саме – на те, що реляційні системи за визначенням і за походженням є системами, в яких дані обробляються на рівні множин У системах клієнт / сервер (Як і в самих розподілених системах) надзвичайно важливо те, що програміст, що пише додаток, НЕ Використовує сервер як деякий засіб доступу, створюючи при цьому код обробки даних на рівні записів Замість цього функціонування додатки в максимально можливій мірі повинна бути засноване на використанні запитів на рівні множин В іншому випадку неминучі суттєві втрати продуктивності системи, повязані з передачею занадто великої кількості повідомлень

Примітка У термінах мови SQL попереднє висловлювання означає, що потрібно в максимально можливій мірі уникати використання курсорів, тобто циклів з оператором FETCH і форм CURRENT для операцій UPDATE і DELETE (див розділ 4)

Кількість повідомлень, переданих між клієнтом і сервером, може бути скорочено ще більше, якщо система надає в розпорядження користувача деякий механізм підтримки збережених процедур Збережені процедури представляють, по суті, попередньо відкомпілювалися програми, які зберігаються на вузлі сервера (І відомі серверу) Клієнт звертається до збереженій процедурі за допомогою механізму виклику віддалених процедур (Remote Procedure Call – RPC) Тому, зокрема, втрати в продуктивності, повязані з обробкою даних на рівні записів у системі клієнт / сервер, можуть бути частково компенсовані за рахунок створення відповідних збережених процедур, що дозволяють виконати обробку даних безпосередньо на вузлі сервера

Примітка Хоча це і не має прямого відношення до теми обробки даних в системах клієнт / сервер, необхідно відзначити, що більш висока продуктивність – не єдина перевага, яку надають збережені процедури Інші переваги збережених процедур наведені нижче

Збережені процедури дозволяють приховати від користувача безліч специфиче ських особливостей СУБД і бази даних і завдяки цьому досягти більш високого ступеня незалежності від даних в порівнянні з тим випадком, коли збережені процедури не використовуються

■ Одна збережена процедура може спільно використовуватися багатьма клієнтами

■ Оптимізація може бути здійснена при створенні збереженої процедури, а не під час виконання (Безумовно, це перевага виявляється лише в тих системах, в яких оптимізація зазвичай здійснюється під час виконання)

Збережені процедури дозволяють забезпечити більш високий ступінь безпеки даних Наприклад, деякому користувачеві може бути дозволено викликати певну процедуру, але не дозволено безпосередньо обробляти дані, до яких він може мати доступ через цю збережену процедуру

Недоліком збережених процедур є те, що постачальники програмного забезпечення надають у цій галузі занадто відрізняються між собою кошти, а розширення мови SQL для підтримки збережених процедур зявилося, на жаль, лише в 1996 році Як вказувалося в розділі 4, цей засіб називається SQL / PSM (Persistent Stored Module – постійний бережене модуль)

Джерело: Дейт К Дж, Введення в системи баз даних, 8-е видання: Пер з англ – М: Видавничий дім «Вільямс», 2005 – 1328 с: Ил – Парал тит англ

Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*