मेरी टीम ओएसजीआई के आधार पर एक नई प्रणाली विकसित करने की कोशिश कर रही है, और अब हमारे पास 50 से अधिक बंडल और गिनती है। समस्या यह है कि बंडलों के बीच निर्भरता है। उदाहरण के लिए, जब एक स्टार्टअप बंडल होता है, तो यह ओएसजीआई को एक सेवा पंजीकृत करेगा, और जब बी स्टार्टअप बंडल करेगा, तो वह उस सेवा का उपयोग करेगा। इसलिए मुझे बंडल की तुलना में पहले स्टार्टअप की आवश्यकता है। ऐसा करने के लिए, मैंने बंडल का प्रारंभ स्तर सेट किया है। बंडल बी से कम एक्या ओएसजीआई बंडलों के बीच निर्भरताओं का प्रबंधन करने के लिए विभिन्न स्टार्ट लेवल का उपयोग करना उचित है?
हमने स्टार्ट स्तर को सेट करने से बचने के लिए सर्विसट्रैकर का उपयोग करने की कोशिश की, लेकिन जब सेवाएं बढ़ती जा रही हैं ऊपर, पूरे सिस्टम को प्रबंधित करना और समझना मुश्किल हो जाता है।
हालांकि, मुझे इंटरनेट पर यह आलेख मिला: OSGi and Start Levels। मैं इसमें दो वाक्यों के साथ यकीन नहीं है: शुरुआत के स्तर के भीतर
- प्रारंभ आदेश अनिश्चित है!
- पूरी तरह से, प्रारंभ स्तर के साथ काम करते समय, प्रारंभ आदेश पर कभी भी निर्भर न करें। प्रबंधन के मुद्दे के रूप में प्रारंभ स्तर के बारे में सोचें, विकास समय के मुद्दे पर नहीं।
क्या इसका मतलब यह है कि प्रारंभ स्तर प्रारंभ आदेश का निर्धारण नहीं करेगा? तो मुझे इसका इस्तेमाल कब करना चाहिए?
क्या ओएसजीआई बंडलों के बीच निर्भरताओं का प्रबंधन करने के लिए विभिन्न स्टार्ट लेवल का उपयोग करना उचित है?
सभी बंडल गतिशील मॉड्यूल होने के लिए संभव है (सेवा सेवाओं को उपयोग करने वाली सभी सेवाओं को ट्रैक करने के लिए उपयोग करें), लेकिन इसमें अधिक समय लगता है और वरिष्ठ डेवलपर्स की मांग होती है, और सिस्टम डीबग करना मुश्किल हो जाता है।
मेरी टीम ने इसी तरह के मुद्दों के लिए प्रारंभ स्तर का उपयोग किया है। समस्याओं का शिकार करने का यह एक शानदार तरीका है और यदि आपके पास अंतर्निहित समस्या को तुरंत ठीक करने का समय नहीं है तो यह एक उपयोगी शॉर्ट-टर्म समाधान है। – Jon7
+1 rsteele के उत्तर में +1। प्रारंभिक आदेश के आधार पर चरम नाजुकता का परिचय देता है। स्टार्ट-लेवल के लिए एक अन्य उपयोग-मामला हालांकि अनुकूलन है। आपके बंडलों को हमेशा काम करना चाहिए * कोई फर्क नहीं पड़ता कि वे किस क्रम में शुरू कर रहे हैं ... हालांकि कभी-कभी एक बंडल को अपने प्रारंभिक आदेश के आधार पर कम या ज्यादा काम करने की आवश्यकता हो सकती है। तो आप अपने ऐप के प्रदर्शन को अनुकूलित करने के लिए स्टार्ट लेवल का उपयोग कर सकते हैं, बस वास्तविक कार्यक्षमता के लिए उन पर निर्भर न हों। –
धन्यवाद नील। मैंने दक्षता मुद्दा नहीं माना था, लेकिन यह बहुत समझ में आता है। –