IoT उपकरणों के लिए मुझे अपना निजी क्लाउड बनाने की क्या आवश्यकता है?


18

यह एक ऐसा विषय है जिसके बारे में मैं कुछ समय से सोच रहा था, खासकर क्योंकि "आईओटी" की अवधारणा हाल ही में बहुत अधिक समय से तैर रही है।

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

इस संदर्भ में, कनेक्शन का उद्देश्य कोई फर्क नहीं पड़ता, यदि आप अपने कार्यालय में एक डिवाइस को घर पर दूसरे के साथ जोड़ सकते हैं, या यदि आप अपने सेल फोन से घर पर एक डिवाइस से कनेक्ट कर सकते हैं, तो यह सब इंटरनेट के माध्यम से किया जा सकता है। तब हम IoT उपकरणों (एम्बेडेड उपकरणों, फोन नहीं) के बारे में बात कर रहे हैं

इसलिए, आईओटी द्वारा मेरे मतलब से सहमत होने पर अब मैं वर्णन करूंगा कि मैं क्या हासिल करने की कोशिश कर रहा हूं।

मैं जो हासिल करने की कोशिश कर रहा हूं वह ठीक यही है कि मैं IoT की अपनी परिभाषा पर क्या वर्णन करता हूं।

मैं चाहता हूं कि मेरे इंटरनेट राउटर से जुड़े घर में एक या कई एम्बेडेड डिवाइस हों, जो कि ईथरनेट या वाईफाई से हों और दूरस्थ स्थान पर दूसरे एम्बेडेड डिवाइस के साथ उन्हें दूरस्थ रूप से कनेक्ट करने में सक्षम हों (और रिमोट से मेरा मतलब समान नेटवर्क पर नहीं) और शायद मेरे फोन पर एक निगरानी ऐप के साथ उन्हें कनेक्ट करने में सक्षम हो

उदाहरण के लिए, मेरे पास मेरे गेराज दरवाजे के सलामी बल्लेबाज के लिए ऑन / ऑफ स्विच हुक ओप के रूप में एक साधारण एम्बेडेड डिवाइस अभिनय हो सकता है और दूसरा एम्बेडेड डिवाइस काम पर मेरी डेस्क पर एक बड़े लाल बटन के रूप में काम कर सकता है ताकि मैं अपनी डेस्क पर लाल बटन को धक्का दे सकूं और गेराज दरवाजा खुलता है।

एक अन्य उदाहरण एडीसी क्षमताओं के साथ एक एम्बेडेड डिवाइस होगा जो मेरे घर के तापमान की निगरानी कर सकता है और जब यह एक सीमा तक पहुंचता है तो मुझे अलर्ट भेज सकता है। अधिसूचना या तो एक सरल एंड्रॉइड ऐप या किसी अन्य एम्बेडेड डिवाइस द्वारा काम पर मेरी डेस्क पर बैठे एक छोटी स्क्रीन के साथ प्राप्त की जा सकती है।

ये उदाहरण मूर्खतापूर्ण हो सकते हैं, लेकिन संभव परिदृश्यों को चित्रित करने के लिए हैं और उन मामलों का उपयोग करने के लिए जो मैं प्राप्त करने की कोशिश कर रहा हूं। अंत में, विचार समान है, एक एम्बेडेड डिवाइस को इंटरनेट के माध्यम से दूसरे के साथ कनेक्ट करें।

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

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

मैं IoT प्लेटफार्मों और वहाँ से बाहर जटिल समाधान के उन प्रकार के बारे में ज्यादा नहीं जानता। जब मैंने इंटरनेट के माध्यम से एक एम्बेडेड डिवाइस को दूसरे के साथ जोड़ने का एक तरीका खोजने की यह यात्रा शुरू की, तो मैंने Ioo सेवाओं के साथ कुछ साइटों पर ठोकर खाई।

मुझे पता है कि कुछ IoT क्लाउड सेवाएं हैं:

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

आप कह सकते हैं कि अपने स्वयं के "क्लाउड" को लागू करना, अगर ऐसा कुछ है जो मुझे करना है, सरल नहीं है और कभी-कभी सादगी के लिए उन प्रकार की सेवाओं का उपयोग करना बेहतर होता है, लेकिन दो मुख्य कारण हैं जिन्हें मैं जानना चाहता हूं कि कैसे मेरी अपनी IoT सेवाओं को लागू करें।

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

दूसरा कारण यह सीखना है कि यह कैसे करना है। मुझे इसे हासिल करने के लिए आवश्यक सभी चीजों को जानकर, आईओटी दुनिया के बारे में बेहतर समझ होगी।

इसके अलावा, मैं यह उल्लेख करना चाहता हूं कि मैं सी में कुशल हूं और मैं अपने घर में काम के साथ-साथ अपने रोजमर्रा के ओएस के रूप में लिनक्स का उपयोग करता हूं, इसलिए कृपया विंडोज़ सामान से बचें क्योंकि यह मेरे लिए बेकार है। मैं अपने एम्बेडेड उपकरणों के लिए सी में लागू करने के लिए या लिनक्स पर कुछ भी करने से डरता नहीं हूं जो मेरे लक्ष्य को प्राप्त करने के लिए आवश्यक है।

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

यह प्रश्न मैं अपने स्वयं के सर्वर पर IoT बनाने के लिए क्या उपयोग कर सकता हूं? कुछ इसी तरह का है, लेकिन बंद है और इसका कोई जवाब नहीं है, इसका इस्तेमाल करने के लिए पहले से मौजूद क्लाउड इन्फ्रास्ट्रक्चर भी है। तो यह मेरी मदद नहीं करता है।

यह अन्य पोस्ट क्या IoT सेवाएं क्लाउड में सामान्य डेटा संग्रहीत / भेजने / प्रकाशित करने के लिए उपलब्ध हैं? एक समान प्रश्न है, लेकिन ओपी IoT सेवाओं के लिए स्पष्ट रूप से पूछ रहा है और मैं उन लोगों से बचने की कोशिश कर रहा हूं।


2
एक सर्वर "मौजूदा क्लाउड इन्फ्रास्ट्रक्चर" कैसे है? एक सर्वर सिर्फ एक कंप्यूटर है। क्लाउड इन्फ्रास्ट्रक्चर बहुत अधिक है।
user253751

1
यह भी ध्यान दें कि जब हमारे पास सर्वव्यापी IPv6 है तो आप अपने IoT उपकरणों को एक दूसरे से सीधे बात करने में सक्षम हो सकते हैं, केंद्रीय सर्वर / क्लाउड की कोई आवश्यकता नहीं है।
user253751

जवाबों:


10

शायद मैं सवाल के बिंदु से चूक गया, लेकिन मुझे लगता है कि यह एक उत्तर में एक अच्छी शुरुआत है।

आपको न्यूनतम तीन चीजें चाहिए।

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

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


1
मुझे यकीन नहीं है कि यह उत्तर आपको चाहिए था। हालांकि यह पूछने के लिए कि आपको क्या करने की आवश्यकता है, यह काम करने में मदद करनी चाहिए।
शॉन होउलहेन

1
मदद के लिए धन्यवाद!! तो, आप अपने पहले बिंदु में क्या मतलब है कि मुझे कुछ प्रकार के केंद्र या प्रवेश द्वार की आवश्यकता है?
m4l490n

1
हां, आपको एक गेटवे या एक से अधिक की आवश्यकता है। यदि आपके पास केवल एक नोड है, तो यह स्पष्ट रूप से आपका नोड हो सकता है। मैंने अपने उत्तर को थोड़ा संपादित किया।
शॉन होउलहेन

11

लाइटवेट डिवाइस, और बाइट्स डेट रेट्स MQTT का उपयोग करने के लिए कहते हैं , क्योंकि यह पहले ही उल्लेख किया गया है। आपके सेंसर नोड्स स्टैंडअलोन ESP8266 मॉड्यूल पर आधारित हो सकते हैं जो MQTT क्लाइंट कार्यान्वयन की मेजबानी करने के लिए पर्याप्त शक्तिशाली हैं। या आप बस अपने बाहरी माइक्रोकंट्रोलर के साथ-साथ एटी कमांड नियंत्रित वाई-फाई मॉड्यूल के रूप में इन मॉड्यूल का उपयोग कर सकते हैं।

आप इस आदमी की तरह बहुत कम शक्तिशाली माइक्रोकंट्रोलर पर अपने खुद के MQTT समाधान को लागू कर सकते हैं जिन्होंने 4 kB फ्लैश के साथ Atmega48V का उपयोग किया है

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

नुकसान है कि आपके सभी सेंसर नोड्स को टीसीपी / आईपी कनेक्शन की आवश्यकता होगी।


बैटरी के अनुकूल समाधान का उपयोग करने से हो सकता है LoraWAN या ZigBee सक्षम सेंसर / प्रवर्तक नोड्स और एक रास्पबेरी / BeagleBone पर एक प्रवेश द्वार है जो एक सरल वेब सर्वर भी होस्ट कर सकते हैं कि अपने फोन या अन्य उपकरणों से पहुँचा जा सकता है लागू।


हर मामले में यह सब आपके हब, गेटवे या सर्वर को आपके निजी नेटवर्क के बाहर सुलभ बनाने के लिए नीचे आता है। ऐसा करने के और भी तरीके हैं और मुख्य चिंता हमेशा सुरक्षा की है। मेरी राय में यह सबसे जोखिम भरा हिस्सा है।

बुनियादी आवश्यकताओं को संक्षेप में @ सीन द्वारा संक्षेप में प्रस्तुत किया गया है।


आपके उत्तर और @ सीन के उत्तर के अनुसार, मैं देखता हूं कि मुझे किसी प्रकार के हब या गेटवे की आवश्यकता है। क्या यह बिल्कुल आवश्यक है? मेरा मतलब है, क्या मैं इसे आईपी पते या होस्ट नाम से जानकर सीधे किसी नोड से कनेक्ट नहीं कर सकता हूं? क्या ऐसा नहीं है कि मैं एक हब या प्रवेश द्वार से बचने की कोशिश कर रहा हूं, मैं सिर्फ यह समझना चाहता हूं कि यह आवश्यक है और क्यों। मदद के लिए धन्यवाद!!
m4l490n

क्या आपने पाया है कि रास्पबेरी पाई "हमेशा चालू" डिवाइस के रूप में ठीक है? मेरे पास एक छोटा एचडीडी है जो मेरे पाई में प्लग किया गया है जिसे मैं नेटवर्क स्टोरेज के रूप में उपयोग करता हूं लेकिन इसे हर समय छोड़ने में संकोच करता हूं। अगर मैं ऐसा करूं तो यह ठीक होना चाहिए? (
एफडब्ल्यूआईडब्ल्यू

1
@ m4l490n हब या गेटवे का उपयोग करना इसे और सरल बनाता है। इस तरह से आपको पोर्ट अग्रेषण या केवल हब या गेटवे के लिए सेटअप करना होगा। यदि आप अपने राउटर के पीछे सभी डिवाइस से सीधे कनेक्ट करना चाहते हैं तो आपको प्रत्येक के लिए पोर्ट फॉरवर्डिंग सेटअप करना होगा। अधिक जोखिम के रूप में आप अपने निजी नेटवर्क में अधिक तरीके खोलते हैं, और अधिक काम करते हैं।
बेंस कौलिक्स


10

आपने नियंत्रक / हब की आवश्यकता के बारे में दोनों पिछले उत्तरों पर सवाल उठाया है। विचार करें कि चीजें होने के लिए, आपको अस्तित्व के लिए नियमों की आवश्यकता है। यदि आप गेराज दरवाजा खोलने के लिए एक बड़ा लाल बटन पुश करना चाहते हैं, तो कुछ नियम सेंसर (बटन) को वांछित कार्रवाई (दरवाजा खोलने) को टाई करने के लिए है। ऐसा करने के दो तरीके हैं: आप नियम को सीधे बटन में रख सकते हैं, या आप एक अलग कंप्यूटर में नियम रख सकते हैं।

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

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

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

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

नियंत्रक एक बाहरी इंटरफ़ेस का उपयोग करने की अनुमति देता है, एक संचार गेटवे से और सभी संदेश को समेकित करने के लिए एक वास्तुशिल्प रूप से तार्किक स्थान प्रदान करता है। इसका मतलब है कि आपका बटन और आपका फोन दोनों सिग्नल भेज सकते हैं, और नियम यह पता लगा सकते हैं कि गैरेज दरवाजा खोलने के लिए या तो किसी को अनुमति दी गई है। प्रवेश द्वार भी सुरक्षा प्रदान कर सकता है। आपको अपना बटन और अपना गेराज दरवाजा इंटरनेट पर नहीं रखना है; आप उन दोनों को निजी पृथक नेटवर्क पर रख सकते हैं और संकेतों को ले जाने के लिए प्रवेश द्वार का उपयोग कर सकते हैं। नियंत्रक आपके सिस्टम के लिए सभी नियमों का समर्थन करने के लिए एक एकल बिंदु भी प्रदान करता है।

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


ठीक है, ऐसा लगता है कि एचयूबी, या नियंत्रक होना बहुत वांछनीय है, खासकर अगर मुझे अपने सभी IoT उपकरणों में एक नियम-आधारित कार्यक्षमता की आवश्यकता होती है जो पूरे नेटवर्क का सबसे अधिक उपयोग करने की अनुमति दे सके।
m4l490n

इसलिए, अगर मुझे सही तरीके से समझ में आया, तो मेरे पास पीयर-टू-पीयर कनेक्शन हो सकता है बशर्ते कि मुझे जटिल नियमों या यहां तक ​​कि IoT उपकरणों के एक जटिल नेटवर्क की आवश्यकता न हो और यह भी मान लिया जाएगा कि IoT डिवाइसों के साथ कोई इंटरऑपरेबिलिटी नहीं है अन्य ब्रांड और उदाहरण के लिए एक बटन हमेशा एक ही दरवाजे के सलामी बल्लेबाज से जुड़ा रहेगा।
m4l490n

अन्यथा, यदि अधिक लचीलापन और कार्यक्षमता की आवश्यकता है, तो मेरे पास एक एचयूबी होना चाहिए। क्या वो सही है?
m4l490n

हां, यह एक सटीक सारांश है। वस्तुतः हर किसी को किसी न किसी तरह के हब / नियंत्रक की आवश्यकता होती है। व्यावसायिक और खुले स्रोत दोनों के लिए हब के बहुत सारे विकल्प हैं।
जॉन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.