कोई फर्क नहीं पड़ता कि मैं उन दो पैटर्न के बारे में कितना पढ़ता हूं, मैं सिर्फ अंतर नहीं देख सकता।चैनल एडाप्टर और मैसेजिंग गेटवे पैटर्न के बीच क्या अंतर है?
उत्तर
यह एक अच्छा सवाल है क्योंकि वे समान हैं क्योंकि वे एक संदेश प्रणाली तक पहुंच प्रदान करते हैं। इस तरह वे इसे स्वीकार करते हैं, मुझे लगता है कि उन्हें अलग करता है।
चैनल एडाप्टर पैटर्न इस प्रणाली को संशोधित किए बिना किसी मौजूदा सिस्टम से डेटा कैसे प्राप्त करें, इस बात से संबंधित है। आम तौर पर चैनल एडैप्टर को प्रक्रिया से बाहर लागू किया जाता है। उदाहरण अक्सर देखे जाने वाले उदाहरण एक प्रोग्राम होते हैं जो समय-समय पर घटकों को खोजने के लिए अंतर्निहित डेटाबेस चलाता है। शायद एक स्टैंड-अलोन ऐप जो संदेश बनाने के लिए सिस्टम डेटा तक पहुंचने के लिए रीमोटिंग या HTTP एपीआई को कॉल करता है। मुद्दा यह है कि गैर-संदेश प्रणाली पूरी तरह से अपरिवर्तित है।
मुझे लगता है कि संदेश गेटवे इन-प्रोसेस मैसेजिंग एकीकरण के लिए अधिक लक्षित है। यह वास्तव में संदेश उपप्रणाली के चारों ओर अच्छा ओओ encapsulation लागू करने के बारे में है। शायद सिस्टम में कुछ ऑब्जेक्ट को वर्कऑर्डर सेंडर कहा जाता है जिसे Send (WorkOrder wo) कहा जाता है। उस वर्ग के कार्यान्वयन से संदेश के किसी भी विवरण से आवेदन ढालता है ... इसके लिए कॉल सिर्फ एक और विधि कॉल है।
JMS चैनल एडेप्टर जबकि यूनिडायरेक्शनल संदेश सेवा के लिए करना है (send-: वास्तव में, यह अपने संदेश विक्रेता बाहर स्वैप या यहाँ तक कि के लिए HTTP या FTP आदि
संदेश व्यापार करने के लिए संभव हो जाना चाहिए केवल या केवल प्राप्त), वसंत एकीकरण अनुरोध/उत्तर संचालन के लिए इनबाउंड और आउटबाउंड जेएमएस गेटवे भी प्रदान करता है।
http://static.springsource.org/spring-integration/reference/htmlsingle/#jms
एक चैनल एडाप्टर संदेश प्रणाली के लिए एक आवेदन को जोड़ता देखें।
- एक चैनल एडाप्टर शुरुआत और एक यूनिडायरेक्शनल संदेश प्रवाह के अंत में रखा गया है।
- चैनल एडाप्टर किसी भी unidirectional इनबाउंड या आउटबाउंड एडाप्टर पर लागू होता है।
- दूसरे शब्दों में, एक इनबाउंड चैनल एडाप्टर एक में केवल संदेश
विनिमय का समर्थन करता है, और एक आउटबाउंड चैनल एडाप्टर एक बाहर केवल विनिमय का समर्थन करता है।
किसी भी द्विदिश, या अनुरोध-उत्तर, अनुकूलक एक गेटवे के रूप में जाना जाता है।
- एक इनकमिंग अनुरोध से अधिक थ्रेड द्वारा सेवित होने की जरूरत है लेकिन invoker संदेश प्रणाली से अनजान रहने के लिए की जरूरत है, एक इनबाउंड गेटवे समाधान प्रदान करता है।
- आउटबाउंड पक्ष पर, एक आने वाला संदेश एक तुल्यकालिक आमंत्रण में उपयोग किया जा सकता है, और परिणाम उत्तर चैनल पर भेजा जाता है। उदाहरण के लिए, वेब सेवाओं का आह्वान करने और जेएमएस पर सिंक्रोनस अनुरोध-उत्तर इंटरैक्शन के लिए आउटबाउंड गेटवे का उपयोग किया जा सकता है।
यदि @Pillblast होप और वूल्फ द्वारा एंटरप्राइज़ इंटीग्रेशन पैटर्न बुक में वर्णित पैटर्न का जिक्र कर रहा है, तो मैं सहमत हूं। अन्य परिभाषाएं भिन्न हो सकती हैं (नीचे emush द्वारा वसंत संदर्भ देखें)। जिन मामलों में मैंने इन पैटर्न को कार्यान्वित किया है, मैंने वास्तव में अंतर्निहित संदेश प्रणाली को सारणीबद्ध करने के लिए एक चैनल एडाप्टर के भीतर मैसेजिंग गेटवे का उपयोग किया है, जैसा कि मैं किसी एप्लिकेशन के भीतर करता हूं। – BitMask777