वेब सर्विस

एक वेब सेवा (डब्लूएस) या तो है:
 * एक इलेक्ट्रॉनिक उपकरण द्वारा किसी अन्य इलेक्ट्रॉनिक उपकरण को दी जाने वाली सेवा, इंटरनेट के माध्यम से एक दूसरे के साथ संचार करना है, या
 * कंप्यूटर उपकरण पर चलने वाला सर्वर, नेटवर्क पर किसी विशेष पोर्ट पर अनुरोधों को सुनना, वेब दस्तावेज़ों ( हाइपरटेक्स्ट परहस्त शिष्टाचार, जेएसओएन, एक्सएमएल, इमेज) को उपलब्ध करना है।

वेब सेवा में वेब शब्द का प्रयोग एक मिथ्या नाम है। वेब सेवाएँ वर्ल्ड वाइड वेब (डब्ल्यूडब्ल्यूडब्ल्यू) का उपयोग नहीं करती हैं, जो इंटरनेट पर चलने वाला एक मानव उपयोगकर्ता इंटरफ़ेस है, बल्कि डब्ल्यूडब्ल्यूडब्ल्यू प्रोटोकॉल का उपयोग करके इंटरनेट पर चलने वाली मशीन-टू-मशीन सेवा है।

एक वेब सेवा में, हाइपरटेक्स्ट ट्रांसफर प्रोटोकॉल जैसी वेब तकनीक का उपयोग मशीन-पठनीय फ़ाइल स्वरूपों जैसे एक्सएमएलएचटीटीपीअनुरोध और जेएसओएन को स्थानांतरित करने के लिए किया जाता है।

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

अतुल्यकालिक जावास्क्रिप्ट और एक्सएमएल
अतुल्यकालिक जावास्क्रिप्ट और एक्सएमएल (एजेएएक्स) वेब सेवाओं के लिए एक प्रमुख तकनीक है। एचटीटीपी सर्वर, जावास्क्रिप्ट क्लाइंट और प्लेन ओल्ड एक्सएमएल (एसओएपी और डब्लू3सी वेब सेवाओं से अलग) के संयोजन से विकसित होकर, अब इसे अधिकांशतः जेएसओएन वेब टोकन के साथ-साथ, या एक्सएमएल के अतिरिक्त उपयोग किया जाता है।

शेष
प्रतिनिधि स्थिति हस्तांतरण (आरईएसटी) अच्छी तरह से व्यवहार वाली वेब सेवाओं के लिए एक वास्तुकला है जो इंटरनेट पैमाने पर काम कर सकता है।

2004 के एक दस्तावेज़ में, डब्लू3सी निम्नलिखित आरईएसटी को वेब सेवाओं की प्रमुख विशिष्ट विशेषता के रूप में सेट करता है: "हम वेब सेवाओं के दो प्रमुख वर्गों की पहचान कर सकते हैं:
 * आरईएसटी-आज्ञाकारी वेब सेवाएं, जिसमें सेवा का प्राथमिक उद्देश्य वेब संसाधन के एक्सएमएल अभ्यावेदन में हेरफेर करना, जिसमें एकसमान सेट का उपयोग करके स्थितिविहीन संचालनों; और
 * इच्छानुसार वेब सेवाएं, जिसमें सेवा संचालन के इच्छानुसार सेट को प्रकट कर सकती है।"

- डब्लू3सी

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

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

डब्लू3सी वेब सेवाएं
डब्लू3सी वेब सेवाओं के संबंध में, डब्लू3सी ने एक वेब सेवा को इस प्रकार परिभाषित किया: "क वेब सेवा एक सॉफ्टवेयर प्रणाली है जिसे एक नेटवर्क पर इंटरऑपरेबल मशीन-टू-मशीन इंटरैक्शन का समर्थन करने के लिए डिज़ाइन किया गया है। इसमें एक मशीन-संसाधित प्रारूप में वर्णित एक इंटरफ़ेस (विशेष रूप से डब्ल्यूएसडीएल) है। अन्य प्रणालियाँ वेब सेवा के साथ एसओएपी-संदेशों का उपयोग करके इसके विवरण द्वारा निर्धारित विधि से वार्तालाप करती हैं, सामान्यतः एचटीटीपी का उपयोग एक्सएमएल क्रमांकन के साथ अन्य वेब-संबंधित मानकों के संयोजन में किया जाता है।"

- डब्ल्यू3सी

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

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

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

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

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

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

संचार के इन सभी नियमों को वेब सर्विसेज डिस्क्रिप्शन भाषा (वेब ​​सर्विसेज डिस्क्रिप्शन भाषा ) नामक एक फाइल में जिसमें एक    विस्तार परिभाषित किया गया है। (स्वायत्त वेब सेवाओं के प्रस्ताव (एडब्ल्यूएस) अधिक लचीली वेब सेवाओं को विकसित करना चाहते हैं जो कठोर नियमों पर विश्व नहीं करते हैं।)

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

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

आलोचना
नॉन-रेस्टफुल वेब सेवाओं के आलोचक अधिकांशतः शिकायत करते हैं कि वे बहुत जटिल हैं और विशिष्ट ओपन-सोर्स मॉडल कार्यान्वयन के अतिरिक्त बड़े सॉफ़्टवेयर विक्रेताओं या इंटीग्रेटर्स पर आधारित है।

संदेश प्रारूप के रूप में एक्सएमएल के वेब सेवाओं के उपयोग और लिफाफा और परिवहन में एसओएपी/एचटीटीपी के कारण प्रदर्शन के बारे में भी चिंताएं हैं।

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

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

वेब सेवाओं की खोज और खोज
जबकि यूडीडीआई का उद्देश्य एक सेवा निर्देशिका के रूप में सेवा करना और वेब सेवाओं की खोज का साधन बनना था, कई विक्रेताओं ने 2005-2008 के बीच अपने यूडीडीआई समाधान या रिपॉजिटरी को बंद कर दिया, जिसमें Microsoft, SAP, IBM, अन्य शामिल थे। डब्ल्यूडब्ल्यूडब्ल्यू 2008 सम्मेलन (बीजिंग, चीन) में प्रकाशित एक प्रमुख अध्ययन एसओएपी-आधारित वेब सेवाओं की स्थिति प्रस्तुत की और निष्कर्ष निकाला कि अध्ययन के समय उपलब्ध एसओएपी-आधारित वेब सेवाओं में से केवल 63% ही वास्तव में सक्रिय थीं या उन्हें प्रयुक्त किया जा सकता था। अध्ययन में यह भी पाया गया कि डिजाइन जटिलता के कारण यूडीडीआई जैसी सेवा रजिस्ट्रियों की तुलना में खोज इंजन वेब सेवाओं की खोज के लिए एक आदर्श स्रोत बन रहे थे।

यह भी देखें

 * वेब सेवा ढांचे की सूची
 * वेब सेवा प्रोटोकॉल की सूची
 * वेब सेवा विनिर्देशों की सूची
 * मध्यस्थ
 * सेवा-उन्मुख वास्तुकला (SOA)
 * वेब मानचित्र सेवा
 * वेब एपीआई

बाहरी संबंध

 * Messaging Design Pattern documentation at SOA Patterns
 * The Web Services Activity page at W3C
 * Web Services Architecture, the W3C Working Group Note (11 February 2004)
 * Investigating Web Services on the World Wide Web, the analysis presented at the WWW2008 conference
 * Guide to Secure Web Services (SP 800-95) at NIST