वितरित डेटा प्रवाह: Difference between revisions

From Vigyanwiki
No edit summary
 
(9 intermediate revisions by 3 users not shown)
Line 2: Line 2:
[[Image:Definition of a Distributed Data Flow.gif|right|thumbnail| वितरित डेटा प्रवाह की परिभाषा में सम्मिलित मूल अवधारणाओं का चित्रण।]]वितरित [[डेटा प्रवाह]] (वितरित प्रवाह के रूप में भी संक्षिप्त) एक वितरित अनुप्रयोग या [[संचार प्रोटोकॉल|प्रोटोकॉल]] में परिघटनाओं के एक समुच्चय को संदर्भित करता है।
[[Image:Definition of a Distributed Data Flow.gif|right|thumbnail| वितरित डेटा प्रवाह की परिभाषा में सम्मिलित मूल अवधारणाओं का चित्रण।]]वितरित [[डेटा प्रवाह]] (वितरित प्रवाह के रूप में भी संक्षिप्त) एक वितरित अनुप्रयोग या [[संचार प्रोटोकॉल|प्रोटोकॉल]] में परिघटनाओं के एक समुच्चय को संदर्भित करता है।


वितरित डेटा प्रवाह जावा ([[प्रोग्रामिंग भाषा]]) जैसी प्रोग्रामिंग भाषाओं में [[ चर (प्रोग्रामिंग) |चर (प्रोग्रामिंग)]] या [[ पैरामीटर (कंप्यूटर विज्ञान) |मैथड (विधि) प्राचल (कंप्यूटर विज्ञान)]] के अनुरूप एक उद्देश्य की पूर्ति करता है, जिसमे वे उस स्थिति का प्रतिनिधित्व कर सकते हैं जो सॉफ़्टवेयर की एक परत द्वारा संग्रहीत या संप्रेषित है। चर या प्राचल के विपरीत, जो एकल स्थान के स्थिति की इकाई का प्रतिनिधित्व करते हैं, वितरित प्रवाह गतिशील और वितरित होते हैं; वे समकालिकत एक ही समय में नेटवर्क के भीतर कई स्थानों पर उपस्थित होते हैं। उसी रूप में, वितरित प्रवाह वितरित प्रणालियों के कुछ वर्गों के शब्दार्थ और आंतरिक कार्यप्रणाली को मॉडलिंग करने का अधिक प्राकृतिक तरीका है। विशेष रूप से, वितरित प्रोटोकॉल के अंशों के मध्य उच्च-स्तरीय तार्किक संबंधों को व्यक्त करने के लिए वितरित डेटा प्रवाह संक्षेपण का उपयोग एक सुविधाजनक तरीके के रूप में किया गया है।<ref name="ostrowski2009debs">Ostrowski, K., Birman, K., Dolev, D., and Sakoda, C. (2009). "Implementing Reliable Event Streams in Large Systems via Distributed Data Flows and Recursive Delegation", ''3rd ACM International Conference on Distributed Event-Based Systems (DEBS 2009)'', Nashville, TN, USA, July 6–9, 2009, http://www.cs.cornell.edu/~krzys/krzys_debs2009.pdf {{Webarchive|url=https://web.archive.org/web/20110606010908/http://www.cs.cornell.edu/~krzys/krzys_debs2009.pdf |date=2011-06-06 }}</ref><ref name="ostrowski2009plos">Ostrowski, K., Birman, K., and Dolev, D. (2009). "Distributed Data Flow Language for Multi-Party Protocols", ''5th ACM SIGOPS Workshop on Programming Languages and Operating Systems (PLOS 2009)'', Big Sky, MT, USA. October 11, 2009, http://www.cs.cornell.edu/~krzys/krzys_plos2009.pdf {{Webarchive|url=https://web.archive.org/web/20110606012748/http://www.cs.cornell.edu/~krzys/krzys_plos2009.pdf |date=2011-06-06 }}</ref><ref name="ostrowski2009oopsla">Ostrowski, K., Birman, K., Dolev, D. (2009). "Programming Live Distributed Objects with Distributed Data Flows", Submitted to the ''International Conference on Object Oriented Programming, Systems, Languages and Applications (OOPSLA 2009)'', http://www.cs.cornell.edu/~krzys/krzys_oopsla2009.pdf {{Webarchive|url=https://web.archive.org/web/20090816105417/http://www.cs.cornell.edu/~krzys/krzys_oopsla2009.pdf |date=2009-08-16 }}</ref>
वितरित डेटा प्रवाह जावा ([[प्रोग्रामिंग भाषा]]) जैसी प्रोग्रामिंग भाषाओं में [[ चर (प्रोग्रामिंग) |चर (प्रोग्रामिंग)]] या [[ पैरामीटर (कंप्यूटर विज्ञान) |मैथड (विधि) प्राचल (कंप्यूटर विज्ञान)]] के अनुरूप एक उद्देश्य की पूर्ति करता है, जिसमे वे उस स्थिति का प्रतिनिधित्व कर सकते हैं जो सॉफ़्टवेयर की एक परत द्वारा संग्रहीत या संप्रेषित है। चर या पैरामीटर के विपरीत, जो एकल स्थान के स्थिति की इकाई का प्रतिनिधित्व करते हैं, वितरित प्रवाह गतिशील होते हैं; वे एक साथ एक ही समय में नेटवर्क के भीतर अनेक स्थानों पर उपस्थित होते हैं। उसी प्रकार से, वितरित प्रवाह वितरित प्रणालियों के कुछ वर्गों के संकेतार्थविज्ञान और आंतरिक कार्य को प्रतिरूपण (मॉडलिंग) करने का अधिक प्राकृतिक तरीका है। विशेष रूप से, वितरित प्रोटोकॉल के भागों के मध्य उच्च-स्तरीय तार्किक संबंधों को व्यक्त करने के लिए वितरित डेटा प्रवाह संक्षेपण का उपयोग एक सुविधाजनक तरीके के रूप में किया गया है।<ref name="ostrowski2009debs">Ostrowski, K., Birman, K., Dolev, D., and Sakoda, C. (2009). "Implementing Reliable Event Streams in Large Systems via Distributed Data Flows and Recursive Delegation", ''3rd ACM International Conference on Distributed Event-Based Systems (DEBS 2009)'', Nashville, TN, USA, July 6–9, 2009, http://www.cs.cornell.edu/~krzys/krzys_debs2009.pdf {{Webarchive|url=https://web.archive.org/web/20110606010908/http://www.cs.cornell.edu/~krzys/krzys_debs2009.pdf |date=2011-06-06 }}</ref><ref name="ostrowski2009plos">Ostrowski, K., Birman, K., and Dolev, D. (2009). "Distributed Data Flow Language for Multi-Party Protocols", ''5th ACM SIGOPS Workshop on Programming Languages and Operating Systems (PLOS 2009)'', Big Sky, MT, USA. October 11, 2009, http://www.cs.cornell.edu/~krzys/krzys_plos2009.pdf {{Webarchive|url=https://web.archive.org/web/20110606012748/http://www.cs.cornell.edu/~krzys/krzys_plos2009.pdf |date=2011-06-06 }}</ref><ref name="ostrowski2009oopsla">Ostrowski, K., Birman, K., Dolev, D. (2009). "Programming Live Distributed Objects with Distributed Data Flows", Submitted to the ''International Conference on Object Oriented Programming, Systems, Languages and Applications (OOPSLA 2009)'', http://www.cs.cornell.edu/~krzys/krzys_oopsla2009.pdf {{Webarchive|url=https://web.archive.org/web/20090816105417/http://www.cs.cornell.edu/~krzys/krzys_oopsla2009.pdf |date=2009-08-16 }}</ref>




== अनौपचारिक गुणधर्म ==
== अनौपचारिक गुणधर्म ==
वितरित डेटा प्रवाह निम्नलिखित अनौपचारिक गुणधर्मों को संतुष्ट करता है।
वितरित डेटा प्रवाह निम्नलिखित अनौपचारिक गुणधर्मों को संतुष्ट करता है।
* अतुल्यकालिक, गैर-अवरुद्ध और एकदिशिक। प्रत्येक परिघटना [[गैर-अवरुद्ध तुल्यकालन|गैर-अवरुद्ध]], एकदिशिक, [[ अतुल्यकालिक विधि मंगलाचरण |अतुल्यकालिक विधि उत्क्रियण]] या दो परतों या सॉफ़्टवेयर घटकों के मध्य पारित होने वाले अन्य प्रकार के स्पष्ट या अव्यक्त संदेश के एक उदाहरण का प्रतिनिधित्व करती है। उदाहरण के लिए, प्रत्येक परिघटना एक पैकेट को बहुस्त्र्पीय करने के लिए एकल अनुरोध का प्रतिनिधित्व कर सकती है, जो एक अंतर्निहित बहुस्त्र्पीय प्रोटोकॉल के लिए एक एप्लिकेशन परत द्वारा निर्गत किया जाता है। आवश्यकता है कि परिघटनाएं एकदिशिक और अतुल्यकालिक हो जो कि महत्वपूर्ण हैं। विधियों के उत्क्रियण जो कुछ परिणाम देने योग्य है वे सामान्यतः दो पृथक प्रवाहों के रूप में दर्शाया जाएगा: एक प्रवाह जो अनुरोधों का प्रतिनिधित्व करता है, और द्वितीय प्रवाह जो प्रतिक्रियाओं का प्रतिनिधित्व करता है।
* अतुल्यकालिक, गैर-अवरुद्ध और एकदिशिक। प्रत्येक परिघटना [[गैर-अवरुद्ध तुल्यकालन|गैर-अवरुद्ध]], एकदिशिक, [[ अतुल्यकालिक विधि मंगलाचरण |अतुल्यकालिक विधि उत्क्रियण]] या दो परतों या सॉफ़्टवेयर घटकों के मध्य पारित होने वाले अन्य प्रकार के स्पष्ट या अस्पष्ट संदेश के एक उदाहरण का प्रतिनिधित्व करती है। उदाहरण के लिए, प्रत्येक घटना एक अंतर्निहित बहुस्त्र्पीय प्रोटोकॉल के लिए एक एप्लीकेशन परत द्वारा निर्गत किए गए पैकेट को प्रसारण करने के लिए एक अनुरोध का प्रतिनिधित्व कर सकती है। परिघटनाएं एकदिशिक और अतुल्यकालिक होना महत्वपूर्ण हैं। सामान्यतः परिणाम देने योग्य विधियों के उत्क्रियण को दो पृथक प्रवाहों के रूप में दर्शाया जाएगा: एक प्रवाह अनुरोधों तथा द्वितीय प्रवाह प्रतिक्रियाओं का प्रतिनिधित्व करता है।
* सजातीय, एकदिशीय और एकसमान। वितरित प्रवाह में सभी परिघटनाएं समान कार्यात्मक और तार्किक उद्देश्य की पूर्ति करती हैं और एक दूसरे से संबंधित हैं; सामान्यतः, आवश्यकता है कि वे समान कार्यात्मक [[अमूर्त परत|फलनात्मक परत]] के उदाहरणों, या समान घटकों के उदाहरणों के बीच लेकिन संभवतः कंप्यूटर नेटवर्क के भीतर विभिन्न नोड्स पर, मैथड कॉल या संदेश विनिमय का प्रतिनिधित्व करें। इसके अतिरिक्त, सभी परिघटनाओं को समान दिशा में प्रवाहित होना चाहिए (यानी, एक प्रकार की परत या घटक सदैव उत्पादन करता है, और द्वितीय सदैव परिघटनाओं का उपभोग करता है), और एक ही प्रकार का पेलोड प्रेरित करता है। उदाहरण के लिए, परिघटनाओं का एक समुच्चय जिसमें समान बहुस्त्र्पीय प्रोटोकॉल के लिए समान एप्लिकेशन परत द्वारा निर्गत किए गए सभी बहुस्त्र्पीय अनुरोध सम्मिलित हैं वे एक वितरित प्रवाह है। जबकि, परिघटनाओं का एक समुच्चय जिसमें विभिन्न अनुप्रयोगों द्वारा विभिन्न बहुस्त्र्पीय प्रोटोकॉल के लिए किए गए बहुस्त्र्पीय अनुरोध सम्मिलित हैं, उन्हें वितरित प्रवाह नहीं माना जाएगा, और न ही उन परिघटनाओं के समुच्चय होंगे जो बहुस्त्र्पीय अनुरोधों के साथ आभारोक्ति और त्रुटि सूचनाओं का प्रतिनिधित्व करते हैं।
* सजातीय, एकदिशीय और समरूप। वितरित प्रवाह में सभी परिघटनाएं समान कार्यात्मक और तार्किक उद्देश्य की पूर्ति करती हैं और एक दूसरे से संबंधित हैं; सामान्यतः हमें आवश्यकता होती है कि वे समान कार्यात्मक [[अमूर्त परत|परत]] या समान घटकों के उदाहरणों के मध्य किन्तु संभवतः कंप्यूटर नेटवर्क के भीतर विभिन्न नोड्स पर, मैथड कॉल या संदेश विनिमय का प्रतिनिधित्व करें। इसके अतिरिक्त, सभी परिघटनाओं को समान दिशा में प्रवाहित होना चाहिए (अर्थात, एक प्रकार की परत या घटक सदैव उत्पादन करता है तथा द्वितीय सदैव परिघटनाओं का उपभोग करता है) और एक ही प्रकार का प्रदायभार (पेलोड) प्रेरित करता है। उदाहरण के लिए, परिघटनाओं का एक समुच्चय जिसमें समान बहुस्त्र्पीय प्रोटोकॉल के लिए समान एप्लिकेशन परत द्वारा निर्गत किए गए सभी बहुस्त्र्पीय अनुरोध सम्मिलित हैं जो कि एक वितरित प्रवाह है। दूसरी ओर, परिघटनाओं का एक समुच्चय जिसमें विभिन्न अनुप्रयोगों द्वारा विभिन्न बहुस्त्र्पीय प्रोटोकॉल के लिए किए गए बहुस्त्र्पीय अनुरोध सम्मिलित हैं, उन्हें वितरित प्रवाह नहीं माना जाएगा तथा न ही उन परिघटनाओं के समुच्चय होंगे जो बहुस्त्र्पीय अनुरोधों के साथ आभारोक्ति और त्रुटि सूचनाओं का प्रतिनिधित्व करते हैं।
* समवर्ती, निरंतर और वितरित। प्रवाह में सामान्यतः वे सभी परिघटनाएँ सम्मिलित होती हैं जो समकालिकत विभिन्न स्थानों पर, और समय की एक परिमित या अनंत अवधि में सॉफ्टवेयर की दो परतों के बीच प्रवाहित होती हैं। इस प्रकार, सामान्यतः, एक वितरित प्रवाह में परिघटनाएँ समष्टि (वे विभिन्न नोड्स पर होती हैं) और समय (वे विभिन्न समय पर होती हैं) दोनों में वितरित की जाती हैं। उदाहरण के लिए, बहुस्त्र्पीय अनुरोधों के प्रवाह में विभिन्न नोड्स पर दिए गए [[अनुप्रयोग परत|एप्लिकेशन परत]] के उदाहरणों द्वारा किए गए ऐसे सभी अनुरोध सम्मिलित होंगे; सामान्यतः, इस प्रकार के प्रवाह में वे परिघटनाएँ सम्मिलित होंगी जो दिए गए बहुस्त्र्पीय प्रोटोकॉल में सहयोगी सभी नोड्स पर घटित होती हैं। वे प्रवाह जिनमें सभी परिघटनाएँ समान नोड पर घटित होती हैं उन्हें अपह्रासित माना जाएगा।
* समवर्ती, निरंतर और वितरित। सामान्यतः प्रवाह में वे सभी घटनाएं सम्मिलित होती हैं जो सॉफ़्टवेयर की दो परतों के मध्य अलग-अलग स्थानों पर और समय की एक सीमित या अनंत अवधि में प्रवाहित होती हैं। इस प्रकार एक वितरित प्रवाह में सामान्य घटनाओं को स्थान (वे अलग-अलग नोड्स पर होते हैं) और समय (वे अलग-अलग समय पर होते हैं) दोनों में वितरित किया जाता है। उदाहरण के लिए, बहुस्त्र्पीय अनुरोधों के प्रवाह में विभिन्न नोड्स पर दिए गए [[अनुप्रयोग परत|एप्लिकेशन परत]] के उदाहरणों द्वारा किए गए ऐसे सभी अनुरोध सम्मिलित होंगे; सामान्यतः इस प्रकार के प्रवाह में वे परिघटनाएँ सम्मिलित होंगी जो दिए गए बहुस्त्र्पीय प्रोटोकॉल में सहयोगी सभी नोड्स पर घटित होती हैं। वे प्रवाह जिनमें सभी परिघटनाएँ समान नोड पर घटित होती हैं उन्हें अपह्रासित माना जाएगा।


== औपचारिक प्रतिनिधित्व ==
== औपचारिक प्रतिनिधित्व ==
औपचारिक रूप से, हम प्रत्येक घटना को एक वितरित प्रवाह में (x, t, k, v) रूप के चौगुने के रूप में दर्शाते हैं, जहाँ x स्थान है (उदाहरण के लिए, भौतिक नोड का नेटवर्क पता) जिस पर घटना होती है, t है जिस समय ऐसा होता है, k एक संस्करण है, या विशेष घटना की पहचान करने वाली अनुक्रम संख्या है, और v एक मान है जो घटना पेलोड का प्रतिनिधित्व करता है (उदाहरण के लिए, एक विधि कॉल में पारित सभी तर्क)। प्रत्येक वितरित प्रवाह ऐसे चतुष्कोणों का एक (संभवतः अनंत) सेट है जो निम्नलिखित तीन औपचारिक गुणों को संतुष्ट करता है।
औपचारिक रूप से, प्रत्येक परिघटना को वितरित प्रवाह में (x, t, k, v) रूप के चौगुने के रूप में दर्शाते हैं, जहाँ x स्थान (उदाहरण के लिए, भौतिक नोड का नेटवर्क पता) है जिस पर परिघटना होती है, t वह समय है जिस पर ऐसा घटित होता है, k एक संस्करण या विशेष घटना की पहचान करने वाली एक अनुक्रम संख्या और v एक मान है जो परिघटना पेलोड का प्रतिनिधित्व करता है (उदाहरण के लिए, मैथड कॉल में पारित सभी तर्क)। प्रत्येक वितरित प्रवाह ऐसे चतुष्कोणों का एक (संभवतः अनंत) समुच्चय है जो निम्नलिखित तीन औपचारिक गुणधर्मों को संतुष्ट करता है।


* समय टी में किसी भी परिमित बिंदु के लिए, प्रवाह में केवल बहुत ही सीमित घटनाएं हो सकती हैं जो समय टी या उससे पहले होती हैं। इसका तात्पर्य यह है कि किस प्रवाह में, कोई हमेशा उस बिंदु को इंगित कर सकता है जिस पर प्रवाह उत्पन्न हुआ था। प्रवाह ही अनंत हो सकता है; ऐसी स्थिति में, किसी भी समय, अंततः एक नई घटना प्रवाह में दिखाई देगी।
* समय t में किसी भी परिमित बिंदु के लिए प्रवाह में अनेक घटनाएँ हो सकती हैं जो समय t या उससे पूर्व घटित होती हैं। इसका तात्पर्य यह है कि उस प्रवाह में सदैव उस बिंदु को इंगित किया जा सकता है जिस पर प्रवाह उत्पन्न हुआ था। प्रवाह स्वयं अनंत हो सकता है; ऐसी स्थिति में किसी भी समय,अंततः एक नई परिघटना प्रवाह में दिखाई देगी।
* ईवेंट e_1 और e_2 के किसी भी जोड़े के लिए जो एक ही स्थान पर होते हैं, यदि e_1 e_2 से पहले के समय में होता है, तो e_1 में संस्करण संख्या भी e_2 से छोटी होनी चाहिए।
* एक ही स्थान पर घटित परिघटना e_1 और e_2 के किसी भी युग्म के लिए, यदि e_1 e_2 से पूर्व समय में होता है, तो e_1 में संस्करण संख्या भी e_2 से लघुतर होनी चाहिए।
* एक ही स्थान पर होने वाली घटनाओं की किसी भी जोड़ी e_1 और e_2 के लिए, यदि दो घटनाओं की संस्करण संख्याएँ समान हैं, तो उनके मान भी समान होने चाहिए।
* एक ही स्थान पर घटित परिघटना e_1 और e_2 के किसी भी युग्म के लिए, यदि दो परिघटनाओं में समान संस्करण संख्याएँ हैं, तो उनके मान भी समान होने चाहिए।


उपरोक्त के अलावा, प्रवाह में कई अतिरिक्त गुण हो सकते हैं।
उपरोक्त के अतिरिक्त, प्रवाह में कई अतिरिक्त गुणधर्म हो सकते हैं।


* 'गाढ़ापन'। एक वितरित प्रवाह को सुसंगत कहा जाता है यदि समान संस्करण वाली घटनाओं का हमेशा समान मूल्य होता है, भले ही वे अलग-अलग स्थानों पर हों। सुसंगत प्रवाह आम तौर पर प्रोटोकॉल या एप्लिकेशन द्वारा किए गए विभिन्न प्रकार के वैश्विक निर्णयों का प्रतिनिधित्व करते हैं।
* 'संगतता'। एक वितरित प्रवाह को सुसंगत कहा जाता है यदि समान संस्करण वाली परिघटनाओं का सदैव मान समान होता है, यद्यपि वे विभिन्न स्थानों पर घटित हों। सुसंगत प्रवाह विशिष्ट रूप से प्रोटोकॉल या एप्लिकेशन द्वारा किए गए विभिन्न प्रकार के वैश्विक निर्णयों का प्रतिनिधित्व करते हैं।
* 'एकरसता'। एक वितरित प्रवाह को कमजोर रूप से मोनोटोनिक कहा जाता है यदि किसी भी जोड़ी के लिए e_1 और e_2 जो एक ही स्थान पर होते हैं, यदि e_1 का e_2 से छोटा संस्करण है, तो e_1 को e_2 से छोटा मान रखना चाहिए। एक वितरित प्रवाह को जोरदार मोनोटोनिक (या केवल मोनोटोनिक) कहा जाता है यदि यह अलग-अलग स्थानों पर होने वाली घटनाओं e_1 और e_2 के जोड़े के लिए भी सही है। अत्यधिक मोनोटोनिक प्रवाह हमेशा सुसंगत होते हैं। वे आम तौर पर विभिन्न प्रकार के अपरिवर्तनीय निर्णयों का प्रतिनिधित्व करते हैं। कमजोर रूप से मोनोटोनिक प्रवाह सुसंगत हो सकता है या नहीं भी हो सकता है।
* 'दिष्टता'। वितरित प्रवाह को दुर्बलतः एकदिष्ट कहा जाता है यदि एक ही स्थान पर घटित परिघटना e_1 और e_2 के किसी भी युग्म के लिए, यदि e_1 का e_2 से लघुतर संस्करण है, तो e_1 को e_2 से अधिक छोटा मान रखना चाहिए। वितरित प्रवाह को प्रबल एकदिष्ट (या केवल एकदिष्ट) कहा जाता है यदि यह विभिन्न स्थानों पर घटित परिघटनाओं e_1 और e_2 के युग्म के लिए भी सत्य है। प्रबल एकदिष्ट प्रवाह सदैव सुसंगत होते हैं। वे विशिष्ट रूप से विभिन्न प्रकार के अपरिवर्तनीय निर्णयों का प्रतिनिधित्व करते हैं। दुर्बलतः एकदिष्ट प्रवाह सुसंगत हो सकता है या नहीं भी हो सकता है।


== संदर्भ ==
== संदर्भ ==
{{reflist}}
{{reflist}}


{{DEFAULTSORT:Distributed Data Flow}}[[Category: नेटवर्क प्रोटोकॉल]] [[Category: वितरित कंप्यूटिंग वास्तुकला]]
{{DEFAULTSORT:Distributed Data Flow}}


 
[[Category:Created On 15/05/2023|Distributed Data Flow]]
 
[[Category:Lua-based templates|Distributed Data Flow]]
[[Category: Machine Translated Page]]
[[Category:Machine Translated Page|Distributed Data Flow]]
[[Category:Created On 15/05/2023]]
[[Category:Pages with script errors|Distributed Data Flow]]
[[Category:Templates Vigyan Ready|Distributed Data Flow]]
[[Category:Templates that add a tracking category|Distributed Data Flow]]
[[Category:Templates that generate short descriptions|Distributed Data Flow]]
[[Category:Templates using TemplateData|Distributed Data Flow]]
[[Category:Webarchive template wayback links]]
[[Category:नेटवर्क प्रोटोकॉल|Distributed Data Flow]]
[[Category:वितरित कंप्यूटिंग वास्तुकला|Distributed Data Flow]]

Latest revision as of 11:24, 8 June 2023

वितरित डेटा प्रवाह की परिभाषा में सम्मिलित मूल अवधारणाओं का चित्रण।

वितरित डेटा प्रवाह (वितरित प्रवाह के रूप में भी संक्षिप्त) एक वितरित अनुप्रयोग या प्रोटोकॉल में परिघटनाओं के एक समुच्चय को संदर्भित करता है।

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


अनौपचारिक गुणधर्म

वितरित डेटा प्रवाह निम्नलिखित अनौपचारिक गुणधर्मों को संतुष्ट करता है।

  • अतुल्यकालिक, गैर-अवरुद्ध और एकदिशिक। प्रत्येक परिघटना गैर-अवरुद्ध, एकदिशिक, अतुल्यकालिक विधि उत्क्रियण या दो परतों या सॉफ़्टवेयर घटकों के मध्य पारित होने वाले अन्य प्रकार के स्पष्ट या अस्पष्ट संदेश के एक उदाहरण का प्रतिनिधित्व करती है। उदाहरण के लिए, प्रत्येक घटना एक अंतर्निहित बहुस्त्र्पीय प्रोटोकॉल के लिए एक एप्लीकेशन परत द्वारा निर्गत किए गए पैकेट को प्रसारण करने के लिए एक अनुरोध का प्रतिनिधित्व कर सकती है। परिघटनाएं एकदिशिक और अतुल्यकालिक होना महत्वपूर्ण हैं। सामान्यतः परिणाम देने योग्य विधियों के उत्क्रियण को दो पृथक प्रवाहों के रूप में दर्शाया जाएगा: एक प्रवाह अनुरोधों तथा द्वितीय प्रवाह प्रतिक्रियाओं का प्रतिनिधित्व करता है।
  • सजातीय, एकदिशीय और समरूप। वितरित प्रवाह में सभी परिघटनाएं समान कार्यात्मक और तार्किक उद्देश्य की पूर्ति करती हैं और एक दूसरे से संबंधित हैं; सामान्यतः हमें आवश्यकता होती है कि वे समान कार्यात्मक परत या समान घटकों के उदाहरणों के मध्य किन्तु संभवतः कंप्यूटर नेटवर्क के भीतर विभिन्न नोड्स पर, मैथड कॉल या संदेश विनिमय का प्रतिनिधित्व करें। इसके अतिरिक्त, सभी परिघटनाओं को समान दिशा में प्रवाहित होना चाहिए (अर्थात, एक प्रकार की परत या घटक सदैव उत्पादन करता है तथा द्वितीय सदैव परिघटनाओं का उपभोग करता है) और एक ही प्रकार का प्रदायभार (पेलोड) प्रेरित करता है। उदाहरण के लिए, परिघटनाओं का एक समुच्चय जिसमें समान बहुस्त्र्पीय प्रोटोकॉल के लिए समान एप्लिकेशन परत द्वारा निर्गत किए गए सभी बहुस्त्र्पीय अनुरोध सम्मिलित हैं जो कि एक वितरित प्रवाह है। दूसरी ओर, परिघटनाओं का एक समुच्चय जिसमें विभिन्न अनुप्रयोगों द्वारा विभिन्न बहुस्त्र्पीय प्रोटोकॉल के लिए किए गए बहुस्त्र्पीय अनुरोध सम्मिलित हैं, उन्हें वितरित प्रवाह नहीं माना जाएगा तथा न ही उन परिघटनाओं के समुच्चय होंगे जो बहुस्त्र्पीय अनुरोधों के साथ आभारोक्ति और त्रुटि सूचनाओं का प्रतिनिधित्व करते हैं।
  • समवर्ती, निरंतर और वितरित। सामान्यतः प्रवाह में वे सभी घटनाएं सम्मिलित होती हैं जो सॉफ़्टवेयर की दो परतों के मध्य अलग-अलग स्थानों पर और समय की एक सीमित या अनंत अवधि में प्रवाहित होती हैं। इस प्रकार एक वितरित प्रवाह में सामान्य घटनाओं को स्थान (वे अलग-अलग नोड्स पर होते हैं) और समय (वे अलग-अलग समय पर होते हैं) दोनों में वितरित किया जाता है। उदाहरण के लिए, बहुस्त्र्पीय अनुरोधों के प्रवाह में विभिन्न नोड्स पर दिए गए एप्लिकेशन परत के उदाहरणों द्वारा किए गए ऐसे सभी अनुरोध सम्मिलित होंगे; सामान्यतः इस प्रकार के प्रवाह में वे परिघटनाएँ सम्मिलित होंगी जो दिए गए बहुस्त्र्पीय प्रोटोकॉल में सहयोगी सभी नोड्स पर घटित होती हैं। वे प्रवाह जिनमें सभी परिघटनाएँ समान नोड पर घटित होती हैं उन्हें अपह्रासित माना जाएगा।

औपचारिक प्रतिनिधित्व

औपचारिक रूप से, प्रत्येक परिघटना को वितरित प्रवाह में (x, t, k, v) रूप के चौगुने के रूप में दर्शाते हैं, जहाँ x स्थान (उदाहरण के लिए, भौतिक नोड का नेटवर्क पता) है जिस पर परिघटना होती है, t वह समय है जिस पर ऐसा घटित होता है, k एक संस्करण या विशेष घटना की पहचान करने वाली एक अनुक्रम संख्या और v एक मान है जो परिघटना पेलोड का प्रतिनिधित्व करता है (उदाहरण के लिए, मैथड कॉल में पारित सभी तर्क)। प्रत्येक वितरित प्रवाह ऐसे चतुष्कोणों का एक (संभवतः अनंत) समुच्चय है जो निम्नलिखित तीन औपचारिक गुणधर्मों को संतुष्ट करता है।

  • समय t में किसी भी परिमित बिंदु के लिए प्रवाह में अनेक घटनाएँ हो सकती हैं जो समय t या उससे पूर्व घटित होती हैं। इसका तात्पर्य यह है कि उस प्रवाह में सदैव उस बिंदु को इंगित किया जा सकता है जिस पर प्रवाह उत्पन्न हुआ था। प्रवाह स्वयं अनंत हो सकता है; ऐसी स्थिति में किसी भी समय,अंततः एक नई परिघटना प्रवाह में दिखाई देगी।
  • एक ही स्थान पर घटित परिघटना e_1 और e_2 के किसी भी युग्म के लिए, यदि e_1 e_2 से पूर्व समय में होता है, तो e_1 में संस्करण संख्या भी e_2 से लघुतर होनी चाहिए।
  • एक ही स्थान पर घटित परिघटना e_1 और e_2 के किसी भी युग्म के लिए, यदि दो परिघटनाओं में समान संस्करण संख्याएँ हैं, तो उनके मान भी समान होने चाहिए।

उपरोक्त के अतिरिक्त, प्रवाह में कई अतिरिक्त गुणधर्म हो सकते हैं।

  • 'संगतता'। एक वितरित प्रवाह को सुसंगत कहा जाता है यदि समान संस्करण वाली परिघटनाओं का सदैव मान समान होता है, यद्यपि वे विभिन्न स्थानों पर घटित हों। सुसंगत प्रवाह विशिष्ट रूप से प्रोटोकॉल या एप्लिकेशन द्वारा किए गए विभिन्न प्रकार के वैश्विक निर्णयों का प्रतिनिधित्व करते हैं।
  • 'दिष्टता'। वितरित प्रवाह को दुर्बलतः एकदिष्ट कहा जाता है यदि एक ही स्थान पर घटित परिघटना e_1 और e_2 के किसी भी युग्म के लिए, यदि e_1 का e_2 से लघुतर संस्करण है, तो e_1 को e_2 से अधिक छोटा मान रखना चाहिए। वितरित प्रवाह को प्रबल एकदिष्ट (या केवल एकदिष्ट) कहा जाता है यदि यह विभिन्न स्थानों पर घटित परिघटनाओं e_1 और e_2 के युग्म के लिए भी सत्य है। प्रबल एकदिष्ट प्रवाह सदैव सुसंगत होते हैं। वे विशिष्ट रूप से विभिन्न प्रकार के अपरिवर्तनीय निर्णयों का प्रतिनिधित्व करते हैं। दुर्बलतः एकदिष्ट प्रवाह सुसंगत हो सकता है या नहीं भी हो सकता है।

संदर्भ

  1. Ostrowski, K., Birman, K., Dolev, D., and Sakoda, C. (2009). "Implementing Reliable Event Streams in Large Systems via Distributed Data Flows and Recursive Delegation", 3rd ACM International Conference on Distributed Event-Based Systems (DEBS 2009), Nashville, TN, USA, July 6–9, 2009, http://www.cs.cornell.edu/~krzys/krzys_debs2009.pdf Archived 2011-06-06 at the Wayback Machine
  2. Ostrowski, K., Birman, K., and Dolev, D. (2009). "Distributed Data Flow Language for Multi-Party Protocols", 5th ACM SIGOPS Workshop on Programming Languages and Operating Systems (PLOS 2009), Big Sky, MT, USA. October 11, 2009, http://www.cs.cornell.edu/~krzys/krzys_plos2009.pdf Archived 2011-06-06 at the Wayback Machine
  3. Ostrowski, K., Birman, K., Dolev, D. (2009). "Programming Live Distributed Objects with Distributed Data Flows", Submitted to the International Conference on Object Oriented Programming, Systems, Languages and Applications (OOPSLA 2009), http://www.cs.cornell.edu/~krzys/krzys_oopsla2009.pdf Archived 2009-08-16 at the Wayback Machine