हमें यह बताने की आवश्यकता है कि SOAP और WSDL के बीच अंतर क्या है, यह बताने से पहले एक वेब सेवा है जहां दो (SOAP और WSDL) एक वेब सेवा के घटक हैं
अधिकांश अनुप्रयोगों को उपयोगकर्ताओं के साथ बातचीत करने के लिए विकसित किया जाता है, उपयोगकर्ता एक इंटरफ़ेस के माध्यम से डेटा में प्रवेश करता है या खोजता है और एप्लिकेशन तब उपयोगकर्ता के इनपुट पर प्रतिक्रिया करता है।
एक वेब सेवा कमोबेश यही काम करती है सिवाय इसके कि एक वेब सेवा एप्लिकेशन केवल मशीन से मशीन या एप्लिकेशन से एप्लिकेशन तक संचार करती है। अक्सर कोई प्रत्यक्ष उपयोगकर्ता सहभागिता नहीं होती है।
एक वेब सेवा मूल रूप से खुले प्रोटोकॉल का एक संग्रह है जो अनुप्रयोगों के बीच डेटा का आदान-प्रदान करने के लिए उपयोग किया जाता है। खुले प्रोटोकॉल का उपयोग वेब सेवाओं को प्लेटफॉर्म के स्वतंत्र होने में सक्षम बनाता है। सॉफ्टवेयर जो विभिन्न प्रोग्रामिंग भाषाओं में लिखे गए हैं और जो विभिन्न प्लेटफार्मों पर चलते हैं, इंटरनेट जैसे कंप्यूटर नेटवर्क पर डेटा का आदान-प्रदान करने के लिए वेब सेवाओं का उपयोग कर सकते हैं। दूसरे शब्दों में, विंडोज़ अनुप्रयोग PHP, जावा और पर्ल एप्लिकेशन और कई अन्य लोगों से बात कर सकते हैं, जो सामान्य परिस्थितियों में संभव नहीं होगा।
वेब सेवाएँ कैसे काम करती हैं?
विभिन्न प्रोग्रामिंग भाषाओं में अलग-अलग एप्लिकेशन लिखे जाने के कारण, वे अक्सर एक दूसरे के साथ संवाद नहीं कर पाते हैं। एक वेब सेवा मुख्य रूप से XML, SOAP और WSDL के खुले प्रोटोकॉल और मानकों के संयोजन का उपयोग करके इस संचार को सक्षम करती है। एक वेब सेवा डेटा को टैग करने के लिए एक्सएमएल का उपयोग करती है, एक संदेश को स्थानांतरित करने के लिए एसओएपी और अंत में डब्ल्यूएसडीएल को सेवाओं की उपलब्धता का वर्णन करने के लिए। आइए एक वेब सेवा एप्लिकेशन के इन तीन मुख्य घटकों पर एक नज़र डालें।
सरल ऑब्जेक्ट एक्सेस प्रोटोकॉल (SOAP)
सिम्पल ऑब्जेक्ट एक्सेस प्रोटोकॉल या SOAP इंटरऑपरेबिलिटी मुद्दों (इंटरप्रेन्योरिटी का अर्थ है कि जिस प्लेटफॉर्म पर वेब सेवा चल रही है, वह अप्रासंगिक हो जाती है) के बिना संदेश भेजने और प्राप्त करने के लिए एक प्रोटोकॉल है। एक अन्य प्रोटोकॉल जिसमें समान फ़ंक्शन है HTTP है। इसका उपयोग वेब पेज तक पहुँचने या नेट सर्फ करने के लिए किया जाता है। HTTP यह सुनिश्चित करता है कि आपको इस बात की चिंता करने की ज़रूरत नहीं है कि आप किस तरह का वेब सर्वर - चाहे अपाचे या आईआईएस या कोई अन्य - आपके द्वारा देखे जा रहे पृष्ठों की सेवा करता है या आपके द्वारा देखे गए पृष्ठ ASP.NET या HTML में बनाए गए हैं।
क्योंकि SOAP का उपयोग अनुरोध और प्रतिक्रिया दोनों के लिए किया जाता है, इसकी सामग्री इसके उद्देश्य के आधार पर थोड़ी भिन्न होती है।
नीचे SOAP अनुरोध और प्रतिक्रिया संदेश का एक उदाहरण है
SOAP अनुरोध:
POST /InStock HTTP/1.1
Host: www.bookshop.org
Content-Type: application/soap+xml; charset=utf-8
Content-Length: nnn
<?xml version="1.0"?>
<soap:Envelope
xmlns:soap="http://www.w3.org/2001/12/soap-envelope"
soap:encodingStyle="http://www.w3.org/2001/12/soap-encoding">
<soap:Body xmlns:m="http://www.bookshop.org/prices">
<m:GetBookPrice>
<m:BookName>The Fleamarket</m:BookName>
</m:GetBookPrice>
</soap:Body>
</soap:Envelope>
SOAP प्रतिक्रिया:
POST /InStock HTTP/1.1
Host: www.bookshop.org
Content-Type: application/soap+xml; charset=utf-8
Content-Length: nnn
<?xml version="1.0"?>
<soap:Envelope
xmlns:soap="http://www.w3.org/2001/12/soap-envelope"
soap:encodingStyle="http://www.w3.org/2001/12/soap-encoding">
<soap:Body xmlns:m="http://www.bookshop.org/prices">
<m:GetBookPriceResponse>
<m: Price>10.95</m: Price>
</m:GetBookPriceResponse>
</soap:Body>
</soap:Envelope>
हालाँकि दोनों संदेश समान दिखते हैं, फिर भी वे अलग-अलग तरीके अपनाते हैं। उदाहरण के लिए उपरोक्त उदाहरणों को देखकर आप देख सकते हैं कि अनुरोध करने वाला संदेश GetBookPrice
पुस्तक की कीमत प्राप्त करने के लिए विधि का उपयोग करता है। द्वारा किया जाता हैGetBookPriceResponse
विधि है, जो संदेश है कि आप "अनुरोधकर्ता" के रूप में देखेंगे। आप यह भी देख सकते हैं कि संदेश XML का उपयोग करके बनाए गए हैं।
वेब सेवाएँ विवरण भाषा या WSDL
डब्ल्यूएसडीएल एक दस्तावेज है जो एक वेब सेवा का वर्णन करता है और आपको यह भी बताता है कि इसके तरीकों का उपयोग और उपयोग कैसे करें।
डब्लूएसडीएल इस बात का ध्यान रखता है कि आप कैसे जानते हैं कि वेब सेवा में कौन सी विधियाँ उपलब्ध हैं जिन्हें आप इंटरनेट पर ठोकर खाते हैं।
नमूना WSDL फ़ाइल पर एक नज़र डालें:
<?xml version="1.0" encoding="UTF-8"?>
<definitions name ="DayOfWeek"
targetNamespace="http://www.roguewave.com/soapworx/examples/DayOfWeek.wsdl"
xmlns:tns="http://www.roguewave.com/soapworx/examples/DayOfWeek.wsdl"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns="http://schemas.xmlsoap.org/wsdl/">
<message name="DayOfWeekInput">
<part name="date" type="xsd:date"/>
</message>
<message name="DayOfWeekResponse">
<part name="dayOfWeek" type="xsd:string"/>
</message>
<portType name="DayOfWeekPortType">
<operation name="GetDayOfWeek">
<input message="tns:DayOfWeekInput"/>
<output message="tns:DayOfWeekResponse"/>
</operation>
</portType>
<binding name="DayOfWeekBinding" type="tns:DayOfWeekPortType">
<soap:binding style="document"
transport="http://schemas.xmlsoap.org/soap/http"/>
<operation name="GetDayOfWeek">
<soap:operation soapAction="getdayofweek"/>
<input>
<soap:body use="encoded"
namespace="http://www.roguewave.com/soapworx/examples"
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
</input>
<output>
<soap:body use="encoded"
namespace="http://www.roguewave.com/soapworx/examples"
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
</output>
</operation>
</binding>
<service name="DayOfWeekService" >
<documentation>
Returns the day-of-week name for a given date
</documentation>
<port name="DayOfWeekPort" binding="tns:DayOfWeekBinding">
<soap:address location="http://localhost:8090/dayofweek/DayOfWeek"/>
</port>
</service>
</definitions>
डब्लूएसडीएल फ़ाइल के बारे में याद रखने वाली मुख्य बातें यह हैं कि यह आपको प्रदान करता है:
एक वेब सेवा का विवरण
वेब सेवा जिन विधियों का उपयोग करती है और जो पैरामीटर लेती हैं
वेब सेवाओं का पता लगाने का एक तरीका