Google Play লাইসেন্সিং হল একটি নেটওয়ার্ক-ভিত্তিক পরিষেবা যা একটি অ্যাপ্লিকেশনকে একটি বিশ্বস্ত Google Play লাইসেন্সিং সার্ভারকে জিজ্ঞাসা করতে দেয় যে অ্যাপ্লিকেশনটি বর্তমান ডিভাইস ব্যবহারকারীর কাছে লাইসেন্সপ্রাপ্ত কিনা। লাইসেন্সিং পরিষেবাটি একটি প্রদত্ত ব্যবহারকারী একটি প্রদত্ত অ্যাপ্লিকেশন ব্যবহার করার জন্য লাইসেন্সপ্রাপ্ত কিনা তা নির্ধারণ করতে Google Play লাইসেন্সিং সার্ভারের ক্ষমতার উপর ভিত্তি করে। Google Play একজন ব্যবহারকারীকে লাইসেন্সপ্রাপ্ত বলে বিবেচনা করে যদি ব্যবহারকারী অ্যাপ্লিকেশনটির রেকর্ডকৃত ক্রেতা হন।
যখন আপনার অ্যাপ্লিকেশন Google Play ক্লায়েন্ট অ্যাপ্লিকেশন দ্বারা হোস্ট করা একটি পরিষেবার জন্য একটি অনুরোধ করে তখন অনুরোধটি শুরু হয়৷ Google Play অ্যাপ্লিকেশন তারপর লাইসেন্সিং সার্ভারে একটি অনুরোধ পাঠায় এবং ফলাফল গ্রহণ করে। Google Play অ্যাপ্লিকেশনটি আপনার অ্যাপ্লিকেশনে ফলাফল পাঠায়, যা প্রয়োজন অনুসারে অ্যাপ্লিকেশনটির আরও ব্যবহারের অনুমতি দিতে বা অননুমোদিত করতে পারে।
দ্রষ্টব্য: যদি কোনো অ্যাপের কোনো সংস্করণ বন্ধ বা উন্মুক্ত টেস্টিং ট্র্যাকের মধ্যে থাকে, তবে সেই অ্যাপ ডাউনলোড এবং ইনস্টল করার জন্য অনুমোদিত সমস্ত ব্যবহারকারীকে অ্যাপটির লাইসেন্সপ্রাপ্ত ব্যবহারকারী হিসেবে বিবেচনা করা হবে। আরও তথ্যের জন্য, ব্যবহারকারীদের কাছ থেকে অমূল্য প্রাথমিক প্রতিক্রিয়া পেতে পরীক্ষামূলক ট্র্যাকগুলি ব্যবহার করুন দেখুন৷
![](https://developer.android.com/static/images/google/play/licensing/licensing_arch.png?authuser=0&hl=bn)
চিত্র 1. আপনার অ্যাপ্লিকেশন লাইসেন্স যাচাইকরণ লাইব্রেরি এবং Google Play ক্লায়েন্টের মাধ্যমে একটি লাইসেন্স পরীক্ষা শুরু করে, যা Google Play সার্ভারের সাথে যোগাযোগ পরিচালনা করে।
দ্রষ্টব্য: পূর্বে আপনি একটি অপ্রকাশিত "খসড়া" সংস্করণ আপলোড করে একটি অ্যাপ পরীক্ষা করতে পারেন। এই কার্যকারিতা আর সমর্থিত নয়; পরিবর্তে, আপনাকে অবশ্যই এটি বন্ধ বা খোলা টেস্টিং ট্র্যাকগুলিতে প্রকাশ করতে হবে৷ আরও তথ্যের জন্য, খসড়া অ্যাপগুলি আর সমর্থিত নয় দেখুন৷
ব্যবহারকারীকে সঠিকভাবে সনাক্ত করতে এবং লাইসেন্সের স্থিতি নির্ধারণ করতে, লাইসেন্সিং সার্ভারের অ্যাপ্লিকেশন এবং ব্যবহারকারী সম্পর্কে তথ্য প্রয়োজন—আপনার অ্যাপ্লিকেশন এবং Google Play ক্লায়েন্ট তথ্য একত্রিত করতে একসাথে কাজ করে এবং Google Play ক্লায়েন্ট এটি সার্ভারে প্রেরণ করে।
আপনার অ্যাপ্লিকেশনে লাইসেন্স যোগ করতে সাহায্য করার জন্য, Android SDK লাইব্রেরি উত্সগুলির একটি ডাউনলোডযোগ্য সেট সরবরাহ করে যা আপনি আপনার অ্যাপ্লিকেশন প্রকল্পে অন্তর্ভুক্ত করতে পারেন: Google Market লাইসেন্সিং প্যাকেজ৷ লাইসেন্স ভেরিফিকেশন লাইব্রেরি (LVL) হল একটি লাইব্রেরি যা আপনি আপনার অ্যাপ্লিকেশনে যোগ করতে পারেন যা Google Play লাইসেন্সিং পরিষেবার সাথে লাইসেন্স সংক্রান্ত সমস্ত যোগাযোগ পরিচালনা করে। আপনার অ্যাপ্লিকেশানে LVL যোগ করার সাথে সাথে, আপনার অ্যাপ্লিকেশনটি বর্তমান ব্যবহারকারীর জন্য শুধুমাত্র একটি পদ্ধতিতে কল করার মাধ্যমে এবং স্ট্যাটাস প্রতিক্রিয়া প্রাপ্ত একটি কলব্যাক প্রয়োগ করে তার লাইসেন্সিং স্থিতি নির্ধারণ করতে পারে।
আপনার অ্যাপ্লিকেশন সরাসরি লাইসেন্সিং সার্ভারকে জিজ্ঞাসা করে না, বরং একটি লাইসেন্স অনুরোধ শুরু করার জন্য দূরবর্তী IPC-এর মাধ্যমে Google Play ক্লায়েন্টকে কল করে। লাইসেন্স অনুরোধে:
- আপনার অ্যাপ্লিকেশন প্রদান করে: এর প্যাকেজের নাম, একটি নন্স যা পরে সার্ভার থেকে কোনো প্রতিক্রিয়া যাচাই করতে ব্যবহৃত হয় এবং একটি কলব্যাক যার উপর প্রতিক্রিয়াটি অ্যাসিঙ্ক্রোনাসভাবে ফেরত দেওয়া যেতে পারে।
- Google Play ক্লায়েন্ট ব্যবহারকারী এবং ডিভাইস সম্পর্কে প্রয়োজনীয় তথ্য সংগ্রহ করে, যেমন ডিভাইসের প্রাথমিক Google অ্যাকাউন্ট ব্যবহারকারীর নাম, IMSI এবং অন্যান্য তথ্য। এটি তারপর আপনার আবেদনের পক্ষে সার্ভারে লাইসেন্স চেক অনুরোধ পাঠায়।
- Google Play সার্ভার সমস্ত উপলব্ধ তথ্য ব্যবহার করে অনুরোধটি মূল্যায়ন করে, ব্যবহারকারীর পরিচয়কে পর্যাপ্ত আত্মবিশ্বাসে প্রতিষ্ঠিত করার চেষ্টা করে। সার্ভার তারপরে আপনার অ্যাপ্লিকেশনের জন্য ক্রয় রেকর্ডের বিপরীতে ব্যবহারকারীর পরিচয় পরীক্ষা করে এবং একটি লাইসেন্স প্রতিক্রিয়া প্রদান করে, যা Google Play ক্লায়েন্ট IPC কলব্যাকের মাধ্যমে আপনার অ্যাপ্লিকেশনে ফেরত দেয়।
আপনি চয়ন করতে পারেন কখন, এবং কত ঘন ঘন, আপনি আপনার অ্যাপ্লিকেশনটির লাইসেন্স পরীক্ষা করতে চান এবং এটি কীভাবে প্রতিক্রিয়া পরিচালনা করে, স্বাক্ষরিত প্রতিক্রিয়া ডেটা যাচাই করে এবং অ্যাক্সেস নিয়ন্ত্রণগুলি প্রয়োগ করে তার উপর আপনার সম্পূর্ণ নিয়ন্ত্রণ রয়েছে৷
লক্ষ্য করুন যে লাইসেন্স চেক করার সময়, আপনার অ্যাপ্লিকেশন কোনো নেটওয়ার্ক সংযোগ পরিচালনা করে না বা অ্যান্ড্রয়েড প্ল্যাটফর্মে লাইসেন্স সংক্রান্ত কোনো API ব্যবহার করে না।
লাইসেন্স প্রতিক্রিয়া সুরক্ষিত
প্রতিটি লাইসেন্স প্রশ্নের অখণ্ডতা নিশ্চিত করতে, সার্ভার একটি RSA কী জোড়া ব্যবহার করে লাইসেন্স প্রতিক্রিয়া ডেটাতে স্বাক্ষর করে যা Google Play সার্ভার এবং আপনার মধ্যে একচেটিয়াভাবে ভাগ করা হয়৷
লাইসেন্সিং পরিষেবা প্রতিটি অ্যাপ্লিকেশনের জন্য একটি একক লাইসেন্সিং কী জোড়া তৈরি করে এবং প্লে কনসোলে আপনার অ্যাপ্লিকেশনের পরিষেবা এবং API পৃষ্ঠায় সর্বজনীন কী প্রকাশ করে৷ আপনাকে অবশ্যই প্লে কনসোল থেকে সর্বজনীন কীটি অনুলিপি করতে হবে এবং এটিকে আপনার অ্যাপ্লিকেশন সোর্স কোডে এম্বেড করতে হবে। সার্ভারটি অভ্যন্তরীণভাবে ব্যক্তিগত কীটি ধরে রাখে এবং আপনি সেই অ্যাকাউন্টের সাথে যে অ্যাপ্লিকেশনগুলি প্রকাশ করেন তার লাইসেন্স প্রতিক্রিয়াগুলিতে স্বাক্ষর করতে এটি ব্যবহার করে৷
যখন আপনার অ্যাপ্লিকেশন একটি স্বাক্ষরিত প্রতিক্রিয়া পায়, তখন এটি ডেটা যাচাই করতে এমবেডেড পাবলিক কী ব্যবহার করে। লাইসেন্সিং পরিষেবাতে পাবলিক কী ক্রিপ্টোগ্রাফির ব্যবহার অ্যাপ্লিকেশনটির পক্ষে এমন প্রতিক্রিয়া সনাক্ত করা সম্ভব করে যেগুলির সাথে টেম্পার করা হয়েছে বা যা স্পুফ করা হয়েছে৷
লাইসেন্সিং যাচাইকরণ লাইব্রেরি
অ্যান্ড্রয়েড SDK একটি ডাউনলোডযোগ্য প্যাকেজ সরবরাহ করে যাকে Google Market লাইসেন্সিং প্যাকেজ বলা হয়, যার মধ্যে রয়েছে লাইসেন্স যাচাইকরণ লাইব্রেরি (LVL)। LVL আপনার অ্যাপ্লিকেশনে লাইসেন্স যোগ করার প্রক্রিয়াটিকে ব্যাপকভাবে সরল করে এবং আপনার আবেদনের জন্য আরও নিরাপদ, শক্তিশালী বাস্তবায়ন নিশ্চিত করতে সহায়তা করে। LVL অভ্যন্তরীণ ক্লাসগুলি প্রদান করে যা একটি লাইসেন্সের প্রশ্নের বেশিরভাগ স্ট্যান্ডার্ড ক্রিয়াকলাপ পরিচালনা করে, যেমন লাইসেন্সের অনুরোধ শুরু করার জন্য Google Play ক্লায়েন্টের সাথে যোগাযোগ করা এবং প্রতিক্রিয়াগুলি যাচাই করা এবং যাচাই করা। এটি এমন ইন্টারফেসগুলিকেও প্রকাশ করে যা আপনাকে লাইসেন্সিং নীতি সংজ্ঞায়িত করার জন্য এবং আপনার অ্যাপ্লিকেশনের প্রয়োজন অনুসারে অ্যাক্সেস পরিচালনা করার জন্য আপনার কাস্টম কোডকে সহজেই প্লাগ ইন করতে দেয়। মূল LVL ইন্টারফেস হল:
-
Policy
- সার্ভার থেকে প্রাপ্ত লাইসেন্স প্রতিক্রিয়া এবং উপলভ্য অন্যান্য ডেটা (যেমন আপনার অ্যাপ্লিকেশনের সাথে যুক্ত একটি ব্যাকএন্ড সার্ভার থেকে) এর উপর ভিত্তি করে আপনার বাস্তবায়ন অ্যাপ্লিকেশনটিতে অ্যাক্সেসের অনুমতি দেবে কিনা তা নির্ধারণ করে। বাস্তবায়ন লাইসেন্স প্রতিক্রিয়ার বিভিন্ন ক্ষেত্র মূল্যায়ন করতে পারে এবং প্রয়োজনে অন্যান্য সীমাবদ্ধতা প্রয়োগ করতে পারে। বাস্তবায়ন আপনাকে লাইসেন্স চেকগুলির পরিচালনা পরিচালনা করতে দেয় যার ফলে ত্রুটি দেখা দেয়, যেমন নেটওয়ার্ক ত্রুটি।
-
LicenseCheckerCallback
-
Policy
অবজেক্টের লাইসেন্স প্রতিক্রিয়া পরিচালনার ফলাফলের উপর ভিত্তি করে আপনার বাস্তবায়ন অ্যাপ্লিকেশনটিতে অ্যাক্সেস পরিচালনা করে। আপনার বাস্তবায়ন যেকোন উপায়ে অ্যাক্সেস পরিচালনা করতে পারে, যার মধ্যে UI-তে লাইসেন্সের ফলাফল প্রদর্শন করা বা ব্যবহারকারীকে অ্যাপ্লিকেশনটি কেনার নির্দেশ দেওয়া (যদি বর্তমানে লাইসেন্স না থাকে)।
একটি Policy
সাথে শুরু করতে আপনাকে সাহায্য করার জন্য, LVL দুটি সম্পূর্ণ সম্পূর্ণ Policy
বাস্তবায়ন প্রদান করে যা আপনি পরিবর্তন ছাড়াই ব্যবহার করতে পারেন বা আপনার প্রয়োজনের সাথে খাপ খাইয়ে নিতে পারেন:
-
ServerManagedPolicy
- একটি নমনীয়
Policy
যা ডিভাইসটি অফলাইনে থাকা অবস্থায় প্রতিক্রিয়া ক্যাশিং এবং অ্যাপ্লিকেশনটিতে অ্যাক্সেস পরিচালনা করতে লাইসেন্সিং সার্ভার দ্বারা প্রদত্ত সেটিংস ব্যবহার করে (যেমন ব্যবহারকারী যখন বিমানে থাকে)। বেশিরভাগ অ্যাপ্লিকেশনের জন্য,ServerManagedPolicy
ব্যবহার করার জন্য অত্যন্ত সুপারিশ করা হয়। -
StrictPolicy
- একটি বিধিনিষেধমূলক
Policy
যা কোনো প্রতিক্রিয়া ডেটা ক্যাশে করে না এবং সার্ভার লাইসেন্সকৃত প্রতিক্রিয়া প্রদান করলেই অ্যাপ্লিকেশন অ্যাক্সেসের অনুমতি দেয়।
LVL Android SDK-এর ডাউনলোডযোগ্য প্যাকেজ হিসাবে উপলব্ধ। প্যাকেজটিতে LVL এবং একটি উদাহরণ অ্যাপ্লিকেশন উভয়ই রয়েছে যা দেখায় যে কীভাবে লাইব্রেরি আপনার অ্যাপ্লিকেশনের সাথে একীভূত করা উচিত এবং কীভাবে আপনার অ্যাপ্লিকেশনটি প্রতিক্রিয়া ডেটা, UI মিথস্ক্রিয়া এবং ত্রুটির শর্তগুলি পরিচালনা করা উচিত।
LVL উত্সগুলি একটি Android লাইব্রেরি প্রকল্প হিসাবে সরবরাহ করা হয়েছে, যার অর্থ হল আপনি লাইব্রেরি উত্সগুলির একটি একক সেট বজায় রাখতে এবং একাধিক অ্যাপ্লিকেশন জুড়ে সেগুলি ভাগ করতে পারেন৷ SDK-এর মাধ্যমে একটি সম্পূর্ণ পরীক্ষার পরিবেশও পাওয়া যায়, তাই আপনি আপনার অ্যাপ্লিকেশানগুলি প্রকাশ করার আগে লাইসেন্স প্রয়োগের বিকাশ এবং পরীক্ষা করতে পারেন, এমনকি যদি আপনার কাছে কোনও শারীরিক ডিভাইসে অ্যাক্সেস না থাকে।
প্রয়োজনীয়তা এবং সীমাবদ্ধতা
Google Play লাইসেন্সিং এমনভাবে ডিজাইন করা হয়েছে যাতে আপনি Google Play এর মাধ্যমে প্রকাশ করেন এমন অ্যাপ্লিকেশনগুলিতে লাইসেন্স নিয়ন্ত্রণ প্রয়োগ করতে পারেন৷ পরিষেবাটি এমনভাবে ডিজাইন করা হয়নি যাতে আপনি এমন অ্যাপ্লিকেশনগুলিতে অ্যাক্সেস নিয়ন্ত্রণ করতে পারেন যা Google Play এর মাধ্যমে প্রকাশিত হয় না বা যেগুলি Google Play ক্লায়েন্ট অফার করে না এমন ডিভাইসগুলিতে চালিত হয়৷
আপনার আবেদনে লাইসেন্সিং প্রয়োগ করার সময় এখানে কিছু বিষয় মাথায় রাখতে হবে:
- একটি অ্যাপ্লিকেশন শুধুমাত্র তখনই পরিষেবাটি ব্যবহার করতে পারে যখন Google Play ক্লায়েন্ট তার হোস্ট ডিভাইসে ইনস্টল করা থাকে এবং ডিভাইসটি Android 1.5 (API লেভেল 3) বা তার বেশি চলমান থাকে।
- লাইসেন্স চেক সম্পূর্ণ করতে, লাইসেন্সিং সার্ভারটি অবশ্যই নেটওয়ার্কের মাধ্যমে অ্যাক্সেসযোগ্য হতে হবে। নেটওয়ার্ক সংযোগ না থাকলে আপনার অ্যাপ্লিকেশানে অ্যাক্সেস পরিচালনা করতে আপনি লাইসেন্স ক্যাশিং আচরণগুলি প্রয়োগ করতে পারেন৷
- আপনার অ্যাপ্লিকেশনের লাইসেন্সিং নিয়ন্ত্রণের নিরাপত্তা শেষ পর্যন্ত আপনার বাস্তবায়নের নকশার উপর নির্ভর করে। পরিষেবাটি বিল্ডিং ব্লকগুলি সরবরাহ করে যা আপনাকে নিরাপদে লাইসেন্সিং পরীক্ষা করতে দেয়, তবে লাইসেন্সের প্রকৃত প্রয়োগ এবং পরিচালনার বিষয়গুলি আপনার উপর নির্ভর করে। নিম্নলিখিত নথিগুলির সর্বোত্তম অনুশীলনগুলি অনুসরণ করে, আপনি নিশ্চিত করতে সাহায্য করতে পারেন যে আপনার বাস্তবায়ন নিরাপদ হবে৷
- একটি অ্যাপ্লিকেশানে লাইসেন্স যোগ করা Google Play অফার করে না এমন একটি ডিভাইসে চালানোর সময় অ্যাপ্লিকেশনটির কার্যকারিতাকে প্রভাবিত করে না৷
- আপনি একটি বিনামূল্যের অ্যাপের জন্য লাইসেন্সিং নিয়ন্ত্রণ প্রয়োগ করতে পারেন, কিন্তু শুধুমাত্র যদি আপনি APK সম্প্রসারণ ফাইলগুলি প্রদান করতে পরিষেবাটি ব্যবহার করছেন৷
অনুলিপি সুরক্ষা জন্য প্রতিস্থাপন
Google Play লাইসেন্সিং আপনার অ্যাপ্লিকেশনগুলিতে অ্যাক্সেস নিয়ন্ত্রণ করার জন্য একটি নমনীয়, সুরক্ষিত প্রক্রিয়া৷ এটি কার্যকরভাবে অনুলিপি সুরক্ষা ব্যবস্থা (আর সমর্থিত নয়) প্রতিস্থাপন করে যা আগে Google Play-তে দেওয়া হয়েছিল এবং আপনাকে আপনার অ্যাপ্লিকেশনগুলির জন্য বিস্তৃত বিতরণের সম্ভাবনা দেয়৷
লাইসেন্সিং আপনাকে লাইসেন্স-ভিত্তিক মডেলে যেতে দেয় যা Google Play-তে অ্যাক্সেস আছে এমন সমস্ত ডিভাইসে প্রয়োগযোগ্য। অ্যাক্সেস হোস্ট ডিভাইসের বৈশিষ্ট্যের সাথে আবদ্ধ নয়, তবে Google Play-তে আপনার অ্যাপ্লিকেশন (অ্যাপের সর্বজনীন কী-এর মাধ্যমে) এবং আপনার সংজ্ঞায়িত লাইসেন্সিং নীতিতে। আপনার অ্যাপ্লিকেশনটি SD কার্ড সহ যেকোন স্টোরেজের যেকোন ডিভাইসে ইনস্টল এবং পরিচালনা করা যেতে পারে।
যদিও কোনো লাইসেন্স প্রক্রিয়া সম্পূর্ণরূপে সমস্ত অননুমোদিত ব্যবহারকে প্রতিরোধ করতে পারে না, লাইসেন্সিং পরিষেবা আপনাকে লক বা আনলক করা সমস্ত সামঞ্জস্যপূর্ণ ডিভাইস জুড়ে বেশিরভাগ ধরণের স্বাভাবিক ব্যবহারের জন্য অ্যাক্সেস নিয়ন্ত্রণ করতে দেয়।
আপনার অ্যাপ্লিকেশনে অ্যাপ্লিকেশন লাইসেন্স যোগ করা শুরু করতে, লাইসেন্সিং এর জন্য সেট আপ চালিয়ে যান।