Архітектура клієнт-сервер
Міністерство освіти і науки України
Івано-Франківський
національний технічний університет
нафти і газу
Кафедра
ПЗАС
Реферат на тему:
«Архітектура
клієнт-сервер»
Виконав:
ст. гр. ПЗм-06-1
Микитинський Т.В.
Перевірив:
Тимків
Д.Ф.
м. Івано-Франківськ
2010 р.
Зміст
1. Архітектура "клієнт-сервер"
1.1. Відкриті системи
1.2. Клієнти і сервери локальних мереж
1.3. Системна архітектура "клієнт-сервер"
1.4. Сервери баз даних
1.5. Принципи взаємодії між клієнтськими і серверними частинами
1.6. Переваги протоколів віддаленого виклику процедур
1.7. Типове розділення функцій між клієнтами і серверами
1.8. Архітектури процесора бази даних
2. Трирівнева архітектура "клієнт-сервер"
3. Програмні засоби розробки
3.1. Універсальні засоби
3.2. Персональні СУБД
4. Intranet та архітектура "клієнт-сервер".
4.1. Дворівнева архітектура "клієнт-сервер"
4.2. Трирівнева архітектура "клієнт-сервер"
4.2.1. Програми розширення
серверної частини
1. Архітектура "клієнт-сервер"
Стосовно до систем баз даних архітектура "клієнт-сервер" цікава і актуальна головним чином тому, що забезпечує просте і відносно дешеве рішення проблеми колективного доступу до баз даних в локальній мережі.
1.1. Відкриті системи
Реальне розповсюдження архітектури "клієнт-сервер" стало можливим завдяки розвитку і широкого впровадження в практику концепції відкритих систем. Тому ми почнемо з короткого вступу у відкриті системи.
Основним
змістом підходу відкритих
Ключовий фразою відкритих систем, спрямованої в бік користувачів, є незалежність від конкретного постачальника. Орієнтуючись на продукцію компаній, які дотримуються стандартів відкритих систем, споживач, який набуває будь-який продукт такої компанії, не потрапляє до неї в рабство. Він може продовжити нарощування потужності своєї системи шляхом придбання продуктів будь-якої іншої компанії, що дотримує стандарти. Причому це стосується як апаратних, так і програмних засобів.
Практичної опорою системних і прикладних програмних засобів відкритих систем є стандартизована операційна система. В даний час такою системою є UNIX. Фірмам-постачальникам різних варіантів ОС UNIX в результаті тривалої роботи вдалося прийти до угоди про основні стандартах цієї операційної системи. Зараз всі поширені версії UNIX в основному сумісні по частині інтерфейсів, що надаються прикладним (а в більшості випадків і системним) програмістам. Як здається, незважаючи на появу претендує на стандарт системи Windows NT, саме UNIX залишиться основою відкритих систем у найближчі роки.
Технології
та стандарти відкритих систем забезпечують
реальну і перевірену практикою можливість
виробництва системних і прикладних програмних
засобів з властивостями мобільності
(portability) і інтероперабельності (interoperability).
Властивість мобільності означа
Перевагою для користувачів є те, що вони можуть поступово замінювати компоненти системи на більш досконалі, не втрачаючи працездатності системи. Зокрема, в цьому криється рішення проблеми поступового нарощування обчислювальних, інформаційних та інших потужностей комп'ютерної системи.
1.2. Клієнти і сервери локальних мереж
В основі широкого розповсюдження локальних мереж комп'ютерів лежить відома ідея поділу ресурсів. Висока пропускна здатність локальних мереж забезпечує ефективний доступ з одного вузла локальної мережі до ресурсів, що знаходяться в інших вузлах.
Розвиток цієї ідеї призводить до функціонального виділенню компонентів мережі: розумно мати не тільки доступ до ресурсами віддаленого комп'ютера, але також одержувати від цього комп'ютера деякий сервіс, який специфічний для ресурсів даного роду і програмні засоби. Так ми приходимо до розрізнення робочих станцій і серверів локальної мережі.
Робоча
станція призначена для безпосередньої
роботи користувача або категорії користувачів
і володіє ресурсами, відповідними локальним
потребам даного користувача.
Сервер локальної мережі повинен володіти ресурсами, відповідними його функціональному призначенню і потребам мережі.Зауважимо, що у зв'язку з орієнтацією на підхід відкритих систем, правильніше говорити про логічні серверах (маючи на увазі набір ресурсів і програмних засобів, що забезпечують послуги над цими ресурсами), які розташовуються не обов'язково на різних комп'ютерах. Особливістю логічного сервера у відкритій системі є те , що якщо з міркувань ефективності сервер доцільно перемістити на окремий комп'ютер, то це можна виконати без потреби у будь-якій переробці як його самого, так і використовують його прикладних програм.
Прикладами сервером можуть служити:
• сервер телекомунікацій, що забезпечує послуги по зв'язку даної локальної мережі з зовнішнім світом;
• обчислювальний сервер, що дає можливість виробляти обчислення, які неможливо виконати на робочих станціях;
• дисковий сервер, що володіє розширеними ресурсами зовнішньої пам'яті і надає їх у використання робочим станціями і, можливо, інших серверів;
• файловий сервер, що підтримує загальне сховище файлів для всіх робочих станцій;
• сервер баз даних фактично звичайна СУБД, приймаюча запити по локальній мережі і повертає результати.
Сервер локальної мережі надає ресурси (послуги) робочим станціям і / або інших серверів.
Прийнято називати клієнтом локальної мережі, запитувач послуги у деякої сервера і сервером - компонент локальної мережі, який надає послуги деяким клієнтам.
1.3. Системна архітектура "клієнт-сервер"
Зрозуміло, що в загальному випадку, щоб прикладна програма, що виконується на робочій станції, могла запросити послугу у деякого сервера, як мінімум потрібно деякий інтерфейсний програмний шар, що підтримує такого роду взаємодія (було б щонайменше неприродно вимагати, щоб прикладна програма безпосередньо користувалася примітивами транспортного рівня локальної мережі). З цього, власне, і випливають основні принципи системної архітектури "клієнт-сервер".
Система розбивається на дві частини, які можуть виконуватися в різних вузлах мережі, - клієнтську та серверну частини.Прикладна програма або кінцевий користувач взаємодіють з клієнтською частиною системи, яка в найпростішому випадку забезпечує просто надсетевой інтерфейс. Клієнтська частина системи при потребі звертається по мережі до серверної частини. Зауважимо, що в розвинутих системах мережеве звернення до серверної частини може і не знадобитися, якщо система може передбачати потреби користувача, і в клієнтській частині містяться дані, здатні задовольнити його наступний запит.
Інтерфейс серверної частини визначений і фіксований. Тому можливе створення нових клієнтських частин існуючої системи (приклад інтероперабельності на системному рівні).
Основною проблемою систем, заснованих на архітектурі "клієнт-сервер", є те, що відповідно до концепції відкритих систем від них потрібна мобільність в якомога ширшому класі апаратно-програмних рішень відкритих систем. Навіть якщо обмежитися UNIX-орієнтованими локальними мережами, в різних мережах застосовується різна апаратура та протоколи зв'язку. Спроби створення систем, що підтримують всі можливі протоколи, призводить до їх перевантаження мережевими деталями на шкоду функціональності.
Ще більш складний аспект цієї проблеми пов'язаний з можливістю використання різних представлень даних в різних вузлах неоднорідною локальної мережі. У різних комп'ютерах може існувати різна адресація, подання чисел, кодування символів і т.д.Це особливо істотно для серверів високого рівня: телекомунікаційних, обчислювальних, баз даних.
Спільним рішенням проблеми мобільності систем, заснованих на архітектурі "клієнт-сервер" є опора на програмні пакети, що реалізують протоколи віддаленого виклику процедур (RPC - Remote Procedure Call). При використанні таких коштів звернення до сервісу в віддаленому вузлі виглядає як звичайний виклик процедури. Засоби RPC, в яких, природно, міститься вся інформація про специфіку апаратури локальної мережі і мережевих протоколів, переводить виклик в послідовність мережевих взаємодій. Тим самим, специфіка мережного середовища і протоколів прихована від прикладного програміста.
При виклику віддаленої процедури програми RPC виробляють перетворення форматів даних клієнта в проміжні машинно-незалежні формати і потім перетворення у формати даних сервера. При передачі відповідних параметрів виробляються аналогічні перетворення.
Якщо система реалізована на основі стандартного пакета RPC, вона може бути легко перенесена в будь-яку відкриту середу.
Технологія "клієнт-сервер" стосовно до СУБД зводиться до поділу системи на дві частини - додаток-клієнт (front-end) і сервер бази даних (back-end). Ця архітектура поєднує кращі риси обробки даних на мейнфреймах і технології "файл-сервер". Від мейнфреймів технологія "клієнт-сервер" запозичила такі риси, як централізоване адміністрування, безпека, надійність. Від технології "файл-сервер" успадковані низька вартість та можливість розподіленої обробки даних, використовуючи ресурси комп'ютерів-клієнтів. Зараз графічний інтерфейс користувача став стандартом для систем "клієнт-сервер". Крім того, архітектура "клієнт-сервер" значно спрощує і прискорює розробку додатків за рахунок того, що правила перевірки цілісності даних знаходяться на сервері . Неправильно працює клієнтське додаток не може призвести до втрати чи спотворення даних. Всі ці можливості, раніше властиві лише складним і дорогим системам, зараз доступні навіть невеликим організаціям. Вартість обладнання, програмного забезпечення і обслуговування для персональних комп'ютерів в десятки разів нижче, ніж для мейнфреймів.
Особливості
обробки даних у різних архітектурах
показані на рис.1.
Локальний комп’ютер
Локальна програма
СУБД
Дані
Архітектура “файл-сервер”
Клієнт
Файл-сервер
Мережева програма
Дані
пересылка Сетевое приложение
данных
Архитектура
“клиент-сервер”
Сервер БД
Клієнтська
СУБД програма
Дані
Клієнтська програма
пересилка запитів
і результатів
Рис.1. Обробка
даних в різних архітектурах
1.4. Сервери баз даних
Термін "сервер баз даних" зазвичай використовують для позначення всієї СУБД, заснованої на архітектурі "клієнт-сервер", включаючи і серверну, і клієнтську частини. Такі системи призначені для зберігання і забезпечення доступу до баз даних.
Хоча зазвичай одна база даних повністю зберігається в одному вузлі мережі та підтримується одним сервером, сервери баз даних являють собою просте й дешеве наближення до розподілених баз даних, оскільки загальна база даних доступна для всіх користувачів локальної мережі.
1.5. Принципи взаємодії між клієнтськими і серверними частинами
Доступ до бази даних від прикладної програми або користувача проводиться шляхом звернення до клієнтської частини системи. В якості основного інтерфейсу між клієнтською і серверною частинами виступає мова баз даних SQL.
Це мова по суті справи представляє собою поточний стандарт інтерфейсу СУБД у відкритих системах. Збірна назва SQL-сервер відноситься до всіх серверів баз даних, заснованих на SQL.
Сервери баз даних, інтерфейс яких базується виключно на мові SQL, мають своїми перевагами і своїми недоліками. Очевидна перевага - стандартність інтерфейсу. У межі, хоча поки це не зовсім так, клієнтські частини будь-якої SQL-орієнтованої СУБД могли б працювати з будь-яким SQL-сервером незалежно від того, хто його зробив.
Недолік теж досить очевидний. При такому високому рівні інтерфейсу між клієнтською і серверною частинами системи на стороні клієнта працює надто мало програм СУБД. Це нормально, якщо на стороні клієнта використовується малопотужна робоча станція. Але якщо клієнтський комп'ютер володіє достатньою потужністю, то часто виникає бажання покласти на нього більше функцій управління базами даних, розвантаживши сервер, який є вузьким місцем усієї системи.
Одним з перспективних напрямків СУБД є гнучке конфігурування системи, при якому розподіл функцій між клієнтською і користувальницького частинами СУБД визначається при встановленні системи.
1.6. Переваги протоколів віддаленого виклику процедур
Згадувані вище протоколи віддаленого виклику процедур особливо важливі в системах управління базами даних, заснованих на архітектурі "клієнт-сервер".
По-перше, використання механізму віддалених процедур дозволяє дійсно перерозподіляти функції між клієнтської і серверної частинами системи, оскільки в тексті програми віддалений виклик процедури нічим не відрізняється від віддаленого виклику, і отже, теоретично будь-який компонент системи може розташовуватися і на стороні сервера, і на стороні клієнта.
По-друге, механізм віддаленого виклику приховує відмінності між взаємодіючими комп'ютерами. Фізично неоднорідна локальна мережа комп'ютерів приводиться до логічно однорідної мережі взаємодіючих програмних компонентів. У результаті користувачі не зобов'язані серйозно піклуватися про разову закупівлю сумісних серверів і робочих станцій.
1.7. Типове розділення функцій між клієнтами і серверами
У типовому на сьогоднішній день випадку на стороні клієнта СУБД працює тільки таке програмне забезпечення, яке не має безпосереднього доступу до баз даних, а звертається для цього до сервера з використанням мови SQL.
У деяких випадках хотілося б включити у склад клієнтської частини системи деякі функції для роботи з "локальним кешем" бази даних, тобто з тією її частиною, яка інтенсивно використовується клієнтської прикладної програмою. У сучасній технології це можна зробити тільки шляхом формального створення на стороні клієнта локальної копії сервера бази даних та розгляду всієї системи як набору взаємодіючих серверів.
З іншого боку, іноді хотілося б перенести більшу частину прикладної системи на сторону сервера, якщо різниця в потужності клієнтських робочих станцій і сервера надто велика. Загалом-то при використанні RPC це зробити неважко. Але потрібно, щоб базове програмне забезпечення серверу дійсно дозволяло це. Зокрема, при використанні ОС UNIX проблеми практично не виникають.
1.8. Архітектури процесора бази даних.
Основна частина будь-якої системи "клієнт-сервер" - це сервер БД. З часу виникнення архітектури "клієнт-сервер" з'явилося багато варіантів архітектури процесора БД, оскільки він багато в чому визначає успіх всієї системи. Основна вимога до сервера БД - забезпечення мінімального часу виконання запитів при максимально можливому числі користувачів. Існують дві основні архітектури для побудови процесора БД: архітектура з декількома процесами і багатопотокова архітектура.
1. Архітектура з декількома процесами
Характеризується тим, що кілька екземплярів виконуваного файлу працюють одночасно. Ці системи відрізняються гарною масштабованістю, але вимагають значних витрат пам'яті, так як пам'ять кожному примірнику програми виділяється окремо. Ця архітектура має на увазі наявність ефективного механізму взаємодії процесів і покладається на операційну систему при поділі процесорного часу між окремими екземплярами додатки. Найвідоміший приклад сервера, побудованого за цією архітектурі, - Oracle Server. Коли користувач підключається до БД Oracle, він насправді запускає окремий екземпляр виконуваного файлу процесора бази даних.
2. Багаторівнева архітектура
Ця
архітектура використовує тільки один
виконуваний файл, з декількома потоками
виконання. Головна перевага - більш скромні
вимоги до обладнання, ніж для архітектури
з кількома процесами. Тут сервер бере
на себе поділ часу між окремими потоками,
іноді даючи перевагу деяким завданням
над іншими. Крім того, відпадає необхідність
у складному механізмі взаємодії процесів.
З цієї архітектурі побудовані MS SQL Server
та Sybase SQL Server.
2. Трирівнева архітектура "клієнт-сервер"
На верхньому рівні абстрагування взаємодії
клієнта і сервера достатньо чітко можна
виділити наступні компоненти:
• презентаційна логіка (Presentation Layer - PL),
перед-призначена для роботи з даними
користувача;
• бізнес-логіка (Business Layer - BL), призначена для перевірки правильності даних, підтримки посилальної цілісність-ності ..;
•
логіка доступу до ресурсів (Access Layer - AL),
призначе-значення для зберігання даних;
Таким чином можна, можна прийти до декількох
моделях клієнт-серверної взаємодії:
1. "Товстий" клієнт. (fat client)
Сервер БД Користувацький інтерфейс
Дані Бізнес-логіка
Користувацький інтерфейс
Бізнес-логіка
Найбільш
часто зустрічається варіант реалізації
архі-тектури клієнт-сервер у вже впроваджених
і активно викорис-вуються системах. Така
модель має на увазі об'єднання в клієнтському
додатку як PL, так і BL, таким чином забезпечується
повна децентралізація управління бізнес-логікою. Однак
у разі потреби виконання будь-яких змін
у клієнтському додатку доведеться змінювати
вихідний код.Серверна частина, при описаному
підході, являє собою сервер баз даних,
що реалізує AL. До описаної моделі часто
застосовують абревіатуру RDA - Remote Data Access.
2. "Тонкий" клієнт. (thin client)
Бізнес-
Логіка Користувацький інтерфейс
Дані
Користувацький інтерфейс
Модель,
що починає активно використовуватися
в корпора-тивної середовищі у зв'язку
з поширенням Internet-технологій і, в першу
чергу, Web-браузерів. У цьому випадку клієнтське
додаток забезпечує реалізацію PL, тому
клієнт може задовольнятися досить скромною
апаратною платформою, а сервер об'єднує
BL і AL. Мак-мально завантаження сервера
передбачає виконання бізнес-логіки тільки
за допомогою збережених процедур сервера
(Збережені процедури - відкомпілювалися
SQL-інструкції, що зберігаються на сервері). Це
дозволяє максимально централізованому
контроль над даними і легко змінювати
правила роботи відразу для цілого підприємства. З
іншого боку, незначне коректування правил,
що стосується тільки частини користувачів,
зажадає тривалої процедури зі-годження. У
цьому випадку неможливо реалізувати
якісь винятки із загальних правил для
деяких користувачів або додатків. У принципі,
це добре і є запорукою безпеки і цілісності
даних.
3. Сервер бизнес-логики. (трехуровневая архитектура)
Проміжний сервер
Користувацький
Бізнес-логіка інтерфейс
Другого рівня
Сервер БД
Користувацький
Бізнес-логіка інтерфейс
сервера
Дані
Модель
з фізично виділеним в окремий додаток
блоком BL, таким чином отримуємо трирівневу
архітек-туру "клієнт-сервер". На сервері
БД може функціонувати "універсальна"
частина бізнес-логіки (правила на рівні
підприємства чи групи пов'язаних додатків). Така
схема дозволяє підтримувати тонких клієнтів
на користувацьких комп'ютерах і в той
же час розвантажити сервер БД від надмірної
завантаження при збереженні гнучкої
системи роботи з бізнес-правилами. В якості
проміжного сервера може використовуватися
другий SQL-сервер, але частіше раціональніше
задіяти персональну СУБД, яка менш требо-вательная
до апаратних ресурсів і може забезпечити
зручні засоби побудови та підтримки бізнес-логіки.
3. Программные средства разработки
3.1. Универсальные средства
Для разработки клиентских приложений существует громадное число универсальных пакетов программ, которые позволяют выполнить соединение с сервером и разработать для пользователя удобный графический интерфейс, позволяющий эффективно работать с данными. Некоторые из этих средств для разработки приложений в архитектуре “клиент-сервер” перечислены в таблице.
|

- Архітектура львова: передумови формування стилю класицизм
- Архітектура на Поділлі XV-XVIII ст
- Архітектура народів Середньої Азії (VI – XVIII століття)
- Архітектура, образотворче мистецтво та усна народна творчість в XIV - першій половині XVII століття
- Архітектура пам'яті Windows CE 6
- Архітектура першої половини 18 ст.
- Архітектура процесора AMD Athlon 64 3000+
- Архітектура і образотворче мистецтво XIV- першої половини XVII
- Архітектура і образотворче мистецтво України XVII - XVIII ст
- Архітектура Києва
- Архітектура Київської Русі
- Архітектура Київської Русі
- Архітектура Київської Русі
- Архітектура Київської Русі