چالشها و موانع پوش نوتیفیکیشن در ایران
تردیدی نیست که امروز، نوتیفیکیشنها یکی از پراستفادهترین و کاربردیترین ویژگیهای تلفنهای همراه هستند که به موقع افراد را از اتفاقات مهم آگاه میکنند. در حال حاضر توسعهدهندگان ایرانی برای ارسال این اعلانها عموما از سرویسدهندگان خارجی استفاده میکنند و این امر برخی از سیاستگذاران کشور را نسبت به انتفال اطلاعات به خارج از کشور نگران کرده است. در این مقاله به چالشهای فنی مربوط به ایجاد یک سرویسدهنده پوش نوتیفیکیشن داخلی میپردازیم و توضیح میدهیم که چرا راهاندازی یک سرویس مجزای داخلی علیرغم امکانپذیری فنی در عمل ناکارآمد است. چنانکه سرویسدهندگان داخلی و حتی خارجی خود در پشت صحنه از سرویسهای مشهور مثل گوگل (FCM) استفاده میکنند.
پوش نوتیفیکیشن چگونه کار میکند؟
برای فهم بهتر لازم است ابتدا اطلاعاتی در مود نحوه کارکرد این ویژگی داشته باشیم. به طور کلی هر پیام نیاز به یک فرستنده و یک دریافت کننده دارد و البته ارتباطی که ارسال پیام را ممکن سازد. در ابتدا دستگاه کاربر در سمت ارسال کننده پیام ثبت میشود و یک توکن اختصاصی دریافت میکند تا برای سیستم قابل شناسایی باشد و بتواند پیامهای مربوط به آن کاربر خاص را دریافت کند. پس از ثبت و اختصاص توکن یک درگاه ارتباطی بین دریافت کننده و ارسال کننده شکل میگیرد تا هر زمان که پیامی وجود داشت ارسال شود.
شاید چنین نحوه کارکردی در ابتدا ساده به نظر برسد اما در واقعیت چالشهایی وجود دارد که مسئله را پیچیده تر میکند.
مشکل کجاست؟
به دلیل رشد اندک فناوری باطریهای لیتیومی به نسبت سایر بخشهای الکترونیکی، دستگاههای موبایل ناچارند در استفاده از انرژی بسیار صرفهجو باشند. مسئله این است که برقراری یک ارتباط قابل اتکا برای ارسال و دریافت پیامهای بلادرنگ نیازمند استفاده از منابع دستگاه است. برای همین برنامهنویسی این سرویسها باید تا حد امکان بهینه باشند و این یعنی استفاده از زبانهای برنامهنویسی سطح پایین و حساسیتهای فنی برای به حداقل رساندن استفاده از منابع که البته محتاج سطحی از دانش فنی است. از طرف دیگر هر چه تعداد ارسال کنندهها بیشتر باشد نیاز به کانالهای ارتباطی بیشتری هم وجود دارد و انرژی بیشتری هم تلف میشود. حتی با وجود بهینه بودن کدنویسی این سرویسها وقتی دهها اپلیکیشن از کانالهای جداگانهای برای ارسال و دریافت پیام استفاده کنند مشکل باطری همچنان باقی خواهد بود. حال اگر بتوانند اپلیکیشنهای مختلف به صورت مشترک تنها از یک کانال ارتباطی استفاده کنند صرفهجویی زیادی در مصرف منابع اتفاق خواهد افتاد.
تولیدکنندگان موبایل همواره سعی میکنند به طور هوشمند اپلیکیشنهایی که سرویسهای خود را در پسزمینه اجرا میکنند را محدود کنند. طبیعی است که سرویسدهندگان مشهور از اعمال این سیاستها مستثنا شوند چون می توانند تنها با یک کانال ارتباطی انبوهی از پیام را به اپلیکیشنهای مختلف تحویل دهند با این حال سرویسهای مستقل و کمتر شناخته شده از این سیاستها تاثیر میپذیرند و عملا بعد از مدت کوتاهی توسط سیستم عامل بسته میشوند (اصطلاحا کشته شوند!) و اینگونه پیامهای بعدی را دریافت نمیکنند.
مسئله به همین جا ختم نمیشود. تولیدکنندگان مختلف موبایل سیاستهای متفاوتی برای صرفهجویی در مصرف باطری دارند و این سیاستها گاه حتی در گوشیهای یک برند (و حتی رامهای مختلف یک گوشی) متفاوت است. به همین دلیل در حالی که یک سرویس پوش نوتیفیکیشن روی یک گوشی به خوبی کار میکند روی گوشی دیگر دچار مشکل میشود. واضح است که با وجود دهها برند و گوشی مختلف مدیریت این موضوع در سمت توسعهدهندگان مشکل است.
وجود چنین مشکلاتی باعث میشود که حتی سرویسدهندگان ایرانی ناچار به استفاده از خدماتدهندگان مشهور خارجی شوند. چنانکه در ماجرای بسته شدن یکی از اندپوینتهای سرویس Firebase بسیاری از سرویسهای ایرانی از جمله پیامرسانهای داخلی دچار مشکل شدند. حتی اپلیکیشنهای مشهوری مثل تلگرام با وجود میلیونها کاربر در سراسر جهان و سرویس ارتباطی مستقل همچنان مجبورند بخشی از بار خود را به سرویسهایی مثل گوگل بسپارند تا از تحویل درست پیامها اطمینان پیدا کنند.
نتیجهگیری
مهمترین ارزش نوتیفیکیشنها قابلیت اتکا و بلادرنگ بودن آنهاست. در حالی که از نظر فنی پیادهسازی سرویسهای مستقل داخلی امکانپذیر است اما در عمل دنبال کردن چنین راهکاری معقول به نظر نمیرسد. تا زمانی که تضمینی برای دریافت به موقع پیام توسط دریافتکننده وجود نداشته باشد تلاشهای فنی برای راهاندازی چنین سرویسهایی بیثمر خواهد بود. اینها همه در شرایطی است که دانش لازم برای بهینهسازیهای پیچیده و مدیریت میلیونها ارتباط همزمان وجود داشته باشد که این امر عموما خارج از توان تیمهای نرمافزاری کوچک است.
در جهان به هم پیوسته کنونی مدیریت کسبوکار بدون سطحی از تعامل با بازیگران مختلف هر حوزه غیرممکن است. اگرچه دغدغههای امنیتی و حریم خصوصی معقول و قابل احتراماند اما چنین موضوعاتی را باید در سطوح دیگری مدیریت کرد و با روشهای خلاقانه تا حد امکان از دوباره کاری و هزینههای سربار اجتناب کرد.
بدون دیدگاه