
- •Л.С. Глоба
- •Розподілені системи
- •Історична довідка
- •Базові терміни та визначення
- •Комп'ютерні мережі, як частковий випадок розподілених систем
- •Модель клієнт-сервер.
- •Особливості розподілених систем
- •Переваги розподілених систем
- •Недоліки розподілених систем
- •Класифікація розподілених систем
- •Характеристики розподілених систем
- •Висновки
- •Питання для самоконтролю
- •Поняття розподіленого середовища
- •Концепції апаратних рішень
- •Архітектура багатопроцесорних систем
- •Системи із спільною пам'яттю
- •Системи з роздільною пам'яттю
- •Представники систем з роздільною пам'яттю
- •Топології багатопроцесорних систем
- •Концепції програмних рішень
- •Таблиця 2.1. Короткий опис розподілених і мережних операційних систем, а також засобів проміжного рівня
- •Операційні системи й розподіленість
- •Проміжне середовище
- •Поняття розподіленого середовища
- •Розподіл прикладних програм по рівнях
- •Варіанти архітектури клієнт-сервер
- •Де ік – інтерфейс користувача, лп – логіка прикладних програм, дд – доступ до даних, бд – база даних
- •Де ік – інтерфейс користувача, лп – логіка прикладних програм, дд – доступ до даних, бд – база даних
- •Програмні компоненти розподілених систем
- •Основи мережної взаємодії
- •Де ік – інтерфейс користувача, лп – логіка прикладних програм, дд – доступ до даних, бд – база даних
- •Взаємодія компонент розподіленої системи
- •Концепції взаємодії компонент розподіленої системи
- •Обмін повідомленнями
- •Віддалений виклик процедур
- •Використання віддалених об'єктів
- •Розподілені події
- •Розподілені транзакції
- •Безпека в розподілених системах
- •Опис інтерфейсу програмної компоненти
- •Мова xml і схеми xml
- •Soap: мова повідомлень розподіленої системи
- •Wsdl: опис інтерфейсу програмної компоненти
- •Серіалізація об'єктів
- •Базові технології представлення інформації в розподілених системах
- •Вимоги до прикладних програм серверної сторони
- •Огляд базових технологій
- •Таблиця 2.1 Основні оціночні характеристики платформ
- •Технологія ria
- •Таблиця 2.2 Порівняння даних профілізації традиційної веб-прикладної програма і ria
- •Таблиця 2.4 Порівняння технологій створення ria -прикладних програм
- •Дескриптор розгортання web-прикладних програм та компонент
- •Висновки
- •Питання для самоконтролю
- •Зв'язок
- •Рівні протоколів
- •Низькорівневі протоколи
- •Транспортні протоколи
- •Протоколи верхнього рівня
- •Віддалений виклик процедур
- •Звертання до віддалених об'єктів
- •Розподілені об'єкти
- •Прив'язка клієнта до об'єкта
- •Статичне й динамічне віддалене звернення до методів
- •Invoke(fobject, id(append). Int).
- •Передача параметрів
- •Зв’язок на основі потоків даних
- •Підтримка безперервних середовищ
- •Потоки даних й якість обслуговування
- •Таблиця 3.1 Характеристики технологій якості обслуговування
- •Синхронізація потоків даних
- •Протоколи проміжного рівня
- •Протокол soap
- •Родина протоколів xmpp
- •Протокол umsp
- •Висновки
- •Питання для самоконтролю
- •Процеси
- •Поняття процесу. Визначення та структура
- •Потоки виконання. Визначення та структура
- •Стан процесів та потоків виконання
- •Реалізація потоків виконання
- •Потоки виконання в нерозподілених системах
- •Потоки виконання в розподілених системах
- •Багатопотокові клієнти
- •Багатопотокові сервери
- •Таблиця 4.1 Три способи побудови сервера
- •Клієнти
- •Інтерфейси користувача
- •Клієнтське програмне забезпечення, яке забезпечує прозорість розподілу
- •Сервери
- •Загальні питання розробки серверів прикладного програмного забезпечення
- •Сервери об'єктів
- •Перенесення коду
- •Підходи до перенесення коду
- •Моделі перенесення коду
- •Перенесення і локальні ресурси
- •Перенесення коду в гетерогенних системах
- •Огляд перенесення коду в d'Agent
- •Питання реалізації
- •Програмні агенти
- •Програмні агенти в розподілених системах
- •Таблиця 4.2 Деякі важливі властивості агентів
- •Технологія агентів
- •Мови взаємодії агентів
- •Висновки
- •Питання для самоконтролю
- •Іменування
- •Іменовані сутності
- •Імена, ідентифікатори й адреси
- •Простір імен
- •Реалізація просторів імен
- •Покращене керування даними.
- •Допомагає організувати потоковий процес роботи.
- •Єдиний репозиторій і пошукової механізм для прикладного програмного забезпезпечення і сервісів.
- •Розміщення мобільних сутностей
- •Іменування й локалізація сутностей
- •Прості рішення
- •Підходи на основі базової точки
- •Ієрархічні підходи
- •Видалення сутностей, на які немає посилань
- •Проблема об'єктів, на які немає посилань
- •Підрахунок посилань
- •Організація списку посилань
- •Ідентифікація сутностей, на які немає посилань
- •Висновки
- •Фізичні годинники
- •Алгоритми синхронізації часу
- •Використання синхронізованих годин
- •Логічні годинники
- •Оцінка часу Лампорта (відмітки часу)
- •Векторна оцінка часу
- •Глобальний стан
- •Між записом свого стану й одержанням маркера процесQне приймав повідомлень по жодному зі своїх вхідних каналів.
- •Алгоритми голосування
- •Алгоритм «забіяки»
- •Кільцевий алгоритм
- •Взаємне виключення
- •Централізований алгоритм
- •Розподілений алгоритм
- •Алгоритм маркерного кільця
- •Порівняння трьох алгоритмів
- •Розподілені транзакції
- •Модель транзакцій
- •Таблиця 6.1 Деякі примітиви, використовувані в транзакціях
- •Класифікація транзакцій
- •Рівні ізольованості транзакцій
- •Таблиця 6.2 Рівні ізольованості та проблеми, які вони допускають
- •Реалізація розподілених транзакцій
- •Керування паралельним виконанням транзакцій
- •Компоненти розподілених транзакцій
- •Висновки
- •Список літератури
Протоколи проміжного рівня
Протокол soap
Протокол SOAP є протоколом проміжного рівня по моделі OSI, тобто він визначає формат повідомлень, які пересилаються за допомогою деякого транспортного протоколу, у якості якого звичайно використаються HTTP, HTTPS, TCP, іноді SMTP.
Формат повідомлень SOAP заснований на XML. SOAP-повідомлення складається з наступних частин:
конверт (envelope)– містить повідомлення цілком;
заголовок (header)– містить значення деяких додаткових атрибутів повідомлення, використовуваних при його обробці або переадресації. Заголовок може бути відсутнім та використовується зазвичай для передачі інформації про координацію декількох повідомлень, ідентифікацію сеансів і передачі різного роду сертифікатів для захисту інформації;
тіло (body)– основний вміст повідомлення, повинне відноситися до одного з типів повідомлень, якими можна обмінюватися з даною службою відповідно до опису її інтерфейсу. Повинне бути в будь-якому повідомленні.
Простий приклад SOAP-повідомлення наведено нижче.
<SOAP-ENV: Envelope
xmlns: SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<SOAP-ENV: Header>
<t: Transaction
xmlns: t="http: //company.com/soap-headers/attrs "
SOAP-ENV:mustUnderstand="1">
</t: Transaction>
</SOAP-ENV: Header>
<SOAP-ENV: Body>
<m: GetLastTradePrice xmlns: m="http://company.com/web-services/trading">
<symbol> DEF</symbol>
</m: GetLastTradePrice>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
Крім визначення формату повідомлень, протокол SOAP визначає процес їхньої обробки різними посередниками й одержувачами.
Родина протоколів xmpp
Родина протоколів XMPP прийнята як стандарт RFC. Стандартний порт для XMPP – 5222 .Також використовують порт 80 та/або 443, якщо виникають проблеми при роботи з фареволом.
Переваги:
децентралізація.Архітектура мережі XMPP схожа з електронною поштою, бо хто завгодно може запустити власний XMPP-сервер і не використовувати центральний сервер;
відкритий стандарт.Internet Engineering Task Forceформалізував XMPP як стандарт моментального обміну повідомленнями й технології присутності за назвою XMPP; специфікації XMPP були опубліковані якRFC 3920іRFC 3921. Розробка даних специфікацій не прив'язана до будь-якого розробника. Існує багато реалізацій серверів і клієнтів, а також бібліотек з відкритим вихідним кодом;
історія.Технології XMPP виникла в 1998 року. За підтримкою таких великих компаній, якSun Microsystemsі Google, створена велика кількість доповнень до стандартів XMPP для клієнтів, серверів, компонентів і бібліотек кодів;
безпека. XMPP сервери можуть бути ізольовані від публічних мереж XMPP (наприклад, у внутрішньої мережі компанії) і добре захищені (завдяки використаннюSASLіTLS) вбудованими в ядро XMPP специфікаціями. Для підтримки використання шифрування каналу XMPP Standards Foundation також використовуютьcertification authorityв xmpp.net, забезпечуючи цифрові сертифікати для адміністраторів XMPP серверів при використанні StartCom Certification Authority. Багато реалізацій серверів використовуютьSSLпри обміні між клієнтом і сервером, і чимало клієнтів підтримують шифрування за допомогоюPGP/GPGусередині протоколу;
гнучкість. Використовується функціональність, яка будується поверх XMPP; для підтримки взаємодії різних мереж стандартні надбудови підтримують XMPP Software Foundation.
Недоліки:
надлишковість переданої інформації. Більше 70 % міжмережевого трафіку XMPP відносяться до повідомлення з службовою інформацією, близько 60 % яких є зайвими. XMPP на даний момент створює надлишковий трафік при доставці «статус-повідомлень» декільком користувачам. Для рішення цієї проблеми розробляються нові протоколи. Також рішенням є розширенняXEP-0138–компресія переданих даних протоколу алгоритмамиlzwйzlib, а також використання компресії в рамках шифрування з'єднання TLSRFC 3749;
масштабованість. XMPP зараз страждає від фактично тієї ж проблеми надмірності, але відносно до чат-кімнат і можливостей публікації інформації. Рішення цих проблем також очікується у виглядіXEP-розширень;
неефективність передачі бінарних даних. Оскільки XMPP є одним XML-документом, неможливо передавати не модифіковану двійкову інформацію. У результаті цього, для передачі файлів намагаються використати додаткові протоколи, наприклад,HTTP. Для передачі ж файлів й іншої бінарної інформації безпосередньо в XMPP потоці використається кодуванняbase64.
Адресація
Кожен користувач у мережі Jabber має унікальний ідентифікатор – Jabber ID (скорочено JID). Адреса JID, що подібна адресі електронної пошти, містить ім'я користувача й доменне ім’я сервера, на якому зареєстрований користувач, розділені знаком @.
Приклад.
Користувач user, що зареєстрована на сервері example.com, буде мати адреса: user@example.com.
Користувач може мати одночасно кілька підключень, для розрізнення яких використовуються додаткові значення JID, які називаються ресурсом і додаються через знак «/» у кінець адреси.
Приклад.
Нехай повна адреса користувача буде user@example.com/work, тоді повідомлення, послані на адресу user@example.com, дійдуть на зазначену адресу вне залежності від імені ресурсу, але повідомлення для user@example.com/work дійдуть на зазначену адресу тільки при відповідності підключеному ресурсу.
Адреси JID можуть також використовуватися без явного визначення імені користувача (із визначенням імені ресурсу або без такого) для системних повідомлень і для контролю спеціальних можливостей на сервері.
З'єднання з іншими протоколамиhttp://ru.wikipedia.org/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:Wie_ein_Jabber-Transport_funktioniert.svg
Корисною особливістю XMPP систем є транспорти, або шлюзи, які дозволяють користувачам одержувати доступ до мережі, що будується на основі інших протоколів. Це можуть бути інші протоколи миттєвого обміну повідомленнями або такі протоколи, як SMS і електронна пошта.
На відміну від мультипротокольних клієнтів, XMPP надає доступ на рівні сервера за допомогою комунікації через спеціальні сервіси-шлюзи, що виконуються на віддаленому комп'ютері.
Будь-який користувач може «зареєструватися» на одному із цих шлюзів, надавши інформацію, яка необхідна для входу в мережу, і може спілкуватися з користувачами мережі так, ніби вони були користувачами мережі Jabber. Це значить, що будь-який клієнт, що підтримує XMPP, може бути використаний для доступу до будь-якої мережі, для якої існують шлюзи, без будь-якого додаткового коду та без необхідності клієнтові мати прямий доступ до Інтернету.
Реалізація шлюзів залежить від конкретного XMPP-сервера та є нестабільною через закритість комерційних IM-сервісів.