वेबअसेम्ब्ली कंपोनेंट मॉडेलची क्षमता-आधारित सुरक्षा, परवानगी प्रणाली डिझाइन, फायदे आणि सुरक्षित, कंपोझेबल सॉफ्टवेअरसाठी त्याचे परिणाम जाणून घ्या.
वेबअसेम्ब्ली कंपोनेंट मॉडेल क्षमता-आधारित सुरक्षा: परवानगी प्रणालीच्या डिझाइनचा सखोल अभ्यास
वेबअसेम्ब्ली (WASM) हे वेब ब्राउझरपासून सर्व्हर-साइड वातावरणापर्यंत विविध प्लॅटफॉर्मवर उच्च-कार्यक्षमता असलेले ॲप्लिकेशन्स तयार करण्यासाठी एक शक्तिशाली तंत्रज्ञान म्हणून उदयास आले आहे. वेबअसेम्ब्ली कंपोनेंट मॉडेल हे आणखी एक पाऊल पुढे टाकते, ज्यामुळे कंपोझेबल आणि पुन्हा वापरता येण्याजोगे सॉफ्टवेअर कंपोनेंट्स तयार करणे शक्य होते. या मॉडेलचा एक महत्त्वाचा पैलू म्हणजे त्याची सुरक्षा रचना, जी क्षमता-आधारित सुरक्षा तत्त्वांचा वापर करते. हा लेख वेबअसेम्ब्ली कंपोनेंट मॉडेलच्या क्षमता-आधारित सुरक्षेचा सविस्तर शोध घेतो, ज्यामध्ये परवानगी प्रणालीच्या डिझाइनवर आणि सुरक्षित व मजबूत ॲप्लिकेशन्स तयार करण्यावर होणाऱ्या परिणामांवर लक्ष केंद्रित केले आहे.
वेबअसेम्ब्ली आणि कंपोनेंट मॉडेल समजून घेणे
सुरक्षा मॉडेलमध्ये खोलवर जाण्यापूर्वी, आपण वेबअसेम्ब्ली आणि कंपोनेंट मॉडेलची थोडक्यात व्याख्या करूया.
वेबअसेम्ब्ली (WASM): स्टॅक-आधारित व्हर्च्युअल मशीनसाठी एक बायनरी इंस्ट्रक्शन फॉरमॅट. WASM हे C, C++, Rust, आणि इतर उच्च-स्तरीय भाषांसाठी एक पोर्टेबल कंपायलेशन लक्ष्य म्हणून डिझाइन केलेले आहे, जे वेब ब्राउझर आणि इतर वातावरणात जवळजवळ नेटिव्ह कार्यक्षमता प्रदान करते.
वेबअसेम्ब्ली कंपोनेंट मॉडेल: वेबअसेम्ब्लीचा एक विकसित प्रकार जो कंपोझेबिलिटी आणि पुन्हा वापरण्यावर लक्ष केंद्रित करतो. हे विकसकांना लहान, स्वतंत्र कंपोनेंट्स एकत्र करून मोठ्या प्रणाली तयार करण्यास अनुमती देते. हे मॉडेल इंटरफेस, वर्ल्ड डेफिनिशन्स आणि होस्ट वातावरणाशी संवाद साधण्याची एक प्रमाणित पद्धत यासारखी नवीन वैशिष्ट्ये सादर करते.
क्षमता-आधारित सुरक्षेची गरज
पारंपारिक सुरक्षा मॉडेल्स अनेकदा ॲक्सेस कंट्रोल लिस्ट (ACLs) किंवा रोल-बेस्ड ॲक्सेस कंट्रोल (RBAC) वर अवलंबून असतात. जरी हे मॉडेल्स प्रभावी असू शकतात, तरीही ते व्यवस्थापित करण्यास गुंतागुंतीचे आणि चुकांना प्रवण असू शकतात. क्षमता-आधारित सुरक्षा अधिक सूक्ष्म-स्तरीय आणि मजबूत दृष्टिकोन प्रदान करते.
क्षमता-आधारित प्रणालीमध्ये, संसाधनांमध्ये प्रवेश हा क्षमतेच्या (capability) मालकीवर आधारित दिला जातो, जी एक बनावट नसलेली टोकन आहे आणि विशिष्ट संसाधनावर विशिष्ट ऑपरेशन्स करण्याचे अधिकार दर्शवते. कंपोनेंट मॉडेल सिस्टम संसाधनांवर प्रवेश व्यवस्थापित करण्यासाठी क्षमतांचा वापर करते.
क्षमता-आधारित सुरक्षेचे मुख्य फायदे:
- किमान विशेषाधिकार (Least Privilege): कंपोनेंट्सना फक्त तीच क्षमता मिळते जी त्यांना त्यांची विशिष्ट कामे करण्यासाठी आवश्यक असते, ज्यामुळे सुरक्षा भेद्यतेचा संभाव्य धोका कमी होतो.
- सूक्ष्म-स्तरीय नियंत्रण (Fine-Grained Control): क्षमतांमुळे कंपोनेंट कोणती ऑपरेशन्स करू शकतो यावर अचूक नियंत्रण ठेवता येते.
- मजबुती (Robustness): क्षमता बनावट नसल्यामुळे, दुर्भावनापूर्ण कोडसाठी संसाधनांवर अनधिकृत प्रवेश मिळवणे कठीण होते.
- कंपोझेबिलिटी (Composability): कंपोनेंट्सना गुंतागुंतीच्या कॉन्फिगरेशन किंवा विश्वासाच्या संबंधांशिवाय सहजपणे एकत्र केले जाऊ शकते.
वेबअसेम्ब्ली कंपोनेंट मॉडेल सुरक्षेची मुख्य संकल्पना
वेबअसेम्ब्ली कंपोनेंट मॉडेलची सुरक्षा अनेक मुख्य संकल्पनांवर आधारित आहे:
- सँडबॉक्सिंग (Sandboxing): प्रत्येक वेबअसेम्ब्ली मॉड्यूल एका सुरक्षित सँडबॉक्समध्ये चालते, जे त्याला होस्ट पर्यावरण आणि इतर मॉड्यूल्सपासून वेगळे करते.
- क्षमता (Capabilities): जसे चर्चा झाली, कंपोनेंट्स बाहेरील जगाशी क्षमतांद्वारे संवाद साधतात, जे विशिष्ट परवानग्या देणारे टोकन असतात.
- इंटरफेसेस (Interfaces): कंपोनेंट्स एकमेकांशी आणि होस्ट वातावरणाशी सु-परिभाषित इंटरफेसद्वारे संवाद साधतात. हे इंटरफेस कोणते फंक्शन्स कॉल केले जाऊ शकतात आणि कोणता डेटा एक्सचेंज केला जाऊ शकतो हे निर्दिष्ट करतात.
- वर्ल्ड डेफिनिशन्स (World Definitions): वर्ल्ड डेफिनेशन एका कंपोनेंटचे उपलब्ध इम्पोर्ट आणि एक्सपोर्ट यांचे वर्णन करते, ज्यामुळे बाह्य वातावरणाशी त्याच्या संवादाची सीमा निश्चित होते.
- स्पष्ट परवानगी देणे (Explicit Permission Granting): क्षमता स्पष्टपणे दिल्या जातात. सिस्टम संसाधनांवर कोणताही निहित प्रवेश नसतो.
परवानगी प्रणालीचे डिझाइन: एक सखोल अभ्यास
वेबअसेम्ब्ली कंपोनेंट मॉडेलमधील परवानगी प्रणालीचे डिझाइन त्याच्या एकूण सुरक्षेसाठी महत्त्वपूर्ण आहे. ते कसे कार्य करते यावर एक तपशीलवार नजर टाकूया:
१. इंटरफेस आणि क्षमता परिभाषित करणे
इंटरफेस हे परवानगी प्रणालीच्या केंद्रस्थानी आहेत. ते एक कंपोनेंट कोणती कार्यक्षमता उघड करतो किंवा आवश्यक आहे हे परिभाषित करतात. क्षमता नंतर या इंटरफेसशी जोडल्या जातात, ज्यामुळे कंपोनेंट्सना इतर कंपोनेंट्सच्या किंवा होस्ट वातावरणाच्या विशिष्ट वैशिष्ट्यांमध्ये प्रवेश मिळतो.
उदाहरणार्थ: अशा एका कंपोनेंटचा विचार करा ज्याला फाइल सिस्टममध्ये प्रवेश करण्याची आवश्यकता आहे. इंटरफेसमध्ये फाइल्स वाचणे, लिहिणे आणि हटवणे यासाठी फंक्शन्स परिभाषित केली जाऊ शकतात. त्यानंतर विशिष्ट परवानग्या देणारी क्षमता तयार केली जाते, जसे की विशिष्ट डिरेक्टरीमध्ये फक्त वाचण्याचा (read-only) प्रवेश.
वेबअसेम्ब्ली इंटरफेस टाइप (WIT) फॉरमॅटचा वापर हे इंटरफेस आणि संबंधित क्षमता परिभाषित करण्यासाठी केला जातो. WIT कंपोनेंटच्या API चे स्पष्ट आणि मशीन-वाचनीय तपशील प्रदान करते.
२. वर्ल्ड डेफिनिशन्स आणि कंपोनेंट लिंकिंग
वर्ल्ड डेफिनिशन्स एका कंपोनेंटच्या विश्वासाच्या सीमा स्थापित करण्यात महत्त्वपूर्ण भूमिका बजावतात. जेव्हा कंपोनेंट्स एकत्र जोडले जातात, तेव्हा वर्ल्ड डेफिनेशन ठरवते की कोणते इम्पोर्ट आणि एक्सपोर्ट्स परवानगी आहेत.
लिंकिंग दरम्यान, सिस्टम हे सुनिश्चित करते की एका कंपोनेंटद्वारे प्रदान केलेल्या क्षमता दुसऱ्याच्या आवश्यकतांशी जुळतात. हे सुनिश्चित करते की कंपोनेंट्स फक्त परिभाषित इंटरफेस आणि क्षमतांशी सुसंगत असलेल्या मार्गानेच संवाद साधू शकतात.
उदाहरणार्थ: ज्या कंपोनेंटला नेटवर्क सॉकेटमध्ये प्रवेशाची आवश्यकता आहे, तो त्याच्या वर्ल्ड डेफिनेशनमध्ये ही आवश्यकता घोषित करेल. लिंकिंग प्रक्रिया नंतर सुनिश्चित करेल की त्याला नेटवर्कमध्ये प्रवेश करण्यासाठी आवश्यक परवानग्या देणारी क्षमता प्रदान केली गेली आहे.
३. क्षमता पास करणे आणि प्रतिनिधीत्व (Delegation)
कंपोनेंट मॉडेल क्षमता पास करणे आणि प्रतिनिधीत्व (delegation) करण्यास समर्थन देते. यामुळे एक कंपोनेंट आपल्या स्वतःच्या क्षमतांचा मर्यादित प्रवेश इतर कंपोनेंट्सना देऊ शकतो.
उदाहरणार्थ: एक कंपोनेंट जो डेटाबेस कनेक्शन व्यवस्थापित करतो, तो डेटा ॲक्सेस करण्याची गरज असलेल्या दुसऱ्या कंपोनेंटला फक्त-वाचनीय (read-only) क्षमता देऊ शकतो. हे सुनिश्चित करते की दुसरा कंपोनेंट फक्त डेटाबेसमधून डेटा वाचू शकतो, आणि तो सुधारू किंवा हटवू शकत नाही.
प्रतिनिधीत्व केलेल्या क्षमतेची व्याप्ती मर्यादित करून प्रतिनिधीत्वाला आणखी प्रतिबंधित केले जाऊ शकते. उदाहरणार्थ, एक कंपोनेंट फक्त डेटाबेसच्या विशिष्ट उपसंचात प्रवेश देऊ शकतो.
४. डायनॅमिक क्षमता रद्द करणे
एका मजबूत सुरक्षा मॉडेलचा एक आवश्यक पैलू म्हणजे क्षमता डायनॅमिकरित्या रद्द करण्याची क्षमता. जर एखादा कंपोनेंट तडजोड झाला असेल किंवा त्याला संसाधनात प्रवेश करण्याची गरज नसेल, तर त्याच्या क्षमता रद्द केल्या जाऊ शकतात.
हे तडजोड झालेल्या कंपोनेंटला संवेदनशील संसाधनांमध्ये प्रवेश करण्यापासून प्रतिबंधित करते आणि सुरक्षा उल्लंघनामुळे होणारे संभाव्य नुकसान मर्यादित करते.
उदाहरणार्थ: जर वापरकर्त्याच्या प्रोफाइलमध्ये प्रवेश असलेला एखादा कंपोनेंट दुर्भावनापूर्ण आढळला, तर प्रोफाइल डेटामधील त्याचा प्रवेश त्वरित रद्द केला जाऊ शकतो, ज्यामुळे तो वापरकर्त्याची माहिती चोरण्यापासून किंवा सुधारण्यापासून प्रतिबंधित होतो.
५. होस्ट वातावरणाशी संवाद
जेव्हा वेबअसेम्ब्ली कंपोनेंटला होस्ट वातावरणाशी (उदा., ऑपरेटिंग सिस्टम किंवा ब्राउझर) संवाद साधण्याची आवश्यकता असते, तेव्हा ते होस्टद्वारे प्रदान केलेल्या क्षमतांद्वारेच केले पाहिजे.
होस्ट पर्यावरण या क्षमतांचे व्यवस्थापन करण्यासाठी आणि कंपोनेंट्सना फक्त त्या संसाधनांमध्ये प्रवेश आहे याची खात्री करण्यासाठी जबाबदार आहे ज्यांचा वापर करण्याची त्यांना स्पष्टपणे अधिकृतता आहे.
उदाहरणार्थ: ज्या कंपोनेंटला ब्राउझर वातावरणात फाइल सिस्टममध्ये प्रवेश करण्याची आवश्यकता आहे, त्याला ब्राउझरद्वारे क्षमता प्रदान करणे आवश्यक असेल. ब्राउझर नंतर फाइल सिस्टम प्रवेशावर निर्बंध लागू करेल, जसे की कंपोनेंटला विशिष्ट डिरेक्टरीमधील फाइल्समध्ये प्रवेश मर्यादित करणे.
व्यावहारिक उदाहरणे आणि उपयोग प्रकरणे
वर चर्चा केलेल्या संकल्पना स्पष्ट करण्यासाठी, चला काही व्यावहारिक उदाहरणे आणि उपयोग प्रकरणे विचारात घेऊया.
१. सुरक्षित प्लगइन आर्किटेक्चर
वेबअसेम्ब्ली कंपोनेंट मॉडेलचा वापर विविध ॲप्लिकेशन्ससाठी सुरक्षित प्लगइन आर्किटेक्चर तयार करण्यासाठी केला जाऊ शकतो. प्रत्येक प्लगइन एक कंपोनेंट म्हणून लागू केला जाऊ शकतो, ज्यामध्ये सु-परिभाषित इंटरफेस आणि क्षमता असतात.
उदाहरणार्थ: एक टेक्स्ट एडिटर वापरकर्त्यांना सिंटॅक्स हायलाइटिंग किंवा कोड कंप्लीशन यासारखी अतिरिक्त कार्यक्षमता प्रदान करणारे प्लगइन्स इंस्टॉल करण्याची परवानगी देण्यासाठी कंपोनेंट मॉडेलचा वापर करू शकतो. प्रत्येक प्लगइनला विशिष्ट क्षमता दिल्या जातील, जसे की एडिटरच्या टेक्स्ट बफरमध्ये किंवा फाइल सिस्टममध्ये प्रवेश. हे सुनिश्चित करते की प्लगइन्स संवेदनशील डेटामध्ये प्रवेश करू शकत नाहीत किंवा अनधिकृत ऑपरेशन्स करू शकत नाहीत.
हा दृष्टिकोन पारंपारिक प्लगइन आर्किटेक्चरपेक्षा लक्षणीयरीत्या अधिक सुरक्षित आहे जे अनेकदा प्लगइन्सना ॲप्लिकेशनच्या संसाधनांमध्ये पूर्ण प्रवेश देतात.
२. सर्व्हरलेस फंक्शन्स
कंपोनेंट मॉडेल सर्व्हरलेस फंक्शन्स तयार करण्यासाठी योग्य आहे. प्रत्येक फंक्शन एक कंपोनेंट म्हणून लागू केले जाऊ शकते, ज्याचे इनपुट आणि आउटपुट इंटरफेसद्वारे परिभाषित केले जातात.
उदाहरणार्थ: प्रतिमांवर प्रक्रिया करणाऱ्या सर्व्हरलेस फंक्शनला ऑब्जेक्ट स्टोरेज सेवेत प्रवेश करण्याची क्षमता दिली जाऊ शकते. फंक्शन नंतर स्टोरेज सेवेमधून प्रतिमा डाउनलोड करू शकेल, त्यावर प्रक्रिया करू शकेल आणि परिणाम अपलोड करू शकेल. क्षमता हे सुनिश्चित करतील की फंक्शन फक्त निर्दिष्ट ऑब्जेक्ट स्टोरेज सेवेत प्रवेश करू शकते आणि इतर संवेदनशील संसाधनांमध्ये प्रवेश करू शकत नाही.
हा दृष्टिकोन सर्व्हरलेस फंक्शन्सची सुरक्षा आणि वेगळेपणा सुधारतो, ज्यामुळे ते हल्ल्यांना अधिक प्रतिरोधक बनतात.
३. एम्बेडेड सिस्टीम्स
वेबअसेम्ब्ली कंपोनेंट मॉडेलचा वापर एम्बेडेड सिस्टीम्समध्ये देखील केला जाऊ शकतो, जेथे सुरक्षा आणि संसाधन मर्यादा महत्त्वपूर्ण असतात.
उदाहरणार्थ: एक एम्बेडेड डिव्हाइस जे मोटर नियंत्रित करते, ते मोटर नियंत्रण लॉजिकला सिस्टमच्या इतर भागांपासून वेगळे करण्यासाठी कंपोनेंट मॉडेलचा वापर करू शकते. मोटर नियंत्रण कंपोनेंटला मोटरच्या हार्डवेअर इंटरफेसमध्ये प्रवेश करण्याची क्षमता दिली जाईल, परंतु ते डिव्हाइसच्या नेटवर्क इंटरफेससारख्या इतर संवेदनशील संसाधनांमध्ये प्रवेश करू शकणार नाही.
हा दृष्टिकोन एम्बेडेड सिस्टीम्सची सुरक्षा आणि विश्वसनीयता वाढवतो, ज्यामुळे ते मालवेअर आणि इतर हल्ल्यांना कमी असुरक्षित बनतात.
क्षमता-आधारित सुरक्षा मॉडेलचे फायदे
वेबअसेम्ब्ली कंपोनेंट मॉडेलचे क्षमता-आधारित सुरक्षा मॉडेल अनेक महत्त्वपूर्ण फायदे देते:
- सुधारित सुरक्षा: संसाधनांवर प्रवेशावरील सूक्ष्म-स्तरीय नियंत्रणामुळे सुरक्षा भेद्यता आणि डेटा उल्लंघनाचा धोका कमी होतो.
- वर्धित कंपोझेबिलिटी: कंपोनेंट्सना गुंतागुंतीच्या कॉन्फिगरेशन किंवा विश्वासाच्या संबंधांशिवाय सहजपणे एकत्र केले जाऊ शकते.
- वाढलेली मजबुती: क्षमतांची बनावट नसलेली प्रकृतीमुळे दुर्भावनापूर्ण कोडसाठी संसाधनांवर अनधिकृत प्रवेश मिळवणे कठीण होते.
- सरलीकृत विकास: स्पष्ट आणि सु-परिभाषित इंटरफेस विकास प्रक्रिया सुलभ करतात आणि सिस्टमच्या सुरक्षेबद्दल तर्क करणे सोपे करतात.
- कमी झालेला हल्ला पृष्ठभाग (Attack Surface): प्रत्येक कंपोनेंटला दिलेल्या क्षमता मर्यादित करून, सिस्टमचा हल्ला पृष्ठभाग लक्षणीयरीत्या कमी होतो.
आव्हाने आणि विचार करण्यासारख्या गोष्टी
क्षमता-आधारित सुरक्षा मॉडेल अनेक फायदे देत असले तरी, काही आव्हाने आणि विचारात घेण्यासारख्या गोष्टी देखील आहेत:
- गुंतागुंत: क्षमता-आधारित प्रणालीचे डिझाइन आणि अंमलबजावणी करणे पारंपारिक सुरक्षा मॉडेल्सपेक्षा अधिक गुंतागुंतीचे असू शकते.
- कार्यक्षमतेवरील भार (Performance Overhead): क्षमता व्यवस्थापित करण्याचा भार कार्यक्षमतेवर परिणाम करू शकतो, विशेषतः संसाधन-मर्यादित वातावरणात.
- डीबगिंग (Debugging): क्षमता-आधारित प्रणालींचे डीबगिंग करणे आव्हानात्मक असू शकते, कारण क्षमतांचा प्रवाह शोधणे आणि प्रवेश नियंत्रण समस्या ओळखणे कठीण असू शकते.
- सुसंगतता (Compatibility): विद्यमान प्रणाली आणि लायब्ररींशी सुसंगतता सुनिश्चित करणे एक आव्हान असू शकते, कारण यापैकी अनेक प्रणाली क्षमता-आधारित सुरक्षेसह कार्य करण्यासाठी डिझाइन केलेल्या नाहीत.
तथापि, वाढलेली सुरक्षा आणि कंपोझेबिलिटीचे फायदे अनेकदा या आव्हानांपेक्षा जास्त असतात.
भविष्यातील दिशा आणि संशोधन
वेबअसेम्ब्ली कंपोनेंट मॉडेल आणि त्याचे सुरक्षा मॉडेल अजूनही विकसित होत आहेत. चालू असलेल्या संशोधन आणि विकासाची अनेक क्षेत्रे आहेत:
- औपचारिक सत्यापन (Formal Verification): सुरक्षा मॉडेलची अचूकता सिद्ध करण्यासाठी आणि ते संसाधनांवर अनधिकृत प्रवेश प्रतिबंधित करते याची खात्री करण्यासाठी औपचारिक सत्यापन तंत्रांचा वापर केला जाऊ शकतो.
- क्षमता रद्द करण्याची यंत्रणा (Capability Revocation Mechanisms): क्षमता रद्द करण्यासाठी अधिक कार्यक्षम आणि मजबूत यंत्रणा विकसित करण्यासाठी संशोधन चालू आहे.
- विद्यमान सुरक्षा फ्रेमवर्कसह एकत्रीकरण (Integration with Existing Security Frameworks): कंपोनेंट मॉडेलला विद्यमान सुरक्षा फ्रेमवर्कसह, जसे की ऑपरेटिंग सिस्टम आणि वेब ब्राउझरमध्ये वापरल्या जाणाऱ्या फ्रेमवर्कसह, एकत्रित करण्याचे प्रयत्न सुरू आहेत.
- मानकीकरण (Standardization): वेबअसेम्ब्ली समुदाय कंपोनेंट मॉडेल आणि त्याच्या सुरक्षा वैशिष्ट्यांचे मानकीकरण करण्यावर काम करत आहे, ज्यामुळे ते व्यापकपणे स्वीकारले जाईल आणि समर्थित केले जाईल याची खात्री होईल.
निष्कर्ष
वेबअसेम्ब्ली कंपोनेंट मॉडेलचे क्षमता-आधारित सुरक्षा मॉडेल सुरक्षित आणि कंपोझेबल सॉफ्टवेअर तयार करण्याच्या दिशेने एक महत्त्वपूर्ण पाऊल आहे. क्षमता, इंटरफेस आणि वर्ल्ड डेफिनिशन्सचा वापर करून, ते संसाधनांवर प्रवेश व्यवस्थापित करण्यासाठी एक सूक्ष्म-स्तरीय आणि मजबूत दृष्टिकोन प्रदान करते.
जरी काही आव्हाने आणि विचारात घेण्यासारख्या गोष्टी असल्या तरी, सुधारित सुरक्षा, वर्धित कंपोझेबिलिटी आणि वाढलेल्या मजबुतीचे फायदे वेब ब्राउझरपासून सर्व्हरलेस फंक्शन्स ते एम्बेडेड सिस्टीम्सपर्यंतच्या विस्तृत ॲप्लिकेशन्ससाठी एक आकर्षक पर्याय बनवतात.
जसजसे कंपोनेंट मॉडेल विकसित आणि परिपक्व होत जाईल, तसतसे ते सॉफ्टवेअर विकास लँडस्केपचा एक वाढता महत्त्वाचा भाग बनण्याची शक्यता आहे. त्याचे सुरक्षा तत्त्वे आणि सर्वोत्तम पद्धती समजून घेऊन, विकसक अधिक सुरक्षित आणि विश्वसनीय ॲप्लिकेशन्स तयार करू शकतात जे त्याच्या क्षमतांचा पूर्ण फायदा घेतात.
सुरक्षित आणि कंपोझेबल सॉफ्टवेअरचे भविष्य येथे आहे, आणि ते वेबअसेम्ब्ली आणि कंपोनेंट मॉडेलच्या पायावर तयार झाले आहे.