वेब सर्विस

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

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

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

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

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

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

2004 के एक दस्तावेज़ में, W3C निम्नलिखित REST को वेब सेवाओं की प्रमुख विशिष्ट विशेषता के रूप में सेट करता है: "We can identify two major classes of Web services:
 * REST-compliant Web services, in which the primary purpose of the service is to manipulate XML representations of Web resource s using a uniform set of stateless operations; and
 * arbitrary Web services, in which the service may expose an arbitrary set of operations."

- W3C

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

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

W3C वेब सेवाएं
W3C वेब सेवाओं के संबंध में, W3C ने एक वेब सेवा को इस प्रकार परिभाषित किया: "A web service is a software system designed to support interoperable machine-to-machine interaction over a network. It has an interface described in a machine-processable format (specifically WSDL). Other systems interact with the web service in a manner prescribed by its description using SOAP-messages, typically conveyed using HTTP with an XML serialization in conjunction with other web-related standards."

- W3C

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

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

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

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

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

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

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

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

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

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

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

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

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

वेब सेवाओं की खोज और खोज
जबकि यूडीडीआई का उद्देश्य एक सेवा निर्देशिका के रूप में सेवा करना और वेब सेवाओं की खोज का साधन बनना था, कई विक्रेताओं ने 2005-2008 के बीच अपने यूडीडीआई समाधान या रिपॉजिटरी को बंद कर दिया, जिसमें Microsoft, SAP, IBM, अन्य शामिल थे। डब्ल्यूडब्ल्यूडब्ल्यू 2008 सम्मेलन (बीजिंग, चीन) में प्रकाशित एक प्रमुख अध्ययन SOAP-आधारित वेब सेवाओं की स्थिति प्रस्तुत की और निष्कर्ष निकाला कि अध्ययन के समय उपलब्ध SOAP-आधारित वेब सेवाओं में से केवल 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