बैकपोर्टिंग

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

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


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

सॉफ़्टवेयर v2.0 को ठीक करने वाले संशोधन को लेकर और इसे सॉफ़्टवेयर v1.0 पर प्रयुक्त करने के लिए इसे बदलकर, किसी ने प्रभावी रूप से फिक्स को बैकपोर्ट किया है।

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

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

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

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

उदाहरण
विन्डोज़ एक्सपी के लिए सर्विस पैक 3 जारी किए जाने पर विंडोज विस्टा की कई विशेषताओं को विन्डोज़ एक्सपी में वापस भेज दिया गया था, जिससे मूल रूप से विस्टा के साथ एक्सपी एसपी3 पर चलने के लिए न्यूनतम आवश्यकता के रूप में अनुप्रयोगों (अधिकतर गेम) की अनुकूलता की सुविधा मिलती है।

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

यह भी देखें

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