- •Тема 1. Розподілені системи та ресурси
- •Розвиток розподілених систем.
- •Характеристики розподілених систем.
- •Приклади розподілених систем.
- •Розвиток розподілених систем.
- •Характеристики розподілених систем.
- •Приклади розподілених систем
- •Вимоги до розподіленого пз.
- •Шаблони рішень для розподіленого пз.
- •Особливості реалізації пз для розподілених систем
- •Тема 2. Розподілене пз.
- •Особливості реалізації пз для розподілених систем
- •Вимоги до розподіленого пз.
- •Шаблони рішень для розподіленого пз.
- •Тема 3. Типові архітектури розподіленого пз.
- •Архітектура Клієнт-сервер.
- •Моделі-варіації архітектури "клієнт-сервер".
- •Архітектура p2p (Peer to Peer)
- •Архітектура Клієнт-сервер
- •Моделі-варіації архітектури "клієнт-сервер".
- •Архітектура p2p (Peer to Peer)
- •Тема 4. Api java.Net
- •Основні характеристики взаємодії розподілених додатків.
- •Протокол передачі датаграм udp
- •Використання протоколу tcp
- •Практиктичне застосування api java.Net
- •Тема 5. Технологія Java rmi
- •Визначення реалізації вилученого об'єкта для віддаленого інтерфейсу.
- •Компіляція і виконання віддаленого об'єкта та клієнта.
- •Створення розподіленої системи за допомогою rmi
- •Визначення віддаленого інтерфейсу.
- •Реалізація віддаленого інтерфейсу.
- •Визначення клієнтського додатку.
- •Компіляція та виконання сервера і клієнта.
- •Використання технології rmi для обміну об’єктами.
Архітектура p2p (Peer to Peer)
Іншою архітектурою, що зустрічається, в основному, в спеціальних областях, являється архітектура P2P (мал. 3.6). Додаток, виконаний в такій архітектурі, не має чіткого розподілу на серверні і клієнтські модулі – усі його частини рівноправні і можуть виконуватися на будь-яких вузлах.
Мал. 3.6. Архітектура P2P
Таким чином, на одному і тому ж вузлі воднораз виконуються частини системи, оброблювальні запити інших частин (вузол виконує "серверну" частину), а в інший момент часу – частини системи, що посилають запити (вузол виконує "клієнтську" частину). Причому додаток може бути влаштований так, що частина не знає, локально або віддалено розташована та, що викликається. Побудовані таким чином застосування мають унікальні властивості – їх частини ніяк не прив'язані один до одного і до вузлів, на яких вони виконуються. Таким чином, від запуску до запуску може мінятися склад модулів, розташованих на вузлі. Це дозволяє організовувати дуже витончені політики розподілу навантаження, а також забезпечувати дуже хороші показники масштабованості і відмовостійкості.
Така архітектура активно використовується для розробки паралельних обчислювальних систем для вирішення складних обчислювальних завдань. Наприклад, базова техніка при програмуванні із застосуванням технології MPI полягає в тому, що на декількох вузлах запускається одна і та ж програма, яка, проте, поводиться інакше (спрацьовують різні гілки умовних переходів), залежно від порядкового номера машини, на якій вона запущена. Сукупність цих процесів є розподіленою системою, що вирішує поставлену задачу.
Тема 4. Api java.Net
Основні характеристики взаємодії розподілених додатків.
Протокол передачі датаграм UDP
Використання протоколу TCP
Практиктичне застосування API java.net
Отже, ми збираємося написати наш перший розподілений додаток. Спосіб, за допомогою якого ми збираємося це зробити - найпростіший. Раз нам потрібно передавати дані між компонентами нашого додатка по мережі, отже, цьому треба навчитися. Перший спосіб, який ми використовуємо для вирішення завдання, буде грунтуватися на вхідному в склад пакету API java.net. Цей пакет надає можливість для реалізації мережевої взаємодії із застосуванням одного з двох транспортних протоколів: UDP і TCP.
Основні характеристики взаємодії розподілених додатків.
Архітектура протоколів TCP/IP, відома як набір протоколів TCP/IP, виникла в результаті досліджень в області протоколів і розробок, що виконувалася в експериментальній мережі з комутацією пакетів під назвою ARPANET, яка була заснована Управлінням перспективних дослідницьких програм Міністерства оборони США (DARPA). Цей набір протоколів складається з великого зібрання протоколів, виданих Координаційною радою з мережі Internet (IAB) в якості стандартів для Internet.
Загалом можна сказати, що в обміні інформацією завжди беруть участь три агенти: додатки, вузли (комп'ютери) та мережі. До додаткам відносяться програми, призначені, наприклад, для передачі файлів або електронної пошти. Додатки, про які йде мова, є розподіленими додатками, що включають в себе обмін даними між двома і більше комп'ютерними системами. Комп'ютери з'єднані між собою в мережі, і призначені для обміну дані передаються по мережі від одного комп'ютера до іншого. Таким чином, передача даних від одного додатка іншому (або від одного компонента іншому в рамках одного розподіленого додатку) включає в себе, по-перше, отримання даних тим вузлом, на якому знаходиться додаток-адресат, і, по-друге, отримання даних саме тим виконуваним на вузлі-адресаті додатком, якому вони призначені (одночасно на вузлі можуть виконуватися кілька додатків).
Зважаючи на це в задачі обміну інформацією виділяють п'ять основних відносно незалежних рівнів:
фізичний рівень;
рівень доступу до мережі (мережевий);
міжмережевий рівень;
транспортний рівень;
рівень додатків.
На фізичному рівні знаходиться фізичний інтерфейс між пристроєм передачі даних і передавальним середовищем. На цьому рівні задаються характеристики передавального середовища, природа сигналів, швидкість передачі даних і т.д.
Рівень доступу до мережі пов'язаний з обміном даними між кінцевою системою (робочою станцією, сервером і т.д.) і мережею, до якої приєднана ця система. Вузол-відправник повинен передати в мережу, адресу вузла-адресата, щоб мережа могла направити дані по місцю вимоги.
Рівень доступу до мережі розглядається у зв'язку з доступом до мережі та маршрутизацією даних між двома підключеними до мережі кінцевими системами. У тих випадках, коли пристрої підключені до різних мереж, потрібні додаткові процедури, що дозволяють даними переходити з однієї мережі в іншу. Такі функції відносяться до міжмережевого рівня. На цьому рівні функції міжмережевої маршрутизації надаються за допомогою Internet-протоколу (IP). Internet-протокол може бути реалізований не тільки в кінцевих системах, але і в маршрутизаторах.
Незалежно від природи додатків обмін даними повинен бути надійним, тобто хотілося б мати впевненість у тому, що всі дані потрапили до додатка-адресата і що ці дані отримані в тому порядку, в якому вони були відправлені. Механізми забезпечення надійності, по суті, незалежні від природи додатків, таким чином, має сенс виділити такі механізми в один загальний рівень, спільно використовуваний усіма додатками. Цей рівень називається транспортним. Найчастіше для нього застосовується протокол управління передачею (Transmission Control Protocol - TCP).
Нарешті, в рівень додатків закладена логіка, необхідна для забезпечення роботи різних користувальницьких додатків. Додатку кожного виду потрібен окремий модуль, спеціально призначений для цього додатка. Саме розробкою рівня програми ми надалі і займемося.
Отже, щоб обмін інформацією був можливий, кожний елемент системи повинен мати унікальну адресу. Фактично, потрібно вказати два рівні адресації. Кожен вузол мережі повинен володіти своїм унікальним глобальним мережевим адресом, це дозволить доставити дані відповідного вузла. Кожен процес (компонент) на вузлі повинен мати адрес, який був би унікальним в межах цього вузла, що дасть можливість транспортному протоколу (TCP) доставити дані потрібного процесу. Цю адресу - адресу процесу - в термінології протоколів сімейства TCP / IP називають портом.
Для більшості додатків, що виконуються в рамках архітектури протоколу TCP/IP, протоколом транспортного рівня виступає TCP. Цей протокол забезпечує надійне з'єднання для передачі даних від одного додатка до іншого. Крім нього існує ще один широко використовуваний протокол транспортного рівня, що входить в набір протоколів TCP / IP: користувальницький протокол датаграм (User Datagram Protocol - UDP). Протокол UDP надає сервіс без встановлення з'єднання, призначений для процедур на рівні додатку; він не гарантує доставку, збереження послідовності при прийомі переданих пакетів або захист від їх дублювання. Він дозволяє процесу відправляти повідомлення іншим процесам, з допомогою мінімального протокольного механізму. Протокол UDP виконує вкрай обмежений набір функцій, так як працює без встановлення з'єднання. По суті, він додає до протоколу IP деякі можливості адресації портів.
Розглянемо коротко можливості, які надає нам java і її пакет java.net.
