फ्रंटएंड और बैकएंड: Difference between revisions
No edit summary |
No edit summary |
||
Line 1: | Line 1: | ||
{{Short description|Presentation and data access aspecs in software architecture}} | {{Short description|Presentation and data access aspecs in software architecture}} | ||
[[ सॉफ़्टवेयर |सॉफ़्टवेयर]] इंजीनियरिंग में, शब्द | [[ सॉफ़्टवेयर |सॉफ़्टवेयर]] इंजीनियरिंग में, शब्द '''फ्रंटएंड''' और '''बैकएंड''' (कभी-कभी '''बैकएंड''' या '''बैक-एंड''' के रूप में लिखा जाता है) प्रस्तुति परत (फ्रंटएंड) और सॉफ्टवेयर के [[डेटा एक्सेस परत]] (बैकएंड) के मध्य चिंताओं को भिन्न करने का संदर्भ देता है। इस प्रकार सॉफ्टवेयर का टुकड़ा या भौतिक अवसंरचना या [[हार्डवेयर (कंप्यूटर)]] क्लाइंट-सर्वर मॉडल में, [[क्लाइंट (कंप्यूटिंग)]] को सामान्यतः फ्रंटएंड माना जाता है और [[सर्वर (कंप्यूटिंग)]] को सामान्यतः बैकएंड माना जाता है, तब भी जब कुछ [[प्रेजेंटेशन लेयर|प्रस्तुति परत]] कार्य वास्तव में सर्वर पर ही किया जाता है। | ||
== परिचय == | == परिचय == | ||
[[ सॉफ़्टवेयर वास्तुशिल्प | सॉफ़्टवेयर वास्तुशिल्प]] में, हार्डवेयर और | [[ सॉफ़्टवेयर वास्तुशिल्प |सॉफ़्टवेयर वास्तुशिल्प]] में, हार्डवेयर और अंतिम उपयोगकर्ता (कंप्यूटर साइंस) के मध्य अनेक [[अमूर्त परत]] हो सकती हैं। चूँकि सामने वाला भाग अमूर्त होता है, जो उपयोगकर्ता के अनुकूल अंतराफलक प्रदान करके अंतर्निहित घटक को सरल करता है, जबकि पीछे वाला भाग सामान्यतः डेटा भंडारण और व्यावसायिक तर्क को संभालता है। | ||
[[दूरसंचार]] में, सामने को उपकरण या सेवा माना जा सकता है, जबकि पीछे | [[दूरसंचार]] में, सामने वाले भाग को उपकरण या सेवा माना जा सकता है, जबकि पीछे वाला भाग अवसंरचना होता है जो सेवा के प्रावधान का समर्थन करता है। | ||
सामान्य नियम यह है कि क्लाइंट-साइड (या "फ्रंटएंड") उपयोगकर्ता द्वारा हेरफेर किया गया कोई भी घटक होता है। इस प्रकार सर्वर-साइड (या "बैकएंड") कोड सामान्यतः सर्वर (कंप्यूटिंग) पर रहता है, जो अधिकांशतः उपयोगकर्ता से भौतिक रूप से दूर होता है। | |||
== सॉफ्टवेयर परिभाषाएँ == | == सॉफ्टवेयर परिभाषाएँ == | ||
सामग्री प्रबंधन प्रणालियों में, फ्रंटएंड और बैकएंड शब्द क्रमशः | सामग्री प्रबंधन प्रणालियों में, फ्रंटएंड और बैकएंड शब्द क्रमशः सीएमएस के अंतिम उपयोगकर्ता के सामने आने वाले विचारों और प्रशासनिक विचारों को संदर्भित कर सकते हैं।<ref>{{Cite web|url=https://letsgodojo.com/front-end-vs-back-end/|title=Front End vs Back End of Your Website: Everything You Need to Know|website=DOJO Creative|date=7 February 2020|access-date=31 August 2022}}</ref><ref>{{Cite web|url=http://joomlatuts.net/joomla-2-5/87-how-backend-model-view-controller-mvc-works-in-joomla/98-difference-between-frontend-and-backend-mvc|title=Difference Between Frontend and Backend MVC – Joomlatuts|last=Thapliyal|first=Vimal|website=joomlatuts.net|access-date=30 December 2016|archive-url=https://web.archive.org/web/20161230230237/http://joomlatuts.net/joomla-2-5/87-how-backend-model-view-controller-mvc-works-in-joomla/98-difference-between-frontend-and-backend-mvc|archive-date=30 December 2016|url-status=dead}}</ref> | ||
[[ भाषा संकलन |भाषा संकलन]] में, फ्रंटएंड | [[ भाषा संकलन |भाषा संकलन]] में, फ्रंटएंड संश्लेषण प्रणाली के उस भाग को संदर्भित करता है जो इनपुट टेक्स्ट को [[प्रतीक|प्रतीकात्मक]] ध्वन्यात्मक प्रतिनिधित्व में परिवर्तित करता है और बैकएंड प्रतीकात्मक ध्वन्यात्मक प्रतिनिधित्व को वास्तविक ध्वनियों में परिवर्तित करता है।<ref>{{Cite web|url=http://research.cs.tamu.edu/prism/lectures/sp/l18.pdf|title=L18: Speech synthesis (backend)|last=Gutierrez--Osuna|first=Ricardo|website=tamu.edu|publisher=Texas A&M University|access-date=29 December 2016}}</ref> | ||
[[ संकलनकर्ता |संकलनकर्ता]] में, फ्रंटएंड [[ अनुवादक (कम्प्यूटिंग) |अनुवादक (कम्प्यूटिंग)]] कंप्यूटर प्रोग्रामिंग स्रोत कोड को [[मध्यवर्ती प्रतिनिधित्व]] में | [[ संकलनकर्ता |संकलनकर्ता]] में, फ्रंटएंड [[ अनुवादक (कम्प्यूटिंग) |अनुवादक (कम्प्यूटिंग)]] कंप्यूटर प्रोग्रामिंग स्रोत कोड को [[मध्यवर्ती प्रतिनिधित्व]] में अनुवादित करता है और बैकएंड कंप्यूटर आउटपुट भाषा में कोड का उत्पादन करने के लिए मध्यवर्ती प्रतिनिधित्व के साथ कार्य करता है। इस प्रकार बैकएंड सामान्यतः तेजी से चलने वाले कोड का उत्पादन करने के लिए [[कार्यक्रम अनुकूलन]] फ्रंटएंड / बैकएंड भेद [[ पदच्छेद |पदच्छेद]] अनुभाग को भिन्न कर सकता है जो [[सोर्स कोड]] और बैकएंड [[कोड जनरेशन (संकलक)]] से संबंधित होता है। अतः कुछ डिज़ाइन, जैसे जीएनयू कंपाइलर संग्रह, अनेक फ्रंटएंड (विभिन्न स्रोत [[प्रोग्रामिंग भाषा]] पार्सिंग) या बैकएंड (विभिन्न लक्ष्य [[सेंट्रल प्रोसेसिंग यूनिट]] के लिए कोड उत्पन्न करना) के मध्य विकल्प प्रदान करते हैं।<ref>{{Cite web|url=http://www.personal.kent.edu/~rmuhamma/Compilers/MyCompiler/phase.htm|title=ऑपरेटिंग सिस्टम नोट्स|last=Bin Muhammad|first=Rashid|website=www.personal.kent.edu|publisher=Kent State University|access-date=30 December 2016}}</ref> | ||
[[डेस्कटॉप वातावरण]] में चलने वाले कुछ [[ग्राफिकल यूज़र इंटरफ़ेस]] (जीयूआई) एप्लिकेशन को अंतर्निहित [[कमांड लाइन इंटरफेस]] (सीएलआई) प्रोग्राम के लिए पतले फ्रंटएंड के रूप में | [[डेस्कटॉप वातावरण]] में चलने वाले कुछ [[ग्राफिकल यूज़र इंटरफ़ेस|ग्राफिकल यूज़र अंतराफलक]] (जीयूआई) एप्लिकेशन को उपयोगकर्ता को विशेष शब्दावली सीखने और [[कमांड (कंप्यूटिंग)]] को स्मरण रखने से बचाने के लिए अंतर्निहित [[कमांड लाइन इंटरफेस|कमांड लाइन अंतराफलक]] (सीएलआई) प्रोग्राम के लिए पतले फ्रंटएंड के रूप में कार्यान्वित किया जाता है। | ||
=== उदाहरण के रूप में [[वेब विकास]] === | === उदाहरण के रूप में [[वेब विकास]] === | ||
दोनों के मध्य के अंतर को समझने | सामान्यतः दोनों के मध्य के अंतर को समझने की दूसरी विधि फ्रंटएंड बनाम बैकएंड [[सॉफ्टवेयर डेवलपर]] के लिए आवश्यक ज्ञान को समझना होता है। ओस प्रकार नीचे दी गई सूची उदाहरण के रूप में वेब विकास पर केंद्रित होती है। | ||
==== दोनों ==== | ==== दोनों ==== | ||
* [[संस्करण नियंत्रण]] उपकरण जैसे [[Git]], [[Mercurial]], या [[Apache Subversion]] | * [[संस्करण नियंत्रण]] उपकरण जैसे [[Git|गिट]], [[Mercurial|मर्क्यूरियल]], या [[Apache Subversion|अपाचे सबवर्जन]] | ||
* फ़ाइल स्थानांतरण उपकरण और प्रोटोकॉल जैसे [[FTP]] या [[rsync]] | * फ़ाइल स्थानांतरण उपकरण और प्रोटोकॉल जैसे [[FTP|एफटीपी]] या [[rsync|आरएसवाईएनसी]] | ||
==== | ==== फ्रंटएंड केंद्रित ==== | ||
* मार्कअप और वेब भाषाएँ जैसे कि [[HTML]], [[CSS]], [[जावास्क्रिप्ट]] | * मार्कअप और वेब भाषाएँ जैसे कि [[HTML|एचटीएमएल]], [[CSS|सीएसएस]], [[जावास्क्रिप्ट]] और सहायक पुस्तकालय जो सामान्यतः उन भाषाओं जैसे सस्स (स्टाइलशीट भाषा) या [[jQuery|जेक्वेरी]] में उपयोग की जाती हैं। | ||
* अतुल्यकालिक I/O अनुरोध हैंडलिंग और [[अजाक्स (प्रोग्रामिंग)]] | * अतुल्यकालिक I/O '''अनुरोध हैंडलिंग''' और [[अजाक्स (प्रोग्रामिंग)]] | ||
* [[एक पेज का आवेदन|पेज का आवेदन]] ([[ प्रतिक्रिया (जावास्क्रिप्ट पुस्तकालय) ]], एंगुलर (वेब फ्रेमवर्क) या Vue.js जैसे फ्रेमवर्क के साथ) | * [[एक पेज का आवेदन|पेज का आवेदन]] ([[ प्रतिक्रिया (जावास्क्रिप्ट पुस्तकालय) ]], एंगुलर (वेब फ्रेमवर्क) या Vue.js जैसे फ्रेमवर्क के साथ) | ||
* [[वेब प्रदर्शन]] (सबसे बड़ा कंटेंटफुल पेंट, इंटरेक्टिव के लिए समय, 60 [[फ्रेम रेट]] एनिमेशन और इंटरैक्शन, मेमोरी उपयोग, आदि) | * [[वेब प्रदर्शन]] (सबसे बड़ा कंटेंटफुल पेंट, इंटरेक्टिव के लिए समय, 60 [[फ्रेम रेट]] एनिमेशन और इंटरैक्शन, मेमोरी उपयोग, आदि) | ||
Line 37: | Line 37: | ||
* [[वेब पहुंच]] संबंधी चिंताएं | * [[वेब पहुंच]] संबंधी चिंताएं | ||
* [[GIMP]] या [[Adobe Photoshop]] जैसे छवि संपादन टूल का मूल उपयोग | * [[GIMP]] या [[Adobe Photoshop]] जैसे छवि संपादन टूल का मूल उपयोग | ||
* [[प्रयोक्ता इंटरफ़ेस]] | * [[प्रयोक्ता इंटरफ़ेस|प्रयोक्ता अंतराफलक]] | ||
==== बैकएंड केंद्रित ==== | ==== बैकएंड केंद्रित ==== |
Revision as of 20:27, 26 June 2023
सॉफ़्टवेयर इंजीनियरिंग में, शब्द फ्रंटएंड और बैकएंड (कभी-कभी बैकएंड या बैक-एंड के रूप में लिखा जाता है) प्रस्तुति परत (फ्रंटएंड) और सॉफ्टवेयर के डेटा एक्सेस परत (बैकएंड) के मध्य चिंताओं को भिन्न करने का संदर्भ देता है। इस प्रकार सॉफ्टवेयर का टुकड़ा या भौतिक अवसंरचना या हार्डवेयर (कंप्यूटर) क्लाइंट-सर्वर मॉडल में, क्लाइंट (कंप्यूटिंग) को सामान्यतः फ्रंटएंड माना जाता है और सर्वर (कंप्यूटिंग) को सामान्यतः बैकएंड माना जाता है, तब भी जब कुछ प्रस्तुति परत कार्य वास्तव में सर्वर पर ही किया जाता है।
परिचय
सॉफ़्टवेयर वास्तुशिल्प में, हार्डवेयर और अंतिम उपयोगकर्ता (कंप्यूटर साइंस) के मध्य अनेक अमूर्त परत हो सकती हैं। चूँकि सामने वाला भाग अमूर्त होता है, जो उपयोगकर्ता के अनुकूल अंतराफलक प्रदान करके अंतर्निहित घटक को सरल करता है, जबकि पीछे वाला भाग सामान्यतः डेटा भंडारण और व्यावसायिक तर्क को संभालता है।
दूरसंचार में, सामने वाले भाग को उपकरण या सेवा माना जा सकता है, जबकि पीछे वाला भाग अवसंरचना होता है जो सेवा के प्रावधान का समर्थन करता है।
सामान्य नियम यह है कि क्लाइंट-साइड (या "फ्रंटएंड") उपयोगकर्ता द्वारा हेरफेर किया गया कोई भी घटक होता है। इस प्रकार सर्वर-साइड (या "बैकएंड") कोड सामान्यतः सर्वर (कंप्यूटिंग) पर रहता है, जो अधिकांशतः उपयोगकर्ता से भौतिक रूप से दूर होता है।
सॉफ्टवेयर परिभाषाएँ
सामग्री प्रबंधन प्रणालियों में, फ्रंटएंड और बैकएंड शब्द क्रमशः सीएमएस के अंतिम उपयोगकर्ता के सामने आने वाले विचारों और प्रशासनिक विचारों को संदर्भित कर सकते हैं।[1][2]
भाषा संकलन में, फ्रंटएंड संश्लेषण प्रणाली के उस भाग को संदर्भित करता है जो इनपुट टेक्स्ट को प्रतीकात्मक ध्वन्यात्मक प्रतिनिधित्व में परिवर्तित करता है और बैकएंड प्रतीकात्मक ध्वन्यात्मक प्रतिनिधित्व को वास्तविक ध्वनियों में परिवर्तित करता है।[3]
संकलनकर्ता में, फ्रंटएंड अनुवादक (कम्प्यूटिंग) कंप्यूटर प्रोग्रामिंग स्रोत कोड को मध्यवर्ती प्रतिनिधित्व में अनुवादित करता है और बैकएंड कंप्यूटर आउटपुट भाषा में कोड का उत्पादन करने के लिए मध्यवर्ती प्रतिनिधित्व के साथ कार्य करता है। इस प्रकार बैकएंड सामान्यतः तेजी से चलने वाले कोड का उत्पादन करने के लिए कार्यक्रम अनुकूलन फ्रंटएंड / बैकएंड भेद पदच्छेद अनुभाग को भिन्न कर सकता है जो सोर्स कोड और बैकएंड कोड जनरेशन (संकलक) से संबंधित होता है। अतः कुछ डिज़ाइन, जैसे जीएनयू कंपाइलर संग्रह, अनेक फ्रंटएंड (विभिन्न स्रोत प्रोग्रामिंग भाषा पार्सिंग) या बैकएंड (विभिन्न लक्ष्य सेंट्रल प्रोसेसिंग यूनिट के लिए कोड उत्पन्न करना) के मध्य विकल्प प्रदान करते हैं।[4]
डेस्कटॉप वातावरण में चलने वाले कुछ ग्राफिकल यूज़र अंतराफलक (जीयूआई) एप्लिकेशन को उपयोगकर्ता को विशेष शब्दावली सीखने और कमांड (कंप्यूटिंग) को स्मरण रखने से बचाने के लिए अंतर्निहित कमांड लाइन अंतराफलक (सीएलआई) प्रोग्राम के लिए पतले फ्रंटएंड के रूप में कार्यान्वित किया जाता है।
उदाहरण के रूप में वेब विकास
सामान्यतः दोनों के मध्य के अंतर को समझने की दूसरी विधि फ्रंटएंड बनाम बैकएंड सॉफ्टवेयर डेवलपर के लिए आवश्यक ज्ञान को समझना होता है। ओस प्रकार नीचे दी गई सूची उदाहरण के रूप में वेब विकास पर केंद्रित होती है।
दोनों
- संस्करण नियंत्रण उपकरण जैसे गिट, मर्क्यूरियल, या अपाचे सबवर्जन
- फ़ाइल स्थानांतरण उपकरण और प्रोटोकॉल जैसे एफटीपी या आरएसवाईएनसी
फ्रंटएंड केंद्रित
- मार्कअप और वेब भाषाएँ जैसे कि एचटीएमएल, सीएसएस, जावास्क्रिप्ट और सहायक पुस्तकालय जो सामान्यतः उन भाषाओं जैसे सस्स (स्टाइलशीट भाषा) या जेक्वेरी में उपयोग की जाती हैं।
- अतुल्यकालिक I/O अनुरोध हैंडलिंग और अजाक्स (प्रोग्रामिंग)
- पेज का आवेदन (प्रतिक्रिया (जावास्क्रिप्ट पुस्तकालय) , एंगुलर (वेब फ्रेमवर्क) या Vue.js जैसे फ्रेमवर्क के साथ)
- वेब प्रदर्शन (सबसे बड़ा कंटेंटफुल पेंट, इंटरेक्टिव के लिए समय, 60 फ्रेम रेट एनिमेशन और इंटरैक्शन, मेमोरी उपयोग, आदि)
- प्रतिक्रियात्मक वेब डिज़ाइन
- क्रॉस ब्राउज़र संगतता समस्याएँ और समाधान
- सॉफ़्टवेयर परीक्षण | नेतृत्वहीन ब्राउज़र के साथ एंड-टू-एंड टेस्टिंग
- वेबपैक और गुल.जेएस जैसे टूल का उपयोग करके जावास्क्रिप्ट फ़ाइलों को बदलने और बंडल करने के लिए स्वचालन बनाएं, छवि आकार और अन्य प्रक्रियाओं को कम करें
- सर्च इंजन अनुकूलन
- वेब पहुंच संबंधी चिंताएं
- GIMP या Adobe Photoshop जैसे छवि संपादन टूल का मूल उपयोग
- प्रयोक्ता अंतराफलक
बैकएंड केंद्रित
- PHP, Python (प्रोग्रामिंग भाषा), रूबी (प्रोग्रामिंग भाषा), Perl, Node.js जैसी स्क्रिप्टिंग भाषाएँ, या C Sharp (प्रोग्रामिंग भाषा)|C#, Java (प्रोग्रामिंग भाषा) या Go (प्रोग्रामिंग भाषा) जैसी संकलित भाषाएँ।
- उपयोग की जा रही भाषा के लिए स्वचालित परीक्षण ढांचा
- एप्लिकेशन डेटा एक्सेस
- आवेदन व्यापार तर्क
- डेटाबेस प्रशासक
- मापनीयता
- उच्च उपलब्धता
- सुरक्षा चिंताओं, प्रमाणीकरण और प्राधिकरण
- सॉफ़्टवेयर वास्तुशिल्प
- डेटा परिवर्तन
- बैकअप विधि और सॉफ्टवेयर
ध्यान दें कि संभवतः उत्पाद पर कार्य करने के बावजूद दोनों स्थितियों में कौशल का बहुत भिन्न समूह है।
एपीआई
दृश्यपटल एपीआई के माध्यम से बैकएंड के साथ संचार करता है। वेब एपीआई और मोबाइल फ्रंटएंड के स्थितियोंमें, एपीआई अधिकांशतः एचटीटीपी अनुरोध/प्रतिक्रिया पर आधारित होता है। एपीआई को कभी-कभी बैकएंड फॉर फ्रंटएंड (बीएफएफ) पैटर्न का उपयोग करके डिज़ाइन किया जाता है, जो फ्रंटएंड साइड पर प्रसंस्करण को सरल बनाने के लिए प्रतिक्रियाएं प्रदान करता है।[5]
हार्डवेयर परिभाषाएँ
संगणक संजाल में, फ्रंटएंड किसी भी नेटवर्किंग हार्डवेयर को संदर्भित कर सकता है जो प्रसार यातायात का अनुकूलन या सुरक्षा करता है।[6] इसे एप्लिकेशन फ्रंट-एंड हार्डवेयर कहा जाता है जिससे कि इसे नेटवर्क के डीएमजेड (कंप्यूटिंग) | आउटवर्ड-फेसिंग फ्रंटएंड या सीमा पर रखा जाता है। नेटवर्क ट्रैफ़िक नेटवर्क में प्रवेश करने से पहले फ्रंट-एंड हार्डवेयर से होकर गुजरता है।
प्रोसेसर डिजाइन में, फ़्रंटएंड डिज़ाइन Verilog जैसी हार्डवेयर विवरण भाषा में परिपथ के व्यवहार का प्रारंभिक विवरण होगा, जबकि बैकएंड डिज़ाइन पर भौतिक ट्रांजिस्टर के व्यवहार को मानचित्र करने की प्रक्रिया होगी। डाई (इंटीग्रेटेड परिपथ)|डाई।[7]
यह भी देखें
संदर्भ
- ↑ "Front End vs Back End of Your Website: Everything You Need to Know". DOJO Creative. 7 February 2020. Retrieved 31 August 2022.
- ↑ Thapliyal, Vimal. "Difference Between Frontend and Backend MVC – Joomlatuts". joomlatuts.net. Archived from the original on 30 December 2016. Retrieved 30 December 2016.
- ↑ Gutierrez--Osuna, Ricardo. "L18: Speech synthesis (backend)" (PDF). tamu.edu. Texas A&M University. Retrieved 29 December 2016.
- ↑ Bin Muhammad, Rashid. "ऑपरेटिंग सिस्टम नोट्स". www.personal.kent.edu. Kent State University. Retrieved 30 December 2016.
- ↑ Wickramarachchi, Viduni (24 February 2021). "The BFF Pattern (Backend for Frontend): An Introduction". Bits and pieces. Retrieved 13 November 2021.
- ↑ O'Dell, Mike. "Network Front-End Processors, Yet Again | June 2009 | Communications of the ACM". cacm.acm.org. Retrieved 2016-12-30.
- ↑ "Front-End Design | Online Documentation for Altium Products". techdocs.altium.com. Retrieved 2016-12-30.