এক MaxCode এর পরিবর্তে অনেক কীগাঃ কীভাবে PushMeld অবহেলিত স্থানে বিজ্ঞপ্তি যোগ করে
MaxCode কিভাবে PushMeld-এ ওয়েবসাইট, সার্ভার, স্ক্রিপ্ট এবং ডিভাইস থেকে push- ও email-সংবাদ পরিচালনা স্থানান্তর করে ধাপে ধাপে সরল করে তোলে।
মানি করি একটি হোম কম্পিউটার আছে, যা প্রতিরাতে গুরুত্বপূর্ণ ফাইলের ব্যাকআপ তৈরি করে। ফলাফলটি সিস্টেম লগে সংরক্ষণ হয়: অপারেশন সফলভাবে সম্পন্ন হয়েছে বা এর মাঝে কোনও ত্রুটি হয়েছে।
প্রযুক্তিগতভাবে সব কিছু কাজ করে। অসুবিধা আসে সকালে: ব্যক্তিকে স্বয়ংক্রিয়ভাবে লগ খুলে ফলাফল পরীক্ষা করতে হয়। প্রোগ্রাটির কোনো মোবাইল অ্যাপ্লিকেশন নেই, ডেভেলপারদের দ্বারা বিজ্ঞপ্তি পাঠানোর ব্যবস্থা নেই, এবং একক ফাংশনের জন্য পৃথক অবকাঠামো তৈরি করবে না কেউ।
PushMeld এর মাধ্যমে এমন প্রক্রিয়ায় সাধারণ একটি অনুরোধ যোগ করা যায়। ব্যাকআপ শেষের পরে ফোনে একটি বার্তা আসে: কপি তৈরি হয়েছে বা অপারেশনটি ত্রুটির কারণে শেষ হয়েছে। প্রয়োজনে একই বিজ্ঞপ্তি ইমেইলের মাধ্যমে পাওয়া যাবে।
এই ধারণার মূল ভিত্তি হলো MaxCode — একটি একক সুরক্ষিত কোড, যার মাধ্যমে PushMeld সমস্ত প্রয়োজনীয় তথ্য পায়, যা পরবর্তী বিজ্ঞপ্তি সরবরাহের জন্য দরকার।
প্রকল্পটির সাথে পরিচিত হওয়ার সময়, MaxCode ছিল সবচেয়ে আকর্ষণীয় অংশ। Push-নোটিফিকেশন এবং email অনেক পুরনো নাও হতে পারে। আরো গুরুত্বপূর্ণ হলো যে মূল প্রোগ্রাম তাদের সরবরাহ নিয়ন্ত্রণ বন্ধ করে দেয়। এটি কেবল ঘটনা PushMeld-কে জানায়, এবং সমস্ত পরবর্তী প্রক্রিয়া তা বাইরে চলে যায়।
সংজ্ঞা: PushMeld MELD® সিস্টেমের অন্তর্গত, এবং DigiMeld UG এটি বিকাশকারী কোম্পানি।
উৎস শুধুমাত্র ঘটনা সম্পর্কে জানে
সাধারণ বিজ্ঞপ্তি ইন্টিগ্রেশনের সাথে দ্রুত প্রযুক্তিগত জটিলতা বাড়তে পারে। প্রকল্প নির্ধারণ, অ্যাক্সেস সেট করতে, কী সংরক্ষণ করতে, ডিভাইসের টোকেন মানতে, ইমেল পাঠানো নিয়মাবলী বুঝতে হয় বিভিন্ন মোবাইল প্লাটফর্মের প্রয়োজনীয়তা।
PushMeld এসব সবকিছু মূল সিস্টেম থেকে স্থানান্তর করে পৃথক পরিচালিত কনট্যুরে।
ব্যাকআপ প্রোগ্রাম জানে শুধু একটিই: অপারেশন সফল বা ব্যর্থ হয়েছে। এটি MaxCode, শিরোনাম এবং বার্তার লেখাটির মতোত তথ্য পাঠায়।
এটি জানার দরকার নেই:
প্রকল্পের সংযোগকৃত ডিভাইসের সংখ্যা;
বর্তমানে কোন ফোন সক্রিয়;
কোন প্রোভাইডার মাধ্যমে push যাবে;
ইমেল মাধ্যমে প্রেরণ চালু বা না;
ব্যবহারকারীর নতুন স্মার্টফোন কি এলো;
পুরানো ট্যাবলেট কি বন্ধ হয়ে গেছে;
কোন নির্দিষ্ট বিজ্ঞপ্তি কে পাবে।
এই সব সিদ্ধান্ত এখনও PushMeld এর ভিতরে নির্ধারিত।
আমার মতে, এখানেই প্রকল্পের মূল আর্কিটেকচারাল আইডিয়া লুকানো: MaxCode ঘটনাটি যেখানে ঘটে সেখান থেকে বিজ্ঞপ্তির পরিচালনা তুলে নেয় সেই সিস্টেমে যা তা সরবরাহ করেন।
এক MaxCode এর পরিবর্তে অনেক কীর জন্য
সাধারণত, বাহ্যিক সেবা সংযোগের জন্য একাধিক উপাদানের সাথে কাজ করতে হয়। আলাদা-আলাদা আইডেন্টিফায়ার, অ্যাক্সেস কী, গোপন কোড, ডিভাইসের টোকেন, নির্দিষ্ট প্রোভাইডার সেটিংস আরও প্রয়োজন।
MaxCode সব দরকারি উপাদান এক নিরাপদ কোডে একত্রিত করে।
প্রতিটি প্রকল্পের জন্য আলাদা MaxCode তৈরি হয়। এতে প্রকল্পের শনাক্তকরণ, পাঠানোর অধিকার, এবং সেই ডেটা থাকে যা PushMeld সংশ্লিষ্ট কনফিগারেশন প্রয়োগ করতে পারে।
প্রেরণকারী সিস্টেম আলাদাভাবে সংরক্ষণ করতে হবে না:
প্রকল্পের আইডি;
API কী এবং গোপনীয়তা;
সংযুক্ত ডিভাইসের টোকেন;
প্রতিটি প্রাপকের সেটিংস;
বিভিন্ন push-providers এর চাবি;
push এবং email এর জন্য পৃথক সেটিংস।
এক MaxCode প্রোগ্রাম, ওয়েবসাইট বা স্ক্রিপ্টে যোগ করলে, এটি স্বয়ংক্রিয়ভাবে প্রকল্প নির্ণয় করে, অনুরোধ যাচাই করে, সংযুক্ত ডিভাইস খুঁজে নেয় এবং উপযুক্ত চ্যানেল নির্বাচন করে।
অতএব, MaxCode কে আরেকটি কী হিসেবে বিবেচনা করা যায় না। এর উপকারিতা হলো সমস্ত বিচ্ছিন্ন কীগুলো, টোকেনগুলো এক কোডে প্রতিস্থাপন।
অখন যেখানে বিজ্ঞপ্তি দরকার, সেখানে বসানো
MaxCode যেকোনো সিস্টেমে ব্যবহৃত হতে পারে, যাতে স্বয়ংক্রিয়ভাবে HTTP অনুরোধ চালাতে পারে বা একটি ছোট অ্যাডাপ্টারের মাধ্যমে।
উদাহরণস্বরূপ, PushMeld জানাতে পারে যখন:
গৃহ সার্ভার উত্তর দিচ্ছে না;
ব্যাকআপ অবশেষ হয়েছে বা ত্রুটির কারণে ব্যর্থ হয়েছে;
নিজের স্ক্রিপ্ট দীর্ঘ সময় ধরে কাজ সম্পন্ন করেছে;
3D প্রিন্টার প্রিন্ট শেষ করেছে;
প্রবাহে লিক শনাক্ত হয়েছে;
তালা খোলা হয়েছে বা অ্যালার্ম চালু হয়েছে;
ওয়েবসাইটে প্রয়োজনীয় তথ্য প্রকাশ পেয়েছে;
প্রোডাক্টের দাম পরিবর্তিত হয়েছে;
রেকর্ডের জন্য স্থান মুক্ত হয়েছে;
পুরানো প্রোগ্রাম বড় ফাইলের প্রসেসিং শেষ করেছে;
একটি ছোট অনলাইন দোকানে নতুন অর্ডার এসেছে।
প্রতিটি উৎসের নিজস্ব অ্যাপ থাকতে পারে না। কিছু ডিভাইস কেবল নির্দিষ্ট ঠিকানা পৌঁছাতে পারে, অন্যরা কাস্টম কমান্ড চালাতে পারে, বা অটোমেশন স্ক্রিপ্ট যোগ করতে পারেন।
এটি PushMeld-এ ঘটনা পাঠানোর জন্য যথেষ্ট।
উৎস নিজস্বভাবে স্বয়ংক্রিয় নোটিফিকেশন পরিষেবা নয়। এটি কেবল ঘটনার রেকর্ড করে এবং MaxCode সহ বার্তা পাঠায়। অন্যান্য সব গুরুত্বপূর্ণ অংগ — প্রাপকেরা, ডিভাইস, চ্যানেল, প্রযুক্তিগত রুট — PushMeld এর দখলে।
শুধু push নয়, email-ও
PushMeld এর নাম মূলত ফোনে বিজ্ঞপ্তির সাথে যুক্ত, তবে প্রকল্পের সক্ষমতা এখানেই সীমাবদ্ধ নয়।
নোটিফিকেশন প্রেরণের জন্য push, email বা উভয়ই ব্যবহার করা যেতে পারে — প্রকল্পের সেটিংস এবং প্রাপ্ত বিষয়ে নির্ভর করে।
উদাহরণস্বরূপ, ব্যাকআপের সফলতা দেখানো খুবই সাধারণ। গুরুতর ভুল হলে তা ইমেইলের মাধ্যমে পাঠানো যেতে পারে।
মূল প্রোগ্রাম দুটি ক্ষেত্রে একই MaxCode এর মাধ্যমে অনুরোধ করে। তাকে আলাদাভাবে ইমেল সার্ভার সংযোগ করতে হয় না, সেটিংস রাখতে হয় না, বা অন্যস্বাধীন স্ক্রিপ্ট তৈরি করতে হয় না।
প্রেরণের জন্য চ্যানেল সিদ্ধান্ত PushMeld এর ভিতরে নেওয়া হয়। যদি পরে একজন ব্যবহারকারী ইমেল যোগ করে, তাহলে ব্যাকআপ প্রোগ্রামটিকে পরিবর্তন করতে হবে না।
এমেল এখানে সাধারণ mass mailing নয়। এটি একটি অতিরিক্ত পদ্ধতি হিসাবে ব্যবহৃত হয়, ঘটনার প্রতিবেদন বা অবগতির জন্য।
এক প্রকল্প — এক উত্স ঘটনা
প্রকল্পগুলো দিয়ে পাঠানো বিজ্ঞপ্তির উদ্দেশ্য ভিন্ন ভিন্ন গুরুত্বে বিভক্ত করা যায়।
সাধারণ ব্যবহারকারী যেমন করতে পারে:
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 Apple, Google বা Huawei এর অবকাঠামোর পরিবর্তন নয়; এটি তাদের সামনে একটি একক প্রবেশদ্বার তৈরি করে।
এটি মূল সিস্টেমকে বদলাতে হয় না, কারণ তারা ব্যবহারকারীর ডিভাইসের উপর নির্ভর করে না। আজকের বার্তা FCM দিয়ে যাবে, আগামীকাল APNs, এবং পরে অন্য কোনো দুঃখ দূর হয় না।
MaxCode এবং সাধারণ API-কি-র মধ্যে পার্থক্য
সাধারণ API-কি সাধারণত কেবল সার্ভিস অ্যাক্সেসের অনুমতি দেয়। মূল কথাটি হল, এটি প্রকল্প, প্রাপকদের ও ডেলিভারি পদ্ধতির সম্পর্কে আলাদাভাবে জানায়।
MaxCode এই সব তথ্য এক কোডে একত্রিত করে।
এটি PushMeld কে অনুমান করতে দেয় প্রকল্প শনাক্ত করতে, অনুরোধ যাচাই করতে এবং তার বর্তমান সেটিংস প্রয়োগ করতে। বাইরার প্রোগ্রাম MaxCode ও ঘটনার বিষয়বস্তু পাঠায়, এবং রুট নিয়ন্ত্রণ করে না।
সংক্ষিপ্তভাবে বলতে গেলে, API-কি অ্যাক্সেস দেয় শুধু ফাংশনের, আর MaxCode এক সঙ্গে নির্ধারণ করে বাস্তব প্রসঙ্গটি।
বিজ্ঞপ্তি যোগ করার সুবিধা
PushMeld এর সাথে পরিচিত হয়ে আমি বলব, এটি কেবল push-নোটিফিকেশনের অ্যাপ নয়।
এটি একটি পদ্ধতি কীভাবে অবকাঠামো যেখানে আগে বিজ্ঞপ্তি ছিল না, সেখানে যোগ করা এবং এগুলির দিক থেকে নিয়ন্ত্রণ করার।
উৎস হতে পারে গৃহ সার্ভার, সেন্সর, পুরাতন অ্যাপ বা ওয়েবসাইট, নিজের স্ক্রিপ্ট বা কোম্পানির অভ্যন্তরীণ সিস্টেম। যদি এগুলি HTTP অনুরোধ স্বয়ংক্রিয়ভাবে চালাতে পারে বা একটি ছোট এডাপ্টার দ্বারা, তাহলে এই ঘটনাটি PushMeld-এ পাঠানো যাবে।
এর পরে MaxCode ঘটনাটিকে তার সরবরাহের সীমানার মধ্যে রাখে। একদিকে হলো সেই প্রোগ্রাম যা জানায় কী ঘটেছে। অন্যদিকে, PushMeld নির্ণয় করে প্রকল্প, ডিভাইস, চ্যানেল ও প্রযুক্তিগত রুট।
এটি MaxCode এর সবচেয়ে গুরুত্বপূর্ণ সুবিধা নয়কিঝে একক কোডের মাধ্যমে অনেক কীগুলিকে প্রতিস্থাপন করে। বরং, এই কোডটি ঘটনা থেকে তার রুটের মধ্যে ব্যবধান তৈরি করে। এই সীমার পরে যা কিছু, সেটি মূল উৎসের বদল ছাড়াই পরিবর্তন যায়।