Chrome ऐप्लिकेशन आर्किटेक्चर

Chrome Apps, उपयोगकर्ता के ऑपरेटिंग सिस्टम के साथ मिलकर काम करते हैं. इन्हें ब्राउज़र टैब के बाहर चलाए जाने के लिए डिज़ाइन किया गया है, ताकि ऑफ़लाइन और खराब कनेक्टिविटी की स्थितियों में भी अच्छी तरह काम किया जा सके. साथ ही, इनमें सामान्य वेब ब्राउज़िंग एनवायरमेंट की तुलना में कहीं ज़्यादा बेहतर क्षमताएं होती हैं. ऐप्लिकेशन कंटेनर, प्रोग्रामिंग, और सुरक्षा मॉडल, Chrome ऐप्लिकेशन की इन ज़रूरी शर्तों के साथ काम करते हैं.

ऐप्लिकेशन कंटेनर मॉडल

ऐप्लिकेशन कंटेनर, Chrome ऐप्लिकेशन के दिखने और लोड होने के तरीके के बारे में बताता है. Chrome ऐप्लिकेशन, पारंपरिक वेब ऐप्लिकेशन से अलग दिखते हैं, क्योंकि ऐप्लिकेशन कंटेनर कोई पारंपरिक वेब पेज यूज़र इंटरफ़ेस (यूआई) कंट्रोल नहीं दिखाता है; इसमें बस एक खाली आयताकार क्षेत्र होता है. इससे ऐप्लिकेशन को सिस्टम पर "नेटिव" ऐप्लिकेशन के साथ घुलने-मिलने में मदद मिलती है. साथ ही, यह उपयोगकर्ता को मैन्युअल तौर पर यूआरएल बदलकर ऐप्लिकेशन लॉजिक से "गड़बड़ी" करने से रोकता है.

Chrome ऐप्लिकेशन, वेब ऐप्लिकेशन की तुलना में अलग तरीके से लोड किए जाते हैं. दोनों में एक ही तरह का कॉन्टेंट लोड होता है: सीएसएस और JavaScript वाले एचटीएमएल दस्तावेज़. हालांकि, Chrome ऐप्लिकेशन को ऐप्लिकेशन कंटेनर में लोड किया जाता है, ब्राउज़र टैब में नहीं. साथ ही, ऐप्लिकेशन कंटेनर को किसी स्थानीय स्रोत से Chrome ऐप्लिकेशन का मुख्य दस्तावेज़ लोड करना होगा. इससे ऑफ़लाइन होने पर भी, सभी Chrome ऐप्लिकेशन कम से कम काम करते हैं. साथ ही, सख्त सुरक्षा उपायों को लागू करने के लिए जगह उपलब्ध कराती है.

ऐप्लिकेशन कंटेनर मॉडल के काम करने का तरीका

प्रोग्रामिंग मॉडल

प्रोग्रामिंग मॉडल, Chrome ऐप्स के लाइफ़साइकल और विंडो व्यवहार के बारे में बताता है. नेटिव ऐप्लिकेशन की तरह ही, इस प्रोग्रामिंग मॉडल का मकसद उपयोगकर्ताओं और उनके सिस्टम को ऐप्लिकेशन की लाइफ़साइकल पर पूरा कंट्रोल देना है. Chrome ऐप्लिकेशन का लाइफ़साइकल, ब्राउज़र विंडो के व्यवहार या नेटवर्क कनेक्शन पर निर्भर नहीं होना चाहिए.

"इवेंट पेज", उपयोगकर्ता के जेस्चर और सिस्टम इवेंट का जवाब देकर, Chrome ऐप्लिकेशन के लाइफ़साइकल को मैनेज करता है. यह पेज नहीं दिखता, यह सिर्फ़ बैकग्राउंड में मौजूद होता है. साथ ही, सिस्टम के रनटाइम की वजह से इसे अपने-आप बंद किया जा सकता है. यह कंट्रोल करता है कि विंडो कैसे खुले और बंद हों. साथ ही, यह भी कंट्रोल किया जाता है कि ऐप्लिकेशन कब शुरू या बंद किया जाए. Chrome ऐप्लिकेशन के लिए सिर्फ़ एक "इवेंट पेज" हो सकता है.

एक नज़र में ऐप्लिकेशन का लाइफ़साइकल

प्रोग्रामिंग मॉडल का इस्तेमाल करने के तरीके के बारे में ज़्यादा जानकारी के लिए, ऐप्लिकेशन की लाइफ़साइकल मैनेज करना लेख पढ़ें. यहां Chrome ऐप्लिकेशन के लाइफ़साइकल के बारे में खास जानकारी दी गई है, ताकि आप इसे शुरू कर सकें:

चरणखास जानकारी
इंस्टॉल करनाउपयोगकर्ता, ऐप्लिकेशन को इंस्टॉल करना चाहता है और अनुमतियां स्वीकार करता है.
स्टार्टअपइवेंट पेज लोड हो जाता है, 'लॉन्च' इवेंट ट्रिगर होता है, और ऐप्लिकेशन पेज विंडो में खुलते हैं. आप वे विंडो बनाएं जिनकी आपके ऐप्लिकेशन को ज़रूरत है, वे कैसे दिखते हैं, और वे इवेंट पेज और अन्य विंडो से किस तरह कम्यूनिकेट करते हैं.
समाप्तिउपयोगकर्ता, ऐप्लिकेशन को किसी भी समय बंद कर सकता है. साथ ही, ऐप्लिकेशन को तुरंत वापस पहले जैसा किया जा सकता है. डेटा छिपाने की सुविधा से डेटा खोने से बचा जा सकता है.
अपडेट करेंऐप्लिकेशन किसी भी समय अपडेट किए जा सकते हैं; हालांकि, Chrome ऐप्लिकेशन जिस कोड को चला रहा है उसे स्टार्टअप/खत्म करने की प्रक्रिया के दौरान बदला नहीं जा सकता.
अनइंस्टॉल करनाउपयोगकर्ता सक्रिय रूप से ऐप्लिकेशन अनइंस्टॉल कर सकता है. अनइंस्टॉल करने के बाद, एक्ज़ीक्यूट किया जा रहा कोड या निजी डेटा कहीं छूट नहीं जाता.

सुरक्षा का मॉडल

Chrome Apps का सुरक्षा मॉडल, यह पक्का करके उपयोगकर्ताओं की जानकारी को सुरक्षित रखता है कि उनकी जानकारी को सुरक्षित तरीके से मैनेज किया जाए. सीएसपी का पालन करें में, कॉन्टेंट की सुरक्षा नीति का पालन करने के तरीके की पूरी जानकारी शामिल है. यह नीति, क्रॉस-साइट स्क्रिप्टिंग की गड़बड़ियों को कम करने और उपयोगकर्ताओं को मैन-इन-द-मिडल अटैक से बचाने के लिए, खतरनाक स्क्रिप्टिंग को ब्लॉक करती है.

Chrome ऐप्लिकेशन के मुख्य पेज को स्थानीय तौर पर लोड करने से, वेब की तुलना में ज़्यादा सख्त सुरक्षा लागू की जा सकती है. Chrome एक्सटेंशन की तरह ही, उपयोगकर्ताओं को इंस्टॉल होने पर Chrome ऐप्लिकेशन पर भरोसा करने के लिए साफ़ तौर पर सहमति देनी होगी; वे ऐप्लिकेशन को अपना डेटा ऐक्सेस करने और उसका इस्तेमाल करने की अनुमति देते हैं. आपका ऐप्लिकेशन जिस भी एपीआई का इस्तेमाल करता है उसकी अपनी अनुमति होगी. Chrome ऐप्स का सुरक्षा मॉडल भी हर विंडो के आधार पर खास अधिकारों को अलग करने की सुविधा सेट अप करने की सुविधा देता है. इससे, आपको अपने ऐप्लिकेशन में उस कोड को छोटा करने में मदद मिलती है जिसके पास खतरनाक एपीआई का ऐक्सेस होता है. साथ ही, आप इस कोड का इस्तेमाल करते समय भी ऐसा कर सकते हैं.

Chrome Apps, Chrome एक्सटेंशन प्रक्रिया आइसोलेशन का दोबारा इस्तेमाल करता है और स्टोरेज और बाहरी सामग्री को अलग करके इस प्रक्रिया को एक कदम आगे ले जाता है. हर ऐप्लिकेशन का अपना स्टोरेज होता है और वह किसी अन्य ऐप्लिकेशन या वेबसाइट के निजी डेटा (जैसे, कुकी) को ऐक्सेस नहीं कर सकता. ऐप्लिकेशन में सभी बाहरी प्रोसेस शामिल नहीं होती हैं. iframe, आस-पास के पेज वाली प्रोसेस में ही चलते हैं, इसलिए उनका इस्तेमाल सिर्फ़ ऐप्लिकेशन के दूसरे पेजों को लोड करने के लिए किया जा सकता है. बाहरी कॉन्टेंट को एम्बेड करने के लिए, object टैग का इस्तेमाल किया जा सकता है. यह कॉन्टेंट, ऐप्लिकेशन से अलग प्रोसेस में चलता है.