সেসব ওপেন-ওয়েব অ্যাপকে প্যাকেজড অ্যাপ বলা হয় যাদের সব রিসোর্স বা ফাইল/কোড (HTML, CSS, JavaScript, অ্যাপ মেনিফেস্ট এবং অন্যান্য ফাইল) একটি zip ফাইলে ব্যবহারকারীর কাছে পৌঁছে দেওয়া হয়, কোন ওয়েব সার্ভারে আপলোড করার পরিবর্তে। এই আর্টিকেলে প্যাকেজড অ্যাপের সাথে আপনাকে পরিচিত করা হবে এবং ডেভেলপার হিসেবে আপনার প্যাকেজড অ্যাপ নিয়ে যা যা জানা দরকার, সব তথ্যই এই পাতায় রয়েছে।
প্যাকেজড অ্যাপ হল ওপেন ওয়েব অ্যাপকে কার্যকর করার জন্য অ্যাপ ম্যানিফেস্ট (যা মূল ডিরেক্টরীতে থাকে) ফাইল সহ প্রয়োজনীয় সব উপাদানের একটি জিপ ফাইল। অ্যাপ ম্যানিফেস্ট মূলত অ্যাপটির বর্ননা , যেই আইকনের মাধ্যমে ইন্সটলকৃত অ্যাপটিকে চেনা যাবে এবং এরকম সকল বিষয়ের ধারণা প্রদান করে। তারপর , এই প্যাকেজটি অ্যাপকে ফায়ারফক্স ওএস ডিভাইস, অ্যান্ড্রয়েড ডিভাইস এবং ডেস্কটপ এ ইন্সটল করার কাজে ব্যবহৃত হয়। একবার ইন্সটল হওয়ার পর , অ্যাপটি ডিভাইসে চলতে শুরু করে কিন্তু তারপরেও এটি ওয়েব সার্ভারের ডাটাবেজের মত ওয়েবে থাকা রিসোর্স ব্যবহার করতে পারে।
প্যাকেজড অ্যাপ সাধারনত তিন রকমের হয়: ওয়েব অ্যাপ , প্রিভিলেজড অ্যাপ এবং সার্টিফায়েড অ্যাপ।প্যাকেজড অ্যাপ যেকোন ওপেন ওয়েব অ্যাপকে সরবরাহ করার কাজে ব্যবহার করা গেলেও , প্রিভিলেজড এবং সার্টিফায়েড অ্যাপসমূহে প্রিভিলেজড (বা সুবিধাভোগী) এবং সার্টিফায়েড (বা প্রত্যয়িত) এপিআই এর ব্যবহার নিশ্চিত করার জন্য অ্যাপসমূহ ডিজিটালভাবে সাইন করা থাকে। প্রিভিলেজড অ্যাপসমূহ মার্কেটপ্লেসে রিভিও প্রক্রিয়ার সময় সাইনড হয় আর সার্টিফায়েড অ্যাপসমূহ ডিভাইস ম্যানুফ্যাকচার অথবা অপারেটরদের দ্বারা সাইন করা হয়।
প্রিভিলেজড এবং সার্টিফায়েড এপিআই ব্যবহার করার ক্ষমতা ছাড়াও , প্যাকেজড অ্যাপসমূহ প্রথমবার চালু হওয়ার সময় খুব দ্রুত চালু হয় যেহেতু অ্যাপটির সকল উপাদান ইন্সটলেশনের পরে সেটের মধ্যেই রয়ে গেছে। এই সুবিধার কারণে ফায়ারফক্স ওএস ডিভাইস , অ্যান্ড্রয়েড ডিভাইস এবং ডেস্কটপ এ ওপেন ওয়েব অ্যাপকে বিতরণ করার জন্য প্যাকেজড অ্যাপের মাধ্যমে বিতরণ করার ব্যাপারে সুপারিশ করা হয়।
দ্রষ্টব্য : বর্তমানে ফায়ারফক্স মার্কেটপ্লেস শুধু ওয়েব এবং প্রিভিলেজড প্যাকেজড অ্যাপসমূহকেই সমর্থন করে। আর বিশেষ করে , ফায়ারফক্স মার্কেটপ্লেস ফায়ারফক্স ওএসের জন্য পেইড অ্যাপস এবং ফায়ারফক্স ওএস , ফায়ারফক্সের অ্যান্ড্রয়েড ও ডেস্কটপ সংস্করণের জন্য বিনামুল্যের প্যাকেজড অ্যাপসমূহকে সমর্থন করেI সকল প্লাটফর্মে যাতে পেইড অ্যাপস সহায়তা পাওয়া যায় , সেজন্য উন্নয়নের কাজ চলছে।
প্যাকেজড অ্যাপসের প্রকারভেদ
মূলত তিন ধরণের প্যাকেজড অ্যাপ রয়েছে: ওয়েব অ্যাপ , প্রিভিলেজড অ্যাপ এবং সার্টিফায়েড অ্যাপ। প্রত্যেক ধরণের প্যাকেজড অ্যাপই ফায়ারফক্স ওএসের মধ্যে বাস্তবায়িত অ্যাপ সিকিউরিটি মডেলের কোন না কোন একটি অংশের অনুরুপ। এই বিভাগটি প্রত্যকটি অ্যাপ সম্পর্কে আরো বিস্তারিত ধারণা দিবে ।
ওয়েব অ্যাপ
ওয়েব অ্যাপ হল সেই ধরণের অ্যাপ যেটি প্রিভিলেজড অথবা সার্টিফায়েড এপিআই ব্যবহার করে না। যখন মার্কেটপ্লেসে জমা দেয়া হয় , তখন অ্যাপটির প্যাকেজ সাইনকৃত অবস্থায় থাকে কিন্তু প্রিভিলেজড অথবা সার্টিফায়েড এপিআই এর জন্য যে বিশেষ অথেনটিকেশন প্রক্রিয়া ব্যবহৃত হয় তার ব্যবহার হয় না। প্রিভিলেজড এবং সার্টিফায়েড অ্যাপের জন্য প্রযোজ্য কন্টেন্ট নিরাপত্তা পলিসি (CSPs) এই ধরণের অ্যাপের জন্য প্রযোজ্য না।
এই ধরণের প্যাকেজ অ্যাপ এর জন্য manifest.webapp ফাইলের মধ্যে থাকা type
অংশের প্রয়োজন পরে না, কেননা টাইপ(ওয়েব) এর জন্য থাকা ডিফল্ট ভ্যালু হল ওয়েব অ্যাপ।
ওয়েব অ্যাপস নিজে নিজে প্রচার করা হতে পারে অথবা ফায়ারফক্স মার্কেটপ্লেসের মাধ্যমে বিতরণযোগ্য হতে পারে। হোস্টেড অ্যাপ পদ্ধতির মাধ্যমেও ওয়েব অ্যাপস প্রকাশ করা যায়।
সুবিধাভোগী (প্রিভিলেজড) অ্যাপ
সুবিধাভোগী অ্যাপ হল সেই ধরণের অ্যাপ যেটি প্রিভিলেজড এপিআই ব্যবহার করে এবং এই ধরণের অ্যাপ আই ওএস এবং অ্যান্ড্রয়েডের মত প্লাটফর্মের অ্যাপের সমমানের অ্যাপ হিসেবে বিবেচিত হতে পারে। যখন সুবিধাভোগী অ্যাপস ফায়ারফক্স মার্কেটপ্লেসে জমা দেয়া হয়, তখন এক বিশেষ প্রক্রিয়ায় এটিকে গ্রহণ করা হয়। এই প্রক্রিয়া অ্যাপটির ব্যবহারকারীকে নিশ্চিন্ত করে যে , এই অ্যাপটি নিরাপত্তা , গোপনীয়তা এবং ধারনক্ষমতার ব্যাপারে খুব যত্নের সাথে পরীক্ষা করে দেখা হয়েছে।
কোন অ্যাপ সুবিধাভোগী অ্যাপ কিনা তা বোঝাতে , অ্যাপটির manifest.webapp ফাইলের type
অংশটুকু যুক্ত করুন এবং এটিকে privileged
হিসেবে সেট করুন। আপনার অ্যাপের যতগুলো প্রিভিলেজড এপিআই ব্যবহার করা লাগতে পারে , তার প্রত্যেকটির কথা অ্যাপটির ম্যানিফেস্ট ফাইলের permissions
অংশে যুক্ত করতে হবে ।
ফায়ারফক্স ওএস এবং অ্যান্ড্রয়েড ও ডেস্কটপের জন্য কাজ করা ওয়েব রানটাইম প্রিভিলেজড অ্যাপসের জন্য এই সিএসপি টি প্রয়োগ করে :
"default-src *; script-src 'self'; object-src 'none'; style-src 'self' 'unsafe-inline'"
সুবিধাভোগী অ্যাপসমূহ শুধু ফায়ারফক্স মার্কেটপ্লেসের মাধ্যমেই বিতরণযোগ্য হতে পারে।
প্রত্যয়িত (সার্টিফায়েড) অ্যাপ
প্রত্যয়িত অ্যাপ সাধারণত তৃতীয় পক্ষের ডেভেলপারদের কাছে পাওয়া যাবে না এবং এই ধরণের অ্যাপ ফায়ারফক্স মার্কেটপ্লেসের মাধ্যমেও বিতরন করা হয় না। এপিআই কে সার্টিফাই করার পেছনে দীর্ঘমেয়াদি যে উদ্দেশ্য রয়েছে , তা হল এই প্রক্রিয়া আরো কঠিন করে তোলা যাতে করে তারা প্রিভিলেজড এপিআই হিসেবেও ব্যবহার হতে পারে। আপনি যদি কোন বিশেষ এপিআইকে সহজলভ্য হিসেবে দেখতে আগ্রহী থাকেন , তাহলে dev-webapps মেইলিং লিস্টে আপনার মতামত প্রদান করুন।
প্রত্যয়িত অ্যাপ হল মূলত সেই ধরণের অ্যাপ যেই অ্যাপ প্রত্যয়িত (সার্টিফায়েড) এপিআই ব্যবহার করে এবং সার্টিফায়েড এপিআই হল সেই এপিআই যা ডিফল্ট ডায়ালার বা ডিভাইসের মধ্যে থাকা সিস্টেম সেটিংস অ্যাপ বা এই ধরণের গুরুত্তপূর্ন সিস্টেম ফাংশনকে ব্যবহার করতে দেয়। সুবিধাভোগী অ্যাপের সাথে যদি আমরা তুলনা করি, প্রত্যয়িত অ্যাপের মধ্যে থাকা সব এপিআই এর অনুমতি ব্যবহারকারীর অনুমতি প্রদানের পুর্বেই দেয়া থাকে। কেননা কোন ডিভাইসের জন্য একটি প্রত্যয়িত অ্যাপকে OEM বা প্রস্তুতকারীর মাধ্যমে অনুমতি পেতে হয়।
কোন অ্যাপ প্রত্যয়িত অ্যাপ কিনা তা বোঝাতে , অ্যাপটির manifest.webapp ফাইলের type
অংশটুকু যুক্ত করুন এবং এটিকে certified হিসেবে সেট করুন। আপনার অ্যাপের যতগুলো প্রিভিলেজড এবং সার্টিফায়েড এপিআই ব্যবহার করা লাগতে পারে , তার প্রত্যেকটির কথা অ্যাপটির ম্যানিফেস্ট ফাইলের permissions
অংশে যুক্ত করতে হবে।
ফায়ারফক্স ওএস সার্টিফায়েড অ্যাপসের জন্য নিম্নের সিএসপি ব্যবহার করে :
"default-src *; script-src 'self'; object-src 'none'; style-src 'self'"
এটি মূলত সুবিধাভোগী অ্যাপসের তুলনায় প্রত্যয়িত অ্যাপসের উপর ইনলাইন সিএসপির ব্যাপারে কঠোর নিয়ম-নীতি আরোপের ফল। আপনি যদি এটি করার কারণ সম্পর্কে জানতে চান , তাহলে ডিফল্ট সিএসপি পলিসি এবং ৭৬৮০২৯ নং বাগ দেখুন।
প্রত্যয়িত অ্যাপসমূহ OEM এবং অপারেটরদের মাধ্যমে আগে থেকেই ডিভাইসে যুক্ত থাকে।
প্যাকেজড অ্যাপস পরীক্ষা করা
ফায়ারফক্স ওএস সিমুলেটর অথবা কোন একটি ডিভাইসে পরীক্ষা করার জন্য প্যাকেজড অ্যাপ ইন্সটল করতে চাইলে , অ্যাপ ম্যানেজার ব্যবহার করা নিবন্ধটি দেখুন। অথবা , আপনি চাইলে নিজে নিজেই অ্যাপ প্রকাশ করুন নিবন্ধের পদ্ধতি অনুসরণ করে যে কোন ওয়েব সার্ভার থেকে এটিকে একটি ডিভাইসে ইন্সটল করতে পারেন। মনে রাখবেন , যখন আপনি নিজে নিজে অ্যাপ পাবলিশ করবেন প্যাকেজড ওয়েব অ্যাপ শুধু তখনই ইন্সটল করা যাবে।
প্যাকেজড অ্যাপস পাবলিশ করা
প্যাকেজড অ্যাপস পাবলিশ করার জন্য আপনার কাছে দুটি উপায় আছে : ফায়ারফক্স মার্কেটপ্লেসে পাবলিশ করা অথবা নিজে নিজে পাবলিশ করা।
ফায়ারফক্স মার্কেটপ্লেসে পাবলিশ করা
ফায়ারফক্স মার্কেটপ্লেসে প্যাকেজড অ্যাপ জমা দেয়ার পদ্ধতি অ্যাপ পাবলিশ করা বিভাগে বর্ননা করা আছে।
যখন আপনি আপনার প্যাকেজড অ্যাপটি জমা দিবেন , এটার জিপ ফাইল মার্কেটপ্লেসের সার্ভারে জমা থাকে এবং আপনার প্যাকেজড অ্যাপের জিপ ফাইলের মধ্যে থাকা অ্যাপ মেনিফেস্টের উপর ভিত্তি করে মার্কেটপ্লেসটি mini-manifest নামের নতুন একটি মেনিফেস্ট তৈরি করবে। যখন একজন ব্যাবহারকারী আপনার অ্যাপটি ইন্সটল করবে, অ্যাপটি ইন্সটলের জন্য মিনি-মেনিফেস্টটি Apps.installPackage()
ফাংশনে চলে যাবে। ইন্সটলেশন এবং হালনাগাদ প্রক্রিয়ার জন্য মিনি-মেনিফেস্টটি থেকে যাবে কিন্তু যখন আপনার অ্যাপ যখন চলবে , তখন এটি কাজ করবে না।
নিজে নিজেই পাবলিশ করা
প্যাকেজড ওয়েব অ্যাপসমূহকে ফায়ারফক্স মার্কেটপ্লেসের বাইরে , নিজের ওয়েব সার্ভারেও পাবলিশ করা সম্ভব ।বিস্তারিত তথ্য নিজে নিজে অ্যাপস পাবলিশ করা নিবন্ধে দেয়া আছে।
প্যাকেজড অ্যাপসমূহ হালনাগাদ করা
অ্যাপসমূহকে হালনাগাদ করার ব্যাপারে আরো তথ্য পেতে , অ্যাপসমূহ হালনাগাদ করা নিবন্ধটি দেখুন।
আরো তথ্যসমূহ