Поняття про сервер та клієнтів. Концепція «клієнт-сервер» Перший рівень. Другий та третій рівень. Багаторівнева архітектура.

Самостійна робота

План лекції

Тема 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 запитів. Така організація дозволяє ще більш підвищити продуктивність і ефективність КЭИС за рахунок:

- - багатократності повторного використання загальних функцій обробки даних в безлічі клієнтських застосувань при істотній економії системних ресурсів;

- - паралельності в роботі сервера додатків і сервера бази даних, причому сервер додатків може бути менш потужним в порівнянні з сервером бази даних;

- - оптимізації доступу до бази даних через сервер застосувань

з клієнтських місць шляхом диспетчеризації виконання запитів в обчислювальній мережі;

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

серверах додатків, які можуть замінювати один одного в мережі у разі перевантаження або виходу з ладу одного з них;

- - перенесення функцій адміністрування системи по перевірці повноважень доступу користувачів з сервера бази даних на сервер застосувань.

Багаторівнева архітектура "Клієнт-сервер" створюється для територіально - розподілених підприємств. Для неї в загальному випадку характерні стосунки "багато до багато чим" між клієнтськими робочими станціями і серверами додатків, між серверами додатків і серверами баз даних. Така організація дозволяє раціональніше організувати інформаційні потоки між структурними підрозділами в процесі виконання загальних ділових процесів. Так, кожен сервер додатків, як правило, обслуговує споживи якій -небудь однієї функціональної підсистеми і зосереджується в головному для підсистеми структурному підрозділі, наприклад, сервер додатка по управлінню збутом - у відділі збуту, сервер додатка по управлінню постачанням - у відділі закупівель і так далі. Природно, що локальна ятір шкірного з підрозділів забезпечує швидшу реакцію на запити основного контингенту користувачів з відповідного підрозділу. Інтегрована база даних знаходиться на окремому сервері, на якому забезпечуються централізоване ведення і адміністрування загальних даних для усіх застосувань.

Виділення декількох серверів баз даних особливо актуально для підприємств з філіальною структурою, коли в центральному офісі використовується загальна база даних, що містить загальну нормативно- довідкову, планово-бюджетну інформацію і консолідовану звітність, а в територіально -видалених філіях підтримується оперативна інформація про ділові процеси. При обробці даних у філіях для контролю використовується планова і нормативно- довідкова інформація з центральної : бази даних, а в центральному офісі отримання консолідованої звітності зв'язане з обробкою оперативної інформації філій.

Для скорочення об' єму передачі даних після каналів зв'язку в розподіленій інформаційній системі пропонується реплікація даних, тобто, тиражування даних на взаємодіючих серверах баз даних з автоматичною підтримкою відповідності копій даних.