लेनदेन प्रक्रिया

कंप्यूटर विज्ञान में, लेन-देन प्रसंस्करण सूचना प्रसंस्करण है जिसे अलग-अलग, अविभाज्य परिचालनों में विभाजित किया जाता है जिसे लेन-देन कहा जाता है। प्रत्येक लेन-देन एक पूर्ण इकाई के रूप में सफल या विफल होना चाहिए; यह कभी भी केवल आंशिक रूप से पूर्ण नहीं हो सकता।

उदाहरण के लिए, जब आप किसी ऑनलाइन बुकस्टोर से कोई पुस्तक खरीदते हैं, तो आप एक पुस्तक के लिए पैसे ( श्रेय के रूप में) का आदान-प्रदान करते हैं। यदि आपका क्रेडिट अच्छा है, तो संबंधित कार्यों की एक श्रृंखला यह सुनिश्चित करती है कि आपको किताब मिल जाए और बुकस्टोर को आपका पैसा मिल जाए। हालाँकि, यदि एक्सचेंज के दौरान श्रृंखला में एक भी ऑपरेशन विफल हो जाता है, तो संपूर्ण एक्सचेंज विफल हो जाता है। आपको किताब नहीं मिलती और किताबों की दुकान को आपका पैसा नहीं मिलता। एक्सचेंज को संतुलित और पूर्वानुमेय बनाने के लिए जिम्मेदार तकनीक को ट्रांजैक्शन प्रोसेसिंग कहा जाता है। लेन-देन सुनिश्चित करते हैं कि डेटा-उन्मुख संसाधन तब तक स्थायी रूप से अपडेट नहीं होते हैं जब तक कि लेन-देन इकाई के भीतर सभी संचालन सफलतापूर्वक पूर्ण नहीं हो जाते। संबंधित संचालन के एक सेट को एक इकाई में जोड़कर जो या तो पूरी तरह से सफल होता है या पूरी तरह से विफल रहता है, त्रुटि सुधार को सरल बना सकता है और अपने आवेदन को और अधिक विश्वसनीय बना सकता है।

लेन-देन प्रसंस्करण प्रणाली में कंप्यूटर हार्डवेयर और सॉफ़्टवेयर शामिल होते हैं जो एक लेन-देन-उन्मुख अनुप्रयोग की मेजबानी करते हैं जो व्यवसाय करने के लिए आवश्यक नियमित लेनदेन करता है। उदाहरणों में ऐसी प्रणालियाँ शामिल हैं जो बिक्री आदेश प्रविष्टि, एयरलाइन आरक्षण, पेरोल, कर्मचारी रिकॉर्ड, निर्माण और शिपिंग का प्रबंधन करती हैं।

चूंकि अधिकांश, हालांकि जरूरी नहीं कि सभी, लेन-देन प्रसंस्करण आज इंटरैक्टिव है, इस शब्द को अक्सर ऑनलाइन लेनदेन प्रसंस्करण के पर्याय के रूप में माना जाता है।

विवरण
लेन-देन प्रसंस्करण को सिस्टम की अखंडता (आमतौर पर एक डेटाबेस या कुछ आधुनिक फाइल सिस्टम) को एक ज्ञात, सुसंगत स्थिति में बनाए रखने के लिए डिज़ाइन किया गया है, यह सुनिश्चित करके कि सिस्टम पर अन्योन्याश्रित संचालन या तो सभी सफलतापूर्वक पूर्ण हो गए हैं या सभी सफलतापूर्वक रद्द कर दिए गए हैं।

उदाहरण के लिए, एक विशिष्ट बैंकिंग लेनदेन पर विचार करें जिसमें ग्राहक के बचत खाते से ग्राहक के चेकिंग खाते में $700 स्थानांतरित करना शामिल है। इस लेन-देन में कंप्यूटर के संदर्भ में कम से कम दो अलग-अलग ऑपरेशन शामिल हैं: बचत खाते को $700 से डेबिट करना, और चेकिंग खाते को $700 से जमा करना। यदि एक ऑपरेशन सफल हो जाता है लेकिन दूसरा सफल नहीं होता है, तो दिन के अंत में बैंक की पुस्तकें शेष नहीं रहेंगी। इसलिए, यह सुनिश्चित करने का एक तरीका होना चाहिए कि या तो दोनों ऑपरेशन सफल हों या दोनों विफल हों ताकि बैंक के समग्र डेटाबेस में कभी कोई असंगति न हो।

लेन-देन प्रसंस्करण एक एकल, अविभाज्य लेनदेन में कई अलग-अलग संचालन को जोड़ता है, और यह सुनिश्चित करता है कि या तो लेनदेन में सभी संचालन त्रुटि के बिना पूर्ण हो जाते हैं, या उनमें से कोई भी नहीं है। यदि कुछ ऑपरेशन पूरे हो जाते हैं लेकिन अन्य का प्रयास करने पर त्रुटियां होती हैं, तो लेनदेन-प्रसंस्करण प्रणाली लेनदेन के सभी संचालन (सफल लोगों सहित) को वापस ले लेती है, जिससे लेन-देन के सभी निशान मिटा दिए जाते हैं और सिस्टम को लेन-देन में पुनर्स्थापित कर दिया जाता है। सुसंगत, ज्ञात स्थिति कि यह लेन-देन की प्रक्रिया शुरू होने से पहले थी। यदि लेन-देन के सभी ऑपरेशन सफलतापूर्वक पूरे हो जाते हैं, तो सिस्टम द्वारा लेनदेन को कमिट (डेटा प्रबंधन) कर दिया जाता है, और डेटाबेस में सभी परिवर्तन स्थायी कर दिए जाते हैं; एक बार यह हो जाने के बाद लेन-देन को वापस नहीं लाया जा सकता है।

लेन-देन प्रसंस्करण हार्डवेयर और सॉफ़्टवेयर त्रुटियों के खिलाफ गार्ड जो आंशिक रूप से पूर्ण किए गए लेनदेन को छोड़ सकते हैं। यदि लेन-देन के बीच में कंप्यूटर सिस्टम क्रैश हो जाता है, तो लेन-देन प्रसंस्करण प्रणाली गारंटी देती है कि किसी भी अप्रतिबंधित लेनदेन में सभी संचालन रद्द कर दिए जाते हैं।

आम तौर पर, लेनदेन समवर्ती रूप से जारी किए जाते हैं। यदि वे ओवरलैप करते हैं (यानी डेटाबेस के एक ही हिस्से को छूने की जरूरत है), तो यह विरोध पैदा कर सकता है। उदाहरण के लिए, यदि ऊपर दिए गए उदाहरण में उल्लिखित ग्राहक के बचत खाते में $150 हैं और वह $100 को एक अलग व्यक्ति को स्थानांतरित करने का प्रयास करता है, जबकि उसी समय चेकिंग खाते में $100 ले जाता है, तो उनमें से केवल एक ही सफल हो सकता है। हालाँकि, लेनदेन को क्रमिक रूप से संसाधित करने के लिए मजबूर करना अक्षम है। इसलिए, लेन-देन प्रसंस्करण के समवर्ती कार्यान्वयन को यह गारंटी देने के लिए प्रोग्राम किया गया है कि अंतिम परिणाम एक संघर्ष-मुक्त परिणाम को दर्शाता है, जैसा कि किसी भी क्रम में लेनदेन को क्रमिक रूप से निष्पादित करने पर पहुँचा जा सकता है (क्रमिकता नामक संपत्ति)। हमारे उदाहरण में, इसका मतलब यह है कि कोई भी लेन-देन पहले जारी नहीं किया गया था, या तो एक अलग व्यक्ति को स्थानांतरण या चेकिंग खाते में स्थानांतरण सफल होता है, जबकि दूसरा विफल रहता है।

कार्यप्रणाली
सभी लेन-देन-प्रसंस्करण प्रणालियों के मूल सिद्धांत समान हैं। हालाँकि, शब्दावली एक लेनदेन-प्रसंस्करण प्रणाली से दूसरे में भिन्न हो सकती है, और नीचे उपयोग की जाने वाली शर्तें आवश्यक रूप से सार्वभौमिक नहीं हैं।

रोलबैक
लेन-देन-प्रसंस्करण प्रणालियाँ डेटाबेस की मध्यवर्ती अवस्थाओं को रिकॉर्ड करके डेटाबेस की अखंडता सुनिश्चित करती हैं, जैसा कि संशोधित किया गया है, फिर इन रिकॉर्डों का उपयोग करके डेटाबेस को ज्ञात स्थिति में पुनर्स्थापित करने के लिए यदि कोई लेनदेन नहीं किया जा सकता है। उदाहरण के लिए, लेन-देन द्वारा इसके संशोधन से पहले डेटाबेस पर जानकारी की प्रतियां सिस्टम द्वारा अलग रखी जाती हैं, इससे पहले कि लेन-देन कोई भी संशोधन कर सके (इसे कभी-कभी छवि से पहले कहा जाता है)। यदि लेन-देन का कोई हिस्सा कमिट होने से पहले विफल हो जाता है, तो इन प्रतियों का उपयोग डेटाबेस को उस स्थिति में पुनर्स्थापित करने के लिए किया जाता है, जिसमें लेनदेन शुरू होने से पहले था।

रोलफॉरवर्ड
डेटाबेस प्रबंधन प्रणाली में सभी संशोधनों का एक अलग जर्नल (कम्प्यूटिंग)  रखना भी संभव है। (कभी-कभी छवियों के बाद कहा जाता है)। असफल लेन-देन के रोलबैक के लिए इसकी आवश्यकता नहीं है, लेकिन यह डेटाबेस विफलता की स्थिति में डेटाबेस प्रबंधन प्रणाली को अद्यतन करने के लिए उपयोगी है, इसलिए कुछ लेनदेन-प्रसंस्करण सिस्टम इसे प्रदान करते हैं। यदि डेटाबेस प्रबंधन प्रणाली पूरी तरह से विफल हो जाती है, तो इसे नवीनतम बैक-अप से पुनर्स्थापित किया जाना चाहिए। बैक-अप किए जाने के बाद से किए गए लेन-देन को बैक-अप प्रतिबिंबित नहीं करेगा। हालाँकि, एक बार डेटाबेस प्रबंधन प्रणाली बहाल हो जाने के बाद, डेटाबेस प्रबंधन प्रणाली को अद्यतित करने के लिए बाद की छवियों के जर्नल को डेटाबेस (रोलफ़ॉरवर्ड) पर लागू किया जा सकता है। विफलता के समय कोई भी लेन-देन प्रगति पर वापस लाया जा सकता है। परिणाम एक सुसंगत, ज्ञात स्थिति में एक डेटाबेस है जिसमें विफलता के क्षण तक किए गए सभी लेन-देन के परिणाम शामिल हैं।

गतिरोध
कुछ मामलों में, दो लेन-देन, उनके प्रसंस्करण के दौरान, एक ही समय में डेटाबेस के एक ही हिस्से तक पहुंचने का प्रयास कर सकते हैं, जो उन्हें आगे बढ़ने से रोकता है। उदाहरण के लिए, लेन-देन A डेटाबेस के भाग X तक पहुँच सकता है, और लेनदेन B डेटाबेस के भाग Y तक पहुँच सकता है। यदि उस बिंदु पर, लेन-देन A तब डेटाबेस के भाग Y तक पहुँचने का प्रयास करता है, जबकि लेन-देन B भाग X तक पहुँचने का प्रयास करता है, एक गतिरोध उत्पन्न होता है, और कोई भी लेन-देन आगे नहीं बढ़ सकता है। लेन-देन-प्रसंस्करण प्रणालियों को इन गतिरोधों का पता लगाने के लिए डिज़ाइन किया गया है जब वे होते हैं। आमतौर पर दोनों लेन-देन रद्द कर दिए जाएंगे और वापस ले लिए जाएंगे, और फिर उन्हें एक अलग क्रम में, स्वचालित रूप से फिर से शुरू किया जाएगा, ताकि गतिरोध फिर से न हो। या कभी-कभी, गतिरोध वाले लेन-देन में से केवल एक को रद्द कर दिया जाएगा, वापस ले लिया जाएगा, और थोड़ी देरी के बाद स्वचालित रूप से फिर से शुरू हो जाएगा।

गतिरोध तीन या अधिक लेन-देन के बीच भी हो सकता है। जितने अधिक लेन-देन शामिल होते हैं, उनका पता लगाना उतना ही मुश्किल होता है, इस हद तक कि लेन-देन प्रसंस्करण प्रणाली को पता चलता है कि गतिरोध की एक व्यावहारिक सीमा है जिसका वे पता लगा सकते हैं।

मुआवजा लेनदेन
उन प्रणालियों में जहां कमिट और रोलबैक तंत्र उपलब्ध या अवांछनीय नहीं हैं, एक क्षतिपूर्ति लेनदेन का उपयोग अक्सर विफल लेनदेन को पूर्ववत करने और सिस्टम को पिछली स्थिति में पुनर्स्थापित करने के लिए किया जाता है।

एसीआईडी ​​​​मानदंड
जिम ग्रे (कंप्यूटर वैज्ञानिक) ने 1970 के दशक के अंत में परिवर्णी शब्द ACID-परमाण्विकता, संगति, अलगाव और स्थायित्व के तहत एक विश्वसनीय लेनदेन प्रणाली के गुणों को परिभाषित किया।

परमाणुता
राज्य में लेन-देन के परिवर्तन परमाणु हैं: या तो सब कुछ होता है या कुछ भी नहीं होता है। इन परिवर्तनों में ट्रांसड्यूसर पर डेटाबेस परिवर्तन, संदेश और क्रियाएं शामिल हैं।

संगति
संगति (डेटाबेस सिस्टम) # संगति: एक लेन-देन राज्य का एक सही परिवर्तन है। एक समूह के रूप में की गई कार्रवाइयां राज्य से जुड़ी किसी भी अखंडता की बाधाओं का उल्लंघन नहीं करती हैं।

अलगाव
भले ही लेन-देन समवर्ती रूप से निष्पादित होते हैं, यह प्रत्येक लेनदेन T को प्रतीत होता है, कि अन्य T से पहले या T के बाद निष्पादित होते हैं, लेकिन दोनों नहीं।

स्थायित्व
एक बार जब कोई लेन-देन सफलतापूर्वक पूरा हो जाता है (कमिट हो जाता है), डेटाबेस में इसके परिवर्तन विफल हो जाते हैं और इसके परिवर्तन बरकरार रहते हैं।

लाभ
लेन-देन प्रसंस्करण के ये लाभ हैं:
 * यह कई उपयोगकर्ताओं के बीच कंप्यूटर संसाधनों को साझा करने की अनुमति देता है
 * जब कंप्यूटिंग संसाधन कम व्यस्त होते हैं तो यह जॉब प्रोसेसिंग के समय को बदल देता है
 * यह मिनट-दर-मिनट मानव संपर्क और पर्यवेक्षण के बिना कंप्यूटिंग संसाधनों को निष्क्रिय करने से बचता है
 * उन महंगे संसाधनों के उपयोग की उच्च दर को बनाए रखते हुए लागत को परिशोधित करने में मदद करने के लिए कंप्यूटर के महंगे वर्गों पर इसका उपयोग किया जाता है

नुकसान

 * उनकी अपेक्षाकृत महंगी सेटअप लागत है
 * मानक स्वरूपों की कमी है
 * हार्डवेयर और सॉफ्टवेयर असंगति

कार्यान्वयन
मानक लेन-देन-प्रसंस्करण सॉफ़्टवेयर, जैसे कि आईबीएम की सूचना प्रबंधन प्रणाली, पहली बार 1960 के दशक में विकसित की गई थी, और अक्सर विशेष डेटाबेस प्रबंधन प्रणालियों के साथ निकटता से जुड़ी हुई थी। क्लाइंट-सर्वर मॉडल | क्लाइंट-सर्वर कंप्यूटिंग ने 1980 के दशक में मिश्रित सफलता के साथ समान सिद्धांतों को लागू किया। हालाँकि, हाल के वर्षों में, वितरित क्लाइंट-सर्वर मॉडल को बनाए रखना काफी कठिन हो गया है। जैसे-जैसे विभिन्न ऑनलाइन सेवाओं (विशेषकर WWW) के जवाब में लेनदेन की संख्या बढ़ी, एक एकल वितरित डेटाबेस व्यावहारिक समाधान नहीं था। इसके अलावा, अधिकांश ऑनलाइन सिस्टम में एक साथ काम करने वाले कार्यक्रमों का एक पूरा सूट होता है, जो एक सख्त क्लाइंट-सर्वर मॉडल के विपरीत होता है, जहां एकल सर्वर लेनदेन प्रसंस्करण को संभाल सकता है। आज कई लेन-देन प्रसंस्करण प्रणालियां उपलब्ध हैं जो इंटर-प्रोग्राम स्तर पर काम करती हैं और जो मेनफ़्रेम कंप्यूटर  सहित बड़ी प्रणालियों के पैमाने पर काम करती हैं।

एक प्रयास है X/Open XA|X/Open Distributed Transaction Processing (DTP) (Java Transaction API (JTA) भी देखें)। हालांकि, IBM के CICS जैसे मालिकाना लेनदेन-प्रसंस्करण वातावरण अभी भी बहुत लोकप्रिय हैं, हालांकि सीआईसीएस खुले उद्योग मानकों को भी शामिल करने के लिए विकसित हुआ है।

एक्सट्रीम ट्रांजेक्शन प्रोसेसिंग (XTP) शब्द का इस्तेमाल असामान्य रूप से चुनौतीपूर्ण आवश्यकताओं, विशेष रूप से थ्रूपुट आवश्यकताओं (प्रति सेकंड लेनदेन) के साथ लेनदेन प्रसंस्करण प्रणालियों का वर्णन करने के लिए किया गया था। ऐसी प्रणालियाँ वितरित या क्लस्टर शैली के आर्किटेक्चर के माध्यम से लागू की जा सकती हैं। यह कम से कम 2011 तक इस्तेमाल किया गया था।

अग्रिम पठन

 * Gerhard Weikum, Gottfried Vossen, Transactional information systems: theory, algorithms, and the practice of concurrency control and recovery, Morgan Kaufmann, 2002, ISBN 1-55860-508-8
 * Jim Gray, Andreas Reuter, Transaction Processing—Concepts and Techniques, 1993, Morgan Kaufmann, ISBN 1-55860-190-2
 * Philip A. Bernstein, Eric Newcomer, Principles of Transaction Processing, 1997, Morgan Kaufmann, ISBN 1-55860-415-4
 * Ahmed K. Elmagarmid (Editor), Transaction Models for Advanced Database Applications, Morgan-Kaufmann, 1992, ISBN 1-55860-214-3

बाहरी संबंध

 * Nuts and Bolts of Transaction Processing (1999)
 * Managing Transaction Processing for SQL Database Integrity
 * Transaction Processing