इस ट्यूटोरियल में हम वेब सर्विस के बारे में समझेंगे। वेब सर्विस का अभिप्राय एक वेब एप्लिकेशन द्वारा दूसरे एप्लिकेशन को सर्विस प्रदान करने से है। वेब सर्विस से अभिप्राय वेब एप्लीकेशन के पब्लिक मेथड से है जिसको कन्ज्यूम कुछ निश्चित प्रोटोकॉल के अधीन दूसरे एप्लीकेशन के द्वारा किया जाता है।
वेब सर्विसेज एक प्रकार के इंट्रॉपरेबल सर्विसेज है जो दो एप्लीकेशन के बीच में ऐसे संबंध होते हैं जिसमें एक एप्लीकेशन दूसरे एप्लीकेशन को अपना सर्विस प्रदान करता है। कोई जरूरी नहीं कि दोनों एप्लीकेशन एक ही सिस्टम पर हो, ऐसा भी हो सकता है कि दोनों एप्लीकेशन अलग-अलग सिस्टम पर स्थापित हो और इंटरनेट के माध्यम से कम्युनिकेशन स्थापित करें और एक एप्लीकेशन दूसरे एप्लीकेशन को अपना सर्विस प्रदान करें। इस प्रकार, वेब सर्विसेज में इंटरनेट से जुड़े प्रोटोकॉल्स और वेब स्टैंडर्ड्स का पालन किया जाता है।
वेब सर्विस के अंतर्गत संबंधित एप्लीकेशन्स कोई जरूरी नहीं कि एक ही टेक्नोलॉजी के हों। ऐसा हो सकता है कि किसी जावा आधारित वेब सर्विस एप्प्लिकशन को डॉट नेट आधारित एप्लीकेशन कन्ज्यूम करें।
वेब एप्लीकेशन के सर्विस को कन्ज्यूम करने के लिए दूसरे एप्लीकेशन द्वारा मैसेज भेजा जाता है। कन्ज्यूर एप्लिकेशन द्वारा रिक्वेस्ट मैसेज और वेब सर्विसेज एप्लिकेशन द्वारा रेस्पॉन्स मैसेज को भेजने के लिए एचटीटीपी प्रोटोकोल का यूज़ किया जाता है। ऐसे मैसेज का एक निश्चित फॉर्मेट होता है और यह फॉर्मेट किसी प्रोटोकॉल पर आधारित होता है जैसे SOAP प्रोटोकॉल।
जैसा कि हम जानते हैं कि एचटीटीपी क्लाइंट सर्वर मॉडल पर आधारित है। वेब सर्विस के अंतर्गत भी सर्विस प्रदाता सर्वर होता है जिसके सर्विस को किसी क्लाइंट एप्लीकेशन के द्वारा कंज्यूम किया जाता है।
वेब सर्विस की सबसे बड़ी खासियत यह है कि वेब सर्विस का रजिस्ट्रेशन एक ऐसे सर्वर पर किया जाता है जिसको कंज्यूम संसार के किसी भी कोने से किसी भी एप्लिकेशन के द्वारा किया जा सकता है, बशर्ते क्लाइंट एप्लिकेशन प्रोटोकॉल की शर्तों का पालन करें।
ASP.NET में वेब सर्विस से संबंधित क्लास System.Web.Services.WebService क्लास से इन्हेरीट होते हैं और इस क्लास के भीतर हम पब्लिक मेथड लिखते हैं ताकि यह दूसरे एप्लीकेशन के लिए एक्सपोज्ड हो और इन मेथड को WebMethod attribute से डेकोरेट करते हैं जिसके फलस्वरूप यह मेथड एक वेब सर्विस में रूपांतरित हो जाता है। बिना WebMethod attribute के यह मेथड दूसरे एप्लीकेशन के लिए वेब सर्विसेज के रूप में एक्सपोज नहीं हो सकता है।
WebMethod attribute के कई प्रकार के पैरामीटर होते हैं जो वेब सर्विस को कस्टमाइज करने के लिए यूज किए जाते हैं।
ASP.NET के अंतर्गत वेब सर्विस के लिए web service नामक टेंप्लेट यूज किया जाता है। इस वेब सर्विस टेंप्लेट का फ़ाइल एक्सटेंशन asmx होता है। अतः ASP.NET के वेब सर्विस को ASMX वेब सर्विस भी कहते हैं।
माइक्रोसॉफ्ट ASMX वेब सर्विस एक लीगेसी माइक्रोसॉफ्ट वेब सर्विस टेक्नोलॉजी है जिसके द्वारा वेब सर्विसेज एप्लीकेशन का निर्माण किया जा सकता है। ASMX के बाद WCF टेक्नोलॉजी का उपयोग वेब सर्विस निर्माण में किया जाता है। XML वेब सर्विसेज के निर्माण के लिए WCF टेक्नोलॉजी का उपयोग किया जाता रहा है।
CREATING A WEB SERVICE IN .NET
वेब सर्विस को समझने के लिए हम निम्नलिखित सरल उदाहरण देखते हैं। निम्नलिखित उदाहरण में दो संख्याओं को जोड़ने का पब्लिक मेथड है जिसे वेब सर्विस के रूप में व्यक्त किया गया है। मेथड को वेब सर्विस के रूप में व्यक्त करने के लिए [WebMethod] attribute का यूज किया गया है।
using System.Web.Services;
namespace CalculatorWebService
{
///
/// Summary description for AddWebService
///
[WebService(Namespace = "http://shrishesh.blogspot.com")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[System.ComponentModel.ToolboxItem(false)]
// To allow this Web Service to be called from script, using ASP.NET AJAX, uncomment the following line.
// [System.Web.Script.Services.ScriptService]
public class AddWebService : System.Web.Services.WebService
{
[WebMethod]
public int AddNumbers(int number1, int number2)
{
return number1 + number2;
}
}
}
निम्नलिखित स्टेप्स का अनुपालन कर विसुअल स्टूडियो २०१९ आईडीई में वेब सर्विस एप्लीकेशन को विकसित किया गया है
STEP 1
STEP 2
STEP 3
STEP 4
STEP 5
STEP 6
STEP 7
STEP 8
STEP 9
STEP 10
using System.Web.Services;
namespace CalculatorWebService
{
///
/// Summary description for AddWebService
///
[WebService(Namespace = "http://shrishesh.blogspot.com")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[System.ComponentModel.ToolboxItem(false)]
// To allow this Web Service to be called from script, using ASP.NET AJAX, uncomment the following line.
// [System.Web.Script.Services.ScriptService]
public class AddWebService : System.Web.Services.WebService
{
[WebMethod]
public int AddNumbers(int number1, int number2)
{
return number1 + number2;
}
public int MultiplyNumbers(int number1, int number2)
{
return number1 * number2;
}
}
}
STEP 11
STEP 12
STEP 13
CONSUMING A WEB SERVICE
इस ट्यूटोरियल में हम वेब सर्विस को कैसे किसी क्लाइंट एप्लीकेशन के द्वारा कंज्यूम किया जाता है इसके बारे में अध्ययन करेंगे। क्लाइंट एप्लीकेशन कंसोल एप्लीकेशन, डेस्कटॉप एप्लीकेशन या वेब एप्लीकेशन हो सकता है। किसी भी प्रकार का एप्लीकेशन किसी वेब सर्विस को कंज्यूम कर सकता है बशर्ते वेब सर्विस से संबंधित उचित यूआरएल प्राप्त हो।
WSDL डॉक्यूमेंट क्या होता है? वेब सर्विस डिस्क्रिप्शन लैंग्वेज यह एक्सएमएल लैंग्वेज पर आधारित डॉक्यूमेंट होता है जिसका उपयोग वेब सर्विस के लिए किया जाता है। जैसा कि हमने देखा कि वेब सर्विस विभिन्न प्रकार के मेथड्स का समूह होता है जिसको किसी क्लाइंट एप्लीकेशन के द्वारा कंज्यूम किया जाता है। WSDL डॉक्यूमेंट के भीतर इन सारे मेथड्स को एक्सपोज किया जाता है और उनका पूरा डिटेल इस डॉक्यूमेंट के भीतर होता है। जैसे अगर कोई मेथड है तो उसमें कितने पैरामीटर है, उन पैरामीटर के डाटाटाइप क्या है इत्यादि के बारे में एक्सएमएल की भाषा में सारी डिटेल होती है। जब भी कोई क्लाइंट एप्लीकेशन वेब सर्विस से कनेक्ट करता है तो इसी डॉक्यूमेंट के आधार पर आगे की प्रक्रिया संपादित होती है।
क्लाइंट एप्लीकेशन वेब सर्विस के मेथड्स के सम्बंधित क्लास के आधार पर प्रोक्सी क्लास उत्पन्न करता है। प्रोक्सी क्लास के भीतर वेब सर्विस से संबंधित क्लाइंट मेथड्स होते हैं जो डॉटनेट objects को सीरियलाईज और डीसीरिलाइज करने के लिए यूज होता है।
निम्नलिखित उदाहरण में दर्शाया गया है कि कैसे कोई ASP.NET वेब एप्लीकेशन किसी वेब सर्विस को कंज्यूम कर सकता है। पिछले उदाहरण में हमने देखा कि कैसे दो संख्याओं को जोड़ने से संबंधित मेथड का वेब सर्विस बनाया जा सकता है। अब हम यह देखेंगे कि कैसे कोई भी ASP.NET वेबफॉर्म क्लाइंट एप्लीकेशन के रूप में उस वेब सर्विस को कंज्यूम कर सकता है।
रविवार ७ नवम्बर २०२१
© अजीत कुमार, सर्वाधिकार सुरक्षित।
इस आलेख को उद्धृत करते हुए इस लेख के लिंक का भी विवरण दें। इस आलेख को कॉपीराइट सूचना के साथ यथावत साझा करने की अनुमति है। कृपया इसे ऐसे स्थान पर साझा न करें जहाँ इसे देखने के लिए शुल्क देना पडे।
No comments:
Post a Comment