Îáðàáîòêà òðàíçàêöèé
Îáðàáîòêîé òðàíçàêöèè,â èíôîðìàöèîííûõ òåõíîëîãèÿõ, íàçûâàåòñÿ îáðàáîòêà èíôîðìàöèè, ðàçäåëåííàÿ íà îòäåëüíûå íåäåëèìûå îïåðàöèè, íàçûâàåìûå òðàíçàêöèÿìè. Êàæäàÿ òðàíçàêöèÿ äîëæíà áûòü óñïåøíîé èëè íåóäà÷íîé êàê åäèíîå öåëîå; îíà íå ìîæåò îñòàâàòüñÿ â ïðîìåæóòî÷íîì ñîñòîÿíèè.
Ñîäåðæàíèå |
[ïðàâèòü] Îïèñàíèå
Îáðàáîòêà òðàíçàêöèé íàïðàâëåíà íà ïîääåðæàíèå êîìïüþòåðíîé ñèñòåìû (êàê ïðàâèëî, áàçû äàííûõ èëè êàêèõ-ëèáî ñîâðåìåííûõ ôàéëîâûõ ñèñòåì) â èçâåñòíîì, ñîãëàñîâàííîì ñîñòîÿíèè, ïóòåì îáåñïå÷åíèÿ òîãî, ÷òîáû ëþáûå îïåðàöèè, îñóùåñòâëÿþùèåñÿ â ñèñòåìå, ÿâëÿþòñÿ âçàèìîçàâèñèìûìè è ëèáî âñå óñïåøíî çàâåðøåíû, ëèáî ïîëíîñòüþ è óñïåøíî îòìåíåíû.
Íàïðèìåð, ðàññìîòðèì òèïè÷íóþ áàíêîâñêóþ òðàíçàêöèþ, êîòîðàÿ âêëþ÷àåò â ñåáÿ ïåðåìåùåíèå $ 700 ñ ñáåðåãàòåëüíîãî ñ÷åòà êëèåíòà íà ðàñ÷åòíûé ñ÷åò êëèåíòà. Ýòà òðàíçàêöèÿ ÿâëÿåòñÿ îäíîé îïåðàöèåé äëÿ áàíêà, íî îíà âêëþ÷àåò â ñåáÿ, ïî êðàéíåé ìåðå, äâå îòäåëüíûå îïåðàöèè â êîìïüþòåðíûõ òåðìèíàõ: çà÷èñëÿþòñÿ íà äåïîçèòíûé ñ÷åò $ 700, à òàêæå êðåäèòóåòñÿ ðàñ÷åòíûé ñ÷åò íà $ 700. Åñëè äåáåòîâûå îïåðàöèè ïðîøëè óñïåøíî, à êðåäèòíûå íåò (èëè íàîáîðîò), â êíèãàõ áàíêà íå áóäåò îñòàòêà íà êîíåö äíÿ. Ïîýòîìó äîëæåí áûòü ñïîñîá ãàðàíòèðîâàòü, ÷òî îáå îïåðàöèè ëèáî èìåëè óñïåõ, ëèáî ïðîâàëèëèñü, òàê ÷òî íèêîãäà íå áûâàåò êàêèõ-ëèáî íåñîîòâåòñòâèé â áàçå äàííûõ áàíêà â öåëîì. Îáðàáîòêà òðàíçàêöèé ïðåäíàçíà÷åíà äëÿ îáåñïå÷åíèÿ ýòîãî.
Îáðàáîòêà òðàíçàêöèé ïîçâîëÿåò íåñêîëüêèì îòäåëüíûì îïåðàöèÿì àâòîìàòè÷åñêè áûòü ñâÿçàííûìè äðóã ñ äðóãîì, êàê åäèíàÿ íåäåëèìàÿ òðàíçàêöèÿ. Ñèñòåìû îáðàáîòêè òðàíçàêöèé ãàðàíòèðóåò, ÷òî ëèáî âñå îïåðàöèè â òðàíçàêöèè çàâåðøåíû áåç îøèáîê, ëèáî íè îäíà èç íèõ. Åñëè íåêîòîðûå èç îïåðàöèé çàâåðøåíû, íî ñ îøèáêàìè, à äðóãèå áåç, ñèñòåìû îáðàáîòêè òðàíçàêöèé äàåò êîìàíäó íà «îòêàò» âñåõ îïåðàöèé òðàíçàêöèè (â òîì ÷èñëå óäà÷íûõ), ÷òî îçíà÷àåò ñòèðàíèå âñåõ ñëåäîâ îïåðàöèè è âîññòàíîâëåíèå ñèñòåìû äî ñîãëàñîâàííîãî èçâåñòíîãî ñîñòîÿíèÿ, êîòîðîå áûëî äî íà÷àëà ïðîöåññà òðàíçàêöèè. Åñëè âñå îïåðàöèè òðàíçàêöèè çàâåðøåíû óñïåøíî, òî òðàíçàêöèÿ ôèêñèðóåòñÿ â ñèñòåìå, è âñå èçìåíåíèÿ â áàçå äàííûõ ñòàíîâÿòñÿ «ïîñòîÿííûìè» (commited); òðàíçàêöèè íå ìîãóò áûòü îòìåíåíû, åñëè îíè óæå áûëè ñäåëàíû.
Îáðàáîòêà òðàíçàêöèé çàùèùàåò îò àïïàðàòíûõ è ïðîãðàììíûõ îøèáîê, êîòîðûå ìîãóò îñòàâèòü òðàíçàêöèþ, çàâåðøåííîé ÷àñòè÷íî, ñ ñèñòåìîé, îñòàâëåííîé â íåèçâåñòíîì, ïðîòèâîðå÷èâîì ñîñòîÿíèè. Åñëè â êîìïüþòåðíîé ñèñòåìå ïðîèñõîäèò ñáîé â ñåðåäèíå òðàíçàêöèÿ, îáðàáîòêà òðàíçàêöèé ãàðàíòèðóåò, ÷òî âñå îïåðàöèè â ëþáûõ íåçàôèêñèðîâàííûõ (òî åñòü, íå ïîëíîñòüþ îáðàáîòàííûõ) òðàíçàêöèÿõ áóäóò îòìåíåíû.
Òðàíçàêöèè îôîðìëåíû â ñòðîãîì õðîíîëîãè÷åñêîì ïîðÿäêå. Åñëè ñäåëêà N+1 íàìåðåíà êîñíóòüñÿ òîé æå ÷àñòè áàçû äàííûõ ÷òî è òðàíçàêöèÿ N, òðàíçàêöèÿ N+1 íå íà÷èíàåòñÿ äî ìîìåíòà ñîâåðøåíèÿ òðàíçàêöèè N. Äî ñîâåðøåíèÿ ëþáûõ òðàíçàêöèé, âñå îñòàëüíûå òðàíçàêöèè, çàòðàãèâàþùèå òó æå ÷àñòü ñèñòåìû, òàêæå äîëæíû áûòü çàâåðøåíû; íå ìîæåò áûòü íèêàêèõ «äûðîê» â ïîñëåäîâàòåëüíîñòè ïðåäûäóùèõ òðàíçàêöèé.
[ïðàâèòü] Ìåòîäîëîãèÿ
Îñíîâíûå ïðèíöèïû âñåõ ñèñòåì îáðàáîòêè òðàíçàêöèé îäèíàêîâû. Îäíàêî òåðìèíîëîãèÿ ìîæåò âàðüèðîâàòüñÿ îò îäíîé ñèñòåìû îáðàáîòêè òðàíçàêöèé äî äðóãîé, è òåðìèíû, èñïîëüçóåìûå íèæå, íå îáÿçàòåëüíî ÿâëÿþòñÿ óíèâåðñàëüíûìè.
[ïðàâèòü] Îòêàò
Ñèñòåìû îáðàáîòêè òðàíçàêöèé îáåñïå÷èâàþò öåëîñòíîñòü áàçû äàííûõ ïðè ïîìîùè çàïèñè ïðîìåæóòî÷íîãî ñîñòîÿíèÿ áàçû äàííûõ ïåðåä å¸ èçìåíåíèåì, à çàòåì, èñïîëüçóÿ ýòè çàïèñè, âîññòàíàâëèâàþò áàçó äàííûõ äî èçâåñòíîãî ñîñòîÿíèÿ, åñëè òðàíçàêöèÿ íå ìîæåò áûòü ñîâåðøåíà. Íàïðèìåð, êîïèè èíôîðìàöèè â áàçå äàííûõ äî åå èçìåíåíèÿ òðàíçàêöèåé, äåëàþòñÿ ñèñòåìîé ïåðåä òðàíçàêöèåé, êîòîðàÿ ìîæåò ñäåëàòü ëþáûå èçìåíåíèÿ (èíîãäà ýòî íàçûâàþò before image). Åñëè êàêàÿ-ëèáî ÷àñòü òðàíçàêöèè íå óäàåòñÿ äî åå ñîâåðøåíèÿ, ýòè êîïèè èñïîëüçóþòñÿ äëÿ âîññòàíîâëåíèÿ áàçû äàííûõ â ñîñòîÿíèå, â êîòîðîì îíà íàõîäèëàñü äî íà÷àëà òðàíçàêöèè (Rollback).
[ïðàâèòü] Ïðîãîí
Ïðîãîí (àíãë. rollforward)
Êðîìå òîãî, ìîæíî âåñòè îòäåëüíûé æóðíàë âñåõ èçìåíåíèé áàçû äàííûõ (èíîãäà ýòî íàçûâàåòñÿ after images); ýòî íå òðåáóåò îòêàòà íåóäà÷íûõ îïåðàöèé, íî ýòî ïîëåçíî äëÿ îáíîâëåíèÿ áàçû äàííûõ â ñëó÷àå îòêàçà áàçû äàííûõ, ïîýòîìó íåêîòîðûå ñèñòåìû îáðàáîòêè òðàíçàêöèé îáåñïå÷èâàþò ýòó ôóíêöèþ. Åñëè áàçà äàííûõ îòêàçûâàåò ñîâñåì, îíà äîëæíà áûòü âîññòàíîâëåíà èç ïîñëåäíåé ðåçåðâíîé. Ðåçåðâíûå íå áóäóò îòðàæàòü îïåðàöèè, ñîâåðøåííûå ïîñëå åå ñîçäàíèÿ. Îäíàêî, êàê òîëüêî áóäåò âîññòàíîâëåíà áàçà äàííûõ, æóðíàë after images ìîæåò áûòü ïðèìåíåí ê áàçå äàííûõ (rollforward), ÷òîáû ïðèâåñòè åå â àêòóàëüíîå ñîñòîÿíèå. Ëþáûå òðàíçàêöèè, êîòîðûå íàõîäÿòñÿ â ïðîöåññå íà ìîìåíò ñáîÿ, ìîãóò áûòü ñâåðíóòû. Ðåçóëüòàò ïðåäñòàâëÿåò ñîáîé áàçó äàííûõ â èçâåñòíîå ñîãëàñîâàííîå ñîñòîÿíèå, êîòîðîå âêëþ÷àåò ðåçóëüòàòû âñåõ òðàíçàêöèé, ñîâåðøåííûõ äî ìîìåíòà îòêàçà.
[ïðàâèòü] Âçàèìíàÿ áëîêèðîâêà
Âçàèìíàÿ áëîêèðîâêà (àíãë. deadlocks)
 íåêîòîðûõ ñëó÷àÿõ, äâå òðàíçàêöèè ìîãóò â õîäå èõ îáðàáîòêè ïûòàòüñÿ ïîëó÷èòü äîñòóï ê îäíîé è òîé æå ÷àñòè áàçû äàííûõ â îäíî è òî æå âðåìÿ, òàêèì îáðàçîì, ÷òî ýòî áóäåò ïðåïÿòñòâîâàòü èõ ñîâåðøåíèþ. Íàïðèìåð, òðàíçàêöèÿ À ìîæåò ïîëó÷èòü äîñòóï ê ÷àñòè Õ áàçû äàííûõ, è òðàíçàêöèÿ  ìîæåò ïîëó÷èòü äîñòóï ê Y ÷àñòè áàçû äàííûõ. Åñëè â ýòîò ìîìåíò òðàíçàêöèÿ À ïûòàåòñÿ ïîëó÷èòü äîñòóï ê ÷àñòè Y áàçû äàííûõ, â òî âðåìÿ êàê òðàíçàêöèÿ B ïûòàåòñÿ ïîëó÷èòü äîñòóï ê ÷àñòè X, âîçíèêàåò ñèòóàöèÿ âçàèìîáëîêèðîâêè, è íè îäíà òðàíçàêöèÿ íå ìîæåò áûòü ïðîèçâåäåíà. Ñèñòåìû îáðàáîòêè òðàíçàêöèé ïðåäíàçíà÷åíû äëÿ îáíàðóæåíèÿ òàêèõ ñèòóàöèé. Îáû÷íî îáå òðàíçàêöèè îòìåíÿþòñÿ è ïðîèçâîäèòñÿ îòêàò, à çàòåì îíè àâòîìàòè÷åñêè çàïóñêàþòñÿ â äðóãîì ïîðÿäêå, òàê ÷òî âçàèìîáëîêèðîâêà íå ïîâòîðèòñÿ. Èëè èíîãäà, òîëüêî îäíà èç òðàíçàêöèé, ïîïàâøèõ â òóïèê, îòìåíÿåòñÿ, ïðîèçâîäèòñÿ îòêàò, è àâòîìàòè÷åñêè ïîâòîðÿåòñÿ ïîñëå íåáîëüøîé çàäåðæêè.
Âçàèìîáëîêèðîâêè ìîãóò ïðîèñõîäèòü ìåæäó òðåìÿ èëè áîëåå òðàíçàêöèÿìè. ×åì áîëüøå òðàíçàêöèè ñâÿçàíû, òåì òðóäíåå èõ îáíàðóæèòü. Ñèñòåìû îáðàáîòêè òðàíçàêöèé äàæå óñòàíîâèëè ïðàêòè÷åñêîå îãðàíè÷åíèå íà òóïèêîâûå ñèòóàöèè, êîòîðûå îíè ìîãóò îáíàðóæèòü.
[ïðàâèòü] ACID êðèòåðèè (Àòîìàðíîñòü, Ïîñëåäîâàòåëüíîñòü, Èçîëÿöèÿ, Äîëãîâå÷íîñòü)
Îáðàáîòêà òðàíçàêöèé èìååò ñëåäóþùèå ïðåèìóùåñòâà:
- Îíà ïîçâîëÿåò ðàçäåëÿòü ðåñóðñû êîìïüþòåðà ìåæäó ìíîãèìè ïîëüçîâàòåëÿìè.
- Îíà ñìåùàåò âðåìÿ îáðàáîòêè çàäàíèé, êîãäà âû÷èñëèòåëüíûå ðåñóðñû ìåíåå çàíÿòû.
- Îíà ïîçâîëÿåò èçáåæàòü èñïîëüçîâàíèÿ âû÷èñëèòåëüíûõ ðåñóðñîâ âïóñòóþ áåç åæåìèíóòíîãî ÷åëîâå÷åñêîãî âìåøàòåëüñòâà è íàäçîðà.
- Îíà èñïîëüçóåòñÿ íà äîðîãèõ êîìïüþòåðàõ, êîòîðûå ïîìîãóò îêóïèòü ðàñõîäû, ñîõðàíÿÿ âûñîêèå òåìïû èñïîëüçîâàíèÿ äîðîãîñòîÿùèõ ðåñóðñîâ.
- Òðàíçàêöèÿ â ìèíèìàëüíàÿ åäèíèöà îáðàáîòêè.
[ïðàâèòü] Âíåäðåíèå
Ñòàíäàðòíîå ïðîãðàììíîå îáåñïå÷åíèå îáðàáîòêè òðàíçàêöèé, â ÷àñòíîñòè, Èíôîðìàöèîííàÿ ñèñòåìà óïðàâëåíèÿ IBM, áûëè âïåðâûå ðàçðàáîòàíà â 1960-å ãîäû, è ÷àñòî òåñíî ñâÿçàíû ñ îïðåäåëåííûìè ñèñòåìàìè óïðàâëåíèÿ áàçàìè äàííûõ. Êëèåíò-ñåðâåðíûå âû÷èñëåíèÿ îñóùåñòâëÿëèñü àíàëîãè÷íûìè ïðèíöèïàìè â 1980-å ãîäû ñ ïåðåìåííûì óñïåõîì. Îäíàêî â ïîñëåäíèå ãîäû, ðàñïðåäåëåííàÿ êëèåíò-ñåðâåðíàÿ ìîäåëü ñòàëà çíà÷èòåëüíî áîëåå ñëîæíîé â îáñëóæèâàíèè. Òàê êàê ÷èñëî òðàíçàêöèé âûðîñëî â îòâåò íà óâåëè÷åíèå ÷èñëà ðàçëè÷íûõ îíëàéíîâûõ óñëóã (îñîáåííî â Èíòåðíåòå), ïðàêòè÷åñêîãî ðåøåíèÿ äëÿ îäíîé ðàñïðåäåëåííîé áàçû äàííûõ íå áûëî. Êðîìå òîãî, áîëüøèíñòâî îíëàéí-ñèñòåì ñîñòîÿò èç öåëîãî íàáîðà ïðîãðàìì, ðàáîòàþùèõ âìåñòå, â îòëè÷èå îò ñòðîãîé ìîäåëè êëèåíò-ñåðâåð, ãäå îäèí ñåðâåð ìîã ñïðàâëÿòüñÿ ñ îáðàáîòêîé òðàíçàêöèé. Ñåãîäíÿ åñòü öåëûé ðÿä ñèñòåì îáðàáîòêè òðàíçàêöèé, êîòîðûå ðàáîòàþò íà ìåæïðîãðàììíîì óðîâíå è êîòîðûå ðàáîòàþò â ìàñøòàáàõ áîëüøèõ ïàëëåòíûõ ñèñòåì, âêëþ÷àÿ ìåéíôðåéìû.
Îñíîâíûì îòêðûòûì îòðàñëåâûì ñòàíäàðòîì ÿâëÿåòñÿ X/Open Distributed Transaction Processing (DTP) (ñì. JTA). Îäíàêî, ïðîïðèåòàðíîå ñðåäû îáðàáîòêè òðàíçàêöèé òàêèå, êàê CICS êîìïàíèè IBM ïî-ïðåæíåìó î÷åíü ïîïóëÿðíû.
Âíåäðåíèå ñîâðåìåííîé îáðàáîòêè òðàíçàêöèé ñî÷åòàåò â ñåáå ýëåìåíòû îáúåêòíî-îðèåíòèðîâàííîé ñòîéêîñòè ñ ñîõðàíåíèåì òðàäèöèîííîãî ìîíèòîðèíãà òðàíçàêöèé. Îäíèì èç òàêèõ âíåäðåíèé ÿâëÿåòñÿ êîììåð÷åñêèé DTS/S1 ïðîäóêò îò Obsidian Dynamics.
[ïðàâèòü] Ñì. òàêæå
Äëÿ óëó÷øåíèÿ ýòîé ñòàòüè ïî èíôîðìàöèîííûì òåõíîëîãèÿì æåëàòåëüíî?:
|