Поняття про сервер та клієнтів. Концепція «клієнт-сервер» Перший рівень. Другий та третій рівень. Багаторівнева архітектура.
Самостійна робота
План лекції
Тема 2. Рівні архітектури клієнт-серверу. Характеристика клієнт-серверної архітектури. введення в архітектуру клієнт-серверних систем. взаємодія компонентів в розподіленому застосуванні. розподілені системи. паралельні системи
Лекція № 2
1. Поняття про сервер та клієнтів. Концепція «клієнт-сервер» Перший рівень. Другий та третій рівень. Багаторівнева архітектура.
2. Відкриті системи. Клієнти і сервери локальних мереж. Принципи взаємодії між клієнтськими і серверними частинами.
3. Переваги протоколів видаленого виклику процедур на архітектурі "клієнт-сервер".
4. Типовий розподіл функцій між клієнтами і серверами.
5. Розвиток клієнт-серверних систем.Стандарти архітектури клієнт - сервер в управлінні інформації.
6. Архітектура інформаційної системи. Звернення до бази даних. Сервери баз даних.
7. Технології побудови розподілених об’єктних систем. Розподілені об’єктні технології в інформаційних системах.
8. Паралельні обчислювальні системи та паралельні обчислення. Проектування клієнт-серверних економічних інформаційних систем.
Зміст лекції
Проектування клієнт-серверних економічних інформаційних систем (КЭИС)
Архітектура сучасних КЭИС базується на принципах клієнт-серверної взаємодії програмних компонентів ІС.
У обчислювальних мережах під сервером розуміється спеціалізована ЕОМ, що управляє використанням що розділяються між терміналами мережі дорогих ресурсів системи, наприклад, баз даних, засобів зв'язку, принтерів і так далі За ознакою характеру ресурсів, що розділяються, розрізняють файлові сервери і сервери додатків.
У різних компонентах архітектури мережі може здійснюватися пошук або оновлення в базі даних, і тоді сервер називається сервером бази даних; якщо виконується деяка процедура обробки даних, тоді сервер називається сервером додатка.
Клієнтом є додаток, що посилає запит на обслуговування сервером. Завданням клієнта є ініціація зв'язку з сервером, визначення виду запиту на обслуговування, отримання від сервера результату обслуговування, підтвердження закінчення обслуговування.
Мал. 6.1. Структура локальної обчислювальної мережі
Клієнт-серверна архітектура реалізує розрахований на багато користувачів режим роботи і є розподіленою, коли клієнти і сервери розташовуються на різних вузлах локальної або глобальної обчислювальної мережі. Приклад локальної мережі з одним сервером представлений на мал. 6.1.
Перевага локальної мережі перед централізованою обчислювальною системою полягає у відкритому підключенні і використанні обчислювальних ресурсів за допомогою єдиного передавального середовища без перегляду принципів взаємодії раніше встановленого обчислювального устаткування, тобто, простій масштабованості КЭИС. У загальному випадку схема клієнт-серверної архітектури включає три рівні представлення : рівень представлення даних користувачем; рівень обробки даних додатком і рівень взаємодії з базою даних.
За цією схемою користувач (клієнт) в одному випадку вводити дані, які після контролю і перетворення деяким застосуванням потрапляють в базу даних, а в іншому випадку запрошує обробку даних додатком, який звертається за необхідними даними до бази даних. Отримавши необхідні дані, сервер їх обробляє, а результати або поміщає в базу даних, або видає користувачеві (клієнтові) в зручному для нього виді, наприклад у вигляді текстового документу, електронної таблиці, графіка, або робить ті і інше разом.
Клієнт -серверна архітектура в обчислювальній мережі може бути реалізована по- різному. Вибір конкретної схеми визначається різними варіантами територіального розподілу видалених підрозділів підприємства, вимогами експлуатаційної надійності, швидкодією, простотою обслуговування.
Розглянемо різні схеми клієнт - серверної архітектури (мал. 6.2).
Файл-серверная архітектура представляє найбільш простий випадок розподіленої обробки даних, згідно якої на сервері розташовуються тільки файли даних, а на клієнтській частині знаходяться додатки користувачів разом з СУБД. Файл-сервер є досить потужним по продуктивності і оперативній пам'яті ПЕВМ, що є центральним вузлом локальної мережі. Файл-сервер в середовищі мережевої операційної системи організовує доступ до файлів, повністю еквівалентним файлам операційної системи і розташованим в зовнішній пам'яті файл-сервера.
Мал. 6.2. Варіанти клієнт-серверної архітектури КЭИС
При цьому підході програми СУБД розташовуються в оперативній пам'яті робочих станцій локальної мережі, а файли бази даних - на магнітних дисках файл-сервера. Спеціальний інтерфейсний модуль розпізнає, де знаходяться файли, до яких здійснюється звернення. У зв'язку з цим ця СУБД може працювати як з локальними базами даних, так і з центральною базою даних. Синхронізація спільного використання бази даних файл-сервера покладається на систему управління базами даних, яка повинна забезпечувати блокування записів на час їх коригування, щоб зробити їх недоступними з інших робочих станцій.
Використання файл-серверов припускає, що уся обробка даних виконується на робочій станції, а файл-сервер лише виконує функції накопичувача даних і засобів доступу.
Дворівнева клієнт-серверна архітектура заснована на використанні тільки сервера бази даних (DB -сервера), коли клієнтська частина містить рівень представлення даних, а на сервері знаходиться база даних разом з СУБД і прикладними програмами
DB -сервер відрізняється від файл-сервера тим, що в його оперативній пам'яті, окрім мережевої операційної системи, функціонує централізована СУБД, яка забезпечує спільне використання робочими станціями бази даних, розміщеної в зовнішній пам'яті цього DB -сервера.
DB -сервер дає можливість відмовитися від пересилки по мережі файлів даних цілком і передавати тільки ту вибірку з бази даних, яка задовольняє запиту користувача. При цьому можливий розподіл призначеного для користувача застосування на дві частини: одна частина виконується на сервері і пов'язана з вибіркою і агрегацією даних з бази даних, а друга частина за уявленням даних для аналізу і ухвалення рішення виконується на клієнтській машині. Таким чином, збільшується загальна продуктивність інформаційної системи в результаті об'єднання обчислювальних ресурсів сервера і клієнтської робочої станції.
Системна архітектура "клієнт-сервер"
Зрозуміло, що в загальному випадку, щоб прикладна програма, що виконується на робочій станції, могла запитати послугу у деякого сервера, як мінімум вимагається деякий інтерфейсний програмний шар, підтримувальний такого роду взаємодію (було б щонайменше неприродно вимагати, щоб прикладна програма безпосередньо користувалася примітивами транспортного рівня локальної мережі). З цього, власне, і витікають основні принципи системної архітектури "клієнт-сервер".
Система розбивається на дві частини, які можуть виконуватися в різних вузлах мережі, - клієнтську і серверну частині. Прикладна програма або кінцевий користувач взаємодіють з клієнтською частиною системи, яка в простому випадку забезпечує просто надсетевой інтерфейс. Клієнтська частина системи при потребі звертається по мережі до серверної частини. Помітимо, що в розвинених системах мережеве звернення до серверної частини може і не знадобитися, якщо система може передбачати потреби користувача, і в клієнтській частині знаходяться дані, здатні задовольнити його наступний запит.
Інтерфейс серверної частини визначений і фіксований. Тому можливе створення нових клієнтських частин існуючої системи (приклад интероперабельности на системному рівні).
Основною проблемою систем, заснованих на архітектурі "клієнт-сервер", є те, що відповідно до концепції відкритих систем від них вимагається мобільність в як можна ширшому класі апаратно-програмних рішень відкритих систем. Навіть якщо обмежитися UNIX -ориентированными локальними мережами, в різних мережах застосовується різна апаратура і протоколи зв'язку. Спроби створення систем, підтримувальних усі можливі протоколи, призводить до їх перевантаження мережевими деталями в збиток функціональності.
Ще складніший аспект цієї проблеми пов'язаний з можливістю використання різних представлень даних в різних вузлах неоднорідної локальної мережі. У різних комп'ютерах може існувати різна адресація, представлення чисел, кодування символів і так далі. Це особливо істотно для серверів високого рівня : телекомунікаційних, обчислювальних, баз даних.
Загальним рішенням проблеми мобільності систем, заснованих на архітектурі "клієнт-сервер" являється опора на програмні пакети, що реалізовують протоколи видаленого виклику процедур (RPC - Remote Procedure Call). При використанні таких засобів звернення до сервісу у видаленому вузлі виглядає як звичайний виклик процедури. Засоби RPC, в яких, природно, знаходиться уся інформація про специфіку апаратури локальної мережі і мережевих протоколів, переводить виклик в послідовність мережевих взаємодій. Тим самим, специфіка мережевого середовища і протоколів прихована від прикладного програміста.
При виклику видаленої процедури програми RPC виробляють перетворення форматів даних клієнта в проміжні машинно-незалежні формати і потім перетворення у формати даних сервера. При передачі параметрів у відповідь виробляються аналогічні перетворення.
Якщо система реалізована на основі стандартного пакету RPC, вона може бути легко перенесена в будь-яке відкрите середовище.
Трирівнева клієнт -серверна архітектура дозволяє поміщати прикладні програми на окремі сервери додатків, з якими через API -интерфейс (Application Program Interface) встановлюється зв'язок клієнтських робочих станцій. Робота клієнтської частини додатка зводиться до виклику необхідних функцій сервера додатки, які називаються "сервісами". Прикладні програми у свою чергу звертаються до сервера бази даних за допомогою SQL запитів. Така організація дозволяє ще більш підвищити продуктивність і ефективність КЭИС за рахунок:
- - багатократності повторного використання загальних функцій обробки даних в безлічі клієнтських застосувань при істотній економії системних ресурсів;
- - паралельності в роботі сервера додатків і сервера бази даних, причому сервер додатків може бути менш потужним в порівнянні з сервером бази даних;
- - оптимізації доступу до бази даних через сервер застосувань
з клієнтських місць шляхом диспетчеризації виконання запитів в обчислювальній мережі;
- - підвищення швидкості і надійності обробки даних в результаті дублювання програмного забезпечення на декількох
серверах додатків, які можуть замінювати один одного в мережі у разі перевантаження або виходу з ладу одного з них;
- - перенесення функцій адміністрування системи по перевірці повноважень доступу користувачів з сервера бази даних на сервер застосувань.
Багаторівнева архітектура "Клієнт-сервер" створюється для територіально - розподілених підприємств. Для неї в загальному випадку характерні стосунки "багато до багато чим" між клієнтськими робочими станціями і серверами додатків, між серверами додатків і серверами баз даних. Така організація дозволяє раціональніше організувати інформаційні потоки між структурними підрозділами в процесі виконання загальних ділових процесів. Так, кожен сервер додатків, як правило, обслуговує споживи якій -небудь однієї функціональної підсистеми і зосереджується в головному для підсистеми структурному підрозділі, наприклад, сервер додатка по управлінню збутом - у відділі збуту, сервер додатка по управлінню постачанням - у відділі закупівель і так далі. Природно, що локальна ятір шкірного з підрозділів забезпечує швидшу реакцію на запити основного контингенту користувачів з відповідного підрозділу. Інтегрована база даних знаходиться на окремому сервері, на якому забезпечуються централізоване ведення і адміністрування загальних даних для усіх застосувань.
Виділення декількох серверів баз даних особливо актуально для підприємств з філіальною структурою, коли в центральному офісі використовується загальна база даних, що містить загальну нормативно- довідкову, планово-бюджетну інформацію і консолідовану звітність, а в територіально -видалених філіях підтримується оперативна інформація про ділові процеси. При обробці даних у філіях для контролю використовується планова і нормативно- довідкова інформація з центральної : бази даних, а в центральному офісі отримання консолідованої звітності зв'язане з обробкою оперативної інформації філій.
Для скорочення об' єму передачі даних після каналів зв'язку в розподіленій інформаційній системі пропонується реплікація даних, тобто, тиражування даних на взаємодіючих серверах баз даних з автоматичною підтримкою відповідності копій даних.