У широкому значенні відкритою системою може бути названа будь-яка система (комп'ютер, обчислювальна мережа, різноманітні апаратні і програмні продукти), яка побудована відповідно до відкритих специфікацій.
Специфікація в інформаційних технологіях визначається як формалізований опис апаратних або програмних компонентів певної системи, способів їх функціонування, взаємодії з іншими компонентами, умов експлуатації, обмежень і особливих характеристик при взаємодії з іншими системами. Відкритими специфікаціями називають опубліковані, загальнодоступні специфікації, розроблені відповідно стандартам, прийнятим в результаті досягнення згоди після всебічного обговорення всіма зацікавленими сторонами. Відповідно до цієї концепції комп'ютерна мережа чи інша інформаційна підсистема, що складається з різного апаратного і програмного забезпечення, може бути представлена ієрархічною багаторівневою відкритою системою, де кожен рівень вирішує чітко окреслене коло завдань. Так, стосовно персонального комп’ютера принцип архітектури відкритих систем (чи просто принцип відкритості системи) проявляється у тому, що регламентуються і стандартизуються лише опис принципу дії комп'ютера і його конфігурація (певна сукупність апаратних засобів і з'єднань між ними). Це дає змогу збирати комп'ютер із окремих вузлів і деталей, розроблених і виготовлених незалежними фірмами-виготівниками. З'єднання різних пристроїв комп'ютера між собою забезпечується однаковістю інтерфейсу (англ. interface від inter — між, та face — обличчя), під яким розуміють засіб сполучення двох пристроїв, в якому всі фізичні і логічні параметри узгоджуються між собою. Крім того, комп'ютер легко розширюється і модернізується за рахунок наявності внутрішніх розширювальних гнізд, в які користувач може вставляти різноманітні пристрої, що задовольняють заданому стандарту, і тим самим встановлювати конфігурацію своєї машини відповідно до своїх особистих уподобань.
Використання при розробці систем відкритих специфікацій дозволяє третім сторонам розробляти для цих систем різні апаратні або програмні засоби, проводити їх розширення та модифікацію, а також створювати програмно-апаратні комплекси з продуктів різних виробників. Для мережевих технологій, побудованих з дотриманням принципів відкритості, це дає наступні переваги:
· можливість побудови мережі з апаратних і програмних засобів різних виробників з дотриманнм одного і того ж стандарту, що забезпечує можливість широкомасштабної зміни розмірів та меж мережі;
· можливість заміни окремих компонентів мережі іншими, більш довершеними, що дає змогу технічно вдосконалювати та розвивати мережу з мінімальними витратами;
· можливість легкого і швидкого сполучення різнорідних мереж, що дає змогу створювати глобальні інформаційні мережі;
· простота освоєння і обслуговування мережі.
Термін «взаємодія відкритих систем» стосується процедур передачі даних між такими системами, які «відкриті» одна одній, завдяки спільному використанню ними відповідних стандартів. Відкрита система доступная для взаємодії з іншими системами відповідно до прийнятих стандарнтів.
Таким чином, відкритість системи досягається на основі стандартизації її поведінки. Відкриту систему можна тлумачити як систему, яка володіє властивостями відкритості і може бути без жодних доповнень та змін під’єднана до іншої відкритої системи. Основними з цих властивостей є:
інтероперабельність – здатність систем обмінюватися інформацією одна з одною та сумісно використовувати інформацію, якою вони обмінюються;
розширюваність – здатність до масштабування, яка дає змогу системі працювати у широкому діапазоні параметрів, що визначають технічні та ресурсні характеристики системи і/або підтримуючого середовища. Прикладами таких характеристик можуть бути: кількість процесорів, кількість вузлів мережі, максимальна кількість користувачів, які обслуговуються тощо;
мобільність – легкість переносу прикладного програмного забезпечення та даних (а також користувачів) з однієї системи ІТ на іншу;
дружність до користувача – зручність взаємодії користувача з системою, у тому числі легкість управління.
Вирішення проблеми відкритості систем базується на стандартизації інтерфейсів систем та протоколів взаємодії між їх компонентами. Набір правил, який регулює часову послідовність та формат подій, які відбуваються між однотипними об’єктами (обладнанням чи програмами) одного ієрархічного рівня, називають протоколами [99, с. 425]. Правила взаємодії відкритих систем та модель цієї взаємодії (модель OSI, Open System Interconnection) визначаються стандартом ISO 7498.
Для реальних систем повна відкритість є недосяжним ідеалом. Як правило, навіть в системах, званих відкритими, цьому визначенню відповідають лише деякі частини, підтримуючі зовнішні інтерфейси. Наприклад, відкритість сімейства операційних систем Unix полягає в наявності стандартизованого програмного інтерфейсу між ядром і додатками, що дає змогу легко перенести додатки з середи однієї версії Unix в середу іншої версії. Ще одним прикладом часткової відкритості є застосування в досить закритій операційній системі Novell NetWare відкритого інтерфейсу Open Driver Interface (ODI) для включення в систему драйверів мережевих адаптерів незалежних виробників. Чим більше відкритих специфікацій використано при розробці системи, тим більше відкритою вона є.
Модель OSI стосується тільки одного аспекту відкритості, а саме відкритість засобів взаємодії пристроїв, пов'язаних в обчислювальну мережу. Тут під відкритою системою розуміється мережевий пристрій, готовий взаємодіяти з іншими мережевими пристроями з використанням стандартних правил, що визначають формат, зміст і значення повідомлень, що відправляються та приймаються.
Яскравим прикладом відкритої системи є міжнародна мережа Internet. Ця мережа розвивалася відповідно до вимог, що пред'являються до відкритих систем. У розробці її стандартів брали участь тисячі фахівців-користувачів цієї мережі з різних університетів, наукових організацій і фірм-виробників обчислювальної апаратури і програмного забезпечення, працюючих в різних країнах. Стандарти на роботу в мережі (стандарти RFC) поділяються на стандарти, проекти стандартів, тимчасові (експериментальні) регламентації та пропозиції; пізнішому стандарту відповідає більший номер. Сама назва стандартів, які визначають роботу мережі Internet, Revest For Comments (RFC), що можна перевести як “запит на коментарі”, наголошує на відкритому характері стандартів. У результаті мережа Internet зуміла об'єднати в собі численні аппаратно-програмні платформи, різноманітне обладнання і програмне забезпечення величезного числа мереж, розкиданих по всьому світу.
Економічна рентабельність реалізації концепції відкритих систем на практиці базується на тому, що перехід до відкритих технологій створює найкращі передумови для інвестицій в інформаційні технології, оскільки завдяки властивостям відкритості систем ІТ суттєво підвищується кінцева ефективність їх використання.
Інформаційно-обчислювальна система передбачає з'єднання різноманітного обладнання, а значить, проблема сумісності є однією з найбільш гострих. Без прийняття всіма виробниками загальноприйнятих правил побудови обладнання, прогрес в справі “будівництва” складних інформаційних систем, зокрема, комп'ютерних мереж, був би неможливий. Тому весь розвиток комп'ютерної галузі відображений в стандартах: будь-яка нова технологія тільки тоді набуває “законного” статусу, коли її зміст закріплюється у відповідному стандарті. У комп'ютерних мережах ідеологічною основою стандартизації є багаторівневий підхід до розробки засобів мережевої взаємодії. Багаторівневе представлення засобів мережевої взаємодії забезпечується шляхом обміну повідомленнями як між мережевими компонентами, що знаходяться на одному рівні, але в різних вузлах, так і між суміжними компонентами в одному вузлі. Обмін повідомленнями проводиться відповідно до прийнятих стандартів.
Інформаційно-обчислювальна мережа розглядається як інформаційно-обчислювальне середовище (ІОС), що реалізується за допомогою великої кількості апаратних та програмних засобів. Це середовище ділиться по вертикалі на ряд логічних рівнів, кожен з яких виконує одне з основних завдань ІОС.
По горизонталі ІОС діляться на локальні частини (підсистеми), кожна з яких називається і являє собою відкриту систему, тобто відповідає вимогам та стандартам архітектури відкритих систем.
Частина відкритої системи, яка реалізує деяку функцію і входить у склад того чи іншого рівня, називається об’єктом. Набір правил взаємодії об’єктів одного і того самого рівня називається протоколом. Зв'язок між об’єктами сусідніх рівнів визначається інтерфейсами.
Організація взаємодії між пристроями інформаційних систем є складною задачею. Розглянемо дві системи А та В, які обмінюються даними через деяке середовище зв'язку. Процес цього обміну можна декомпонувати на фізичний та логічний обміни. Фізичний обмін охоплює передачу даних від системи-передавача у фізичне середовище передавання і від цього середовища до системи-приймача. Логічний стосується способу формування та передачі даних одною системою іншій таким чином, щоб остання могла їх сприйняти і адекватно інтерпретувати (зрозуміти). Таким чином, фізично кожна система взаємодіє із середовищем зв’язку, логічно – з іншою системою, тобто обмін даними може бути представлений як мінімум на двох рівнях – фізичному та логічному.
Дещо детальніший розгляд системи обміну даними дає змогу виділити у ній наступні складові:
елементи апаратури (модулі) та лінії зв’язку, необхідні для забезпечення фізичного обміну даними, які називають з’єднанням;
правила, за якими вузли під’єднуються один до одного для обміну інформацією з забезпеченням її коректної інтерпретації в процесі прийняття;
функції, які вузли можуть виконувати в мережі. Ці функції називають послугами, або сервісами, і вузли мають спільно працювати так, щоб користувачі могли спільно використовувати послуги різних вузлів.
При такому підході в процесі комунікації двох систем виділено три рівні, кожному з яких відповідають свої задачі. Це розбиття є результатом використання типового для рішення складних задач прийому декомпозиції, тобто розбиття однієї складної задачі на простіші задачі-модулі. Процедура декомпозиція включає в себе чітке визначення функцій кожного модуля, що вирішує окрему задачу, і інтерфейсів між ними. У результаті досягається логічне спрощення задачі, а крім того, з'являється можливість модифікації окремих модулів без зміни іншої частини системи.
При декомпозиції часто використовують багаторівневий підхід, згідно якого всю множину модулів розподіляють на підмножини, приналежні певним рівням. Рівні утворять ієрархію, тобто є вищі і нижчі рівні (рис. 5.1).
Рис. 5.1. Багаторівневий ієрархічний підхід до декомпозиції задач
Багаторівневий підхід до опису і реалізації функцій системи застосовується в локальних файлових системах, коли запит, що поступив на доступ до файлу послідовно обробляється кількома програмними рівнями (рис.5.2). Запит спочатку аналізується верхнім рівнем, на якому здійснюється аналіз символьного імені файлу і визначення за ним унікального ідентифікатора файлу. Наступний рівень знаходить за унікальним ім'ям усі основні характеристики файлу: адреса, атрибути доступу і т. п. Потім на більш низькому рівні здійснюється перевірка прав доступу до цього файлу, а далі, після розрахунку координат області файлу, що містить необхідні дані, виконується фізичний обмін із зовнішнім пристроєм за допомогою драйвера диска (рис. 5.2).
Рис. 5.2. Багаторівнева модель файлової системи |
Засоби мережевої взаємодії також можуть бути представлені у вигляді ієрархічно організованої множини модулів. При цьому модулі нижнього рівня бууть, наприклад, вирішувати всі питання, пов'язані з надійною передачею електричних сигналів між двома сусідніми вузлами; модулі більш високого рівня організують транспортування повідомлень в межах всієї мережі, користуючись для цього засобами згаданого нище рівня; на верхньому рівні працюють модулі, що надають користувачам доступ до різних служб файлової системи, друку тощо. Це тільки один з безлічі можливих варіантів розподілу загальної задачі організації мережевої взаємодії на часткові підзадачі.
Представлення інформаційних мереж багаторівневими (багатошаровими) ієрархічними моделями є загальноприйнятим способом моделювання їх структури. Кількість рівнів, назви та зміст рівнів залежать від типу інформаційної мережі та типу її моделі, проте в усіх випадках призначення кожного рівня полягає у наданні певних послуг (сервісів) вищим рівням, приховуючи від останніх подробиці реалізації сервісів.
Багаторівневі представлення засобів мережевої взаємодії має свою специфіку, пов'язану з тим, що в процесі обміну повідомленнями беруть участь дві машини, тобто в цьому випадку необхідно організувати узгоджену роботу двох “ієрархій”. Рівень «і» однієї машини взаємодіє (підтримує звязок) з рівнем «і» іншої». Правила і угоди, яких дотримуються при цій взаємодії, називаються протоколами. За своєю сутністю протоколи є домовленостями сторін, що спілкуються, про правила, за якими має відбуватися спілкування [99 ]. Порушення протоколу ускладнить, а можливо, і зовсім унеможливить спілкування.
При передачі повідомлень обидва учасники мережевого обміну повинні прийняти багато угод. Наприклад, вони повинні погодити рівні і форму електричних сигналів, спосіб визначення довжини повідомлень, домовитися про методи контролю достовірності і т. п. Іншими словами, угоди повинні бути прийняті для всіх рівнів, починаючи від самого низького рівня передачі бітів до самого високого, що реалізовує сервіс для користувачів інформаційної мережі.
На рис. 5.3 показана чотирирівнева модель взаємодії двох вузлів мережі, А та В. З кожної сторони засоби взаємодії представлені чотирма рівнями. Обєкти, що містять відповідні рівні на різних машинах, називають одноранговими, чи рівноправними вузлами (сутностями) мережі. Саме однорангові вузли спілкуються між собою за допомогою протоколу. Процедура взаємодії цих двох мереж може бути описана у вигляді набору правил взаємодії кожної пари однорангових вузлів відповідних рівнів обох сторін, що беруть участь у взаємодії. Формалізовані правила, що визначають послідовність і формат повідомлень, якими обмінюються однорангові мережеві компоненти, приналежні одному рівню, але різним вузлам (машинам), і є протоколами.
Модулі, що реалізують протоколи сусідніх рівнів і знаходяться в одному вузлі (одній машині), також взаємодіють один з одним відповідно до певних правил і за допомогою стандартизованих форматів повідомлень. Ці правила прийнято називати інтерфейсом. Інтерфейс визначає набір сервісів (примітивних операцій, послуг), що надається даним рівнем сусідньому вищому рівню. За змістом операцій взаємодії протокол і інтерфейс виражають одне і те ж поняття, але традиційно в мережах за ними закріпили різні області дії: протоколи визначають правила взаємодії модулів одного рівня в різних вузлах (чи вузлів одного рівня у різних машинах), а інтерфейси - модулів сусідніх рівнів в одному вузлі.
Рис. 5.3. Типи взаємодії двох вузлів: рівневі протоколи та інтерфейси: фізична взаємодія показана суцільною лінією, віртуальна – пунктирною
Поняття рівня є абстракцією, модельним представленням певного типу взаємодії. Реально дані не пересилаються з рівня «і» однієї машини на рівень «і» іншої, взаємодія між машинами (вузлами) всіх рівнів з і ≥1 є віртуальною; натомість кожний рівень «і» передає дані та керування на один рівень нижче тої самої машини, тобто на рівень «і -1». Нульовий рівень, що розташований нижче першого, відповідає фізичному носієві, за допомогою якого і здійснюється обмін інформацією між машинами (вузлами).
Між кожною парою суміжних рівнів знаходиться інтерфейс. Засоби кожного рівня повинні підтримувати, по-перше, свій власний протокол, а, по-друге, інтерфейси з сусідніми рівнями. Міжрівневі інтерфейси повинні бути чітко розмежовані і забезпечувати виконання чітко окреслених функцій. Це спрощує заміну фізичної реалізації рівня (наприклад, заміну телефонного звязку супутниковим), оскільки обмеження на реалізацію полягають виключно у вимозі забезпечення ідентичного набору послуг.
Набір ієрархічно організованих рівнів і протоколів називається архітектурою мережі. Інформація, яку містить специфікація архітектури, забезпечує створення программного і аппаратного забезпечення кожного рівня, здатного корректно підтримувати відповідні протоколи. Ієрархічно організований набір протоколів, достатній для організації взаємодії вузлів в мережі, який передбачає використання системою одного протоколу на рівень, називається стеком комунікаційних протоколів.
Концепція архітектури відкритих систем передбачає виділення рівнів функціональної структури ІОС за певними принципами, зокрема:
· принципом ієрархічності розшарування. Ієрахічність розшарування полягає у тому, що множини модулів кожного рівня сформовані так, що вони взаємодіють лише між собою та з модулями суміжних рівнів. Для виконання своїх задач модулі звертаються із запитами тільки до модулів суміжного нижчого рівня, а результати роботи всіх модулів, що належать деякому рівню, можуть бути передані тільки модулям суміжного вищого рівня. До модулів інших нижчих рівнів модулі даного рівня можуть звертатися тільки через модулі сусіднього з ним нижнього рівня.
· принципом максимальної незалежності рішень, які приймаються на кожному рівні, відносно рішень на інших рівнях і в першу чергу – в сусідніх (верхньому та нижньому). Ієрархічна декомпозиція задачі передбачає чітке визначення функції кожного рівня і інтерфейсів між рівнями. Інтерфейс визначає набір функцій, які нижчий рівень надає вищому. Внаслідок ієрархічної декомпозиції досягається відносна незалежність рівнів, а значить, і можливість їх легкої заміни.
· принципом прозорості засобів кожного рівня стосовно змісту інформації, яка поступає з верхнього рівня. Кожне повідомлення, яке передається з верхнього рівня на нижній, супроводжується упакувальною інформацією (так називаним конвертом), що описує його розмір та адресу призначення. Кожен рівень читає тільки напис на призначеному йому конверті, зберігаючи прозорість відносно самих даних, у склад яких можуть також входити конверти більш високих рівнів.
Концепцію багаторівневого спілкування простіше осягнути на прикладі взаємодії двох підприємств А і Б з іноземними інвестиціями, розташованиїх в Україні та Росії і пов'язаних між собою діловою співпрацею. В межах цієї співпраці керівник підприємства А періодично надсилає свої пропозиції чи замовлення керівнику підприємства Б, який на них відповідає, і навпаки. Можливо, процедура взаємодії цих керівників містить додаткові узгодження, в будь-якому випадку існує встановлений порядок взаємодії, який можна вважати “протоколом рівня директорів” (рис. 5.4). Начальники надсилають свої повідомлення на рідній мові через своїх перекладачів, від яких перекладений на англійську мову текст (однорангова процедура рівня 2) поступає до секретарів, які набирають повідомлення на компютері та відсилають електронною поштою. Вибір мови спілкування рівнозначний вибору протокола 2-го рівня, а способу пересилання повідмлень – вибору протокола 3-го рівня. Порядок взаємодії начальника і перекладача відповідає поняттю міжрівневого інтерфейсу «директор-перекладач», а взаємодії перекладача і секретаря – інтерфейсу «перекладач-секретар». На підприємстві А обмін документами між начальником і перекладачем йде через спеціальну папку, а на підприємстві Б начальник спілкується з перекладачем по факсу. Таким чином, інтерфейси “директор - секретар” на цих двох підприємствах відрізняються. При розв'язанні інших питань директори можуть взаємодіяти за іншими правилами-протоколами, але це не вплине на роботу перекладачів і секретарів, для яких не важливо, які повідомлення відправляти, а важливо, щоб вони дійшли до адресата. Кожний з протоколів є незалежним від інших: директори можуть змінити форму угод, перекладачі перейти на іншу мову, а секретарі обрати інший спосіб передачі повідомлень, наприклад, факс, навіть не повідомляючи про це інші рівні, оскільки змінюється лише обмін інформацією на власному рівні. Наявність на кожному рівні окремих протоколів, незалежних від протоколів інших рівнів, становить основну перевагу багаторівневого підходу.
Рис. 5.4. Приклад багаторівневої взаємодії підприємств
Для забезпечення обміну інформацією в п’ятирівневій мережі (рис. 5.4) повідомлення (message) П формується на 5-му рівні і передається на рівень 4 для подальшої передачі. Рівень 4 додає повідомленню заголовок (head) Заг4 для ідентифікації повідомлення П і передає рівню 3. Заголовок містить керуючу інформацію (наприклад, числа в порядку послідовного зростання, час чи дата), яка дає змогу рівню 4 вузла-приймачу доставити повідомлення у правильному порядку, якщо на нижчих рівнях цей порядок порушено.
На рівнях нижче 4-го на розмір повідомлень накладається обмеження, внаслідок чого повідомлення П розбивається на кілька дрібніших повідомлень - пакетів, наприклад, П1 та П2. Рівень 3 додає повідомленню заголовки Заг3 рівня 3 та передає результат на рівень 2. Той додає заголовки свого рівня З2 та завершувачі пакетів (trailer) Т і передає результат рівню 1 для фізичного передавання на вузол-приймач. На останньому повідомлення рухається і обробляється у зворотньому порядку.
Рис. 5.5. Передача повідомлення у п’ятирівневій мережі
Комунікаційні протоколи можуть бути реалізовані як програмно, так і апаратно. Протоколи нижніх рівнів часто реалізуються комбінацією програмних і апаратних засобів, а протоколи верхніх рівнів як правило, чисто програмними засобами. Протокол може мати декілька програмних реалізацій. Програмний модуль, що реалізує певний протокол, часто скорочено також називають “протоколом”. При цьому співвідношення між протоколом – формальною процедурою і протоколом – програмним модулем, що реалізує цю процедуру, аналогічно співвідношенню між алгоритмом рішення деякої задачі і програмою, що вирішує цю задачу.