मुझे जावा में वेब सेवाएँ सीखने की आवश्यकता है। इसमें विभिन्न प्रकार क्या हैं? [बन्द है]


91

हाल ही में, मैंने जावा वेब सेवाओं के बारे में सीखना शुरू करने का फैसला किया और जब मैंने गूगल में जावा वेब-सेवाओं के लिए एक ट्यूटोरियल खोजना शुरू किया, तो मुझे पता चला कि कई प्रकार के वेबसर्विस XML आधारित, SOAP आधारित, RESTful webservices भी हैं।

इसके अलावा, मैंने पाया कि एक्सएमएल आधारित वेब-सेवाओं के लिए एक JAX-WS विनिर्देश है, और RESTful वेबसर्विस बनाने के लिए JAX-RS विनिर्देश है।

Q1) मैं भ्रमित हो गया, यह बहुत अच्छा होगा यदि कोई मुझे इन विभिन्न प्रकार के वेबसर्विस के बीच के अंतर को समझने में मदद कर सकता है, ताकि मैं यह तय कर सकूं कि कौन सा पहले सीखना है।

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

Q3) मुझे किन परिदृश्यों और स्थितियों के आधार पर निर्णय लेना चाहिए कि मैं SOAP सेवा के बजाय XML आधारित वेब-सेवा बनाना चाहता हूं या मुझे RESTful सेवा के साथ जाना चाहिए।


जवाबों:


142
  1. SOAP वेब सेवाएँ लगभग हर सॉफ़्टवेयर प्लेटफ़ॉर्म द्वारा मानक-आधारित और समर्थित हैं: वे XML में बहुत अधिक भरोसा करते हैं और लेनदेन, सुरक्षा, अतुल्यकालिक संदेशों और कई अन्य मुद्दों के लिए समर्थन करते हैं। यह एक बहुत बड़ा और जटिल मानक है, लेकिन लगभग हर मैसेजिंग स्थिति को कवर करता है। दूसरी तरफ, Restful सेवाएं किसी भी प्रारूप, बेहतर JSON और XML में संदेशों को बदलने के लिए HTTP प्रोटोकॉल और क्रियाओं (GET, POST, PUT, DELETE) पर निर्भर करती हैं। यह एक बहुत ही सरल और सुरुचिपूर्ण वास्तुशिल्प दृष्टिकोण है।
  2. जावा वर्ल्ड में हर विषय की तरह, वेब सेवाओं का निर्माण / उपभोग करने के लिए कई पुस्तकालय हैं। SOAP साइड में आपके पास JAX-WS मानक और Apache Axis है , और REST में आप अन्य पुस्तकालयों के बीच रेस्टलेट्स या स्प्रिंग रेस्ट सुविधाओं का उपयोग कर सकते हैं ।

प्रश्न 3 के साथ, यह आलेख बताता है कि RESTful Services इस परिदृश्य में उपयुक्त हैं:

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

जबकि SOAP जाने का रास्ता है:

  • यदि आपको अतुल्यकालिक प्रसंस्करण की आवश्यकता होती है
  • यदि आपको औपचारिक अनुबंध / इंटरफेस की आवश्यकता है
  • आपके सेवा संचालन में स्थितियाँ हैं: उदाहरण के लिए, आप एक अनुरोध पर जानकारी / डेटा संग्रहीत करते हैं और अगले एक पर उस संग्रहीत डेटा का उपयोग करते हैं।

11
+1 इतना स्पष्ट और परिदृश्यों को स्पष्ट करने के लिए :)
राजेश पेंटुला

कुरकुरा और स्पष्ट जवाब।
कृष्ण

अच्छा जवाब के लिए +1 ... !!!
शैलेश सक्सेना

अच्छा जवाब, क्या आप मुझे बता सकते हैं कि स्टेटलेस / स्टेटफुल ऑपरेशन्स क्या हैं?
कीर्तिवासन

मैंने उन अवधारणाओं सहित उत्तर को संपादित किया।
कार्लोस गाविडिया-काल्डेरन

13

Q1) यहाँ कुछ चीज़ें पढ़ने या गूगल करने के लिए हैं:

जावा में SOAP और रेस्टफुल वेब सेवाओं के बीच मुख्य अंतर http://www.ajaxonomy.com/2008/xml/web-services-part-1-soap-vs-rest

यह आपके ऊपर है कि आप पहले क्या सीखना चाहते हैं। मैं आपको सीएक्सएफ ढांचे पर एक नज़र डालने की सलाह दूंगा । आप आराम / साबुन दोनों सेवाओं का निर्माण कर सकते हैं।

Q2) यहाँ साबुन के लिए कुछ अच्छे ट्यूटोरियल हैं (मैंने उन्हें बुकमार्क किया था):

http://united-coders.com/phillip-steffensen/developing-a-simple-soap-webservice-using-spring-301-and-apache-cxf-226

http://www.benmccann.com/blog/web-services-tutorial-with-apache-cxf/

http://www.mastertheboss.com/web-interfaces/337-apache-cxf-interceptors.html

सीखने का सबसे अच्छा तरीका सिर्फ ट्यूटोरियल पढ़ना नहीं है। लेकिन आप एक बुनियादी विचार प्राप्त करने के लिए सबसे पहले गर्त ट्यूटोरियल जाएंगे ताकि आप देख सकें कि आप कुछ उत्पादन कर पा रहे हैं (या नहीं) और यह आपको प्रेरित करेगा।

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

उन दो टैग्स के लिए सदस्यता लें जो आपके लिए दिलचस्प हैं और लगातार बने रहें, अच्छे प्रश्न पूछें और अच्छे उत्तर देने का प्रयास करें और मैं आपको गारंटी देता हूं कि आप इसे समय पास होने पर सीखेंगे (यदि आप लगातार हैं)।

Q3) आपको इसका उत्तर स्वयं देना होगा। पहले यह तय करके कि आप क्या बनाने जा रहे हैं, आखिरकार आपको कुछ मिनी प्रोजेक्ट या कुछ और सोचना होगा और उसे वहां से ले जाना होगा।

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


7

SOAP WS दूरस्थ प्रक्रिया कॉल (यानी RPC) और संदेश उन्मुख मध्य-वेयर (MOM) एकीकरण शैलियों का समर्थन करता है। बाकी वेब सेवा केवल RPC एकीकरण शैली का समर्थन करती है।

SOAP WS ट्रांसपोर्ट प्रोटोकॉल न्यूट्रल है। HTTP (एस), मैसेजिंग, टीसीपी, यूडीपी एसएमटीपी आदि जैसे कई प्रोटोकॉल का समर्थन करता है। आरईएसटी ट्रांसपोर्ट प्रोटोकॉल विशिष्ट है। केवल HTTP या HTTPS प्रोटोकॉल का समर्थन करता है।

SOAP WS केवल XML डेटा फॉर्मेट को अनुमति देता है। आप ऑपरेशन्स को परिभाषित करते हैं, जो POST के माध्यम से सुरंगों में आता है। नाम संचालन पर ध्यान केंद्रित करने और सेवा के रूप में आवेदन तर्क को उजागर करने पर है। REST XML, JSON डेटा, टेक्स्ट, HTML आदि जैसे कई डेटा स्वरूपों की अनुमति देता है। किसी भी ब्राउज़र का उपयोग किया जा सकता है क्योंकि REST दृष्टिकोण मानक GET, PUT, POST और DELETE वेब संचालन का उपयोग करता है। नामित संसाधनों तक पहुंचने और डेटा को सेवा के रूप में उजागर करने पर ध्यान केंद्रित किया गया है। REST का AJAX समर्थन है। यह XMLHttpRequest ऑब्जेक्ट का उपयोग कर सकता है। स्टेटलेस CRUD (क्रिएट, रीड, अपडेट और डिलीट) ऑपरेशंस के लिए अच्छा है। GET - प्रतिनिधित्व () POST - acceptRepresention () PUT - storeRepresention () DELETE - removeRepresention ()

SOAP आधारित रीड को कैश नहीं किया जा सकता है। रीस्ट आधारित रीडिंग को कैश किया जा सकता है। बेहतर प्रदर्शन और तराजू। SOAP WS SSL सुरक्षा और WS- सुरक्षा दोनों का समर्थन करता है, जो कुछ एंटरप्राइज़ सुरक्षा सुविधाओं को जोड़ता है जैसे सुरक्षा को उस बिंदु तक बनाए रखना है जहाँ इसकी आवश्यकता है, बिचौलियों के माध्यम से पहचान बनाए रखना और केवल SSL को इंगित करने के लिए न केवल संदेश के विभिन्न भागों को सुरक्षित करना विभिन्न सुरक्षा एल्गोरिदम, आदि REST केवल पॉइंट-टू-पॉइंट SSL सुरक्षा का समर्थन करता है। SSL पूरे संदेश को एन्क्रिप्ट करता है, चाहे वह सभी संवेदनशील हो या नहीं। SOAP को अल्पकालिक लेन-देन के लिए ACID आधारित लेनदेन प्रबंधन और लंबे समय तक चलने वाले लेन-देन के लिए क्षतिपूर्ति आधारित लेनदेन प्रबंधन दोनों के लिए व्यापक समर्थन है। यह वितरित संसाधनों में दो-चरण की प्रतिबद्धताओं का भी समर्थन करता है। REST लेनदेन का समर्थन करता है,

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

source http://java-success.blogspot.in/2012/02/java-web-services-interview-quest.html


> बाकी वेब सेवा केवल RPC एकीकरण शैली का समर्थन करती है। REST RPC नहीं है, RPC कहती है, "कुछ विधियों को परिभाषित करें जो कुछ करते हैं" जबकि REST कहता है, "कुछ संसाधनों को परिभाषित करें और उनके पास ये विधियाँ होंगी"। peej.co.uk/articles/rest.html
urmalp

0

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

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.