ओवर द एयर अपडेट की सफलता का परीक्षण [बंद]


10

IoT डिवाइस को सफलतापूर्वक अपडेट करने के लिए सबसे अच्छा अभ्यास क्या है?

OTA अपडेट और उपकरणों को प्रमाणित करने के लिए आपको क्या करने की आवश्यकता है? इसे एक कदम आगे बढ़ाते हुए, आप IoT उपकरणों के बेड़े के सॉफ़्टवेयर संस्करणों (अपडेट) की निगरानी / प्रबंधन कैसे कर सकते हैं?


1
यह आपके अन्य प्रश्न की तरह बहुत व्यापक है। और यह डिवाइस के प्रकार और परिनियोजन के मोड पर बहुत कुछ निर्भर करेगा।
गिल्स एसओ- बुराई को रोकें '

1
जब आप "बेड़े" कहते हैं, तो क्या आपका मतलब वाहन के बेड़े से है? यदि ऐसा है, तो मैं SkyWave मॉडेम की तरह कुछ का उपयोग करके GPRS या ईवेंट उपग्रह पर SMS (एन्क्रिप्टेड), या HTTPS द्वारा संचार का अनुमान लगाता हूं। यदि आप अपने प्रश्न को स्पष्ट करने के लिए संपादित कर सकते हैं, तो मुझे यकीन है कि इसे फिर से खोल दिया जाएगा।
मावग का कहना है कि मोनिका

जवाबों:


10

मेरे पास सॉफ्टवेयर है (विंडोज सर्वर - 'चीजों के लिए थोड़ा अलग' लेकिन प्रिंसिपल समान है) जो हर 24 घंटों में कॉल करता है - यह अपने बारे में विभिन्न मेटा डेटा को वापस भेजता है:

  • ग्राहक का नाम (या यूनिक आईडी)
  • सॉफ्टवेयर संस्करण
  • कॉल / अनुरोध का टाइमस्टैम्प
  • उत्पाद प्रकार / आईडी

वेब सेवा डेटा और आवेषण (या यदि ग्राहक के पास एक मौजूदा पंक्ति है) डेटाबेस में एक पंक्ति को अपडेट करता है।

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

हमने हाल ही में एक ऑटो अपडेट (सोचिए ओटीए अपडेट) लागू किया है और क्योंकि यह एक महत्वपूर्ण प्रक्रिया है, जिसके लिए हमने विशिष्ट टेलीमेट्री लागू की है -

  • वर्तमान संस्करण।
  • संस्करण को अद्यतन किया जाना है।
  • कौन / जब इसे अधिकृत करता है (यदि ग्राहक स्वीकृति आवश्यक है)।
  • प्रत्येक प्रमुख चरणों के लिए टाइमस्टैम्प और स्थिति कोड।

यह हमें यह निर्धारित करने की अनुमति देता है कि क्या ऑटो अपडेट के कुछ पहलू विफल हो रहे हैं और कई मामलों में ग्राहक को कॉल करने से पहले वे अक्सर नोटिस करते हैं कि कुछ भी गलत है।

'चीजों' के साथ बड़ा अंतर यह है कि आप आम तौर पर मेमोरी के लिए विवश होते हैं, इसलिए xxx Kbफर्मवेयर की एक OTA अपडेट करने के लिए आपको xxx Kb * 2उपलब्ध मेमोरी की आवश्यकता होती है (वास्तविक फर्मवेयर अपडेट शुरू करने से पहले नए फर्मवेयर को स्टोर करने के लिए मौजूदा फर्मवेयर + पर्याप्त मेमोरी)


1
साझा करने के लिए धन्यवाद। मेमोरी का उपयोग करने के लिए एक महत्वपूर्ण बिंदु है। लागू होने पर आप प्राधिकरण और ग्राहक स्वीकृति के बारे में कैसे जाते हैं? क्या आपको अपडेट स्वीकार करने के लिए पासवर्ड की आवश्यकता है?
नोआम हैकर

2
यह एक अलग उपयोग का मामला है (क्योंकि यह विंडोज सर्वर है), लेकिन हमारे पास एक यूआई है जो ओटीए अपडेट डाउनलोड होने पर अलर्ट को पॉप अप करता है - अलर्ट ग्राहक से पूछता है कि क्या वे अपडेट करना चाहते हैं (और नोट्स आदि को जारी करने के लिए लिंक शामिल हैं)। एक पर thingमैं शायद एक एलईडी फ्लैश या कुछ और था उपयोगकर्ता को सचेत करने (यह मानते हुए कि आप 'को' अद्यतन करने के लिए उपयोगकर्ता चाहते हैं) और फिर उन्हें 'लंबी प्रेस' यह शुरू करने के लिए एक बटन ... है
KennetRunner

5

उदाहरण के लिए, आप सॉफ़्टवेयर के वर्तमान संस्करण संख्या वाले सर्वर पर हर X सप्ताह / दिन / घंटे ... का अनुरोध कर सकते हैं। आप अपडेट किए गए उपकरणों के वर्तमान प्रतिशत और संख्या को देखने के लिए एनालिटिक्स का उपयोग करने में सक्षम होंगे।


1
क्या यह उन डिवाइसों के लिए है, जो ईट भराव कर चुके हैं, या एक अद्यतन को पूरा करने में विफल रहे हैं (शायद एक रिबूट, डाउनलोड, क्रैश चक्र में फंस गए हैं?)
शॉन हुलियाने

1
एक तरह से, हाँ। यदि आपके पास 1 दिन में 100 डिवाइस हैं, तो आप दिन 2 पर अपडेट को धक्का देते हैं, और दिन 3 को आपको एनालिटिक्स पर केवल 25 डिवाइस मिलते हैं, इसका मतलब है कि कुछ बुरा हुआ है
WayToDoor

1
वह दिलचस्प है। क्या विफलताओं के प्रकारों में अंतर करने का एक तरीका है?
नोआम हैकर

1
अपडेट को असतत चरणों में विभाजित करें (जैसे नए कॉन्फिगर वैल्यू , रिबूट जीपीएस , डिवाइस आईडी सेट करें , फ़र्मवेयर अधिलेखित करें , आदि) प्रत्येक के साथ एक शुरुआत .. कॉल भेजें 'घर' और स्थिति xx कॉल के साथ पूरा एक घर भेजा। इस तरह से आप बता सकते हैं (मोटे तौर पर) जहां यह विफल रहा और (उम्मीद है) स्थिति कोड क्या था।
कैनेटररनर

4

यह एक स्मार्ट सिंक्रोनाइज़ेशन पॉलिसी के बारे में है

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

क्या यह हमेशा चालू कनेक्शन के माध्यम से जुड़ा रहता है, जहां एक एकल सिंक की लागत नहीं होती है (बहुत) यह आपके डेटा को चालू रखने के लिए समय-समय पर सिंक करने के लिए समझ में आता है।

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

सिंक्रनाइज़ेशन का सत्यापन

पर्याप्त रूप से उन्नत डिवाइस में (एक मूल्य सीमा या संचालन क्षेत्र जो इसे सही ठहराता है पढ़ें) प्रत्येक डिवाइस को क्लाइंट प्रमाणपत्र से लैस किया जा सकता है जो सिंक्रनाइज़ेशन की प्रामाणिकता की जांच करने में सक्षम बनाता है।

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


मुझे नहीं लगता कि इससे ओपी के सवाल का कोई हल निकलता है।
WayToDoor

@WayToDoor मेरा पहला पैराग्राफ अपडेट के बाद सीधे सिंक करने की सलाह देता है। यदि नया संस्करण सफलतापूर्वक पहुंच गया था तो यह जानकारी देता है। यदि संभव नहीं हो तो संभव काउंटर उपाय बहुत व्यापक हैं (और नहीं पूछा गया)। मेरे बाकी उत्तर क्षेत्र में संस्करणों की निगरानी से संबंधित हैं। कौन सा सवाल याद आया?
Helmar
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.