जावा ईई में asynchronicity से निपटने के लिए मूल रूप से 3 तंत्र हैं:
- JMS
- CDI घटना बस
- @Asynchronous एनोटेट राज्यविहीन सत्र सेम के
ewernli पहले से ही तरीकों जेएमएस के क्या फायदे हैं इसका एक बहुत अच्छा स्पष्टीकरण देता है। यह एक बहुत ही पूरी तरह से फीचर्ड सिस्टम है, लेकिन इन सभी सुविधाओं के लिए ओवरहेड में थोड़ी सी लागत और उदासीनता की लागत है। शामिल प्रशासनिक वस्तुओं का प्रबंधन।
इसके अलावा जेएमएस स्पेक लगभग एक दशक तक अपडेट नहीं किया गया है। यह अभी भी वास्तव में उपयोगी है एपीआई के डिजाइन में चला गया दूरदर्शिता का एक बड़ा सौदा दिखाता है, लेकिन कभी-कभी यह थोड़ा आर्केन महसूस कर सकता है। जिस तरह से प्रशासनिक वस्तुओं जैसे गंतव्यों को परिभाषित किया जाना चाहिए, जिस तरह से आपको कनेक्शन प्राप्त करने की आवश्यकता है, एक सत्र बनाएं, आदि, यह सब थोड़ा कम स्तर, पुराना और आर्केन महसूस करता है। हालांकि संदेशों को प्राप्त करना संदेश संचालित बीन्स के साथ बहुत सरल बना दिया गया है, लेकिन भेजना नहीं है।
फिर, कुछ विरासत विचित्र कारणों के लिए, वेब मॉड्यूल को जेएमएस गंतव्यों को सुनने के लिए मना किया जाता है। बेशक इसके लिए कोई तर्क नहीं है, लेकिन यह प्राचीन जे 2 ईई 1.3 और बाद में चश्मे में है। अनुपालन अनुप्रयोग सर्वर अभी भी इस नियम को बनाए रखते हैं, लेकिन वे सभी वेंडर विशिष्ट कॉन्फ़िगरेशन प्रदान करते हैं ताकि इसे वैसे भी अनुमति दी जा सके। हालांकि यह आपके आवेदन को कम पोर्टेबल बनाता है।
उपयोग के मामलों का एक सबसेट जिसके लिए जेएमएस ऐतिहासिक रूप से उपयोग किया गया था, एक ही एप्लिकेशन के भीतर बहुत ही सरल घटना आधारित प्रोग्रामिंग है। इसके लिए सीडीआई इवेंट बस अब बेहतर अनुकूल है, क्योंकि यह एक सरल, अधिक आधुनिक और एक अधिक हल्का वजन दृष्टिकोण है।
उपयोग के मामलों का एक और सबसेट जिसके लिए जेएमएस का उपयोग किया गया था, बस किसी भी काम को असंकालिक रूप से कर रहा है। उन लोगों के लिए कभी-कभी एमडीबी बनाने के लिए उपयोग किया जाता था जो तब संदेश से पैरामीटर को खोल देगा और कुछ मानदंड सत्र बीन की विधि को सीधे उन पैरामीटर में गुजरने के लिए बुलाएगा। इस मामले में मैसेजिंग प्रतिमान की बिल्कुल आवश्यकता नहीं है और केवल @ एसिंक्रोनस एनोटेटेड विधि को कॉल करना एक सरल और अधिक प्रत्यक्ष दृष्टिकोण है।
स्रोत
2010-12-05 22:01:02
क्योंकि कभी-कभी लोग ईजेबी –
का उपयोग नहीं करना चाहते हैं, इसलिए आपने मौजूदा संदेश प्रणाली का उपयोग करने के बजाय डेटाबेस आधारित संदेश कतार को एक साथ हथियाने का फैसला किया है। निश्चित रूप से यह काम करेगा, लेकिन मैं पूछूंगा कि आपने एक इकाई बीन से भी परेशान क्यों किया है, आपके पास बनाए रखने के लिए कोई राज्य नहीं है, या तालिका में बनाने के लिए अपडेट नहीं है, ताकि आप सीधे सर्वलेट (यदि वेब आधारित) से डीबी कॉल कर सकें या एक स्टेटलेस सत्र बीन। जिनमें से सभी वास्तविक संदेश प्रणाली के लिए अभी भी खराब विकल्प हैं। – Robin