वेब सेवाओं के विकास के लिए तरीके - मोबाइल एप्लिकेशन, वेब सेवाओं, एसओए आर्किटेक्चर - प्रौद्योगिकी का विकास
इसे छोड़कर सामग्री पर बढ़ने के लिए

वेब सेवाओं के विकास के लिए पद्धतियाँ - मोबाइल एप्लिकेशन, वेब सेवाएँ, SOA आर्किटेक्चर का विकास

विज्ञापनों

कूलोरिस ने वितरित प्रणालियों को "ऐसी प्रणालियों के रूप में परिभाषित किया है जिसमें कंप्यूटर नेटवर्क में मौजूद हार्डवेयर और/या सॉफ़्टवेयर घटक संदेशों का आदान-प्रदान करके अपने कार्यों का संचार और समन्वय करते हैं"।

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

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

सेवा-उन्मुख वास्तुकला

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

SOA के बारे में जो क्रांतिकारी बात है वह स्वयं वह अवधारणा नहीं है, जो लंबे समय से मौजूद है, बल्कि यह तथ्य है कि इसे WWW (वर्ल्ड वाइड वेब) के माध्यम से लागू किया जा सकता है। जैसे वेब पेज किसी भी प्लेटफ़ॉर्म पर लोड होते हैं, वेब सेवाएँ भी उसी तरह से काम करती हैं, भले ही वे किसी भी प्लेटफ़ॉर्म का उपयोग करके बनाई गई हों
सार्वभौमिक मानक.

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

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

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

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

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

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

- चौथा, एक एसओए में एक ऐसा तंत्र होना चाहिए जो उपभोक्ता को उपभोक्ता द्वारा मांगी गई सेवा के संदर्भ में एक सेवा प्रदाता की खोज करने की अनुमति दे। तंत्र लचीला होना चाहिए और एक केंद्रीकृत रजिस्ट्री नहीं होनी चाहिए।

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

- छठा, निष्क्रिय अनुरोध (जो परिवर्तन नहीं करते): सॉफ़्टवेयर एजेंट द्वारा प्राप्त डुप्लिकेट अनुरोधों का प्रभाव एकल अनुरोध के समान होता है। यह आवश्यकता प्रदाताओं और उपभोक्ताओं को समग्र विश्वसनीयता बढ़ाने की अनुमति देती है सेवा, यदि कोई विफलता हुई है तो बस अनुरोध को दोहराना।

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