1. Еталонна модель

У цьому підрозділі обговорено Еталонну модель оброблення транзакцій, Еталонну модель POSIX-OSE (об’єднана з обробленням транзакцій) та інші важливі аспекти оброблення транзакцій.

  1. Еталонна модель оброблення транзакцій. Наведена в Настанові модель оброблення транзакцій доповнює Еталонну модель POSIX-OSE. Незавершена робота усередині таких груп, як ISO/IEC JTC1/SC21 (OSI-DTP) може закінчитися створенням більш придатної, ніж описана тут Ета­лонна модель оброблення транзакцій. У такому випадку створена модель буде описана і включена до Еталонної моделі POSIX-OSE. До цього часу буде використано чинну модель як зручний засіб для опису необхідних служб.

Хоча служби оброблення транзакцій зазвичай вважали застосуванням БД, їхня застосовність по­ширюється далі. Проте, у наведеному описі моделі оброблення транзакцій, як зображено на рисунку 14, служби транзакцій можна розглядати як розширене подання БД в Еталонній моделі POSIX-OSE, поданій на рисунку 11. Щодо транзакцій прикладної програми система оброблення транзакцій має додаткові можливості, забезпечувані попри системи БД. Для прикладної програми служби транз­акцій підтримує в АРІ так званий АР! адміністратор транзакцій (transaction manager АРІ) (рису­нок 14). Для зручності обговорення моделі будемо говорити про адміністратора транзакцій (ТИ — transaction manager).

Рисунок 14 — Модель оброблення транзакцій



Транзакційна прикладна програма викликає служби, надані адміністратором ресурсів ТР(ТР resource manager)^ (наприклад, адміністратором БД) через АРІ адміністратора ресурсів TP (ТР — resource manager). АРІ адміністратора транзакцій та АРІ адміністратора ресурсів ТР називають АРІ служби оброблення транзакцій (transaction services АРІ) і забезпечують усі служби, необхідні транз- акційним прикладним програмам.

ACID-властивості (4.6.1) підтримує адміністратор ресурсів ТР (TPRM — ТР resource manager) для кожного керованого ресурсу, координує адміністратор транзакцій. Інтерфейс між адміністрато­ром ресурсів ТР і адміністратором транзакцій називають інтерфейс адміністратора транзакцій/адмі- ністратора ресурсів ТР (TM/TPRM).

ACID-властивості можна застосовувати не тільки до ресурсів типу БД, але і до інших неявних ресурсів. Наприклад, транзакція для розподілу готівки, перед обліком завершення транзакції і мо­дифікації задіяних рахунків, може очікувати повідомлення пристрою розподілу готівки про завершення його роботи. Подібна ілюстрація також показує обмеження керування ресурсами оброблення транз­акцій. Комп’ютер може повідомити про завершення, а механічна проблема може не допустити пра­вильного розподілу готівки, що не буде виявлено системою.

Крім TPRM баз даних і різноманітних TPRM, відмінних від БД, існує третій клас TPRM комунікацій (cTPRm — communication TPRM). Служби cTPRM використовують у випадках, коли дві транзакції взаємодіючих прикладних програм повинні зв’язатися в контексті тієї самої транзакції. На рисунку 14 наведено найпростіше зображення такої моделі. Також повинні бути показані cTPRM, що відобра­жають комунікації в розподілених транзакціях. Для їхнього відображення потрібні були б багатора­зові екземпляри моделі (одна для кожної взаємодіючої транзакції прикладної програми). Лінії, що з’єдну­ють cTPRM, вказують на наданий cTPRM шлях комунікацій для транзакцій прикладної програми. Принаймні два різновиди комунікацій ідентифіковані як корисні для взаємодіючих транзакцій приклад­них програм: клієнт/сервер (RPC, одиночний запит/відповідь) І діалоговий (діалог «рівний із рівним» — peer-to-peer).

    1. Еталонна модель POSIX-OSE обробленням транзакцій. Модель оброблення транз­акцій, зображена на рисунку 15, об’єднана з Еталонною моделлю POSIX-OSE.

  1. Служби

У 4.6.4.1 описані служби, що їх під'єднують через АРІ служб оброблення транзакцій. Служби, що забезпечують розподілене оброблення транзакцій, описані в 4.6.4.2. У 4.6.4.3 описані загальні служби, що зазвичай виконують адміністративні функції.

  1. Служби АРІ. АРІ служб оброблення транзакцій надає прикладному програмісту різні послуги: розмежування транзакцій:

— вказівка початку транзакції;

  1. Не плутайте термін адміністратор ресурсів ТР (ТР resource manager) з терміном служба управління ресурсами (resource management services), що є різновидом служб, описаних у більшості категорій служб, класифікованих у цьому

  • вказівка успішного (commit) чи невдалого (rollback) завершення;

  • припинення і продовження режиму транзакцій (зробити незавершену роботу чи повертатися до пройденої точки програми для повторного пуску у разі завершення транзакції), що можна подати як вкладання роботи негрупової операції (nontransaction) усередину транзакції;

комунікації з прикладними програмами, що обробляють транзакції:

  • викликають транзакцию іншої прикладної програми (можливо, вилученої) усередині контексту транзакції;

  • відкривають діалог, ініціюють транзакцію, надсилають/одержують повідомлення до/з транз­акції іншої прикладної програми (можливо, вилученої), усередині контексту транзакції.

Прикладне програмне
забезпечення


Прикладна плат-
форма


С

Зовнішнє
середовище

лужби оброблення транзакцій в АРІ:
  • встановлення меж трансакції;

  • коммуникації між застосуванними;

  • подання (відтворення);

  • планування транзакцій програми;

  • формування черги повідомлень транзакції;

  • платформнонезалежна оброблення виняткових ситуацій;

  • параллельне виконання;

  • управління ресурсами робочої області

Служби оброблення транзакцій в ЕЕІ:

  • міжопераційна взаємодія;

  • двофазова фіксація (two-phase commit);

  • уведення діалогу

Рисунок 15 — Еталонна модель служб оброблення транзакцій POSIX OSE

Примітка. Ці служби викликають під час оброблення розподілених транзакцій.

служби подання:

  • зв’язуються з терміналами через орієнтований на записування, незалежний від пристроїв інтер­фейс обслуговування подання. Для транзакцій прикладної програми уможливлено незалежність від пристроїв;

  • надсилають і одержують повідомлення до/з терміналів усередині контексту транзакції, наприк­лад, надіслані терміналам повідомлення не повинні фактично доставлятися до завершення (фіксації) транзакції;

безпосереднє планування транзакцій програми викликає початок транзакції прикладної програми з транзакції прикладної програми, що не є її частиною. Охоплює дві транзакції: одна запускає іншу. Фактичне планування другої транзакції може залежати від завершення вхідної (первісної) транзакції;

пакетне І відстрочене планування транзакцій програми:

  • ініціює запит про виконання транзакції іншої програми для розміщення у черзі; тобто па­кетування. Охоплює дві транзакції: одна запускає іншу. Фактичне планування другої транзакції може залежати від завершення первинної транзакції;

  • враховує специфікацію часу старту з розміщеними в черзі запитами; тобто відстроченими запитами;

. — враховує призначення пріоритетів розміщених у черзі запитів.

Примітка. Фактичне оброблення повідомлень може залежати від завершення первинної транзакції.

  • незалежне від платформи оброблення виняткових ситуацій, коли інформують прикладні про­грами, що використовують транзакції, про виняткові ситуації в системі І застосуванні через набір не­залежних від платформи класів виняткових ситуацій, типів і кодів. Транзакціям прикладної програми забезпечується справжня мобільність;

  • паралельне виконання робить два або більше сегменти транзакцій прикладної програми пара­лельно здійсненними;

  • керування ресурсами робочої області підтримує "у пам’яті" структури даних І змінні, що фіксо­вані чи повертаються (відкочуються) з транзакцією . Допускає прості відкочування і перезапуск (ре­старт) транзакції прикладної програми.

Примітка. Деякі зі згаданих служб подібні, але семантично відрізняються від служб, що подібно звучать, в інших підроз­ділах розділу 4 і перелічені тут у зв’язку з тим, що вони — "transactional": тобто для перелічених служб передбачають поняття транзакції й АСІО-властиеостІ.

Адміністратори ресурсів ТР підключають служби, використовувані транзакцією прикладної про­грами і видимі АРІ адміністратора ресурсів ТР, наприклад, АРІ служб бази даних; див. 4.4.4.1.

Примітка. Адміністратори ресурсів ТР загалом "захищають" критичний ресурс. Бази даних — добрий приклад адмініст­раторів ресурсів ТР, де ресурс, фактично захищений, — це дані. Часто дані відбивають кількість таких реальних ресурсів, як збережувана готівка. У цьому випадку матеріальний ресурс опосередковано захищений адміністратором ресурсу ТР. Важливість для фірми забезпечення точними даними (що визначають кількість грошей) очевидна. З іншого боку, інші адмініст­ратори ресурсів ТР могли б захищати фактичний матеріальний ресурс. Приклад подібного адміністратора ресурсів ТР — прог­рама. що керує висувною шухлядою з готівкою автоматизованої машини касира. Захищений ресурс — готівка у висувній шухляді. Фактичний АРІ адміністратора ресурсів ТР, що захищає такий ресурс, міг би включати здатність до зменшення кількості грошей у висувній шухляді (переміщенням їх Із машини). Транзакція прикладної програми, використовуючи два адміністратори ресурсів ТР (штатний адміністратор БД, що стежить за рівновагою в рахунках, і адміністратор ресурсів ТР наявних засобів у висувній шух­ляді касового апарата) націлена на забезпечення двома адміністраторами ресурсів ТР взаємного зменшення готівки і рівноваги поточного рахунку в контексті одиничної транзакції (тобто з ACID- властивостями).

Загалом АРІ адміністратора ресурсів ТР звертається для цього до таких служб:

  • збільшення або зменшення повноцінного ресурсу на певну його кількість;

  • визначання кількості повноцінного ресурсу, що залишився.

Звісно, неможливо вказати все розмаїття специфічних можливостей для конкретних адміністра­торів ресурсів ТР.

  1. .Є.4.2 Служби ЕЕІ. Коли два або більше комп’ютерів у розподіленому середовищі залучають в ту саму транзакцію, під’єднуються служби взаємозалежного функціювання двох прикладних платформ (для передавання глобальних ідентифікаторів транзакції, взаємної участі в процесі блоку­вання, взаємної участі у відновленні).

  2. .6.4.3 Служби керування ресурсами OLTP. Служби, перелічені в цьому підрозділі, не під’єд- нують через АРІ чи ЕЕІ.

  • служби адміністрування. Управляють функціюванням служб оброблення транзакцій, включа­ючи здатність призначати пріоритети диспетчеризації (координації) для індивідуальних транзакцій прикладної програми;

  • служби актуального контролювання. Збір даних із використання ресурсів із метою аналізу ефективності й обліку (даних щодо використання ресурсів служб оброблення транзакцій; процеси, розміри під’єднань тощо);

  • служби моделювання. Прогнозування необхідних ресурсів системи й сподіваної ефектив­ності під час оброблення даного робочого навантаження в поточній транзакції;

  • служби каталогу (Directorv/Namespace). Відображення Імен в адреси;

  • служби відновлювання/перезапуску (Recovery/Restart). Відновлювання і перезапуск тран­закцій, що включають одну або більше транзакційних прикладних програм, які використовують один чи більше адміністраторів ресурсів ТР;

  • тест-служби. Автоматична генерація тестів для моделювання робочого навантаження тощо;

  • служби конфігурації системи. Заміна або додавання транзакційних прикладних програм без припинення роботи середовища виконання, додавання служб для керування асоціативним пулом (пулом під’єднань);

  • класи відповідності. Визначення формальних підмножин OLTP-функційностІ як для робочих місць (PC/workstation-реалізацій), так і для host-комп’ютер/серверів може вимагати відповідності. OLTP-функціональність, необхідна для робочих місць, відрізняється від host-комп’ютер/серверної функціональності.

  1. Стандарти, специфікації і недокументовані служби

Див. таблицю 15.


Таблиця 15 — Стандарти оброблення транзакцій

Служби

Тип

Специфікація

Підрозділ

Визначення меж транзакції

G

не доступна

4.6.5.3

Комунікацій між прикладними програмами, що використовують транзакції

G

не доступна

4.6.5.3

Подання

G

не доступна

4.6.5.3

Планування транзакцій програми

G

не доступна

4.6.5.3

Формування черги повідомлень транзакцій

G

не доступна

4.6.5.3

Незалежного від платформи оброблення виняткових ситуацій

S

ISO/IEC 10026-1:1998

4.6.5.1

Паралельного виконання

S

ISO/IEC 10026-1:1998

4.6.5.1

Керування

G

не доступна

4.6.5.3

Актуального контролювання

G

не доступна

4.6.5.3

Моделювання

G

не доступна

4.6.5.3

Каталогу (Directory/Namespace)

G

не доступна

4.6.5.3

ВІдновлювання/перезапуску (Recovery/Restart)

G

не доступна

4.6.5.3

Тестування (тест-служби)

G

не доступна

4.6.5.3

Конфігурації системи

G

не доступна

4.6.5.3