बैकपोर्टिंग

बैक में porting एक सॉफ्टवेयर सिस्टम या सॉफ़्टवेयर घटक के नए सॉफ़्टवेयर संस्करण से भाग लेने और उन्हें उसी सॉफ्टवेयर घटक पुराने संस्करण में पोर्ट करने की क्रिया है। यह सॉफ़्टवेयर विकास प्रक्रिया में सॉफ़्टवेयर रखरखाव चरण का हिस्सा बनता है, और इसका उपयोग आमतौर पर सॉफ़्टवेयर के पुराने संस्करणों में सुरक्षा बग को ठीक करने और पुराने संस्करणों को नई सुविधाएँ प्रदान करने के लिए भी किया जाता है।

सिंहावलोकन
बैकपोर्टिंग की सबसे सरल और शायद सबसे आम स्थिति सॉफ्टवेयर के एक नए संस्करण में एक निश्चित सुरक्षा छेद है। इस सरलीकृत उदाहरण पर विचार करें:


 * सॉफ़्टवेयर v2.0 में एक सुरक्षा भेद्यता थी जिसे 'is_unsecured' टेक्स्ट को 'is_secured' में बदलकर ठीक किया गया है।
 * सॉफ़्टवेयर v1.0 में वही सुरक्षा छेद मौजूद है, जिससे नए संस्करण के लिए codebase  प्राप्त किया गया है, लेकिन वहाँ पाठ 'is_notsecure' पढ़ सकता है।

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

प्रक्रियाएं
बैकपोर्टिंग की प्रक्रिया को मोटे तौर पर इन चरणों में विभाजित किया जा सकता है: # सॉफ़्टवेयर के पुराने संस्करण में समस्या की पहचान जिसे बैकपोर्ट द्वारा ठीक करने की आवश्यकता है
 * 1) यह पता लगाना कि कोड के किस (आमतौर पर हाल ही में) संशोधन ने समस्या को ठीक किया
 * 2) पुराने कोड की स्थिति में संशोधन को अपनाना (उचित बैकपोर्टिंग)
 * 3) गुणवत्ता नियंत्रण के एक या कई स्तर –  परीक्षण करता है कि क्या बैकपोर्टेड संस्करण पिछली कार्यक्षमता को बनाए रखता है और साथ ही यह नई कार्यक्षमता को ठीक से लागू करता है या नहीं।

आमतौर पर, ऐसे कई संशोधन पैच (कंप्यूटिंग) सेट में बंडल किए जाते हैं।

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

उदाहरण
Windows XP के लिए सर्विस पैक 3 जारी किए जाने पर Windows Vista की कई विशेषताओं को Windows XP में वापस भेज दिया गया था, जिससे मूल रूप से Vista के साथ XP SP3 पर चलने के लिए न्यूनतम आवश्यकता के रूप में अनुप्रयोगों (ज्यादातर गेम) की अनुकूलता की सुविधा मिलती है। सितंबर 2010 से डेबियन परियोजना  कुछ डेबियन लिनक्स सॉफ्टवेयर पैकेजों के लिए एक आधिकारिक बैकपोर्टिंग सेवा प्रदान करता है, और उबंटू लिनक्स भी बैकपोर्ट का समर्थन करता है, हालांकि उबंटू बैकपोर्ट्स को कैननिकल से बिल्कुल भी समर्थन नहीं मिलता है, और यह पूरी तरह से समुदाय-अनुरक्षित है।

यह भी देखें

 * पश्च संगतता
 * रेट्रोफिटिंग
 * जावा बैकपोर्टिंग टूल