वेब सेवा

right|वेब सेवाएं आर्किटेक्चर|

वेब सेवाएं आजकल अक्सर एप्लीकेशन प्रोग्रामिंग इंटरफेसेस या वेब API है, जिनमें नेटवर्क जैसे इन्टरनेट के द्वारा प्रवेश किया जा सकता है और दूरस्थ प्रणाली परिचारक पर अनुरोधित सेवाओं को निष्पादित किया जा सकता है|

आम भाषा में कहा जाए तो यह शब्द वेब पर क्लाइंट और सर्वर के बीच हाइपरटेक्स्ट ट्रांसफर प्रोटोकॉल (HTTP), प्रोटोकॉल पर आधारित संवाद को संदर्भित करता है| इस तरह की सेवाएं इन दो में से किसी एक खेमें में आती हैं: बिग वेब सेवाएं [2] और RESTful वेब सेवाएं|

"बिग वेब सेवाएं" एक्स्टेंसिबल मार्कअप भाषा (XML) संदेश का उपयोग करती है जो कि सिम्पल ऑब्जेक्ट एक्सेस प्रोटोकॉल (SOAP) मानक का पालन करती है और पारंपरिक उद्यम में लोकप्रिय है| ऐसी प्रणालियों में, अक्सर सेवा द्वारा प्रदान की जानेवाली कार्य विधि का मशीन द्वारा पठनीय वर्णन होता है जो, वेब सर्विसेस डिस्क्रिप्शन लैंग्वेज (WSDL) में लिखा होता है| बाद वाली विशेषता SOAP "एंडपॉइंट" में आवश्यक नहीं है लेकिन यह कई जावा और .NET SOAP रूपरेखा में यह स्वचालित क्लाइंट-साइड कोड प्रस्तुत करने के लिए ज़रूरी है| (स्प्रिंग (Spring), अपाचे एक्सिस २ (Apach Axis 2) और अपाचे CXF जैसे कई फ्रेमवर्क्स इसमें उल्लेखनीय अपवाद हैं) WS-I जैसी, कुछ औद्योगिक संस्थाए, वेब सेवाओं की अपनी परिभाषा में SOAP और WSDL दोनों का समावेश करती हैं| 

thumb|375px|right|सेवा आधारित आर्किटेक्चर में वेब सेवाएं|
हाल ही में, "रिप्रेसेंटेशनल स्टेट ट्रान्सफर (RESTful)" वेब सेवाएं, विशेष रूप से इंटरनेट कंपनियों के साथ वापस लोकप्रियता हासिल कर रही हैं| पोस्ट (POST) के साथ, पुट (PUT), गेट (GET) और डिलीट (DELETE) HTTP तरीकों का उपयोग कर, ये अक्सर SOAP आधारित सेवाओं से HTTP और वेब ब्राउज़रों के साथ बेहतर एकीकृत रहे हैं| इन्हें XML संदेश या WSDL सेवाएं-API परिभाषा की आवश्यकता नहीं होती है| 

वेब API वेब सेवाओं में बना हुआ हैं (वेब 2.0 नामक आंदोलन में) जहां सिम्पल ऑब्जेक्ट एक्सेस प्रोटोकॉल (SOAP) आधारित सेवाओं से दूर अधिक प्रत्यक्ष रिप्रेसेंटेशनल स्टेट ट्रान्सफर (RESTful) शैली संचार की ओर जोर दिया गया है| वेब APIs मैशप के रूप में जाने जाने वाले नए अनुप्रयोग में एकाधिक वेब सेवाएं के संयोजन को अनुमति देता हैं| 

जब वेब डेवलपमेंट के संदर्भ में इस्तेमाल किया जाए, वेब API आम तौर पर एक हाइपरटेक्स्ट ट्रांसफर प्रोटोकॉल (HTTP) प्रतिक्रिया संदेश के ढांचे की एक परिभाषा के साथ अनुरोध संदेशों का समूह है, जो आमतौर पर एक एक्स्टेंसिबल मार्कअप भाषा (XML) या जावास्क्रिप्ट ऑब्जेक्ट नोटेशन (JSON) में प्रारूप होता है| 

जब समग्र वेब सेवाएं चल रही हो, प्रत्येक उप सेवा स्वायत्त मानी जा सकती है| उपयोगकर्ता का इन सेवाओं पर कोई नियंत्रण नहीं होता है| उपरांत यह वेब सेवाएं खुद विश्वसनीय नहीं होती, साथ ही य सेवा प्रदाता प्रयोक्ताओं को नोटिस दिए बिना अपनी सेवाओं को बंद, बदल या सुधार कर सकते हैं| विश्वसनीयता और दोष सहिष्णुता अच्छे से समर्थित नहीं की जाती; दोष निष्पादन के दौरान भी हो सकता है| वेब सेवाओं से सम्बंधित एक्शेप्शन हैंडलिंग क्षेत्र में अब भी शोध जारी है| 

W3C 'वेब सेवाओं' को "नेटवर्क पर इंटरओपेरेबल मशीन से मशीन को जोड़ने वाले एक सॉफ्टवेयर सिस्टम" के रूप में परिभाषित करता है| यह एक मशीन-प्रक्रियाकृत प्रारूप में वर्णित एक इंटरफेस होता है (जो विशेष रूप से वेब सेवा विवरण भाषा WSDL में होता है)| अन्य प्रणालियां अपने वर्णन द्वारा निर्धारित SOAP संदेश का उपयोग करके वेब सेवाओं के साथ संपर्क रखती हैं, आमतौर पर HTTP के साथ XML सिरिअलाईजेशन के अन्य वेब-मानकों के साथ संयोजन के रूप में उपयोग किया जाता है| [8] 

W3C यह भी कहता है की, "हम वेब सेवाओं को दो प्रमुख वर्गों में निर्देशित कर सकते हैं, REST-अनुरूप वेब सेवाएं, जिनमें सेवा का प्राथमिक उद्देश्य वेब संसाधनों के XML निरूपण को एक समान "स्टेटलेस" ओपरेशन के सेट का उपयोग करके चलाना होता है; और आर्बीटरी वेब सेवाएं, जिसमे सेवा की स्वेच्छित कार्य प्रणालियों को दिखा सकती है| [9]