নিয়ারবাই কানেকশন হল একটি পিয়ার-টু-পিয়ার নেটওয়ার্কিং API যা অ্যাপকে নেটওয়ার্ক কানেক্টিভিটি না থাকলেও রিয়েল-টাইমে আশেপাশের ডিভাইস সহজে খুঁজতে, কানেক্ট করতে ও ডেটা আদান-প্রদান করতে অনুমতি দেয়।
ব্যবহারের কিছু উদাহরণ:
- কোলাবরেটিভ হোয়াইটবোর্ড: শেয়ার করা ভার্চুয়াল হোয়াইটবোর্ডে আশেপাশের অংশগ্রহণকারীদের সাথে আইডিয়া লিখে রাখুন।
- লোকাল মাল্টিপ্লেয়ার গেমিং: মাল্টিপ্লেয়ার গেম সেট-আপ করুন এবং আশেপাশের অন্যান্য ব্যবহারকারীদের যোগ দেওয়ার জন্য আমন্ত্রণ জানান।
- মাল্টি-স্ক্রিন গেমিং: Android TV-এর মতো কাছাকাছি থাকা বড় স্ক্রিনের Android ডিভাইসে দেখানো গেম খেলতে, গেম কন্ট্রোলার হিসেবে ফোন বা ট্যাবলেট ব্যবহার করুন।
- অফলাইন ফাইল ট্রান্সফার: নেটওয়ার্ক কানেকশন ছাড়াই ফটো, ভিডিও বা অন্য যেকোনও ধরনের ডেটা দ্রুত শেয়ার করুন।
ভূমিকা
'নিয়ারবাই কানেকশন' সম্পূর্ণ অফলাইন পিয়ার-টু-পিয়ার পদ্ধতিতে আশেপাশের ডিভাইসের মধ্যে বিজ্ঞাপন, আবিষ্কার ও কানেকশন চালু করে। ডিভাইসের মধ্যে কানেকশন হাই-ব্যান্ডউইথ, লো-লেটেন্সি এবং সম্পূর্ণ এনক্রিপ্ট করা হয় যাতে দ্রুত, সুরক্ষিত ডেটা ট্রান্সফার করা যায়।
এই API-এর প্রাথমিক লক্ষ্য হল এমন একটি প্ল্যাটফর্ম প্রদান করা যা সহজ, নির্ভরযোগ্য এবং পারফর্ম্যান্ট। এই API, ব্লুটুথ, BLE ও ওয়াই-ফাই প্রযুক্তির কম্বিনেশন ব্যবহার করে, যার ফলে প্রতিটি প্রযুক্তির দুর্বলতা এড়িয়ে তাদের সুবিধাগুলি কাজে লাগানো যায়। এটি বিভিন্ন প্ল্যাটফর্ম এবং OS ভার্সন জুড়ে ব্লুটুথ এবং ওয়াই-ফাইয়ের অনিশ্চয়তাকে কার্যকরভাবে বিমূর্ত করে, যা ডেভেলপারদের তাদের ব্যবহারকারীদের জন্য গুরুত্বপূর্ণ ফিচারগুলিতে মনোনিবেশ করতে দেয়।
API ওভারভিউ
API-এর ব্যবহার দুটি পর্যায়ে বিভক্ত: কানেকশন করার আগে এবং কানেকশন করার পরে।
কানেকশন হওয়ার আগের পর্যায়ে, বিজ্ঞাপনদাতারা নিজেদের বিজ্ঞাপন দেন, অন্যদিকে ডিসকভারাররা আশেপাশের বিজ্ঞাপনদাতাদের খুঁজে বের করেন এবং কানেকশনের অনুরোধ পাঠান। একজন ডিসকভারার থেকে একজন বিজ্ঞাপনদাতার কাছে একটি কানেকশন অনুরোধ একটি সিমেট্রিক যাচাইকরণ ফ্লো শুরু করে যার ফলে উভয় পক্ষ স্বাধীনভাবে কানেকশন অনুরোধ গ্রহণ (বা প্রত্যাখ্যান) করে।
দুই পক্ষ কানেকশনের অনুরোধ গ্রহণ করলে, কানেকশন তৈরি হয়েছে বলে ধরে নেওয়া হয় এবং ডিভাইসগুলি পোস্ট-কানেকশন ফেজে প্রবেশ করে, যার মধ্যে দুই পক্ষ ডেটা আদান-প্রদান করতে পারে।
বিজ্ঞাপন ও ডিসকভারি
বিজ্ঞাপনদাতারা অন্যান্য ডিসকভারারদের কাছে দৃশ্যমান হবেন এবং নতুন বিজ্ঞাপনদাতা পাওয়া গেলে বা হারিয়ে গেলে ডিসকভারারদের বিজ্ঞপ্তি দেওয়া হবে।
কানেকশন স্থাপন করা হচ্ছে
আশেপাশের কোনও বিজ্ঞাপনদাতার সাথে ডিসকভারার কানেক্ট করতে চাইলে, ডিসকভারার কানেকশনের জন্য অনুরোধ করতে পারেন।
কানেকশন শুরু করার প্রসেস সম্পর্কে দুই পক্ষকেই বিজ্ঞপ্তি পাঠানো হবে এবং দুই পক্ষের কাছেই কানেকশন গ্রহণ বা বাতিল করার সুযোগ থাকবে।
উভয় পক্ষ উত্তর দেওয়ার পরে, প্রত্যেককে ফলাফল সম্পর্কে জানানো হবে। উভয় পক্ষ কানেকশন গ্রহণ করলে, কানেকশনটি প্রতিষ্ঠিত হয়েছে বলে বিবেচনা করা হয় এবং তারপর ডেটা ট্রান্সফার শুরু হতে পারে।
ডেটা এক্সচেঞ্জ করা
কানেকশন তৈরি হয়ে যাওয়ার পরে, API-এর পরবর্তী ব্যবহার সিমেট্রিক্যাল হয়, তাই বিজ্ঞাপনদাতা ও ডিসকভারারের মধ্যে আর কোনও পার্থক্য থাকে না।
উভয় পক্ষই এখন ডেটা এক্সচেঞ্জ করতে পারবে। ৩ ধরনের পেলোড কাজ করে:
- বাইট: বাইট অ্যারে ৩২k-তে সীমিত; এগুলি মেটাডেটা বা কন্ট্রোল মেসেজের মতো জিনিস পাঠানোর জন্য ভাল।
- ফাইল: যেকোনও সাইজের ফাইল; এগুলি অ্যাপ থেকে নেটওয়ার্ক ইন্টারফেসে ট্রান্সফার করা হয় এবং প্রসেস বাউন্ডারি জুড়ে ন্যূনতম কপি করা হয়।
- স্ট্রিম: ডেটার একটি স্ট্রিম যা ফ্লাইতে তৈরি হয়, যেমন রেকর্ড করা অডিও/ভিডিওর ক্ষেত্রে, যার চূড়ান্ত সাইজ আগে থেকে জানা যায় না।
নতুন ইনকামিং ডেটা এবং কোনও প্রোগ্রেস আপডেট, বাতিলকরণ বা ব্যর্থতা সম্পর্কে প্রাপকদের জানানো হবে।
তৈরি করা কানেকশন সম্পূর্ণ-ডুপ্লেক্স, যার অর্থ হল বিজ্ঞাপনদাতা এবং ডিসকভারার একই সাথে ডেটা পাঠাতে এবং গ্রহণ করতে পারে।
ডেটা সংগ্রহ
Google Play পরিষেবা 'আশেপাশে' SDK ব্যবহার করার সময়, অভিজ্ঞতা উন্নত করতে ব্যবহারের অ্যানালিটিক্স সংগ্রহ করা হয়।
- পারফর্ম্যান্স মেট্রিক: Nearby SDK ব্যবহার করে ডিভাইস স্ক্যান ও কানেক্ট করার সময় ডিসকভারি ও কানেকশন লেটেন্সি, নির্ভরযোগ্যতা ও থ্রুপুট সংক্রান্ত ডেটা সংগ্রহ করা হয়।
- ডিভাইস সংক্রান্ত তথ্য: ডিভাইস মডেল, দেশ, বিল্ড ভার্সন এবং অ্যাপ্লিকেশন প্যাকেজের নাম সংগ্রহ করা হয় এবং অঞ্চল ও ডিভাইস-নির্দিষ্ট স্লাইস শনাক্ত করতে পারফর্ম্যান্স মেট্রিকের সাথে যুক্ত করা হয়।
ব্যবহারকারীরা সেটিংস > Google > ব্যবহার ও ডায়াগনস্টিক বিকল্পে গিয়ে এই ডেটা সংগ্রহ করার অনুমতি দিতে বা তা প্রত্যাখ্যান করতে পারবেন।