- घटना-उन्मुख प्रोग्रामिंग की विशेषताएं
- घटना निर्भरता
- सेवा उन्मुख
- आयोजन
- नियंत्रक
- ट्रिगर कार्य करता है
- समय नियंत्रित किया
- इवेंट-संचालित प्रोग्रामिंग के उदाहरण
- कार्य अनुमति
- कर्मों का आरंभ
- फायदा
- तेजी से प्रसंस्करण
- अन्तरक्रियाशीलता
- फैसलों की कम कोडिंग
- लचीलापन
- वैध टिकट
- आसान रखरखाव
- नुकसान
- जटिल नियंत्रण प्रवाह
- यह संरचित प्रोग्रामिंग को प्रतिस्थापित नहीं करता है
- लचीलापन
- अनुप्रयोग
- ग्राफिकल यूज़र इंटरफ़ेस
- संदर्भ
घटना - संचालित प्रोग्रामिंग कंप्यूटर प्रोग्रामिंग का एक मॉडल है, जहां घटनाओं है कि एक कार्यक्रम के नियंत्रण प्रवाह निर्धारित करने के लिए होता है उपयोग किया जाता है को संदर्भित करता है।
यह एक प्रकार की तकनीक या प्रोग्रामिंग भाषा नहीं है, बल्कि एक दृष्टिकोण है जिसे उत्पाद विकास चरण के दौरान लागू किया जाता है। मूल रूप से, यह किसी प्रोग्राम में इवेंट प्रोसेसिंग लॉजिक को बाकी कोड से अलग करता है।
इस प्रकार की प्रोग्रामिंग घटनाओं को खोजने के लिए डिज़ाइन की गई है जैसा कि वे होते हैं, आमतौर पर किसी फ़ंक्शन या विधि को कॉल करके उनसे निपटने के लिए एक उचित ईवेंट हैंडलिंग प्रक्रिया का उपयोग करते हैं।
सैद्धांतिक रूप से, इस प्रोग्रामिंग की शैली सभी प्रोग्रामिंग भाषाओं के साथ संगत है, हालांकि यह लागू होने के तरीके में भिन्न हो सकती है।
सामान्य तौर पर, एक घटना संचालित एप्लिकेशन में एक मुख्य लूप होता है जो नई आने वाली घटनाओं के लिए "सुनता है", फ़ंक्शन कॉल का पता लगाने पर ट्रिगर करता है। इसलिए, इसका संचालन घटनाओं पर केंद्रित है, यह तय करना कि किस पर अमल करना है और किस क्रम में करना है।
घटना-उन्मुख प्रोग्रामिंग की विशेषताएं
स्रोत: pixabay.com
घटना निर्भरता
कार्यक्रम का प्रवाह ऐसी घटनाओं द्वारा दिया जाता है जो उपयोगकर्ता की कार्रवाइयां हो सकती हैं, अन्य कार्यक्रमों के संदेश आदि, प्रोग्राम के कोड के बाकी हिस्सों से घटनाओं के प्रसंस्करण तर्क को अलग कर सकते हैं, इस प्रकार बैच प्रसंस्करण के साथ विपरीत है।
ईवेंट स्वयं एक कुंजी को दबाने वाले उपयोगकर्ता को ऋण अनुरोध को स्वीकार करने या अस्वीकार करने से लेकर उच्च-स्तरीय घटना कह सकते हैं, जो एक निम्न-स्तरीय घटना है।
सेवा उन्मुख
इसका उपयोग कंप्यूटर को धीमा किए बिना सेवा के लिए डिज़ाइन किए गए कार्यक्रमों को लिखने के लिए किया जाता है, क्योंकि सेवा अभिविन्यास केवल थोड़ी प्रसंस्करण शक्ति का उपभोग करता है। इसके अलावा, सेवाएं आम तौर पर ऑपरेटिंग सिस्टम की पृष्ठभूमि में चलती हैं।
आयोजन
यह एक ऐसी स्थिति है जो किसी प्रोग्राम के निष्पादन के दौरान उत्पन्न होती है और इसके लिए सिस्टम की ओर से कुछ कार्रवाई की आवश्यकता होती है। प्रत्येक घटना प्रकृति में भिन्न होती है, कुछ को कुछ जानकारी को पुनः प्राप्त करने और प्रदर्शित करने के लिए कार्यक्रम की आवश्यकता होती है, और दूसरों को आरंभ करने के लिए कुछ गणनाओं और राज्य परिवर्तनों की आवश्यकता होती है।
ईवेंट में माउस, कीबोर्ड, एक यूजर इंटरफेस और एक्शन शामिल होते हैं जिन्हें प्रोग्राम में होने पर ट्रिगर किया जाना चाहिए। इसका अर्थ है कि उपयोगकर्ता को प्रोग्राम में किसी ऑब्जेक्ट के साथ इंटरैक्ट करना होगा, जैसे माउस बटन पर क्लिक करना, कीबोर्ड का उपयोग करके बटन का चयन करना आदि।
नियंत्रक
यह कार्यक्रम की एक निश्चित इकाई है जो किसी घटना पर प्रतिक्रिया करने के लिए सक्रिय होती है। यही है, यह एक प्रकार का फ़ंक्शन या विधि है जो एक निश्चित घटना को ट्रिगर करने पर एक विशिष्ट कार्रवाई को निष्पादित करता है।
उदाहरण के लिए, यह एक बटन हो सकता है कि जब उपयोगकर्ता उस पर क्लिक करता है तो वह एक संदेश प्रदर्शित करता है और जब वह उस बटन पर क्लिक करता है तो संदेश को फिर से बंद कर देता है।
ट्रिगर कार्य करता है
वे फ़ंक्शन हैं जो तय करते हैं कि किसी विशिष्ट घटना के होने पर किस कोड को निष्पादित करना है। उनका उपयोग किसी घटना के होने पर किस इवेंट हैंडलर को चुनने के लिए किया जाता है।
समय नियंत्रित किया
यह एक विशिष्ट कोड है जो एक निश्चित समय पर चलता है। इसका मतलब है कि यह एक पूर्व निर्धारित कार्य है।
विंडोज अपडेट नियंत्रित समय का एक उदाहरण है, जहां उपयोगकर्ता अपडेट करने के लिए या अपडेट की जांच और डाउनलोड करने के लिए कब सेट कर सकता है।
इवेंट-संचालित प्रोग्रामिंग के उदाहरण
कार्यक्रम-उन्मुख कार्यक्रम बहुत आम हो गए हैं। सबसे प्रमुख उदाहरणों में वर्ड प्रोसेसिंग, ड्राइंग टूल्स, स्प्रेडशीट आदि हैं।
अधिकांश आधुनिक मैसेजिंग सिस्टम भी इवेंट-संचालित पैटर्न का पालन करते हैं, जबकि बड़े पैमाने पर वेबसाइट वितरित प्रकृति के स्केलेबल और इवेंट-संचालित आर्किटेक्चर का उपयोग करती हैं। अन्य उदाहरण हैं:
- एक कुंजी दबाया गया था (पाठ संपादक)।
- एक नया कार्य कैलेंडर सभी कर्मचारियों (प्रबंधन प्रणाली) को वितरित करने के लिए तैयार है।
- एक HTML संदेश (वेब सर्वर) प्राप्त हुआ है।
- एक अवैध व्यापार पैटर्न का पता चला है (धोखाधड़ी का पता लगाने)।
- कंप्यूटर गेम में एक कार दूसरी कार (रेसिंग गेम) से टकराती है।
- एक रोबोट अपने गंतव्य (वास्तविक समय में गोदाम प्रबंधन) पर पहुंच गया है।
कार्य अनुमति
ईवेंट-चालित प्रोग्रामिंग में उपयोग किए गए ईवेंट का एक व्यावहारिक उदाहरण एक सिस्टम पर वर्क परमिट के लिए आवेदन करने वाला कर्मचारी हो सकता है। जब यह कर्मचारी अपना अनुरोध जारी करता है, तो वह एक अधिसूचना को सक्रिय करेगा जिसे प्रबंधक को अनुमोदन के लिए भेजा जाएगा।
प्रबंधक अतिरिक्त सत्र आरंभ करने की आवश्यकता के बिना सिस्टम में इसे अपडेट करते हुए, अनुरोध के विवरण को देख सकता है, इसे स्वीकृत या अस्वीकार कर सकता है।
कर्मों का आरंभ
एक कार्यक्रम की क्रियाएँ जो इवेंट-ओरिएंटेड प्रोग्रामिंग के मूल सिद्धांतों का अनुसरण करती हैं, वे घटनाओं द्वारा शुरू की जाती हैं:
- हार्डवेयर।
- अनुसूचित।
- निष्पादन समय का।
- ऑपरेटिंग सिस्टम से।
- कार्यक्रम के जीयूआई के साथ बातचीत के माध्यम से दिए गए उपयोगकर्ता निर्देशों द्वारा सक्रिय।
अपने सबसे सरल मोड में, प्रोग्रामर को इस सवाल का जवाब देना होगा: "जब एक निश्चित घटना होती है तो क्या होना चाहिए?"
निम्नलिखित छद्म कोड दिनचर्या से पता चलता है कि एक बहुत ही सरल अनुसूचक कैसे काम कर सकता है। इसमें एक मुख्य लूप होता है जो कुछ समाप्ति स्थिति होने तक लगातार चलता रहता है।
जब कोई ईवेंट होता है, तो शेड्यूलर को ईवेंट प्रकार निर्धारित करना चाहिए और एक उपयुक्त ईवेंट हैंडलर का चयन करना चाहिए, या एक ईवेंट हैंडलर मौजूद न होने पर ईवेंट को संभालना चाहिए।
फायदा
तेजी से प्रसंस्करण
कई प्रोसेसर और घटना संचालकों के बीच डेटा के प्रसार के कारण।
अन्तरक्रियाशीलता
यह उपयोगकर्ता के अनुभव को बेहतर बनाने, घटना-उन्मुख प्रोग्रामिंग का सबसे महत्वपूर्ण लाभ है। आज के उपयोगकर्ता सक्रिय रूप से भाग लेना चाहते हैं और निष्क्रिय उपभोक्ता नहीं हैं।
इसलिए, घटना-आधारित कार्यक्रम उपयोगकर्ताओं को अपने स्वयं के अनुभव को नेविगेट करने और पूर्व-निर्धारित प्रतिबंधों के बिना कई विकल्पों का पता लगाने में मदद करते हैं।
फैसलों की कम कोडिंग
प्रोग्रामिंग के इस दृष्टिकोण के सभी हितधारकों के लिए कई लाभ हैं, क्योंकि पारंपरिक अनुप्रयोगों की तुलना में कोड के लिए कम निर्णय लेने की आवश्यकता होती है।
कई घटनाओं को उपयोगकर्ता क्रियाओं द्वारा निर्धारित किया जाता है, बजाय सभी संभावित परिदृश्यों के लिए उन्नत कोडिंग के द्वारा। जबकि पारंपरिक अनुप्रयोग कार्य करते हैं, घटना-संचालित अनुप्रयोग प्रतिक्रिया करते हैं।
लचीलापन
यह क्लाउड कंप्यूटिंग, माइक्रोसर्विस, और लचीली और वितरित प्रणालियों के साथ बेहतर स्केलेबिलिटी की आवश्यकता जैसे हाल के सॉफ्टवेयर इंजीनियरिंग रुझानों के लिए पूरी तरह से अनुकूल है।
वैध टिकट
अमान्य मानों के साथ प्रविष्टियों की संभावना को समाप्त करता है। एक पारंपरिक एप्लिकेशन एक सवाल पूछता है और उपयोगकर्ता को एक जवाब टाइप करने की अनुमति देता है। इवेंट-संचालित एप्लिकेशन आमतौर पर बटन या ड्रॉप-डाउन मेनू के रूप में विकल्पों का एक सेट प्रदान करते हैं।
आसान रखरखाव
मॉड्यूल को जोड़ने या हटाने पर मौजूदा कोड को सही और समायोजित करने की आवश्यकता समाप्त हो जाती है। सिस्टम इस तरह के किसी भी समायोजन के बिना सुचारू रूप से काम करना जारी रखता है।
इसलिए, यह प्रोग्रामिंग एक संरचना के आधार पर आंतरिक और बाहरी घटनाओं के सेट के आधार पर नियंत्रण के प्रवाह के साथ अनुप्रयोगों के लिए उपयुक्त है।
नुकसान
जटिल नियंत्रण प्रवाह
प्रोग्रामिंग के लिए यह दृष्टिकोण छोटे और सरल अनुप्रयोगों के लिए सबसे अच्छा विकल्प नहीं है, क्योंकि जो प्रयास किए जाने चाहिए वे समझदार नहीं हैं।
एक इवेंट-संचालित एप्लिकेशन विकसित करने से सिस्टम डिज़ाइन और डिलीवरी की जटिलता बढ़ जाती है। ऐसा इसलिए है क्योंकि पारंपरिक सॉफ़्टवेयर आर्किटेक्चर इवेंट-आधारित इंटरैक्शन के बजाय अनुरोध-आधारित इंटरैक्शन पर आधारित हैं।
इसके अलावा, लगातार गतिशील इवेंट लूप की आवश्यकता के कारण तैयारी का एक बड़ा सौदा भी आवश्यक है।
यह संरचित प्रोग्रामिंग को प्रतिस्थापित नहीं करता है
यह ध्यान दिया जाना चाहिए कि घटना-उन्मुख प्रोग्रामिंग पारंपरिक संरचित प्रोग्रामिंग को प्रतिस्थापित नहीं करता है, लेकिन केवल इसे पूरक करता है।
समग्र कार्यक्रम लिखने के लिए पारंपरिक प्रोग्रामिंग कार्यप्रणालियां आवश्यक हैं, जबकि घटना से प्रेरित कोडिंग तत्व केवल जीयूआई को डिजाइन करने में मदद करते हैं।
लचीलापन
इवेंट-ओरिएंटेड शेड्यूलिंग का लचीलापन, जो इसका निर्विवाद लाभ है, कुछ परिदृश्यों में धोखाधड़ी में बदल जाता है। इस तरह की अभिव्यक्ति एक घटना-उन्मुख कार्यक्रम की अप्रत्याशितता है जब इसमें समग्र प्रणाली पर परिवर्तन और कमजोर नियंत्रण होता है।
हालाँकि कोडर ईवेंट-चालित प्रोग्रामिंग का उपयोग करना पसंद करते हैं, ताकि घर्षण रहित समायोजन करने के लिए, जैसे कि कुछ कार्यात्मक मॉड्यूल को हटाना या जोड़ना, ये समायोजन कार्यक्षमता में अप्रत्याशित परिवर्तन ला सकते हैं।
पारंपरिक प्रोग्रामिंग में, सिस्टम बहुत तेज़ी से इन परिचालन विसंगतियों का पता लगाता है, जो प्रोग्रामर को उनके कारणों के बारे में एक रिपोर्ट प्रदान करता है। इवेंट-संचालित प्रोग्रामिंग वातावरण में, इस तरह की खराबी का पता लगाना कम त्वरित और आसान है।
अनुप्रयोग
चूंकि इवेंट-संचालित प्रोग्रामिंग एक प्रकार की भाषा की तुलना में अधिक दृष्टिकोण वाली है, इसलिए इवेंट-आधारित एप्लिकेशन किसी भी प्रोग्रामिंग भाषा में बनाए जा सकते हैं।
इवेंट-संचालित प्रोग्रामिंग सॉफ्टवेयर विकास सेवाओं की दुनिया को बदल रहा है और आज के विकास का एक अभिन्न अंग बन रहा है। इसका प्रसार विंडोज और दृश्य वातावरण के प्रसार से प्रेरित था।
एक घटना-संचालित स्थिति का एक मामला एक निश्चित समय में एक विशिष्ट कार्य करने के लिए एक वेक-अप टाइमर के समान होगा, जैसे कि बजने और संचार करने वाली चीज़ जो कहती है, "जागो!"
ग्राफिकल यूज़र इंटरफ़ेस
यह समय-निर्धारण दृष्टिकोण ईवेंट-केंद्रित है। इसके सबसे आम एप्लिकेशन क्षेत्रों में ग्राफिकल यूजर इंटरफेस (जीयूआई), सर्वर एप्लिकेशन और मल्टीप्लेयर गेम विकसित करना शामिल है।
जबकि पारंपरिक कार्यक्रम घटनाओं के प्रवाह को स्थापित करते हैं और उपयोगकर्ता के विकल्पों पर नियंत्रण रखते हैं, यह अधिक नवीन प्रोग्रामिंग जीयूआई बनाने के लिए सेवा करता है।
GUI ने उपयोगकर्ताओं को ड्रॉप-डाउन मेनू, विंडो, बटन और चेकबॉक्स के रूप में कई विकल्प प्रदान करके मानव-कंप्यूटर इंटरैक्शन को बदल दिया।
इसलिए, कंप्यूटर द्वारा निर्धारित कार्यों के पूर्व निर्धारित क्रम का पालन करने के बजाय, उपयोगकर्ता अपने आप उपलब्ध कई कमांडों में से एक का चयन कर सकते हैं।
इस प्रोग्रामिंग के अलावा ग्राफिकल यूजर इंटरफेस में व्यापक रूप से लागू किया जा रहा है, यह उन अनुप्रयोगों में भी व्यापक रूप से लागू होता है जो उपयोगकर्ता इनपुट के जवाब में कुछ क्रियाएं करते हैं, जैसे कि जावास्क्रिप्ट वेब एप्लिकेशन।
संदर्भ
- रसपाल चीमा (2018)। सॉफ्टवेयर विकास में घटना-प्रेरित अनुप्रयोग। ब्लूबेरी कंसल्टेंट्स। से लिया गया: bbconsult.co.uk
- कोरम (2020)। बिल्डिंग ऐप्स - पाठ 1: घटना-चालित प्रोग्रामिंग का परिचय। से लिया गया: quorumlanguage.com
- मार्गरेट राउज़ (2012)। घटना संचालित आवेदन। Techtarget। से लिया गया: searchitoperations.techtarget.com।
- यूके एसेज (2018)। घटना-चालित प्रोग्रामिंग सुविधाएँ। से लिया गया: ukessays.com।
- सौविक बनर्जी (2019)। घटना-चालित प्रोग्रामिंग: अब यह क्यों चल रहा है? आरएस वेबसोल। से लिया गया: rswebsols.com
- Techopedia (2018)। कार्यक्रम-संचालित कार्यक्रम से लिया गया: छतपीडिया.कॉम।
- प्रौद्योगिकी यूके (2020)। इवेंट-संचालित प्रोग्रामिंग। से लिया गया: technologyuk.net