অ্যাপ আর্কিটেকচার

ওপেন ওয়েব অ্যাপ প্রকল্প নিচের বিষয়গুলো নিয়ে তৈরিঃ

  • ওয়েব-সার্ভার থেকে ইন্সটল করা

  • ওয়েব রানটাইম

  • সাথেই দিয়ে দেওয়া অ্যাপ-বান্ধব সার্ভিসগুলো

ওয়েব সার্ভার থেকে ইন্সটল করা

যেই সার্ভারে হোস্ট করা আছে সেই সার্ভার থেকে অথবা কোন স্টোর (অনলাইন দোকান) থেকে অ্যাপ ইন্সটল করা যাবে। মজিলা ২০১২ সালে পরীক্ষামূলকভাবে ফায়ারফক্স মার্কেটপ্লেস আমাদের সামনে নিয়ে আসে। এছাড়া অন্যান্য তৃতীয় পক্ষও যাতে স্টোর পরিচালনা করতে পারে সে ব্যবস্থাও রাখা হয়েছে। ওয়াপ বিনামূল্যে অথবা বিক্রি করা যেতে পারে। শুধুমাত্র যারা কিনেছে তারাই যাতে অ্যাপটি চালাতে পারে তা যাচাই করার সুযোগ আছে। ফায়ারফক্স মার্কেটপ্লেস এই ব্যাপারটি সমর্থন করবে।

ফায়ারফক্স মার্কেটপ্লেস যা যা সমর্থন করবেঃ

  • ডেভেলপাররা একটি মেনিফেস্ট বা অ্যাপ-বৃত্তান্ত ফাইলের ঠিকানা বলে দেওয়ার মাধ্যমে HTML5-ভিত্তিক অ্যাপ জমা দিতে পারবেন।
  • ডেভেলপাররা অ্যাপের মূল্য নির্ধারণ করে দিতে পারবেন।
  • ব্যবহারকারীরা ডিজিটাল রিসিপ্ট এর মাধ্যমে তাদের একাউন্টের অ্যাপগুলো ইন্সটল করতে পারবেন।
  • ব্যবহারকারীর রিসিপ্ট অ্যাপ রানটাইমে যাচাই করতে পারবে। এই পদ্ধতির সাহায্যে টাকা ফেরত এবং নিয়ন্ত্রিত লেনদেন ইত্যাদিও সমর্থন করা যায়।

ওয়েব রানটাইম

যেকোন আধুনিক ব্রাউজার ব্যবহার করে অ্যাপ চালানো গেলেও বেশিরভাগ ব্যবহারকারী-ই অ্যাপ ব্যবহারের সময় "নেটিভ" বা তার ডিভাইসের উপযোগী অভিজ্ঞতা পেতে চান, আর এটা ওয়েব অ্যাপের বেলায়ও সত্য। আর ওপেন ওয়েব অ্যাপের জন্য এই সুবিধাটি যে দেয় তাকেই বলা হয় ওয়েব রানটাইম। এখন ফায়ারফক্সের কিছু কিছু প্রি-রিলিজ বা মূল সংস্করণের আগে বের হওয়া সংস্করণগুলোতে এই ওয়েব রানটাইমের সুবিধা দেওয়া থাকে, তাই আপনাকে সেই সংস্করণগুলো ব্যবহার করতে হবে। যখন আপনি অ্যাপ চালু করবেন তখন ফায়ারফক্স ব্রাউজার হিসেবে আপনার সামনে হাজির হবে না, অ্যাপের পেছনে ব্যাকগ্রাউন্ডে চলতে থাকবে ওয়েব রানটাইম সুবিধা দেওয়ার জন্য।

ওয়েব রানটাইমঃ

  • নেটিভ অপারেটিং সিস্টেমে অ্যাপ চালু করার আইকন ইন্সটল করে দেয়।
  • কোন অ্যাপ যাচাই করার পর ফ্রেম ছাড়া উইন্ডোতে অ্যাপটি চালু করতে পারে।
  • অন্য সব অ্যাপ্লিকেশনের মতই ওয়েব অ্যাপটিকে একটি running অ্যাপ হিসেবে গণ্য করা হয় (যার ফলে অ্যাপ্লিকেশন সুইচ করা এবং মনিটরিং প্রত্যাশা-মতই কাজ করে)।
  • ডিভাইসের ক্ষমতা ব্যবহার করতে দেয়। WebAPI প্রকল্পের মাধ্যমে এসব API যাতে সরাসরি Gecko (ওয়েব রানটাইম ধারণকারী ফায়ারফক্স লে-আউট ইঞ্জিন) তে কাজ করতে পারে সে লক্ষে কাজ করছে।
  • ঝামেলা ছাড়া অ্যাপ ব্যবহার করাটা নিশ্চিত করে। যদি অ্যাপের কোন রিসিপ্ট থাকে তাহলে অ্যাপটি চালু করলে রিসিপ্ট টি বৈধ কিনা যাচাই করা হয়।

ফায়ারফক্সের ভবিষ্যৎ সংস্করণে ওয়েব রানটাইম থাকবে। আপনি এখন (সেপ্টেম্বর ২০১২) উইন্ডোজে এবং ম্যাকে ফায়ারফক্স বেটা এবং এন্ড্রয়েডে ফায়ারফক্স অরোরা (বেটার আগের সংস্করণ) ব্যবহার করে দেখতে পারেন। এছাড়া এটি ফায়ারফক্স ওএস এ আছেই।

ফায়ারফক্স ওএস এবং ওয়েব রানটাইম User Agent এর একই মাণ ব্যবহার করে, তাই আপনি এই মাণ পরীক্ষা করে (UA sniffing) বুঝতে পারবেন না আপনার অ্যাপ ওয়েব রানটাইমে চলছে কিনা। এটা সনাক্ত করতে চাইলে দেখুনঃ কীভাবে বুঝব আমার অ্যাপ ওয়েব রানটাইম ব্যবহার করে চলছে কিনা?

ওয়েব রানটাইমের প্রোগ্রামিং ইন্টারফেইস হল navigator.mozApps জাভাস্ক্রিপ্ট API.

ওয়েব রানটাইমে ওয়েবপেইজ দেখানো

ব্রাউজারে কোন পেইজ দেখানো আর রানটাইমে দেখানোর মধ্যে কিছু পার্থক্য আছে। অ্যাপ ডিজাইন করার সময় নিচের বিষয়গুলো মাথায় রাখুনঃ

  • যেকোন URL-ই অ্যাপে দেখানো যাবে, এমনকি URL এর অরিজিন আপনার অ্যাপের অরিজিন আলাদা হলেও। তাই আপনি অ্যাপ থেকে ব্যবহারকারীকে এমন কোন ওয়েবসাইটে পাঠিয়ে দিতে পারেন যেখান থেকে ব্যবহারকারী আর আপনার অ্যাপে ফেরত আসতে পারবে না, অ্যাপ বন্ধ করে আবার চালু করা ছাড়া। তাই অ্যাপে এক পাতা থেকে আরেক পাতায় নেভিগেট করার ব্যবস্থা রাখতে হবে।
  • অ্যাপে ব্যবহার করা বেশিরভাগ লিঙ্ক অ্যাপেই ওপেন করা হবে।
  • তবে <a target="_blank" href="...">  এমন কোড লিখে দিলে সেই লিঙ্কে ক্লিক করলে অ্যাপের বাইরে, নতুন (ডিফল্ট) ব্রাউজারে লিঙ্ক টি দেখানো হবে।
  • window.open(url) এই কোড কল করলে অ্যাপের ভেতরেই URL টি দেখানো হবে।
  • window.open(url, "_blank") ও অ্যাপের ভেতরেই দেখানো হয় (তবে এই আচরণ ভবিষ্যতে বদলাতে পারে)।

অবসরে যাওয়া ওয়েব রানটাইমগুলো

আগের একটি ওয়েব রানটাইম যা কিনা ফায়ারফক্সে এক্সটেনশন হিসেবে ব্যবহার করা যে (Mozilla Labs App Runtime for Firefox) তা এখন আর নাই। এন্ড্রয়েডের জন্য আগের একটি ওয়েব রানটাইম যা PhoneGap ব্যবহার করত (Soup নামেও পরিচিত) সেটিও এখন অবসরে। একটি HTML5 JavaScript shim ওয়েব রানটাইম যা আগে পাওয়া যেত সেটিও এখন ব্যবহার করতে নিরুৎসাহিত করা হয়।

সাথেই দেওয়া অ্যাপ-বান্ধব সার্ভিসগুলো

অ্যাপ ইকোসিস্টেমকে সমর্থন করার জন্য মজিলা কিছু সার্ভিস আমাদের সরবরাহ করে।

পার্সোনা (Persona)

অনেকগুলো পদ্ধতিতেই অ্যাপ আর্কিটেকচার Persona সমর্থন করেঃ

  • পার্সোনা ব্যবহার করেই ডেভেলপার এবং ব্যবহারকারীরা মার্কেটপ্লেসে লগ ইন করেন।
  • ক্রেতার পার্সোনা আইডি'র সাথেই অ্যাপের রিসিপ্ট সংযুক্ত করে দেওয়া হয় (কেনা অ্যাপের বেলায়)
  • যেসব অ্যাপ পার্সোনাকে তাদের অ্যাপে সমর্থন করেন তারা নিমিষেই অ্যাপে ব্যবহারকারীকে সাইন-ইন করিয়ে ফেলতে পারেন।

অ্যাপ synchronization

মজিলা ক্লাউড-ভিত্তিক অ্যাপ সিংক্রোনাইজেশন সার্ভিস তৈরি করছে যার নাম Apps in the Cloud। এই সার্ভিস কোন ব্যবহারকারীর BrowserID পরিচয়ের (মজিলা ছাড়া অন্যান্য স্টোর যারা BrowserID সমর্থন করবে) সাথে সংযুক্ত সকল অ্যাপ-ক্রয়ের রিসিপ্ট জমা রাখতে পারবে। এছাড়া এটি ব্যবহারকারী'র সব ডিভাইসে রিসিপ্টগুলো synchronize করবে, তাই এক ডিভাইস ব্যবহার করে কেনা অ্যাপ অন্য ডিভাইসে আবার না কিনেও ব্যবহার করা যাবে।

ডকুমেন্ট ট্যাগ এবং অবদানকারী

 Contributors to this page: shafiul
 সর্বশেষ হালনাগাদ করেছেন: shafiul,