वितरित डेटा प्रवाह

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

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

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