یک MaxCode به جای دهها کلید: چگونه PushMeld اعلانها را به جایی که نبودهاند، اضافه میکند
چگونگی انتقال مدیریت اعلانهای push و ایمیل از سایتها، سرورها، اسکریپتها و دستگاهها به PushMeld با استفاده از MaxCode.
فرض کنیم یک کامپیوتر خانگی هر شب نسخه پشتیبان از فایلهای مهم تهیه میکند. نتیجه در لاگ سیستم ثبت میشود: عملیات با موفقیت انجام شد یا خطایی رخ داد.
از نظر فنی، همه چیز کار میکند. مشکل از آنجا شروع میشود که فرد صبح باید لاگ را باز کرده و نتیجه را بررسی کند. برنامه هیچ اپلیکیشن موبایلی ندارد، ارسال اعلان توسط توسعهدهندگان پیشبینی نشده است، و ساخت زیرساخت جداگانه صرفاً برای یک ویژگی غیرمعمول صورت نمیگیرد.
با کمک PushMeld، میتوان در چنین فرآیندی درخواست سادهای اضافه کرد. پس از پایان پشتیبانگیری، پیام به گوشی ارسال میشود: نسخه ساخته شد یا عملیات با خطا پایان یافته است. در صورت نیاز، همان اعلان را میتوان از طریق ایمیل دریافت کرد.
پایه این ایده، MaxCode است — یک کد امن واحد که از طریق آن PushMeld تمام اطلاعات لازم برای ارسال ادامه اعلان را دریافت میکند.
وقتی با پروژه آشنا شدم، دقیقا MaxCode بود که بیشترین جذابیت را برایم داشت. اعلانهای push و ایمیل مدتهاست که چیز جدیدی نیستند. مهمتر این است که برنامه اولیه کنترل ارسال آنها را کنار میگذارد. تنها پیام رویداد را به PushMeld میدهد و باقی کار خارج از آن انجام میشود.
در ابتدا contextual را مشخص میکنم: PushMeld به سیستم MELD® تعلق دارد، و DigiMeld UG شرکت توسعهدهنده آن است.
سرویس فقط از رویداد مطلع است
یکپارچهسازی عادی اعلانها به سرعت با جزئیات فنی پر میشود. باید پروژه را تعریف کنید، دسترسیها را تنظیم کنید، کلیدها را نگهداری کنید، توکنهای دستگاهها را در نظر بگیرید، ارسال ایمیل را فعال کنید و با الزامات پلتفرمهای مختلف موبایل سازگار باشید.
PushMeld تمام این موارد را از سیستم مبدا به یک حلقه کنترل جدا منتقل میکند.
برنامه پشتیبانگیری تنها میداند که عملیات یا با موفقیت پایان یافته یا خطا داشته است. آنچه را که دارد، شامل MaxCode، عنوان و متن پیام است، انتقال میدهد.
نیازی به دانستن این موارد ندارد:
تعداد دستگاههای متصل به پروژه
کدام گوشی فعال است
کدام ارائهدهنده باید push را ارسال کند
آیا ارسال ایمیل فعال است
آیا کاربر گوشی هوشمند جدید دارد
آیا تبلت قدیمی غیرفعال شده است
چه کسی باید اعلان خاصی را دریافت کند
همه این موارد در داخل PushMeld مشخص میشود.
به نظر من، اینجا است که مهمترین ایده معماری پروژه نهفته است: MaxCode کنترل اعلانها را از برنامه، جایی که رویداد اتفاق افتاده است، به سیستم مدیریت ارسال منتقل میکند.
یک MaxCode به جای مجموعهای از کلیدها
در اتصال به سرویس بیرونی، معمولاً باید با چندین موجودیت کار کنید. شناسه پروژه جداگانه است، کلید دسترسی جداگانه است، ممکن است رازها، توکنهای دستگاه و تنظیمات ارائهدهندگان مختلف هم نیاز باشد.
MaxCode تمام موارد لازم برای ارسال را در یک کد امن ادغام میکند.
برای هر پروژه، یک MaxCode خاص ساخته میشود. این شامل شناسایی پروژه، حقوق ارسال و دادههایی است که PushMeld برای تطابق با تنظیمات فعلی ارسال استفاده میکند.
سامانه ارسالکننده نیاز ندارد که جداگانه موارد زیر را نگهدارد:
شناسه پروژه
کلید API و راز اضافی
توکنهای دستگاههای متصل
پارامترهای هر گیرنده
کلیدهای ارائهدهندگان push مختلف
تنظیمات جداگانه برای push و ایمیل
در برنامه، سایت یا اسکریپت، فقط یک MaxCode اضافه میشود. پس از دریافت آن همراه با پیام، PushMeld خودش پروژه را تشخیص میدهد، درخواست را بررسی میکند، دستگاههای متصل را پیدا مینماید و کانالهای قابل استفاده را انتخاب میکند.
بنابراین، MaxCode نباید به عنوان کلید دیگری در نظر گرفته شود که به کلیدهای دیگر افزوده میشود. هدف آن جایگزینی تمام مجموعه کلیدها، توکنها و شناسههای پراکنده با یک کد است.
اعلان از جایی که پیشبینی نشده است
MaxCode را میتوان در هر سیستم، در صورت توانایی انجام درخواست HTTP به صورت مستقل یا با یک اسکریپت کمکی، استفاده کرد.
به عنوان نمونه، PushMeld میتواند اطلاعرسانی کند زمانی که:
سرور خانگی پاسخ نمیدهد
نسخه پشتیبانگیری به پایان رسید یا خطا داشت
اسکریپت شخصی وظیفه طولانی انجام داده است
پرینتر 3D پایان یافته است
حسگر نشت آب را ثبت کرده است
در بسته شد یا هشدار فعال شد
اطلاعات جدیدی در سایت درج شد
قیمت یک کالا تغییر کرد
فضای نوشتن آزاد شد
برنامه قدیمی یک فایل بزرگ را پردازش کرد
یک فروشگاه آنلاین سفارش جدیدی گرفت
هر کدام از این منابع ممکن است اپ خاص نداشته باشند. برخی تنها میتوانند به آدرس مشخص شده درخواست دهند، دیگران اجرای فرمان کاربر را ممکن میسازند، و برخی قابل تکمیل با اسکریپتهای خودکار کوتاه هستند.
این کافی است تا رویداد را به PushMeld منتقل کنند.
در این حالت، منبع به عنوان سرویس مستقل اطلاعرسانی عمل نمیکند، بلکه تنها رویداد را ثبت کرده و پیامی با MaxCode میفرستد. بقیه کارها — گیرندگان، دستگاهها، کانالها و مسیر فنی — در کنار PushMeld باقی میمانند.
فقط push، بلکه ایمیل هم
نام PushMeld بیشتر با اعلانهای تلفن همراه مرتبط است، اما امکانات پروژه محدود به این نیستند.
برای تحویل، میتوان از push، ایمیل یا هر دو استفاده کرد، بر اساس تنظیمات پروژه و امکانات موجود.
برای مثال، اعلام موفقیت پشتیبانگیری کافی است فقط روی گوشی نشان داده شود. خطای مهمتر را میتوان از طریق ایمیل همچنین ارسال کرد.
برنامه اولیه در هر دو حالت یک درخواست مشابه با MaxCode انجام میدهد. نیاز به تنظیم سرور ایمیل، نگهداری تنظیمات یا ساختن اسکریپت مستقل نیست.
تصمیمگیری درباره کانالهای تحویل درون PushMeld صورت میگیرد. اگر کاربر بعداً ایمیل به پروژه موجود اضافه کند، برنامه پشتیبانگیری نیاز به تغییر ندارد.
در این حالت، ایمیل به عنوان روشی اضافی برای اطلاعرسانی درباره رویدادی که از پروژه متصل دریافت شده است، استفاده میشود.
یک پروژه — یک منبع رویداد
پروژهها امکان تفکیک اعلانها بر اساس هدف آنها را فراهم میکنند.
یک کاربر معمولی میتواند برای مثال موارد زیر را ایجاد کند:
HomeServer— وضعیت سرور خانگیBackups— نتایج نسخه پشتیبانSmartHome— حسگرها و اتوماسیون خانگیPriceMonitor— تغییرات قیمتWebsite— درخواستهای جدید از سایت شخصی
هر پروژه، MaxCode خاص خودش را دارد. این باعث میشود که اتوماسیون خانگی از کد سایت استفاده نکند، و نظارت بر قیمتها با نسخههای پشتیبان تداخل نداشته باشد.
در برنامه، بلافاصله مشخص است که پیام از کجا آمده و مربوط به چه وظیفهای است.
این تفکیک زمانی بیشتر مفید است که منابع بیشتر شوند. به جای یک جریان کلی، کاربر چندین کانال مستقل دارد که برای هر کدام میتواند تنظیمات خاص را تعریف کند.
گوشی جدید، نیاز به تغییر برنامه ندارد
توکن push معمولاً با نصب خاصی از برنامه روی دستگاه مرتبط است.
اگر فرد دو گوشی و تبلت داشته باشد، این چند توکن میشود. پس از نصب مجدد یا تعویض دستگاه، ممکن است توکن جدید شود یا دیگر کار نکند.
MaxCode بالاتر از این سطح قرار دارد. مربوط به پروژه است، نه یک گوشی خاص.
کاربر خودش مشخص میکند که کدام دستگاهها مرتبط با پروژه هستند و باید اعلانها را دریافت کنند. برای مثال، اعلام وضعیت سرور خانگی میتواند به گوشی شخصی و تبلت ارسال شود، اما رویدادهای سایت کاری فقط روی گوشی کاری باشد.
اگر فرد گوشی جدید خرید یا دستگاه قدیمی را غیرفعال کند، اسکریپت پایه همان MaxCode را ادامه میدهد. لیست توجهکنندگان در داخل PushMeld بهروز میشود.
همینطور درباره افزودن ایمیل یا تغییر پارامترهای دیگر ارسال خبر صادق است.
دقیقاً به همین دلیل است که MaxCode تنها راه کاهش کلیدها نیست، بلکه مرز بین رویداد و مسیر آن را تعبیه میکند. هر چیزی پس از این مرز قابل تغییر است بدون نیاز به اصلاح برنامه منبع.
رایگان برای وظایف معمولی
محصولات زیرساختی غالباً با سیستمهای سازمانی، دستورات سرور و حجم بالای داده معرفی میشوند. بنابراین، ممکن است تصور شود که PushMeld فقط برای توسعهدهندگان حرفهای و شرکتها طراحی شده است.
در عمل، میتوان از وظیفه خانگی ساده شروع کرد.
خود برنامه رایگان است. امکانات اصلی MaxCode نیز بدون هزینه و در قالب محدودیتهای رایگان عملیاتی است. فرد میتواند پروژه بسازد، دستگاه وصل کند و اعلانها را از سرور، سایت، اسکریپت یا اتوماسیون خانگی خود دریافت کند.
این وضعیت آزمایشی موقتی نیست و پس از آشنایی با محصول، کاربر نمیخواهد از کار بیفتد. در سناریوهای روزمره، امکانات رایگان ممکن است کافی باشد.
طرحهای اشتراکی زمانی مورد نیاز است که تعداد درخواستها افزایش یابد، امکانات اضافی نیاز شود یا سیستم در مقیاس بزرگتری استفاده شود.
اصول یکسان برای فرد و شرکت
مکانیزم MaxCode بسته به اندازه وظیفه تغییر نمیکند.
کاربر پیام پایان پشتیبانگیری را میگیرد. کارگاه کوچک متوجه میشود که چاپگر 3D عملیات طولانی را تمام کرده است. فروشگاه آنلاین سفارش جدید گرفته است. تیم فنی از خطای سرور مطلع میشود.
حجمها و تعداد پروژهها متفاوت است، اما اصل یکسان باقی میماند.
فرض کنیم سازمانی با سه منبع رویداد داشته باشد:
Orders— سفارشهای جدیدPayments— پرداختها و بازگرداندنهاServerStatus— خطاهای فنی
برای هر کدام، MaxCode خاص ساخته میشود و دستگاههای مربوط تنظیم میگردد. سفارشها به مالک و مدیر میرسد، رویدادهای مالی به مسئول مربوط، و خطاهای سرور به کارشناسان نگهداری سرور. سیستم شرکت در تمامی موارد، محتوا رویداد و MaxCode مرتبط را منتقل میکند.
اگر کارمندان، دستگاهها یا روشهای تحویل تغییر کنند، سیستمهای منبع نیاز به تنظیم مجدد ندارند. کنترل در داخل PushMeld باقی میماند.
APNs، FCM و HMS خارج از برنامه باقی میمانند
برای ارسال push در دستگاههای مختلف، ممکن است از APNs، FCM یا HMS بهره گرفته شود. هر ارائهدهنده قوانین، توکنها و ویژگیهای خاص خودش را دارد.
این تفاوتها معمولاً هنگام توسعه سامانه ارسال باید در نظر گرفته شوند، ولی در PushMeld، این موارد پشت MaxCode قرار میگیرند.
سرور خانگی، سایت یا اسکریپت، تعیین نمیکند که گیرنده چه تلفنی دارد و از کدام زیرساخت پیام را میگیرد. تنها یک درخواست انجام میدهد و PushMeld مسیر مناسب را انتخاب میکند.
MaxCode زیرساختهای اپل، گوگل یا هواوی را جایگزین نمیکند. بلکه یک ورودی واحد پیش از آنها فراهم میآورد.
به این صورت، سیستم منبع نیاز ندارد که با دستگاههای کاربر خود تطابق پیدا کند. امروز میتوان پیام را از طریق FCM فرستاد، فردا از طریق APNs، و فردا یک گوشی یا ایمیل جدید به پروژه اضافه کند. برای برنامه رویداد، تغییری ایجاد نمیشود.
MaxCode و کلید API عادی، یکی نیستند
کلید API معمولاً تنها دسترسی به سرویس را مجاز میکند. بعد از بررسی، سیستم نیاز دارد که پروژه، گیرندگان و نوع ارسال را از قبل مشخص کند.
MaxCode این حوزه را در یک کد واحد جمع میکند.
امکان شناخت پروژه، بررسی درخواست و تطابق با تنظیمات فعلی در آن قرار دارد. برنامه خارجی، فقط MaxCode و محتوای رویداد را منتقل میکند، بدون کنترل مسیر بعدی.
تفاوت عملی کوتاه این است: کلید API دسترسی میدهد، اما MaxCode نه تنها دسترسی اجرایی، بلکه زمینه اجرا را نیز مشخص میکند.
اعلان به عنوان امکان افزودنی
پس از آشنایی با PushMeld، نمیخواهم آن را صرفاً یک برنامه برای اعلانهای push بنامم.
بلکه بهتر است بگویم این روشی است برای افزودن اعلانها به مکانهایی که قبلاً نبودهاند، و سپس کنترل آنها را مستقل از برنامه منبع در اختیار گرفتن.
سازمان، سنسور، اپ قدیمی، فروشگاه آنلاین، اسکریپت یا سیستم داخلی شرکت، اگر توانایی انجام درخواست HTTP مستقل یا با ابزار کمکی را داشته باشد، رویداد را میتوان به PushMeld منتقل کرد.
در نتیجه، MaxCode مرز میان رویداد و تحویل آن را مشخص میکند. در یک سمت برنامه است که خبر میدهد چه رخ داده است، و در سمت دیگر PushMeld است که پروژه، دستگاهها، کانالها و مسیر فنی را تعیین میکند.
بنابراین، مهمترین قابلیت MaxCode فقط جایگزینی کلیدهای متعدد با یک کد نیست. بلکه کنترل اعلانها را خارج از سیستم منبع منتقل میکند.
گوشی جایگزین میشود، ایمیل اضافه میشود، دستگاه قدیمی غیرفعال، و مسیر تحویل تغییر مییابد. برنامه تنها کاری که باید بکند، اطلاعرسانی در مورد رویداد است.