AAOS SDV একটি পরিষেবা-ভিত্তিক এবং ডেটা-কেন্দ্রিক আর্কিটেকচার প্রদান করে। ব্যবহারকারীরা ভেহিকেল সার্ভিসেস ইন্টারফেস ডেফিনিশন ল্যাঙ্গুয়েজ (VSIDL)-এর সহায়তায় মিডলওয়্যার ক্লায়েন্ট লাইব্রেরির মাধ্যমে সিস্টেমের সাথে যোগাযোগ করে। এটি নিম্ন-স্তরের অবকাঠামোগত বিবরণ গোপন রাখে, যার ফলে ডেভেলপাররা উচ্চ-স্তরের যোগাযোগ এবং ডেপ্লয়মেন্ট এনটিটিগুলোর উপর মনোযোগ দিতে পারেন।
যোগাযোগের মডেল
SDV-তে যৌক্তিক যোগাযোগ টপিক এবং চ্যানেলের মাধ্যমে সংজ্ঞায়িত করা হয়।
বিষয়সমূহ
টপিকগুলো ডেটা-কেন্দ্রিক যোগাযোগের (প্রকাশ/সাবস্ক্রাইব) জন্য ব্যবহৃত হয়। ব্যবহারকারীরা নির্দিষ্ট প্রকাশক খুঁজে বের করার পরিবর্তে, নামযুক্ত টপিকে প্রকাশিত বার্তাগুলোর সাথে মিথস্ক্রিয়া করে।
- শনাক্তকারী: একটি বিষয় একটি অনন্য স্ট্রিং দ্বারা শনাক্ত করা হয়।
- ডেটা টাইপ: একটি টপিকে প্রকাশিত মেসেজগুলো প্রোটোবাফ ব্যবহার করে সংজ্ঞায়িত করা হয়।
- বিচ্ছিন্নতা: গ্রাহকরা বার্তার ধরন এবং টপিকের নাম নিয়ে আগ্রহী হন, প্রকাশকের পরিচয় বা অবস্থান নিয়ে নয়। একাধিক প্রকাশক একই টপিকে প্রকাশ করতে পারেন, যা বহু-থেকে-বহু যোগাযোগ সক্ষম করে।
চ্যানেল
রিমোট প্রসিডিউর কল (RPC) ভিত্তিক যোগাযোগের জন্য চ্যানেল ব্যবহার করা হয়। ব্যবহারকারীরা কোন সার্ভার অনুরোধটি পরিচালনা করছে তা না জেনেই একটি নির্দিষ্ট চ্যানেলে সার্ভিস মেথড কল করেন।
- শনাক্তকারী: একটি চ্যানেলকে একটি অনন্য নাম দ্বারা শনাক্ত করা হয় (উদাহরণস্বরূপ,
main-control)। - পরিষেবার ধরণ: RPC পরিষেবাগুলি তাদের সম্পূর্ণ যোগ্যতাসম্পন্ন প্রোটোবাফ পরিষেবার নাম দ্বারা চিহ্নিত করা হয়।
- বিমূর্ততা: মিডলওয়্যারটি একটি নির্দিষ্ট পরিষেবা এবং চ্যানেলের জন্য উপযুক্ত সার্ভার ইনস্ট্যান্স খুঁজে বের করার কাজটি পরিচালনা করে।
স্থাপন এবং জীবনচক্র
এই বিভাগের সত্তাগুলো নির্ধারণ করে যে, SDV পরিবেশে সফটওয়্যার কীভাবে প্যাকেজ, অনুমোদিত এবং ইনস্ট্যানশিয়েট করা হয়।
পরিষেবা বান্ডেল
একটি সার্ভিস বান্ডেল হলো সম্পর্কিত ব্যবসায়িক যুক্তির একটি সমষ্টি যা দুটি প্রধান ভূমিকা পালন করে:
- ডেপ্লয়মেন্টের একক: সার্ভিস বান্ডেলগুলো একটি SDV প্যাকেজের অংশ হিসেবে ডেপ্লয় করা হয়, যা একটি APEX ফাইল এবং সফটওয়্যার আপডেটেবিলিটির ক্ষুদ্রতম একক।
- প্রতিটি সার্ভিস বান্ডেল রান টাইমে একটি SDV VM- এর একটিমাত্র লিনাক্স প্রসেসের সাথে স্বতন্ত্রভাবে ম্যাপ করা থাকে এবং এটিকে সার্ভিস বান্ডেল ইনস্ট্যান্স বলা হয়।
- সার্ভিস বান্ডেলগুলো SDV প্যাকেজ ম্যানিফেস্টে উল্লেখ করা থাকে, যেটিতে নাম এবং অনুমোদন নীতিমালার মতো মেটাডেটা অন্তর্ভুক্ত থাকে।
- অনুমোদনের একক: সম্পূর্ণ পরিষেবা বান্ডেলের জন্য অনুমতি প্রদান করা হয়। একটি পরিষেবা বান্ডেল নিম্নলিখিতগুলির জন্য অনুমোদিত:
- (একটি নির্দিষ্ট বার্তা প্রকারের জন্য) নির্দিষ্ট বিষয় প্রকাশ করুন বা সেগুলিতে সাবস্ক্রাইব করুন।
- (একটি নির্দিষ্ট পরিষেবার ধরনের জন্য) নির্দিষ্ট চ্যানেলগুলিতে পরিষেবা দিন বা সেগুলিকে কল করুন।
পরিষেবা বান্ডেল ইনস্ট্যান্স
একটি সার্ভিস বান্ডেল ইনস্ট্যান্স হলো কোনো সার্ভিস বান্ডেলের একটি রানটাইম-লোডেড ইনস্ট্যান্স।
- প্রতিটি সার্ভিস বান্ডেল ইনস্ট্যান্সকে এসডিভি লাইফসাইকেল ম্যানেজার (এলসিএম) দ্বারা স্বতন্ত্রভাবে ট্র্যাক ও শনাক্ত করা হয়।
- সার্ভিস বান্ডেল ইনস্ট্যান্স চালু হওয়ার প্রক্রিয়াটি এসডিভি অর্কেস্ট্রেটর দ্বারা চালিত হয় এবং এসডিভি এলসিএম দ্বারা তা শুরু ও ট্র্যাক করা হয়।
এসডিভি প্যাকেজ
একটি SDV প্যাকেজ হলো সফটওয়্যার আপডেটেবিলিটির ক্ষুদ্রতম একক এবং:
- একটি অ্যান্ড্রয়েড পনি এক্সপ্রেস (APEX) ফাইল।
- এতে এক বা একাধিক পরিষেবা বান্ডেল রয়েছে।
- একবারে আপডেট করা হয়, যার অর্থ হলো একটি SDV প্যাকেজের অন্তর্গত সমস্ত সার্ভিস বান্ডেল একবারে আপডেট করা হয়।
একটি SDV প্যাকেজের সমস্ত কোড একই নির্ভরযোগ্য উৎস (একই সফটওয়্যার প্রকাশক) থেকে আসে।
বিভিন্ন SDV VM-এ একই SDV প্যাকেজের বিভিন্ন সংস্করণ থাকতে পারে।
বাস্তবায়নের বিবরণ
নিম্নলিখিত বিভাগগুলিতে SDV পরিবহন স্তরের বাস্তবায়নের বিশদ বিবরণ দেওয়া হয়েছে।
পটভূমি: পরিষেবা ইউনিট
যদিও ডেভেলপাররা প্রাথমিকভাবে টপিক এবং চ্যানেলের সাথে ইন্টারঅ্যাক্ট করে, এসডিভি কমস স্ট্যাকের মধ্যে রেজিস্ট্রেশন এবং ডিসকভারির মূল প্রক্রিয়া হিসেবে সার্ভিস ইউনিটগুলোই কাজ করে।
একটি সার্ভিস ইউনিট একটি একক এন্ডপয়েন্টকে প্রতিনিধিত্ব করে, যেমন একটি RPC সার্ভার বা একটি পাবলিশার। মিডলওয়্যার ক্লায়েন্ট লাইব্রেরি ( mw::clientlib ) নেপথ্যে এই সার্ভিস ইউনিটগুলির রেজিস্ট্রেশন এবং ডিসকভারি পরিচালনা করে।