2012-04-17 6 views
11

यह this जैसा लगता है, लेकिन यह नहीं है।आरएमआई के साथ ईजेबी को लागू करने के लिए अभी भी उपयोगी है जब आप वेब सर्विसेज (एसओए/आरईएसटी) लागू कर सकते हैं?

मैं ईजेबी और आरएमआई को समझता हूं, और मैं थोड़ी देर के लिए एसओए के तहत वेब सेवाओं के साथ काम कर रहा हूं। मैं जानना चाहता हूं कि वेब सेवा (एसओए/आरईएसटी, लेकिन ज्यादातर एसओए) प्रकाशित करने के बजाय आरएमआई के तहत रिमोट इंटरफेस का खुलासा करते हुए ईजेबी का उपयोग करके काम करना उपयोगी क्यों है। मैं नहीं पूछ रहा कि कौन सा बेहतर है, बस मैं एक बहुत अच्छा कारण जानना चाहता हूं कि मुझे वेब सेवाओं पर रिमोट इंटरफेस के साथ ईजेबी को क्यों लागू करना चाहिए।

मैंने कई वेबपृष्ठों की समीक्षा की है लेकिन सभी पुराने लग रहे थे। अब तक, मेरे पास यह है कि जावा लीगेसी सिस्टम के साथ एकीकृत करते समय रिमोट इंटरफेस का खुलासा करने वाला ईजेबी डब्ल्यूएस से बेहतर है। यदि मैं लेनदेन का प्रबंधन करना चाहता हूं तो मैं स्थानीय इंटरफेस के साथ ईजेबी लागू कर सकता हूं। मुझे यह भी नहीं लगता कि आरएमआई पर ईजेबी चुनना वेब सेवा इंटरफ़ेस से अधिक कुशल है।

क्या मैं सही हूँ? क्या मुझे कुछ याद आ रही है?

वास्तव में अग्रिम धन्यवाद।

उत्तर

21

EJBs हैं बेहतर अगर

  • आप जो एक लेन-देन में किया जाना चाहिए कॉल की संख्या प्रदर्शन करने की जरूरत है (सिद्धांत में हम व्यवहार वेब सेवाओं है, लेकिन नहीं हर कार्यान्वयन उन्हें प्रदान करता है), (स्टेटफुल) जब लेनदेन प्रबंधन की बात आती है तो ईजेबी चमकते हैं। लगभग किसी भी समय आपको राज्य की आवश्यकता होती है ईजेबी बेहतर होगा तो वेब सेवा;
  • आपको प्रदर्शन की आवश्यकता है - वेब सेवाएं धीमी हैं - वे HTTP के माध्यम से एक्सएमएल/जेएसओएन का उपयोग करते हैं, से अधिक आरएमआई ईजेबी द्वारा उपयोग किए जाने वाले आईओओपी प्रोटोकॉल का तरीका अधिक कुशल है;
  • आपको कुछ वेब विरासत प्रणाली से कनेक्ट करने की आवश्यकता है जो जावा वेब सेवाओं (बदसूरत एक्सिस 1.0 सामान, जेएक्स-डब्ल्यूएस के साथ संगत नहीं है) के लिए पुरानी कल्पना का उपयोग करता है, यह वेब सेवाओं के साथ सब कुछ जोड़ने के लिए एक दुःस्वप्न हो सकता है, संगत डब्लूएसडीएल परिभाषाओं के साथ सौदा नहीं कर सकता अजीब SOAP लिफाफे। ईजेबी पिछड़े संगत हैं, पुराने ईजेबी 2 को ईजेबी 3.1 के साथ किसी भी समस्या के बिना जोड़ा जा सकता है;
  • आधुनिक EJBs (EJB 3.X) दो या तीन सरल एनोटेशन

क्यों (REST) ​​वेब सेवाओं रहे हैं जोड़कर एक JAX-WS सोप/डबल्यूएसडीएल सेवा या JAX-आरएस बाकी सेवा के रूप में अपने इंटरफेस को बेनकाब कर सकते हैं तब इतना लोकप्रिय? ईजेबी को केवल किसी अन्य जावा एप्लिकेशन से जोड़ा जा सकता है। अधिकांश आधुनिक रिच इंटरनेट एप्लिकेशन जावास्क्रिप्ट में लिखे गए हैं, इसलिए किसी भी बैकएंड से कनेक्ट करने का एकमात्र तरीका किसी प्रकार की वेब सेवा (आमतौर पर आरईएसटी + जेएसओएन) का उपयोग करना है। ऐसे अनुप्रयोगों के लिए ईजेबी बहुत बेकार हैं।

+0

धन्यवाद, लेकिन इसे उत्तर के रूप में चिह्नित करने से पहले, पहला व्यक्ति वैध कारण नहीं होगा, क्योंकि मैं एक ई-मेल के साथ एक वेब सेवा को स्थानीय इंटरफ़ेस का खुलासा कर सकता हूं? तो लेनदेन वही होगा। –

+2

सच है, समस्या तब शुरू होती है जब आपको एक लेनदेन में कई अलग-अलग कॉल करने की आवश्यकता होती है। वेब सेवाएं आमतौर पर स्टेटलेस होती हैं, और किसी को "हाथ से" लेनदेन का प्रबंधन करना होता है, जो बोझिल हो सकता है। राज्यगत ईजेबी इसे मुफ्त में देगी। –

+0

खैर, आपके पास पहले दिए गए अंतिम कारणों का उपयोग करके भी राज्य की वेब सेवाएं भी हो सकती हैं। तो मैं दूसरे और तीसरे कारणों, दक्षता (थोड़ा सा अनुमान लगाता हूं) और विरासत के लिए जाऊंगा। धन्यवाद! –

6

यदि आप वायर प्रोटोकॉल के रूप में आरएमआई का उपयोग करते हैं तो क्लाइंट और सेवा दोनों जावा में लिखी जानी चाहिए।

SOAP HTTP पर XML का उपयोग करता है, और REST क्लाइंट और सेवा के बीच संचार के लिए शुद्ध HTTP का उपयोग करता है। वार्तालाप का अंत किसी भी भाषा में लिखा जा सकता है जो HTTP पर उचित अनुरोध भेज सकता है, जो बहुत कम प्रतिबंधित है।

मुझे लगता है कि यह एक कारण है कि HTTP पर वेब सेवाओं ने आरएमआई पर जीता है। सरल और खुली जीत, हर बार।

+0

तो क्या रिमोट इंटरफेस के साथ ईजेबी सीखना उचित नहीं है? जैसे कि मैं स्मॉलटाक सीखना चाहता हूं (केवल मजेदार और सीखने के लिए होगा, लेकिन उपयोगी नहीं होगा)? –

+0

मैं अब तक नहीं जाऊंगा। उस प्रश्न का उत्तर आपकी परिस्थितियों पर निर्भर करता है। – duffymo

+0

ठीक है, लेकिन एकमात्र सर्कस्टेंस जहां आजकल उपयोगी होगा, जावा विरासत प्रणाली के साथ एकीकृत करना होगा, है ना? –

6

वे विभिन्न उद्देश्यों के लिए अलग-अलग चीजें हैं।

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

SOAP/REST इंटरनेट पर उपयोग करने के लिए सबसे अच्छा है, या बी 2 बी या अन्य स्थितियों में जहां आप दोनों सिरों के नियंत्रण में नहीं हैं और आपको ढीले युग्मन की आवश्यकता है। आपको सभी एक्सएमएल के कारण बहुत धीमी कार्यक्षमता मिलती है, लेकिन आपको मध्य में एक उद्योग मानक प्रोटोकॉल भी मिलता है जो सिंगल सोर्सिंग समस्याओं के खिलाफ दोनों सिरों की सुरक्षा देता है।

+0

यह एक और सवाल हो सकता है, लेकिन वेब सेवा के रूप में इसे इंटरफ़ेस का खुलासा करने के लिए आसानी से ईजेबी को अनुकूलित करना संभव है, इसलिए, आप पहली आर्किटेक्चर शुरू कर सकते हैं जिसे आप परिभाषित करते हैं और यदि भविष्य में आपको विस्तार करने की आवश्यकता है तो आप इसका खुलासा कर सकते हैं वेब सेवाएं, या नहीं? –

+0

@ क्रिस्टियन विल्मा यह एक और सवाल है ठीक है और आपको मुझसे इसका जवाब नहीं मिलेगा ;-) इसे एक प्रश्न के रूप में पूछें। – EJP

संबंधित मुद्दे