वेब सर्विस: Difference between revisions

From Vigyanwiki
m (17 revisions imported from alpha:वेब_सेवा)
(No difference)

Revision as of 17:36, 10 March 2023

वेब सेवा (डब्लूएस):

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

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

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

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

वेब सेवाएं (जेनेरिक)

अतुल्यकालिक जावास्क्रिप्ट और एक्सएमएल

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

आरईएसटी

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

2004 के दस्तावेज़ में, डब्लू3सी निम्नलिखित आरईएसटी को वेब सेवाओं की प्रमुख विशिष्ट विशेषता के रूप में सेट करता है:

हम वेब सेवाओं के दो प्रमुख वर्गों की पहचान कर सकते हैं:

  • आरईएसटी-अनुपालन वेब सेवाएं, जिसमें सेवा का प्राथमिक उद्देश्य स्टेटलेस संचालन के एक समान सेट का उपयोग करके वेब संसाधनों के एक्सएमएल प्रस्तुतियों में हेरफेर करना है; और
  • इच्छानुसार वेब सेवाएं, जिसमें सेवा संचालन के इच्छानुसार सेट को प्रकट कर सकती है।
    — डब्लू3सी, वेब सेवा आर्किटेक्चर[1]

वेब सेवाएं जो मार्कअप भाषाओं का प्रयोग करती हैं

ऐसी कई वेब सेवाएँ हैं जो मार्कअप भाषाओं का उपयोग करती हैं:

वेब एपीआई

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

डब्लू3सी वेब सेवाएं

डब्लू3सी वेब सेवाओं के संबंध में, डब्लू3सी ने वेब सेवा को इस प्रकार परिभाषित किया:

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

— डब्ल्यू3सी, वेब सेवा शब्दकोष[3]

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

स्पष्टीकरण

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

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

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

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

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

विभिन्न प्रणालियों के साथ संचार के नियमों को परिभाषित करने की आवश्यकता है, जैसे:

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

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

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

स्वचालित डिजाइन की विधियाँ

सेवा-उन्मुख वास्तुकला में वेब सेवाएँ।

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

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

आलोचना

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

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


वेब सेवाओं का प्रतिगमन परीक्षण

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

सोपयूआई, ओरेकल एप्लीकेशन टेस्टिंग सूट (ओएटीएस), एकीकृत कार्यात्मक परीक्षण, सेलेनियम, आदि जैसे कई टेस्ट ऑटोमेशन उपकरणों का उपयोग करके वेब सेवाओं के परीक्षण को भी स्वचालित किया जा सकता है।[12][13]

वेब सेवा परिवर्तन प्रबंधन

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

वेब सेवाओं की खोज और खोज

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


यह भी देखें

टिप्पणियाँ

  1. Compare: Oya 2008, "Under the current Web Services, […] stakeholder systems must follow the predefined rules for a particular business service including those about business protocols to send/receive messages and about system operation. […] More flexible mechanism is desired where freely built and autonomously running systems can exchange business messages without pre-agreed strict rules. We call it Autonomous Web Services (AWS) and proposed the framework called Dynamic Model Harmonization (DMH) with its algorithm, which dynamically adjusts different business process models between systems […]."[4]


संदर्भ

  1. "Web Services Architecture § Relationship to the World Wide Web and REST Architectures". W3C. Retrieved 11 November 2017.
  2. Benslimane, D.; Dustdar, S.; Sheth, A. (2008). "Services Mashups: The New Generation of Web Applications". IEEE Internet Computing. 10 (5): 13–15. doi:10.1109/MIC.2008.110. S2CID 8124905.
  3. "Web Services Glossary § Web service". W3C. 11 February 2004. Retrieved 24 January 2017.
  4. Oya, Makoto (2008-09-02). "Autonomous Web Services Based on Dynamic Model Harmonization". In Oya, Makoto; Uda, Ryuya; Yasunobu, Chizuko (eds.). Towards Sustainable Society on Ubiquitous Networks: The 8th IFIP Conference on E-Business, E-Services, and E-Society (I3E 2008), September 24 – 26, 2008, Tokyo, Japan. IFIP Advances in Information and Communication Technology. Vol. 286. Springer Science & Business Media (published 2008). p. 139. ISBN 9780387856902. Retrieved 2015-08-19.
  5. "नीचे-ऊपर वेब सेवाएँ बनाना". Eclipse. Retrieved 11 November 2017.
  6. "टॉप-डाउन वेब सेवाएँ बनाना". Eclipse. Retrieved 11 November 2017.
  7. 7.0 7.1 7.2 Chaturvedi, Animesh (2014). विश्लेषण के लिए सबसेट सेवा तक पहुँचने के लिए WSDL को सब्सक्राइब करें. 2014 IEEE 6th International Conference on Cloud Computing Technology and Science. p. 688. doi:10.1109/CloudCom.2014.149. ISBN 978-1-4799-4093-6.
  8. Bray, Tim (2004-10-28). "डब्ल्यूएस-पेजकाउंट". TBray.org. Retrieved 2011-04-22.
  9. Gray, N. A. B. (2005). "Performance of Java Middleware – Java RMI, JAX-RPC, and CORBA". University of Wollongong: 31–39. The results presented in this paper show that the nature of response data has a greater impact on relative performance than has been allowed for in most previous studies.
  10. 10.0 10.1 Chaturvedi, Animesh (2014). स्वचालित वेब सेवा परिवर्तन प्रबंधन AWSCM - एक उपकरण. 2014 IEEE 6th International Conference on Cloud Computing Technology and Science. p. 715. doi:10.1109/CloudCom.2014.144. ISBN 978-1-4799-4093-6.
  11. Chaturvedi, Animesh; Gupta, Atul (2013). वेब सेवाओं के कुशल प्रतिगमन परीक्षण करने के लिए एक उपकरण-समर्थित दृष्टिकोण. 2013 IEEE 7th International Symposium on the Maintenance and Evolution of Service-Oriented and Cloud-Based Systems. p. 50. doi:10.1109/MESOCA.2013.6632734. ISBN 978-1-4673-4889-8.
  12. Oracle Application Testing Suite
  13. Web Services Testing using Oracle Application Testing Suite
  14. Krill, Paul (2005-12-16). "Microsoft, IBM, SAP ने UDDI रजिस्ट्री प्रयास को बंद कर दिया". InfoWorld (in English). Retrieved 2022-05-28.
  15. QuinnRadich. "Removal of UDDI Services from Server Operating System - Win32 apps". docs.microsoft.com (in English). Retrieved 2022-05-28.
  16. "WWW2008 - WWW 2008: 17th International World Wide Web Conference (Welcome)" (in English). Retrieved 2022-05-28.
  17. Al-Masri, Eyhab; Mahmoud, Qusay H. (2008-04-21). "वर्ल्ड वाइड वेब पर वेब सेवाओं की जांच करना". Proceedings of the 17th international conference on World Wide Web. WWW '08. New York, NY, USA: Association for Computing Machinery: 795–804. doi:10.1145/1367497.1367605. ISBN 978-1-60558-085-2.


बाहरी संबंध