Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Підручник КНУ-4кк11.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
16.18 Mб
Скачать

3.1.3. Модель інтеграції (зборка) компонентів

Під терміном інтеграція (зборка) розуміється метод об'єднання окремих програмних компонентів в конфігурацію, необхідну для забезпечення їх взаємодії в різних середовищах, а також поповнення методів програмування додатковими властивостями і технології проектування ПС необхідними процесами (наприклад, управління конфігурацією, якістю і т.п.).

Засобом інтеграції є: зборка генерація, композиція і ін. Вона визначає об'єднання компонентів в єдине ціле чи розташовані на великих машинах (mainframes) і зв’язуються між собою через модель взаємодії, якої відповідає інтерфейс, програмним поданням якого є посередник. В загальному випадку інтерфейс містить оператор виклику компоненту, в якому задається список параметрів передавання іншому компоненту і одержуваних від нього результатів. Такими механізмами зв'язку взаємодіючих компонентів і об'єктів є:

–  оператор звернення до процедури в ЯП;

–  RPC – мова (Remote Procedure Call) виклику видалених процедур [1, 2];

–  мова опису інтерфейсів IDL [3, 4];

–  виклик видалених методів – RMI в мові JAVA [6, 7].

RPC-механізм – це оператор виклику видаленої процедури і передачі параметрів на мові RPC, перехідник між зухвалою програмою клієнта (stub-клієнта) і процедурою серверу, що викликається (stub-серверу). Роль посередника виконує спеціальний диспетчер.

Мова IDL в системі CORBA призначена для опису інтерфейсу stub-клієнт, як запиту до серверу на виконання методу/функції, і інтерфейсу skeleton-серверу для задоволення запиту клієнта. Роль посередника між клієнтом і сервером виконує брокер ORB в середовищі клієнт–сервер.

Виклик видаленого методу RMI описується в мові JAVA, аналогічний запиту і забезпечує інтерпретацію на віртуальній машині (virtual machine), програми, що викликається, в ЯП (JAVA, С++ і ін.), уявленій скомпільованим byte-кодом.

Висловлюється систематизований підхід до проблеми інтеграції елементарних компонентів, який визначений у ряді робіт з участю автора [8–11], він включає базові моделі і методи інтеграції модулів, записаних в різних МП.

Процес інтеграції компонентів до інтегрованої структури виконується на основі базових моделей взаємозв'язку компонентів, моделі управління і систем перетворення типів даних взаємодіючих різномовних компонентів алгебри.

Модель інтеграції об'єктів  Нехай задана множина програмних об'єктів K ={Ki}i=1, N на множині даних D ={D}ii=1, в МП і множина,   на якому визначаються елементи множини K.

Кожен елемент Di ={di j }j=1, t  визначається трійкою: ім'ям Ni j, типом даних Tij  і  значенням цього типу Vij. Типи даних,  якими обмінюються пара  компонентів Ki та  Kj, можуть бути еквівалентними, якщо вони мають однакову семантичну структуру  і  обробку, або обмінюватися нееквівалентними типами Dij та Dik для Ki та  Kj, які вимагають їх перетворення за допомогою функцій, представлених  такими відобра-женнями:  

FNi k : Ni  Nk, FTi k : Ti  Tk, FVi k : Vi  Vk . Між множиною Dij та Dik може не існувати взаємно однозначної відповідності,  наприклад, за умови, коли декільком елементам множини Dij відповідає один елемент з множини Dik, і навпаки. Тоді будується відображення декількох типів до одного  загального типу за  допомогою функції конструювання: C( di j1..., di j k)= dij,  в якій dij  є елементом з множини  Dij.

Відображення FNik, FTik, FVik містять однакову кількість елементів.

У завдання перетворення FNik входить впорядкування імен змінних в описі інтегрованих програмних компонентів. Відображення типів даних FTik базується на  множині типів даних T =(X *), де X – множина  значень,  які можуть  приймати  змінні типу  і елементи множини  V,* – множина  операцій для перетворення типів.

Іншими словами множина Т розглядатиме як систему алгебри перетворення типів даних з  множини V.

Під перетворенням типу Ti j = (Xi j, i j ), що містяться у множині Т  підмножини  Ti k = (Xi k,  i k ), розуміється приведення значення змінної  Xij до значення Xik множини Х, при якій операції семантичного перетворення i j еквівалентні операціям  з ik.  У загальному  випадку приведення типу Tij до типу Tik може бути одностороннім.

У випадках викликів окремих компонентів, які обробляють одні і ті ж структури даних,  виконується пряме і зворотне їх перетворення.

Для цього необхідно,щоб відображення між типами Ti j і Ti k було ізоморфізмом,  тобто побудоване  перетворення між двома типами даних повинне відповідати ізоморфному відображенню  тих, що відповідають дві алгебраїчні системи.

Випадок, коли декільком типів з множини Di відповідає декілька типів з Dk,  розгля-дається як  видалений обмін даними між компонентами  і об'єктами розподіленого середовища, які виконуються на різних комп'ютерах або процесорах цього середовища.

Обмін даними між видалено розташованими об'єктами здійснюється за допомогою операторів  виклику типу CALL – оператора звернення  до процедури або функції (F1, F2)  в  МП, розташованого в зухвалій програмі. 

Модель інтеграції має такий загальний вигляд: М={P, F,D},  де P –програмний об'єкт, який містить звернення до функцій F і визначений на множині даних D. У операторах виклику функцій задаються фактичні параметри, які повинні  порядку і  типам відповідних формальних параметрів.

В операторах виклику функцій задаються фактичні параметри, які відповідать формальним за кількістю і порядком

Якщо не дотримувався порядок розташування параметрів або їх кількість,  а також мала місце невідповідність деяких типів  передаваних  параметрів, традиційно перед оператором  виклику.

Загальне завдання забезпечення взаємозв'язку пари компонентів, опис яких  зроблений  на різних ЯП високого рівня, полягає  в побудові  взаємно однозначної відповідності між безліччю фактичних параметрів V={v1,v2,..., v1k} – зухвалого компонента  і множиною  формальних параметрів F ={f1, f2,..., fkl }, що викликається

Для множини фактичних і формальних параметрів V і F взаємодіючих компонентів необхідні відображення параметрів виконуються за допомогою операцій перетворення простих типів даних з множини W, а також спеціальних операцій перетворення складних типів даних (масивів, записів і ін.) селектора S і конструктора З, забезпечуючи вибір необхідних простих операцій з W, і конструювання з них передаваних складних типів даних з відповідним перетворенням.

Множина операцій конструювання має такий загальний вигляд: С = С, С = {Сm, Сz, Cf}, де m – масив, z – запис, f – файл і т.п.

Для кожної пари взаємодіючих компонентів, описаних в різних ЯП, виконується:

–  побудова відображення між безліччю параметрів фактичних і формальних параметрів;

–  вибір необхідних операцій селектора S і конструювання З складних типів даних з простих;

Теоретичні аспекти перетворення простих і складних типів даних на основі апарату систем алгебри описані розділі 2.1.3. та [9–11].