वितरित अभिकलन

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

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

इस तरह के प्लेटफॉर्म में विभिन्न मॉड्यूल/सेवाएं शामिल हैं जैसे - एक्शन नोटिफिकेशन सर्विस, लोड बैलेंसर, लॉगिंग मॉड्यूल, रिपॉजिटरी, रिक्वेस्ट मैनेजर, डिप्लॉयर, शेड्यूलर, सेंसर मॉड्यूल, एल्गोरिदम, डेटाबेस, रन टाइम वातावरण आदि।

बैकग्राउंड वर्क

डिस्ट्रीब्यूटेड सिस्टम

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

डिस्ट्रीब्यूटेड सिस्टम डिज़ाइन के सिद्धांत 

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

वितरित सिस्टम का लाभ और नुकसान 
वितरित सिस्टम के कुछ लाभइस प्रकार हैं -

 वितरित प्रणाली के सभी नोड्स एक दूसरे से जुड़े हैं। तो नोड्स आसानी से डेटा साझा कर सकते हैं अन्य नोड्स के साथ।
 अधिक नोड्स को आसानी से जोड़ा जा सकता वितरित सिस्टम में  अर्थात इसे आवश्यकतानुसार बढ़ाया जा सकता है।
 वितरित सिस्टम एक नोड की विफलता पूरे की विफलता के लिए नेतृत्व नहीं करती है। अन्य नोड्स अभी भी एक दूसरे के साथ संवाद कर सकते हैं।
 संसाधनों जैसे प्रिंटर को केवल एक तक सीमित रखने के बजाय कई नोड्स के साथ साझा किया जा सकता है।

डिस्ट्रिब्यूटेड सिस्टम्स के कुछ नुकसान इस प्रकार हैं -

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

सर्वर रहित वास्तुकला

एक सर्वर रहित वास्तुकला क्या है 
सर्वर रहित आर्किटेक्चर उन अनुप्रयोगों को संदर्भित करता है जो कार्यों और तृतीय-पक्ष के सेवाओं को भारी रूप से शामिल करते हैं और सर्वर के प्रबंधित को शामिल नहीं करते हैं। सर्वरलेस कंप्यूटिंग एक निष्पादन मॉडल क्लाउड के है जिसमें एक क्लाउड प्रदाता गतिशील रूप से आवंटित करता है - और फिर उपयोगकर्ता से चार्ज करता है - केवल संसाधनों एक विशेषको निष्पादित करने के लिए आवश्यकऔर भंडारण के लिए कोड।

सर्वरलेस डिज़ाइन के सिद्धांत 

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

सर्वर रहित आर्किटेक्चर के फायदे और नुकसान
सर्वरहित कंप्यूटिंग के निम्नलिखित लाभ हैं:

 तैनाती और पैकेजिंग को सरल करता है और सिस्टम प्रशासन की आवश्यकता को समाप्त करता है।
 सॉफ्टवेयर की जटिलता को कम करता है।
 माइक्रोसर्विस के साथ अच्छी तरह से फिट बैठता है (उन्हें कार्यों के रूप में लागू किया जा सकता है)।
 चुस्त विकास के साथ काम करता है और डेवलपर्स का कोड पर ध्यान केंद्रित करने में सक्षम बनाता है और जल्दी से वितरित करता है।
 पैमाने पर कम लागत - डेवलपर्स को  कोड को पैमाने पर लागू करने की आवश्यकता नहीं है और प्रशासकों को मौजूदा सर्वर को अपग्रेड करने की या किसी  अतिरिक्त सर्वर को  जोड़ने की आवश्यकता नहीं है।
 छोटे विकास और परिचालन लागत।  

एक ही समय में, यह निम्न कमियां भी हैं: 

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

IoT डिस्ट्रिब्यूटेड सर्वर रहित सिस्टम के बेसिक मॉड्यूल

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

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

लोड बैलेंसर
लोड बैलेंसर आने वाले नेटवर्क ट्रैफ़िक को बैकएंड सर्वर्स के समूह भर में (जिसे सर्वर फ़ार्म  या सर्वर पूल के नाम से भी जाना जाता है)  कुशलतापूर्वक वितरित करने को संदर्भित करता है । एक लोड बैलेंसर निम्नलिखित कार्य करता है:

 क्लाइंट अनुरोध या नेटवर्क लोड को कुशलता से सर्वरों पर वितरित करता है 
 उपलब्धता और विश्वसनीयता सुनिश्चित करता है, उन्ही सर्वर को अनुरोध भेजकर जो ऑनलाइन हैं
 लचीलापन प्रदान करता है, सर्वर्स को जोड़ता या घटाता  है डिमांड के अनुसार

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

मॉनिटरिंग / हेल्थ चेक-अप 

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

लॉगिंग सर्विस 
लॉगिंग सेवा एक ऐसा मॉडल है जिसे आपके डिजिटल इन्फ्रास्ट्रक्चर में बनाया गया है| इसका प्राथमिक कार्य किसी भी स्रोत या मूल से को लॉग फाइलों को इकट्ठा करना और केंद्रीकृत करने का है, चाहे वे किसी विशेष एप्लिकेशन, या सभी प्रणालियों, सर्वरों और उपकरणों के लॉग को निगलने और स्टोर करने के लिए निर्मित किया गया हो।

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

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

रन टाइम एनवायरनमेंट 
ये ऐसे सर्वर हैं जो वास्तव में सर्विस को निष्पादित करते हैं सभी सर्विस डिटेल्स प्राप्त करने के बाद। इस तरह के एआई रन टाइम मॉडल को तैनात और रन करने के लिए समर्थन प्रदान करता है। यह मॉड्यूल और रनिंग प्रक्रियाओं के लिए आवश्यक वातावरण बनाता है।

अन्य आवश्यक

सेंसर 
एक उपकरण जो विद्युत या भौतिक या अन्य मात्रा में परिवर्तन का पता लगाता है और इस तरह मात्रा में परिवर्तन की स्वीकृति  के रूप में एक आउटपुट उत्पन्न करता है उसे सेंसर कहा जाता है । आम तौर पर, यह सेंसर आउटपुट इलेक्ट्रिकल या ऑप्टिकल सिग्नल के रूप में होगा। कई अलग-अलग प्रकार के सेंसर हैं जैसे- तापमान सेंसर, दबाव सेंसर, आईआर सेंसर, आर्द्रता सेंसर, ऑप्टिकल सेंसर, आदि।

डेटाबेस 
डेटा की एक अलग छोटी इकाई का एक संग्रह है जानकारी। इसका उपयोग विभिन्न प्रकारों जैसे पाठ, संख्याओं, मीडिया, बाइट्स आदि में किया जा सकता है। इसे कागज के टुकड़ों या इलेक्ट्रॉनिक मेमोरी आदि में संग्रहित किया जा सकता है। 

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

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

उपयोगकर्ता के लिए मुमकिन एप्लिकेशन को एक प्लेटफ़ॉर्म पर डेप्लॉय करना जो उपयोगकर्ताओं को अमूर्तता प्रदान करता है लोड संतुलन, शेड्यूलिंग, परिनियोजन, लॉगिंग, स्टार्ट और स्टॉप करने के लिए सेवाओं को।

उपयोगकर्ता को समय-समय पर उसके आवेदन और सेवा की स्थिति (चल रहा है या नहीं, उपयोग के मामले के अनुसार सही है या नहीं आदि)  के बारे में सूचित किया जाता है। एल्गोरिथ्म विभिन्न सेवाएं हैं जो एप्लिकेशन द्वारा प्रदान की गयी हैं ।

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

संदर्भ