- Розподіл даних
- Характеристика розподілених систем
- Сумісність
- Відмовостійкість
- Посереднє програмне забезпечення та API
- Архітектура
- Архітектура клієнт-сервер
- Первинна архітектура
- Багаторівневі архітектури
- Архітектура групи процесорів
- Типи розподілених систем
- Кластерні обчислення
- Мережеві обчислення
- Хмарні обчислення
- цілі
- Поділіться ресурсами
- Абстракція
- Відкриття
- Взаємодія та мобільність
- Масштабованість
- Програми
- Віртуальна машина Erlang
- Bittorrent
- Перевага
- Недоліки
- Приклади розподілених систем
- StackPath
- Інтернет
- Список літератури
У розподілених системах є частинами програмного забезпечення , що використовуються для координації дій кількох комп'ютерів. Ця координація досягається за допомогою обміну повідомленнями, тобто з фрагментами даних, які передають інформацію.
Для розподілених систем потрібні паралельні компоненти, мережа зв'язку та механізм синхронізації. Вони дозволяють обмінюватися ресурсами, включаючи програмне забезпечення, системами, підключеними до мережі. Тому система базується на мережі, яка з'єднує комп’ютери та обробляє маршрутизацію повідомлень.
a і b (розподілені системи). б (паралельна система). Miym / CC BY-SA (https://creativecommons.org/licenses/by-sa/3.0)
Розподілене обчислення - це область обчислень, яка відповідає за аналіз розподілених систем. Комп'ютерна програма, яка працює в розподіленій системі, називається розподіленою програмою.
У контексті, де може бути сотні чи тисячі комп'ютерів, що є загальною часткою у великих Інтернет-компаніях, дуже часто трапляються збої в компонентах, будь то апаратне забезпечення, мережа, диски тощо, і система повинна бути готові зіткнутися з ними в усі часи.
Розподіл даних
Поширення є ключовим для того, щоб працювати з дуже великими конгломератами даних. Необхідно досягти масштабованості, що є засобом для підтримки стабільної продуктивності, коли пули даних зростають, додаючи в систему нові ресурси.
З іншого боку, дистрибуція представляє низку технічних проблем, які роблять важливими для проектування та впровадження розподілених обчислень та сховища. Один момент, який слід врахувати, - це ризик можливих збоїв.
Характеристика розподілених систем
a і b (розподілені системи). б (паралельна система). Miym / CC BY-SA (https://creativecommons.org/licenses/by-sa/3.0)
Сумісність
Пристрої можуть працювати з різними операційними системами. Це не заважає їм завжди пропонувати однакові послуги користувачам. З цієї причини всі підключені пристрої сумісні між собою.
Іншим принциповим питанням є дизайн програмного забезпечення, оскільки воно також сумісне з усіма системами та користувачами, які є на кожному комп’ютері.
Відмовостійкість
Будучи єдиною мережею з багатьма комп'ютерами, якщо будь-який з її компонентів вийшов з ладу, інші можуть продовжувати повноцінно виконувати свою функцію, швидко уникаючи помилок.
З цієї причини розподілені системи, як правило, надають велику впевненість при роботі з ними, оскільки досить рідко система виходить з ладу повністю, оскільки завдання знаходяться не на одному пристрої, а на різних комп'ютерах.
Посереднє програмне забезпечення та API
Різні процесори використовують проміжне програмне забезпечення для розподілу, допомагаючи ділитися різними ресурсами та можливостями, щоб забезпечити користувачам цілісну та інтегровану мережу. Він також надає додаткам ряд сервісів, таких як безпека та відновлення аварій.
Сьогодні ви чуєте більше про інтерфейси прикладного програмування (API), які функціонують як шлюз, де програми можуть спілкуватися. Про додатки не потрібно нічого знати про інші програми, крім їх API.
Архітектура
Архітектура клієнт-сервер
Конкретний комп'ютер, який називається сервером, може виконувати певні завдання, які називаються послугами. Наприклад, обслуговування файлів по мережі, можливість виконання певних команд або перенаправлення даних на принтер. Клієнт - це комп’ютер, який запитує послуги.
Комп'ютер, відомий насамперед службою, яку він надає, може називатися сервером друку, файловим сервером тощо.
Первинна архітектура
Передбачається, що кожен комп'ютер має подібні можливості та що жодна машина не присвячена обслуговуванню інших. Прикладом цього є набір мікрокомп'ютерів у невеликому офісі.
Мережа дозволяє людям отримувати доступ до файлів один одного та надсилати електронні листи, але жоден комп’ютер не надає певного набору послуг.
Багаторівневі архітектури
Для певних служб може мати сенс мати ієрархічну зв’язок. Наприклад:
- Сервер під час виконання своїх завдань може зв’язатися з іншим сервером іншого типу
- Архітектура клієнт-сервер - це дворівнева архітектура.
Архітектура групи процесорів
Операційна система може автоматично запускати процеси на непрацюючих комп'ютерах і навіть мігрувати процеси в системи з більшою кількістю доступних циклів процесора. В інших випадках користувач може вручну запускати або переміщувати процеси в доступних системах.
Типи розподілених систем
Кластерні обчислення
Це сукупність подібних комп'ютерів, підключених через швидкісну локальну мережу. Він часто використовується для паралельного програмування, де одна обчислювально-інтенсивна програма паралельно працює на декількох комп'ютерах.
Кожен кластер складається з набору обчислювальних вузлів, які контролюються та керуються одним або декількома вузлами, які називаються майстрами.
Мережеві обчислення
Він складається з вузлів із помітними відмінностями апаратної та мережевої технології. Сучасна тенденція наявності конкретної конфігурації вузлів для певних завдань призвела до більшої різноманітності, що є найбільш поширеним у мережевих обчисленнях.
Хмарні обчислення
Це набір віртуалізованих ресурсів, розміщених у центрі обробки даних хмарного провайдера. Клієнти можуть створити віртуалізовану інфраструктуру, щоб скористатися різноманітними хмарними послугами.
Користувачеві здається, що він орендує власний ексклюзивний комп’ютер. Однак насправді ймовірно, що ви ділитесь ним з іншими клієнтами. Це ж стосується і віртуальної пам’яті.
Ці віртуалізовані ресурси можна динамічно налаштовувати, таким чином дозволяючи масштабувати. Якщо потрібно більше обчислювальних ресурсів, система може придбати більше.
цілі
Поділіться ресурсами
Будь то сховища, файли даних, сервіси або мережі, можливо, ви захочете поділитися цими ресурсами між додатками з метою економії.
Набагато дешевше мати спільне сховище між кількома програмами, ніж купувати та підтримувати сховище для кожного окремо.
Абстракція
Щоб приховати, що процеси та ресурси розподіляються в декількох комп'ютерах, можливо, географічно розподілених. Тобто процеси та ресурси абстрагуються від користувача.
Відкриття
Це в основному вказує на те, що розподілена система побудована з елементами, які легко інтегруються з іншими системами. Дотримуючись стандартизованих правил, будь-який процес із цим інтерфейсом може спілкуватися з іншим процесом з тим же інтерфейсом.
Взаємодія та мобільність
Це стосується того, коли дві системи різних виробників можуть працювати разом. Переносимість визначає ступінь, в якому програма, зроблена для системи A, може функціонувати в системі B без змін.
Масштабованість
Це необхідно, коли спостерігається збільшення користувачів, яким потрібно більше ресурсів. Хороший приклад - збільшення аудиторії Netflix щовечора в п'ятницю.
Це означає, що динамічно додавати більше ресурсів, наприклад, збільшувати пропускну спроможність мережі, дозволяючи більше передавати відео та зменшувати його після нормалізації споживання.
Програми
Віртуальна машина Erlang
Програмний пакет LYME заснований на Erlang і пропонує альтернативу LAMP. Шмуел Чаба Отто Траян / CC BY-SA (https://creativecommons.org/licenses/by-sa/3.0)
Ерланг - це функціональна мова, яка має велику семантику для одночасності, розподілу та відмовостійкості. Віртуальна машина Erlang управляє розподілом програми Erlang.
Ця модель працює, маючи безліч ізольованих процесів, все з можливістю спілкуватися один з одним за допомогою вбудованої системи обміну повідомленнями.
Віртуальна машина Erlang може підключатися до інших віртуальних машин, які знаходяться в різних місцях. Цей ройд віртуальних машин запускає одну програму, обробляючи збої однієї машини, плануючи її для роботи на іншому вузлі.
Bittorrent
Операція мережі BitTorrent. Mrjavi / CC BY-SA (https://creativecommons.org/licenses/by-sa/4.0)
Це один з найбільш широко використовуваних протоколів для передачі великих файлів в Інтернеті. Основна ідея - полегшити передачу файлів між різними одноранками в мережі без необхідності пройти через основний сервер.
Використовуючи клієнт BitTorrent, ви можете підключитися до декількох комп'ютерів по всьому світу, щоб завантажити файл. Комп’ютер, який виступає координатором, допомагає показати вузли в мережі, які мають потрібний файл.
BitTorrent дозволяє добровільно розміщувати файли та завантажувати їх для інших користувачів, які їх хочуть. Він настільки популярний, оскільки першим у своєму роді запропонував стимули для участі в мережі.
Перевага
- Більше вузлів легко можна додати до розподіленої системи, тобто її можна масштабувати за потребою.
- Всі вузли в розподіленій системі підключені один до одного. Тому кожен з вузлів може легко обмінюватися даними з іншими вузлами.
- Ресурси, такі як принтери, можна спільно використовувати декількома вузлами, а не обмежуватися лише одним.
- Відмова одного вузла не призводить до виходу з ладу всієї розподіленої системи. Інші вузли все ще можуть спілкуватися один з одним.
Недоліки
- Деякі повідомлення та дані можуть втрачатися в мережі при переході від одного вузла до іншого.
- Важко забезпечити належну безпеку в розподілених системах, тому що і вузли, і з'єднання повинні бути захищені.
- Перевантаження мережі може статися, якщо всі вузли в розподіленій системі намагаються надсилати дані одночасно.
- База даних, підключена до розподілених систем, є досить складною і важкою для управління в порівнянні з єдиною системою користувача.
Приклади розподілених систем
Розподілені системи можуть використовуватися у великій кількості випадків, таких як системи електронного банкінгу, масово багатокористувацькі онлайн-ігри та сенсорні мережі.
StackPath
Він використовує особливо велику розподілену систему для живлення своєї мережі доставки вмісту. Кожна його точка присутності (PoP) має вузли, утворюючи всесвітню розподілену систему.
StackPath зберігає останній і часто запитуваний вміст у місцях, найближчих до використовуваного сайту.
Завдяки взаємозв'язку віртуальних комп’ютерів, окрім того, що скористається швидкістю та спритністю сучасних обчислень, система може дуже швидко обробляти тисячі одночасних запитів.
Інтернет
Це найбільша розподілена система у світі. Будь-який користувач відчуває себе єдиною системою, хоча її складають мільйони комп'ютерів.
Через поняття абстракції ви не маєте поняття, де зберігаються дані, скільки серверів задіяно чи як інформація потрапляє до браузера. Браузер розчиняє складність Інтернету.
Це стосується також таких програм, як електронна пошта Gmail або будь-який інший додаток, який можна використовувати. Кожна людина щодня взаємодіє з розподіленими програмами.
Список літератури
- Пол Кшизановський (2018). Розподілені системи. Взято з: cs.rutgers.edu.
- Катерина Паганіні (2019). Буквар: розподілені системи та хмарні обчислювальні технології. Новий стек. Взято з: thenewstack.io.
- Міжнародний університет Валенсії (2020). Розподілені системи, характеристики та класифікація. Взято з: universidadviu.com.
- Девід Меадор (2018). Розподілені системи. Підручник Точка. Взято з: tutorialspoint.com.
- Роберт Гібб (2019). Що таке розподілена система? Взято з: blog.stackpath.com.
- Станіслав Козловський (2018). Ретельний вступ до розподілених систем. Безкоштовний табір коду. Взято з: freecodecamp.org.