Еталонна модель
У цьому підрозділі обговорено Еталонну модель оброблення транзакцій, Еталонну модель POSIX-OSE (об’єднана з обробленням транзакцій) та інші важливі аспекти оброблення транзакцій.
Еталонна модель оброблення транзакцій. Наведена в Настанові модель оброблення транзакцій доповнює Еталонну модель 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).
Еталонна модель POSIX-OSE обробленням транзакцій. Модель оброблення транзакцій, зображена на рисунку 15, об’єднана з Еталонною моделлю POSIX-OSE.
Служби
У 4.6.4.1 описані служби, що їх під'єднують через АРІ служб оброблення транзакцій. Служби, що забезпечують розподілене оброблення транзакцій, описані в 4.6.4.2. У 4.6.4.3 описані загальні служби, що зазвичай виконують адміністративні функції.
Служби АРІ. АРІ служб оброблення транзакцій надає прикладному програмісту різні послуги: розмежування транзакцій:
— вказівка початку транзакції;
Не плутайте термін адміністратор ресурсів ТР (ТР resource manager) з терміном служба управління ресурсами (resource management services), що є різновидом служб, описаних у більшості категорій служб, класифікованих у цьому
вказівка успішного (commit) чи невдалого (rollback) завершення;
припинення і продовження режиму транзакцій (зробити незавершену роботу чи повертатися до пройденої точки програми для повторного пуску у разі завершення транзакції), що можна подати як вкладання роботи негрупової операції (nontransaction) усередину транзакції;
комунікації з прикладними програмами, що обробляють транзакції:
викликають транзакцию іншої прикладної програми (можливо, вилученої) усередині контексту транзакції;
відкривають діалог, ініціюють транзакцію, надсилають/одержують повідомлення до/з транзакції іншої прикладної програми (можливо, вилученої), усередині контексту транзакції.
Прикладне програмне
забезпечення
Прикладна плат-
форма
С
Зовнішнє
середовище
встановлення меж трансакції;
коммуникації між застосуванними;
подання (відтворення);
планування транзакцій програми;
формування черги повідомлень транзакції;
платформнонезалежна оброблення виняткових ситуацій;
параллельне виконання;
управління ресурсами робочої області
Служби оброблення транзакцій в ЕЕІ:
міжопераційна взаємодія;
двофазова фіксація (two-phase commit);
уведення діалогу
Рисунок 15 — Еталонна модель служб оброблення транзакцій POSIX OSE
Примітка. Ці служби викликають під час оброблення розподілених транзакцій.
служби подання:
зв’язуються з терміналами через орієнтований на записування, незалежний від пристроїв інтерфейс обслуговування подання. Для транзакцій прикладної програми уможливлено незалежність від пристроїв;
надсилають і одержують повідомлення до/з терміналів усередині контексту транзакції, наприклад, надіслані терміналам повідомлення не повинні фактично доставлятися до завершення (фіксації) транзакції;
безпосереднє планування транзакцій програми викликає початок транзакції прикладної програми з транзакції прикладної програми, що не є її частиною. Охоплює дві транзакції: одна запускає іншу. Фактичне планування другої транзакції може залежати від завершення вхідної (первісної) транзакції;
пакетне І відстрочене планування транзакцій програми:
ініціює запит про виконання транзакції іншої програми для розміщення у черзі; тобто пакетування. Охоплює дві транзакції: одна запускає іншу. Фактичне планування другої транзакції може залежати від завершення первинної транзакції;
враховує специфікацію часу старту з розміщеними в черзі запитами; тобто відстроченими запитами;
. — враховує призначення пріоритетів розміщених у черзі запитів.
Примітка. Фактичне оброблення повідомлень може залежати від завершення первинної транзакції.
незалежне від платформи оброблення виняткових ситуацій, коли інформують прикладні програми, що використовують транзакції, про виняткові ситуації в системі І застосуванні через набір незалежних від платформи класів виняткових ситуацій, типів і кодів. Транзакціям прикладної програми забезпечується справжня мобільність;
паралельне виконання робить два або більше сегменти транзакцій прикладної програми паралельно здійсненними;
керування ресурсами робочої області підтримує "у пам’яті" структури даних І змінні, що фіксовані чи повертаються (відкочуються) з транзакцією . Допускає прості відкочування і перезапуск (рестарт) транзакції прикладної програми.
Примітка. Деякі зі згаданих служб подібні, але семантично відрізняються від служб, що подібно звучать, в інших підрозділах розділу 4 і перелічені тут у зв’язку з тим, що вони — "transactional": тобто для перелічених служб передбачають поняття транзакції й АСІО-властиеостІ.
Адміністратори ресурсів ТР підключають служби, використовувані транзакцією прикладної програми і видимі АРІ адміністратора ресурсів ТР, наприклад, АРІ служб бази даних; див. 4.4.4.1.
Примітка. Адміністратори ресурсів ТР загалом "захищають" критичний ресурс. Бази даних — добрий приклад адміністраторів ресурсів ТР, де ресурс, фактично захищений, — це дані. Часто дані відбивають кількість таких реальних ресурсів, як збережувана готівка. У цьому випадку матеріальний ресурс опосередковано захищений адміністратором ресурсу ТР. Важливість для фірми забезпечення точними даними (що визначають кількість грошей) очевидна. З іншого боку, інші адміністратори ресурсів ТР могли б захищати фактичний матеріальний ресурс. Приклад подібного адміністратора ресурсів ТР — програма. що керує висувною шухлядою з готівкою автоматизованої машини касира. Захищений ресурс — готівка у висувній шухляді. Фактичний АРІ адміністратора ресурсів ТР, що захищає такий ресурс, міг би включати здатність до зменшення кількості грошей у висувній шухляді (переміщенням їх Із машини). Транзакція прикладної програми, використовуючи два адміністратори ресурсів ТР (штатний адміністратор БД, що стежить за рівновагою в рахунках, і адміністратор ресурсів ТР наявних засобів у висувній шухляді касового апарата) націлена на забезпечення двома адміністраторами ресурсів ТР взаємного зменшення готівки і рівноваги поточного рахунку в контексті одиничної транзакції (тобто з ACID- властивостями).
Загалом АРІ адміністратора ресурсів ТР звертається для цього до таких служб:
збільшення або зменшення повноцінного ресурсу на певну його кількість;
визначання кількості повноцінного ресурсу, що залишився.
Звісно, неможливо вказати все розмаїття специфічних можливостей для конкретних адміністраторів ресурсів ТР.
.Є.4.2 Служби ЕЕІ. Коли два або більше комп’ютерів у розподіленому середовищі залучають в ту саму транзакцію, під’єднуються служби взаємозалежного функціювання двох прикладних платформ (для передавання глобальних ідентифікаторів транзакції, взаємної участі в процесі блокування, взаємної участі у відновленні).
.6.4.3 Служби керування ресурсами OLTP. Служби, перелічені в цьому підрозділі, не під’єд- нують через АРІ чи ЕЕІ.
служби адміністрування. Управляють функціюванням служб оброблення транзакцій, включаючи здатність призначати пріоритети диспетчеризації (координації) для індивідуальних транзакцій прикладної програми;
служби актуального контролювання. Збір даних із використання ресурсів із метою аналізу ефективності й обліку (даних щодо використання ресурсів служб оброблення транзакцій; процеси, розміри під’єднань тощо);
служби моделювання. Прогнозування необхідних ресурсів системи й сподіваної ефективності під час оброблення даного робочого навантаження в поточній транзакції;
служби каталогу (Directorv/Namespace). Відображення Імен в адреси;
служби відновлювання/перезапуску (Recovery/Restart). Відновлювання і перезапуск транзакцій, що включають одну або більше транзакційних прикладних програм, які використовують один чи більше адміністраторів ресурсів ТР;
тест-служби. Автоматична генерація тестів для моделювання робочого навантаження тощо;
служби конфігурації системи. Заміна або додавання транзакційних прикладних програм без припинення роботи середовища виконання, додавання служб для керування асоціативним пулом (пулом під’єднань);
класи відповідності. Визначення формальних підмножин OLTP-функційностІ як для робочих місць (PC/workstation-реалізацій), так і для host-комп’ютер/серверів може вимагати відповідності. OLTP-функціональність, необхідна для робочих місць, відрізняється від host-комп’ютер/серверної функціональності.
Стандарти, специфікації і недокументовані служби
Див. таблицю 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 |