Відомості про черги повідомлень і про технології обміну повідомленнями
Черги повідомлень Microsoft Windows надають розробникам додатків легкий, швидкий і надійний спосіб обміну інформацією з додатками шляхом обміну повідомленнями. Для тих, хто не знайомий з технологією MessageQueue. на даній сторінці представлений короткий огляд основних термінів і понять.
message - це одиниця даних, що відправляються одним комп'ютером іншого комп'ютера. Повідомлення може бути дуже простим, що складається з одного рядка тексту, або більш складним, що включає навіть вбудовані об'єкти.
Повідомлення відправляються в черзі. Черга повідомлень - це контейнер, в якому зберігаються повідомлення в процесі їх пересилки. Менеджер черги повідомлень виконує роль посередника, передаючи повідомлення з джерела в місце призначення. Головне призначення черзі полягає в створенні маршруту і гарантії доставки повідомлень. Якщо одержувач недоступний під час відправки повідомлення, чергу зберігає повідомлення до тих пір, поки воно не буде доставлене.
Технологія обміну повідомленнями Microsoft Message Queuing надає функції обміну повідомленнями та використання черг повідомлень для будь-яких додатків. Крім того, дана технологія забезпечує можливість обміну повідомленнями між будь-якими комп'ютерами, на яких встановлена операційна система Microsoft Windows, незалежно від того, об'єднані вони в одну локальну мережу чи ні і чи знаходяться на зв'язку в один і той же час.
Мережа черг повідомлень - це будь-яка група комп'ютерів, які мають можливість обмінюватися повідомленнями один з одним. Різні комп'ютери в мережі грають різні ролі в організації процесу обміну повідомленнями. Деякі комп'ютери надають маршрутну інформацію для визначення шляху відправки повідомлень, на інших зберігається ключова інформація про всю систему, а треті просто відправляють і приймають повідомлення.
Адміністратор системи черг повідомлень також привласнює одному або декількох комп'ютерів мережі роль маршрутних серверів. Маршрутний сервер визначає, яким шляхом буде доставлено повідомлення, оцінюючи вартість різних посилань на вузли і встановлюючи найшвидший і ефективний шлях для доставки повідомлення через кілька вузлів.
На наступному малюнку показана типова конфігурація вузлів системи черг повідомлень і схема їх взаємодії:
Маршрутизація повідомлень між вузлами
В процесі розробки можна не турбуватися про деталі маршрутизації, оскільки ефективна доставка повідомлень може бути налаштована в мережі черг повідомлень адміністраторами.
Загальні черзі тиражуються по всій мережі черг повідомлень і потенційно можуть бути доступні для всіх вузлів, підключених до мережі.
Приватні черзі не публікуються по всій мережі. Вони доступні тільки для локального комп'ютера, на якому розташовані. Приватні черзі доступні тільки для тих додатків, які знають повний шлях або мітку черзі.
Адміністративні черзі містять повідомлення, що підтверджують отримання відправлених повідомлень всередині конкретної мережі черг повідомлень. При необхідності слід вказати адміністративну чергу для використання компонентами MessageQueue.
Черги відповідей містять відповідні повідомлення, які відправляються з додатком-відправнику, коли вихідне повідомлення отримано. При необхідності слід вказати чергу відповідей для використання компонентами MessageQueue.
Черги журналу вибірково зберігають копії повідомлень, що відправляються і копії повідомлень, які ви видалили з черги. На кожному клієнті черг повідомлень є одна чергу журналу, яка зберігає копії повідомлень, відправлених з даного комп'ютера. На сервері для кожної окремої черги створюється своя чергу журналу. Даний журнал відстежує повідомлення, видалені з пов'язаної з ним черги.
Архівна чергу зберігає копії повідомлень, які неможливо доставити, або повідомлень, термін дії яких закінчився. Якщо таке повідомлення було транзакційних, воно зберігається в архівній черзі особливого типу - в транзакционной архівної черзі. Повідомлення з вичерпаним терміном дії зберігаються на тому комп'ютері, на якому він закінчився. Додаткові відомості про періоди очікування і повідомленнях з вичерпаним терміном дії см. В розділі Властивості повідомлення за замовчуванням.
Черги звітів містять повідомлення про те, яким маршрутом повідомлення було доставлено до місця призначення, а також можуть містити тестові повідомлення. На одному комп'ютері може бути тільки одна черга звітів.
Приватні системні черзі - це серії приватних черг, які містять адміністративні повідомлення та повідомлення, які потрібні системі для обробки операцій з обміну повідомленнями.
У більшості функцій, виконуваних в додатках, використовуються загальні черги і містяться в них повідомлення. Однак в щоденній роботі, найімовірніше, буде використовуватися кілька різних системних черг, в залежності від потреб програми в додаванні записів в журнал, створенні підтверджень та інших спеціальних методах обробки.
При використанні синхронного зв'язку відправник запиту повинен дочекатися відповіді від передбачуваного одержувача перед тим, як перейти до інших завдань. Тривалість очікування повністю залежить від того, скільки часу піде у одержувача на обробку запиту і відправку відповіді.
Не слід плутати синхронне і асинхронне витягання повідомлень з відправкою повідомлень. Повідомлення відправляються завжди асинхронно.
Додаткові відомості про асинхронної обробки в чергах повідомлень см. В розділі Асинхронная обробка повідомлень.
Забезпечити захист змісту відправлених і отриманих повідомлень за допомогою таких дій:
Можна використовувати перевірку автентичності для перевірки джерела повідомлень, одержуваних додатками.
Можна використовувати шифрування для захисту повідомлень від несанкціонованого доступу або використання.
Можна використовувати аудит для запису імен користувачів, які намагалися отримати доступ до об'єктів черг повідомлень, типів операцій, які вони намагалися виконати, і того, чи були дані спроби успішні чи ні.