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

ऊपर दिया गया चित्र एक बहुत ही सरल दृश्य दिखाता है कि एक वेब सेवा वास्तव में कैसे काम करेगी। क्लाइंट अनुरोधों के माध्यम से एक सर्वर पर वेब सेवा कॉल की एक श्रृंखला को आमंत्रित करेगा जो वास्तविक वेब सेवा को होस्ट करेगा।
ये अनुरोध रिमोट प्रोसीजर कॉल के नाम से जाने जाने वाले माध्यम से किए जाते हैं। रिमोट प्रोसीजर कॉल (RPC) उन विधियों के लिए किए जाने वाले कॉल हैं जो संबंधित वेब सेवा द्वारा होस्ट किए जाते हैं।
उदहारण के लिए, Amazon एक वेब सेवा प्रदान करता है जो amazon.com के माध्यम से ऑनलाइन बेचे जाने वाले उत्पादों के लिए कीमतें प्रदान करता है। फ्रंट एंड या प्रेजेंटेशन लेयर .Net या में हो सकता है Java लेकिन किसी भी प्रोग्रामिंग भाषा में वेब सेवा के साथ संचार करने की क्षमता होगी।
वेब सेवा डिज़ाइन का मुख्य घटक वह डेटा है जो क्लाइंट और सर्वर के बीच स्थानांतरित होता है, और वह XML है। XML (एक्सटेंसिबल मार्कअप लैंग्वेज) यह HTML का समकक्ष है तथा समझने में आसान मध्यवर्ती भाषा है, जिसे अनेक प्रोग्रामिंग भाषाएं समझती हैं।
इसलिए जब एप्लिकेशन एक दूसरे से बात करते हैं, तो वे वास्तव में XML में बात करते हैं। यह विभिन्न प्रोग्रामिंग भाषाओं में विकसित एप्लिकेशन को एक दूसरे से बात करने के लिए एक सामान्य प्लेटफ़ॉर्म प्रदान करता है।
वेब सेवाएँ अनुप्रयोगों के बीच XML डेटा भेजने के लिए SOAP (सिंपल ऑब्जेक्ट एक्सेस प्रोटोकॉल) नामक किसी चीज़ का उपयोग करती हैं। डेटा सामान्य HTTP पर भेजा जाता है। वेब सेवा से एप्लिकेशन को भेजे जाने वाले डेटा को SOAP संदेश कहा जाता है। SOAP संदेश कुछ और नहीं बल्कि एक XML दस्तावेज़ है। चूँकि दस्तावेज़ XML में लिखा जाता है, इसलिए वेब सेवा को कॉल करने वाला क्लाइंट एप्लिकेशन किसी भी प्रोग्रामिंग भाषा में लिखा जा सकता है।
आपको वेब सेवा की आवश्यकता क्यों है?
आधुनिक समय के व्यावसायिक अनुप्रयोग वेब-आधारित अनुप्रयोगों को विकसित करने के लिए विभिन्न प्रकार के प्रोग्रामिंग प्लेटफ़ॉर्म का उपयोग करते हैं। कुछ अनुप्रयोगों को विकसित किया जा सकता है Javaकुछ .Net में, जबकि कुछ अन्य Angular JS, Node.js आदि में।
अक्सर ऐसा होता है कि इन विषम अनुप्रयोगों के बीच किसी न किसी तरह का संचार होना ज़रूरी होता है। चूँकि इन्हें अलग-अलग विकास भाषाओं का उपयोग करके बनाया जाता है, इसलिए अनुप्रयोगों के बीच सटीक संचार सुनिश्चित करना वाकई मुश्किल हो जाता है।
यहीं पर वेब सेवाएँ आती हैं। वेब सेवाएँ एक सामान्य प्लेटफ़ॉर्म प्रदान करती हैं जो विभिन्न प्लेटफार्मों पर कई अनुप्रयोगों का निर्माण करने की अनुमति देती हैं। प्रोग्रामिंग की भाषाएँ एक दूसरे के साथ संवाद करने की क्षमता होना।
वेब सेवा का प्रकार
वेब सेवाएँ मुख्यतः दो प्रकार की होती हैं।
- SOAP वेब सेवाएँ.
- RESTful वेब सेवाएँ.
किसी वेब सेवा को पूरी तरह कार्यात्मक बनाने के लिए, कुछ निश्चित घटकों का होना ज़रूरी है। वेब सेवा की प्रोग्रामिंग के लिए चाहे किसी भी डेवलपमेंट भाषा का इस्तेमाल किया जाए, इन घटकों का मौजूद होना ज़रूरी है।
आइये इन घटकों पर अधिक विस्तार से नजर डालें।
SOAP (सिंपल ऑब्जेक्ट एक्सेस प्रोटोकॉल)
SOAP को ट्रांसपोर्ट-इंडिपेंडेंट मैसेजिंग प्रोटोकॉल के रूप में जाना जाता है। SOAP XML डेटा को SOAP मैसेज के रूप में ट्रांसफर करने पर आधारित है। प्रत्येक संदेश में कुछ ऐसा होता है जिसे XML दस्तावेज़ के रूप में जाना जाता है। केवल XML दस्तावेज़ की संरचना ही एक विशिष्ट पैटर्न का अनुसरण करती है, लेकिन सामग्री नहीं। वेब सेवाओं और SOAP का सबसे अच्छा हिस्सा यह है कि यह सब HTTP के माध्यम से भेजा जाता है, जो मानक वेब प्रोटोकॉल है।
SOAP संदेश में निम्न बातें शामिल होती हैं:
- प्रत्येक SOAP दस्तावेज़ में एक मूल तत्व होना चाहिए जिसे कहा जाता है मूल तत्व XML दस्तावेज़ में पहला तत्व है।
- “लिफाफा” दो भागों में विभाजित है। पहला हेडर है, और दूसरा बॉडी है।
- हेडर में रूटिंग डेटा होता है जो मूलतः वह सूचना होती है जो XML दस्तावेज़ को बताती है कि उसे किस क्लाइंट को भेजा जाना है।
- मुख्य भाग में वास्तविक संदेश होगा।
नीचे दिया गया चित्र SOAP के माध्यम से संचार का एक सरल उदाहरण दिखाता है।
हम इस लेख में SOAP पर विस्तार से चर्चा करेंगे। ट्यूटोरियल.
WSDL (वेब सेवा विवरण भाषा)
यदि वेब सेवा नहीं मिल पाती तो उसका उपयोग नहीं किया जा सकतावेब सेवा को आमंत्रित करने वाले क्लाइंट को पता होना चाहिए कि वेब सेवा वास्तव में कहां स्थित है।
दूसरा, क्लाइंट एप्लिकेशन को यह जानना होगा कि वेब सेवा वास्तव में क्या करती है, ताकि वह सही वेब सेवा को आमंत्रित कर सके। यह WSDL की मदद से किया जाता है, जिसे वेब सेवा विवरण भाषा के रूप में जाना जाता है। WSDL फ़ाइल फिर से एक XML-आधारित फ़ाइल है जो मूल रूप से क्लाइंट एप्लिकेशन को बताती है कि वेब सेवा क्या करती है। WSDL दस्तावेज़ का उपयोग करके, क्लाइंट एप्लिकेशन यह समझने में सक्षम होगा कि वेब सेवा कहाँ स्थित है और इसका उपयोग कैसे किया जा सकता है।
वेब सेवा उदाहरण
WSDL फ़ाइल का एक वेब सेवा उदाहरण नीचे दिया गया है।
<definitions> <message name="TutorialRequest"> <part name="TutorialID" type="xsd:string"/> </message> <message name="TutorialResponse"> <part name="TutorialName" type="xsd:string"/> </message> <portType name="Tutorial_PortType"> <operation name="Tutorial"> <input message="tns:TutorialRequest"/> <output message="tns:TutorialResponse"/> </operation> </portType> <binding name="Tutorial_Binding" type="tns:Tutorial_PortType"> <soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/> <operation name="Tutorial"> <soap:operation soapAction="Tutorial"/> <input> <soap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="urn:examples:Tutorialservice" use="encoded"/> </input> <output> <soap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="urn:examples:Tutorialservice" use="encoded"/> </output> </operation> </binding> </definitions>
वेब सेवाओं के उपरोक्त WSDL घोषणा उदाहरणों के बारे में ध्यान देने योग्य महत्वपूर्ण पहलू इस प्रकार हैं:
- - WSDL परिभाषा में संदेश पैरामीटर का उपयोग वेब सेवा द्वारा किए गए प्रत्येक ऑपरेशन के लिए अलग-अलग डेटा तत्वों को परिभाषित करने के लिए किया जाता है। इसलिए ऊपर दिए गए वेब सेवा उदाहरणों में, हमारे पास 2 संदेश हैं जिन्हें वेब सेवा और क्लाइंट एप्लिकेशन के बीच आदान-प्रदान किया जा सकता है, एक है "TutorialRequest", और दूसरा है "TutorialResponse" ऑपरेशन। TutorialRequest में "TutorialID" नामक एक तत्व होता है जो स्ट्रिंग प्रकार का होता है। इसी तरह, TutorialResponse ऑपरेशन में "TutorialName" नामक एक तत्व होता है जो एक स्ट्रिंग प्रकार का भी होता है।
- - यह वास्तव में उस ऑपरेशन का वर्णन करता है जिसे वेब सेवा द्वारा निष्पादित किया जा सकता है, जिसे हमारे मामले में ट्यूटोरियल कहा जाता है। यह ऑपरेशन 2 संदेश ले सकता है; एक इनपुट संदेश है, और दूसरा आउटपुट संदेश है।
- - इस तत्व में वह प्रोटोकॉल होता है जिसका उपयोग किया जाता है। इसलिए हमारे मामले में, हम इसे http ( का उपयोग करने के लिए परिभाषित कर रहे हैंhttp://schemas.xmlsoap.org/soap/http) हम ऑपरेशन के मुख्य भाग के लिए अन्य विवरण भी निर्दिष्ट करते हैं, जैसे नामस्थान और क्या संदेश को एनकोड किया जाना चाहिए।
हम इस लेख में “WDSL” पर विस्तार से चर्चा करेंगे। ट्यूटोरियल.
सार्वभौम Descriptआयन, खोज और एकीकरण (UDDI)
UDDI एक मानक है जो किसी विशेष सेवा प्रदाता द्वारा प्रदान की जाने वाली वेब सेवाओं का वर्णन, प्रकाशन और खोज करता है। यह एक विनिर्देश प्रदान करता है जो वेब सेवाओं पर जानकारी होस्ट करने में मदद करता है।
अब हमने पिछले विषय में WSDL के बारे में चर्चा की और बताया कि इसमें वेब सेवा वास्तव में क्या करती है, इस बारे में जानकारी कैसे होती है। लेकिन एक क्लाइंट एप्लिकेशन किसी वेब सेवा द्वारा पेश किए जाने वाले विभिन्न कार्यों को समझने के लिए WSDL फ़ाइल का पता कैसे लगा सकता है? तो UDDI इसका उत्तर है और एक रिपॉजिटरी प्रदान करता है जिस पर WSDL फ़ाइलों को होस्ट किया जा सकता है। इसलिए क्लाइंट एप्लिकेशन के पास UDDI तक पूरी पहुँच होगी, जो सभी WSDL फ़ाइलों वाले डेटाबेस के रूप में कार्य करता है।
जिस प्रकार एक टेलीफोन निर्देशिका में किसी विशेष व्यक्ति का नाम, पता और टेलीफोन नंबर होता है, उसी प्रकार UDDI रजिस्ट्री में वेब सेवा के लिए प्रासंगिक जानकारी होगी।. ताकि क्लाइंट एप्लीकेशन को पता चले कि उसे कहां पाया जा सकता है।
वेब सेवा के लाभ
हम पहले से ही समझते हैं कि वेब सेवाएं क्यों अस्तित्व में आईं, जिसका उद्देश्य एक ऐसा मंच उपलब्ध कराना था जो विभिन्न अनुप्रयोगों को एक दूसरे से बातचीत करने की अनुमति दे सके।
लेकिन आइए वेब सेवाओं के लाभों की सूची देखें कि वेब सेवाओं का उपयोग करना क्यों महत्वपूर्ण है।
- नेटवर्क पर व्यावसायिक कार्यक्षमता को उजागर करना - वेब सेवा प्रबंधित कोड की एक इकाई है जो क्लाइंट एप्लिकेशन या अंतिम उपयोगकर्ताओं को किसी प्रकार की कार्यक्षमता प्रदान करती है। इस कार्यक्षमता को HTTP प्रोटोकॉल पर लागू किया जा सकता है जिसका अर्थ है कि इसे इंटरनेट पर भी लागू किया जा सकता है। आजकल सभी एप्लिकेशन इंटरनेट पर हैं जो वेब सेवाओं के उद्देश्य को और अधिक उपयोगी बनाता है। इसका मतलब है कि वेब सेवा इंटरनेट पर कहीं भी हो सकती है और आवश्यकतानुसार आवश्यक कार्यक्षमता प्रदान कर सकती है।
- अनुप्रयोगों के बीच अंतर-संचालनीयता - वेब सेवाएँ विभिन्न अनुप्रयोगों को एक दूसरे से बात करने और आपस में डेटा और सेवाएँ साझा करने की अनुमति देती हैं। सभी प्रकार के अनुप्रयोग एक दूसरे से बात कर सकते हैं। इसलिए विशिष्ट कोड लिखने के बजाय जिसे केवल विशिष्ट अनुप्रयोग ही समझ सकते हैं, अब आप सामान्य कोड लिख सकते हैं जिसे सभी अनुप्रयोग समझ सकते हैं
- एक मानकीकृत प्रोटोकॉल जिसे हर कोई समझता है - वेब सेवाएँ संचार के लिए मानकीकृत उद्योग प्रोटोकॉल का उपयोग करती हैं। सभी चार परतें (सेवा परिवहन, XML संदेशन, सेवा Descriptआयन, और सेवा खोज परतें) वेब सेवा प्रोटोकॉल स्टैक में अच्छी तरह से परिभाषित प्रोटोकॉल का उपयोग करती हैं।
- संचार की लागत में कमी - वेब सेवाएँ HTTP प्रोटोकॉल पर SOAP का उपयोग करती हैं, इसलिए आप वेब सेवाओं को लागू करने के लिए अपने मौजूदा कम लागत वाले इंटरनेट का उपयोग कर सकते हैं।
वेब सेवाएँ Archiटेक्चर
प्रत्येक फ्रेमवर्क को किसी न किसी प्रकार की वास्तुकला की आवश्यकता होती है ताकि यह सुनिश्चित किया जा सके कि पूरा फ्रेमवर्क वांछित तरीके से काम करे, इसी तरह, वेब सेवाओं में भी। वेब सेवाएँ Archiटेक्चर इसमें तीन अलग-अलग भूमिकाएं शामिल हैं, जो नीचे दी गई हैं:
- Provider - प्रदाता वेब सेवा बनाता है और इसे उन क्लाइंट एप्लिकेशन के लिए उपलब्ध कराता है जो इसका उपयोग करना चाहते हैं।
- निवेदन कर्ता - अनुरोधकर्ता कुछ और नहीं बल्कि क्लाइंट एप्लीकेशन है जिसे वेब सेवा से संपर्क करने की आवश्यकता होती है। क्लाइंट एप्लीकेशन .Net हो सकता है, Java, या कोई अन्य भाषा आधारित अनुप्रयोग जो वेब सेवा के माध्यम से किसी प्रकार की कार्यक्षमता की तलाश करता है।
- दलाल - ब्रोकर कुछ और नहीं बल्कि वह एप्लीकेशन है जो UDDI तक पहुँच प्रदान करता है। UDDI, जैसा कि पहले विषय में चर्चा की गई है, क्लाइंट एप्लीकेशन को वेब सेवा का पता लगाने में सक्षम बनाता है।
नीचे दिया गया चित्र दर्शाता है कि सेवा प्रदाता, सेवा अनुरोधकर्ता और सेवा रजिस्ट्री एक दूसरे के साथ किस प्रकार अंतःक्रिया करते हैं।
- प्रकाशित करना - एक प्रदाता ब्रोकर (सेवा रजिस्ट्री) को ग्राहकों के लिए सेवा सुलभ बनाने के लिए ब्रोकर के प्रकाशन इंटरफ़ेस का उपयोग करके वेब सेवा के अस्तित्व के बारे में सूचित करता है
- खोज – अनुरोधकर्ता किसी प्रकाशित वेब सेवा का पता लगाने के लिए ब्रोकर से परामर्श करता है
- बाँध - वेब सेवा के बारे में ब्रोकर (सेवा रजिस्ट्री) से प्राप्त जानकारी के साथ, अनुरोधकर्ता वेब सेवा को बांधने या आह्वान करने में सक्षम होता है।
वेब सेवा विशेषताएँ
वेब सेवाओं की निम्नलिखित विशेष व्यवहारगत विशेषताएं होती हैं:
- वे XML-आधारित हैं - वेब सेवाएँ प्रतिनिधित्व और डेटा परिवहन परतों पर डेटा का प्रतिनिधित्व करने के लिए XML का उपयोग करती हैं। XML का उपयोग करने से किसी भी नेटवर्किंग, ऑपरेटिंग सिस्टम या प्लेटफ़ॉर्म पर निर्भरता समाप्त हो जाती है क्योंकि XML सभी द्वारा समझी जाने वाली सामान्य भाषा है।
- आजादी से मिलना - शिथिल युग्मित का अर्थ है कि क्लाइंट और वेब सेवा एक दूसरे से बंधे नहीं हैं, जिसका अर्थ है कि भले ही वेब सेवा समय के साथ बदल जाए, लेकिन इससे क्लाइंट द्वारा वेब सेवा को कॉल करने के तरीके में कोई बदलाव नहीं होना चाहिए। शिथिल युग्मित आर्किटेक्चर को अपनाने से सॉफ़्टवेयर सिस्टम अधिक प्रबंधनीय हो जाते हैं और विभिन्न प्रणालियों के बीच सरल एकीकरण की अनुमति मिलती है।
- Synchronous या अतुल्यकालिक कार्यक्षमता - Syncतुल्यकालिकता क्लाइंट को सेवा के निष्पादन के लिए बाध्य करने को संदर्भित करती है। सिंक्रोनस ऑपरेशन में, क्लाइंट वास्तव में वेब सेवा द्वारा ऑपरेशन पूरा करने की प्रतीक्षा करेगा। इसका एक उदाहरण संभवतः एक परिदृश्य है जिसमें डेटाबेस रीड और राइट ऑपरेशन किया जा रहा है। यदि डेटा को एक डेटाबेस से पढ़ा जाता है और बाद में दूसरे में लिखा जाता है, तो ऑपरेशन को क्रमिक तरीके से किया जाना चाहिए। एसिंक्रोनस ऑपरेशन क्लाइंट को एक सेवा को आमंत्रित करने और फिर समानांतर में अन्य कार्यों को निष्पादित करने की अनुमति देता है। यह सुनिश्चित करने के लिए आम और शायद सबसे पसंदीदा तकनीकों में से एक है कि जब कोई विशेष ऑपरेशन किया जा रहा हो तो अन्य सेवाएँ बंद न हों।
- रिमोट प्रोसीजर कॉल (RPC) का समर्थन करने की क्षमता - वेब सेवाएँ क्लाइंट को XML-आधारित प्रोटोकॉल का उपयोग करके दूरस्थ ऑब्जेक्ट पर प्रक्रियाओं, फ़ंक्शन और विधियों को लागू करने में सक्षम बनाती हैं। दूरस्थ प्रक्रियाएँ इनपुट और आउटपुट पैरामीटर को उजागर करती हैं जिनका वेब सेवा को समर्थन करना चाहिए।
- दस्तावेज़ विनिमय का समर्थन करता है - XML का एक मुख्य लाभ यह है कि यह न केवल डेटा बल्कि जटिल दस्तावेज़ों को भी प्रस्तुत करने का सामान्य तरीका है। ये दस्तावेज़ वर्तमान पते का प्रतिनिधित्व करने जितना सरल हो सकते हैं, या वे पूरी किताब का प्रतिनिधित्व करने जितना जटिल भी हो सकते हैं।