Один MaxCode вместо десятка ключей: как PushMeld добавляет уведомления туда, где их не было
Один MaxCode вместо десятка ключей: как PushMeld добавляет уведомления туда, где их не было
لنتخيل جهاز كمبيوتر منزلي يقوم كل ليلة بعمل نسخة احتياطية من الملفات المهمة. ويتم تسجيل النتيجة في سجل النظام: العملية ناجحة أو حدث خطأ.
يعمل كل شيء تقنيًا بشكل طبيعي. لكن الإزعاج يظهر في الصباح: يتعين على الإنسان فتح السجل يدويًا والتحقق من النتيجة. لا يوجد تطبيق هاتف محمول للبرنامج، ولا يتضمن الدعم إرسال إشعارات من قبل المطورين، وللغاية إنشاء بنية تحتية منفصلة لمجرد وظيفة واحدة أمر غير عملي.
باستخدام PushMeld، يمكن إضافة طلب بسيط لهذا العملية. بعد انتهاء عملية النسخ الاحتياطي، سوف تصل رسالة إلى الهاتف: تم إنشاء النسخة أو انتهت العملية بخطأ. وإذا لزم الأمر، يمكن استلام نفس الإشعار عبر البريد الإلكتروني.
فكرة MaxCode الأساسية تعتمد على رمز موحد ومؤمن، من خلاله تتلقى PushMeld كل المعلومات الضرورية لمتابعة توصيل الإشعار.
عندما تعرفت على المشروع، بدا لي أن MaxCode هو الجزء الأكثر إثارة فيه. إذ لم تعد الإشعارات الفورية والبريد الإلكتروني شيئًا جديدًا. والأهم من ذلك أن البرنامج الأصلي يتوقف عن إدارة توصيلها. وهو فقط يبلّغ PushMeld عن الحدث، وكل شيء آخر يتم خارج نطاقه.
سأوضح الآن السياق: ينتمي PushMeld لنظام MELD®، وشركة DigiMeld UG هي المطور له.
المصدر يعرف فقط عن الحدث
عادةً، يتكاثر تكامل الإشعارات بسرعة مع التفاصيل التقنية. يجب تحديد المشروع، إعداد الوصول، تخزين المفاتيح، مراعاة رموز الأجهزة، إعداد إرسال البريد الإلكتروني، والتعامل مع متطلبات الأنظمة المختلفة للهواتف المحمولة.
نقل PushMeld يعالج كل ذلك من النظام الأصلي إلى دائرة إدارة منفصلة ومتحكم بها.
نظام النسخ الاحتياطي يعرف فقط أن العملية قد اكتملت بنجاح أو حدث خطأ. ويقوم بنقل MaxCode، عنوان الرسالة، ونصها.
لا يحتاج إلى معرفة:
- عدد الأجهزة المرتبطة بالمشروع؛
- أي هاتف هو النشط حالياً؛
- أي مزود يجب أن يمر عبره الدفع؛
- هل يتم إرسال البريد الإلكتروني؛
- هل وضع المستخدم جهازًا جديدًا؛
- هل تم إيقاف تشغيل الجهاز اللوحي القديم؛
- من يجب أن يتلقى إشعار معين.
كل هذا يتم تحديده داخل PushMeld.
برأيي، تكمن الفكرة المعمارية الأساسية للمشروع هنا: ينقل MaxCode إدارة الإشعارات من البرنامج الذي حدث فيه الحدث إلى النظام الذي يتولى توصيلها.
أونين MaxCode بدلاً من مجموعة المفاتيح
عند الاتصال بخدمة خارجية عادةً، يجب العمل مع عدة كيانات. يُستخدم معرف المشروع، ومفتاح الوصول، ويمكن أن تكون هناك أسرار ورموز أجهزة وإعدادات مزود الخدمات.
يقوم MaxCode بدمج كل ما يلزم للإرسال في رمز واحد مؤمّن.
يتم إنشاء MaxCode خاص بكل مشروع. ويجمع بين تعريف المشروع، حق الإرسال، والبيانات التي تتيح لـ PushMeld تطبيق تكوين التوصيل الحالي.
لا يحتاج النظام المرسل إلى تخزين بشكل منفصل:
- معرف المشروع؛
- مفتاح API وسر إضافي؛
- رموز الأجهزة المرتبطة؛
- إعدادات كل مستقبل؛
- مفاتيح مزودي الدفع المختلفة؛
- إعدادات منفصلة للدفع بالبريد الإلكتروني وpush.
يتم إضافة MaxCode واحد إلى البرنامج أو الموقع الإلكتروني أو السكريبت. عند استلامه مع الرسالة، يحدد PushMeld تلقائيًا المشروع، يتحقق من الطلب، ويحدد الأجهزة المرتبطة ويختار القنوات المتاحة.
لذا، لا يمكن اعتبار MaxCode كأنه مفتاح آخر متصل بالمفاتيح الأخرى. هدفه هو استبدال مجموعة المفاتيح المنفصلة، الرموز، والمعرفات برمز واحد موحد.
إشعار من مكان غير متوقع
يمكن استخدام MaxCode في أي نظام قادر على تنفيذ طلب HTTP بشكل مستقل أو باستخدام سكريبت مساعد بسيط.
على سبيل المثال، يمكن لـ PushMeld أن يبلغ عند:
- توقف الخادم المنزلي عن الاستجابة؛
- انتهاء النسخ الاحتياطي أو حدوث خطأ فيه؛
- نفذ السكريبت الخاص بك مهمة طويلة الأمد؛
قد لا يكون لهذه المصادر تطبيق خاص بها. بعض الأجهزة تقتصر على الوصول إلى عنوان معين، وأخرى تسمح بتشغيل أمر مخصص، وثالثة يمكن زيادة برمجتها بأتمتة قصيرة.
هذا يكفي لإرسال الحدث إلى PushMeld.
المصدر لا يتحول إلى خدمة إشعارات مستقلة، وإنما فقط يسجل الحدث ويرسل رسالة مع MaxCode. كل شيء آخر — المستلمون، الأجهزة، القنوات، والمسار الفني — يبقى على جانب PushMeld.
ليس فقط push، بل و البريد الإلكتروني أيضاً
الاسم PushMeld غالبًا ما يُرتبط بالإشعارات على الهاتف، لكن إمكانيات المشروع لا تقتصر على ذلك.
للتوصيل، يمكن استخدام push، والبريد الإلكتروني، أو كلا القناتين— حسب تكوين المشروع والخيارات المتاحة.
على سبيل المثال، رسالة نجاح النسخ الاحتياطي تكفي أن تظهر على الهاتف. أما الأخطاء الكبيرة، فيمكن إرسالها أيضًا عبر البريد الإلكتروني.
البرنامج الأصلي ينفذ ذات الطلب باستخدام MaxCode في الحالتين، ولا يحتاج إلى إعداد خادم بريد إلكتروني خاص، أو تخزين إعداداته، أو إنشاء سيناريو مستقل آخر.
قرار القنوات يتم داخل PushMeld. وإذا أضاف المستخدم البريد الإلكتروني لمشروع قائم لاحقًا، لن يتطلب الأمر إعادة كتابة برنامج النسخ الاحتياطي.
وفي الوقت ذاته، يُستخدم البريد الإلكتروني هنا ليس كارسال جماعي، بل كوسيلة إضافية لإبلاغ عن الحدث القادم من المشروع المرتبط.
مشروع واحد - مصدر واحد للحدث
تمكّن المشاريع من تصنيف الإشعارات حسب الغرض منها.
يمكن للمستخدم العادي إنشاء، على سبيل المثال:
HomeServer— حالة خادم المنزل؛
Backups— نتائج النسخ الاحتياطي؛
SmartHome— أجهزة الاستشعار والأتمتة المنزلية؛
PriceMonitor— تغيّر السعر؛
Website— طلبات جديدة من الموقع الشخصي.
يحصل كل مشروع على MaxCode خاص به، وبهذا لا يستخدم أتمتة المنزل رمز الموقع الإلكتروني، وليس هناك تداخل بين مراقبة الأسعار ونسخ الاحتياطي.
وبذلك، يُظهر التطبيق فورًا مصدر الرسالة وما هو متعلق به الحدث.
هذا الفصل مهم بشكل خاص عندما تتعدد المصادر. بدلاً من تدفق واحد، يحصل المستخدم على عدة قنوات مستقلة، ويمكن تخصيص إعدادات التسليم لكل منها.
هاتف جديد لا يتطلب تعديل البرنامج
رمز الدفع push العادي مرتبط بتثبيت تطبيق معين على جهاز معين.
إذا كان لدى الإنسان هاتفين وجهاز لوحي، فإن ذلك هو عدة رموز. بعد إعادة تثبيت التطبيق أو استبدال الجهاز، قد يتغير الرمز أو يتوقف عن العمل.
MaxCode يتجاوز هذا المستوى. هو مرتبط بالمشروع، وليس بجهاز واحد.
يحدد المستخدم بشكل مستقل الأجهزة المرتبطة بالمشروع والتي يجب أن تتلقى الرسائل منه. على سبيل المثال، يمكن توجيه إشعارات خادم المنزل إلى هاتفه الشخصي والجهاز اللوحي، وطلبات موقع العمل فقط إلى هاتف العمل.
عندما يشتري شخص هاتفًا جديدًا أو يقوم بإيقاف تشغيل جهاز قديم، يواصل السكريبت الأصلي استخدام نفس MaxCode. ويُبدَّل قائمة المستلمين المحدثة داخل PushMeld.
وينطبق الأمر ذاته على إضافة البريد الإلكتروني أو تعديل إعدادات التوصيل الأخرى.
لهذا السبب، MaxCode ليس مجرد وسيلة لتقليل عدد المفاتيح، بل هو حد فاصل بين الحدث وطريق توصيله. يمكن تعديل كل شيء بعد هذا الحد بدون تدخل في النظام المصدر.
مجانًا للمهمات العادية
غالبًا ما تُوصف المنتجات التحتية عبر أنظمة مؤسسية، أو أوامر الخادم، أو كميات كبيرة من البيانات. ولهذا، ربما يعتقد البعض أن PushMeld مخصص فقط للمطورين المحترفين والشركات.
ولكن، في الواقع، يمكن البدء بمهمة منزلية عادية.
التطبيق نفسه مجاني، وغالبية ميزات MaxCode تعمل بدون دفع ضمن حدود الاستخدام المجاني. يمكن للمرء إنشاء مشروع، وربط جهاز، والحصول على إشعارات من خادمه، موقعه، سكريبه، أو أتمتة المنزل.
وهذا ليس وضع عرض تجريبي مؤقت يتوقف بعد التعرف على المنتج، وإنما هو كافٍ لمهام الاستخدام اليومي في معظم الحالات الحالة المجانية تكون كافية.
تُستخدم خطط الاشتراك عندما تتزايد الطلبات، وتحتاج الميزات الإضافية، أو يُستخدم النظام على نطاق أوسع.
مبدأ واحد للإنسان والشركة
لا يتغير مبدأ MaxCode باختلاف حجم المهمة.
يتلقى الإنسان رسالة حول إكمال النسخ الاحتياطي. وتعرف ورشة صغيرة أن طابعة ثلاثية الأبعاد أنهت طباعتها طويلة الأمد. ويرى متجر إلكتروني طلبًا جديدًا. وتتحصل الفرق التقنية على إشعار عن خطأ في الخادم.
تختلف الأحجام وعدد المشاريع، لكن المبدأ يظل ثابتًا.
تخيل شركة لديها ثلاثة مصادر للأحداث:
Orders— الطلبات الجديدة؛
Payments— المدفوعات والمرتجعات؛
ServerStatus— أخطاء فنية.
لدى كل منها MaxCode خاص، وتتم تهيئتها بأجهزة مختلفة. الطلبات تصل إلى المالك والمدير، والأحداث المالية لموظف مسؤول، والأخطاء الفنية للمهندسين المشرفين على الخوادم.
تقوم النظام في كل الحالات تقريبًا بنفس الشيء: تنقل محتوى الحدث وMaxCode الخاص بالمشروع المعني.
عندما يتغير الموظفون، أو الأجهزة، أو طرق التوصيل، لا يلزم إعادة ضبط الأنظمة الأصلية. إذ تظل إدارة التوصيل داخل PushMeld.
تبقى APNs، FCM وHMS خارج البرنامج
يمكن استخدام APNs، FCM، أو HMS لتوصيل push على أجهزة مختلفة، ولكل مزود قواعده، ورموزه، وميزاته التقنية.
غالبًا ما يتعين مراعاة هذه الاختلافات أثناء تطوير نظام الإرسال. في حالة PushMeld، تبقى هذه الاختلافات خارج MaxCode.
الخادم المنزلي، الموقع الإلكتروني، أو السكريبت لا يحدد أي هاتف يستخدم المتلقي، وكيفية مرور الرسالة عبر البنية التحتية. هو ينفذ طلبًا واحدًا، وPushMeld يختار المسار المطلوب.
MaxCode لا يحل محل بنية Apple، Google، أو Huawei. هو يخلق مدخلًا موحدًا قبلها.
وبهذه الطريقة، لا يتعين على النظام الأصلي التغيير مع تغيّر أجهزة المستخدم. اليوم، يمكن إرسال الرسالة عبر FCM، وغدًا عبر APNs، وفي المستقبل قد يُضاف هاتف أو بريد إلكتروني آخر للمشروع. ولن يتغير شيء في برنامج الحدث.
MaxCode والمفتاح API العادي — ليسا نفس الشيء
غالبًا، يقتصر المفتاح API العادي على توجيه الوصول إلى الخدمة. بعد التحقق من المفتاح، لا تزال الحاجة إلى إعلام النظام بشكل منفصل عن المشروع، والمتلقين، وطريقة التوصيل.
أما MaxCode فيوحّد كل هذا في رمز واحد.
يتيح لـ PushMeld التعرف على المشروع، والتحقق من الطلب، وتطبيق إعداداته الحالية. يرسل البرنامج الخارجي MaxCode ومحتوى الحدث، دون إدارة مساره لاحقًا.
الاختلاف العملي يُمكن تلخيصه بكلمة واحدة: يُفتح الوصول بمفتاح API، لكن MaxCode يُحدد سياق تنفيذ الوظيفة.
إشعار كميزة قابلة للدمج
بعد فهم PushMeld، لن أصفه بأنه مجرد تطبيق لإشعارات push.
الأصح أن نقول إنه طريقة لإضافة الإشعارات إلى أماكن لم تكن موجودة فيها من قبل، ثم إدارة تلك الإشعارات بشكل مستقل عن البرنامج المصدر.
المصدر يمكن أن يكون خادم منزلي، أو مستشعر، أو تطبيق قديم، أو متجر إلكتروني، أو سكريبت خاص، أو نظام داخلي للشركة. إذا كان قادرًا على تنفيذ طلب HTTP بشكل مستقل أو عبر محول بسيط، يمكنه إرسال الحدث إلى PushMeld.
بعد ذلك، يقوم MaxCode بخلق حد فاصل بين الحدث والتوصيله. على ناحية جانب، يوجد البرنامج الذي يبلّغ عن الحدوث. وعلى الطرف الآخر، هناك PushMeld الذي يحدد المشروع، الأجهزة، القنوات، والمسار الفني.
لذا، فإن أهم ميزة لـ MaxCode ليست فقط استبدال العديد من المفاتيح برمز واحد، وإنما نقل إدارة الإشعارات خارج النظام المصدر.
يمكن استبدال الهاتف، إضافة البريد الإلكتروني، إيقاف الجهاز القديم، وتغيير مسار التوصيل. وتواصل البرنامج مع ذلك بتقديم المطلوب فقط: الإبلاغ عن الحدث.
\n \",\n \"seo_title\": \"MaxCode بدلاً من مجموعة المفاتيح: كيف يدير PushMeld الإشعارات\",\n \"seo_description\": \"يستخدم PushMeld MaxCode لتبسيط تسليم الإشعارات على الأجهزة والبريد الإلكتروني، مع فصل الإدارة عن الأنظمة الأصلية وتوسيع الإمكانيات.\",\n \"og_title\": \"MaxCode بدلاً من مجموعة المفاتيح: كيف يدير PushMeld الإشعارات\",\n \"og_description\": \"PushMeld يستعمل MaxCode لتسهيل تسليم الإشعارات للهواتف والبريد الإلكتروني، ويتحكم في إدارة الإشعارات بشكل مستقل عن الأنظمة الأصلية.\"\n}"}