ساخت پلتفرم نرم‌افزاری یک محصول امنیتی از نقطه صفر

هایپرنیکس یک سیستم اعلام سرقت هوشمند مبتنی بر اینترنت اشیاست که برای منازل، کسب‌وکارها و سازمان‌های بزرگ طراحی شده است. کاربران می‌توانند از طریق اپلیکیشن موبایل، وضعیت دستگاه را به‌صورت لحظه‌ای مشاهده کنند، سیستم را فعال یا غیرفعال کنند، پارتیشن‌ها، ریموت‌ها و رله‌ها را مدیریت کنند و برای افراد مختلف سطح دسترسی تعریف کنند.

زمانی که همکاری Dropp و فناوری‌های هیرکانیا در سال ۱۴۰۰ آغاز شد، پروژه هنوز در مرحله Design و R&D بود؛ نه پلتفرم نرم‌افزاری شکل گرفته بود و نه حتی نمونه نهایی سخت‌افزار وجود داشت. مأموریت Dropp توسعه یک نرم‌افزار آماده یا بازنویسی یک سامانه قدیمی نبود. ما باید همراه با تیم هایپرنیکس، معماری و منطق نرم‌افزاری محصولی را طراحی می‌کردیم که ارتباط آن با سخت‌افزار، بخش جدایی‌ناپذیر تجربه کاربر بود.

Dropp مسئول طراحی و توسعه تمام سرویس‌های سمت سرور، پنل مدیریت، پنل مرکز اعلام هشدار و وب‌سایت هایپرنیکس شد. تیم هایپرنیکس توسعه اپلیکیشن‌های موبایل، UI/UX و QA محصول را برعهده داشت و دو تیم در بخش R&D، تعریف رفتار دستگاه‌ها و طراحی ارتباط میان Firmware، Backend و اپلیکیشن‌ها به‌صورت نزدیک با یکدیگر همکاری کردند.

عملکرد قابل‌اندازه‌گیری در محیط واقعی

امروز این پلتفرم بیش از ۱۰۰۰ دستگاه فعال و آزمایشی را پشتیبانی می‌کند. در شرایط اتصال پایدار، فرمان کاربر در کمتر از ۸۰۰ میلی‌ثانیه از اپلیکیشن به دستگاه می‌رسد.

تا ۲۶ شهریور ۱۴۰۵، بیش از ۱۰ هزار Event ارسالی از دستگاه‌ها در هر روز پردازش می‌شود؛ عددی که هم‌زمان با رشد فروش و افزایش تعداد دستگاه‌های فعال، پیوسته در حال افزایش است. این عدد به‌عنوان حجم عملیاتی فعلی بیان می‌شود، نه سقف ظرفیت پلتفرم.

چالش: ساخت نرم‌افزار برای محصولی که هنوز در حال شکل‌گیری بود

در پروژه‌های معمول توسعه نرم‌افزار، رفتار محصول و محدودیت‌های فنی از قبل تا حد زیادی مشخص‌اند. در هایپرنیکس، نرم‌افزار و سخت‌افزار باید هم‌زمان شکل می‌گرفتند. بسیاری از تصمیم‌ها را نمی‌شد تنها در یکی از دو سمت Backend یا Firmware گرفت؛ هر تصمیم روی مصرف اینترنت، سرعت دریافت فرمان، امنیت ارتباط، تجربه کاربر و حتی رفتار دستگاه در محل نصب اثر می‌گذاشت.

این پلتفرم باید در شرایطی کار می‌کرد که کیفیت اتصال دستگاه همیشه مطلوب نیست. بعضی دستگاه‌ها ممکن است از طریق اینترنت 2G متصل باشند و همچنان باید پیام‌ها و فرمان‌های ضروری را با کمترین تأخیر و مصرف داده منتقل کنند. از طرف دیگر، چون محصول با امنیت خانه و محل کار کاربران در ارتباط است، صرف برقراری ارتباط کافی نبود؛ این ارتباط باید امن، قابل‌اعتماد و قابل‌کنترل طراحی می‌شد.

چالش اصلی، نوشتن چند API یا ساخت یک پنل مدیریتی نبود. مسئله، ایجاد یک لایه نرم‌افزاری مرکزی بود که بتواند میان کاربران، اپلیکیشن‌ها، نصابان، مراکز اعلام هشدار و دستگاه‌های فیزیکی هماهنگی قابل‌اعتمادی ایجاد کند.

R&D مشترک میان تیم نرم‌افزار و سخت‌افزار

Dropp و تیم هایپرنیکس از ابتدای پروژه، R&D ارتباط نرم‌افزار و سخت‌افزار را به‌صورت مشترک پیش بردند. رفتار دستگاه‌ها، ساختار پیام‌ها، جریان ارسال فرمان، دریافت Event و نحوه مدیریت وضعیت اتصال، در تعامل میان دو تیم طراحی و اصلاح شد.

در این مسیر، از MQTT به‌عنوان یکی از پروتکل‌های استاندارد ارتباطات IoT استفاده شد. هدف صرفن انتخاب یک فناوری شناخته‌شده نبود؛ طراحی ارتباط باید به‌گونه‌ای انجام می‌شد که هم برای اتصال‌های ضعیف و کم‌سرعت مناسب باشد، هم مصرف داده را کنترل کند و هم امکان رشد تعداد دستگاه‌ها را بدون بازطراحی بنیادین پلتفرم فراهم کند.

نتیجه این همکاری، مدلی بود که در آن Firmware و Backend دو بخش جدا و بی‌ارتباط نیستند. تغییرات هر سمت با درنظرگرفتن اثر آن بر کل محصول بررسی می‌شود و قابلیت‌های جدید نیز با هماهنگی میان تیم‌های سخت‌افزار، Backend، اپلیکیشن و QA وارد محصول می‌شوند.

معماری Microservice و Event-driven برای رشد تدریجی محصول

Backend هایپرنیکس با معماری Microservice و Event-driven طراحی شد. مسئولیت‌هایی مانند احراز هویت، ارتباط با دستگاه‌ها، مدیریت رخدادها، اعلان‌ها و پیامک در سرویس‌های مستقل قرار گرفتند تا تغییر یا توسعه یک بخش، کمترین وابستگی و ریسک را برای سایر بخش‌های محصول ایجاد کند.

این تفکیک به تیم اجازه می‌دهد قابلیت‌های جدید را مرحله‌به‌مرحله اضافه کند، بخش‌های پرمصرف را مستقل توسعه دهد و خطاهای احتمالی را در محدوده کوچک‌تری نگه دارد. معماری از ابتدا فقط برای مقیاس اولیه طراحی نشد؛ باید مسیری برای رشد تعداد دستگاه‌ها، کاربران و Eventها نیز فراهم می‌کرد.

جزئیات داخلی توپولوژی، سازوکارهای امنیتی و ساختار دقیق ارتباط دستگاه‌ها به‌دلایل امنیتی منتشر نمی‌شوند. آنچه می‌توان گفت این است که پلتفرم برای ارتباط بلادرنگ، تحمل رشد بار و توسعه مستمر سرویس‌ها طراحی شده و امروز در محیط واقعی در حال استفاده است.

ارتباط سریع و بهینه، حتی روی اتصال 2G

یکی از مهم‌ترین معیارهای تجربه کاربر در هایپرنیکس، فاصله زمانی میان ارسال یک فرمان در اپلیکیشن و دریافت آن توسط دستگاه است. کاربری که می‌خواهد سیستم امنیتی محل را فعال یا غیرفعال کند، نباید با تأخیر نامشخص یا وضعیت مبهم مواجه شود.

تیم Dropp با بهینه‌سازی مسیر پیام، کاهش سربار ارتباطی و طراحی مناسب جریان فرمان‌ها، زمان انتقال فرمان از اپلیکیشن تا دستگاه را در شرایط اتصال پایدار به کمتر از ۸۰۰ میلی‌ثانیه رساند. این طراحی درعین‌حال باید روی ارتباطات محدودتری مانند 2G نیز قابل‌استفاده باقی می‌ماند؛ جایی که حجم پیام و تعداد رفت‌وبرگشت‌های غیرضروری اهمیت بسیار بیشتری پیدا می‌کند.

این عدد یک ادعای مربوط به محیط آزمایشگاهی جدا از محصول نیست؛ معیاری از مسیر واقعی ارتباط میان اپلیکیشن، پلتفرم و دستگاه است. کیفیت شبکه کاربر یا دستگاه می‌تواند روی زمان نهایی اثر بگذارد و به همین دلیل، این نتیجه برای شرایط اتصال پایدار و مناسب بیان می‌شود.

پنل‌هایی برای مدیریت محصول و واکنش به هشدارها

در کنار Backend، دراپ پنل مدیریت و پنل مرکز اعلام هشدار هایپرنیکس را نیز توسعه داد. این پنل‌ها ابزار عملیاتی تیم‌هایی هستند که باید کاربران، نصابان، دستگاه‌ها، وضعیت اتصال، سطوح دسترسی و رخدادهای ثبت‌شده را مدیریت کنند.

پنل مرکز اعلام هشدار امکان مشاهده و پیگیری هشدارها و Eventهای مرتبط با دستگاه‌ها را فراهم می‌کند. در محصولی امنیتی، نمایش صرف داده کافی نیست؛ اطلاعات باید با ساختاری در اختیار اپراتور قرار بگیرند که امکان تشخیص وضعیت و اقدام مناسب را فراهم کند.

توسعه Backend و پنل‌ها توسط یک تیم واحد باعث شد منطق عملیاتی فقط در رابط کاربری بازسازی نشود و قواعد دسترسی، مدیریت رخدادها و رفتار سرویس‌ها به‌شکل هماهنگ در کل پلتفرم پیاده‌سازی شوند.

کیفیت نرم‌افزار به‌عنوان بخشی از معماری محصول

محصولی که با دستگاه‌های فیزیکی و امنیت کاربران در ارتباط است، نمی‌تواند کیفیت را به تست‌های نهایی پیش از انتشار محدود کند. برای Backend هایپرنیکس، Unit Test و Integration Test در کنار Code Review، Static Analysis و Error Tracking وارد فرایند توسعه شدند.

پوشش تست Backend اکنون بیش از ۸۰ درصد است. این تست‌ها به تیم کمک می‌کنند تغییرات سرویس‌ها و توسعه قابلیت‌های جدید، با ریسک کمتری انجام شود و مشکلات احتمالی پیش از رسیدن به محیط عملیاتی شناسایی شوند.

QA محصول و بررسی سناریوهای کاربری توسط تیم هایپرنیکس انجام می‌شود. این تقسیم مسئولیت، یک مسیر چندلایه برای کنترل کیفیت ایجاد کرده است: Dropp روی صحت فنی سرویس‌ها، تست‌های خودکار و کیفیت کد تمرکز دارد و تیم هایپرنیکس رفتار نهایی محصول را در ارتباط با اپلیکیشن‌ها و سخت‌افزار ارزیابی می‌کند.

همکاری یک تیم Senior با مالکیت فنی بلندمدت

توسعه نرم‌افزار هایپرنیکس زیر نظر CTO دراپ و با حضور متخصصان Senior در Backend و Frontend انجام شد. این تیم در طول پروژه صرفن مجری Featureهای از قبل تعریف‌شده نبود؛ در تصمیم‌های معماری، R&D ارتباط دستگاه‌ها، طراحی سرویس‌ها و تبدیل نیازهای سخت‌افزاری به رفتار نرم‌افزاری مشارکت داشت.

همکاری از سال ۱۴۰۰ آغاز شد و با پایان یک فاز یا انتشار اولیه متوقف نشد. هم‌زمان با تکامل سخت‌افزار، تست‌های میدانی و ورود محصول به بازار، Backend و پنل‌ها نیز توسعه پیدا کردند. امروز نیز Dropp همچنان مسئول افزودن قابلیت‌های جدید و بهبود مستمر بخش‌های نرم‌افزاری تحت مدیریت خود است.

تیمی که تصمیم‌های اولیه معماری و دلیل شکل‌گیری هر سرویس را می‌داند، اکنون همان تیمی است که محصول را برای نیازهای جدید توسعه می‌دهد. درنتیجه، رشد محصول به مجموعه‌ای از اصلاحات پراکنده و تصمیم‌های کوتاه‌مدت تبدیل نشده است.

خروجی فنی

• طراحی و توسعه تمام سرویس‌های Backend از مرحله صفر • توسعه پنل مدیریت، پنل مرکز اعلام هشدار و وب‌سایت هایپرنیکس • طراحی معماری Microservice و Event-driven برای توسعه و مقیاس‌پذیری مستقل سرویس‌ها • طراحی مشترک ارتباط میان Firmware، دستگاه‌ها و Backend • استفاده از MQTT برای ارتباط استاندارد و بهینه در بستر IoT • پشتیبانی از ارتباطات محدود، ازجمله اتصال 2G • انتقال فرمان از اپلیکیشن به دستگاه در کمتر از ۸۰۰ میلی‌ثانیه روی اتصال پایدار • پردازش بیش از ۱۰ هزار Event روزانه ارسالی از دستگاه‌ها تا ۲۶ شهریور ۱۴۰۵ • بیش از ۸۰ درصد پوشش تست Backend همراه با Code Review، Static Analysis و Error Tracking • پشتیبانی نرم‌افزاری از بیش از ۱۰۰۰ دستگاه فعال و آزمایشی

از ایده سخت‌افزاری تا یک پلتفرم متصل و تجاری

مهم‌ترین نتیجه این پروژه فقط یک Backend فعال یا چند پنل عملیاتی نیست. فناوری‌های هیرکانیا توانست ایده یک سیستم اعلام سرقت هوشمند را از مرحله‌ای که هنوز نمونه نهایی سخت‌افزار وجود نداشت، به محصولی تجاری با پلتفرم نرم‌افزاری قابل‌اتکا تبدیل کند.

معماری فعلی به هایپرنیکس اجازه می‌دهد مدل‌های مختلف محصول را روی یک بستر مشترک مدیریت کند، با افزایش فروش دستگاه‌ها رشد کند و قابلیت‌های جدید را بدون بازنویسی هسته نرم‌افزار به پلتفرم اضافه کند.

برای Dropp، هایپرنیکس نمونه‌ای از توسعه نرم‌افزار سفارشی در عمیق‌ترین سطح آن است: جایی که نرم‌افزار صرفن در مرورگر یا موبایل زندگی نمی‌کند، بلکه باید با سخت‌افزار واقعی، شبکه‌های محدود، الزامات امنیتی و عملیات روزمره یک محصول تجاری هماهنگ باشد.

اگر در حال طراحی یک محصول IoT، سامانه متصل به سخت‌افزار یا پلتفرمی با نیازهای بلادرنگ هستید، Dropp می‌تواند از مرحله معماری و R&D تا توسعه Backend، پنل‌های عملیاتی، زیرساخت و پشتیبانی بلندمدت در کنار تیم شما باشد. همکاری را با یک جلسه بررسی محصول و معماری نرم‌افزار آغاز کنید.

نیاز خود را به ما بگویید، ما در اولین فرصت با شما تماس خواهیم گرفت.

موفقیت آمیز
پیام شما با موفقیت ارسال شد. به زودی با شما تماس خواهیم گرفت.
خطا
خطایی رخ داد. لطفا مجدداً تلاش کنید.
خطا