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

From Vigyanwiki
(Created page with "{{Short description|Set of events in a distributed application or protocol}} Image:Definition of a Distributed Data Flow.gif|right|thumbnail|300 पीएक्स | वि...")
 
Line 1: Line 1:
{{Short description|Set of events in a distributed application or protocol}}
{{Short description|Set of events in a distributed application or protocol}}
[[Image:Definition of a Distributed Data Flow.gif|right|thumbnail|300 पीएक्स | वितरित डेटा प्रवाह की परिभाषा में शामिल बुनियादी अवधारणाओं का एक उदाहरण।]]वितरित [[डेटा प्रवाह]] ("वितरित प्रवाह" के रूप में भी संक्षिप्त) एक वितरित कंप्यूटिंग या [[संचार प्रोटोकॉल]] में ईवेंट (कंप्यूटिंग) के एक सेट को संदर्भित करता है।
[[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>




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


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



Revision as of 09:22, 24 May 2023

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

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

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


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

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

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

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

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

  • समय टी में किसी भी परिमित बिंदु के लिए, प्रवाह में केवल बहुत ही सीमित घटनाएं हो सकती हैं जो समय टी या उससे पहले होती हैं। इसका तात्पर्य यह है कि किस प्रवाह में, कोई हमेशा उस बिंदु को इंगित कर सकता है जिस पर प्रवाह उत्पन्न हुआ था। प्रवाह ही अनंत हो सकता है; ऐसी स्थिति में, किसी भी समय, अंततः एक नई घटना प्रवाह में दिखाई देगी।
  • ईवेंट 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