वेब सेवाएँ क्या हैं और वे क्यों महत्वपूर्ण हैं? सादा अंग्रेजी में "वेब सेवा" क्या है

अलेक्जेंडर कचानोव

वेब सेवाओं का विचार कंप्यूटर उद्योग के दिग्गजों जैसे Sun, Oracle, HP, Microsoft और IBM द्वारा विकसित किया गया था। यह विचार कोई नया नहीं है, लेकिन कार्यक्रमों को वेब पर एक्सेस करना आसान बनाने की दिशा में यह एक बड़ा कदम है। मानक संचार प्रारूपों के आधार पर, वेब सेवाएं आम तौर पर हमारी समझ को बदल सकती हैं कि हमें वेबसाइट कैसे बनानी चाहिए।

वेब सेवा क्या है?

वेब सेवाओं के लिए धन्यवाद, किसी भी कार्यक्रम के कार्यों को इंटरनेट पर उपलब्ध कराया जा सकता है। इस प्रकार, PHP, ASP, JSP स्क्रिप्ट, JavaBeans, COM ऑब्जेक्ट्स और हमारे अन्य सभी पसंदीदा प्रोग्रामिंग टूल जैसे प्रोग्राम अब किसी अन्य सर्वर (यानी वेब सेवा) पर चल रहे कुछ प्रोग्राम तक पहुँच सकते हैं और उसकी वेबसाइट या एप्लिकेशन पर उससे प्राप्त प्रतिक्रिया का उपयोग कर सकते हैं।

मान लीजिए कि मुझे कुछ प्रोग्रामिंग कार्य करने की आवश्यकता है और मैं बहुत व्यस्त हूं (या पहिया को फिर से शुरू करने के लिए मेरे दिमाग से बाहर), मैं एक वेब सेवा की सेवाओं का उपयोग कर सकता हूं जिसे मेरी साइट इंटरनेट के माध्यम से एक्सेस करेगी। वेब सेवा के पैरामीटर के साथ अनुरोध पास करना, मुझे एक प्रतिक्रिया प्राप्त होने की उम्मीद है जिसमें मेरे अनुरोध का परिणाम होगा।

जिसने भी कभी काम किया हो हाल तकसाथ हॉटमेल, पहले ही कुछ वेब सेवाओं का सामना कर चुका है: पासपोर्ट उपयोगकर्ता प्रमाणीकरण प्रणाली Microsoft .NET पहल में शामिल सेवाओं में से एक है। जबकि यह फ्री में उपलब्ध है, ताकि वेबसाइट क्रिएटर्स अपनी साइट पर यूजर ऑथेंटिकेशन को आसानी से लागू कर सकें।

मूल बातें

वेब सेवाओं के पीछे सिद्धांत उल्लेखनीय रूप से सरल हैं। और वे वितरित कंप्यूटिंग और इंटरनेट की दुनिया में कुछ भी नया नहीं जोड़ते हैं:

  • वेब सेवा के लिए जिम्मेदार व्यक्ति अपनी वेब सेवा और उसकी प्रतिक्रियाओं के अनुरोधों के प्रारूप को परिभाषित करता है
  • नेटवर्क पर कोई भी कंप्यूटर वेब सेवा के लिए अनुरोध करता है
  • वेब सेवा अनुरोध को संसाधित करती है, कुछ क्रिया करती है, और फिर प्रतिक्रिया भेजती है

यह क्रिया, उदाहरण के लिए, स्टॉक भाव प्रदर्शित करना, किसी विशेष उत्पाद की कीमत प्रदर्शित करना, अपॉइंटमेंट कैलेंडर प्रविष्टि को सहेजना, एक भाषा से दूसरी भाषा में पाठ का अनुवाद करना या क्रेडिट कार्ड नंबर की जाँच करना हो सकता है।

मूल में मानक

वेब सेवाओं में हम सभी की अचानक रुचि का कारण यह है कि वे डेटा के आदान-प्रदान और संचारण के लिए मानकों, खुले प्रोटोकॉल पर आधारित हैं।

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

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

सिंपल ऑब्जेक्ट एक्सेस प्रोटोकॉल (SOAP) W3C द्वारा विकसित एक मानक प्रोटोकॉल है। यह वेब सेवाओं के अनुरोधों के प्रारूप को परिभाषित करता है।

एक वेब सेवा और उसके उपयोगकर्ता के बीच संदेशों को SOAP लिफाफे (SOAP लिफाफे) में पैक किया जाता है। संदेशों में या तो कुछ कार्रवाई करने का अनुरोध होता है, या प्रतिक्रिया होती है - इस क्रिया को करने का परिणाम। लिफाफा और इसकी सामग्री एक्सएमएल-एन्कोडेड हैं और समझने में काफी आसान हैं। यहाँ एक सरल SOAP अनुरोध जैसा दिखता है, जिसे HTTP के माध्यम से वेब सेवा में भेजा जाता है:

xmlns:env="http://www.w3.org/2001/06/soap-envelope">


xmlns:m="http://www.somesite.com/postcode">
WC1A8GH
यूके


SOAP लिफाफे के प्रमुख तत्वों को पहचानना आसान है: ये दो पैरामीटर हैं ( ("ज़िप कोड") और ("देश")), जो एक तत्व के भीतर समाहित हैं . यह तत्व उस वेब सेवा का नाम है जिससे हम अनुरोध कर रहे हैं। लिफाफे में अन्य डेटा, जैसे टेक्स्ट एन्कोडिंग और SOAP संस्करण, वेब सेवा को अनुरोध को सही ढंग से संसाधित करने में मदद करता है।

और उत्तर इस प्रकार दिखेगा:

xmlns:env="http://www.w3.org/2001/06/soap-लिफाफा" >

env:encodingStyle="http://www.w3.org/2001/06/soap-encoding"
xmlns:m="http://www.somesite.com/postcode">
हाँ


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

अब यूडीडीआई के बारे में

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

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

यह सब कैसे काम करता है

तो मैं सही वेब सेवा कैसे ढूंढूं?

आइए कल्पना करें कि मैं एक वेबसाइट डेवलपर हूं और मेरे क्लाइंट ने मुझे साइट पर जोड़ने के लिए कहा नयी विशेषता: पंजीकरण फॉर्म में ज़िप कोड सत्यापन जोड़ने की आवश्यकता है।

इस जाँच को करने के लिए, मुझे उन सभी 30 देशों के सभी डाक कोडों का एक डेटाबेस बनाना होगा जहाँ हमारी कंपनी व्यवसाय करती है, और फिर जाँच करें कि पंजीकरण के दौरान पंजीकरण में निर्दिष्ट शहर से डाक कोड मेल खाता है या नहीं। लेकिन मेरे पास यह डेटा नहीं है, और मुझे लगता है कि इस तरह के डेटा को इकट्ठा करने के लिए काफी पैसा खर्च करना होगा।

एक डेटाबेस खरीदने के लिए बाहर निकलने के बजाय, अपना कोड लिखना, यह सुनिश्चित करना कि सभी डेटा सुसंगत और सही हैं, और डिबगिंग स्क्रिप्ट, मैं बस यूडीडीआई निर्देशिका में जाता हूं और एक वेब सेवा की तलाश करता हूं जो मेरे लिए काम कर सके। । http://www.uddi.org/ पर पहुंचकर, मैं खोज करता हूं और XYZ Corp की एक बेहतरीन सेवा पाता हूं।

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

यह समय लेने लायक है

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

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

डर गिराओ! मैं शर्त लगा सकता हूं कि वेब पर पहले से ही एक वेब सेवा है जो आपको आवश्यक कार्य प्रदान करने के लिए तैयार है, और इस वेब सेवा का उपयोग करने की लागत इसके एनालॉग को स्वयं विकसित करने की लागत से बहुत कम होगी। इस प्रकार, आप अपने डेवलपर को अपने क्लाइंट से अनावश्यक सिरदर्द से बचाते हैं बरबाद करनापैसा, यूडीडीआई कैटलॉग ब्राउज़ करने में बस कुछ मिनट खर्च करना।

सेवा विकास

बेशक, डेवलपर्स को केवल दूसरों द्वारा बनाई गई वेब सेवाओं के लिए समझौता नहीं करना पड़ता है। निम्न में से किसी एक टूलकिट की सहायता से, आप अपनी स्वयं की वेब सेवा बना सकते हैं और नेटवर्क के अन्य निवासियों को इसकी सेवाएँ प्रदान कर सकते हैं।

वेब सेवाओं के विकास के लिए उपकरणों का विकल्प व्यापक है। इसमें Sun (Open Net), Microsoft (.NET), (e-services), और IBM (Web Services) जैसी कंपनियों के टूलकिट शामिल हैं। ओपन सोर्स फ्रेमवर्क भी हैं। उदाहरण के लिए, मोनो प्रोजेक्ट Microsoft .NET टूलकिट को यूनिक्स सहित सभी प्लेटफार्मों पर समान वेब सेवाओं को चलाने के लिए एक संकलन प्रणाली (संकलक), कोड निष्पादन (रनटाइम) और पुस्तकालय (पुस्तकालय) प्रदान करके प्रतिस्थापित करना चाहता है।

विभिन्न प्रकार के सर्वर और वेब सेवा विकास उपकरण के बावजूद, वे सभी एक ही SOAP प्रोटोकॉल, XML भाषा और UDDI प्रणाली का समर्थन करते हैं।

विपक्ष

इससे पहले कि मैं एक प्रोग्रामर के रूप में अपने करियर को पूरी तरह से छोड़ दूं और खुद को वेब सेवाओं का उपयोग करने के लिए समर्पित कर दूं, मुझे खुद से यह सवाल पूछना होगा: "यह तस्वीर बहुत गुलाबी है। इसमें गलत क्या है?"। दुर्भाग्य से, वेब सेवाओं की महान क्षमता के लिए भुगतान करने की कीमत है:

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

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

व्याख्या: उपयोग के क्षेत्र। लाभ। .NET प्लेटफॉर्म के लिए वेब सेवाओं के विकास की विशेषताएं। वेब सेवा का विवरण और खोज

XML वेब सेवा क्या है?

सूचना प्रौद्योगिकी के विकास के साथ, कार्यक्रम लिखने के विभिन्न दृष्टिकोण उत्पन्न हुए हैं: मॉड्यूलर प्रोग्रामिंग, घटना संचालित की गई प्रोग्रामिंग, घटक-उन्मुख प्रोग्रामिंगऔर डिजाइन। इन दृष्टिकोणों की तार्किक निरंतरता सेवा-उन्मुख थी सॉफ्टवेयर डेवलपमेंट.

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

चलो कॉल करो सेवाएक संसाधन जो एक व्यावसायिक कार्य को लागू करता है और इसमें निम्नलिखित गुण होते हैं:

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

किसी सेवा का एक विशेष मामला XML वेब सेवा है।

एक्सएमएल वेब सेवाएक विशेष प्रकार का वेब एप्लिकेशन है जो:

  • एक वेब सर्वर पर तैनात;
  • उन वेब विधियों को प्रकाशित करता है जिन्हें बाहरी क्लाइंट द्वारा कॉल किया जा सकता है;
  • HTTP अनुरोधों की प्राप्ति की प्रतीक्षा करता है, जो वेब विधियों को कॉल करने के लिए आदेश हैं;
  • वेब विधियों को निष्पादित करता है और परिणाम लौटाता है।

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

एक वेब सेवा स्टॉक की कीमतों के बारे में वास्तविक समय की जानकारी प्रदान कर सकती है, क्रेडिट कार्ड की जांच कर सकती है या मौसम की रिपोर्ट कर सकती है। वेब सेवाएँ पारंपरिक अनुप्रयोगों की तरह विविध हैं।

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

अधिकांश वेब सेवाओं के तरीकों को HTTP अनुरोधों द्वारा कॉल किया जाता है जिसमें SOAP संदेश होते हैं SOAP HTTP और अन्य प्रोटोकॉल पर दूरस्थ प्रक्रियाओं को कॉल करने के लिए एक XML भाषा (XML शब्दावली) है (SOAP का पूर्ण विवरण http://www.w3.org/TR/SOAP) .

अन्य दूरस्थ कॉलिंग तकनीकों के बीच वेब सेवाओं का स्थान

कई रिमोट इनवोकेशन प्रोटोकॉल और प्रौद्योगिकियां हैं: Microsoft वितरित घटक ऑब्जेक्ट मॉडल (DCOM), ऑब्जेक्ट मैनेजमेंट ग्रुप का कॉमन ऑब्जेक्ट रिक्वेस्ट ब्रोकर आर्किटेक्चर (CORBA), सन का रिमोट मेथड इनवोकेशन (RMI),। NET रीमोटिंग, XML वेब सेवाएँ।

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

इन तकनीकों के विपरीत, XML वेब सेवाएँ और . NET रीमोटिंग पूरी तरह से लागू है वस्तु-उन्मुख दृष्टिकोणवेब प्रोग्रामिंग के लिए।

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

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

.NET प्लेटफॉर्म पर वेब सेवाओं का विकास

वेब सेवाओं को लिखने के कई तरीके हैं। उन्हें हाथ से विकसित किया जा सकता है या Microsoft, IBM और अन्य द्वारा प्रदान किए गए SOAP टूल का उपयोग करके Microsoft के साथ वेब सेवाएँ लिखी जा सकती हैं। NET के दो फायदे हैं:

  • .NET फ्रेमवर्क क्लास लाइब्रेरी प्रदान करके और व्यक्तिगत विकास चरणों को स्वचालित करके विकास प्रक्रिया को बहुत सरल करता है;
  • .NET फ्रेमवर्क के साथ लिखी गई वेब सेवाएँ प्रबंधित अनुप्रयोग हैं। यही है, ऐसे अनुप्रयोगों में मेमोरी लीक, गलत तरीके से आरंभिक पॉइंटर्स और अन्य विशिष्ट प्रोग्रामिंग समस्याओं की कोई समस्या नहीं है।

निर्माण

आइए एक सरल AdditionService वेब सेवा विकसित करें जो दो संख्याओं को जोड़ती है। इसमें केवल एक ऐड विधि होगी जो दो पूर्णांकों को एक पैरामीटर के रूप में लेती है और एक पूर्णांक भी लौटाती है। AdditionService Microsoft .NET फ्रेमवर्क का उपयोग करके प्रोग्रामिंग वेब सेवाओं के लिए कई महत्वपूर्ण सिद्धांतों को प्रदर्शित करता है।

  • वेब सेवाओं को एएसएमएक्स फाइलों के रूप में कार्यान्वित किया जाता है। ASMX मुख्य ASP .NET Machine.config कॉन्फ़िगरेशन फ़ाइल में ASP .NET (अधिक विशेष रूप से, ASP.NET HTTP हैंडलर) के साथ पंजीकृत एक विशेष फ़ाइल नाम एक्सटेंशन है।
  • ASMX फाइलें @WebService निर्देश से शुरू होती हैं। इस निर्देश में कम से कम क्लास विशेषता शामिल होनी चाहिए, जो उस वर्ग को निर्दिष्ट करती है जिसमें वेब सेवा शामिल है।
  • वेब सेवा कक्षाओं में वैकल्पिक वेब सेवा विशेषताएँ हो सकती हैं। में यह उदाहरणऐसी विशेषता वेब सेवा का नाम और विवरण निर्दिष्ट करती है जो HTML पृष्ठ पर प्रदर्शित होता है जब उपयोगकर्ता ब्राउज़र में AdditionService.asmx को कॉल करता है।
  • वेब सेवा वर्ग के सार्वजनिक तरीकों के लिए WebMethod विशेषता निर्दिष्ट करके वेब विधियों की घोषणा की जाती है। सहायक तरीकों के लिए जो आंतरिक रूप से उपयोग किए जाते हैं लेकिन बाहरी ग्राहकों के लिए उपलब्ध नहीं हैं, यह विशेषता केवल छोड़ी गई है।
  • HTTP, XML और SOAP "अदृश्य" हैं। XML डेटा और SOAP संदेशों को .NET फ्रेमवर्क द्वारा नियंत्रित किया जाता है।

अतिरिक्त सेवा.asmx<%@ WebService language="C#" Class="AddService" %>System.Web.Services वर्ग AddService (सार्वजनिक int जोड़ें (int a, int b) (रिटर्न a + b)) का उपयोग करके सिस्टम का उपयोग करना

इसके छोटे आकार के बावजूद, ASP.NET वेब सर्वर पर स्थापित होने पर AddService.asmx एक पूर्ण वेब सेवा है। इसके तरीकों को SOAP, HTTP GET और HTTP POST के साथ लागू किया जाता है, और यह SOAP प्रतिक्रियाओं के रूप में या साधारण XML रैपर के रूप में परिणाम लौटा सकता है।

पृष्ठभूमि कोड का उपयोग करके, वेब सेवा कक्षाओं को एएसएमएक्स फाइलों से अलग फाइलों में ले जाया जा सकता है।

वेब सेवाएं उपयोग का समर्थन करती हैं जटिल डेटा प्रकारइनपुट या आउटपुट पैरामीटर के रूप में। जटिल डेटा प्रकार समर्थित हैं क्योंकि XML अधिकांश डेटा प्रकारों को क्रमबद्ध करना आसान बनाता है। हालांकि, स्वचालित रूप से एक वेब सेवा का परीक्षण करते समय, एएसपी .NET स्वीकार करने वाली विधियों के लिए परीक्षण पृष्ठ उत्पन्न नहीं करता है जटिल प्रकारआंकड़े। ऐसा इसलिए है क्योंकि आप HTTP GET और POST का उपयोग करके जटिल डेटा प्रकारों को वेब विधि में पास नहीं कर सकते।

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

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

अनुबंधों का उपयोग करके वेब सेवाओं का वर्णन करना

अन्य डेवलपर्स के लिए AdditionService का उपयोग करने के लिए, उन्हें यह जानने की आवश्यकता है कि यह किन तरीकों को उजागर करता है, यह किस प्रोटोकॉल का समर्थन करता है, विधि हस्ताक्षर और वेब सेवा पता (URL)। यह सब और अन्य जानकारी डब्लूएसडीएल (वेब ​​सेवा विवरण भाषा) में वर्णित की जा सकती है।


वेब सेवा डिस्कवरी

AdditionService के अस्तित्व के बारे में अन्य डेवलपर्स कैसे जानते हैं?

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

वीएसडीआईएससीओ फाइलों का उपयोग करना भी संभव है, जो डिस्को फाइलों के समान हैं, लेकिन उनकी सामग्री निर्दिष्ट निर्देशिकाओं और सभी नेस्टेड उपनिर्देशिकाओं में वेब सेवाओं के लिए गतिशील खोज का परिणाम है। ASP .NET .vsdisco फ़ाइल नाम एक्सटेंशन को HTTP हैंडलर में मैप करता है जो asmx और डिस्को के लिए दी गई निर्देशिका और इसकी उपनिर्देशिकाओं की खोज करता है और गतिशील रूप से उत्पन्न DISCO दस्तावेज़ लौटाता है। सुरक्षा कारणों से, .NET फ्रेमवर्क के कुछ संस्करणों में गतिशील खोज अक्षम है, लेकिन आप Machine.config फ़ाइल में प्रविष्टियों को संपादित करके इसे सक्षम कर सकते हैं।

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

परिणाम

एक XML वेब सेवा एक सॉफ्टवेयर घटक है जो सबसे अधिक कार्यक्षमता प्रदान करता है विभिन्न प्रणालियाँ, XML और HTTP वेब सेवा क्लाइंट जैसे सहायक मानक या तो स्थानीय या दूरस्थ अनुप्रयोग हो सकते हैं। वेब सेवाएँ आपको ऐसी संरचनाएँ बनाने की अनुमति देती हैं जो सरल, सामान्य रूप से स्वीकृत मानकों के आधार पर विभिन्न प्रणालियों को एकीकृत करना आसान बनाती हैं।

हमने समीक्षा की है सामान्य अवधारणाएँतंत्र « वेब-सेवाएं"।आइए कुछ ज्ञान ताज़ा करें।

सर्वर और क्लाइंट के बीच डेटा का आदान-प्रदान करने के लिए वेब सेवाओं का उपयोग किया जाता है; XML प्रारूप का उपयोग संचार में दोनों प्रतिभागियों के बीच आपसी समझ के लिए "पैकेज" डेटा के लिए किया जाता है।

अध्यायमैं

कार्यान्वयन उदाहरणवेबप्रणाली में सेवा "1 सी: उद्यम"

काम:एक वेब सेवा बनाना आवश्यक है, जिसके संदर्भ में ग्राहक अपने अनुप्रयोगों के लिए सभी आवश्यक जानकारी निर्धारित कर सकते हैं।

कार्य एक प्रदर्शन है और तंत्र को समझने और सीखने के लिए केवल एक उदाहरण के रूप में कार्य करता हैवेब-सेवाएं।

समाधान:

स्टेप 1।आइए एक नया कॉन्फ़िगरेशन विकसित करने के लिए कॉन्फ़िगरेशन के बिना एक नया इन्फोबेस बनाएं।

चरण दोआइए कॉन्फ़िगरेशन में कुछ नई वस्तुएं जोड़ें

निर्देशिका "ग्राहक";

दस्तावेज़ "आवेदन";

गणना "अनुप्रयोगों की स्थिति"।

चरण 3चलिए एक नया XDTO पैकेज बनाते हैं।

हम एक एक्सडीटीओ पैकेज क्यों और क्यों बना रहे हैं? आप "अध्याय 16. डेवलपर की मार्गदर्शिका" और में XDTO तंत्र का उपयोग करने के बारे में अधिक पढ़ सकते हैं।

आइए संक्षेप में केवल यह ध्यान दें कि एक्सडीटीओ तंत्र विभिन्न बाहरी डेटा स्रोतों और सॉफ्टवेयर सिस्टम के साथ बातचीत के लिए डेटा प्रस्तुत करने का एक सार्वभौमिक तरीका है।

हमारे मामले में, वेब सेवा के वापसी मूल्य का वर्णन करने के लिए एक एक्सडीटीओ पैकेज बनाया गया है।

शाखा का विस्तार करें "सामान्य" → "एक्सडीटीओ पैकेज" → जोड़ें ...

XDTO पैकेज का नाम निर्दिष्ट करें " दस्तावेज़ डेटा” और इसका नामस्थान http://localhost/request या http://192.168.1.76/request (समझने और सीखने की प्रक्रिया में आसानी के लिए, हम उस कंप्यूटर का स्थानीय आईपी पता इंगित करते हैं जहां वेब सर्वर स्थापित है (समर्थित वेब सर्वर: आईआईएस या अपाचे))। प्रत्येक वेब सेवा को उसके नाम और उस नामस्थान के URI द्वारा विशिष्ट रूप से पहचाना जा सकता है जिससे वह संबंधित है।

हमारे पैकेज में दो प्रकार के XDTO ऑब्जेक्ट हैं:

1) ग्राहक- "ग्राहक" निर्देशिका तत्व के डेटा को स्थानांतरित करने के लिए।

- नाम ;

2) दस्तावेज़- दस्तावेज़ "एप्लिकेशन" के डेटा को स्थानांतरित करने के लिए

इस प्रकार के XDTO ऑब्जेक्ट में निम्नलिखित गुण होंगे:

- ग्राहक- http://192.168.1.76/request नामस्थान से ग्राहक प्रकार; XDTO ऑब्जेक्ट का एक संदर्भ है जिसे हमने ऊपर परिभाषित किया है;

- दर्जा- http://www.w3.org/2001/XMLSchema नामस्थान से स्ट्रिंग प्रकार;

- नंबर- http://www.w3.org/2001/XMLSchema नामस्थान से स्ट्रिंग प्रकार।

चरण 4कॉन्फ़िगरेशन में एक नई वेब सेवा जोड़ें

शाखा का विस्तार करें "सामान्य" → "वेब सेवाएं" → जोड़ें ...

वेब सेवा के लिए, निम्न गुण मान निर्दिष्ट करें:

नाम - दस्तावेज़ डेटा

यूआरआई नामस्थान - http://192.168.1.76/request

एक्सडीटीओ पैकेज - दस्तावेज़ डेटायाhttp://192.168.1.76/request

प्रकाशन फ़ाइल का नाम - अनुरोध.1cws

चरण 5बनाई गई वेब सेवा के लिए, हम ऑपरेशन को परिभाषित करते हैं " डेटा प्राप्त करें»

ऑपरेशन संपत्ति मूल्य:

वापसी का प्रकार - दस्तावेज़ (http://192.168.1.76/request)

संभवतः खाली मान - सत्य

प्रक्रिया का नाम - डेटा प्राप्त करें.

चरण 6कार्यवाही डेटा प्राप्त करेंग्राहक पैरामीटर को परिभाषित करें निम्नलिखित मानगुण:

मान प्रकार - प्रकार डोरी http://www.w3.org/2001/XMLSchema नामस्थान से;

स्थानांतरण दिशा - इनपुट.

चरण 7आइए बनाई गई वेब सेवा के मॉड्यूल को खोलें और उसमें गेट () फ़ंक्शन रखें, जिसे इस वेब सेवा को कॉल करने पर निष्पादित किया जाएगा।

फ़ंक्शन GetData (ग्राहक) // XDTO ऑब्जेक्ट्स के प्रकार प्राप्त करें ClientType = FactoryXDTO.Type ("http://192.168.1.76/request", "ग्राहक"); RequestType = FactoryXDTO.Type ("http://192.168.1.76/request", "Document"); // क्लाइंट प्राप्त करें ClientReference = Directories.Clients.FindByName (ग्राहक); यदि ValueFilled नहीं है (ClientReference) तो अपरिभाषित लौटें; अगर अंत; अनुरोध = नया अनुरोध; Request.Text = "पहले 1 का चयन करें | टिकट। संदर्भ, | प्रतिनिधित्व (टिकट। स्थिति) के रूप में स्थिति, | टिकट। संख्या | FROM | दस्तावेज़। टिकट के रूप में टिकट | WHERE | टिकट। ग्राहक = और ग्राहक"; Request.SetParameter ("क्लाइंट", ClientReference); QueryResult = Query.Execute (); यदि QueryResult.Empty () तो अपरिभाषित लौटें; अगर अंत; चयन = QueryResult.Select (); चयन। अगला (); दस्तावेज़ = चयन। संदर्भ। GetObject (); // एक XDTO टिकट ऑब्जेक्ट बनाएं टिकट = FactoryXDTO.Create(TicketType); आवेदन। संख्या = नमूना। संख्या; क्लाइंट = फैक्ट्रीएक्सडीटीओ। क्रिएट (क्लाइंटटाइप); Client.Name = ClientReference.Name; आवेदन। ग्राहक = ग्राहक; आवेदन। स्थिति = चयन। स्थिति; // रिटर्न रिक्वेस्ट रिटर्न रिक्वेस्ट; अंत कार्य

चरण 8वेब सर्वर पर बनाई गई वेब सेवा को प्रकाशित करते हैं।

विन्यासकर्ता मेनू आइटम: "प्रशासन" → "वेब सर्वर पर प्रकाशन"।

"वेब सेवाएं" टैब पर, "वेब सेवाएं प्रकाशित करें" फ्लैग सेट करें और हमारी नई वेब सेवा के बगल में स्थित बॉक्स को भी चेक करें।

अध्यायद्वितीय

संदर्भ का उदाहरणवेब- 1C: तृतीय-पक्ष अनुप्रयोग से उद्यम सेवा

1सी: एंटरप्राइज़ में वेब सेवा तंत्र का मुख्य उद्देश्य आवश्यक डेटा को तृतीय-पक्ष अनुप्रयोगों में स्थानांतरित करना है।

आइए इस लेख के पहले खंड से हमारी वेब सेवा को कॉल करने वाले डेल्फी में एक एप्लिकेशन विकसित करने के एक उदाहरण पर विचार करें।

स्टेप 1।चलिए बनाते हैं नया कामऔर प्रपत्र पर कई नियंत्रण रखें

टेक्स्ट फ़ील्ड - वेब सेवा से प्राप्त जानकारी प्रदर्शित करने के लिए उपयोग किया जाता है;

दो बटन - टेक्स्ट फ़ील्ड को साफ़ करना और वेब सेवा तक पहुँचना;

इनपुट फ़ील्ड वेब सेवा को दिया गया पैरामीटर है।

चरण दोडब्लूएसडीएल फ़ाइल आयात करना

नतीजतन, हमें एक नया मॉड्यूल मिलता है अनुरोध(हमने इस तरह के नाम को सीधे 1C में परिभाषित किया है)। इस मॉड्यूल में वेब सेवा पर सभी आवश्यक जानकारी शामिल है।

चरण 3एक वेब सेवा कॉल हैंडलर लिखें

DocumentDataPortType चर पहले से ही मॉड्यूल में परिभाषित है अनुरोध

चरण 4एप्लिकेशन लॉन्च करें और जांचें।

अध्यायतृतीय

संदर्भ का उदाहरणवेबप्रणाली में सेवा "1 सी: उद्यम"

स्टेप 1।चलिए "WEB_Service" नाम से एक नया बाहरी संसाधन बनाते हैं

चरण दोप्रसंस्करण के लिए, हम एक नया रूप परिभाषित करते हैं

चरण 3प्रपत्र के लिए कई विवरण निर्दिष्ट करें

ग्राहक - प्रकार "स्ट्रिंग"

ClientReturn - "स्ट्रिंग" टाइप करें

NumberReturn - "स्ट्रिंग" टाइप करें

StatusReturn - "स्ट्रिंग" प्रकार।

हम प्रपत्र पर विवरण प्रदर्शित करेंगे।

चरण 4आइए फॉर्म कमांड जोड़ें " डेटा प्राप्त करने के लिए»

कमांड हैंडलर निर्दिष्ट करें

&ऑनक्लाइंट प्रक्रिया GetData(कमांड) GetDataOnServer(क्लाइंट); प्रक्रिया प्रक्रिया का अंत GetDataOnServer(Client) // लिंक के आधार पर एक WS प्रॉक्सी बनाएं और Get() ऑपरेशन परिभाषा = नई WSDefinitions ("http://192.168.1.76/WEB_Service/ws/request.1cws?wsdl") ; प्रॉक्सी = नया WSProxy (परिभाषा, "http://192.168.1.76/request", "DocumentsData", "DocumentsDataSoap"); RequestData = Proxy.GetData (क्लाइंट); अगर ऑर्डरडाटा = अपरिभाषित तो क्लाइंट रीटर्न = "अपरिभाषित"; StatusReturn = "अपरिभाषित"; रिटर्न नंबर = "अपरिभाषित"; वापस करना; अगर अंत; CustomerReturn = RequestData.Customer.Name; StatusReturn = RequestData.Status; रिटर्ननंबर = RequestData.Numder; अंतिम प्रक्रिया

1C: एंटरप्राइज़ अन्य प्रदाताओं द्वारा प्रदान की जाने वाली वेब सेवाओं का दो तरीकों से उपयोग कर सकता है:

का उपयोग करके स्थिरकॉन्फ़िगरेशन ट्री में बनाए गए लिंक;

"प्लस":काम की उच्च गति;

"ऋण":कॉन्फिगरेटर का उपयोग करके WSDL विवरण को फिर से आयात करना और परिवर्तित कॉन्फ़िगरेशन को सहेजना।

का उपयोग करके गतिशीलअंतर्निर्मित भाषा के माध्यम से निर्मित लिंक

(क्रमशः, गतिशील लोगों के लिए स्थैतिक के "विपक्ष" "प्लसस" हैं)

अध्यायचतुर्थ

1सी में वेब सेवाओं को डिबग करना: उद्यम प्रणाली

एक स्थानीय वेब सेवा के लिए, आपको चाहिए:

स्टेप 1।उस क्लाइंट पर रखें जहां 1C सिस्टम लॉन्च किया गया है webservicecfg.xmlनिम्नलिखित सामग्री के साथ

चरण दोदायर करना गलती करना. वी.आर.डीकॉन्फ़िगरेशन ऐड लाइन प्रकाशित करें

चरण 3विन्यासकर्ता में, मेनू आइटम का चयन करें

"डीबग" → "कनेक्शन" → "स्वचालित कनेक्शन" → "सर्वर पर वेब सेवाएं"

चरण 4ठीक बटन पर क्लिक करें

सर्वर संस्करण के लिए, आपको कुंजी के साथ 1c सर्वर को डिबग मोड में चलाने की भी आवश्यकता है / डिबग

वेब सेवाओं का विचार कंप्यूटर उद्योग के दिग्गजों जैसे Sun, Oracle, HP, Microsoft और IBM द्वारा विकसित किया गया था। यह विचार कोई नया नहीं है, लेकिन कार्यक्रमों को वेब पर एक्सेस करना आसान बनाने की दिशा में यह एक बड़ा कदम है। मानक संचार प्रारूपों के आधार पर, वेब सेवाएं आम तौर पर हमारी समझ को बदल सकती हैं कि हमें वेबसाइट कैसे बनानी चाहिए।

वेब सेवा क्या है?

वेब सेवाओं के लिए धन्यवाद, किसी भी कार्यक्रम के कार्यों को इंटरनेट पर उपलब्ध कराया जा सकता है। इस प्रकार, PHP, ASP, JSP स्क्रिप्ट, JavaBeans, COM ऑब्जेक्ट्स और हमारे अन्य सभी पसंदीदा प्रोग्रामिंग टूल जैसे प्रोग्राम अब किसी अन्य सर्वर (यानी वेब सेवा) पर चल रहे कुछ प्रोग्राम तक पहुँच सकते हैं और उसकी वेबसाइट या एप्लिकेशन पर उससे प्राप्त प्रतिक्रिया का उपयोग कर सकते हैं।

मान लीजिए कि मुझे कुछ प्रोग्रामिंग कार्य करने की आवश्यकता है और मैं बहुत व्यस्त हूं (या पहिया को फिर से शुरू करने के लिए मेरे दिमाग से बाहर), मैं एक वेब सेवा की सेवाओं का उपयोग कर सकता हूं जिसे मेरी साइट इंटरनेट के माध्यम से एक्सेस करेगी। वेब सेवा के पैरामीटर के साथ अनुरोध पास करना, मुझे एक प्रतिक्रिया प्राप्त होने की उम्मीद है जिसमें मेरे अनुरोध का परिणाम होगा।

जिसने भी कभी साथ काम किया हो हॉटमेल, पहले ही कुछ वेब सेवाओं का सामना कर चुका है: पासपोर्ट उपयोगकर्ता प्रमाणीकरण प्रणाली Microsoft .NET पहल में शामिल सेवाओं में से एक है। जबकि यह फ्री में उपलब्ध है, ताकि वेबसाइट क्रिएटर्स अपनी साइट पर यूजर ऑथेंटिकेशन को आसानी से लागू कर सकें।

मूल बातें

वेब सेवाओं के पीछे सिद्धांत उल्लेखनीय रूप से सरल हैं। और वे वितरित कंप्यूटिंग और इंटरनेट की दुनिया में कुछ भी नया नहीं जोड़ते हैं:

  • वेब सेवा के लिए जिम्मेदार व्यक्ति अपनी वेब सेवा और उसकी प्रतिक्रियाओं के अनुरोधों के प्रारूप को परिभाषित करता है
  • नेटवर्क पर कोई भी कंप्यूटर वेब सेवा के लिए अनुरोध करता है
  • वेब सेवा अनुरोध को संसाधित करती है, कुछ क्रिया करती है, और फिर प्रतिक्रिया भेजती है

यह क्रिया, उदाहरण के लिए, स्टॉक भाव प्रदर्शित करना, किसी विशेष उत्पाद की कीमत प्रदर्शित करना, अपॉइंटमेंट कैलेंडर प्रविष्टि को सहेजना, एक भाषा से दूसरी भाषा में पाठ का अनुवाद करना या क्रेडिट कार्ड नंबर की जाँच करना हो सकता है।

मूल में मानक

वेब सेवाओं में हम सभी की अचानक रुचि का कारण यह है कि वे डेटा के आदान-प्रदान और संचारण के लिए मानकों, खुले प्रोटोकॉल पर आधारित हैं।

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

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

सिंपल ऑब्जेक्ट एक्सेस प्रोटोकॉल (SOAP) W3C द्वारा विकसित एक मानक प्रोटोकॉल है। यह वेब सेवाओं के अनुरोधों के प्रारूप को परिभाषित करता है।

एक वेब सेवा और उसके उपयोगकर्ता के बीच संदेशों को SOAP लिफाफे (SOAP लिफाफे) में पैक किया जाता है। संदेशों में या तो कुछ कार्रवाई करने का अनुरोध होता है, या प्रतिक्रिया होती है - इस क्रिया को करने का परिणाम। लिफाफा और इसकी सामग्री एक्सएमएल-एन्कोडेड हैं और समझने में काफी आसान हैं। यहाँ एक सरल SOAP अनुरोध जैसा दिखता है, जिसे HTTP के माध्यम से वेब सेवा में भेजा जाता है:

xmlns:env="http://www.w3.org/2001/06/soap-envelope">


xmlns:m="http://www.somesite.com/postcode">
WC1A8GH
यूके


SOAP लिफाफे के प्रमुख तत्वों को पहचानना आसान है: ये दो पैरामीटर हैं ( ("ज़िप कोड") और ("देश")), जो एक तत्व के भीतर समाहित हैं . यह तत्व उस वेब सेवा का नाम है जिससे हम अनुरोध कर रहे हैं। लिफाफे में अन्य डेटा, जैसे टेक्स्ट एन्कोडिंग और SOAP संस्करण, वेब सेवा को अनुरोध को सही ढंग से संसाधित करने में मदद करता है।

और उत्तर इस प्रकार दिखेगा:

xmlns:env="http://www.w3.org/2001/06/soap-लिफाफा" >

env:encodingStyle="http://www.w3.org/2001/06/soap-encoding"
xmlns:m="http://www.somesite.com/postcode">
हाँ


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

अब यूडीडीआई के बारे में

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

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

यह सब कैसे काम करता है

तो मैं सही वेब सेवा कैसे ढूंढूं?

आइए कल्पना करें कि मैं एक वेबसाइट डेवलपर हूं और मेरे मुवक्किल ने मुझे साइट पर एक नई सुविधा जोड़ने के लिए कहा: मुझे पंजीकरण फॉर्म में ज़िप कोड सत्यापन जोड़ने की आवश्यकता है।

इस जाँच को करने के लिए, मुझे उन सभी 30 देशों के सभी डाक कोडों का एक डेटाबेस बनाना होगा जहाँ हमारी कंपनी व्यवसाय करती है, और फिर जाँच करें कि पंजीकरण के दौरान पंजीकरण में निर्दिष्ट शहर से डाक कोड मेल खाता है या नहीं। लेकिन मेरे पास यह डेटा नहीं है, और मुझे लगता है कि इस तरह के डेटा को इकट्ठा करने के लिए काफी पैसा खर्च करना होगा।

एक डेटाबेस खरीदने के लिए बाहर निकलने के बजाय, अपना कोड लिखना, यह सुनिश्चित करना कि सभी डेटा सुसंगत और सही हैं, और डिबगिंग स्क्रिप्ट, मैं बस यूडीडीआई निर्देशिका में जाता हूं और एक वेब सेवा की तलाश करता हूं जो मेरे लिए काम कर सके। । जब मैं www.uddi.org पर जाता हूं, तो मैं खोज करता हूं और XYZ Corp की एक बेहतरीन सेवा पाता हूं।

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

यह समय लेने लायक है

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

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

डर गिराओ! मैं शर्त लगा सकता हूं कि वेब पर पहले से ही एक वेब सेवा है जो आपको आवश्यक कार्य प्रदान करने के लिए तैयार है, और इस वेब सेवा का उपयोग करने की लागत इसके एनालॉग को स्वयं विकसित करने की लागत से बहुत कम होगी। इस तरह, आप अपने डेवलपर को अनावश्यक सिरदर्द से बचाते हैं, अपने ग्राहक को पैसे बर्बाद करने से बचाते हैं, बस कुछ मिनट यूडीडीआई कैटलॉग ब्राउज़ करने में खर्च करते हैं।

सेवा विकास

बेशक, डेवलपर्स को केवल दूसरों द्वारा बनाई गई वेब सेवाओं के लिए समझौता नहीं करना पड़ता है। निम्न में से किसी एक टूलकिट की सहायता से, आप अपनी स्वयं की वेब सेवा बना सकते हैं और नेटवर्क के अन्य निवासियों को इसकी सेवाएँ प्रदान कर सकते हैं।

वेब सेवाओं के विकास के लिए उपकरणों का विकल्प व्यापक है। इसमें Sun (Open Net), Microsoft (.NET), (e-services), और IBM (Web Services) जैसी कंपनियों के टूलकिट शामिल हैं। ओपन सोर्स फ्रेमवर्क भी हैं। उदाहरण के लिए, मोनो प्रोजेक्ट Microsoft .NET टूलकिट को यूनिक्स सहित सभी प्लेटफार्मों पर समान वेब सेवाओं को चलाने के लिए एक संकलन प्रणाली (संकलक), कोड निष्पादन (रनटाइम) और पुस्तकालय (पुस्तकालय) प्रदान करके प्रतिस्थापित करना चाहता है।

विभिन्न प्रकार के सर्वर और वेब सेवा विकास उपकरण के बावजूद, वे सभी एक ही SOAP प्रोटोकॉल, XML भाषा और UDDI प्रणाली का समर्थन करते हैं।

विपक्ष

इससे पहले कि मैं एक प्रोग्रामर के रूप में अपने करियर को पूरी तरह से छोड़ दूं और खुद को वेब सेवाओं का उपयोग करने के लिए समर्पित कर दूं, मुझे खुद से यह सवाल पूछना होगा: "यह तस्वीर बहुत गुलाबी है। इसमें गलत क्या है?"। दुर्भाग्य से, वेब सेवाओं की महान क्षमता के लिए भुगतान करने की कीमत है:

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

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

आईबीएम लोटस डोमिनोज़ 7 में वेब सेवाओं का व्यावहारिक उपयोग

वेब सेवाएँ क्या हैं और वे क्यों महत्वपूर्ण हैं?

सामग्री श्रृंखला:

यह सामग्री लेखों की # श्रंखला का # भाग है: आईबीएम लोटस डोमिनोज़ 7 में वेब सेवाओं का व्यावहारिक उपयोग

https://www..jsp?series_title_by=Practical+using+web services+in+ibm+lotus+domino+7

इस श्रृंखला में नए लेखों के लिए बने रहें।

आपने तकनीकी लेखों में वेब सेवाओं के संदर्भ देखे होंगे, सॉफ्टवेयर उत्पादोंया सहकर्मियों के साथ संवाद में भी। जाहिरा तौर पर, किसी को वेब सेवाओं की आवश्यकता होती है और यह महत्वपूर्ण है, हालांकि, "मैसेजिंग के लिए एंडपॉइंट्स के सेट को परिभाषित करने के लिए एक्सएमएल व्याकरण" जैसी परिभाषाओं के साथ मिलने के बाद, आपने फैसला किया कि ऐसी जटिल चीजों को छुआ नहीं जाना चाहिए।

सौभाग्य से, वेब सेवाओं को इस तरह से समझाया जा सकता है कि यह कैसे काम करता है, इसके विवरण में जाए बिना हर कोई इसे समझता है। आपको यह समझने की कोशिश करनी चाहिए कि वेब सेवाएं क्या हैं, क्योंकि आईटी दुनिया में उनके (और संबंधित सेवा-उन्मुख वास्तुकला, SOA) अनुप्रयोगों का दायरा लगातार बढ़ रहा है।

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

छिपी निम्न-स्तरीय तकनीकों को छुए बिना वेब सेवाओं के साथ काम करना अब बहुत आसान हो गया है, क्योंकि सॉफ़्टवेयर विक्रेताओं और ओपन सोर्स समुदाय ने पिछले कुछ वर्षों में वेब सेवाओं के इंटरफ़ेस को निम्न-स्तरीय कार्यों से अलग करने के लिए बहुत कुछ किया है। यह आपको लंबे XML संदेश स्वरूपण प्रलेखन में तल्लीन किए बिना केवल घटकों को एक साथ जोड़कर काम करने की अनुमति देगा।

लेखों की यह श्रृंखला डोमिनोज़ डेवलपर्स को IBM लोटस डोमिनोज़ V7.0 में वेब सेवाओं को समझने और उपयोग करने में मदद करेगी। इस परिचयात्मक लेख में काफी कुछ है उपयोगी जानकारी, और उन सभी के लिए उपयोगी है जो यह समझना चाहते हैं कि वेब सेवाएं क्या हैं। लोटस डोमिनोज़ वी7.0 की प्रौद्योगिकियां डेवलपर्स के लिए वेब सेवाओं का निर्माण और उपभोग करना आसान बनाती हैं, और हम इस पर बाद में विस्तार से चर्चा करेंगे।

सबसे पहले, आइए समझते हैं कि वेब सेवा क्या है।

वेब सेवा क्या है?

सीधे शब्दों में कहें, एक वेब सेवा कंप्यूटर प्रोग्राम को मानकीकृत तरीके से एक दूसरे के साथ संवाद करने की अनुमति देती है।

तीन या अधिक मशीनों के बीच संचार

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

इस लेख के अंत में, जब हम वास्तविक SOA को देखते हैं, तो हम वेब सेवाओं के बारे में बात करेंगे जो कई मशीनों पर परस्पर क्रिया करती हैं, क्योंकि SOA हमेशा इसी तरह काम करता है।

एक वेब सेवा एक अमूर्त घटक है, जैसे मानव वार्तालाप की अवधारणा सार है। संवाद में दो या दो से अधिक लोग शामिल होते हैं जो एक ऐसी भाषा बोलते हैं जिसे वे जानते हैं। उनकी भाषा उनके द्वारा उपयोग किए जाने वाले शब्दों को परिभाषित करती है और वे शब्द कैसे वाक्य बनाते हैं। आमतौर पर, संवाद में एक प्रश्न-उत्तर संरचना होती है, जब कोई प्रश्न पूछता है या बयान देता है, और वार्ताकार इसका उत्तर देता है। लोग आस-पास हो सकते हैं, फोन पर बात कर सकते हैं, मेल या चैट द्वारा एक-दूसरे को संदेश भेज सकते हैं।

किसी भी मामले में, संवाद है जटिल संरचनाऔर अलग-अलग तरीकों से हो सकता है, संचार करने वाले लोगों की संख्या के आधार पर, संचार प्रौद्योगिकियों के लिए उपयोग की जाने वाली संचार की भाषा, निश्चित रूप से, यदि कोई हो।

वेब सेवाओं का उपयोग कर संचार की संरचना में कई तत्व शामिल हैं जिन्हें हम इस लेख में स्पर्श करेंगे। हालाँकि, विचार नियमित संवाद के समान ही रहता है - कार्यक्रम एक ऐसी भाषा का उपयोग करके संवाद करते हैं जिसे वे जानते हैं, कभी-कभी एक नेटवर्क पर। प्रोग्राम या तो एक ही कंप्यूटर पर स्थित हो सकते हैं या दुनिया के विभिन्न हिस्सों में अलग-अलग मशीनों पर होस्ट किए जा सकते हैं, राउटर और सर्वर द्वारा इंटरनेट के माध्यम से जुड़े हुए हैं। अच्छी खबर यह है कि जरूरी नहीं कि प्रोग्राम और कंप्यूटर एक ही हों। वेब सेवाओं के साथ, एक ही लैपटॉप पर दो Microsoft .NET प्रोग्राम संचार कर सकते हैं, साथ ही एक कनाडाई iSeries सर्वर पर एक जावा प्रोग्राम चीन से लिनक्स कंप्यूटर पर C++ प्रोग्राम के साथ।

वेब सेवा संचार निम्नलिखित मानक तकनीकों का उपयोग करता है:

  • एक्सएमएल।वेब सेवाओं के घटकों द्वारा उपयोग की जाने वाली भाषा (डेटा प्रारूप)।
  • सोप प्रोटोकॉल।कार्यक्रमों के बीच XML संदेशों का आदान-प्रदान
  • वेब सेवा विवरण लाइब्रेरी (WSDL)।एक XML फ़ाइल जो SOAP संदेशों के प्रारूप और उन्हें भेजने के तरीके को परिभाषित करती है

यूनिवर्सल डिस्क्रिप्शन, डिस्कवरी और इंटीग्रेशन (यूडीडीआई) के रूप में जानी जाने वाली एक मानक तकनीक का उपयोग वेब सेवाओं के बीच संवाद करने के लिए भी किया जा सकता है। हम इसे बाद में लेख में शामिल करेंगे, लेकिन क्योंकि UDDI वैकल्पिक है, कई वेब सेवाएं इसका उपयोग नहीं करती हैं।

कुछ शब्दावली: प्रकाशन और वेब सेवाओं का उपयोग करना

इससे पहले कि हम अपनी शर्तों की व्याख्या करना शुरू करें, आइए वेब सेवाओं से जुड़ी कुछ शब्दावली देखें।

जब हम एक वेब सेवा प्रकाशित करने के बारे में बात करते हैं, तो हमारा मतलब एक ऐसे प्रोग्राम से है जो WSDL फ़ाइल प्रकाशित करता है और अन्य प्रोग्रामों को संबंधित सेवा का उपयोग करने की अनुमति देता है। वेब सेवाओं को प्रकाशित करने वाले प्रोग्रामों को प्रदाता कहा जाता है।

जब हम एक वेब सेवा का उपयोग करने के बारे में बात करते हैं, तो हमारा मतलब एक ऐसे प्रोग्राम से है जो किसी अन्य मशीन पर वेब सेवा को कॉल करता है। वेब सेवाओं के उपयोगकर्ता क्लाइंट कहलाते हैं।

एक्सएमएल: मूल भाषा

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

चित्रा 1. मूल एक्सएमएल संरचना

जैसा कि आप देख सकते हैं, फ़ाइल में कुछ जानकारी (जैसे पहला नाम, अंतिम नाम) त्रिकोणीय कोष्ठकों में संलग्न टैग से घिरी हुई है। जॉन नाम के रूप में दिखाया गया है जॉन. ऐसे तत्व भी हैं जिनमें अन्य तत्व निहित हैं, उदाहरण के लिए, तत्व में नेस्टेड तत्व , और .

XML में वेब सेवाओं को लिखने के कई लाभ हैं, जिनमें शामिल हैं:

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

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

XML के एकमात्र नुकसान, यदि वे वास्तव में नुकसान हैं, तो ये हैं:

  • XML भाषा कठोर है, इसलिए XML संदेश के किसी भी गलत स्वरूपण के कारण पूरे संदेश की पार्सिंग विफल हो जाएगी (भले ही समस्या की व्याख्या करना या चूकना आसान हो)। हालाँकि, यदि आप XML फ़ाइलों को उत्पन्न करने के लिए मानक लाइब्रेरी का उपयोग करते हैं (जो कि आप तब करते हैं जब आप वेब सेवाएँ बनाते हैं), तो लाइब्रेरी स्वयं उचित स्वरूपण की जाँच करती है।
  • XML संदेश एक सादे पाठ फ़ाइल में संग्रहीत होता है और इसलिए किसी अन्य प्रारूप (जैसे विभाजन, बाइनरी, या "स्व-निर्मित" प्रारूप) में इसके समतुल्य से अधिक स्थान लेता है।

लेकिन XML स्वरूप के लाभों की तुलना में ये मुद्दे अप्रासंगिक हैं।

SOAP: भेजे गए संदेश

आप जानते हैं कि वेब सेवाएँ XML प्रारूप में संचार करती हैं, लेकिन यह केवल आधी समस्या का समाधान करता है। एप्लिकेशन संदेश को पार्स कर सकते हैं, लेकिन वे कैसे जानते हैं कि पार्स किए गए परिणाम का क्या करना है?

निर्देश जो वेब सेवाओं के लिए XML संदेश स्वरूपण नियमों का वर्णन करता है, SOAP के रूप में जाना जाता है। यह एक संदेश संरचना को परिभाषित करता है ताकि प्रोग्राम डेटा भेजने और व्याख्या करने का तरीका जान सकें। SOAP संदेश की मूल संरचना को चित्र 2 में दिखाया गया है।

चित्र 2. मूल SOAP संदेश संरचना

एक्सएमएल में यह कुछ ऐसा दिखाई देगा:

फू

आधार स्थिति में, आपके पास एक SOAP पैकेट होता है जिसमें एक SOAP बॉडी और एक बॉडी होती है जिसमें ट्रांसफर किया जाने वाला डेटा होता है। कभी-कभी एक वैकल्पिक SOAP हैडर भी होता है (बॉडी से पहले पैकेट के अंदर) जिसमें अतिरिक्त जानकारी होती है।

सोप निर्देश

हालाँकि SOAP प्रारूप मानक है और इसमें समान निर्देश हैं, यह याद रखना चाहिए कि विभिन्न निर्माता इन निर्देशों को थोड़े अलग तरीके से लागू कर सकते हैं। उदाहरण के लिए, Apache Axis द्वारा उत्पन्न SOAP संदेश में नाम स्थान और XML की संरचना Microsoft .NET द्वारा उत्पन्न संरचना से बहुत भिन्न हो सकती है। हालाँकि, एक अच्छी तरह से लिखा गया क्लाइंट या सर्वर किसी भी संदेश को संसाधित कर सकता है जो SOAP निर्देशों के अनुसार अच्छी तरह से लिखा गया हो।

इसके अलावा, WSDL 1.1 और WSDL 2.0 निर्देशों के बीच कुछ महत्वपूर्ण अंतर हैं। हालाँकि 2.0 निर्देश लेखन के समय अभी भी अंतिम चरण में है, यह जल्द ही संस्करण 1.1 का स्थान लेना शुरू कर देगा।

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

यहीं पर तकनीक फिर से बचाव में आती है। एक डेवलपर के रूप में, आपको WSDL फ़ाइल की सामग्री को पढ़ने, पार्स करने और समझने की आवश्यकता नहीं है। उपकरण आपके लिए यह जानकारी प्राप्त करेंगे, इसलिए आपको केवल यह पता लगाने की आवश्यकता है कि सेवा को क्या भेजना है, और परिणाम कहां रखना है। तुम ही नहीं तुम कर सकते होपुस्तकालयों और उपकरणों का उपयोग करें, लेकिन यह भी सुनिश्चित करें आप. सभी वेब सेवा घटकों में कई अपवाद, हिचकी और जटिलताएँ हैं, और आपको इस पर गौर करना चाहिए का उपयोग करते हुएवेब सेवा, और इसके पृथक्करण नहीं, इसके बाद प्रत्येक घटक का विस्तृत अध्ययन।

प्रोटोकॉल: संदेश कैसे भेजे जाते हैं

हमने अभी तक इस सवाल को नहीं छुआ है कि ये सभी संदेश SOAP पर कैसे प्रसारित होते हैं?

और वे आमतौर पर HTTP प्रोटोकॉल का उपयोग करके नेटवर्क (और / या इंटरनेट) पर प्रसारित होते हैं, ठीक उसी तरह जैसे पेज सर्वर से आपके ब्राउज़र में प्रसारित होते हैं। HTTP का हमेशा उपयोग नहीं किया जाता है (इसका मुख्य प्रतियोगी SMTP है, लेकिन यह बहुत पीछे है)। वेब सेवा द्वारा उपयोग किए जाने वाले प्रोटोकॉल को WSDL फ़ाइल में परिभाषित किया गया है।

आमतौर पर, WSDL फ़ाइल में, SOAP संदेश भेजने के लिए उपयोग किए जाने वाले प्रोटोकॉल को HTTP के रूप में परिभाषित किया जाता है। SOAP क्लाइंट निर्दिष्ट प्रोटोकॉल के अनुसार संदेश भेजता है।

अन्य वेब सेवाओं की शर्तें जिनका आप सामना कर सकते हैं

हमने पहले ही मूल शर्तों को कवर कर लिया है, लेकिन वेब सेवाओं के बारे में बात करते समय आप कुछ और सुन सकते हैं।

कमजोर संधि

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

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

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

यूडीडीआई

यूडीडीआई किसी भी संख्या में कार्यक्रमों द्वारा आपूर्ति की जाने वाली वेब सेवाओं की सूची बनाने के लिए एक मानक है। यह वेब सेवा प्रदाताओं के लिए एक फोन बुक की तरह है। ग्राहक यूडीडीआई रजिस्ट्री में आवश्यक जानकारी देख सकते हैं, और रजिस्ट्री सेवा से कनेक्ट करने के लिए आवश्यक डेटा लौटाती है।

यद्यपि यूडीडीआई वेब सेवाओं को परिभाषित करने के लिए काफी महत्वपूर्ण मानक है, इसका महत्व इस तथ्य से बहुत कम हो गया है कि यह वेब सेवाओं का एक वैकल्पिक तत्व है, और जब इसे उपयोग करने या न करने का विकल्प दिया जाता है, तो कई लोग इसका उपयोग नहीं करना चुनते हैं।

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

हालाँकि, वेब सेवाओं के आर्किटेक्चर में इस घटक की आवश्यकता नहीं है।

वेब सेवाओं की सुरक्षा

SOAP और WSDL के बारे में पढ़कर, आप देख सकते हैं कि सुरक्षा का विषय कवर नहीं किया गया है। यदि प्रदाता संवेदनशील जानकारी के साथ काम करता है तो सेवाओं को कॉल करते समय प्रमाणीकरण कैसे किया जाता है? आखिरकार, यह स्पष्ट है कि सभी वेब सेवाएँ आम जनता के लिए उपलब्ध नहीं हैं, है ना?

यह एक महत्वपूर्ण प्रश्न है जिसका स्पष्ट रूप से उत्तर देना आसान नहीं है। ऐसी कई योजनाएँ हैं जिनका उपयोग आप स्थिति के आधार पर कर सकते हैं, उदाहरण के लिए:

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

साथ ही, मैसेजिंग हमेशा HTTP का उपयोग नहीं कर सकता है, इसलिए आप मौजूदा HTTP सुरक्षा के अतिरिक्त केवल वेब सेवाओं की सुरक्षा का उपयोग नहीं कर सकते हैं।

ऐसे कई दिशानिर्देश हैं जो वेब सेवाओं की सुरक्षा के इन और अन्य पहलुओं को कवर करते हैं: WS-सुरक्षा, WS-नीति, WS-ट्रस्ट और WS-गोपनीयता। कुछ सॉफ़्टवेयर विक्रेता और समितियाँ इन मुद्दों पर कई वर्षों से काम कर रहे हैं। जबकि सभी वेब सेवा कार्यान्वयन सभी सुरक्षा निर्देशों का समर्थन नहीं करते हैं, मौजूदा सुरक्षा मानक आमतौर पर कम से कम कुछ बुनियादी सुरक्षा पथों को लागू करते हैं।

मिडलवेयर और एंटरप्राइज सर्विस बस

वेब सेवाओं के लिए मानकों का एक और बड़ा सेट है, जो एक काफी बड़े बंडल में एक साथ जुड़ा हुआ है, जिसे आमतौर पर WS-* निर्देश कहा जाता है। साथ में वे बहुत सारे डिज़ाइन मुद्दों को कवर करते हैं जो तब सामने आते हैं जब आप कई वेब सेवाओं को एक वातावरण में इकट्ठा करते हैं। WS-* मानक ऐसे मुद्दों से निपटते हैं:

  • सुरक्षा
  • विश्वसनीयता
  • संदेश विनिमय
  • लेनदेन
  • सेवा की गुणवत्ता

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

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

सेवा उन्मुख संरचना

और अंत में, सेवा उन्मुख वास्तुकला। ज्यादातर मामलों में, यह उपरोक्त सभी का एक संयोजन है: विभिन्न विक्रेताओं से शिथिल युग्मित वेब सेवाएँ, स्वीकृत मानकों (शायद ESBs के साथ) के अनुसार बातचीत करना और विभिन्न कार्यक्रमों द्वारा एक साथ रखना जो सेवाओं से डेटा लेते हैं और इसे विभिन्न तरीकों से उपयोग करते हैं। .

क्योंकि SOA एक सॉफ्टवेयर आर्किटेक्चर है, इसे बनाने में बहुत सारे समन्वय और योजना शामिल हैं। यह केवल सेवाओं का एक समूह नहीं है जो आपस में उलझे हुए हैं; यह इस बात का संगठन है कि सेवाओं को एक साथ कैसे रखा जाता है और प्रकाशित किया जाता है, कौन से प्रबंधन उपकरण और मिडलवेयर का उपयोग किया जाता है, और कैसे सेवाओं और सिस्टम को समग्र रूप से मॉनिटर और प्रबंधित किया जाता है।

यदि आप विश्व स्तर पर अधिक देखें, तो SOA भी एक प्रकार की सोच है। यह हमें स्वतंत्र बड़े कार्यक्रमों के बारे में नहीं सोचने के लिए मजबूर करता है, बल्कि उन सभी संभावित घटकों को समझने के लिए जिन्हें प्रकाशित किया जा सकता है और उत्पादन में उपयोग किया जा सकता है। समृद्ध अनुप्रयोगों के बजाय, आप विशिष्ट और अच्छी तरह से परिभाषित सेवाओं के बारे में सोचते हैं - जो कि वेब सेवाएं हैं।

यह महत्वपूर्ण क्यों है?

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

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

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

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

जब इन सभी कारकों पर एक साथ विचार किया जाता है, तो परिणाम महत्वपूर्ण होता है। एक बार हमारे पास है मानक उपायनेटवर्क पर अनुप्रयोगों के बीच संचार के लिए, हम अपने कार्यक्रमों को एक अलग तरीके से बना सकते हैं। मोनोलिथिक प्रोग्राम लिखने के बजाय जिसमें हर बार पहिए का आविष्कार किया जाता है, हम ऐसे प्रोग्राम लिख सकते हैं जो मॉड्यूल से बने होते हैं।

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

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

एक IT पेशेवर के रूप में, आप फ्रंट-एंड, सेवा विकास, या दोनों विकसित कर सकते हैं। यह समझना कि यह सब एक साथ कैसे काम करता है (या कम से कम यह जानना कि यह क्या है) इस तरह की परियोजना पर काम करने के लिए महत्वपूर्ण है।

यह भी अच्छा है कि वेब सेवाओं को वितरित करने और उनका उपभोग करने में आपकी मदद करने के लिए कई उपकरण हैं और आपके लिए काफी मेहनत कर सकते हैं। इस आलेख के निम्नलिखित भागों में, हम देखेंगे कि कैसे आप IBM Lotus Domino V7.0 का उपयोग करके क्लाइंट या सिस्टम को आसानी से वेब सेवाएँ प्रदान कर सकते हैं।