फ्रंटएंड और बैकएंड

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

परिचय
सॉफ़्टवेयर वास्तुशिल्प में, हार्डवेयर और अंतिम उपयोगकर्ता (कंप्यूटर साइंस) के मध्य अनेक अमूर्त परत हो सकती हैं। चूँकि सामने वाला भाग अमूर्त होता है, जो उपयोगकर्ता के अनुकूल अंतराफलक प्रदान करके अंतर्निहित घटक को सरल करता है, जबकि पीछे वाला भाग सामान्यतः डेटा भंडारण और व्यावसायिक तर्क को संभालता है।

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

सामान्य नियम यह है कि क्लाइंट-साइड (या "फ्रंटएंड") उपयोगकर्ता द्वारा हेरफेर किया गया कोई भी घटक होता है। इस प्रकार सर्वर-साइड (या "बैकएंड") कोड सामान्यतः सर्वर (कंप्यूटिंग) पर रहता है, जो अधिकांशतः उपयोगकर्ता से भौतिक रूप से दूर होता है।

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

भाषा संकलन में, फ्रंटएंड संश्लेषण प्रणाली के उस भाग को संदर्भित करता है जो इनपुट टेक्स्ट को प्रतीकात्मक ध्वन्यात्मक प्रतिनिधित्व में परिवर्तित करता है और बैकएंड प्रतीकात्मक ध्वन्यात्मक प्रतिनिधित्व को वास्तविक ध्वनियों में परिवर्तित करता है।

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

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

उदाहरण के रूप में वेब विकास
सामान्यतः दोनों के मध्य के अंतर को समझने की दूसरी विधि फ्रंटएंड बनाम बैकएंड सॉफ्टवेयर डेवलपर के लिए आवश्यक ज्ञान को समझना होता है। ओस प्रकार नीचे दी गई सूची उदाहरण के रूप में वेब विकास पर केंद्रित होती है।

दोनों

 * संस्करण नियंत्रण उपकरण जैसे गिट, मर्क्यूरियल, या अपाचे सबवर्जन
 * फ़ाइल स्थानांतरण उपकरण और प्रोटोकॉल जैसे एफटीपी या आरएसवाईएनसी

फ्रंटएंड केंद्रित

 * मार्कअप और वेब भाषाएँ जैसे कि एचटीएमएल, सीएसएस, जावास्क्रिप्ट और सहायक पुस्तकालय जो सामान्यतः उन भाषाओं जैसे सस्स (स्टाइलशीट भाषा) या जेक्वेरी में उपयोग की जाती हैं।
 * अतुल्यकालिक आई/ओ अनुरोध हैंडलिंग और अजाक्स (प्रोग्रामिंग)
 * एकल-पृष्ठ का आवेदन ( प्रतिक्रिया (जावास्क्रिप्ट पुस्तकालय), एंगुलर (वेब ​​​​फ्रेमवर्क) या वुए.जेएस जैसे फ्रेमवर्क के साथ)
 * वेब प्रदर्शन (सबसे बड़ा कंटेंटफुल पेंट, इंटरेक्टिव के लिए समय, 60 एफपीएस एनिमेशन और इंटरैक्शन, मेमोरी उपयोग, आदि)
 * प्रतिक्रियात्मक वेब डिज़ाइन
 * क्रॉस ब्राउज़र संगतता समस्याएँ और समाधान
 * सॉफ़्टवेयर परीक्षण | नेतृत्वहीन ब्राउज़र के साथ एंड-टू-एंड टेस्टिंग
 * वेबपैक और गुल.जेएस जैसे टूल का उपयोग करके जावास्क्रिप्ट फ़ाइलों को बदलने और बंडल करने के लिए स्वचालन बनाएं, छवि आकार और अन्य प्रक्रियाओं को कम करें
 * सर्च इंजन अनुकूलन
 * वेब पहुंच संबंधी चिंताएं
 * GIMP या Adobe Photoshop जैसे छवि संपादन टूल का मूल उपयोग
 * प्रयोक्ता अंतराफलक

बैकएंड केंद्रित
ध्यान दें कि संभवतः उत्पाद पर कार्य करने के बावजूद दोनों स्थितियों में कौशल का बहुत भिन्न समूह है।
 * PHP, Python (प्रोग्रामिंग भाषा), रूबी (प्रोग्रामिंग भाषा), Perl, Node.js जैसी स्क्रिप्टिंग भाषाएँ, या C Sharp (प्रोग्रामिंग भाषा)|C#, Java (प्रोग्रामिंग भाषा) या Go (प्रोग्रामिंग भाषा) जैसी संकलित भाषाएँ।
 * उपयोग की जा रही भाषा के लिए स्वचालित परीक्षण ढांचा
 * एप्लिकेशन डेटा एक्सेस
 * आवेदन व्यापार तर्क
 * डेटाबेस प्रशासक
 * मापनीयता
 * उच्च उपलब्धता
 * सुरक्षा चिंताओं, प्रमाणीकरण और प्राधिकरण
 * सॉफ़्टवेयर वास्तुशिल्प
 * डेटा परिवर्तन
 * बैकअप विधि और सॉफ्टवेयर

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

हार्डवेयर परिभाषाएँ
संगणक संजाल में, फ्रंटएंड किसी भी नेटवर्किंग हार्डवेयर को संदर्भित कर सकता है जो प्रसार यातायात का अनुकूलन या सुरक्षा करता है। इसे एप्लिकेशन फ्रंट-एंड हार्डवेयर कहा जाता है जिससे कि इसे नेटवर्क के डीएमजेड (कंप्यूटिंग) | आउटवर्ड-फेसिंग फ्रंटएंड या सीमा पर रखा जाता है। नेटवर्क ट्रैफ़िक नेटवर्क में प्रवेश करने से पहले फ्रंट-एंड हार्डवेयर से होकर गुजरता है।

प्रोसेसर डिजाइन में, फ़्रंटएंड डिज़ाइन Verilog जैसी हार्डवेयर विवरण भाषा में परिपथ के व्यवहार का प्रारंभिक विवरण होगा, जबकि बैकएंड डिज़ाइन पर भौतिक ट्रांजिस्टर के व्यवहार को मानचित्र करने की प्रक्रिया होगी। डाई (इंटीग्रेटेड परिपथ)|डाई।

यह भी देखें
• Front-end web development

• Client–server model

• Out-of-box experience

• Modular programming

• Observer pattern

• Publish–subscribe pattern

• Pull technology

• Push technology

• Remote procedure call

• Application program interface (API)