पदानुक्रमित वास्तुकला
पदानुक्रमित वास्तुकला पूरे सिस्टम को एक पदानुक्रम संरचना के रूप में देखती है, जिसमें सॉफ्टवेयर सिस्टम को तार्किक मॉड्यूल या उपतंत्र में अलग-अलग स्तरों पर विघटित किया जाता है। यह दृष्टिकोण आमतौर पर सिस्टम सॉफ्टवेयर जैसे नेटवर्क प्रोटोकॉल और ऑपरेटिंग सिस्टम को डिजाइन करने में उपयोग किया जाता है।
सिस्टम सॉफ्टवेयर पदानुक्रम डिजाइन में, एक निम्न-स्तरीय सबसिस्टम अपने आस-पास के ऊपरी स्तर के सब-सिस्टम को सेवाएं देता है, जो निचले स्तर में विधियों को लागू करते हैं। निचली परत अधिक विशिष्ट कार्यक्षमता प्रदान करती है जैसे कि I / O सेवाएँ, लेनदेन, शेड्यूलिंग, सुरक्षा सेवाएँ आदि। मध्य परत अधिक डोमेन आश्रित कार्य प्रदान करती है जैसे व्यावसायिक तर्क और कोर प्रसंस्करण सेवाएं। और, ऊपरी परत उपयोगकर्ता इंटरफ़ेस के रूप में अधिक अमूर्त कार्यक्षमता प्रदान करती है जैसे कि GUIs, शेल प्रोग्रामिंग सुविधाएं, आदि।
इसका उपयोग वर्ग पुस्तकालयों के संगठन में भी किया जाता है, जैसे नाम स्थान पदानुक्रम में .NET वर्ग पुस्तकालय। सभी डिजाइन प्रकार इस श्रेणीबद्ध वास्तुकला को लागू कर सकते हैं और अक्सर अन्य वास्तुकला शैलियों के साथ संयोजन करते हैं।
पदानुक्रमित वास्तुकला शैलियों को इस प्रकार बांटा गया है -
- Main-subroutine
- Master-slave
- आभासी मशीन
मुख्य-सबरूटीन
इस शैली का उद्देश्य मॉड्यूल का पुन: उपयोग करना और व्यक्तिगत मॉड्यूल या सबरूटीन का स्वतंत्र रूप से विकास करना है। इस शैली में, एक सॉफ्टवेयर सिस्टम को सिस्टम की वांछित कार्यक्षमता के अनुसार टॉप-डाउन शोधन का उपयोग करके सबरूटीन्स में विभाजित किया जाता है।
ये शोधन तब तक लंबवत होते हैं जब तक कि विघटित मॉड्यूल अपनी विशिष्ट स्वतंत्र जिम्मेदारी के लिए पर्याप्त सरल न हो जाए। कार्यक्षमता को ऊपरी परतों में कई कॉलर्स द्वारा पुन: उपयोग और साझा किया जा सकता है।
दो तरीके हैं जिनके द्वारा डेटा को सबरूटीन्स के मापदंडों के रूप में पारित किया जाता है, अर्थात् -
Pass by Value - सबरूटीन केवल पिछले डेटा का उपयोग करते हैं, लेकिन इसे संशोधित नहीं कर सकते।
Pass by Reference - सबरूटीन्स पैरामीटर द्वारा संदर्भित डेटा के मूल्य को बदलने के साथ-साथ उपयोग करते हैं।
लाभ
पदानुक्रम शोधन के आधार पर प्रणाली को विघटित करना आसान है।
ऑब्जेक्ट ओरिएंटेड डिज़ाइन के सबसिस्टम में इस्तेमाल किया जा सकता है।
नुकसान
कमजोर के रूप में यह विश्व स्तर पर साझा डेटा शामिल हैं।
चुस्त युग्मन परिवर्तन के अधिक लहर प्रभाव का कारण बन सकता है।
प्रमुख अधीन
यह दृष्टिकोण approach फूट डालो और जीतो ’सिद्धांत को लागू करता है और गलती कम्प्यूटेशन और कम्प्यूटेशनल सटीकता का समर्थन करता है। यह मुख्य-सबरूटीन वास्तुकला का एक संशोधन है जो प्रणाली और दोष सहिष्णुता की विश्वसनीयता प्रदान करता है।
इस वास्तुकला में, दास गुरु को डुप्लिकेट सेवाएँ प्रदान करते हैं, और स्वामी एक निश्चित चयन रणनीति द्वारा दासों के बीच एक विशेष परिणाम चुनता है। दास अलग-अलग एल्गोरिदम और विधियों या पूरी तरह से अलग कार्यक्षमता द्वारा एक ही कार्यात्मक कार्य कर सकते हैं। इसमें समानांतर कंप्यूटिंग शामिल है जिसमें सभी दासों को समानांतर में निष्पादित किया जा सकता है।
मास्टर-स्लेव पैटर्न का कार्यान्वयन पांच चरणों का अनुसरण करता है -
निर्दिष्ट करें कि कार्य की गणना को समान उप-कार्यों के एक सेट में कैसे विभाजित किया जा सकता है और उप-कार्य को संसाधित करने के लिए आवश्यक उप-सेवाओं की पहचान करें।
निर्दिष्ट करें कि व्यक्तिगत उप-कार्यों को संसाधित करने से प्राप्त परिणामों की मदद से पूरी सेवा के अंतिम परिणाम की गणना कैसे की जा सकती है।
चरण 1 में पहचानी गई उप-सेवा के लिए एक इंटरफ़ेस को परिभाषित करें। यह दास द्वारा लागू किया जाएगा और मास्टर द्वारा व्यक्तिगत उप-कार्यों के प्रसंस्करण को सौंपने के लिए उपयोग किया जाएगा।
पिछले चरण में विकसित विनिर्देशों के अनुसार दास घटकों को लागू करें।
चरण 1 से 3 में विकसित विनिर्देशों के अनुसार मास्टर को लागू करें।
अनुप्रयोग
उन अनुप्रयोगों के लिए उपयुक्त है जहाँ सॉफ़्टवेयर की विश्वसनीयता महत्वपूर्ण समस्या है।
व्यापक रूप से समानांतर और वितरित कंप्यूटिंग के क्षेत्रों में लागू होता है।
लाभ
तेज़ संगणना और आसान मापनीयता।
मजबूती प्रदान करता है क्योंकि दासों की नकल की जा सकती है।
शब्दार्थ त्रुटियों को कम करने के लिए दास को अलग तरह से लागू किया जा सकता है।
नुकसान
संचार ओवरहेड।
सभी समस्याओं को विभाजित नहीं किया जा सकता है।
लागू करने और पोर्टेबिलिटी के मुद्दे पर मुश्किल।
वर्चुअल मशीन वास्तुकला
वर्चुअल मशीन आर्किटेक्चर कुछ कार्यक्षमता का ढोंग करता है, जो कि हार्डवेयर और / या सॉफ्टवेयर के मूल निवासी नहीं है, जिस पर इसे लागू किया जाता है। एक वर्चुअल मशीन एक मौजूदा सिस्टम पर बनाई गई है और एक वर्चुअल एब्स्ट्रैक्शन, एट्रिब्यूट्स और ऑपरेशंस का एक सेट प्रदान करती है।
वर्चुअल मशीन आर्किटेक्चर में, मास्टर दास से 'समान' उप-सेवा का उपयोग करता है और विभाजन कार्य, कॉल दास और परिणाम संयोजित करने जैसे कार्य करता है। यह डेवलपर्स को प्लेटफार्मों का परीक्षण और परीक्षण करने की अनुमति देता है, जो अभी तक नहीं बनाए गए हैं, और "आपदा" मोड का अनुकरण करते हैं जो वास्तविक प्रणाली के साथ परीक्षण करने के लिए बहुत जटिल, महंगा या खतरनाक होगा।
ज्यादातर मामलों में, एक वर्चुअल मशीन एक निष्पादन मंच से प्रोग्रामिंग भाषा या एप्लिकेशन वातावरण को विभाजित करती है। मुख्य उद्देश्य प्रदान करना हैportability। वर्चुअल मशीन के माध्यम से किसी विशेष मॉड्यूल की व्याख्या इस प्रकार की जा सकती है -
व्याख्या इंजन की व्याख्या की जा रही मॉड्यूल से एक निर्देश चुनता है।
निर्देश के आधार पर, इंजन वर्चुअल मशीन की आंतरिक स्थिति को अद्यतन करता है और उपरोक्त प्रक्रिया को दोहराया जाता है।
निम्नलिखित आंकड़ा एकल भौतिक मशीन पर एक मानक वीएम बुनियादी ढांचे की वास्तुकला को दर्शाता है।
hypervisor, भी कहा जाता है virtual machine monitor, होस्ट ओएस पर चलता है और प्रत्येक अतिथि ओएस के लिए मिलान किए गए संसाधनों को आवंटित करता है। जब अतिथि एक सिस्टम-कॉल करता है, तो हाइपरवाइजर इसे होस्ट ओएस द्वारा समर्थित संबंधित सिस्टम-कॉल में स्वीकार करता है और इसका अनुवाद करता है। हाइपरविजर प्रत्येक वर्चुअल मशीन को सीपीयू, मेमोरी, लगातार स्टोरेज, आई / ओ डिवाइस और नेटवर्क पर नियंत्रित करता है।
अनुप्रयोग
वर्चुअल मशीन आर्किटेक्चर निम्नलिखित डोमेन में उपयुक्त है -
यदि कोई प्रत्यक्ष समाधान नहीं है, तो सिमुलेशन या अनुवाद द्वारा किसी समस्या को हल करने के लिए उपयुक्त है।
नमूना अनुप्रयोगों में माइक्रोप्रोग्रामिंग, एक्सएमएल प्रसंस्करण, स्क्रिप्ट कमांड भाषा निष्पादन, नियम-आधारित प्रणाली निष्पादन, स्मॉलटॉक और जावा दुभाषिया टाइप प्रोग्रामिंग भाषा के व्याख्याकार शामिल हैं।
आभासी मशीनों के सामान्य उदाहरण व्याख्याकार, नियम-आधारित प्रणाली, वाक्य-विन्यास के गोले और कमांड भाषा के प्रोसेसर हैं।
लाभ
पोर्टेबिलिटी और मशीन प्लेटफार्म स्वतंत्रता।
सॉफ्टवेयर विकास की सादगी।
कार्यक्रम को बाधित और क्वेरी करने की क्षमता के माध्यम से लचीलापन प्रदान करता है।
डिजास्टर वर्किंग मॉडल के लिए सिमुलेशन।
रनटाइम में संशोधनों का परिचय दें।
नुकसान
दुभाषिया प्रकृति के कारण दुभाषिया का धीमा निष्पादन।
निष्पादन में शामिल अतिरिक्त गणना की वजह से एक प्रदर्शन लागत है।
स्तरित शैली
इस दृष्टिकोण में, सिस्टम एक पदानुक्रम में कई उच्च और निचली परतों में विघटित होता है, और प्रत्येक परत की प्रणाली में अपनी पूरी जिम्मेदारी होती है।
प्रत्येक परत में संबंधित कक्षाओं का एक समूह होता है जो एक पैकेज में, एक तैनात घटक में, या विधि लाइब्रेरी या हेडर फ़ाइल के प्रारूप में उप-समूह के समूह के रूप में समझाया जाता है।
प्रत्येक परत इसके ऊपर की परत को सेवा प्रदान करती है और नीचे की परत के लिए एक क्लाइंट के रूप में कार्य करती है अर्थात लेयर करने के लिए अनुरोध करता है I लेयर i द्वारा प्रदान की गई सेवाओं को लेयर i के इंटरफेस के माध्यम से आमंत्रित करता है। यदि कार्य पूर्ण हो जाता है, तो प्रतिक्रिया i + i पर वापस जा सकती है; अन्यथा परत I परत -1 से नीचे की ओर लगातार सेवाओं को आमंत्रित करता है।
अनुप्रयोग
निम्नलिखित क्षेत्रों में स्तरित शैली उपयुक्त है -
ऐसे अनुप्रयोग जिनमें सेवाओं के अलग-अलग वर्ग शामिल हैं जिन्हें पदानुक्रम से व्यवस्थित किया जा सकता है।
कोई भी एप्लिकेशन जिसे एप्लिकेशन-विशिष्ट और प्लेटफ़ॉर्म-विशिष्ट भागों में विघटित किया जा सकता है।
कोर सेवाओं, महत्वपूर्ण सेवाओं और उपयोगकर्ता इंटरफ़ेस सेवाओं आदि के बीच स्पष्ट विभाजन वाले अनुप्रयोग
लाभ
अमूर्तता के वृद्धिशील स्तरों के आधार पर डिजाइन।
वृद्धि की स्वतंत्रता प्रदान करता है क्योंकि एक परत के कार्य में परिवर्तन अन्य दो परतों में सबसे अधिक प्रभावित होता है।
मानक इंटरफ़ेस और इसके कार्यान्वयन का पृथक्करण।
घटक-आधारित तकनीक का उपयोग करके कार्यान्वित किया जाता है जो नए घटकों के प्लग-एंड-प्ले की अनुमति देने के लिए सिस्टम को बहुत आसान बनाता है।
प्रत्येक परत स्वतंत्र रूप से तैनात एक अमूर्त मशीन हो सकती है जो पोर्टेबिलिटी का समर्थन करती है।
शीर्ष-डाउन परिशोधन तरीके से कार्यों की परिभाषा के आधार पर प्रणाली को विघटित करना आसान है
एक ही परत के अलग-अलग कार्यान्वयन (समान इंटरफेस के साथ) परस्पर उपयोग किए जा सकते हैं
नुकसान
कई एप्लिकेशन या सिस्टम आसानी से स्तरित फैशन में संरचित नहीं होते हैं।
क्लाइंट के अनुरोध या क्लाइंट की प्रतिक्रिया के बाद से लोअर रनटाइम प्रदर्शन संभावित रूप से कई परतों से गुजरना चाहिए।
डेटा परत पर ओवरहेड पर प्रदर्शन की चिंताओं और प्रत्येक परत द्वारा बफरिंग भी हैं।
इंटरलेयर संचार के खुलने से गतिरोध पैदा हो सकता है और "ब्रिडिंग" तंग युग्मन पैदा कर सकता है।
अपवाद और त्रुटि से निपटने के स्तरित वास्तुकला में एक मुद्दा है, क्योंकि एक परत में दोष सभी कॉलिंग परतों में ऊपर की ओर फैलना चाहिए