Hotswap और विकल्प?


15

अपने कॉलेज के जीवन के शुरुआती दिनों से मैं जावा और सबसे बड़ी समस्या का उपयोग कर रहा हूं जो हमारे पास अन्य व्याख्या की गई भाषाओं की तुलना में बिल्कुल कम उत्पादक है। सभी लोगों को यकीन है कि जावा सर्वश्रेष्ठ संकलित भाषा में से एक है।

हालाँकि, इस समस्या को हल करने के लिए ना तो Sun और ना ही Oracle ने पर्याप्त प्रयास किया है। समस्या में से एक है, ज़ाहिर है, वर्ग पुनः लोड हो रहा है।

इस समस्या को हल करने के लिए समुदाय के नवीनतम प्रयास हैं , मैक्सिकन हॉटस्पैप प्रोजेक्ट , जेब्रेल , प्लेफ्रॉमवर्क । हालाँकि, इस लेखन के समय वे अभी भी परिपक्व (इमो) और देशी नहीं थे। उनमें से कुछ उद्यम के लिए तैयार नहीं हैं, उनमें से कुछ सभी आईडीई के साथ संगत नहीं हैं, उनमें से कुछ अपरिपक्व universtiy परियोजनाएं हैं। रोड मैप और यहां तक ​​कि डेवलपर तैयार जावा तैयार है, लेकिन जावा समुदाय के पास अभी भी फ्लाई क्लास के रीलोडिंग पर समाधान नहीं है।

क्या ओरेकल के लिए इस समस्या को हल करने के लिए प्रयास करना मुश्किल है? क्लास रीलोडिंग को अभी तक मूल रूप से लागू क्यों नहीं किया गया है?


2
वास्तव में JRebel पूरी तरह से तैयार उद्यम है और इसमें बहुत अच्छा IDE समर्थन है, यद्यपि यह मुफ़्त नहीं है।
कार्लज़ू

@CarlosZ सच में? मैंने JRebel के साथ IntelliJ IDEA का उपयोग पहले बीटा से 3.x श्रृंखला में किया है। "यह" के बजाय, आपको "उस" का उपयोग करना होगा। प्रत्येक रिलीज़ के लिए मंच पर आपको intelliJ प्लगइन के बारे में कई मुद्दे दिखाई देंगे। लेकिन सबसे खराब अनुभव डिबगिंग मुद्दों का था। डीबगर बहुत देर से जुड़ सका। और हमें जबरदस्त परेशानी हुई। IntellJ उपयोगकर्ता के रूप में मुझे IDEA में JRebel के बारे में ठोस अनुभव है। और निश्चित रूप से पैसे का भुगतान एक और मुद्दा भी है।

@CarlosZ यह वास्तव में एक सवाल है, मैं यह जानने के लिए उत्सुक हूं कि मूल रूप से जावा में क्लास रीलोड को लागू करना क्यों मुश्किल है।

जवाबों:


4

JEE / J2EE के बारे में क्या? यह पहली बार 12 साल पहले जारी किया गया था। यह सीधे सूर्य / ओरेकल और कई अन्य विक्रेताओं का समर्थन करता है।

OSGi के बारे में क्या? इसकी पहली रिलीज लगभग 11 साल पहले हुई थी। इस पर ग्रहण (एक आईडीई) बनाया गया है, सन / ओरेकल से ग्लासफिश और अपाचे फेलिक्स इसे बड़े पैमाने पर उपयोग करते हैं। आप इसे स्प्रिंग-ओएसजीआई के साथ उपयोग कर सकते हैं।

यह जावा एसई में मूल रूप से समर्थित नहीं है क्योंकि एंटरप्राइज़ एप्लिकेशन को जानबूझकर अलग-अलग उत्पादों के रूप में एप्लिकेशन सर्वर द्वारा समर्थित किया गया था।


@Peter Lawrey 1) J2EE के बारे में लॉरी एक ठोस समाधान है? मैं आपकी बात देख नहीं पाया? 2) कक्षा पुनः लोड करने के लिए क्या आपको लगता है कि OSGI का उपयोग किया जाना चाहिए? आरा के बारे में क्या? जेसीआर स्तर पर भी, अभी भी एक आम सहमति नहीं है :)। OSGI क्लास रीलोडिंग की तुलना में बहुत अलग क्षेत्र को संबोधित कर रहा है। 3) मैं JavaSE भाग को समझ नहीं पाया, क्या आप थोड़ा और समझा सकते हैं? और कृपया ध्यान दें कि DaVinci HotSwap प्रोजेक्ट ओरेकल द्वारा प्रायोजित है। इसका मतलब है, कम से कम मेरे लिए, वे भी इस तरह के समाधान के लिए उत्सुक हैं।

यह इस बात पर निर्भर करता है कि आप क्या करने की उम्मीद करते हैं। यदि आप डिबगिंग के लिए हॉट स्वैप चाहते हैं, तो आप कुछ समय के लिए ऐसा करने में सक्षम हैं। हालांकि मजबूत उद्यम समाधान के लिए इस प्रकृति की गर्म अदला-बदली उचित नहीं है और केवल नियंत्रित रिलीज हैं। इस स्थिति में JEE और OSGi आपको रनिंग एप्लिकेशन को अपडेट करने की अनुमति देते हैं जिसका लाभ बहुत अधिक है लेकिन नियंत्रण से आप उत्पादन के माहौल से उम्मीद करेंगे। उदाहरण के लिए, मेरे OSGi कंटेनर में मैं कक्षाओं को हटा सकता हूं और एप्लिकेशन को बिना रोक नए संस्करणों के साथ बदल सकता हूं। आपको क्या ज़रूरत है जो OSGi नहीं करता है?
पीटर लॉरी

1) जेईई / जे 2 ईई संदर्भ कार्यान्वयन शुरू करने के लिए एक जगह हो सकती है, लेकिन कई और अधिक लोकप्रिय हैं, जेईई का उपयोग करना आसान है। मेरा कहना है कि आप कोड को एक रनिंग सिस्टम में बदल सकते हैं। आपको उत्पादन / नियंत्रित वातावरण में और क्या चाहिए।
पीटर लॉरी

1
2) कक्षाओं को पुनः लोड करना केवल एक चीज है जिसके लिए मैं OSGi का उपयोग करता हूं। आप OSGi के मुख्य उपयोग के रूप में क्या देखते हैं?
पीटर लॉरी

3) जेईई के पूरे बिंदु यह उद्यम अनुप्रयोगों के समर्थन के लिए जगह है। JSE एक अंतर्निहित प्लेटफ़ॉर्म है जिसका उपयोग JEE या अन्य अनुप्रयोगों के लिए किया जा सकता है।
पीटर लॉरी

2

इसे आज़माएं: http://www.zeroturnaround.com/blog/reloading_java_classes_401_hotswap_hrebel/

इसमें कई जटिल मुद्दे शामिल हैं। मुझे वास्तव में वहाँ (जावा या नहीं) के लिए किसी भी समाधान के बारे में पता नहीं है, जो कि राज्यकारी संस्थाओं को संरचनात्मक परिवर्तन करते हैं। रूबी या PHP जैसी गतिशील भाषाएं वास्तव में ऐसा नहीं करती हैं, मुझे एर्लांग के बारे में निश्चित नहीं है, लेकिन मुझे लगता है कि यह राज्य को भी खो देगा।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.