SlideShare a Scribd company logo
Крос-платформне програмування
Лекція 15
Архітектура та проектування
компонентних систем. Розподілена
архітектура компонентних систем
3 червня, 2015
Примітка: частину слайдів лекції підготовлено за
матеріалами курсу А.Н.Свістунова, ННГУ, ВМК, ИТЛаб,
ЛМСС
• Розподілена архітектура компонентних
систем
• Компонентно-орієнтоване проектування
• Формальні та візуальні методи
конструювання компонентів
Визначення
• Розподілена система - ряд з’єднаних централь-
них процесорів (ЦП, CPU), що працюють разом
• Розподілена система - ряд машин з нерозділе-
ною пам'яттю
• Розподілена система - система із просторово
розподіленими компонентами, які не викорис-
товують ніякої спільної пам'яті й не підлягають
децентралізованій адміністрації. Для реалізації
спільних цілей можлива кооперація компонентів
• Розподілена система - набір незалежних
комп'ютерів, що уявляється користувачами
єдиною об'єднаною системою [1]
– стосовно апаратури: всі машини автономні
– стосовно програмного забезпечення: користувачам
надається у користування єдина система
Визначення (2)
• Розподілена система - взаємопов'язаний набір
автономних комп'ютерів, процесів або
процесорів
– Вузли РС - комп'ютери, процеси або процесори
– Автономні - обладнані, принаймні, своїм власним
блоком керування. Отже паралельний комп'ютер з
одним потоком управління і декількома потоками
даних (SIMD) не підпадає під визначення РС
– Визначення включає програмні системи, побудовані
як набір взаємодіючих процесів
– Взаємопов'язані - вузли повинні мати можливість
обмінюватися інформацією
• Розподілена ІС – сукупність програмних компонен-
тів, що взаємодіють один з одним. Кожний з таких
компонентів може розглядатися як програмний
модуль (застосування), що виконується в рамках
окремого процесу
Фактори розвитку РС
• зростання продуктивності комп'ютерів при
зменшенні вартості обробки інформації
• розповсюдження швидких локальних мереж
• зростання швидкості роботи з Internet
• розвиток теорії і практики створення
програмних засобів розподілених БД та засобів
графічного інтерфейсу для них
• упровадження еталонної моделі взаємодії
відкритих систем OSI для реалізації стеків
протоколів реальних систем
Приклади розподілених систем
• Інтернет
– Гетерогенна мережа
комп'ютерів та
програм
– Реалізація взаємодії –
IP стек
• Intranet
– Адмініструється локально
– Забезпечує сервісами
(внутрішніх і зовніш-
ніх користувачів)
– Взаємодія з Інтернет
• Wireless Information
Devices
• Обчислювальні
кластери
© Pearson Education 2001
© Pearson Education 2001
8
Chip
(2 processors)
17 watts
Compute Card
(2 chips, 2x1x1)
4 processors
Node Board
(32 chips, 4x4x2)
16 Compute Cards
64 processors
(64 racks, 64x32x32)
131,072 procsRack
(32 Node boards, 8x8x16)
2048 processors
2.8/5.6 GF/s
4 MB (cache)
5.6/11.2 GF/s
1 GB DDR
90/180 GF/s
16 GB DDR
2.9/5.7 TF/s
0.5 TB DDR
180/360 TF/s
32 TB DDR
IBM BlueGene/L #1 131,072 Cores Total of 33 systems in the Top500
BG/L 700 MHz 131K
proc
64 racks
Peak: 367 Tflop/s
Linpack: 281 Tflop/s
77% of peak
BlueGene/L Compute ASIC
Full system total of
131,072 processors
The compute node ASICs include all networking and processor functionality.
Each compute ASIC includes two 32-bit superscalar PowerPC 440 embedded
cores (note that L1 cache coherence is not maintained between these cores).
(13K sec about 3.6 hours; n=1.8M)
1.6 MWatts (1600 homes)
43,000 ops/s/person
Приклад багаторівневої архітектури
Приклади розподілених систем (2)
• Системи управління аеропортом
• Автомобільні управляючі системи
– Сучасний Mercedes S класу має
більше 50 автономних вбудованих
процесорів, з'єднаних більш ніж
однією мережею
• Складні мережі підприємств
• Мережеві файлові системи
• Телефонні системи
– Кожен телефон з'єднаний зі
своєю АТС, які утворюють
міську мережу АТС
– До кожної з АТС підключено
міжміську АТС, які утворюють
національні телефонні мережі
• WWW
• ...
© А.М.Астапкович, ГУАП, СПб, 2012
«Павутина» на
міжміському
рівні
До АТС можуть підклю-
чатися різні пристрої
Розподілені системи у масштабі
суспільства
Будівництво та використання
сенсорних мереж WSN CS162 ©UCB (Prof. J.Kubiatowicz)
MEMS для
WSN
• Мікропроцесори скрізь
• Розгалужена мережева
інфраструктура
• У мережі поширюється
функціональність
БД
Накопичення інформації
Зовнішнє сховище
Онлайн-ігри
Електронна комерція
...
Масштабовані,
надійні, безпечні
послуги
Всюдисущі мобільні
системи
Мотивація
• Обмін інформацією
• Поділ ресурсів
– Користувачі сумістно використовують дорогі ресурси ЕОМ
та дорогі периферійні пристрої
• Збільшення надійності завдяки реплікації
– Деякі вузли системи можуть вийти з ладу, інші
продовжуватимуть функціонувати і зможуть взяти на себе
завдання зіпсованих компонентів
• Збільшення продуктивності завдяки распаралелю-
ванню та балансуванню навантаження
– Напр., збільшення загальної пропускної спроможності
системи шляхом балансування навантаження її складових
• Спрощення розробки завдяки спеціалізації
– Система розбивається на модулі, кожен з яких відповідає за
частину функціональності і взаємодіє з іншими модулями
Централизована (одноланкова) архітектура
• Переваги
– користувачі сумістно викорис-
товують дорогі ресурси ЕОМ
та дорогі периферійні пристрої
– централізація ресурсів та
обладнання полегшує обслуго-
вування й експлуатацію
обчислювальної системи
– відсутня необхідність адмініст-
рування робочих місць корис-
тувачів
• Головний недолік
– користувачі повністю залежать
від адміністратора хост-ЕОМ
IBM System/360
Архітектура “файл-сервер”
• Функції сервера: зберігання даних
і коду програми
• Функції клєнта: обробка даних
• Переваги
– багатокористувацький режим
роботи з даними (<5-10 користув.)
– зручність централізованого
управління доступом
– низька вартість та висока
швидкість розробки
– невисока вартість оновлення та
зміни ПЗ
• Недоліки
– проблеми багатокористувацької роботи з даними
(забезпечення їх цілісності, несуперечливоісті)
– низька продуктивність та ненадійність системи
– погана можливість підключення нових клієнтів (збільшується
навантаження на мережу)
Архітектура “клієнт-сервер”
• Клієнт-сервер – обчислювальна
або мережева архітектура, в якій
завдання або мережеве наванта-
ження розподілені між поста-
чальниками послуг (сервісів) -
серверами - та замовниками
послуг - клієнтами
• Як визначити кордони між
функціоналом клієнта і сервера?
– Тонкий клієнт (thin client) – усі
або більша частина завдань з
обробки інформації переноситься
на сервер
– Товстий клієнт (rich client) – забезпечує розширену
функціональність незалежно від центрального сервера
• Можна виділити рівні користувацького інтерфейсу,
обробки та даних
– Дволанкова, триланкова, багатоланкова архітектури
Переваги та недолки архітектури
“клієнт-сервер”
• Переваги
– можливість розподілити функції обчислювальої системи
між декількома незалежними комп'ютерами в мережі
– всі дані зберігаються на сервері, який захищений
набагато краще більшості клієнтів, простіше забезпечити
контроль повноважень, щоб дозвляти доступ до даних
тільки клієнтам з відповідними правами доступу
– підтримка багатокористувацької роботи
– гарантія цілісності даних
• Недоліки
– непрацездатність сервера може зробити непрацездатною
усю обчислювальну мережу
– адміністрування системи вимагає кваліфікованого
професіонала
– висока вартість обладнання
– бізнес логіка застосувань залишилася в клієнтському ПЗ
Варіанти архітектури клієнт-сервер
• Триланкова архітектура - передбачає наявність
трьох компонентів: клієнтського застосування (т.з.
“тонким клієнт” або термінал), сервера застосувань,
до якого підключено клієнтську програму, та
сервера БД, з яким працює сервер застосувань
• Переваги
– Масштабованість, конфігурованість
– Висока безпека та надійність
– Низькі вимоги до швидкості
мережі та продуктивності
терміналу
• Недоліки
– Висока складність створення
застосувань, їх розгортання
та адміністрування
– Високі вимоги до продуктив-
ності серверів та мережі, що
їх з’єднує
Варіанти архітектури клієнт-сервер (2)
• Модель сервісу - одну послугу реалізує не
один, а декілька серверів
• Переваги
– Збільшується продуктивність
системи та її стійкість до збоїв
(зупинка одного з серверів не
є критичною)
– Дозволяє реалізувати різні
стратегії балансування навантаження між серверами
системи
• Недоліки
– Складніша реалізація у порівнянні з базовою
архітектурою
– Виникають проблеми з реплікацією оброблюваних
даних (підтримання на всіх серверах системи
актуальною копії даних) та підтримкою цілісності
розподілених даних
Варіанти архітектури клієнт-сервер (3)
• Проксі-сервер - служба (комплекс програм) у
комп'ютерних мережах, що дозволяє клієнтам
виконувати непрямі запити до інших мережних
служб
– Часто застосовується при роботі в Інтернет
• Переваги
– Можливі стратегії балансування навантаження (посередник
може вирішувати, на якій з серверів відправити запит)
– Економія трафіку за
рахунок підтримка кешу
останніх запитів
– Прискорює роботу
– Захист локальної
мережі від атак ззовні
– Анонімність при
підключенні до сайтів
Архітектура P2P
• Архітектура P2P (Peer to Peer) – мережа рівноправних
вузлів
– В чистій P2P не існує поняття клієнтів або серверів, лише
рівні вузли, які одночасно функціонують як клієнти та
сервери по відношенню до інших вузлів мережі
– Приклади: MPI, децентралізовані мережі обміну інформа-
цією та повідомленнями FidoNet, Usenet, Napster
• Переваги
– Зберігає працездатність
мережі при будь-якій
конфігурації її учасників
– Дозволяє організовувати
дуже витончені політики
розподілу навантаження
• Недоліки
– Проблеми масштабуван-
ня, надмірності та
відмовостійкості
Мобільні агенти
• Мобільний агент (Peer to Peer) – програмний модуль,
що надсилається клієнту та виконується на ньому
– Іноді певні задачі доцільно вирішувати на клієнті, оскільки
на ньому вже розташовані усі необхідні дані
– Приклад: веб-сторінка, що містить апплет
• Переваги
– Розвантаження сервера, зниження мережевого трафіку
• Недоліки
– Складність реалізації
механізму передачі
та виконання мобіль-
них агентів, а також
контролю безпеки
Проблеми
• Поширення застосувань
• Гетерогенність
• Відкритість
• Безпека
• Масштабованість
• Обробка помилок і відновлення після збоїв
• Паралелізм
• Прозорість
• Керованість
Поширення застосувань
• Фрагментація
– поділ програми на модулі для розповсюдження
• Конфігурація
– Зв'язок модулів один з одним (залежності)
• Розміщення
– Вивантаження модулів на цільову систему
– Розподіл обчислювальних модулів між вузлами
(статичний або динамічний)
Гетерогенність
• Гетерогенні системи - міститять цілий набір
незалежних комп'ютерів, з'єднаних
різноманітними мережами
• Різні
– мережеві інфраструктури
– апаратне та програмне забезпечення (напр.,
Intel&Motorolla, UNIX sockets & Winsock calls)
– мови програмування (і подання даних)
• Відмінності повинні бути приховані
• Інтерфейси і реалізація можуть бути різними
– Базові концепції зазвичай незмінні
• Необхідні стандарти
Гетерогенність. Як приховати відмінності?
• Middleware - проміжне ПЗ між платформою і
компонентами розподіленого застосування
– Дозволяє гетерогенним вузлам взаємодіяти
– Визначає однорідну обчислювальну модель
– Підтримує одну або декілька мов програмування
– Забезпечує підтримку розподілених застосувань
» Виклик віддалених об'єктів
» Віддалений виклик SQL
» Розподілена обробка транзакцій
• Приклади: CORBA, Java RMI, Microsoft DCOM
Гетерогенність. Як приховати відмінності? (2)
• Мобільний код - розроблений для міграції між
вузлами
– Необхідно долати апаратні відмінності (різні набори
інструкцій)
• Віртуальні машини
– Компілятор створює байт-код для VM
– VM реалізована для усіх аппаратних платформ та ОС
• Методи грубої сили
– Портуємо код під кожну платформу...
Відкритість
• Відкрита РС (open distributed system) – система,
яка пропонує стандартні засоби та служби
доступу до системи широкому колу
користувачів, що використовують стандартні
синтаксис і семантику усіх протоколів взаємодії
• Гарантує розширюваність
• Можливість повторного використання
• Важливі фактори
– Наявність чітких специфікацій
– Наявність повної документації
– Опубліковані інтерфейси
– Тестування і перевірка на багатьох платформах
Безпека
• Три компоненти
– Конфіденційність - забезпечення захисту від несанк-
ціонованого доступу в систему
– Цілісність - забезпечення цілісності і збереження даних
– Доступність - забезпечення захисту при паралельному
доступі до ресурсів
• Завдання: відправка важливої інформації по
мережі безпечно і ефективно
– Авторизація
– Криптографія - ніхто крім отримувача не має
прочитати дані
• Невирішені проблеми
– Атаки типу DoS (відмови в обслуговуванні)
– Безпека мобільного коду
» Непередбачені ефекти
» Може вести себе подібно троянському коню
Масштабованість
• РС масштабована, якщо вона залишається
ефективною при збільшенні кількості
користувачів або ресурсів, що обслуговуються
• Проблеми
– Контроль вартості ресурсів
– Контроль втрат продуктивності
• Вартість фізичних ресурсів
– Зростає, при збільшенні кількості користувачів
– Не повинна рости швидше, ніж O(n), де n - кількість
користувачів
• Втрати продуктивності
– Збільшуються з ростом розміру даних (і кількості
користувачів)
– Час пошуку не повинен рости швидше, ніж O(log n),
де n – розмір даних
Обробка збоїв
• Збої частіші, ніж у централізованих системах,
але зазвичай локальні
• Обробка збоїв включає
– Визначення факту збою (може бути неможливо) -
діагностика
» Може бути можлива (помилки передачі - контрольна
сума)
» Може бути неможлива (віддалений сервер не працює
або просто дуже завантажений)
– Маскування
» Багато збоїв можна приховати
» Може бути неможливим (усі диски пошкоджені)
» Не завжди добре
– Відновлення
Параллелизм
• Контроль паралелізму
– Звернення декількох потоків до ресурсу
» Правильне планування доступу у паралельних
потоках (усунення взаємовиключення, транзакції)
– Синхронізація (семафори)
» Безпечно, але знижує продуктивність
– Спільні ресурси повинні працювати коректно
в багатопотоковому середовищі
Прозорість (transparency)
• Прозорість - приховування гетерогенної і
розподіленої структури системи так, щоб
користувачеві система здавалася монолітною
– Доступу: доступ до локальних і віддалених ресурсів за
допомогою однакових викликів
– Розташування: доступ до ресурсів незалежно від їх
фізичного розташування
– Паралелізму: можливість декільком процесам паралельно
працювати з ресурсами, не впливаючи один на одного
– Реплікації: можливість декількох екземплярів одного ресурсу
використовуватися без знання фізичних особливостей
реплікації
– Обробки помилок: захист програмних компонентів від збоїв,
що відбулися в інших програмних компонентах. Відновлення
після збоїв
– Мобільності: можливість перенесення програми між
платформами без її переробки
– ...
Керованість
• Розподілені ресурси не мають центральної
точки керування
• Локальна оптимізація не завжди означає
глобальну оптимізацію
– Потрібен глобальний погляд на проблему
– Не завжди можливий (є системи, що нікому конкретно
не належать)
Висновки
• Розподілена система
– Автономні (але з'єднані середовищем передачі даних)
вузли
– Взаємодія за допомогою передачі повідомлень
• Багато прикладів того, що РС потрібні, і їх
потрібно вміти будувати
• РС існують і їх потрібно вміти розвивати і
підтримувати
Наслідки
• Паралельність
– Незалежні процеси (синхронізація)
– Необхідність поділу ресурсів (дані, сервіси, пристрої)
– Типові проблеми – дедлоки, ненадійні комунікації
(проблема звільнення ресурсів)
• Немає “глобального" часу​​
– Асинхронна передача повідомлень
– Обмежена точність синхронізації часу
• Немає стану системи
– Немає жодного процесу у розподіленій системі, який
би знав поточний глобальний стан системи
– Наслідок паралелізму та механізму передачі даних
• Збої
Збої
• Процеси виконують автономно, ізольовано
• Невдачі окремих процесів можуть залишитися
невиявленими
• Окремі процеси можуть не підозрювати про
загальносистемні збої
• Збої відбуваються частіше ніж в централізованій
системі
• З’являються нові причини збоїв (яких не було в
монолітних системах)
• Мережеві збої ізолюють процеси і
фрагментують систему
Література
• Таненбаум Э., М. ван Стеен.
Распределенные системы. Принципы и
парадигмы. – СПб: Питер. – 2003 г. –
880 c.
• Свистунов А.Н. Построение распределенных
систем на Java. - М.: ИНТУИТ-Бином,
2010. - 199 c. -
http://www.intuit.ru/studies/courses/633/489/
info
Дякую за увагу

More Related Content

What's hot

Security in microservices architectures
Security in microservices architecturesSecurity in microservices architectures
Security in microservices architectures
inovia
 
osn-threats-solutions-2
osn-threats-solutions-2osn-threats-solutions-2
osn-threats-solutions-2SMITA V MORE
 
Android Hacking
Android HackingAndroid Hacking
Android Hacking
antitree
 
Room 3 - 2 - Trần Tuấn Anh - Defending Software Supply Chain Security in Bank...
Room 3 - 2 - Trần Tuấn Anh - Defending Software Supply Chain Security in Bank...Room 3 - 2 - Trần Tuấn Anh - Defending Software Supply Chain Security in Bank...
Room 3 - 2 - Trần Tuấn Anh - Defending Software Supply Chain Security in Bank...
Vietnam Open Infrastructure User Group
 
Wireless Network Security
Wireless Network SecurityWireless Network Security
Wireless Network Security
kentquirk
 
Nikto
NiktoNikto
Gns3
Gns3Gns3
Pentesting custom TLS stacks
Pentesting custom TLS stacksPentesting custom TLS stacks
Pentesting custom TLS stacks
Alexandre Moneger
 
Mongo db
Mongo dbMongo db
Mongo db
Gyanendra Yadav
 
Intro To Mongo Db
Intro To Mongo DbIntro To Mongo Db
Intro To Mongo Dbchriskite
 
Sqlmap
SqlmapSqlmap
Slides of SNMP (Simple network management protocol)
Slides of SNMP (Simple network management protocol)Slides of SNMP (Simple network management protocol)
Slides of SNMP (Simple network management protocol)
Shahrukh Ali Khan
 
The Rising Threat of Fileless Malware
The Rising Threat of Fileless MalwareThe Rising Threat of Fileless Malware
The Rising Threat of Fileless Malware
Chelsea Sisson
 
Windows Logging Cheat Sheet ver Jan 2016 - MalwareArchaeology
Windows Logging Cheat Sheet ver Jan 2016 - MalwareArchaeologyWindows Logging Cheat Sheet ver Jan 2016 - MalwareArchaeology
Windows Logging Cheat Sheet ver Jan 2016 - MalwareArchaeology
Michael Gough
 
IPv6 Basics - pfSense Hangout July 2015
IPv6 Basics - pfSense Hangout July 2015IPv6 Basics - pfSense Hangout July 2015
IPv6 Basics - pfSense Hangout July 2015
Netgate
 
Network Management Fundamentals
Network Management FundamentalsNetwork Management Fundamentals
Network Management Fundamentals
SolarWinds
 
Ssl (Secure Sockets Layer)
Ssl (Secure Sockets Layer)Ssl (Secure Sockets Layer)
Ssl (Secure Sockets Layer)
Asad Ali
 
Lecture 5
Lecture 5Lecture 5
Lecture 5
vishal choudhary
 
Software-Defined Networking (SDN): Unleashing the Power of the Network
Software-Defined Networking (SDN): Unleashing the Power of the NetworkSoftware-Defined Networking (SDN): Unleashing the Power of the Network
Software-Defined Networking (SDN): Unleashing the Power of the Network
Robert Keahey
 

What's hot (20)

Security in microservices architectures
Security in microservices architecturesSecurity in microservices architectures
Security in microservices architectures
 
osn-threats-solutions-2
osn-threats-solutions-2osn-threats-solutions-2
osn-threats-solutions-2
 
Android Hacking
Android HackingAndroid Hacking
Android Hacking
 
Room 3 - 2 - Trần Tuấn Anh - Defending Software Supply Chain Security in Bank...
Room 3 - 2 - Trần Tuấn Anh - Defending Software Supply Chain Security in Bank...Room 3 - 2 - Trần Tuấn Anh - Defending Software Supply Chain Security in Bank...
Room 3 - 2 - Trần Tuấn Anh - Defending Software Supply Chain Security in Bank...
 
Wireless Network Security
Wireless Network SecurityWireless Network Security
Wireless Network Security
 
Nikto
NiktoNikto
Nikto
 
Gns3
Gns3Gns3
Gns3
 
Pentesting custom TLS stacks
Pentesting custom TLS stacksPentesting custom TLS stacks
Pentesting custom TLS stacks
 
Mongo db
Mongo dbMongo db
Mongo db
 
Intro To Mongo Db
Intro To Mongo DbIntro To Mongo Db
Intro To Mongo Db
 
Sqlmap
SqlmapSqlmap
Sqlmap
 
Slides of SNMP (Simple network management protocol)
Slides of SNMP (Simple network management protocol)Slides of SNMP (Simple network management protocol)
Slides of SNMP (Simple network management protocol)
 
The Rising Threat of Fileless Malware
The Rising Threat of Fileless MalwareThe Rising Threat of Fileless Malware
The Rising Threat of Fileless Malware
 
Windows Logging Cheat Sheet ver Jan 2016 - MalwareArchaeology
Windows Logging Cheat Sheet ver Jan 2016 - MalwareArchaeologyWindows Logging Cheat Sheet ver Jan 2016 - MalwareArchaeology
Windows Logging Cheat Sheet ver Jan 2016 - MalwareArchaeology
 
IPv6 Basics - pfSense Hangout July 2015
IPv6 Basics - pfSense Hangout July 2015IPv6 Basics - pfSense Hangout July 2015
IPv6 Basics - pfSense Hangout July 2015
 
Dhcp ppt
Dhcp pptDhcp ppt
Dhcp ppt
 
Network Management Fundamentals
Network Management FundamentalsNetwork Management Fundamentals
Network Management Fundamentals
 
Ssl (Secure Sockets Layer)
Ssl (Secure Sockets Layer)Ssl (Secure Sockets Layer)
Ssl (Secure Sockets Layer)
 
Lecture 5
Lecture 5Lecture 5
Lecture 5
 
Software-Defined Networking (SDN): Unleashing the Power of the Network
Software-Defined Networking (SDN): Unleashing the Power of the NetworkSoftware-Defined Networking (SDN): Unleashing the Power of the Network
Software-Defined Networking (SDN): Unleashing the Power of the Network
 

Similar to Lec15 архiтектура та проектування компонентних систем

Computers and Computing Works lecture №5
Computers and Computing Works lecture №5Computers and Computing Works lecture №5
Computers and Computing Works lecture №5
Lesia Sobolevska
 
Lec13 14 багатопоточнiсть
Lec13 14 багатопоточнiстьLec13 14 багатопоточнiсть
Lec13 14 багатопоточнiсть
cit-cit
 
Сучасні інформаційні технології. Лекція 2. Архітектура персонального комп’ютера
Сучасні інформаційні технології. Лекція 2. Архітектура персонального комп’ютераСучасні інформаційні технології. Лекція 2. Архітектура персонального комп’ютера
Сучасні інформаційні технології. Лекція 2. Архітектура персонального комп’ютера
Максим Павленко
 
програмне та інформаційне_забезпечення_сапр
програмне та інформаційне_забезпечення_сапрпрограмне та інформаційне_забезпечення_сапр
програмне та інформаційне_забезпечення_сапр
Irina Semenova
 
Android Platform Architecture
Android Platform ArchitectureAndroid Platform Architecture
Android Platform Architecture
Pavel Bashmakov
 
компютерні мережі (Fil eminimizer)
компютерні мережі (Fil eminimizer)компютерні мережі (Fil eminimizer)
компютерні мережі (Fil eminimizer)Masunya
 
принципи побудови і функціонування сапр
принципи побудови і функціонування сапрпринципи побудови і функціонування сапр
принципи побудови і функціонування сапр
Irina Semenova
 
Програмне забезпечення для оптимізації систем і дефрагментації носіїв
Програмне забезпечення для оптимізації систем і дефрагментації носіївПрограмне забезпечення для оптимізації систем і дефрагментації носіїв
Програмне забезпечення для оптимізації систем і дефрагментації носіїв
jap2006
 
Л2-Архітектура та ресурси.pdf
Л2-Архітектура та ресурси.pdfЛ2-Архітектура та ресурси.pdf
Л2-Архітектура та ресурси.pdf
dingo47
 
IIHE-Lecture-3_2
IIHE-Lecture-3_2IIHE-Lecture-3_2
IIHE-Lecture-3_2
Georgii Zhabieiev
 
Операційні системи і їх реалізація
Операційні системи і їх реалізаціяОпераційні системи і їх реалізація
Операційні системи і їх реалізація
Alexandra Ilina
 
Загальні принципи розроблення АРМ оператора на базі SCADA/HMI
Загальні принципи розроблення АРМ оператора на базі SCADA/HMIЗагальні принципи розроблення АРМ оператора на базі SCADA/HMI
Загальні принципи розроблення АРМ оператора на базі SCADA/HMI
Пупена Александр
 
network
networknetwork
networkjudin
 
Изучение интерфейсов операционных систем с помощью Embedded System
Изучение интерфейсов операционных систем с помощью Embedded SystemИзучение интерфейсов операционных систем с помощью Embedded System
Изучение интерфейсов операционных систем с помощью Embedded System
itconnect2016
 
Контрольна робота на тему: "Створення тематичної презентації. Автоматична обр...
Контрольна робота на тему: "Створення тематичної презентації. Автоматична обр...Контрольна робота на тему: "Створення тематичної презентації. Автоматична обр...
Контрольна робота на тему: "Створення тематичної презентації. Автоматична обр...
Ігор Гурін #Cronprog
 
Лекція №15
Лекція №15Лекція №15
Лекція №15
Michael Attwood
 
Операційні системи
Операційні системи Операційні системи
Операційні системи
диапма штемпель
 

Similar to Lec15 архiтектура та проектування компонентних систем (20)

Computers and Computing Works lecture №5
Computers and Computing Works lecture №5Computers and Computing Works lecture №5
Computers and Computing Works lecture №5
 
Lec13 14 багатопоточнiсть
Lec13 14 багатопоточнiстьLec13 14 багатопоточнiсть
Lec13 14 багатопоточнiсть
 
MOM
MOMMOM
MOM
 
Сучасні інформаційні технології. Лекція 2. Архітектура персонального комп’ютера
Сучасні інформаційні технології. Лекція 2. Архітектура персонального комп’ютераСучасні інформаційні технології. Лекція 2. Архітектура персонального комп’ютера
Сучасні інформаційні технології. Лекція 2. Архітектура персонального комп’ютера
 
програмне та інформаційне_забезпечення_сапр
програмне та інформаційне_забезпечення_сапрпрограмне та інформаційне_забезпечення_сапр
програмне та інформаційне_забезпечення_сапр
 
Android Platform Architecture
Android Platform ArchitectureAndroid Platform Architecture
Android Platform Architecture
 
компютерні мережі (Fil eminimizer)
компютерні мережі (Fil eminimizer)компютерні мережі (Fil eminimizer)
компютерні мережі (Fil eminimizer)
 
принципи побудови і функціонування сапр
принципи побудови і функціонування сапрпринципи побудови і функціонування сапр
принципи побудови і функціонування сапр
 
Програмне забезпечення для оптимізації систем і дефрагментації носіїв
Програмне забезпечення для оптимізації систем і дефрагментації носіївПрограмне забезпечення для оптимізації систем і дефрагментації носіїв
Програмне забезпечення для оптимізації систем і дефрагментації носіїв
 
Л2-Архітектура та ресурси.pdf
Л2-Архітектура та ресурси.pdfЛ2-Архітектура та ресурси.pdf
Л2-Архітектура та ресурси.pdf
 
Presentation IES 2012
Presentation IES 2012Presentation IES 2012
Presentation IES 2012
 
IIHE-Lecture-3_2
IIHE-Lecture-3_2IIHE-Lecture-3_2
IIHE-Lecture-3_2
 
Операційні системи і їх реалізація
Операційні системи і їх реалізаціяОпераційні системи і їх реалізація
Операційні системи і їх реалізація
 
Загальні принципи розроблення АРМ оператора на базі SCADA/HMI
Загальні принципи розроблення АРМ оператора на базі SCADA/HMIЗагальні принципи розроблення АРМ оператора на базі SCADA/HMI
Загальні принципи розроблення АРМ оператора на базі SCADA/HMI
 
network
networknetwork
network
 
Изучение интерфейсов операционных систем с помощью Embedded System
Изучение интерфейсов операционных систем с помощью Embedded SystemИзучение интерфейсов операционных систем с помощью Embedded System
Изучение интерфейсов операционных систем с помощью Embedded System
 
Контрольна робота на тему: "Створення тематичної презентації. Автоматична обр...
Контрольна робота на тему: "Створення тематичної презентації. Автоматична обр...Контрольна робота на тему: "Створення тематичної презентації. Автоматична обр...
Контрольна робота на тему: "Створення тематичної презентації. Автоматична обр...
 
Презентація
ПрезентаціяПрезентація
Презентація
 
Лекція №15
Лекція №15Лекція №15
Лекція №15
 
Операційні системи
Операційні системи Операційні системи
Операційні системи
 

More from cit-cit

лекція 5
лекція 5лекція 5
лекція 5
cit-cit
 
лаборатор. 10
лаборатор. 10лаборатор. 10
лаборатор. 10
cit-cit
 
лекція 19
лекція 19лекція 19
лекція 19
cit-cit
 
лекція 18
лекція 18лекція 18
лекція 18
cit-cit
 
лекція 17
лекція 17лекція 17
лекція 17
cit-cit
 
лекція 16
лекція 16лекція 16
лекція 16
cit-cit
 
лекція 12
лекція 12лекція 12
лекція 12
cit-cit
 
лекція 11
лекція 11лекція 11
лекція 11
cit-cit
 
лекція 10
лекція 10лекція 10
лекція 10
cit-cit
 
лаборатор. 15
лаборатор. 15лаборатор. 15
лаборатор. 15
cit-cit
 
лаборатор. 14
лаборатор. 14лаборатор. 14
лаборатор. 14
cit-cit
 
лаборатор. 13
лаборатор. 13лаборатор. 13
лаборатор. 13
cit-cit
 
лаборатор. 12
лаборатор. 12лаборатор. 12
лаборатор. 12
cit-cit
 
лаборатор. 11
лаборатор. 11лаборатор. 11
лаборатор. 11
cit-cit
 
лаборатор. 9
лаборатор. 9лаборатор. 9
лаборатор. 9
cit-cit
 
лаборатор. 8
лаборатор. 8лаборатор. 8
лаборатор. 8
cit-cit
 
лаборатор. 7
лаборатор. 7лаборатор. 7
лаборатор. 7
cit-cit
 
лекція 15 (pdf.io)
лекція 15 (pdf.io)лекція 15 (pdf.io)
лекція 15 (pdf.io)
cit-cit
 
лекція 14 (pdf.io)
лекція 14 (pdf.io)лекція 14 (pdf.io)
лекція 14 (pdf.io)
cit-cit
 
лекція 13 (pdf.io)
лекція 13 (pdf.io)лекція 13 (pdf.io)
лекція 13 (pdf.io)
cit-cit
 

More from cit-cit (20)

лекція 5
лекція 5лекція 5
лекція 5
 
лаборатор. 10
лаборатор. 10лаборатор. 10
лаборатор. 10
 
лекція 19
лекція 19лекція 19
лекція 19
 
лекція 18
лекція 18лекція 18
лекція 18
 
лекція 17
лекція 17лекція 17
лекція 17
 
лекція 16
лекція 16лекція 16
лекція 16
 
лекція 12
лекція 12лекція 12
лекція 12
 
лекція 11
лекція 11лекція 11
лекція 11
 
лекція 10
лекція 10лекція 10
лекція 10
 
лаборатор. 15
лаборатор. 15лаборатор. 15
лаборатор. 15
 
лаборатор. 14
лаборатор. 14лаборатор. 14
лаборатор. 14
 
лаборатор. 13
лаборатор. 13лаборатор. 13
лаборатор. 13
 
лаборатор. 12
лаборатор. 12лаборатор. 12
лаборатор. 12
 
лаборатор. 11
лаборатор. 11лаборатор. 11
лаборатор. 11
 
лаборатор. 9
лаборатор. 9лаборатор. 9
лаборатор. 9
 
лаборатор. 8
лаборатор. 8лаборатор. 8
лаборатор. 8
 
лаборатор. 7
лаборатор. 7лаборатор. 7
лаборатор. 7
 
лекція 15 (pdf.io)
лекція 15 (pdf.io)лекція 15 (pdf.io)
лекція 15 (pdf.io)
 
лекція 14 (pdf.io)
лекція 14 (pdf.io)лекція 14 (pdf.io)
лекція 14 (pdf.io)
 
лекція 13 (pdf.io)
лекція 13 (pdf.io)лекція 13 (pdf.io)
лекція 13 (pdf.io)
 

Lec15 архiтектура та проектування компонентних систем

  • 1. Крос-платформне програмування Лекція 15 Архітектура та проектування компонентних систем. Розподілена архітектура компонентних систем 3 червня, 2015 Примітка: частину слайдів лекції підготовлено за матеріалами курсу А.Н.Свістунова, ННГУ, ВМК, ИТЛаб, ЛМСС
  • 2. • Розподілена архітектура компонентних систем • Компонентно-орієнтоване проектування • Формальні та візуальні методи конструювання компонентів
  • 3. Визначення • Розподілена система - ряд з’єднаних централь- них процесорів (ЦП, CPU), що працюють разом • Розподілена система - ряд машин з нерозділе- ною пам'яттю • Розподілена система - система із просторово розподіленими компонентами, які не викорис- товують ніякої спільної пам'яті й не підлягають децентралізованій адміністрації. Для реалізації спільних цілей можлива кооперація компонентів • Розподілена система - набір незалежних комп'ютерів, що уявляється користувачами єдиною об'єднаною системою [1] – стосовно апаратури: всі машини автономні – стосовно програмного забезпечення: користувачам надається у користування єдина система
  • 4. Визначення (2) • Розподілена система - взаємопов'язаний набір автономних комп'ютерів, процесів або процесорів – Вузли РС - комп'ютери, процеси або процесори – Автономні - обладнані, принаймні, своїм власним блоком керування. Отже паралельний комп'ютер з одним потоком управління і декількома потоками даних (SIMD) не підпадає під визначення РС – Визначення включає програмні системи, побудовані як набір взаємодіючих процесів – Взаємопов'язані - вузли повинні мати можливість обмінюватися інформацією • Розподілена ІС – сукупність програмних компонен- тів, що взаємодіють один з одним. Кожний з таких компонентів може розглядатися як програмний модуль (застосування), що виконується в рамках окремого процесу
  • 5. Фактори розвитку РС • зростання продуктивності комп'ютерів при зменшенні вартості обробки інформації • розповсюдження швидких локальних мереж • зростання швидкості роботи з Internet • розвиток теорії і практики створення програмних засобів розподілених БД та засобів графічного інтерфейсу для них • упровадження еталонної моделі взаємодії відкритих систем OSI для реалізації стеків протоколів реальних систем
  • 6. Приклади розподілених систем • Інтернет – Гетерогенна мережа комп'ютерів та програм – Реалізація взаємодії – IP стек • Intranet – Адмініструється локально – Забезпечує сервісами (внутрішніх і зовніш- ніх користувачів) – Взаємодія з Інтернет • Wireless Information Devices • Обчислювальні кластери © Pearson Education 2001 © Pearson Education 2001
  • 7. 8 Chip (2 processors) 17 watts Compute Card (2 chips, 2x1x1) 4 processors Node Board (32 chips, 4x4x2) 16 Compute Cards 64 processors (64 racks, 64x32x32) 131,072 procsRack (32 Node boards, 8x8x16) 2048 processors 2.8/5.6 GF/s 4 MB (cache) 5.6/11.2 GF/s 1 GB DDR 90/180 GF/s 16 GB DDR 2.9/5.7 TF/s 0.5 TB DDR 180/360 TF/s 32 TB DDR IBM BlueGene/L #1 131,072 Cores Total of 33 systems in the Top500 BG/L 700 MHz 131K proc 64 racks Peak: 367 Tflop/s Linpack: 281 Tflop/s 77% of peak BlueGene/L Compute ASIC Full system total of 131,072 processors The compute node ASICs include all networking and processor functionality. Each compute ASIC includes two 32-bit superscalar PowerPC 440 embedded cores (note that L1 cache coherence is not maintained between these cores). (13K sec about 3.6 hours; n=1.8M) 1.6 MWatts (1600 homes) 43,000 ops/s/person Приклад багаторівневої архітектури
  • 8. Приклади розподілених систем (2) • Системи управління аеропортом • Автомобільні управляючі системи – Сучасний Mercedes S класу має більше 50 автономних вбудованих процесорів, з'єднаних більш ніж однією мережею • Складні мережі підприємств • Мережеві файлові системи • Телефонні системи – Кожен телефон з'єднаний зі своєю АТС, які утворюють міську мережу АТС – До кожної з АТС підключено міжміську АТС, які утворюють національні телефонні мережі • WWW • ... © А.М.Астапкович, ГУАП, СПб, 2012 «Павутина» на міжміському рівні До АТС можуть підклю- чатися різні пристрої
  • 9. Розподілені системи у масштабі суспільства Будівництво та використання сенсорних мереж WSN CS162 ©UCB (Prof. J.Kubiatowicz) MEMS для WSN • Мікропроцесори скрізь • Розгалужена мережева інфраструктура • У мережі поширюється функціональність БД Накопичення інформації Зовнішнє сховище Онлайн-ігри Електронна комерція ... Масштабовані, надійні, безпечні послуги Всюдисущі мобільні системи
  • 10. Мотивація • Обмін інформацією • Поділ ресурсів – Користувачі сумістно використовують дорогі ресурси ЕОМ та дорогі периферійні пристрої • Збільшення надійності завдяки реплікації – Деякі вузли системи можуть вийти з ладу, інші продовжуватимуть функціонувати і зможуть взяти на себе завдання зіпсованих компонентів • Збільшення продуктивності завдяки распаралелю- ванню та балансуванню навантаження – Напр., збільшення загальної пропускної спроможності системи шляхом балансування навантаження її складових • Спрощення розробки завдяки спеціалізації – Система розбивається на модулі, кожен з яких відповідає за частину функціональності і взаємодіє з іншими модулями
  • 11. Централизована (одноланкова) архітектура • Переваги – користувачі сумістно викорис- товують дорогі ресурси ЕОМ та дорогі периферійні пристрої – централізація ресурсів та обладнання полегшує обслуго- вування й експлуатацію обчислювальної системи – відсутня необхідність адмініст- рування робочих місць корис- тувачів • Головний недолік – користувачі повністю залежать від адміністратора хост-ЕОМ IBM System/360
  • 12. Архітектура “файл-сервер” • Функції сервера: зберігання даних і коду програми • Функції клєнта: обробка даних • Переваги – багатокористувацький режим роботи з даними (<5-10 користув.) – зручність централізованого управління доступом – низька вартість та висока швидкість розробки – невисока вартість оновлення та зміни ПЗ • Недоліки – проблеми багатокористувацької роботи з даними (забезпечення їх цілісності, несуперечливоісті) – низька продуктивність та ненадійність системи – погана можливість підключення нових клієнтів (збільшується навантаження на мережу)
  • 13. Архітектура “клієнт-сервер” • Клієнт-сервер – обчислювальна або мережева архітектура, в якій завдання або мережеве наванта- ження розподілені між поста- чальниками послуг (сервісів) - серверами - та замовниками послуг - клієнтами • Як визначити кордони між функціоналом клієнта і сервера? – Тонкий клієнт (thin client) – усі або більша частина завдань з обробки інформації переноситься на сервер – Товстий клієнт (rich client) – забезпечує розширену функціональність незалежно від центрального сервера • Можна виділити рівні користувацького інтерфейсу, обробки та даних – Дволанкова, триланкова, багатоланкова архітектури
  • 14. Переваги та недолки архітектури “клієнт-сервер” • Переваги – можливість розподілити функції обчислювальої системи між декількома незалежними комп'ютерами в мережі – всі дані зберігаються на сервері, який захищений набагато краще більшості клієнтів, простіше забезпечити контроль повноважень, щоб дозвляти доступ до даних тільки клієнтам з відповідними правами доступу – підтримка багатокористувацької роботи – гарантія цілісності даних • Недоліки – непрацездатність сервера може зробити непрацездатною усю обчислювальну мережу – адміністрування системи вимагає кваліфікованого професіонала – висока вартість обладнання – бізнес логіка застосувань залишилася в клієнтському ПЗ
  • 15. Варіанти архітектури клієнт-сервер • Триланкова архітектура - передбачає наявність трьох компонентів: клієнтського застосування (т.з. “тонким клієнт” або термінал), сервера застосувань, до якого підключено клієнтську програму, та сервера БД, з яким працює сервер застосувань • Переваги – Масштабованість, конфігурованість – Висока безпека та надійність – Низькі вимоги до швидкості мережі та продуктивності терміналу • Недоліки – Висока складність створення застосувань, їх розгортання та адміністрування – Високі вимоги до продуктив- ності серверів та мережі, що їх з’єднує
  • 16. Варіанти архітектури клієнт-сервер (2) • Модель сервісу - одну послугу реалізує не один, а декілька серверів • Переваги – Збільшується продуктивність системи та її стійкість до збоїв (зупинка одного з серверів не є критичною) – Дозволяє реалізувати різні стратегії балансування навантаження між серверами системи • Недоліки – Складніша реалізація у порівнянні з базовою архітектурою – Виникають проблеми з реплікацією оброблюваних даних (підтримання на всіх серверах системи актуальною копії даних) та підтримкою цілісності розподілених даних
  • 17. Варіанти архітектури клієнт-сервер (3) • Проксі-сервер - служба (комплекс програм) у комп'ютерних мережах, що дозволяє клієнтам виконувати непрямі запити до інших мережних служб – Часто застосовується при роботі в Інтернет • Переваги – Можливі стратегії балансування навантаження (посередник може вирішувати, на якій з серверів відправити запит) – Економія трафіку за рахунок підтримка кешу останніх запитів – Прискорює роботу – Захист локальної мережі від атак ззовні – Анонімність при підключенні до сайтів
  • 18. Архітектура P2P • Архітектура P2P (Peer to Peer) – мережа рівноправних вузлів – В чистій P2P не існує поняття клієнтів або серверів, лише рівні вузли, які одночасно функціонують як клієнти та сервери по відношенню до інших вузлів мережі – Приклади: MPI, децентралізовані мережі обміну інформа- цією та повідомленнями FidoNet, Usenet, Napster • Переваги – Зберігає працездатність мережі при будь-якій конфігурації її учасників – Дозволяє організовувати дуже витончені політики розподілу навантаження • Недоліки – Проблеми масштабуван- ня, надмірності та відмовостійкості
  • 19. Мобільні агенти • Мобільний агент (Peer to Peer) – програмний модуль, що надсилається клієнту та виконується на ньому – Іноді певні задачі доцільно вирішувати на клієнті, оскільки на ньому вже розташовані усі необхідні дані – Приклад: веб-сторінка, що містить апплет • Переваги – Розвантаження сервера, зниження мережевого трафіку • Недоліки – Складність реалізації механізму передачі та виконання мобіль- них агентів, а також контролю безпеки
  • 20. Проблеми • Поширення застосувань • Гетерогенність • Відкритість • Безпека • Масштабованість • Обробка помилок і відновлення після збоїв • Паралелізм • Прозорість • Керованість
  • 21. Поширення застосувань • Фрагментація – поділ програми на модулі для розповсюдження • Конфігурація – Зв'язок модулів один з одним (залежності) • Розміщення – Вивантаження модулів на цільову систему – Розподіл обчислювальних модулів між вузлами (статичний або динамічний)
  • 22. Гетерогенність • Гетерогенні системи - міститять цілий набір незалежних комп'ютерів, з'єднаних різноманітними мережами • Різні – мережеві інфраструктури – апаратне та програмне забезпечення (напр., Intel&Motorolla, UNIX sockets & Winsock calls) – мови програмування (і подання даних) • Відмінності повинні бути приховані • Інтерфейси і реалізація можуть бути різними – Базові концепції зазвичай незмінні • Необхідні стандарти
  • 23. Гетерогенність. Як приховати відмінності? • Middleware - проміжне ПЗ між платформою і компонентами розподіленого застосування – Дозволяє гетерогенним вузлам взаємодіяти – Визначає однорідну обчислювальну модель – Підтримує одну або декілька мов програмування – Забезпечує підтримку розподілених застосувань » Виклик віддалених об'єктів » Віддалений виклик SQL » Розподілена обробка транзакцій • Приклади: CORBA, Java RMI, Microsoft DCOM
  • 24. Гетерогенність. Як приховати відмінності? (2) • Мобільний код - розроблений для міграції між вузлами – Необхідно долати апаратні відмінності (різні набори інструкцій) • Віртуальні машини – Компілятор створює байт-код для VM – VM реалізована для усіх аппаратних платформ та ОС • Методи грубої сили – Портуємо код під кожну платформу...
  • 25. Відкритість • Відкрита РС (open distributed system) – система, яка пропонує стандартні засоби та служби доступу до системи широкому колу користувачів, що використовують стандартні синтаксис і семантику усіх протоколів взаємодії • Гарантує розширюваність • Можливість повторного використання • Важливі фактори – Наявність чітких специфікацій – Наявність повної документації – Опубліковані інтерфейси – Тестування і перевірка на багатьох платформах
  • 26. Безпека • Три компоненти – Конфіденційність - забезпечення захисту від несанк- ціонованого доступу в систему – Цілісність - забезпечення цілісності і збереження даних – Доступність - забезпечення захисту при паралельному доступі до ресурсів • Завдання: відправка важливої інформації по мережі безпечно і ефективно – Авторизація – Криптографія - ніхто крім отримувача не має прочитати дані • Невирішені проблеми – Атаки типу DoS (відмови в обслуговуванні) – Безпека мобільного коду » Непередбачені ефекти » Може вести себе подібно троянському коню
  • 27. Масштабованість • РС масштабована, якщо вона залишається ефективною при збільшенні кількості користувачів або ресурсів, що обслуговуються • Проблеми – Контроль вартості ресурсів – Контроль втрат продуктивності • Вартість фізичних ресурсів – Зростає, при збільшенні кількості користувачів – Не повинна рости швидше, ніж O(n), де n - кількість користувачів • Втрати продуктивності – Збільшуються з ростом розміру даних (і кількості користувачів) – Час пошуку не повинен рости швидше, ніж O(log n), де n – розмір даних
  • 28. Обробка збоїв • Збої частіші, ніж у централізованих системах, але зазвичай локальні • Обробка збоїв включає – Визначення факту збою (може бути неможливо) - діагностика » Може бути можлива (помилки передачі - контрольна сума) » Може бути неможлива (віддалений сервер не працює або просто дуже завантажений) – Маскування » Багато збоїв можна приховати » Може бути неможливим (усі диски пошкоджені) » Не завжди добре – Відновлення
  • 29. Параллелизм • Контроль паралелізму – Звернення декількох потоків до ресурсу » Правильне планування доступу у паралельних потоках (усунення взаємовиключення, транзакції) – Синхронізація (семафори) » Безпечно, але знижує продуктивність – Спільні ресурси повинні працювати коректно в багатопотоковому середовищі
  • 30. Прозорість (transparency) • Прозорість - приховування гетерогенної і розподіленої структури системи так, щоб користувачеві система здавалася монолітною – Доступу: доступ до локальних і віддалених ресурсів за допомогою однакових викликів – Розташування: доступ до ресурсів незалежно від їх фізичного розташування – Паралелізму: можливість декільком процесам паралельно працювати з ресурсами, не впливаючи один на одного – Реплікації: можливість декількох екземплярів одного ресурсу використовуватися без знання фізичних особливостей реплікації – Обробки помилок: захист програмних компонентів від збоїв, що відбулися в інших програмних компонентах. Відновлення після збоїв – Мобільності: можливість перенесення програми між платформами без її переробки – ...
  • 31. Керованість • Розподілені ресурси не мають центральної точки керування • Локальна оптимізація не завжди означає глобальну оптимізацію – Потрібен глобальний погляд на проблему – Не завжди можливий (є системи, що нікому конкретно не належать)
  • 32. Висновки • Розподілена система – Автономні (але з'єднані середовищем передачі даних) вузли – Взаємодія за допомогою передачі повідомлень • Багато прикладів того, що РС потрібні, і їх потрібно вміти будувати • РС існують і їх потрібно вміти розвивати і підтримувати
  • 33. Наслідки • Паралельність – Незалежні процеси (синхронізація) – Необхідність поділу ресурсів (дані, сервіси, пристрої) – Типові проблеми – дедлоки, ненадійні комунікації (проблема звільнення ресурсів) • Немає “глобального" часу​​ – Асинхронна передача повідомлень – Обмежена точність синхронізації часу • Немає стану системи – Немає жодного процесу у розподіленій системі, який би знав поточний глобальний стан системи – Наслідок паралелізму та механізму передачі даних • Збої
  • 34. Збої • Процеси виконують автономно, ізольовано • Невдачі окремих процесів можуть залишитися невиявленими • Окремі процеси можуть не підозрювати про загальносистемні збої • Збої відбуваються частіше ніж в централізованій системі • З’являються нові причини збоїв (яких не було в монолітних системах) • Мережеві збої ізолюють процеси і фрагментують систему
  • 35. Література • Таненбаум Э., М. ван Стеен. Распределенные системы. Принципы и парадигмы. – СПб: Питер. – 2003 г. – 880 c. • Свистунов А.Н. Построение распределенных систем на Java. - М.: ИНТУИТ-Бином, 2010. - 199 c. - http://www.intuit.ru/studies/courses/633/489/ info

Editor's Notes

  1. Информационные системы окружают нас повсюду, область их применения постоянно расширяется, а сами они становятся все более и более сложными. Некоторые системы вырастают и усложняются настолько, что приобретают глобальный характер, и от их правильного и надежного функционирования начинает зависеть деятельность десятков или даже сотен тысяч людей. В силу своей &amp;quot;глобальности&amp;quot; (нужно обеспечить доступ к системе из территориально разнесенных между собой точек), а также в силу ряда других причин такие системы часто имеют очень сложную архитектуру, предполагающую их функционирование в виде набора компонентов, каждый из которых выполняется на отдельном узле. Поскольку число таких систем постоянно возрастает, требования, предъявляемые к ним, достаточно серьезны, сложность проектирования и разработки таких систем высока, а методы и средства, применяемые при реализации таких проектов, отличны от принятых при разработке &amp;quot;монолитных&amp;quot; систем - существует необходимость в специализированных курсах. Следует отметить, что на распределенные системы и обработку распределенной информации направлено значительное внимание в последние несколько лет, и почти каждый университет предлагает по крайней мере один курс по разработке распределенных алгоритмов. Существует большое число книг о принципах построения распределенных систем, в том числе считающийся классическим учебник [1]. Далее, используя термин &amp;quot;распределенная система&amp;quot;, мы будем подразумевать взаимосвязанный набор автономных компьютеров, процессов или процессоров. Компьютеры, процессы или процессоры будут упоминаться как узлы распределенной системы. Будучи определенными как автономные, узлы должны быть, по крайней мере, оборудованы своим собственным блоком управления. Таким образом, параллельный компьютер с одним потоком управления и несколькими потоками данных (SIMD) не подпадает под определение распределенной системы. Чтобы быть определенными как взаимосвязанные, узлы должны иметь возможность обмениваться информацией. Так как процессы могут играть роль узлов системы, определение включает программные системы, построенные как набор взаимодействующих процессов, даже если они выполняются на одной аппаратной платформе. В большинстве случаев, однако, распределенная система будет, по крайней мере, содержать несколько процессоров, соединенных коммутирующей аппаратурой. Более ограничивающие определения распределенных систем могут быть также найдены в литературе. Tanenbaum [1], например, называет систему распределенной, только если существуют автономные узлы, прозрачные для пользователей системы. Распределенная система в этом смысле ведет себя как виртуальная самостоятельная компьютерная система, но реализация этой прозрачности требует разработки замысловатых алгоритмов распределенного управления.
  2. injecting/receiving packets, making routing decisions, buffers to hold packets
  3. У сьогоднішньму світі усе пов’язане: усі пристрої з’єднані у мережу і дають можливість користуватися великим різномаїттям її служб. Це вже не здається дивним, бо на цьому вже зросло ціле покоління людей. Існує точка зору, що сучасна мережа і є операційною системою. Терміни: Бездротова сенсорна мережа (wireless sensor network, WSN) - розподілена, самоорганізована мережа множини датчиків (сенсорів) і виконавчих пристроїв, об&amp;apos;єднаних між собою за допомогою радіоканалу. Область покриття подібної мережі може становити від декількох метрів до декількох кілометрів за рахунок здатності ретранслювати повідомлення від одного елемента до іншого. Сенсорні мережі можуть бути використані в багатьох прикладних областях: системи оборони й забезпечення безпеки; контроль навколишнього середовища; моніторинг промислового устаткування; охоронні системи; моніторинг стану сільськогосподарських угідь; керування енергопостачанням; контроль систем вентиляції, кондиціювання й освітлення; пожежна сигналізація; складський облік; спостереження за транспортуванням вантажів; Реальний приклад використання WSN - бездротова система моніторингу стану будівельних конструкцій, розроблена російською компанією methlogic в 2010 році. Система забезпечує збір, реєстрацію й відображення показань від безлічі датчиків, установлених на різних елементах конструкцій для контролю їх напружено-деформованого стану й структурної цілісності. Bio-MEMS (biomedical (or biological) microelectromechanical systems) — абревіатура від біомедичні (або біологічні) мікроелектромеханічні системи.
  4. Клиент-сервер Архитектура &amp;quot;клиент-сервер&amp;quot; в настоящее время наиболее распространенная архитектура, в которой выполнено, пожалуй, большинство работающих информационных систем. Существует даже мнение, что почти все остальные архитектуры могут быть представлены как большая или меньшая вариация этой, базовой. В традиционном понимании система, выполненная в архитектуре &amp;quot;клиент-сервер&amp;quot;, представляет собой совокупность взаимодействующих компонент двух типов - клиентов и серверов. Обычным также является разнесение этих компонент по узлам двух типов - соответственно узлам-клиентам и узлам-серверам. Клиенты обращаются к серверам с запросами, серверы их обрабатывают и возвращают результат. Клиент, вообще говоря, может обращаться с запросами к нескольким серверам. Серверы также могут обращаться с запросами друг к другу. Таким образом, типичный протокол для одного факта взаимодействия может быть представлен в виде двух обменов - запрос на сервер и ответ сервера. Наиболее часто встречающийся класс приложений, выполненных в архитектуре &amp;quot;клиент-сервер&amp;quot;, - различные приложения, работающие с базами данных. В таком случае в качестве сервера выступает СУБД, обеспечивающая выполнение запросов клиента, который, в свою очередь, реализует интерфейс пользователя. Рассмотренные далее модели систем, по сути, являются вариациями архитектуры &amp;quot;клиент-сервер&amp;quot;.
  5. http://www.4stud.info/networking/lecture5.html
  6. http://citforum.ru/internet/webservers/proxy_faq/#1 http://forum.tvercity.ru/index.php?/blog/111/entry-133897-%D1%82%D0%B5%D1%85%D0%BD%D0%BE%D0%BB%D0%BE%D0%B3%D0%B8%D1%8F-%D0%BF%D1%80%D0%BE%D0%BA%D1%81%D0%B8/
  7. Існують природні обмеження Деякі визначаються легко, інші важче Обхід вузьких місць Децентралізація алгоритмів Приклад - Domain Name Service Тиражування і кешування даних
  8. Прозорість продуктивності: можливість конфігурації системи з метою збільшення продуктивності при зміні складу платформи виконання Прозорість масштабованості : можливість збільшення продуктивності без зміни структури програмної системи і використовуваних алгоритмів