2010-08-08 14 views
10

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

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

मैं विभिन्न साइटों है कि संदेश ब्रोकर को बदलने के लिए, मार्ग और बढ़ाने के संदेशों, यह बहुत अच्छी तरह से कुशलतापूर्वक जावा उपयोग किया जा सकता प्रयोग किया जाता है में पढ़ा। तो इसने मुझे इस सवाल का नेतृत्व किया "जावा का उपयोग कब करें और विकास के लिए संदेश ब्रोकर का उपयोग कब करें?" यह अच्छा होगा अगर कोई मुझे दोनों का उपयोग करने के फायदे के साथ मदद कर सके।

-RDJ

+0

क्या आपका मतलब जेएमएस बनाम आईबीएम संदेश ब्रोकर था? – YoK

+0

@YoK: मेरा मतलब सिर्फ जेएमएस नहीं था, मेरा मतलब था जावा द्वारा समर्थित एसओए की पूरी अवधारणा – Richie

उत्तर

4

के रूप में मैं समझता हूँ कि आप करने की कोशिश कर रहे हैं, उदाहरण के लिए, बजाय एक तैयार संदेश ब्रोकर और समान एसओए संबंधित प्रौद्योगिकियों के साथ जाने की कोर जावा में कार्यक्षमता को लागू। मेरा सुझाव है - पहिया को पुन: पेश न करें। मुद्दा यह है कि, यदि आप ऐसा करने का प्रयास करते हैं, तो अंत में आप एक ही तकनीकी मुद्दों का सामना करेंगे और इसी तरह के समाधान का नेतृत्व करेंगे। व्यापारिक तर्क पर ध्यान केंद्रित क्यों न करें जो पहले से मौजूद कुछ के बराबर विकसित करने की कोशिश करने की बजाय संभवतः अधिक परीक्षण और भरोसेमंद है।

+0

धन्यवाद बहुत गोपी :) कृपया मेरी टिप्पणियों को नीचे mwittrock पर देखें .. "क्या ऐसी स्थितियां हैं जब संदेश ब्रोकर का उपयोग किया जाना चाहिए जावा डब्ल्यूएस? " – Richie

9

संदेश दलालों जैसे सक्षम संचालन लोगों को एक ही स्थान पर सभी एकीकरण की निगरानी करने के लिए। साथ ही, यदि कोई डेटा प्रारूप बदलता है तो यह निर्धारित करने के लिए छोटा हो सकता है कि परिवर्तन से कौन से एकीकरण प्रभावित होते हैं।

प्रत्येक व्यक्तिगत एकीकरण संभवतः जावा (या किसी अन्य भाषा, उस मामले के लिए) में लागू किया जा सकता है, लेकिन आप समाप्त हो जाएंगे लेकिन बिंदु-से-बिंदु एकीकरण के समूह के साथ, जो समस्या संदेश दलालों में से एक है हल करने की कोशिश करो।

यदि आप जावा में एक सामान्यीकृत परिवर्तन/रूटिंग समाधान तैयार करना चाहते थे, तो आप एक संदेश ब्रोकर तैयार करेंगे :) जो दिलचस्प होगा, लेकिन वास्तव में आवश्यक नहीं है, क्योंकि बहुत सारे वाणिज्यिक और खुले स्रोत संदेश दलाल पहले से ही उपलब्ध हैं ।

+0

धन्यवाद के लिए धन्यवाद mwittrock :) अभी भी मुझे पहेली क्या है कि हम कुछ रूटिंग के साथ एक वेब सेवा कर सकते हैं और जावा बिट्स को बदलकर कम प्रतिक्रिया समय के साथ काम कर सकते हैं। क्या वहां स्केनेरियो हैं जहां एमबी का इस्तेमाल किया जाना चाहिए और जावा नहीं? – Richie

+0

ज्यादातर मामलों में यह आपके लिए पहले ही तय किया जा चुका है कि किसी प्रकार के मिडलवेयर घटक पर सभी एकीकरण को आधार देना है या नहीं। – mwittrock

+0

@ रिची मुझे लगता है कि मिविट्रॉक का मुख्य बिंदु यह है कि आप ** अपना खुद का लिख ​​सकते हैं, यह जटिलता और रखरखाव लागत बनाम विकास गति व्यापार पर निर्भर करता है जो आपके पास है। ब्रोकर की तरह पूरी तरह से विकसित ईएसबी के पास जावा ऐप में बहुत से फायदे हैं, यदि आप इसकी विशेषताओं का उपयोग करने जा रहे हैं, तो नहीं तो यह शायद महंगा हो जाएगा। क्या आपके पास जावा लिखने के लिए अत्यधिक कुशल प्रोग्रामर हैं? क्या आपको अपने डेटा प्रवाह, विश्लेषण समर्थन, लेखा परीक्षा, प्रक्रिया प्रबंधन, संचालन नियंत्रण की निगरानी करने की क्षमता की आवश्यकता है? क्या आप किसी को समर्थन के लिए भुगतान करना चाहते हैं या इसे स्वयं प्रदान करना चाहते हैं? – Encaitar

2

एक और व्यावहारिक दृष्टिकोण से, वेबस्पेयर संदेश ब्रोकर गैर-जावा अनुप्रयोगों (सी, कोबोल, पीएचपी, वीबी ...) को एकीकृत करने का एक तरीका प्रदान करता है जो अक्सर जावा के साथ पूरा करना मुश्किल होता है।

इसके अलावा, जावा विशेष रूप से अच्छी तरह से एक्सएमएल कार्रवाई करने के लिए अनुकूल नहीं है। ईएसक्यूएल और एक्सएसएलटी दोनों जावा एक्सएमएल रूपांतरण के लिए बहुत बेहतर वाहन हैं।

Webshpere संदेश दलाल भी JMS की सीमाओं के बाहर मैसेजिंग के साथ सौदा करने में सक्षम है (यह JMS कर सकते हैं और साथ ही)।

आप Websphere ESB जो एक तरह से संदेश दलाल के एक जावा कार्यान्वयन की तरह है पर लग सकता है। यह उत्पाद बाहरी गैर-जावा अनुप्रयोगों को जावा दुनिया में अनुकूलित करने की अपेक्षा करता है, इसलिए इसमें कम एकीकरण क्षमता है, लेकिन मुझे लगता है कि जावा लोगों को इसे काम करने में सहज लगेगा।

1

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

0

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

0

समझने वाली पहली बात यह है कि ब्रोकर के लिए जावा-एपीआई सी-एपीआई के शीर्ष पर बैठता है और आपको सभी उपलब्ध कार्यक्षमता तक पूर्ण पहुंच नहीं देता है।

दूसरा इसके बदसूरत, मैं इसे सरल मैपिंग ट्रांसफॉर्मेशन के लिए उपयोग नहीं करता, और निश्चित रूप से इन दिनों दृश्य मैपर भी है।

ने कहा कि यह अभी भी विशेष परिस्थितियों में उपयोगी है। एक उदाहरण जहां मैंने इसका इस्तेमाल किया था, कुछ संदेश सामग्री को मर्ज करना था। असल में परिदृश्य को 2000+ तत्वों वाला Msg1 प्राप्त हुआ था और उसके बाद एक अतिरिक्त संदेश Msg2 प्राप्त होता है जिसमें 2000+ तत्व होते हैं जो अतिरिक्त विवरण प्रदान करते हैं।

तो ESQL में आप Msg1.element [1] से शुरू करने के लिए कम हो गए हैं और फिर एक मैच के लिए Msg2 स्कैन कर रहे हैं, ऑप्टिमाइज़ करने के लिए आप Msg2 से तत्वों को हटाए जाने के बाद तत्वों को हटा सकते हैं। फिर भी यह सीपीयू के मामले में बेहद महंगा था, विशेष रूप से एक बार चीजें 2000+ से 5000+ तक बढ़ने लगीं। और वास्तव में बड़े संदेशों के लिए 5 मिनट से अधिक समय लगा।

विकल्प जावा कंप्यूट नोड का उपयोग करना और जावा ट्री ऑब्जेक्ट में दूसरे संदेश की सामग्री को लोड करना था, इसने प्रसंस्करण समय को लगभग 3 सेकंड तक घटा दिया।

तो यदि आप केवल जावा कंप्यूट नोड से स्पष्ट रूप से परिवर्तन कर रहे हैं तो रूपांतरण कर रहे हैं। यदि आप कुछ और जटिल और/या सीपीयू गहन कर रहे हैं तो निश्चित रूप से जावा गणना नोड को आज़माएं।

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