2012-09-26 19 views
18

हाय मैंने एसओएपी आधारित वेब सर्विसेज के लिए जेएक्स-डब्ल्यूएस के साथ काम किया है। अब मैं आरईएसटी का उपयोग करना चाहता हूं क्योंकि आरईएसटी के पास एसएएपी पर फायदे हैं क्योंकि मैंने here से अध्ययन किया था।जेएक्स-डब्ल्यूएस बनाम जेएक्स-आरएस रीस्टफुल वेब सेवा

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

मेरा प्रश्न यह है कि जेएक्स-डब्ल्यूएस रीस्टफुल webservice और JAX-RS (जर्सी) के बीच क्या अंतर है। जेएक्स-डब्ल्यूएस पर जेएक्स-आरएस के फायदे क्या हैं? और हमें रीस्टफुल वेबसाइसेस के लिए जेएक्स-आरएस का उपयोग क्यों करना चाहिए?

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

उत्तर

26

टी एल; डॉ

JAX-WS इस तरह के साबुन के रूप में XML आधारित वेब सेवाओं के लिए है। जेएक्स-आरएस में एक ही प्रतिबंध नहीं है।

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

जेएक्स-आरएस क्लाइंट की ओर सर्वर इंटरैक्शन के लिए तैयार है, हालांकि सर्वर-टू-सर्वर ठीक है। चूंकि इसमें कम सेवा दायित्व हैं, इसलिए इसे जो भी ग्राहक चाहिए, उसे ट्यून किया जा सकता है।

और जानकारी

JAX-आरएस केवल API कोड-पहले दृष्टिकोण प्रदान करता है, जबकि JAX-WS दोनों डबल्यूएसडीएल फ़ाइलें कोड की पहली (आम तौर पर अनुशंसित नहीं) और अनुबंध-पहले प्रयोग करने के लिए अनुमति देता है (और अधिक सामान्यतः अनुशंसित)।

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

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

JAX-WS हालांकि यह HTTPS पर चलता है क्रिप्टोग्राफी WS-SecurityPolicy आदि का उपयोग कर इसके अलावा सुरक्षा के लिए अतिरिक्त प्रदान करता है के लिए, अनुबंध मजबूती से डबल्यूएसडीएल का उपयोग कर स्थापित कर रहे हैं और इस तरह के रूप में DataPower ESBs का उपयोग कर आवेदन के बाहर सत्यापित किया जा सकता।

तो क्या

JAX-WS आम तौर पर अच्छी तरह से परिभाषित अनुबंध (WSDLs) और आमतौर पर के साथ सर्वर बातचीत करने के लिए सर्वर की दिशा में सक्षम है, जब सेवा और क्लाइंट साइड अलग समूहों से हैं चुनने के लिए। यह बहुत संसाधन गहन है इसलिए क्लाइंट-टू-सर्वर इंटरैक्शन के लिए यह संभव नहीं है जहां नेटवर्क या क्लाइंट डिवाइस क्षमता इष्टतम से कम है।

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

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

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