web services एसओएपी बनाम आरईएसटी(मतभेद)




वेब सर्विसेज इन हिंदी (10)

मैंने एसओएपी और आरईएसटी के बीच एक वेब सेवा संचार प्रोटोकॉल के रूप में अंतरों के बारे में लेख पढ़े हैं, लेकिन मुझे लगता है कि एसओएपी पर आरईएसटी के लिए सबसे बड़ा फायदे हैं:

  1. आरईएसटी अधिक गतिशील है, यूडीडीआई बनाने और अद्यतन करने की कोई आवश्यकता नहीं है।

  2. आरईएसटी एक्सएमएल प्रारूप तक ही सीमित नहीं है। आरईएसटी वेब सेवाएं सादे पाठ, जेएसओएन और एक्सएमएल भी भेज सकती हैं।

लेकिन एसओएपी अधिक मानकीकृत (पूर्व; सुरक्षा) है।

तो, क्या मैं इन बिंदुओं में सही हूँ?


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

एसओएपी और आरईएसटी की तुलना सीधे तुलना नहीं की जा सकती है, क्योंकि पहला प्रोटोकॉल होता है (या कम से कम करने की कोशिश करता है) और दूसरा एक वास्तुशिल्प शैली है। यह शायद इसके आस-पास भ्रम के स्रोतों में से एक है, क्योंकि लोग आरईएसटी को किसी भी HTTP एपीआई को कॉल करते हैं जो SOAP नहीं है।

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

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

मुझे लगता है कि यह समझने के लिए महत्वपूर्ण मुद्दे हैं कि आरईएसटी क्या है, और यह एसओएपी से अलग कैसे है:

  • आरईएसटी प्रोटोकॉल स्वतंत्र है। यह HTTP के साथ नहीं है। बहुत अधिक आप एक वेबसाइट पर एक एफटीपी लिंक का पालन कर सकते हैं, एक आरईएसटी आवेदन किसी भी प्रोटोकॉल का उपयोग कर सकते हैं जिसके लिए एक मानक यूआरआई योजना है।

  • आरईएसटी HTTP विधियों के लिए सीआरयूडी का मैपिंग नहीं है। उस पर एक विस्तृत स्पष्टीकरण के लिए this उत्तर को पढ़ें।

  • आरईएसटी आपके द्वारा उपयोग किए जा रहे हिस्सों के रूप में मानकीकृत है। HTTP में सुरक्षा और प्रमाणीकरण मानकीकृत हैं, इसलिए HTTP पर REST करते समय आप इसका उपयोग करते हैं।

  • आरईएसटी hypermedia और HATEOAS बिना आरईएसटी नहीं है। इसका मतलब है कि एक ग्राहक केवल प्रवेश बिंदु यूआरआई जानता है और संसाधनों को क्लाइंट का पालन करना चाहिए लिंक को वापस करना होगा। उन फैंसी दस्तावेज जेनरेटर जो आरईएसटी एपीआई में आप जो भी कर सकते हैं उसके लिए यूआरआई पैटर्न देते हैं, पूरी तरह से बिंदु को याद करते हैं। वे केवल कुछ ऐसा दस्तावेज नहीं कर रहे हैं जो मानक का पालन करना है, लेकिन जब आप ऐसा करते हैं, तो आप एपीआई के विकास में क्लाइंट को एक विशेष पल में जोड़ रहे हैं, और एपीआई पर किए गए किसी भी बदलाव को दस्तावेज और लागू करना होगा, या यह टूट जाएगा।

  • आरईएसटी वेब की वास्तुशिल्प शैली है। जब आप स्टैक ओवरफ़्लो दर्ज करते हैं, तो आप जानते हैं कि कोई उपयोगकर्ता, एक प्रश्न और उत्तर क्या है, आप मीडिया प्रकारों को जानते हैं, और वेबसाइट आपको उनसे लिंक प्रदान करती है। एक आरईएसटी एपीआई को वही करना है। यदि हमने वेब को डिज़ाइन किया है, तो लोगों को लगता है कि आरईएसटी किया जाना चाहिए, प्रश्नों और उत्तरों के लिंक के साथ होम पेज रखने के बजाय, हमारे पास एक स्थिर दस्तावेज होगा जिसमें एक प्रश्न देखने के लिए, आपको यूआरआई स्टैकओवरफ्लो लेना होगा .com/questions/<id> , id.id के साथ आईडी को प्रतिस्थापित करें और अपने ब्राउज़र पर पेस्ट करें। यह बकवास है, लेकिन यही है कि बहुत से लोग सोचते हैं कि आरईएसटी है।

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

उपरोक्त दिमाग में, आपको एहसास होगा कि आरईएसटी को एक्सएमएल तक सीमित नहीं किया जा सकता है, इसे किसी भी अन्य प्रारूप के साथ सही तरीके से करने के लिए आपको अपने लिंक के लिए कुछ प्रारूप डिजाइन और मानकीकृत करना होगा। हाइपरलिंक्स एक्सएमएल में मानक हैं, लेकिन जेएसओएन में नहीं। जेएसओएन के लिए मसौदे मानक हैं, जैसे HAL

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


आईएमएचओ आप एसओएपी और आरईएसटी की तुलना नहीं कर सकते, जहां वे दो अलग-अलग चीजें हैं।

एसओएपी एक प्रोटोकॉल है और आरईएसटी एक सॉफ्टवेयर वास्तुकला पैटर्न है। एसओएपी बनाम आरईएसटी के लिए इंटरनेट में बहुत सी गलत धारणा है।

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

आरईएसटी एक यूआरएल से सर्वर के राज्य (संसाधनों के रूप में) का प्रतिनिधित्व करता है। यह स्टेटलेस है और ग्राहकों को हाइपर्मियाडिया की समझ से परे सर्वर के साथ बातचीत करने के लिए पूर्व ज्ञान नहीं होना चाहिए।


अन्य उत्तरों ने व्यापक बिंदुवार मतभेद दिए हैं और विस्तार से बहुत कुछ समझाया है। तो मैं आप उन प्रकार के उत्तरों से दूर रहूंगा और आपको पूछूंगा कि क्या आप अभी भी उलझन में हैं, यदि ऐसा है तो आप इस सरल सादृश्य को देखना चाहेंगे।


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

इस आलेख को विशिष्ट SOAP सुविधाओं पर खरपतवारों के बिना, अवधारणाओं के बीच अंतर को समझा जाना चाहिए।


REST बनाम SOAP पूछने का सही सवाल नहीं है।

REST विपरीत, REST प्रोटोकॉल नहीं है।

REST एक वास्तुकला शैली और नेटवर्क आधारित सॉफ्टवेयर आर्किटेक्चर के लिए एक डिजाइन है

REST अवधारणाओं को संसाधन के रूप में जाना जाता है। संसाधन का प्रतिनिधित्व स्टेटलेस होना चाहिए। यह कुछ मीडिया प्रकार के माध्यम से दर्शाया गया है। मीडिया प्रकारों के कुछ उदाहरणों में XML , JSON , और RDF । संसाधन घटकों द्वारा छेड़छाड़ कर रहे हैं। घटक मानक वर्दी इंटरफ़ेस के माध्यम से संसाधनों का अनुरोध और कुशलतापूर्वक उपयोग करते हैं। HTTP के मामले में, इस इंटरफ़ेस में मानक HTTP ops जैसे GET , PUT , POST , DELETE

@ अब्दुलजाइज़ का सवाल इस तथ्य को उजागर करता है कि REST और HTTP अक्सर उपयोग में लाया जाता है। यह मुख्य रूप से HTTP की सादगी और रीस्टफुल सिद्धांतों के लिए इसकी प्राकृतिक मानचित्रण के कारण है।

मौलिक रीस्ट सिद्धांतों

ग्राहक-सर्वर संचार

क्लाइंट-सर्वर आर्किटेक्चर में चिंताओं का एक बहुत ही अलग अलगाव है। रीस्टफुल शैली में बनाए गए सभी एप्लिकेशन सिद्धांत में क्लाइंट-सर्वर भी होना चाहिए।

राज्यविहीन

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

संचित करने योग्य

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

वर्दी इंटरफेस

सभी घटकों को एक वर्दी इंटरफेस के माध्यम से बातचीत करनी चाहिए। चूंकि सभी घटक इंटरैक्शन इस इंटरफेस के माध्यम से होता है, विभिन्न सेवाओं के साथ बातचीत बहुत सरल है। इंटरफ़ेस वही है! इसका मतलब यह भी है कि कार्यान्वयन में परिवर्तन अलगाव में किया जा सकता है। ऐसे परिवर्तन, मौलिक घटक बातचीत को प्रभावित नहीं करेंगे क्योंकि वर्दी इंटरफ़ेस हमेशा अपरिवर्तित होता है। एक नुकसान यह है कि आप इंटरफ़ेस से फंस गए हैं। यदि इंटरफ़ेस को बदलकर किसी विशिष्ट सेवा को ऑप्टिमाइज़ेशन प्रदान किया जा सकता है, तो आप भाग्य से बाहर हैं क्योंकि आरईएसटी इस पर प्रतिबंध लगाता है। चमकदार तरफ, हालांकि, आरईएसटी को वेब के लिए अनुकूलित किया गया है, इसलिए HTTP पर आरईएसटी की अविश्वसनीय लोकप्रियता!

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

आरईएसटी और उपरोक्त उल्लिखित गोलियों पर अधिक जानकारी के लिए आरईएसटी डिजाइन सिद्धांतों पर इस ब्लॉग post को देखें।

संपादित करें: टिप्पणियों के आधार पर सामग्री अपडेट करें


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

पेलोड क्या है?

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

अब, उदाहरण के लिए, मुझे टेलीग्राम भेजना है और हम सभी जानते हैं कि टेलीग्राम की लागत कुछ शब्दों पर निर्भर करेगी।

तो मुझे नीचे बताए गए इन दो संदेशों में से एक बताओ, जो भेजने के लिए सस्ता है?

<name>Arin</name>

या

"name": "Arin"

मुझे पता है कि आपका जवाब दूसरा होगा हालांकि दोनों एक ही संदेश का प्रतिनिधित्व करते हैं, दूसरा लागत के बारे में सस्ता है।

इसलिए मैं यह कहने की कोशिश कर रहा हूं कि जेएसओएन प्रारूप में नेटवर्क पर डेटा भेजना पेलोड के संबंध में एक्सएमएल प्रारूप में भेजने से सस्ता है

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

अब, एसओएपी एकमात्र एक्सएमएल का समर्थन करता है, लेकिन इसके फायदे भी हैं।

वास्तव में! कैसे?

एसओएपी एक्सएमएल पर तीन तरीकों से लिफाफा पर निर्भर करता है - जो संदेश में क्या है और इसे संसाधित करने के तरीके को परिभाषित करता है।

डेटा प्रकारों के लिए एन्कोडिंग नियमों का एक सेट, और अंत में प्रक्रिया कॉल का लेआउट और प्रतिक्रिया एकत्रित की गई।

यह लिफाफा एक परिवहन (HTTP / HTTPS) के माध्यम से भेजा जाता है, और एक आरपीसी (रिमोट प्रक्रिया कॉल) निष्पादित किया जाता है, और लिफाफा को एक्सएमएल स्वरूपित दस्तावेज़ में जानकारी के साथ वापस कर दिया जाता है।

महत्वपूर्ण बात यह है कि एसओएपी के फायदों में से एक "जेनेरिक" परिवहन का उपयोग है लेकिन आरईएसटी HTTP / HTTPS का उपयोग करता है । एसओएपी अनुरोध भेजने के लिए लगभग किसी भी परिवहन का उपयोग कर सकता है लेकिन आरईएसटी नहीं कर सकता है। तो यहां हमें SOAP का उपयोग करने का लाभ मिला।

जैसा कि मैंने उपरोक्त पैराग्राफ में पहले ही उल्लेख किया है "आरईएसटी HTTP / HTTPS का उपयोग करता है" , इसलिए इन शब्दों पर थोड़ा गहराई से जाएं।

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

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

इसके अलावा, आरईएसटी इसके HTTP प्रोटोकॉल द्वारा सीमित है, इसलिए इसका लेनदेन समर्थन न तो एसीआईडी ​​अनुपालन है और न ही वितरित अंतर्राष्ट्रीय संसाधनों में दो चरण प्रतिबद्धता प्रदान कर सकता है।

लेकिन एसओएपी के पास दीर्घकालिक लेनदेन के लिए एसीआईडी ​​आधारित लेनदेन प्रबंधन और दीर्घकालिक लेनदेन के लिए मुआवजे आधारित लेनदेन प्रबंधन दोनों के लिए व्यापक समर्थन है। यह वितरित संसाधनों में दो चरण प्रतिबद्धता का भी समर्थन करता है।

मैं कोई निष्कर्ष नहीं खींच रहा हूं, लेकिन मैं एसओएपी आधारित वेब सेवा पसंद करूंगा जबकि सुरक्षा, लेनदेन इत्यादि मुख्य चिंताएं हैं।

यहां "जावा ईई 6 ट्यूटोरियल" है जहां उन्होंने कहा है कि निम्न स्थितियों को पूरा होने पर एक विश्वसनीय डिजाइन उपयुक्त हो सकता है । एक नज़र देख लो।

आशा है कि आप मेरा जवाब पढ़ने का आनंद लेंगे।


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

आरईएसटी एसओएपी


के लिए अतिरिक्त:

++ एक गलती जिसे अक्सर आरईएसटी के पास आने पर बनाया जाता है, उसे "यूआरएल के साथ वेब सेवाएं" के रूप में सोचना है- एसईएपी की तरह एक अन्य रिमोट प्रोसेस कॉल (आरपीसी) तंत्र के रूप में आरईएसटी के बारे में सोचने के लिए, लेकिन सादे HTTP यूआरएल के माध्यम से और एसओएपी के भारी के बिना एक्सएमएल नेमस्पेस।

++ इसके विपरीत, आरईएसटी के साथ आरईएसटी के साथ बहुत कम करना है। जबकि आरपीसी सेवा उन्मुख है और कार्यों और क्रियाओं पर केंद्रित है, आरईएसटी संसाधन उन्मुख है, जो चीजों और संज्ञाओं पर जोर देती है जिसमें एक आवेदन शामिल है।


आरईएसटी ( आरई प्रस्तुतिकरण एस टेट टी ransfer)
आरईएसटी एक वास्तुशिल्प शैली है। यह SOAP जैसे कई मानकों को परिभाषित नहीं करता है। आरईएसटी डेटा पर सीआरयूडी संचालन को संभालने के लिए इंटरनेट पर सार्वजनिक एपीआई (यानी फेसबुक एपीआई, Google मैप्स एपीआई) को उजागर करने के लिए है। आरईएसटी एक ही संगत इंटरफ़ेस के माध्यम से नामित संसाधनों तक पहुंचने पर केंद्रित है।

SOAP ( एस imple एक ccess पी rotocol bject)
एसओएपी अपना खुद का प्रोटोकॉल लाता है और सेवाओं के रूप में आवेदन तर्क (डेटा नहीं) के टुकड़ों को उजागर करने पर केंद्रित है। एसओएपी संचालन का खुलासा करता है। एसओएपी नामित संचालन तक पहुंचने पर केंद्रित है, प्रत्येक ऑपरेशन कुछ व्यावसायिक तर्क लागू करता है। हालांकि एसओएपी को आमतौर पर वेब सेवाओं के रूप में जाना जाता है, यह गलत है। यदि वेब के साथ कुछ भी करना है तो एसओएपी बहुत कम है। आरईएसटी यूआरआई और HTTP के आधार पर सच्ची वेब सेवाएं प्रदान करता है।

आरईएसटी क्यों?

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

SOAP क्यों?

  • एसओएपी लागू करने के लिए बहुत आसान नहीं है और अधिक बैंडविड्थ और संसाधनों की आवश्यकता है।
  • एसओएपी संदेश अनुरोध को आरईएसटी की तुलना में धीमा संसाधित किया जाता है और यह वेब कैशिंग तंत्र का उपयोग नहीं करता है।
  • डब्ल्यूएस-सुरक्षा: जबकि एसओएपी एसएसएल का समर्थन करता है (आरईएसटी की तरह) यह डब्ल्यूएस-सिक्योरिटी का भी समर्थन करता है जो कुछ एंटरप्राइज़ सुरक्षा सुविधाओं को जोड़ता है।
  • डब्ल्यूएस-परमाणु ट्रांजैक्शन: किसी सेवा पर एसीआईडी लेनदेन की आवश्यकता है, आपको SOAP की आवश्यकता होगी।
  • डब्ल्यूएस-विश्वसनीय मैसेजिंग: यदि आपके एप्लिकेशन को असीमित प्रक्रिया और विश्वसनीयता और सुरक्षा की गारंटीकृत स्तर की आवश्यकता है। बाकी के पास एक मानक संदेश प्रणाली नहीं है और उम्मीद है कि ग्राहकों को पुनः प्रयास करके संचार विफलताओं से निपटने की उम्मीद है।
  • अगर सुरक्षा एक प्रमुख चिंता है और संसाधन सीमित नहीं हैं तो हमें एसओएपी वेब सेवाओं का उपयोग करना चाहिए। जैसे कि हम भुगतान गेटवे, वित्तीय और दूरसंचार से संबंधित काम के लिए एक वेब सेवा बना रहे हैं, तो हमें एसओएपी के साथ जाना चाहिए क्योंकि यहां उच्च सुरक्षा की आवश्यकता है।

spf13.com/post/soap-vs-rest
source2


आराम और साबुन के बीच अंतर

साबुन

  1. एसओएपी एक प्रोटोकॉल है।
  2. एसओएपी सरल ऑब्जेक्ट एक्सेस प्रोटोकॉल के लिए खड़ा है।
  3. एसओएपी आरईएसटी का उपयोग नहीं कर सकता क्योंकि यह एक प्रोटोकॉल है।
  4. एसओएपी व्यापार तर्क का पर्दाफाश करने के लिए सेवाओं के इंटरफेस का उपयोग करता है।
  5. एसओएपी मानकों को सख्ती से पालन करने के लिए परिभाषित करता है।
  6. एसओएपी को आरईएसटी की तुलना में अधिक बैंडविड्थ और संसाधन की आवश्यकता है।
  7. एसओएपी अपनी सुरक्षा को परिभाषित करता है।
  8. एसओएपी केवल एक्सएमएल डेटा प्रारूप की अनुमति देता है।
  9. एसओएपी आरईएसटी से कम पसंद है।

आराम

  1. आरईएसटी एक वास्तुशिल्प शैली है।
  2. आरईएसटी प्रतिनिधि राज्य हस्तांतरण के लिए खड़ा है।
  3. आरईएसटी एसओएपी वेब सेवाओं का उपयोग कर सकता है क्योंकि यह एक अवधारणा है और HTTP, SOAP जैसे किसी प्रोटोकॉल का उपयोग कर सकती है।
  4. आरईएसटी व्यापार तर्क का पर्दाफाश करने के लिए यूआरआई का उपयोग करता है।
  5. आरईएसटी एसओएपी जैसे बहुत अधिक मानकों को परिभाषित नहीं करता है।
  6. आरईएसटी को एसओएपी की तुलना में कम बैंडविड्थ और संसाधन की आवश्यकता है।
  7. विश्वसनीय वेब सेवाओं को अंतर्निहित परिवहन से सुरक्षा उपाय प्राप्त होते हैं।
  8. आरईएसटी विभिन्न डेटा प्रारूप जैसे सादा पाठ, एचटीएमएल, एक्सएमएल, जेएसओएन इत्यादि की अनुमति देता है।
  9. एसओएपी से आरईएसटी अधिक पसंदीदा।

अधिक जानकारी के लिए कृपया here देखें





soap