Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Литвинов / Системи розподіленої обробки інформації.release

.pdf
Скачиваний:
305
Добавлен:
23.03.2015
Размер:
6.04 Mб
Скачать

Литвинов О.А., Хандецький В.С.

РОЗПОДІЛЕНА ОБРОБКА ІНФОРМАЦІЇ

Process 1

Process 2

О.А. Литвинов, В.С. Хандецький

РОЗПОДІЛЕНА ОБРОБКА ІНФОРМАЦІЇ

Монографія

ТОВ «Баланс-Клуб»

Дніпропетровськ

2013

УДК 004.9 ББК 32.973.202 Л 64

Друкується за рішенням вченої ради Дніпропетровського національного університету ім. Олеся Гончара

(протокол №6 від 27.12.2012р )

Рецензенти:

д-р фіз.-мат. наук, проф. В.І. Гаврилюк (завідувач кафедри автоматики, телемеханіки і зв’язку Дніпропетровсь-

кого національного університету залізничного транспорта імені академіка В. Лазаряна),

д-р фіз.-мат. наук, проф. О.В. Коваленко (завідувач кафедри радіоелектроніки Дніпропетровського національно-

го університету імені Олеся Гончара)

Литвинов О.А., Хандецький В.С.

Розподілена обробка інформації : [моногр.] / О.А. Литвинов., Л64 В.С. Хандецький − Д.: ТОВ «Баланс-Клуб», 2013.− 314 с.

ISBN 978-966-494-025-9

Монографію присвячено дослідженню основних класів розподілених обчислювальних систем: систем, що спрямовані на високопродуктивні обчислення та розподілених інформаційних систем. Особлива увага приділена аналізу підходів, моделей та технологій сучасних розподілених інформаційних систем та їх ролі у побудові інфраструктури бізнесу. Розглянуті тенденції розвитку розподілених обчислень. Монографія може бути корисна інженерам та аналітикам комп’ютерних систем, що спеціалізуються в галузі високопродуктивних обчислень, студентам інформаційних спеціальностей вищих навчальних закладів України.

УДК 004.9

ББК 32.973.202

ISBN 978-966-494-025-9

© Литвинов О.А., Хандецький В.С., 2013

ЗМІСТ

Вступ …………………………………………………………………………... 7

1.Призначення та особливості розподілених систем ……………….….. 10

2.Інформаційні моделі управління бізнес-процесами підприємств …. 14

2.1.Принципи побудови оптимізаційних моделей ….…………………... 14

2.2.Модель оптимізації базової інфраструктури …………………...….... 15

2.3.Модель оптимізації продуктивності бізнесу ....………………….….. 19

2.4.Модель оптимізації інфраструктури додатків ………………............ 21

3. Основні класи розподілених обчислювальних систем ………………. 23

3.1.Кластерні системи, спрямовані на високопродуктивні обчислення.. 23

3.1.1.Кластерні системи. Обчислювальні кластери ……………….… 24

3.1.2.Кластери високої доступності …………………………….……..27

3.1.3.Кластери розподілу навантаження …….……………………..… 28

3.1.4.Кластерізація віртуальних серверів …………..………………... 30

3.2.Grid-системи ……..………………....…………………………………. 39

3.2.1.Архітектура Grid-систем …………..…………………………….41

3.2.2.Проблеми Grid-систем ………..………..………………………. 46

3.3.Хмарні обчислення .……………………..…………………………….. 46

3.3.1.Типи послуг …………………………………………………….....46

3.3.2.Хмарна платформа Microsoft Windows Azure .……..………….. 54

3.3.3.Проблеми впровадження хмарних обчислень ..……………….. 55

3.3.4.Порівняння Grid та хмарних обчислень . ……………………... 56

4.Розподілені інформаційні системи …………………..………………….. 57

4.1.Системи обробки транзакцій …..…………………………………….. 59

4.1.1.Архітектура системи обробки транзакцій ……………………. 61

4.1.2.Властивості транзакцій …………………….………..…………. 62

4.1.3.Протокол двохфазного підтвердження …….…………………. 65

4.1.4.Сутність блокування ……….………………..………………….. 67

4.1.5.Рівні ізольованості ………………………………………….…….67

3

4.1.6.Проблеми залежності транзакцій ………………..……………... 69

4.2.Особливості обробки транзакцій в Microsoft SQL Server ……..….... 73

4.2.1.Життєвий цикл команд SELECT та UPDATE …..……….……. 75

4.2.2.Рівні ізоляції в MSSQL Server …….……………………………. 77

4.2.3.Блокування в SQL Server …………………………………..…… 81

4.2.4.Ієрархія рівнів блокування …………….………………………... 84

4.3.Особливості обробки розподілених транзакцій в Windows ……..…. 90

4.3.1.Служба координатора розподілених транзакцій ..….....………. 93

4.3.2.Компонентно-орієнтована система обробки транзакцій …….... 97

4.3.3.Менеджер розподілених транзакцій ……………………………. 101

4.3.4.Інтерфейси доступу до баз даних із MTS ………..…………...... 105

4.3.5.Засоби .NET для обробки розподілених транзакцій ..……....... 108

5.Нетранзакційні розподілені бази даних і принцип BASE ………….. 118

5.1.Проблеми реляційних СУБД ……..……..…………………………… 120

5.2.Теорема CAP та принцип BASE ……………………….…………… 121

5.2.1.Орієнтованість на роботу з документами ……..………………. 123

5.2.2.Шардінг…………………………………………………………… 123

5.2.3.Особливості роботи з MongoDB ………..…………....………… 128

5.2.4.Робота з MongoDB засобами .NET…..………………………… 130

6.Інтеграція корпоративних додатків ……………..……………………... 133

6.1.Системи федеративних баз даних …………………..……………….. 133

6.1.1.П’яти – рівнева архітектура системи ……………………………135

6.1.2.Восьми – рівнева архітектура ………………………….………. 136

6.2.Системи, орієнтовані на виклики віддалених процедур …..………. 138

6.2.1.Особливості технології RMI.................………………..……….. 146

6.2.2.Проблеми RPC-систем …...…………………………..…………. 148

6.3.Системи інтеграції розподілених додатків з використанням проміжного рівня .…………………….……………………………..… 149

6.3.1. Черги повідомлень..………………………………………..…….. 151

4

6.3.2. Моделі передачи повідомлень ……..…………………………... 153

6.3.3. Типові послуги МОМ .…………………………………………. 155

7.Системна архітектура ……………………………………………………..159

7.1.Клієнт-серверна модель системи ……………..…………..………….. 159

7.1.1.Основні шаблони клієнт-серверних систем …….……………... 161

7.1.2.Агентно-орієнтовані системи …………..…....…………………. 165

7.2.Однорангова модель системи ………….……………………………... 168

8.Сервісно-орієнтована архітектура ……………………………………… 169

8.1.Поняття сервісу та сервісно-орієнтованої архітектури …..………... 169

8.1.1.Підхід управління бізнес-процесами ..….……………………… 169

8.1.2.Стадії бізнес-процесів ……..………….………………………… 177

8.1.3.Принципи сервісно-орієнтованої архітектури .….……………. 180

8.2.Web-сервіси ………….……..…………………………………………. 186

8.2.1.Протокол XML-RPC ………………….…………………………..192

8.2.2.Протокол SOAP ………………………………………………….. 196

8.2.3.Мова WSDL для визначення Web-сервісів і доступу до них .... 199

8.2.4.Сервіс UDDI для реєстрації та пошуку Web-сервісів .……….. 210

8.3.REST – підхід до побудови сервісно – орієнтованих додатків ........ 213

8.4.Розробка Web – сервісів з використанням .NET Framework ..…… 215 8.4.1. Атрибут WebService ……..……………………………………... 217

8.4.2.Атрибут WebMethod ……..……………………………………. 219

8.4.3.Властивість EnableSession …………………..………………….. 220

8.4.4.Налаштування SQL Server для ASP.NET …..………………….. 224

8.4.5.Властивість CacheDuration ……………………..……………… 226

8.4.6.Властивість TransactionOption …………………………………...227

8.4.7.Властивість BufferedResponse …………..…………………….... 230

8.4.8.Оброблювач гіпертекстового транспортного протоколу ….. 239

9.Практичні приклади застосування ASP.NET Web-сервісів ………… 248

9.1.Створення рівню логики …..…………..............……………………… 248

5

9.1.1.Створення БД …………………………………………………….248

9.1.2.Створення рівню DAL ………..………………………………… 251

9.1.3.Створення рівню BLL …..………………………………………. 255

9.2.Створення рівню сервіса …………………..…………………………. 259

9.3.Створення тестеру клієнта ………………..………………………...... 262

9.4.Завдання для самостійної підготовки ……….………………………. 268

10.Практична робота з сокетами засобами С# ………………………….. 269

10.1.Визначення та описання сокетів ………………….....……………..... 269

10.1.1.Типи комунікації сокетів. Потокова комунікація ………....…. 273

10.1.2.Дейтаграмний тип комунікації …………….…………….…….274

10.1.3.Порти TCP/UDP ………………………………………………...276

10.2.Робота з сокетами в .NET …………………………………….………276

10.3.Задача 1. Отримання списку адрес машини з використанням DNS 278

10.4.Задача 2. Створення додатку з потоковим типом взаємодії………. 279

10.4.1.Синхронна взаємодія …………………………………………....279

10.4.2.Асинхронний варіант взаємодії (.NET 2.0) ………….………. 286

10.4.3.Приклад тестування паралельної обробки«асинхронного» серверу ………..……………………………………………….… 292

10.4.4.Асинхронний варіант взаємодії (NET 3.5) ……………………294

10.5.Задача 3. Організація взаємодії з використанням протоколу UDP 301

10.6.Завдання для самостійної підготовки ………………………………. 308

Перелік літературних джерел …………………………………………………309

6

ВСТУП

Важливими рисами сучасних підходів до управління підприємством,

які базуються на моделі управління бізнес процесами, являються: повна фор-

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

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

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

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

рюють ІТ-інфраструктуру/контекст бізнесу. Вони спрямовані насамперед на забезпечення підтримки фаз моніторингу та контролю якості, створюючи фа-

ктологічне та аналітичне підґрунтя для реструктуризації та оптимізації бізнес процесів.

У разі такої інтеграції виникає ряд питань, без вирішення яких ІТ-

інфраструктура стає тягарем для розвитку бізнесу: гнучкість - досягнення ві-

дповідної реакції системи на зміни бізнес - процесів, безпека, надійність, дос-

тупність, масштабованість, відкритість. Виконання цих умов неможливо без залучення сучасних підходів до проектування та ІТ-технологій (методів, під-

ходів, засобів). Розвиток та ускладнення бізнес-процесів, високі вимоги до складності та швидкості обчислень, збереження великого об’єму даних, інте-

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

слювальних систем, комплексів гетерогенних реальних та віртуальних обчи-

слювальних машин, як основного компоненту ІТ-інфраструктури.

При цьому загальною стратегією розробників ІТ-інфраструктури є:

створення нових систем з вже існуючих функціональних компонентів і по-

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

тування та програмування, спрямованих на швидку адаптацію до змін; вико-

ристання інтегрованих середовищ розробки та адміністрування; віртуалізація на різних системних рівнях; введення різноманітних високорівневих мов та різноманітних метафор для ясного описання та розуміння обчислювальної задачі та її рішення.

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

7

льних систем: системи, що спрямовані на високопродуктивні обчислення та розподілені інформаційні системи. Особлива увага приділена підходам, мо-

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

В розділі 1 вводяться основні поняття та характеристики (критерії оці-

нювання) розподілених обчислювальних систем.

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

тури додатків.

В розділі 3 розглядаються кластери, Grid та хмарні системи. В частині,

що пов'язана з кластерними обчисленнями поряд з високопродуктивними си-

стемами (нащадками кластеру Beowulf) розглянуто також відмовостійкі клас-

тери, кластери балансування навантаження, віртуалізацію серверів, як не-

від’ємні механізми побудови сучасних розподілених систем .

Розділ 4 присвячений класу розподілених інформаційних систем, в

якому розглядаються: сутність та проблеми обробки розподілених транзак-

цій; особливості обробки транзакцій в Microsoft SQL Server, в системі Windows.

В розділі 5 розглянуто структуру і характеристики нетранзакційних ро-

зподілені бази даних і принцип BASE, проаналізовано особливості підходу

Scale – out для реляційних СУБД.

Розділ 6 присвячений інтеграції корпоративних додатків. В ньому розг-

лянуто архітектури систем федеративних баз даних; системи, орієнтовані на виклики віддалених процедур; RPC – системи.

В розділі 7 розглянуто системну архітектуру розподілених систем: клі-

єнт-серверну та однорангову моделі. Особлива увага приділена клієнт-

серверній парадигмі – розглянуто основні класи систем: «віддалена оцінка», «код за запитом», агенто-орієнтовані системи.

8

В розділі 8 надається концепція сервісно-орієнтованої архітектури (далі СOA), принципи якої спрямовані на оптимальну підтримку бізнес-процесів,

побудову гнучких розподілених гетерогенних програмних комплексів. Особ-

лива увага сфокусована на зв'язок СОА з моделлю управління підприємства на основі бізнес-процесів. Проаналізовано технології веб-сервісів ASP.NET

для побудови додатків. Розглянуті особливості, пов'язані як з побудовою кла-

сичних SOAP-, так і з REST-cервісів: використання механізмів кешування,

відстрочене виконання, виконання розподілених транзакцій, синхронні й асинхронні http-оброблювачі.

В розділі 9 наведені практичні приклади застосування Web – сервісів з використанням ASP.NET. Зокрема розглянуто процедури ідентифікації ко-

ристувача, створення рівню сервісу, створення тестеру клієнта, наведені за-

вдання для самостійної підготовки.

В розділі 10 включено практичний матеріал, пов'язаний із застосуван-

ням сокетів, як базового механізму мережевої взаємодії в сучасних інформа-

ційних системах. Розглянуто процедури роботи з сокетами в .NET, практичні задачі щодо отримання списку адрес машини з використанням DNS, ство-

рення типового додатку з потоковим типом взаємодії, організації взаємодії з використанням протоколу UDP. Наведені завдання для самостійної підготов-

ки.

9