जवाबों:
वास्तव में वितरित कंप्यूटिंग का गठन क्या है?
वितरित कंप्यूटिंग प्रसंस्करण तत्वों का एक अंतर्निहित समानांतर संग्रह है जो एक या अधिक समस्याओं से निपटने के लिए एक दूसरे के साथ संवाद करता है। उन प्रसंस्करण तत्वों को एक दूसरे से पर्याप्त रूप से अलग किया जाता है कि उनके बीच एक विश्वसनीय और समय पर संदेश भेजने वाले कपड़े का निर्माण करना व्यावहारिक नहीं है, और इसलिए सिस्टम की स्थिति का वैश्विक ज्ञान होना असंभव है। वितरण प्रणाली के साथ संदेश के विशेष सुविधाओं संदेश जो कर रहे हैं होगा खो दिया हो, होगा , ठीक से प्रदर्शित हो जाएगा देरी हो - इस क्षेत्र में समाधान इस के कारण लेना है। इस प्रकार, वितरित प्रोग्रामिंग नेटवर्क और संदेशों, समानता और वैश्विक जानकारी की कमी से निपटने के बारे में है।
समस्याओं के इर्द-गिर्द काम करने का सबसे आसान तरीका यह है कि किसी विशेष जानकारी के लिए एक एकल प्रसंस्करण तत्व को विशेष रूप से प्राधिकृत किया जाए। फिर अन्य तत्व या तो इसे हर बार वापस भेज सकते हैं, या जानकारी को कैश कर सकते हैं और आशा करते हैं कि यह पुराना नहीं है (क्योंकि वे बदलावों के बारे में नहीं बता सकते हैं)। यह क्लासिक क्लाइंट / सर्वर आर्किटेक्चर है।
इंटरनेट कंप्यूटिंग को कंप्यूटिंग वितरित किया जाता है, लेकिन यह नियंत्रित करने की क्षमता के बिना कि वितरित नोड्स में से अधिकांश वास्तव में क्या करते हैं।
क्या संसाधन के उपयोग के लिए सिंक्रनाइज़ करने के लिए कई समानांतर धागे वितरित कंप्यूटिंग के क्षेत्र में एक समस्या का गठन करते हैं?
वे एक संभावित समाधान का गठन करते हैं जो क्लाइंट / सर्वर मॉडल का निर्माण करते समय उपयोगी होता है, लेकिन संसाधन विवाद में संभावित नाटकीय वृद्धि की कीमत पर। रीड्स के लिए, यह बहुत बड़ी बात नहीं है (प्रदान करने के लिए पर्याप्त हार्डवेयर) लेकिन लिखते हैं कि यह वास्तव में एक बड़ी समस्या है।
क्या आप से बचने की कोशिश हालांकि वितरित ताले है। जब तक आप पैक्सोस प्रोटोकॉल जैसी किसी चीज़ का उपयोग नहीं करते हैं, विश्वसनीय समयबद्ध मैसेजिंग की कमी बिल्कुल निर्णय प्रोटोकॉल को वितरित करती है , लेकिन यह बहुत सारे कैविएट हैं। वितरित कंप्यूटिंग के साथ मूलभूत समस्या यह है कि "संदेशों के लिए बुरा सामान होता है"। टीसीपी की तरह अपेक्षाकृत कम स्तर के प्रोटोकॉल समस्याओं को कम करते हैं, लेकिन आप अभी भी बुरी तरह से अस्थिर हो सकते हैं।
क्या संसाधन के उपयोग के लिए सिंक्रनाइज़ करने के लिए कई समानांतर धागे वितरित कंप्यूटिंग के क्षेत्र में एक समस्या का गठन करते हैं?
वे करते हैं यदि वे धागे विभिन्न मशीनों पर चल रहे हों, या भले ही वे एक ही मशीन पर चल रहे हों, लेकिन विभिन्न प्रक्रियाओं में।
डिस्ट्रिब्यूटेड कंप्यूटिंग एक कंप्यूटिंग सिस्टम है, जिसमें विभिन्न कंप्यूटरों पर प्रोसेसिंग होती है (यानी वितरित सिस्टम पर)। व्यक्तिगत कार्यक्रम संचार चैनलों की एक श्रृंखला के माध्यम से एक दूसरे के साथ संवाद करते हैं। ये चैनल आमतौर पर नेटवर्क कनेक्शन (उदाहरण के लिए टीसीपी सॉकेट्स) हैं, लेकिन अक्सर अन्य संचार प्रोटोकॉल और उपकरणों (जैसे डिवाइसनेट, बीएसीनेट, एसईसीएस -2, मोडबस, आदि) या यहां तक कि प्रोटोकॉल का उपयोग करते हैं जो एक विशिष्ट डिवाइस के लिए कस्टम हैं।
वितरित सिस्टम आमतौर पर उन प्रणालियों की तुलना में बहुत अधिक जटिल होते हैं जिन्हें किसी एकल कंप्यूटर पर चलाने के लिए डिज़ाइन किया जाता है। संगोष्ठी और संसाधन लॉकिंग समस्याओं के अलावा बहु-थ्रेडेड अनुप्रयोगों के साथ संघर्ष करने की आवश्यकता है, वितरित सिस्टम को संचार विफलताओं को संभालने की जरूरत है, और नोड विफलताओं को संसाधित करना है। लेन-देन (और रोलबैक) जिसके संचालन के लिए कई प्रोसेसर की आवश्यकता होती है, वह भी मुश्किल हो सकता है।
वितरित सिस्टम कई रूपों को लेते हैं और वर्तमान में कई अनुप्रयोगों में उपयोग किए जाते हैं। वेब अनुप्रयोग वितरित सिस्टम हैं। N-Tiered सिस्टम में आमतौर पर कम से कम N विभिन्न प्रोसेसर होते हैं (विभिन्न अनुप्रयोगों के साथ)। कई फैक्ट्री ऑटोमेशन सिस्टम में भी डिस्ट्रीब्यूटेड सिस्टम का इस्तेमाल किया जाता है।
लेख विकिपीडिया में वितरित अभिकलन पर पढ़ने लायक है।
बहु-थ्रेडेड अनुप्रयोग एक वितरित अनुप्रयोग का गठन करता है या नहीं, इसके बारे में सवाल के जवाब में - यदि थ्रेड एकल कंप्यूटर पर चल रहे हैं, तो सिस्टम वितरित नहीं है। इसे वितरित प्रणालियों में निहित कुछ समस्याओं को हल करना है, लेकिन उन सभी को नहीं।
सख्ती से "वितरित कंप्यूटिंग" बोलना एक समाधान है जिसमें एक से अधिक कंप्यूटरों पर एकल लेनदेन / अनुरोध / गणना को संसाधित करना शामिल है।
आप "डिस्ट्रीब्यूटेड सिस्टम्स" शब्द पर भी आएंगे, जो विंडोज़, यूनिक्स और अन्य छोटे सिस्टम सर्वर के लिए एक शब्द है, जो मूल रूप से केंद्रीय डेटा सेंटर के बाहर तैनात किया गया होगा। यद्यपि इन प्रणालियों के लिए इन दिनों डेटा सेंटर के अंदर तैनात किया जाना सामान्य है, लेकिन यह शब्द अटक गया है।
वितरित कंप्यूटिंग का गठन करने के बारे में आपके सामान्य प्रश्न का उत्तर देने के लिए, मैं पेपर ए नोट ऑन डिस्ट्रीब्यूटेड कम्प्यूटिंग ऑन एन वोलरथ, ज्यॉफ वायंट, जिम वाल्डो और सैमुअल सी। केंडल की सिफारिश करूंगा । यह वितरित प्रणालियों और इसकी विफलताओं के हाल के इतिहास को शामिल करता है, और यह प्रस्ताव करता है कि वितरित कंप्यूटिंग में शामिल समस्याओं के बारे में अलग तरह से सोचने की आवश्यकता है।
यद्यपि न तो म्यूटेक्स और न ही सेमाफोर का उल्लेख कागज में किया गया है, यह एक वितरित सॉफ्टवेयर प्रणाली के उचित इंजीनियरिंग में मूल्यवान अंतर्दृष्टि प्रदान करता है।
जैसे कि आपके साक्षात्कारकर्ता ने म्यूटेक्स और सेमाफोरस के बारे में क्यों पूछा, मैं @ कालेब से सहमत होगा:
वे करते हैं यदि वे धागे विभिन्न मशीनों पर चल रहे हों, या भले ही वे एक ही मशीन पर चल रहे हों, लेकिन विभिन्न प्रक्रियाओं में।
केवल एक चीज मैं जोड़ूंगा कि म्यूटेक्स और सेमाफोर निम्न स्तर की लॉकिंग प्राइमेट हैं जो आपको कई कंप्यूटिंग डिवाइसों में काम वितरित करने की अनुमति देते हैं, और उनका ऑपरेशन (आमतौर पर) आवेदन की सफलता के लिए महत्वपूर्ण है। जाहिर है, यह इस्तेमाल की जाने वाली भाषा और तकनीक पर निर्भर करता है। यदि आप Erlang या Scala का उपयोग कर रहे हैं, तो आप शायद पारंपरिक, लॉक-आधारित संगामिति के बजाय अभिनेता मॉडल-आधारित संगामिति का उपयोग करेंगे।
शब्द यह सब कहता है। आपको कुछ कंप्यूटिंग ऑपरेशन करना होगा और यदि आप इस कंप्यूटिंग के कुछ हिस्सों को वितरित कर सकते हैं जैसे कि प्रत्येक कंप्यूटिंग दूसरे कंप्यूटिंग के बावजूद काम करता है और तब जब सभी किए जाते हैं तो आप मुख्य कंप्यूटिंग का उत्तर पाने के लिए प्रत्येक कंप्यूटिंग के परिणाम को जोड़ते हैं। उदाहरण होगा: मैप-रिड्यूस
हमारे पास "वितरित सिस्टम" पर एक कोर्स था और जब मुझे परिभाषा बिल्कुल याद नहीं थी, तो यह निम्नलिखित था:
(मेरा मानना है कि कुछ और थे और मैं अंतिम बिंदु के बारे में निश्चित नहीं हूं)
अब पाठ्यक्रम में हमने सीखा कि वितरित लेनदेन और वितरित लॉक को कैसे लागू किया जाए। सबक यह है कि वितरित लॉक को मूल रूप से वितरित लेनदेन का उपयोग करके लागू किया जाता है, जो कि आप स्थानीय रूप से जो करते हैं, उसकी तुलना में आसपास का दूसरा तरीका है, और यह स्वाभाविक रूप से दोष सहिष्णु नहीं है, जो पहले स्थान पर वितरित प्रणाली होने के उद्देश्य को पराजित करता है।
संपादित करें: यह परिभाषा ऑपरेटिंग सिस्टम या डेटाबेस सिस्टम के संकीर्ण अर्थ में "वितरित सिस्टम" के लिए है और केवल क्लाइंट-सर्वर सिस्टम के विपरीत है। पहली स्थिति को संतुष्ट करने वाली कुछ चीज़ों को कुछ संदर्भों में वितरित किया जा सकता है।
संयोगवश, परिभाषा वितरित और पारंपरिक संस्करण नियंत्रण प्रणालियों के बीच के अंतर से मेल खाती है, जिनमें से सभी कम से कम क्लाइंट-सर्वर हैं और अक्सर प्रतिकृति भी होती हैं।
एंटरप्राइज़ कंप्यूटिंग के लिए "गैर-विपणन" शब्द की गणना की जाती है, जिसे आप वास्तविक जीवन में बहुत अधिक सुन सकते हैं। हालाँकि, दूसरों द्वारा बताए गए सामान्य विचार "आप काम करने के लिए एक से अधिक कंप्यूटर का उपयोग कर रहे हैं"