वेब फ्रेमवर्क: Difference between revisions
No edit summary |
No edit summary |
||
Line 9: | Line 9: | ||
| url=http://hoohoo.ncsa.uiuc.edu/cgi/intro.html | | url=http://hoohoo.ncsa.uiuc.edu/cgi/intro.html | ||
| archive-url = https://web.archive.org/web/20090409213905/http://hoohoo.ncsa.uiuc.edu/cgi/intro.html | | archive-url = https://web.archive.org/web/20090409213905/http://hoohoo.ncsa.uiuc.edu/cgi/intro.html | ||
| archive-date = 2009-04-09 }}</ref> | | archive-date = 2009-04-09 }}</ref> सीजीआई इंटरफ़ेस के मूल कार्यान्वयन का समान्यतः सर्वर लोड पर प्रतिकूल प्रभाव पड़ता है, क्योंकि प्रत्येक अनुरोध ने भिन्न [[प्रक्रिया (कंप्यूटिंग)]] प्रारम्भ की थी।<ref>{{Cite web|title=सीजीआई|url=https://www.ibm.com/docs/en/i/7.4?topic=functionality-cgi|access-date=2021-05-07|website=www.ibm.com|language=en-us}}</ref> कार्यान्वयन सर्वर के संसाधनों में पदचिह्न को कम करने और सामान्य प्रदर्शन को तीव्रता देने के लिए अन्य तकनीकों के मध्य निरंतर प्रक्रियाओं का उपयोग करते हैं। | ||
सीजीआई इंटरफ़ेस के मूल कार्यान्वयन का समान्यतः सर्वर लोड पर प्रतिकूल प्रभाव पड़ता है, क्योंकि प्रत्येक अनुरोध ने भिन्न [[प्रक्रिया (कंप्यूटिंग)]] प्रारम्भ की थी।<ref>{{Cite web|title=सीजीआई|url=https://www.ibm.com/docs/en/i/7.4?topic=functionality-cgi|access-date=2021-05-07|website=www.ibm.com|language=en-us}}</ref> | |||
1995 में, सम्पूर्ण तरीके से एकीकृत सर्वर विकास वातावरण प्राथमिक बार उत्पन हुआ और नई वेब-विशिष्ट भाषाएं, जैसे कि [[ ठंडा गलन |ठंडा गलन]], [[पीएचपी]] और [[सक्रिय सर्वर पेज]] | 1995 में, सम्पूर्ण तरीके से एकीकृत सर्वर विकास वातावरण प्राथमिक बार उत्पन हुआ और नई वेब-विशिष्ट भाषाएं, जैसे कि [[ ठंडा गलन |ठंडा गलन]], [[पीएचपी]] और [[सक्रिय सर्वर पेज]] प्रस्तुति की गई। | ||
चुकीं गतिशील वेब पेज बनाने के लिए अधिकांश भाषाओं में सामान्य कार्यों में मदद के लिए लाइब्रेरी (कंप्यूटिंग) है, वेब एप्लिकेशन को प्रायः विशेष कार्यों के लिए जैसे कि एचटीएमएल बनाना (उदाहरण के लिए, [[जकार्ता सर्वर चेहरे]]) विशिष्ट लाइब्रेरी की आवश्यकता होती है। | चुकीं गतिशील वेब पेज बनाने के लिए अधिकांश भाषाओं में सामान्य कार्यों में मदद के लिए लाइब्रेरी (कंप्यूटिंग) है, वेब एप्लिकेशन को प्रायः विशेष कार्यों के लिए जैसे कि एचटीएमएल बनाना (उदाहरण के लिए, [[जकार्ता सर्वर चेहरे]]) विशिष्ट लाइब्रेरी की आवश्यकता होती है। | ||
1990 के दशक के अंत में, परिपक्व, पूर्ण स्टैक फ्रेमवर्क दिखाई देने लगे, जो प्रायः वेब विकास के लिए उपयोगी कई पुस्तकालयों को वेब डेवलपर्स के उपयोग के लिए एकल संसक्त [[सॉफ़्टवेयर स्टैक]] में इकट्ठा करते थे। इसके उदाहरणों में एएसपी.नेट, जावा प्लेटफार्म, एंटरप्राइज एडिशन, [[WebObjects|वेबऑब्जेक्ट्स]], [[web2py|वेब2पी]], [[OpenACS|ओपनएसीएस]], उत्प्रेरक(सॉफ़्टवेयर), [[Mojolicious|मौजोलिशियस]], [[Ruby on Rails|रूबी ऑन रेल्स]], [[Laravel|लारवेलl]], [[Grails (Framework)|ग्रिल्स (फ्रेमवर्क)]] , डिजानगो (वेब फ़्रेमवर्क), [[Zend Framework|ज़ेंड फ्रेमवर्क]], साइलस.जस, [[ यह |यी]] ,<ref>{{cite web |title=यह PHP फ्रेमवर्क|url=http://www.yiiframework.com/}}</ref> [[केकेपीएचपी]],<ref>{{cite web |title=केकेपीएचपी|url=http://cakephp.org/}}</ref> और [[सिम्फोनी]] | 1990 के दशक के अंत में, परिपक्व, पूर्ण स्टैक फ्रेमवर्क दिखाई देने लगे, जो प्रायः वेब विकास के लिए उपयोगी कई पुस्तकालयों को वेब डेवलपर्स के उपयोग के लिए एकल संसक्त [[सॉफ़्टवेयर स्टैक]] में इकट्ठा करते थे। इसके उदाहरणों में एएसपी.नेट, जावा प्लेटफार्म, एंटरप्राइज एडिशन, [[WebObjects|वेबऑब्जेक्ट्स]], [[web2py|वेब2पी]], [[OpenACS|ओपनएसीएस]], उत्प्रेरक(सॉफ़्टवेयर), [[Mojolicious|मौजोलिशियस]], [[Ruby on Rails|रूबी ऑन रेल्स]], [[Laravel|लारवेलl]], [[Grails (Framework)|ग्रिल्स (फ्रेमवर्क)]] , डिजानगो (वेब फ़्रेमवर्क), [[Zend Framework|ज़ेंड फ्रेमवर्क]], साइलस.जस, [[ यह |यी]] ,<ref>{{cite web |title=यह PHP फ्रेमवर्क|url=http://www.yiiframework.com/}}</ref> [[केकेपीएचपी]],<ref>{{cite web |title=केकेपीएचपी|url=http://cakephp.org/}}</ref> और [[सिम्फोनी]] सम्मलितहैं। | ||
== फ्रेमवर्क संरचना के प्रकार == | == फ्रेमवर्क संरचना के प्रकार == | ||
अधिकांश वेब फ्रेमवर्क मॉडल-व्यू-कंट्रोलर | अधिकांश वेब फ्रेमवर्क मॉडल-व्यू-कंट्रोलर[[ वास्तु पैटर्न ]]पर आधारित होते हैं। | ||
=== मॉडल-व्यू-कंट्रोलर (एमवीसी) === | === मॉडल-व्यू-कंट्रोलर (एमवीसी) === | ||
{{Main article|मॉडल व्यू नियंत्रक }} | {{Main article|मॉडल व्यू नियंत्रक }} | ||
[[डेटा मॉडल]] को [[व्यापार नियम]] (कंट्रोलर) और [[ प्रयोक्ता इंटरफ़ेस ]](व्यू) में भिन्न करने के लिए कई फ्रेमवर्क एमवीसी संरचनाल पैटर्न (कंप्यूटर साइंस) का पालन करते हैं। यह समान्यतः अच्छा अभ्यास माना जाता है क्योंकि यह चिंताओं को भिन्न करता है, कोड पुन: उपयोग को बढ़ावा देता है, और कई इंटरफेस को प्रस्तावित करने की अनुमति देता है। वेब अनुप्रयोगों में, यह विभिन्न दृश्यों को प्रस्तुत करने की अनुमति देता है, उदाहरण के लिए मोबाइल बनाम डेस्कटॉप ब्राउज़रों के लिए विभिन्न [[ वेब पृष्ठ | वेब पृष्ठों]] की सेवा करना, या मशीन-पठनीय [[वेब सेवा]] इंटरफेस प्रदान | [[डेटा मॉडल]] को [[व्यापार नियम]] (कंट्रोलर) और [[ प्रयोक्ता इंटरफ़ेस ]](व्यू) में भिन्न करने के लिए कई फ्रेमवर्क एमवीसी संरचनाल पैटर्न (कंप्यूटर साइंस) का पालन करते हैं। यह समान्यतः अच्छा अभ्यास माना जाता है क्योंकि यह चिंताओं को भिन्न करता है, कोड पुन: उपयोग को बढ़ावा देता है, और कई इंटरफेस को प्रस्तावित करने की अनुमति देता है। वेब अनुप्रयोगों में, यह विभिन्न दृश्यों को प्रस्तुत करने की अनुमति देता है, उदाहरण के लिए मोबाइल बनाम डेस्कटॉप ब्राउज़रों के लिए विभिन्न [[ वेब पृष्ठ | वेब पृष्ठों]] की सेवा करना, या मशीन-पठनीय [[वेब सेवा]] इंटरफेस प्रदान करना है। | ||
==== पुश-आधारित बनाम पुल-आधारित ==== | ==== पुश-आधारित बनाम पुल-आधारित ==== | ||
अधिकांश एमवीसी ढांचे | अधिकांश एमवीसी ढांचे आधारित संरचना का पालन करते हैं जिसे क्रिया-आधारित भी कहा जाता है। ये ढाँचे उन क्रियाओं का उपयोग करते हैं जो आवश्यक प्रसंस्करण करते हैं, और फिर परिणाम प्रस्तुत करने के लिए डेटा को व्यू लेयर पर धकेलते हैं।<ref>{{cite web | ||
| last = Thomson | | last = Thomson | ||
| first = Kris | | first = Kris | ||
Line 32: | Line 31: | ||
| url=https://www.theserverside.com/discussions/thread/22143.html | | url=https://www.theserverside.com/discussions/thread/22143.html | ||
| date = 2003-10-29 | | date = 2003-10-29 | ||
| access-date = 2007-07-29 }}</ref> डिजानगो (वेब फ्रेमवर्क), रूबी ऑन रेल्स, सिम्फनी, स्प्रिंगएमवीसी, [[ पट्टियां (ढांचा) ]], साइलस.जेएस, [[CodeIgniter|कोडेल्गिनेटर]]<ref>{{cite web|url=https://cwiki.apache.org/confluence/display/WW/What+are+the+fundamental+differences+between+Struts+and+JSF |title=स्ट्रट्स और जेएसएफ के बीच मूलभूत अंतर क्या हैं|publisher=Struts.apache.org |date=2011-02-14 |access-date=2013-06-14}}</ref> इस वास्तुकला के अच्छे उदाहरण हैं। इसका विकल्प पुल | | access-date = 2007-07-29 }}</ref> डिजानगो (वेब फ्रेमवर्क), रूबी ऑन रेल्स, सिम्फनी, स्प्रिंगएमवीसी, [[ पट्टियां (ढांचा) ]], साइलस.जेएस, [[CodeIgniter|कोडेल्गिनेटर]]<ref>{{cite web|url=https://cwiki.apache.org/confluence/display/WW/What+are+the+fundamental+differences+between+Struts+and+JSF |title=स्ट्रट्स और जेएसएफ के बीच मूलभूत अंतर क्या हैं|publisher=Struts.apache.org |date=2011-02-14 |access-date=2013-06-14}}</ref> इस वास्तुकला के अच्छे उदाहरण हैं। इसका विकल्प पुल आधारित संरचना है, जिसे कभी-कभी घटक आधारित भी कहा जाता है। ये ढांचे दृश्य परत से प्रारम्भ होते हैं, जो आवश्यकतानुसार कई नियंत्रकों से परिणाम प्राप्त सकते हैं। इस संरचना में, दृश्य के साथ कई नियंत्रकों को सम्मलित किया जा सकता है। लिफ्ट (वेब फ्रेमवर्क), [[टेपेस्ट्री (प्रोग्रामिंग)]], [[ जेबीएसएस सीम |जेबीएसएस सीम,]] जकार्ता सर्वर फेसेस और [[अपाचे विकेट]] पुल-आधारित संरचना के उदाहरण हैं। [[Play Framework|प्ले फ्रेमवर्क]] ,[[Apache Struts|अपाचे स्ट्रटस]], रिफे (ढांचे) में पुश- और पुल आधारित एप्लिकेशन नियंत्रक कॉल दोनों के लिए समर्थन है। | ||
=== त्रिस्तरीय संगठन === | === त्रिस्तरीय संगठन === | ||
त्रिस्तरीय वास्तुकला में तीन-स्तरीय संगठन, अनुप्रयोगों को तीन भौतिक स्तरों के आसपास क्लाइंट, एप्लिकेशन और डेटाबेसरिफे संरचित किया जाता है।<ref>{{cite web | url=http://msdn.microsoft.com/en-us/library/ff647546.aspx | title=त्रिस्तरीय वितरण| author=Microsoft | access-date=2011-09-19 }}</ref><ref>{{cite web | url=http://download.oracle.com/docs/cd/E10316_01/cs/cs_doc_10/documentation/integrator/clustering_concepts_10en.pdf | title=clustering_concepts_10en | author=Oracle | access-date=2011-09-19}}</ref><ref>{{cite web | url= http://www.sis.pitt.edu/~perkoski/is1092/slides/chapter01.ppt | title=वेब विकास का परिचय| author=Robert R. Perkoski |archive-url=https://web.archive.org/web/20131107052241/http://www.sis.pitt.edu/~perkoski/is1092/slides/chapter01.ppt | archive-date=2013-11-07}}</ref><ref>{{cite web | url=http://publib.boulder.ibm.com/html/as400/v5r1/ic2933/index.htm?info/rzaii/rzaiithreetier.htm | title= तीन स्तरीय वातावरण में क्लाइंट एक्सेस एक्सप्रेस का उपयोग करना| author=IBM | access-date=2011-09-19}}</ref> डेटाबेस समान्यतः [[ संबंधपरक डेटाबेस प्रबंधन प्रणाली |संबंधपरक डेटाबेस प्रबंधन प्रणाली]] होता है। एप्लिकेशन में व्यापार तर्क सम्मलित है, सर्वर पर प्रस्तुत है और [[HTTP|एचटीटीपी]] का उपयोग कर क्लाइंट के साथ संचार करता है।<ref>{{cite web | url=http://download.oracle.com/docs/cd/B25221_05/web.1013/b13593/undtldev010.htm | title=थ्री-टियर आर्किटेक्चर को समझना| author=Oracle | access-date=2011-09-19}}</ref> वेब एप्लिकेशन पर क्लाइंट वेब ब्राउज़र है जो एप्लिकेशन लेयर द्वारा | त्रिस्तरीय वास्तुकला में तीन-स्तरीय संगठन, अनुप्रयोगों को तीन भौतिक स्तरों के आसपास क्लाइंट, एप्लिकेशन और डेटाबेसरिफे संरचित किया जाता है।<ref>{{cite web | url=http://msdn.microsoft.com/en-us/library/ff647546.aspx | title=त्रिस्तरीय वितरण| author=Microsoft | access-date=2011-09-19 }}</ref><ref>{{cite web | url=http://download.oracle.com/docs/cd/E10316_01/cs/cs_doc_10/documentation/integrator/clustering_concepts_10en.pdf | title=clustering_concepts_10en | author=Oracle | access-date=2011-09-19}}</ref><ref>{{cite web | url= http://www.sis.pitt.edu/~perkoski/is1092/slides/chapter01.ppt | title=वेब विकास का परिचय| author=Robert R. Perkoski |archive-url=https://web.archive.org/web/20131107052241/http://www.sis.pitt.edu/~perkoski/is1092/slides/chapter01.ppt | archive-date=2013-11-07}}</ref><ref>{{cite web | url=http://publib.boulder.ibm.com/html/as400/v5r1/ic2933/index.htm?info/rzaii/rzaiithreetier.htm | title= तीन स्तरीय वातावरण में क्लाइंट एक्सेस एक्सप्रेस का उपयोग करना| author=IBM | access-date=2011-09-19}}</ref> डेटाबेस समान्यतः [[ संबंधपरक डेटाबेस प्रबंधन प्रणाली |संबंधपरक डेटाबेस प्रबंधन प्रणाली]] होता है। एप्लिकेशन में व्यापार तर्क सम्मलित है, सर्वर पर प्रस्तुत है और [[HTTP|एचटीटीपी]] का उपयोग कर क्लाइंट के साथ संचार करता है।<ref>{{cite web | url=http://download.oracle.com/docs/cd/B25221_05/web.1013/b13593/undtldev010.htm | title=थ्री-टियर आर्किटेक्चर को समझना| author=Oracle | access-date=2011-09-19}}</ref> वेब एप्लिकेशन पर क्लाइंट वेब ब्राउज़र है जो एप्लिकेशन लेयर द्वारा उत्पन्न एचटीएमएल को चलाता है।<ref>{{cite web | url=http://msdn.microsoft.com/en-us/library/aa905336.aspx | title=Pragmatic Architecture: Layering | author=Microsoft | access-date=2011-09-19}}</ref><ref>{{cite web | url=http://www.arokiait.com/3-tire-web-architechture.htm | title=3-Tier Web Architecture | author=Arokia | access-date=2011-09-19}}</ref> इस शब्द को एमवीसी के साथ भ्रमित नहीं होना चाहिए, जहां, त्रिस्तरीय वास्तुकला के विपरीत, व्यावसायिक तर्क को नियंत्रक, मध्य परत से दूर रखने के लिए अच्छा अभ्यास माना जाता है।<ref>{{cite web|url=http://www.arrangeactassert.com/asp-net-mvc-controller-best-practices-–-skinny-controllers/ |title=ASP.NET MVC नियंत्रक सर्वोत्तम अभ्यास|access-date=2011-09-19 |url-status=dead |archive-url=https://web.archive.org/web/20111011174215/http://www.arrangeactassert.com:80/asp-net-mvc-controller-best-practices-%E2%80%93-skinny-controllers/ |archive-date=2011-10-11 }}</ref><ref>{{cite web | url=http://weblog.jamisbuck.org/2006/10/18/skinny-controller-fat-model | title=पतला नियंत्रक, मोटा मॉडल| author=Jamis Buck |archive-url=https://web.archive.org/web/20150516021854/http://www.arrangeactassert.com/asp-net-mvc-controller-best-practices-%E2%80%93-skinny-controllers/ | archive-date=2015-05-16}}</ref> | ||
Revision as of 12:58, 3 March 2023
वेब फ्रेमवर्क या वेब अनुप्रयोग फ्रेमवर्कसॉफ्टवेयर ढांचा है जिसे वेब सेवाओं, वेब संसाधनों और वेब एपीआई सहित वेब एप्लिकेशन के विकास का समर्थन करने के लिए डिज़ाइन किया गया है। वेब फ्रेमवर्क वर्ल्ड वाइड वेब पर वेब एप्लिकेशन बनाने और नियुक्त करने का मानक तरीका प्रदान करते हैं। वेब ढांचे का उद्देश्य वेब विकास में की जाने वाली सामान्य गतिविधियों से जुड़े ओवरहेड को स्वचालित करना है। उदाहरण के लिए, कई वेब फ्रेमवर्क डेटाबेस एक्सेस, टेम्पलेट प्रोसेसर फ्रेमवर्क और सेशन (कंप्यूटर साइंस) प्रबंधन के लिए पुस्तकालय (कम्प्यूटिंग) प्रदान करते हैं, और वे प्रायः कोड के पुन: उपयोग को बढ़ावा देते हैं।[1] चुकीं वे प्रायः गतिशील वेब पेजो के विकास को लक्षित करते हैं, वे स्थिर वेब पेजो पर भी प्रस्तावित होते हैं।[2]
इतिहास
जैसा कि वर्ल्ड वाइड वेब का डिज़ाइन स्वाभाविक रूप से गतिशील नहीं था, प्राथमिक हाइपरटेक्स्ट में हाथ से कोडित एचटीएमएल टेक्स्ट फ़ाइलें सम्मलितथीं जो वेब सर्वर पर प्रकाशित हुई थीं। प्रकाशित पृष्ठों में कोई भी संशोधन पृष्ठों के लेखक द्वारा किए जाने की आवश्यकता है। 1993 में, कॉमन गेटवे इंटरफ़ेस (सीजीएल) मानक को वेब सर्वर के साथ बाहरी अनुप्रयोगों को इंटरफेस करने के लिए प्रस्तुत किया गया था, जिससे गतिशील वेब पेज प्रदान किया जा सके जो उपयोगकर्ता इनपुट को प्रतिबिंबित करता हो।[3] सीजीआई इंटरफ़ेस के मूल कार्यान्वयन का समान्यतः सर्वर लोड पर प्रतिकूल प्रभाव पड़ता है, क्योंकि प्रत्येक अनुरोध ने भिन्न प्रक्रिया (कंप्यूटिंग) प्रारम्भ की थी।[4] कार्यान्वयन सर्वर के संसाधनों में पदचिह्न को कम करने और सामान्य प्रदर्शन को तीव्रता देने के लिए अन्य तकनीकों के मध्य निरंतर प्रक्रियाओं का उपयोग करते हैं।
1995 में, सम्पूर्ण तरीके से एकीकृत सर्वर विकास वातावरण प्राथमिक बार उत्पन हुआ और नई वेब-विशिष्ट भाषाएं, जैसे कि ठंडा गलन, पीएचपी और सक्रिय सर्वर पेज प्रस्तुति की गई।
चुकीं गतिशील वेब पेज बनाने के लिए अधिकांश भाषाओं में सामान्य कार्यों में मदद के लिए लाइब्रेरी (कंप्यूटिंग) है, वेब एप्लिकेशन को प्रायः विशेष कार्यों के लिए जैसे कि एचटीएमएल बनाना (उदाहरण के लिए, जकार्ता सर्वर चेहरे) विशिष्ट लाइब्रेरी की आवश्यकता होती है।
1990 के दशक के अंत में, परिपक्व, पूर्ण स्टैक फ्रेमवर्क दिखाई देने लगे, जो प्रायः वेब विकास के लिए उपयोगी कई पुस्तकालयों को वेब डेवलपर्स के उपयोग के लिए एकल संसक्त सॉफ़्टवेयर स्टैक में इकट्ठा करते थे। इसके उदाहरणों में एएसपी.नेट, जावा प्लेटफार्म, एंटरप्राइज एडिशन, वेबऑब्जेक्ट्स, वेब2पी, ओपनएसीएस, उत्प्रेरक(सॉफ़्टवेयर), मौजोलिशियस, रूबी ऑन रेल्स, लारवेलl, ग्रिल्स (फ्रेमवर्क) , डिजानगो (वेब फ़्रेमवर्क), ज़ेंड फ्रेमवर्क, साइलस.जस, यी ,[5] केकेपीएचपी,[6] और सिम्फोनी सम्मलितहैं।
फ्रेमवर्क संरचना के प्रकार
अधिकांश वेब फ्रेमवर्क मॉडल-व्यू-कंट्रोलरवास्तु पैटर्न पर आधारित होते हैं।
मॉडल-व्यू-कंट्रोलर (एमवीसी)
डेटा मॉडल को व्यापार नियम (कंट्रोलर) और प्रयोक्ता इंटरफ़ेस (व्यू) में भिन्न करने के लिए कई फ्रेमवर्क एमवीसी संरचनाल पैटर्न (कंप्यूटर साइंस) का पालन करते हैं। यह समान्यतः अच्छा अभ्यास माना जाता है क्योंकि यह चिंताओं को भिन्न करता है, कोड पुन: उपयोग को बढ़ावा देता है, और कई इंटरफेस को प्रस्तावित करने की अनुमति देता है। वेब अनुप्रयोगों में, यह विभिन्न दृश्यों को प्रस्तुत करने की अनुमति देता है, उदाहरण के लिए मोबाइल बनाम डेस्कटॉप ब्राउज़रों के लिए विभिन्न वेब पृष्ठों की सेवा करना, या मशीन-पठनीय वेब सेवा इंटरफेस प्रदान करना है।
पुश-आधारित बनाम पुल-आधारित
अधिकांश एमवीसी ढांचे आधारित संरचना का पालन करते हैं जिसे क्रिया-आधारित भी कहा जाता है। ये ढाँचे उन क्रियाओं का उपयोग करते हैं जो आवश्यक प्रसंस्करण करते हैं, और फिर परिणाम प्रस्तुत करने के लिए डेटा को व्यू लेयर पर धकेलते हैं।[7] डिजानगो (वेब फ्रेमवर्क), रूबी ऑन रेल्स, सिम्फनी, स्प्रिंगएमवीसी, पट्टियां (ढांचा) , साइलस.जेएस, कोडेल्गिनेटर[8] इस वास्तुकला के अच्छे उदाहरण हैं। इसका विकल्प पुल आधारित संरचना है, जिसे कभी-कभी घटक आधारित भी कहा जाता है। ये ढांचे दृश्य परत से प्रारम्भ होते हैं, जो आवश्यकतानुसार कई नियंत्रकों से परिणाम प्राप्त सकते हैं। इस संरचना में, दृश्य के साथ कई नियंत्रकों को सम्मलित किया जा सकता है। लिफ्ट (वेब फ्रेमवर्क), टेपेस्ट्री (प्रोग्रामिंग), जेबीएसएस सीम, जकार्ता सर्वर फेसेस और अपाचे विकेट पुल-आधारित संरचना के उदाहरण हैं। प्ले फ्रेमवर्क ,अपाचे स्ट्रटस, रिफे (ढांचे) में पुश- और पुल आधारित एप्लिकेशन नियंत्रक कॉल दोनों के लिए समर्थन है।
त्रिस्तरीय संगठन
त्रिस्तरीय वास्तुकला में तीन-स्तरीय संगठन, अनुप्रयोगों को तीन भौतिक स्तरों के आसपास क्लाइंट, एप्लिकेशन और डेटाबेसरिफे संरचित किया जाता है।[9][10][11][12] डेटाबेस समान्यतः संबंधपरक डेटाबेस प्रबंधन प्रणाली होता है। एप्लिकेशन में व्यापार तर्क सम्मलित है, सर्वर पर प्रस्तुत है और एचटीटीपी का उपयोग कर क्लाइंट के साथ संचार करता है।[13] वेब एप्लिकेशन पर क्लाइंट वेब ब्राउज़र है जो एप्लिकेशन लेयर द्वारा उत्पन्न एचटीएमएल को चलाता है।[14][15] इस शब्द को एमवीसी के साथ भ्रमित नहीं होना चाहिए, जहां, त्रिस्तरीय वास्तुकला के विपरीत, व्यावसायिक तर्क को नियंत्रक, मध्य परत से दूर रखने के लिए अच्छा अभ्यास माना जाता है।[16][17]
फ्रेमवर्क एप्लिकेशन
प्रोग्रामिंग भाषा के आधार पर इंटरनेट अनुप्रयोगों के निर्माण का समर्थन करने के लिए फ्रेमवर्क बनाए गए हैं, जिसमें ज़ेंड फ्रेमवर्क और रूबी ऑन रेल्स जैसे सामान्य प्रयोजन के उपकरण सम्मलित हैं, जो विशिष्ट भाषा की क्षमताओं को बढ़ाते हैं, मूल भाषा प्रोग्राम करने योग्य पैकेजों के समीप निर्मित होते हैं। विशिष्ट उपयोगकर्ता अनुप्रयोग, जैसे सामग्री प्रबंधन प्रणाली, कुछ मोबाइल विकास उपकरण और कुछ पोर्टल उपकरण हैं।[18]
सामान्य-उद्देश्य वाली वेबसाइट फ्रेमवर्क
वेब फ्रेमवर्क को ब्राउजर के वास्तु नियमों और हाइपरटेक्स्ट परहस्त शिष्टाचार जैसे संचार प्रोटोकॉल के अनुसार कार्य करना चाहिए, जो कि स्टेटलेस प्रोटोकॉल है। वेबपेज सर्वर (कंप्यूटिंग) द्वारा सर्व किए जाते हैं और फिर जावास्क्रिप्ट का उपयोग करके ब्राउज़र द्वारा संशोधित किए जा सकते हैं। किसी भी दृष्टिकोण के अपने फायदे और नुकसान हैं।[citation needed]
सर्वर-साइड पृष्ठ परिवर्तनों के लिए समान्यतः पृष्ठ को ताज़ा करने की आवश्यकता होती है,परन्तु किसी भी भाषा का उपयोग करने और अधिक कंप्यूटिंग शक्ति का उपयोग करने की अनुमति देता है। क्लाइंट-साइड परिवर्तन पेज को छोटे टुकड़ों में अपडेट करने की अनुमति देते हैं जो डेस्कटॉप एप्लिकेशन के जैसे लगता है, परन्तु जावास्क्रिप्ट तक सीमित है और उपयोगकर्ता के ब्राउज़र में प्रचलित है, जिसमें सीमित कंप्यूटिंग शक्ति हो सकती है। दोनों के कुछ मिश्रण का समान्यतः उपयोग किया जाता है।[19] एप्लिकेशन जो जावास्क्रिप्ट का अधिक उपयोग करते हैं और केवल पृष्ठ के कुछ हिस्सों का नवीकरण करते हैं, उन्हें पेज का आवेदन कहा जाता है और समान्यतः कोड को व्यवस्थित करने के लिए क्लाइंट-साइड जावास्क्रिप्ट वेब फ्रेमवर्क का उपयोग करते हैं।[citation needed]
सर्वर-साइड
- अपाचे विकेट
- एएसपी.नेट कोर
- केकेपीएचपी
- उत्प्रेरक (सॉफ्टवेयर)
- कोडइग्निटर
- सीपीपीसीएमएस
- डिजानगो (वेब फ्रेमवर्क)
- फ्लास्क (वेब फ्रेमवर्क)
- जाम.पीवाई (वेब फ्रेमवर्क)|जाम.पीवाई
- यी
- लारवेल
- मोजोलिशियस
- रूबी ऑन रेल्स
- पाल.जे.एस
- सिम्फनी
- वसंतएमवीसी
- डब्ल्यूटी (वेब टूलकिट)
- ज़ेंड फ्रेमवर्क
क्लाइंट-साइड
उदाहरणों में बैकबोन , एंगुलर जेएस, एंगुलर (एप्लीकेशन प्लेटफॉर्म), एम्बर जेएस, React (जावास्क्रिप्ट लाइब्रेरी), जक्वेरी यूआई, स्वेल्टे, और वीयूई सम्मलित हैं।[20]
चर्चा मंच, विकी और वेबलॉग
- विकीबेस/विकीविकिवेब[citation needed]
विशेषताएं
फ्रेमवर्क समान्यतः प्रोग्राम के नियंत्रण प्रवाह को सेट करते हैं और फ्रेमवर्क के उपयोगकर्ता को विभिन्न घटनाओं को उजागर करके उस प्रवाह में सम्मलित होने की अनुमति देते हैं।[21] नियंत्रण डिजाइन पैटर्न के इस व्युत्क्रम को ढांचे के परिभाषित सिद्धांत के रूप में माना जाता है, और टीम के लिए सामान्य प्रवाह को प्रस्तावित करके कोड को लाभ पहुंचाता है जिसे कोई समान उपायों से अनुकूलित कर सकता है।[21]उदाहरण के लिए, कुछ लोकप्रिय माइक्रोफ़्रेमवर्क जैसे रूबी सिनात्रा (सॉफ़्टवेयर) (जो एक्सप्रेस.जेएस से प्रेरित है) एचटीटीपी अनुरोधों से पहले और बाद में मिडलवेयर हुक की अनुमति देता है। ये मिडलवेयर फ़ंक्शंस कुछ भी हो सकते हैं, और उपयोगकर्ता को लॉगिंग, प्रमाणीकरण और सत्र प्रबंधन और पुनर्निर्देशन को परिभाषित करने की अनुमति देते हैं।[22]
वेब टेम्पलेट सिस्टम
कैशिंग
बैंडविड्थ (कंप्यूटिंग) उपयोग, वेब सर्वर लोड (कंप्यूटिंग), और कथित विलंबता (इंजीनियरिंग) को कम करने के लिए वेब कैश वर्ल्ड वाइड वेब इलेक्ट्रॉनिक दस्तावेज़ का वेब कैश है। एक वेब कैश इसके माध्यम से गुजरने वाले दस्तावेज़ों की प्रतियों को संग्रहीत करता है; यदि कुछ शर्तों को पूर्ण किया जाता है तो उसके पश्चात के अनुरोध कैश से संतुष्ट हो सकते हैं। कुछ एप्लिकेशन फ्रेमवर्क दस्तावेज़ों को कैशिंग करने और पृष्ठ की तैयारी के विभिन्न चरणों, जैसे डेटाबेस एक्सेस या टेम्प्लेट व्याख्या, को दरकिनार करने के लिए तंत्र प्रदान करते हैं।[citation needed]
सुरक्षा
कुछ वेब ढाँचे प्रमाणीकरण और प्राधिकरण ढाँचे के साथ आते हैं, जो वेब सर्वर को एप्लिकेशन के उपयोगकर्ताओं की पहचान करने में सक्षम बनाते हैं, और कुछ परिभाषित मानदंडों के आधार पर कार्यों तक पहुँच को प्रतिबंधित करते हैं। द्रुपल ऐसा उदाहरण है जो पृष्ठों तक भूमिका-आधारित पहुँच प्रदान करता है, और उपयोगकर्ताओं को बनाने और उन्हें भूमिकाएँ सौंपने के लिए वेब-आधारित इंटरफ़ेस प्रदान करता है।[citation needed]
डेटाबेस एक्सेस, मैपिंग और कॉन्फ़िगरेशन
कई वेब फ्रेमवर्क डेटाबेस बैकएंड के लिए एकीकृत एपीआई बनाते हैं, जिससे वेब एप्लिकेशन विभिन्न प्रकार के डेटाबेस के साथ बिना किसी कोड परिवर्तन के काम कर सकते हैं, और प्रोग्रामर को उच्च-स्तरीय अवधारणाओं के साथ काम करने की अनुमति देते हैं। इसके अतिरिक्त, कुछ ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग | ऑब्जेक्ट-ओरिएंटेड फ्रेमवर्क में ऑब्जेक्ट-रिलेशनल मैपिंग प्रदान करने के लिए मैपिंग टूल होते हैं, जो ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग को टुपल्स में मैप करते हैं।[23] कुछ ढांचे आत्मनिरीक्षण (कंप्यूटर विज्ञान) एवं प्रसिद्ध सम्मेलनों के उपयोग के माध्यम से वेब एप्लिकेशन कॉन्फ़िगरेशन को कम करते हैं। उदाहरण के लिए, कई जावा फ्रेमवर्क हाइबरनेट (जावा) को दृढ़ता परत के रूप में उपयोग करते हैं, जो आवश्यक जानकारी को बनाए रखने में सक्षम रनटाइम पर डेटाबेस स्कीमा उत्पन्न कर सकता है। यह एप्लिकेशन डिज़ाइनर को डेटाबेस स्कीमा को स्पष्ट रूप से परिभाषित करने की आवश्यकता के बिना व्यावसायिक वस्तुओं को डिज़ाइन करने की अनुमति देता है। रूबी ऑन रेल्स जैसे फ्रेमवर्क रिवर्स में भी काम कर सकते हैं, यानी डेटाबेस स्कीमा के आधार पर रनटाइम पर मॉडल ऑब्जेक्ट्स के गुणों को परिभाषित करते हैं।[23]
वेब फ्रेमवर्क प्रदान कर सकने वाली अन्य सुविधाओं में डेटाबेस लेनदेन [24] और आंकड़ों का विस्थापन[23]सम्मलित हैं|
यूआरएल मानचित्रण
फ्रेमवर्क की यूनिफ़ॉर्म रिसोर्स लोकेटर मैपिंग या रूटिंग सुविधा वह तंत्र है जिसके द्वारा फ्रेमवर्क यूआरएल की व्याख्या करता है। कुछ ढाँचे, जैसे द्रुपलऔर डिजानगो , नियमित अभिव्यक्ति का उपयोग करते हुए पूर्व-निर्धारित पैटर्न के विरुद्ध प्रदान किए गए यूआरएल से मेल खाते हैं, जबकि कुछ अन्य प्रदान किए गए यूआरएल को ऐसे यूआरएल में अनुवाद करने के लिए पुनर्लेखन तकनीकों का उपयोग करते हैं जिसे अंतर्निहित इंजन पहचान लेगा। अन्य तकनीक ग्राफ ट्रैवर्सल की है जैसे ज़ोप द्वारा उपयोग की जाती है, जहां यूआरएल चरणों में विघटित होता है जो ऑब्जेक्ट ग्राफ़ (मॉडल और विचारों के) को पार करता है।[citation needed]
यूआरएल मैपिंग सिस्टम जो रूट और हैंडल अनुरोधों के लिए पैटर्न मिलान या पुनर्लेखन का उपयोग करता है, यूआरएल को अधिक अनुकूल यूआरएल को छोटा करने की अनुमति देता है, साइट की सादगी को बढ़ाता है और खोज इंजन द्वारा बेहतर अनुक्रमण की अनुमति देता है। उदाहरण के लिए, "/page.cgi?cat=science&topic=physics" से समाप्त होने वाले यूआरएल को केवल /page/science/physics में बदला जा सकता है। यह यूआरएल को लोगों के लिए याद रखना, पढ़ना और लिखना आसान बनाता है, और साइट के संरचनात्मक लेआउट के बारे में बेहतर जानकारी के साथ खोज इंजन प्रदान करता है। ग्राफ़ ट्रैवर्सल दृष्टिकोण भी अनुकूल यूआरएल के निर्माण में परिणत होता है। छोटा यूआरएल जैसे /पेज/साइंस डिफ़ॉल्ट रूप से सम्मिलित होता है क्योंकि यह /पेज/साइंस/फिजिक्स के लंबे ट्रैवर्सल का छोटा रूप है।[citation needed]
अजाक्स
अजाक्स (प्रोग्रामिंग), अतुल्यकालिक I/O जावास्क्रिप्ट और XML के लिए आशुलिपि, वेब अनुप्रयोग बनाने के लिए वेब विकास तकनीक है। पर्दे के पीछे सर्वर के साथ अल्प मात्रा में डेटा का आदान-प्रदान करके वेब पेजों को अधिक प्रतिक्रियाशील बनाने का उद्देश्य है, जिससे उपयोगकर्ता द्वारा परिवर्तन का अनुरोध करने पर पुनः पूरे वेब पेज को फिर से लोड न करना पड़े। इसका उद्देश्य वेब पेज की अन्तरक्रियाशीलता, गति, रखरखाव और उपयोगिता को बढ़ाना है।[25] जावास्क्रिप्ट पुस्तकालय अजाक्स प्रोग्रामिंग की जटिलता के कारण, कई अजाक्स ढांचे हैं जो विशेष रूप से अजाक्स समर्थन से निपटते हैं। कुछ अजाक्स ढांचे को बड़े ढांचे के हिस्से के रूप में भी एम्बेड किया गया है। उदाहरण के लिए, जक्वेरी जावा स्क्रिप्ट लाइब्रेरी रूबी ऑन रेल्स में सम्मलित है।[citation needed]
वेब 2.0 समृद्ध वेब अनुप्रयोगों के विकास में बढ़ती रुचि के साथ, सीधे अजाक्स और जावास्क्रिप्ट में प्रोग्रामिंग की जटिलता इतनी स्पष्ट हो गई है कि कंपाइलर तकनीक ने डेवलपर्स को जावा, पायथन और रूबी जैसी उच्च-स्तरीय भाषाओं में कोड करने की अनुमति दी है। इन कंपाइलरों में से पहला जुड़ा हुआ था, जिसके बाद गूगल वेब टूलकिट, कुछ समय पश्चात पायज और रूबीजेएस के रूप में पायथन और रूबी के बंदरगाहों के साथ था। ये कंपाइलर और उनसे जुड़े विजेट सेट लाइब्रेरी समृद्ध मीडिया अजाक्स अनुप्रयोगों के विकास को डेस्कटॉप अनुप्रयोगों के विकास के समान बनाते हैं।[citation needed]
वेब सेवाएं
कुछ ढाँचे वेब सेवाएँ बनाने और प्रदान करने के लिए उपकरण प्रदान करते हैं। ये उपयोगिताएँ वेब एप्लिकेशन के समान उपकरण प्रदान कर सकती हैं।[26]
वेब संसाधन
कई नए वेब 2.0 प्रतिनिधित्ववादी स्थिति में स्थानांतरण फ्रेमवर्क अब संसाधन विवरण ढांचा (आरडीएफ) की अवधारणाओं के आधार पर सेमांटिक वेब ऑन्कोलॉजी इंजीनियरिंग के प्रकार के संसाधनों के संग्रह के निर्माण के लिए संसाधन-उन्मुख संरचना (आरओए) बुनियादी ढांचा प्रदान कर रहे हैं।[citation needed]
यह भी देखें
- जावास्क्रिप्ट-आधारित वेब फ्रेमवर्क की तुलना (क्लाइंट-साइड)
- सर्वर-साइड वेब फ्रेमवर्क की तुलना
- अनुप्रयोग सर्वर
- आवेदन ढांचा
- आवेदन सुरक्षा
- कॉन्फिगरेशन पर सम्मलेन
- खुद को न दोहराएं (DRY)
- वेब सेवा ढांचे की सूची
- रिच वेब एप्लिकेशन (अप्रचलित)
- समाधान ढेर
- मोबाइल विकास ढांचा
संदर्भ
- ↑ Multiple (wiki). "Web application framework". Docforge. Archived from the original on 2015-07-23.
- ↑ "Top Open-Source Static Site Generators". StaticGen.
- ↑ "CGI: Common Gateway Interface". Archived from the original on 2009-04-09.
- ↑ "सीजीआई". www.ibm.com (in English). Retrieved 2021-05-07.
- ↑ "यह PHP फ्रेमवर्क".
- ↑ "केकेपीएचपी".
- ↑ Thomson, Kris (2003-10-29). "Clarification on MVC= Pull and MVC Push". Retrieved 2007-07-29.
- ↑ "स्ट्रट्स और जेएसएफ के बीच मूलभूत अंतर क्या हैं". Struts.apache.org. 2011-02-14. Retrieved 2013-06-14.
- ↑ Microsoft. "त्रिस्तरीय वितरण". Retrieved 2011-09-19.
- ↑ Oracle. "clustering_concepts_10en" (PDF). Retrieved 2011-09-19.
- ↑ Robert R. Perkoski. "वेब विकास का परिचय". Archived from the original on 2013-11-07.
- ↑ IBM. "तीन स्तरीय वातावरण में क्लाइंट एक्सेस एक्सप्रेस का उपयोग करना". Retrieved 2011-09-19.
- ↑ Oracle. "थ्री-टियर आर्किटेक्चर को समझना". Retrieved 2011-09-19.
- ↑ Microsoft. "Pragmatic Architecture: Layering". Retrieved 2011-09-19.
- ↑ Arokia. "3-Tier Web Architecture". Retrieved 2011-09-19.
- ↑ "ASP.NET MVC नियंत्रक सर्वोत्तम अभ्यास". Archived from the original on 2011-10-11. Retrieved 2011-09-19.
- ↑ Jamis Buck. "पतला नियंत्रक, मोटा मॉडल". Archived from the original on 2015-05-16.
- ↑ "वेब फ्रेमवर्क के साथ शुरुआत करना" (in English). Wired Magazine. Retrieved 2018-04-02.
- ↑ KLIMUSHYN, Mel (6 April 2015). "Web Application Architecture – Client-Side vs. Server-Side". Atomic Spin. Retrieved 2016-03-06.
- ↑ "एंगुलरजेएस बनाम बैकबोन.जेएस बनाम एम्बर.जेएस". www.airpair.com (in English). Retrieved 2016-06-04.
- ↑ 21.0 21.1 Fowler, Martin. "bliki: InversionOfControl". martinfowler.com. Retrieved 2016-03-06.
- ↑ Xue, Qiang. "Capital One Engineering – Philosophies that Shaped Successful Frameworks". www.capitalone.io. Retrieved 2016-03-06.
- ↑ 23.0 23.1 23.2 "सक्रिय रिकॉर्ड मूल बातें". Ruby on Rails. Retrieved March 20, 2021.
Object Relational Mapping, commonly referred to as its abbreviation ORM, is a technique that connects the rich objects of an application to tables in a relational database management system...Active Record automatically creates methods to allow an application to read and manipulate data stored within its tables.
- ↑ "सक्रिय रिकॉर्ड लेनदेन". Ruby on Rails. Retrieved March 20, 2021.
- ↑ "अजाक्स क्या है". www.dlsweb.rmit.edu.au. Retrieved 2021-05-07.
- ↑ Maximilien, E.M. (December 19, 2006). "Web Services on Rails: Using Ruby and Rails for Web Services Development and Mashups". IEEE Xplore. Chicago. doi:10.1109/ICWS.2006.139. ISBN 0-7695-2669-1.