ওভার-দ্য-এয়ার (ওটিএ) ফার্মওয়্যার আপডেট হলো বসানো ডিভাইসে তার নিজের ইন্টারনেট বা নেটওয়ার্ক সংযোগ দিয়ে নতুন সফটওয়্যার পাঠানোর উপায়, তার লাগিয়ে নয়। ফার্মওয়্যার হলো ডিভাইসের ভেতরে চলা প্রোগ্রাম, যেমন একটা সেন্সর বক্স বা কন্ট্রোলারের। ওটিএ দিয়ে একসাথে অনেক ডিভাইসে বাগ ঠিক করা, নিরাপত্তার ফাঁক বন্ধ করা বা নতুন ফিচার যোগ করা যায়, প্রতিটি পুকুর, শেড বা কারখানায় না গিয়েই। প্রোটোটাইপ আর সত্যিকারের সাপোর্ট দেওয়া যায় এমন প্রোডাক্টের পার্থক্য গড়ে দেয় যে বৈশিষ্ট্যগুলো, ওটিএ তার একটা।
ব্যবসার জন্য কেন জরুরি
একটা কাল্পনিক উদাহরণ ধরুন: একজন ডিস্ট্রিবিউটরের কয়েকটা জেলার কয়েক ডজন দোকানে তাপমাত্রা মনিটর বসানো আছে। একটা বাগের কারণে লোডশেডিংয়ের পর কিছু ডিভাইস তথ্য পাঠানো বন্ধ করে দেয়। ওটিএ না থাকলে একজন টেকনিশিয়ানকে ল্যাপটপ নিয়ে প্রতিটি দোকানে যেতে হবে। ওটিএ থাকলে সমাধানটা পরীক্ষা করে পাঠানো হয়, আর ডিভাইসগুলো নিজেরাই বসিয়ে নেয়।
নিরাপত্তার জন্যও ওটিএ জরুরি। ফোন আর কম্পিউটারের মতো সংযুক্ত ডিভাইসেও দুর্বলতা ধরা পড়লে প্যাচ লাগে। যে ডিভাইস কখনো আপডেট করা যায় না, সেটা বসানোর দিন যতটা নিরাপদ ছিল, চিরকাল ঠিক ততটাই থাকে।
ধাপে ধাপে ওটিএ আপডেট যেভাবে হয়
প্ল্যাটফর্মভেদে খুঁটিনাটি আলাদা, তবে যত্নশীল প্রক্রিয়া সাধারণত এমন:
- তৈরি ও পরীক্ষা: নতুন ফার্মওয়্যার তৈরি করে আগে ল্যাবের ইউনিটে, তারপর কয়েকটা আসল ডিভাইসে পরীক্ষা করা হয়।
- সই: ফার্মওয়্যার ফাইলে ডিজিটাল সই দেওয়া হয়, যাতে ডিভাইস নিশ্চিত হতে পারে এটা আপনার কাছ থেকেই এসেছে আর কেউ বদলায়নি।
- প্রকাশ: ফাইলটা সংস্করণ নম্বর আর কী বদলেছে তার নোটসহ আপডেট সার্ভারে রাখা হয়।
- খোঁজ: ডিভাইস নির্দিষ্ট সময় পরপর আপডেট খোঁজে, বা সার্ভার জানিয়ে দেয়।
- ডাউনলোড: পুরোনো সংস্করণ চলতে থাকা অবস্থায় ডিভাইস নতুন ফার্মওয়্যার মেমোরির আলাদা অংশে নামায়।
- যাচাই: ডিভাইস সই আর ফাইল সম্পূর্ণ কি না তা পরীক্ষা করে।
- বদল ও রিস্টার্ট: নতুন সংস্করণকে সক্রিয় হিসেবে চিহ্নিত করে ডিভাইস রিস্টার্ট হয়।
- নিশ্চিত বা ফেরত: নতুন ফার্মওয়্যার ঠিকমতো চালু হয়ে আবার সংযুক্ত হলে সেটাই থাকে। না হলে ডিভাইস আগের সংস্করণে ফিরে যায়।
আইওটিতে ব্যবহৃত অনেক মাইক্রোকন্ট্রোলার, ESP32 পরিবারসহ, এই দুই-ভাগের পদ্ধতি সমর্থন করে, যাকে প্রায়ই এ/বি আপডেট বলা হয়।
কী ভুল হতে পারে, আর সুরক্ষা কী
| ঝুঁকি | কী ঘটে | সুরক্ষা |
|---|---|---|
| আপডেটের মাঝে বিদ্যুৎ চলে যাওয়া | অর্ধেক লেখা ফার্মওয়্যার, ডিভাইস চালু হয় না | দুই-ভাগের মেমোরি; নতুনটা নিশ্চিত না হওয়া পর্যন্ত পুরোনোটা থাকে |
| খারাপ ফার্মওয়্যার | ডিভাইস চালু হয় কিন্তু ভুল আচরণ করে বা সংযুক্ত হতে পারে না | স্বয়ংক্রিয়ভাবে আগের সংস্করণে ফেরা; আগে অল্প কয়েকটায় পাঠানো |
| বিকৃত আপডেট | কেউ ক্ষতিকর কোড পাঠায় | সই করা ফার্মওয়্যার আর এনক্রিপ্টেড সংযোগ |
| দুর্বল সংযোগ | ডাউনলোড ব্যর্থ হয় বা অনেক সময় নেয় | থেমে যাওয়া জায়গা থেকে আবার শুরু, ছোট ফাইল, পরে আবার চেষ্টা |
| ভুল ডিভাইস | এক মডেলের ফার্মওয়্যার আরেক মডেলে যায় | বসানোর আগে মডেল ও হার্ডওয়্যার সংস্করণ যাচাই |
বুঝেশুনে আপডেট ছড়ানো
- ধাপে ধাপে: আগে ছোট একটা দলে আপডেট দিন, কিছুদিন দেখুন, তারপর বাকিদের।
- সময় বেছে নিন: পাম্প বা এয়ারেটর চলার মাঝখানে কন্ট্রোলার আপডেট করবেন না। শান্ত সময়ে বা ডিভাইস অলস থাকলে আপডেট হতে দিন।
- রেকর্ড রাখুন: কোন ডিভাইসে কোন সংস্করণ চলছে জানুন। এতে সাপোর্ট কল অনেক সহজ হয়।
- ডেটার কথা ভাবুন: সিম কার্ডের ডিভাইস ডাউনলোডে মোবাইল ডেটা খরচ করে। আপডেট ছোট আর কম ঘন ঘন রাখুন।
- হাতে করার পথও রাখুন: ওটিএ থাকলেও দরকারে টেকনিশিয়ান যেন তার লাগিয়ে আপডেট করতে বা ডিভাইস উদ্ধার করতে পারেন।
সাধারণ কিছু প্রশ্ন
যেকোনো ডিভাইস কি ওটিএ-তে আপডেট করা যায়? শুধু যদি সেভাবে ডিজাইন করা হয়। মেমোরির জায়গা, আপডেট সমর্থন করে এমন বুটলোডার আর নিরাপদ সংযোগ, সবই শুরু থেকে পরিকল্পনা করতে হয়; দেখুন প্রোটোটাইপ থেকে প্রোডাক্ট।
ওটিএ কি নিরাপত্তার ঝুঁকি? দুর্বলভাবে ডিজাইন করা আপডেট সিস্টেম ঝুঁকি হতে পারে। সই করা ফার্মওয়্যার আর এনক্রিপ্টেড সংযোগসহ ভালোভাবে ডিজাইন করা সিস্টেম বরং নিরাপত্তা বাড়ায়, কারণ এতে সমস্যা প্যাচ করা যায়। বড় চিত্রের জন্য পড়ুন আইওটি নিরাপত্তার মূল কথা।
আপডেট পাঠানোর অনুমতি কার থাকবে? যত কম মানুষের সম্ভব, আর কিছু পাঠানোর আগে স্পষ্ট অনুমোদনের ধাপসহ।
ডিভাইস বসানোর আগে
যিনি আপনার ডিভাইস বানাচ্ছেন তাঁকে জিজ্ঞেস করুন: ওটিএ আছে কি? ফার্মওয়্যার কি সই করা? স্বয়ংক্রিয়ভাবে আগের সংস্করণে ফেরার ব্যবস্থা আছে? ধাপে ধাপে আপডেট দেওয়া যায়? কোন ডিভাইসে কোন সংস্করণ চলছে, কীভাবে দেখবেন? সরবরাহকারী পরিষ্কার উত্তর দিতে না পারলে সাইটে যাওয়ার কথা ধরে পরিকল্পনা করুন। এসব সুরক্ষাসহ ডিভাইসের জন্য দেখুন আইওটি ডেভেলপমেন্ট সার্ভিস, আর আপডেট প্রক্রিয়াটাও যাচাই করতে একটা আইওটি পাইলট দিয়ে শুরু করার কথা ভাবুন।