Моделі взаємодії програм, систем і операційних середовищ
Розглядаються моделі взаємодії програм, що будуються в різнорідних середовищах, систем, що збираються з готових програм та середовищ, що забезпечують сумісне об’єднання програм, інтегрованих у репозиторію Eclipse. Дано опис реалізації моделей взаємодії програм з репозиторію через інтерфейси в сере...
Gespeichert in:
Datum: | 2011 |
---|---|
1. Verfasser: | |
Format: | Artikel |
Sprache: | Ukrainian |
Veröffentlicht: |
Інститут програмних систем НАН України
2011
|
Schlagworte: | |
Online Zugang: | http://dspace.nbuv.gov.ua/handle/123456789/50966 |
Tags: |
Tag hinzufügen
Keine Tags, Fügen Sie den ersten Tag hinzu!
|
Назва журналу: | Digital Library of Periodicals of National Academy of Sciences of Ukraine |
Zitieren: | Моделі взаємодії програм, систем і операційних середовищ / К.М. Лавріщева // Пробл. програмув. — 2011. — № 3. — С. 11-22. — Бібліогр.: 19 назв. — укр. |
Institution
Digital Library of Periodicals of National Academy of Sciences of Ukraineid |
irk-123456789-50966 |
---|---|
record_format |
dspace |
spelling |
irk-123456789-509662013-11-08T03:08:34Z Моделі взаємодії програм, систем і операційних середовищ Лавріщева, К.М. Теоретичні та методологічні основи програмування Розглядаються моделі взаємодії програм, що будуються в різнорідних середовищах, систем, що збираються з готових програм та середовищ, що забезпечують сумісне об’єднання програм, інтегрованих у репозиторію Eclipse. Дано опис реалізації моделей взаємодії програм з репозиторію через інтерфейси в середовищах Visual Studio.Net і CORBA. Визначені декілька конфліктів взаємодіючих програм у середовищах засобами системи WCF, що залежить від різних способів реалізації у них інтерфейсів. Сформульовані головні теоретичні та прикладні шляхи їх подолання у майбутньому проекті. 2011 Article Моделі взаємодії програм, систем і операційних середовищ / К.М. Лавріщева // Пробл. програмув. — 2011. — № 3. — С. 11-22. — Бібліогр.: 19 назв. — укр. 1727-4907 http://dspace.nbuv.gov.ua/handle/123456789/50966 681.03 uk Інститут програмних систем НАН України |
institution |
Digital Library of Periodicals of National Academy of Sciences of Ukraine |
collection |
DSpace DC |
language |
Ukrainian |
topic |
Теоретичні та методологічні основи програмування Теоретичні та методологічні основи програмування |
spellingShingle |
Теоретичні та методологічні основи програмування Теоретичні та методологічні основи програмування Лавріщева, К.М. Моделі взаємодії програм, систем і операційних середовищ |
description |
Розглядаються моделі взаємодії програм, що будуються в різнорідних середовищах, систем, що збираються з готових програм та середовищ, що забезпечують сумісне об’єднання програм, інтегрованих у
репозиторію Eclipse. Дано опис реалізації моделей взаємодії програм з репозиторію через інтерфейси в
середовищах Visual Studio.Net і CORBA. Визначені декілька конфліктів взаємодіючих програм у середовищах засобами системи WCF, що залежить від різних способів реалізації у них інтерфейсів. Сформульовані головні теоретичні та прикладні шляхи їх подолання у майбутньому проекті. |
format |
Article |
author |
Лавріщева, К.М. |
author_facet |
Лавріщева, К.М. |
author_sort |
Лавріщева, К.М. |
title |
Моделі взаємодії програм, систем і операційних середовищ |
title_short |
Моделі взаємодії програм, систем і операційних середовищ |
title_full |
Моделі взаємодії програм, систем і операційних середовищ |
title_fullStr |
Моделі взаємодії програм, систем і операційних середовищ |
title_full_unstemmed |
Моделі взаємодії програм, систем і операційних середовищ |
title_sort |
моделі взаємодії програм, систем і операційних середовищ |
publisher |
Інститут програмних систем НАН України |
publishDate |
2011 |
topic_facet |
Теоретичні та методологічні основи програмування |
url |
http://dspace.nbuv.gov.ua/handle/123456789/50966 |
citation_txt |
Моделі взаємодії програм, систем і операційних середовищ / К.М. Лавріщева // Пробл. програмув. — 2011. — № 3. — С. 11-22. — Бібліогр.: 19 назв. — укр. |
work_keys_str_mv |
AT lavríŝevakm modelívzaêmodííprogramsistemíoperacíjnihseredoviŝ |
first_indexed |
2025-07-04T12:51:53Z |
last_indexed |
2025-07-04T12:51:53Z |
_version_ |
1836720864364593152 |
fulltext |
Теоретичні та методологічні основи програмування
© К.М. Лавріщева, 2011
ISSN 1727-4907. Проблеми програмування. 2011. № 3 11
УДК 681.03
К.М. Лавріщева
МОДЕЛІ ВЗАЄМОДІЇ ПРОГРАМ,
СИСТЕМ І ОПЕРАЦІЙНИХ СЕРЕДОВИЩ
Розглядаються моделі взаємодії програм, що будуються в різнорідних середовищах, систем, що збира-
ються з готових програм та середовищ, що забезпечують сумісне об’єднання програм, інтегрованих у
репозиторію Eclipse. Дано опис реалізації моделей взаємодії програм з репозиторію через інтерфейси в
середовищах Visual Studio.Net і CORBA. Визначені декілька конфліктів взаємодіючих програм у сере-
довищах засобами системи WCF, що залежить від різних способів реалізації у них інтерфейсів. Сфор-
мульовані головні теоретичні та прикладні шляхи їх подолання у майбутньому проекті.
Вступ
Сьогодні побудова окремих приклад-
них програмних систем (ПС) виконується
масово в основному з використанням
компонентного, сервісного та генеруваль-
ного програмування (ГП). Ці методи під-
тримуються сучасними системами автома-
тизації у різних платформах і середови-
щах. Постійно удосконалюються методи
збирання (інтеграційного, композицій-
ного) різнорідних програм і компоненттів,
накопичених забагато в інформаційному
світі Інтернету. Відповідно проведеного
аналізу сучасних фабрик програм [1–4]
нами зроблений висновок про те, що кож-
не діюче операційне середовище або роз-
поділена система загального призначення
в основному підтримують розробку і збор-
ку деякої сукупності готових чи знов роз-
роблених програм. Зборка програм забез-
печується на рівні інтерфейсного (брокер-
ного), проміжного (middleware) або вихід-
ного коду ПС. У випадку коли кінцевий
результат розробки ПС необхідно викону-
вати за межами середовища його виготов-
лення, тобто в іншому середовищі, то як,
правило, виникають деякі проблеми, що
пов’язані з особливостями реалізації моде-
лей взаємодії програм, систем і середовищ
[2–5].
Індустрія програмної продукції (ПП)
базується на готових і звичайних компо-
нентах (артефактах, reuses, assets і даних)
багаторазового використання, накопиче-
них у різних бібліотеках, репозиторіях та
нових «хмарних» сховищах Інтернету.
Головним базисом індустріального розви-
тку ПП є програмні компоненти і системи,
які створюються у сучасних розподілених
середовищах, та метод їх зборки у різні
структури ПП з вбудованими механізмами
взаємодії і зв’язками, необхідними при рі-
шенні широкого класу наукових задач з
e-sciense.
Виходячи з того, що механізми взає-
модії у кожному середовищі виробництва
ПП відрізняються між собою, то в даній
роботі розглядаються моделі взаємодії та
вирішується задача інтеграції ПП у репо-
зиторій іншого середовища з доробкою
інтерфейсу взаємодії для виконання цього
ПП у даному середовищі. Ця можливість
підвищує ефективність вироблення про-
грам з готових програмних ресурсів, що
розміщені в інтегрованому репозиторію
[6–8]. Далі наведено опис різних варіантів
моделей взаємодії програм, розподілених
систем і операційних середовищ, а також
запропонований новий підхід до вирі-
шення складних проблем взаємодії між
різними сучасними середовищами, що ви-
користовуються для побудови за їх життє-
вим циклом (ЖЦ) прийнятої технології но-
вих різнорідних програм (C#, Java, Basic).
Варіанти цих моделей розроблені в межах
фундаментального проекту III–1–07 [3] і
Теоретичні та методологічні основи програмування
12
практично реалізовані для пар середовищ:
VS.Net, Eclipse, Corba, Eclipse та VS.Net
на прикладі програм у мовах Java і C#.
Вони розширюють середовище Eclipse
технологічними інструментами з розробки
програм та засобами їх інтеграції у репози-
торій.
Характеристика моделей
взаємодії програм,
систем і середовищ
Модель взаємодії призначена для
обміну інформацією між різними компо-
нентами при їх об’єднанні й обчисленні
[4, 9]. Під взаємодією розуміються зв'язки
двох і більше об'єктів і відношення між
ними.. Даний термін має спеціальне зна-
чення для програм, систем і середовищ
[6–8]. Його основу містить процес обміну
повідомленнями (викликами, запитами,
протоколами) між програмами, системами
і середовищами для сумісного рішення де-
якої задачі. В повідомленні задається ін-
терфейс, який специфікується загально
прийнятою мовою IDL (Interface Definition
Language) або іншими (APL, SIDL й ін.). На
загальному рівні інтерфейс є механізмом
забезпечення взаємодії (interconnection)
різнорідних програм для сучасних середо-
вищ, що забезпечують розроблення про-
грам і систем.
Нові механізми забезпечення взаємо-
дії програмних компонентів (різномовних,
різноплатформенних, різносередовищних)
розробляються нами у рамках генеруваль-
ної моделі GDM (Generative Domain
Model) ПС у середовищі ГП [3]. Сукуп-
ність ПС або сімейств систем (СПС) по-
роджується за моделлю GDM і моделлю
характеристик їх окремих елементів (ком-
понентів, сервісів, каркасів і т. п.), що вхо-
дять до складу СПС. Вони відповідають
деяким функціям або поняттям предмет-
ної області (ПрО), що специфікуються різ-
ними мовами програмування (МП) і реалі-
зуються в одному з діючих середовищ.
Основу подання моделі ПрО містить об'єк-
тно-орієнтований та компонентний підхід,
доповнені механізмами породження гото-
вих компонентів повторного використання
(КПВ) і засобами забезпечення їхньої вза-
ємодії між собою [4].
Формально під моделлю взаємодії ро-
зуміється опис процесів для встановлення
залежностей між різними параметрами
елементів програмних чи інформаційних
систем. Тобто така модель відображає
систему відношень, що описує процес
побудови ПП, як деяке явище. Ці відно-
шення можуть задаватися математичними
засобами – абстрактна алгебра, теорія
множин тощо.
Параметрами моделі взаємодії є про-
грама (компонент), інтерфейс і повідом-
лення. Модель має такий загальний
вигляд:
Мвз = {Мпр, Мсис, Мсеред},
де – Мпр = {Com, Int,, Prot} – модель про-
грами, Мсис = {CPC, Int,, Prot }– модель
системи, Мсеред = {ENVIR, INT, PROT}–
модель середовища, в якому INT, PROT
відображають сукупність інтерфейсів та
протоколів стосовно.
Програмний елемент моделі (Com,
CPC, ENVIR) специфікується відповідною
МП, інтерфейс – мовою IDL, протокол –
мовою XDL, RDF тощо. Програмні елеме-
нти й інтерфейси зберігаються в бібліо-
теках і репозиторіях системи ГП, які вико-
ристовуються для організації пошуку еле-
мента типу КПВ, аналізу його функції і
можливості застосування в нової системі.
Розроблення самостійних програмних
елементів виконується в інтегрованому
середовищі Eclipse, MS.Net, CORBA, Java,
COM з використанням взаємозв’язків між
складними елементами.
Теоретичні та методологічні основи програмування
13
Інтерфейс як самостійний об'єкт
сформувався у зв'язку з об'єднанням мо-
дулів і програм у великі системи або ком-
плекси програм на mainframes [1, 2] у 80-х
роках минулого сторіччя. Інтерфейси як
тоді й нині завдають атрибути та набір
операцій, які визначають необхідні дії та
методи обробки типів даних з отриманням
від викликаної програми результату. Він
відігравав роль посередника між модуля-
ми, що викликаються і викликають. Опе-
ратор виклику CALL завдає список фак-
тичних параметрів, який перевіряється на
відповідність (кількість і порядок розта-
шування) формальним параметрам описа-
ної процедури чи функції. Якщо типи да-
них параметрів, виявлялися не релевант-
ними, то проводилося пряме і обернене
перетворення даних з урахуванням струк-
тури пам'яті комп'ютерів. У розподілених
програмах, що розташовані у різних сере-
довищах, використовуються нові засоби
взаємодії – RPC, RMI, ORB (stub, skeleton),
IContract тощо.
Середовище розроблення програм.
Розглядається операційне середовище з
системними програмними засобами і ін-
струментами для підтримки процесів роз-
роблення окремих програм у МП і зборки
їх у проект. Базисом інструментального
середовища ГП обрано Eclipse, як засіб
керування репозиторієм КПВ і викорис-
тання їх при виробленні нових ПС мето-
дом зборки. За життєвим циклом середо-
вищ MS.Net, CORBA, Java знову розроб-
ляються програми на допустимих МП.
Кожне з цих середовищ містить свій спе-
цифічний набір засобів і підходів до
трансформації описаних програм в МП
для вихідного коду, що відрізняються між
собою.
Загальна модель розподілених систем
мережного середовища Інтернет показана
на рис. 1.
Кожне з показаних середовищ
CORBA, IBM, VS.Net, Java, базується на
своїх інтерфейсах взаємодії і включає за-
гальні методи та засоби доступу до даних
мережного середовища.
Рис. 1. Загальна модель схеми розробки
і взаємодії програм у Інтернет середовищі
Програми, виготовлені в одному з
середовищ, можуть бути інтегровані з од-
ного середовища в інше через репозито-
рій, наприклад Eclipse. У межах проекту
ГП здійснено розширення середовища
Eclipse за рахунок інтеграції нових про-
грам, вироблених в одному з середовищ,
інтегрованих у репозиторій системи ГП
[3, 10 – 13]. Ці операційні середовища за-
безпечують відповідні процеси ЖЦ розро-
блення різнорідних програм та методи їх
об’єднання у різні структури ПП через ме-
ханізми взаємодії, реалізованому в цьому
середовищі. Розглянемо основні методи
вироблення, інтеграції і взаємодії програм
у парах системних середовищ ГП:
– Visual Studio.Net, Eclipse, на які
орієнтується проект Grid і які застосову-
ють технологію розробки окремих програм
Теоретичні та методологічні основи програмування
14
у мові С# за стандартними процесами ЖЦ,
специфікацію інтерфейсу з паспортними
даними і з перенесенням готового продук-
ту в репозиторій системи Eclipse, що відо-
бражає зв'язок з даним середовищем роз-
роблення програм через механізм плагинів
або конфігураційний файл з параметрами і
операціями обробки даних у тому чи ін-
шому середовищі [14];
– CORBA, Java, MS.Net забезпечу-
ють розробку програм на МП цього сере-
довища та встановлення зв’язків між цими
програмними середовищами в цілях забез-
печення розміщення розроблених програм
у репозитарії системи ГП та додавання до-
ступу іншим розробникам його програм
[15];
– IBM Sphere, Eclipse, де розробля-
ються нові програми з використанням
можливих МП, що допускаються у цьому
середовищі чи у VSphere віртуального
варіанта.
Інтерфейс є головним параметром
операційних середовищ, а також моделей
взаємодії програм і систем. Дамо опис змі-
сту моделей взаємодії.
Модель взаємодії програм – це схе-
ма зв’язків окремих частин програм між
собою. Як зв’язки виступають оператори
звернення (типу CALL) до процедур і
функцій цієї програми з формальними па-
раметрами. Програми, процедури і функції
записуються в одній МП. Оператори звер-
нення містять імена об'єктів (процедур і
функцій), що викликаються, список фак-
тичних параметрів з завданням їх значень і
параметрів, для отримання результатів.
Послідовність і число формальних параме-
трів мають відповідати фактичним параме-
трам. Виконання функції у програмі на од-
ній МП не викликає проблем, коли типи
даних параметрів збігаються.
Моделі взаємодії систем найбільш
пов'язані з використанням готових про-
грам у процесі розробки нових ПС мето-
дом зборки. Якщо всі готові програми по-
дані в різних МП і розташовані на різних
комп'ютерах мережі, то при їх збиранні
можуть виникати проблеми неодноріднос-
ті типів даних у цих програмах, структурах
пам'яті платформ комп'ютерів і операцій-
них середовищ, де вони виконуються. Зі-
брані ПП враховують формати даних го-
тових програм на платформах сучасних
комп’ютерів, особливості структури вихі-
дного коду програм після компіляторів з
МП, який залежить від використання спе-
ціальних бібліотек data types і routines або
без них. Реально існуючі розходження в
апаратній частині платформ і у вихідному
коді програм враховуються у конфігура-
ційному файлі ПП, який використовується
при організації виконання ПП у сучасних
обчислювальних або гетерогенних сере-
довищах. Деяким питанням перебудови
загальних типів даних (ЗТД) до фундамен-
тальних типів даних присвячений стандарт
ISO/IEC 11404–2007 General Data Types.
Він пропонує механізми генерації склад-
них типів даних (контракт, портфель тощо)
до більш простих, що є в МП. Але фунда-
ментальні типи даних МП підтримуються
спеціальними засобами сучасних опера-
ційних середовищ (Sun IBM,
Microsofts.Net, CORBA, СОМ, JAVA й ін.).
До них відносяться проміжний посередник
типу stub, skeleton брокерного типу, що
виконує перебудову типів даних від клієн-
та для передачі серверу і навпаки, а також
вихідної код типу MISL у проміжному
коді або EXE для виконання в системах
Linux, Windows Server, MS.Net, IBM Web
Sphere і т. п. [2].
Модель взаємодії операційних се-
редовищ між собою розглядається нами
як послідовність дій з інтеграції програ-
ми, створеної у одному середовищі в інше.
Загальна схема розробки розподілених си-
стем у середовищі ГП на основі інтерфей-
сів програм і моделей взаємодії для сере-
довищ IBM, VS.NET, JAVA, CORBA по-
казано на рис. 2.
Теоретичні та методологічні основи програмування
15
У центрі цієї cхеми розміщена систе-
ма Eclipse, яка виконує по сутності функ-
цію інтегратора програм у репозіторій з
інших середовищ Інтернету та адміністра-
тора цього репозиторію по збереженню,
відбору і застосуванню готових програм-
них ресурсів типу КПВ, а також для вико-
нання ПП, виготовлених у цих середовищах.
Рис. 2. Модель взаємодії розподіле-
них систем з Eclipse
Деякі середовищі, наприклад, VS.Net
і JAVA вже мають прямі зв’язки і ство-
рюють одне інтегроване середовище.
У межах фундаментального проекту
проведено реалізацію моделей взаємодії
пар наступних операційних середовищ
Visual Studio ↔ Eclipse та CORBA↔
Visual Studio за участю студентів КНУ
імені Тараса Шевченка [14, 15].
Дамо короткий зміст процесів про-
ектування програм і забезпечення їх взає-
модії на прикладі вказаних пар середовищ.
Модель Visual Studio ↔ Eclipse
[14]. На прикладі побудови програм на
мові C# у середовищі Visual Studio, реалі-
зована модель взаємодії програм через
розміщення їх у репозиторій середовища
Eclipse. Взаємодія програми у мові C# у
середовищі Eclipse виконана через спеціа-
льний плагін Emonic та компонент NAnt із
платформи (.Net). Створені з них архіви
розархівуються при переносі їх в аналогі-
чні папки середовища Eclipse. Для їх вико-
нання в системі Eclipse створюється пус-
тий проект, потім натискується права
кнопка миші на назву цього проекту, із
контекстного меню вибирається пункт
Import → File System, й із файлової систе-
ми імпортується вибраний проект. У кон-
фігураційному файлі проекту (.build) змі-
нюється його вміст шляхом завдання ви-
хідних файлів, бібліотеки та файли ресур-
сів. Тобто при переході в середовище
Eclipse використовуються вихідні файли
програми, dll-бібліотеки VS.Net та файли
ресурсів (.resx). Коли необхідно знов пе-
рейти із цього середовищf в Visual Studio,
то весь проект імпортується. Обчислення
програми і її зміни можуть виконуватися
як у середовищі Eclipse, так і Visual Stu-
dio. Net.
Модель CORBA↔ Visual Studio
[15]. На експериментальному прикладі
програми у мові Java пакету Java
Development Kit в системі CORBA і від-
повідної компіляції IDL-опису її інтер-
фейсу брокер ORB, що створює клієнтсь-
кий і серверний посередник Stub і
Skeleton, продемонстровано перенос цієї
програми на платформу Microsoft.Net за
допомогою пакета IIOPNet. Тобто реаліза-
ція задачі взаємодії прикладних компоне-
нтів, розроблених у заданих середовищах
Microsoft.Net (клієнтська частина) і Java
(серверна частина), виконана через систе-
му CORBA. У платформі MS.Net значення
після повернення мають тип
Теоретичні та методологічні основи програмування
16
MarshalByRefObject. Це дозволяє тракту-
вати всі звертання до полів і методів об'єк-
та як вилучені виклики. Забезпечення вза-
ємодії програм між двома середовищами
Java і MS.NET виконано наступними про-
цедурами: компіляція серверної частини
застосування; створення серверного
Skeleton й опис інтерфейсного об'єкта мо-
вою IDL за допомогою утиліти rmic; пере-
творення отриманого IDL-опису в CLS-
сумісну бібліотеку, використовуючи пакет
IIOPNet приєднання бібліотеки до клієнт-
ської частини застосування для викорис-
тання відповідного сервісу.
Усі дані, що обмінюють між собою
програми клієнта і сервера, є строкові,
тобто є екземплярами класу String. У сис-
темах програмування строки зберіга-
ються усередині об’єктів String, як по-
слідовність символів Unicode фіксованої
довжини, тобто відповідають стандарт-
ному типу даних CORBA wstring і викори-
стовуються для передачі даних через сис-
тему CORBA.
Розміщення побудованої у мові Java
програми у репозиторій Eclipse виконуєть-
ся через плагін. При цьому формується па-
спорт програми (табл. 1), відповідно шаб-
лону специфікатора програм, який за своі-
му змістом наближений до специфікаторів
(програм, підсистем, систем, проектів, мо-
дулів), прийнятих у системі Grid [10].
У межах ГП розроблений набір мо-
делей: взаємодії (програм, систем і сере-
довищ), а також моделей варіабельності
(варіантності, змінюваності) [9, 10], живу-
чості (надійності, відмовостійкості, відно-
влюваності, адаптивності) [11] та життє-
вого циклу (ТЛ, Product Line), конфігура-
ційні (збіркові), трансформаційні, генера-
ційні моделі [3] тощо. При цьому Eclipse
виконує функції інтегратора готових для
використання програм у репозиторій та
керування інструментами і засобами, що
входять до складу інтегрованого середо-
вища ГП.
Таблиця 1. Шаблон специфікатора
Назва
пара-
метрів
Зміст параметрів
Розроб-
ник
Прізвище, ім’я по-батькові автора, власника
компонента, що додається
Дата
ство-
рення
Дата створення КПВ автором (дата кінцевої,
атестованої, специфікованої версії продукту)
Дата
зміни Дата внесення змін у КПВ
Версія Версія компонента повторного використання
Плат-
форма
Платформа, для якої створювався КПВ та на
якій перевірена його працездатність
Опера-
ційна
система
Операційна система, для якої створювався
КПВ та на якій перевірена його працездат-
ність
Розмір Загальний розмір КПВ (продукту, докумен-
тації тощо)
Опис
Короткий опис КПВ, список внесених змін,
системні вимоги, вимоги до користувачів,
список необхідних програм для коректної
роботи, довідка тощо
Прави-
ла ви-
корис-
тання
Особливий опис КПВ, згідно побажань
автора, правил розповсюдження тощо
Зокрема, ця система забезпечує до-
ступ до репозиторію програм і інтерфейсів
користувачу ГП, а також до системи
PROTÉGÉ для створення онтології деяко-
го домену й отримання інформації про ті
домени, які представлені в системі ГП.
Інтерфейс як головний пара-
метр запропонованих моделей
взаємодії
До нинішнього часу розроблені ін-
терфейси різного призначення, які є го-
ловним елементом при збиранні складних
програм із готових програм типу КПВ
[6, 7]. Нині використовуються інтерфейси
програм, мов, даних, сервісів, процесів:
– інтерфейс модульний, програмний
(RPC, RMI, IDL, API, ISO тощо);
– міжмовний інтерфейс (Java Native
Interface, SIDL– Scientifical IDL,
Fundamental Data Types, GDT – General
Data Types);
– сервісний інтерфейс (Icontract, web,
ISO);
Теоретичні та методологічні основи програмування
17
– проміжний інтерфейс (Middleware,
Virtualware, ISO, міжсистемний, між– се-
редовищний, між клієнтом і сервером то-
що);
– технічний інтерфейс (стандарт SEI
на інтерфейсну карту МПО–16Е–2).
У залежності від видів сучасних се-
редовищ у табл. 2 наведено їх перелік, ін-
терфейси і програмні елементи.
Таблиця 2. Типи інтерфейсів
Середовище
виготовлення
Інтерфейс
взаємодії
Програмні
елементи
IBM Sphere RPC Модуль, про-
грама
MS.Net, VSTS.Net MSIL Програма
CОRBA
(Skeleton)
ORB Об’єкт (stub)
JAVA RMI Розподілені
ПС, програма
COM API Компонент
WCF Icontact Програма, сис-
тема, розподі-
лене ПС
GRID Transport
Connectivity
Компонент,
система, мо-
дуль, пакет
Eclipse Plug-in Системи і ін-
струменти
Наведені інтерфейси застосовуються
у середовищах обчислення розроблених
для спеціально доменів та готових елеме-
нтів – КПВ, assets, reuses, які можуть
об’єднуватися віртуальним композіром і
виконуватися за допомогою нових хмар-
них засобів (WCloud, Azure, Amazon,
Mech, Wаpps), побудованих фірмами IBM-
VSphere та Microsoft (рис. 3).
На даному рисунку показана техно-
логічна схема розподіленої обробки різ-
норідних програм у мережному середови-
щі, базованому на готових програмах і си-
стемах сервера “Системи” та сховищах
даних сервера “Сховища”, що займають
центральне місце у мережному середови-
щі. Виходячи з того що ці сервери підтри-
мують обчислення програм за даними, що
знаходяться у сховищах даних, це се-
редовище завдає новий віртуальний про-
шарок між Internet і засобами Cloud
Computing. Цей прошарок надає сервіс з
обробки даних великих розмірів у режимі
online з віртуальних серверів Web-services,
Sky-driven (www.cmswire.com), які забез-
печують майбутню віртуальну обробку да-
них. Такий напрям отримав назву хмарних
обчислень задач глобального типу
(Http://lenta.ru/articles/2010). Ці засоби зо-
рієнтовані на збереження, синхронізацію
даних великих розмірів даних та доступ
до глобальних сховищ даних on-line, ви-
кладених на віддалених серверах тощо.
Рис. 3. Схема обчислення програм
у віртуальному середовищі VSphere
Організація хмарних обчислень по-
требує реалізації нових методів взаємодії
готових ресурсів і сервісів (наприклад,
Теоретичні та методологічні основи програмування
18
через конфігураційний файл для обчис-
лення наукових задач. Наведені сучасні
середовища підтримують відповідні прин-
ципи взаємодії (див. табл. 2) за наступни-
ми типами інтерфейсів:
1) через брокер запитів між клієнтом
і сервером, щодо отримання даних від stub
клієнта, їх обробку під формати
комп’ютера, передачу їх серверу і зворот-
но від skeleton сервера, що обробляє ре-
зультати обчислювань до форматів даних
клієнта;
2) через проміжний прошарок за-
гальносистемних засобів, сучасних сере-
довищ або віртуальних серверів хмарних
обчислень [12, 13];
3) через пряму зборку трансльова-
них програм за різними МП і їх інтерфей-
сами у бібліотеках, наприклад, MS.Net
[15].
Перший тип інтерфейсу практично
забезпечується брокером ORB для класу
МП у середовищі CORBA. Зборка компо-
нентів базується на Client class з виклика-
ми інших, Stub class з конвертування да-
них, ORB class з передачі даних; Server
class зі створення сервентів та посилання
даних ORB; Skeleton class з конвертування
форматів даних та породження різних ви-
дів серверів [16].
Другий тип інтерфейсу забезпечує
взаємодію між компонентами, розміще-
ними на різних комп’ютерах через промі-
жний прошарок (middleware) шляхом по-
відомлень (наприклад, Java Message
Queue), віддаленого виклику процедур
RPC в MS Windows, ONS IBM, CORBA та
виклику методів RMI у Java. Модель
ISO/OSI також забезпечує проміжну взає-
модію на рівнях (фізичному, канальному,
мережному і транспортному) мережної
ОС. Верхній рівень моделі (прикладний)
забезпечує перетворення даних до транс-
портного рівня шляхом їх маршалінгу й
демаршалінгу за інтерфейсним stub.
Сеансовий рівень моделі передає дані ін-
шим рівням через транспортний канал за
механізмами посилань.
Третій тип інтерфейсу є проміжним
(MSIL), реалізованим в MS.Net за допомо-
гою таких бібліотек системи: CLR
(Common Language Runtime), CTS
(Common Type System) і CLS (Common
Language Specification). CLR забезпечує
виявлення і завантаження даних, керуван-
ня ними у відповідності до завдань розро-
бника програми. CTS визначає принципи
взаємодії із іншими, відповідно представ-
лення форматів мета–даних. Збірка різно-
мовних програм виконується засобами
CLS бібліотеки. Усі компілятори з МП
створюють модулі DLL або EXE у промі-
жній мові MSIL (Microsoft Intermediate
Language) як механізм зборки програми
незалежно від платформи, на якій вона бу-
де виконуватися. При її запуску вона кон-
вертується в специфічний код CPU, що ви-
конується на різних архітектурах
комп’ютерів [16].
Таким чином, у залежності від цілей
вироблення програм в якості середовища
вибирається те середовище, що найбільш
підходить для організації процесів розроб-
лення і зборки відповідних програмних
ресурсів у межах деякої ПрО. Коло про-
блем звужується, коли різні середовища
можуть взаємодіяти між собою, створюю-
чи одне велике, гнучке середовище з по-
ширеними можливостями щодо виробниц-
тва кінцевого ПП.
Новий підхід до забезпечення
взаємодії різних сучасних
середовищ у WCF
Головна ціль системи ГП міститься в
виготовленні ПП шляхом:
– побудови нових програм в одному
з обраних середовищ – VS.Net –C# і
CORBA Java;
Теоретичні та методологічні основи програмування
19
– специфікації збудованих програм і
заповнення шаблону специфікатора паспо-
рта для розміщення їх репозиторії сис-
теми ГП;
– вибору готових КПВ або програм
для збирання з них нових ПС для рішення
деяких задачі ПрО;
– перевірки інтерфейсів для збиран-
ня готових компонентів у ПС, тестування
цієї ПС, формування комплексного пас-
порту з занесенням його разом з готовим
продуктом у репозиторій системи Eclipse
тощо.
У системі ГП вперше зроблено спро-
бу об’єднати готові продукти, що отрима-
ні у різних середовищах, VS.Net – C# і
CORBA Java і зберігаються у репозиторії
Eclipse. ПП будуються різними мовами.
У кожному з обраних середовищ ГП реалі-
зується свій підхід до вирішення пробле-
ми взаємозв’язку різномовних або однако-
вої мови програм. Коли отриманий про-
дукт з одного середовища переноситься в
інше, в системі ГП є реалізований меха-
нізм взаємодії [17].
Водночас ця проблема вирішувалася
в межах WCF (Windows Communication
Foundation) [18] іншим способом, а саме,
за допомогою нового типу інтерфейсу, так
званого контракту (IContract), як складової
частини Consumer та Provider (рис. 4),
який не звільняє розробників від різного
роду конфліктів взаємодії.
Інтерфейс Icontract містить опис ат-
рибутів та операцій з передачі даних від
одного сервісного об’єкта клієнта (Service
consumer) до іншого (Service provider). Їх
опис дається у мові XML. Передачу ін-
терфейсів за контрактом виконує прото-
кол, в якому задаються атрибути та опера-
ції інтерфейсу для передачі відповідному
об’єкту розподіленої системи при їх
об’єднанні.
Рис. 4. Зв’язок двох сервісних
компонентів в архітектурі WCF
В результаті проведеного досліджен-
ня щодо використання нового типу інтер-
фейсу взаємодії сервісів через контракт у
системі WCF для розроблення з наявних
сервісів деяких розподілених систем. У
межах проекту WCF визначено чотири ви-
ди інтерфейсів-контрактів для забезпечен-
ня взаємозв’язків компонентів між собою:
контракти служб описують опера-
ції, що викликаються клієнтом на сервісі;
контракти даних визначають типи
даних, що приймаються і передаються
службою, а також непрямі контракти убу-
дованих типів (таких як int, float, string і
тощо);
контракти помилок визначають по-
милки, що втримуються службою для пе-
редачі їх клієнтам;
контракти повідомлень – механізм
прямої взаємодії об’єктів через повідом-
лення.
Повідомлення специфікується мо-
вою XML і подається протоколом SOAP в
XML наступного виду:
<?xml version=»1.0» ?>
<env:Envelope xmlns:env=»
http://www.cbsystematics.com»>
<!—Конверт протоколу SOAP
<env:Header>
<!— Заголовок протоколу SOAP
Теоретичні та методологічні основи програмування
20
</env:Header> <env:Body>
<!—Тело протоколу SOAP
</env:Body> </env:Envelope>
При взаємодії між користувачем і
провайдером можуть виникнути різного
роду конфлікти (рис. 5).
Рис. 5. Схема взаємодії програм середовищ
через протоколи і можливі конфлікти
До варіантів конфліктів належать:
– несумісність типів даних, які пе-
редаються в інтерфейсах кожного компо-
нента, що об’єднується разом з іншою різ-
номовною програмою. Наприклад, переда-
ча даного типу – ціла програму, де цей па-
раметр поданий, як символьний;
– відмінність конфігураційних файлів
ПП за структурою та змістом інформації,
що необхідно використати при обчислен-
ні тої чи іншої програми з ПС;
– різниця в мовах програмування, що
використовуються для розробки окремих
програм;
– відмінність порядку в опису пара-
метрів протоколів передачі інформації між
різними сервісними об’єктами;
– відмінності в архітектурі платформ
об’єктів клієнта і серверу тощо.
Для реалізації деяких конфліктів ге-
неруються відповідні програми чи компо-
ненти з відокремленням конфліктних си-
туацій. Іншим способом подання проблем
передачі й обробки даних є генерація
типів даних відповідно стандарту
ISO/IEC-11404.
Надалі у майбутньому проекті, як
продовженню фундаментального проекту
ІІІ–07–01 для рішення цієї проблеми, бу-
дуть прийняті проектні рішення щодо ви-
користання сервісів при забезпеченні вза-
ємодії програм у сучасних середовищах
для проведення обчислень за готовому ПП.
1. Андон П.І., Лавріщева К.М. Розвиток фаб-
рик програм в інформаційному світі //
Вісник НАН України. – 2010.– № 10.–
C. 15–41.
2. Лавріщева К.М. Концепція індустрії нау-
кового софвера і підхід до обчислення нау-
кових задач // Проблеми програмування. –
2011.– № 1. – С. 3–17.
3. Лавріщева К.М. Генерувальне програму-
вання програмних систем і сімейств // Про-
блеми програмування. – 2009.– № 1. –
С. 3–16.
4. Лаврищева Е.М., Грищенко В.М. Сбороч-
ное программирование. Основы индустрии
программных продуктов. – Второе изда-
ние. – Киев: Академпериодика, 2009.–
371 с.
5. Анісімов А.В., Лавріщева К.М., Шевчен-
ко В.П. Про індустрію наукового софтвера.
– Conf. Theoretical and Applied Aspects of
Cybernetics, Kiev, 2011, Ukraine.
6. Лавріщева К.М. Програмна інженерія. – К.:
Академперіодика. – 2008.–319 с.
7. Лаврищева Е.М. Интерфейс в программи-
ровании // Проблеми програмування.–
2007. – № 2. – С. 126–139.
8. Лаврищева Е.М. Проблема интеропера-
бельности разнородных объектов, компо-
нентов и систем. Подходы к ее решению //
Матер. 7-ї Міжнар. конф. з програмування
“УкрПрог – 2008”. – 2008. – С. 28–41.
9. Лавріщева К.М., Слабоспицька О.О., Ко-
валь Г.І., Колесник А.О. Теоретичні аспек-
ти керування варіабельністю в сімействах
програмних систем. – Вісник КГУ, серія
фіз.-мат. наук. – 2011. – № 1. – С. 151–158.
10. Колесник А.Л. Механізми забезпечення
варіабельності в сімействах програмних
систем // Проблеми програмування. – 2010.
– № 1. – C. 35 – 44.
Теоретичні та методологічні основи програмування
21
11. Ігнатенко П.П., Бистров В.М. Особливості
забезпечення життєздатності програмних
систем в умовах генеруючого програму-
вання // Проблеми програмування. – 2008.
– № 2–3. – С. 270–278.
12. Таковицкий О. Технология Grid computing.
– С. 1–9.
13. Ильин В.А. Сетка с облаками для интернета
// В мире науки.– 2010.–С. 83–85.
14. Основы инженерии качества программных
систем / Ф.И. Андон, Г.И. Коваль, Т.М. Коро-
тун, Е.М. Лаврищева, В.Ю. Суслов // 2-е
изд. – Киев: Академпериодика, 2007. –
672 с.
15. Радецький І.О. Один з підходів до забезпе-
чення взаємодії середовищ MS.NET і
ECLIPSE // Проблеми програмування. –
2011. – № 2. – С. 43–49.
16. Островский А.В. Подход к обеспечению
взаимодействия программных сред JAVA и
MS.NET // Проблеми програмування.–
2011. – № 2. – С. 34–42.
17. Коваль Г.І., Колесник А.Л., Лавріщева К.М.,
Слабоспицька О.О. Удосконалення проце-
су розроблення сімейств програмних сис-
тем елементами гнучких методологій //
Проблеми програмування (Спецвипуск
конф. УкрПрог–2010). – 2010. – № 2–3. –
C. 261 – 270.
18. Слабоспицька О.О. Технологічна модель
процесу автоматизованого виробництва
сімейств програмних систем // Проблеми
програмування. – 2011. – № 1. – С. 39–48.
19. Windows Communication Foundation –www.
edu.cbsycemantic.com.
Отримано 23.04.2011
Про автора:
Лавріщева Катерина Михайлівна,
доктор фізико-математичних наук,
професор, завідуюча відділом.
Місце роботи автора:
Інститут програмних систем
НАН України,
03187, Київ-187,
проспект Академіка Глушкова, 40.
Тел. (044) 526 3470.
|