Ноу Інти, лекція, введення в розподілені системи
1.4. Поняття проміжної середовища
З точки зору одного з комп'ютерів розподіленої системи, всі інші входять до неї машини є віддаленими обчислювальними системами. Теоретичною основою мережевої взаємодії віддалених систем є загальновідома модель взаємодії відкритих систем OSI / ISO, яка розділяє процес взаємодії двох сторін на сім рівнів: фізичний, канальний, мережевий, транспортний, сеансовий, прикладної, представницький.
Мал. 1.9. Модель взаємодії обчислювальних систем
У мережах найбільш поширеного стека протоколів TCP / IP протокол TCP є протоколом транспортного, а протокол IP - протоколом мережевого рівня. Забезпечення інтерфейсу до транспортному рівню в даний час бере на себе мережева компонента операційної системи, надаючи зазвичай заснований на сокетах інтерфейс для верхніх рівнів. Сокети забезпечують примітиви низького рівня для безпосереднього обміну потоком байт між двома процесами. Стандартного представницького або сеансового рівня в стеці протоколів TCP / IP немає, іноді до них відносять захищені протоколи SSL / TLS.
Використання протоколу TCP / IP за допомогою сокетів надає стандартний, міжплатформений, але низькорівневий сервіс для обміну даними між компонентами. Для виконання сформульованих вище вимог до розподілених систем функції сеансового і представницького рівня повинна взяти на себе деяка проміжна середовище (middleware), звана так само проміжним програмним забезпеченням (рис. 1.9). Таке середовище повинна допомогти створити розробниками відкриті, масштабовані і стійкі розподілені системи. Для досягнення цієї мети проміжна середовище повинне забезпечити сервіси для взаємодії компонент розподіленої системи. До таких сервісів відносяться:
У межах однієї розподіленої системи може використовуватися кілька видів проміжних середовищ (рис. 1.10). При хорошому підході до проектування системи кожна розподілена її компонента надає свої сервіси за допомогою єдиної проміжної середовища, і використовує сервіси інших компонент за допомогою так само єдиною проміжного середовища, однак ці середовища можуть бути різними.
Мал. 1.10. Гетерогенна розподілена система
Розподілену систему, компоненти якої використовують кілька проміжних середовищ, можна називати гетерогенної, на противагу гомогенної, що використовує єдину проміжну середу. Оскільки одна і та ж проміжна середовище може бути реалізована на різних апаратних платформах і операційних системах, то обидва класу розподілених систем можуть включати в себе комп'ютери під управлінням як однієї, так і різних операційних систем.
На даний момент немає універсально застосовної проміжного середовища, хоча як буде показано в курсі, є певний рух в цьому напрямку. Основною причиною відсутності таких середовищ є почасти суперечливі вимоги до розподілених систем, а також розрізняються характер мережевих з'єднань між компонентами системи: наприклад взаємодія компонент всередині одного підприємства, ймовірно, може бути побудовано інакше, ніж взаємодія компонент двох різних підприємств, які не повністю довіряють один одному.
Взаємодія програмних компонент в межах одного і того ж комп'ютера також відбувається за допомогою проміжного середовища, що при використанні деяких проміжних середовищ може бути як незручно, так і неефективно. В ідеальному випадку розподілена компонента повинна бути реалізована таким чином, щоб перехід з однієї проміжної середовища на іншу відбувався шляхом зміни конфігурації програмної компоненти, а не зміни вихідного коду. На практиці дана вимога, на жаль, може бути важко здійсненне, однак необхідно хоча б мінімізувати можливі виправлення програмного коду при можливій зміні проміжного середовища.