ід пропускної здатності і затримки взаємодії між потоками і типу переданих данних.также може згадуватися як межпотоковое взаємодія (англ. Inter-thread communication), міжпоточної взаємодія і міжпрограмний взаємодія (англ. Inter-application communication) Поряд з концепцією адресного простору є основою для розмежування адресного простору.
Топологія
Існує два підходи до організації маршрутів взаємодії інтегруються. Перший - пряму взаємодію інтегрованих систем за принципом «кожна з кожною», або «точка-точка». Другий - взаємодія через центральний вузол; подібну зіркоподібну архітектуру зазвичай звану «хаб + спиці». Топологія не залежить від фізичної архітектури інформаційної системи, а визначає логічні маршрути взаємодії та передачі даних між інтегрованими системами.
Точка-точка
При цьому підході інтегровані системи взаємодіють безпосередньо. Переваги підходу - простота, прозорість і відсутність необхідності в додатковому програмному забезпеченні. Однак, є й недоліки. По-перше, інтегровані додатки повинні спілкуватися з використанням однакових методів взаємодії і форматів викликів/даних. При зміні одного з додатків (якщо воно спричинило за собою зміну інтерфейсу взаємодії цього додатка) доводиться модифікувати або як мінімум перенастроювати всі інтегровані з ним системи. По-друге, в інформаційній системі підприємства з'являється занадто багато зв'язків, кожну з яких потрібно контролювати і підтримувати в працездатному стані.
Якщо взаємодіючих додатків багато, вартість супроводу інтегрованої таким чином інформаційної системи підприємства стає неприйнятно високою. Проте підхід «точка-точка» широко використовується. Це відбувається, як правило, в тих випадках, коли при взаємодії конкретних додатків необхідно передавати великі обсяги даних або забезпечувати нормований час взаємодії, а також якщо експлуатовані підприємства докладання мають вбудовані засоби взаємодії (це часто трапляється при впровадженні декількох систем від одного постачальника, а також якщо при розробці замовних програмних систем або впровадженні нових до них спочатку пред'являється вимога по взаємодії з уже наявними системами).
Тут, однак, таїться небезпека «повзучої» інтеграції, яка робить можливою ситуації, коли при необхідності поміняти систему XYZ несподівано виявляється, що зробити цього не можна, оскільки довідник оргструктури і співробітників вашого підприємства, історично що ведеться в XYZ , щоночі реплицируется ще в десяток систем.
Хаб + спиці
Взаємодія по типу «точка-точка» створює в інфраструктурі підприємства занадто багато зв'язків і вимагає узгодження інтерфейсів і форматів даних між взаємодіючими додатками. Ці недоліки покликана вирішити архітектура взаємодії, в якій всі додатки безпосередньо з'єднані тільки з центральним вузлом, вирішальним наступні завдання:
· організація маршрутизації взаємодії між інтегрованими додатками;
· перетворення форматів файлів і даних;
· забезпечення взаємодії додатків з використанням різних методів і протоколів взаємодії.
Завдяки введенню проміжної ланки, зменшується число зв'язків між додатками, усуваються прямі зв'язки, а система інтеграції стає більш гнучкою і дешевої в експлуатації. Якщо змінюється одне з інтегрованих програм, то - за умови правильно спроектованої системи інтеграції - потрібно буде модифікувати тільки одну зв'язок, між даними додатком і хабом.
Недоліком топології «хаб + спиці» є висока вартість придбання і складність програмного інструментарію, що грає роль хаба, а також брак фахівців, що мають досвід застосування подібних програмних засобів.
Огляд основних технологій
Буфер обміну (clipboard)
Бу? фер обме? на (англ. lt; # justify gt; Повідомлення WM_COPYDATA
Стандартне повідомлення для передачі ділянки пам'яті іншому процесу. Працює односпрямованнодіючих приймаючий процес повинен розцінювати отримані дані як read only. Посилати це повідомлення необхідно тільки за допомогою SendMessage, яка на відміну від PostMessage чекає завершення операції. Таким чином, який посилає потік підвисає на час передачі даних. Ви самі повинні вирішити, наскільки це прийнятно для вас. Це не має значення для невеликих шматків даних, але для великих обсягів даних або для real-time додатків цей спосіб навряд чи підходить.
Колективна пам'ять (shared memory)
Колективна пам'ять (англ. lt; # justify gt; 1. сервер отримує доступ до поділюваної пам'яті, використовуючи семафор;
2. сервер проводить...