Кіріспе

Ескі есептеу технологиясы немесе қолданыста қалған жүйе.

Есептеу саласында, мұралық жүйе – бұл ескі әдіс, технология, компьютерлік жүйе немесе қолданба бағдарламасы, «алдыңғы немесе ескірген компьютерлік жүйеге қатысты немесе осыған дейін қолданыста болған», бірақ әлі де қолданылып келеді. Көбінесе жүйеге «мұралық» деп сілтеме жасау, оның кейінгі стандарттарға жол ашқанын білдіреді. Бұл жүйенің қазіргі заманға сай емес немесе жаңарту қажет екенін де білдіруі мүмкін. Мұралық код – бұл стандартты аппараттық жабдықтар мен орталарда енді қолдау көрсетілмейтін ескі компьютерлік бастапқы код, және белгілі бір жағынан ескірген немесе ескірген нәрсені қолдайтын код базасы. Мұралық код бағдарламалау тілдерінде жазылуы, фреймворктер мен сыртқы кітапханаларды пайдалануы немесе қазіргі заманғы деп саналмайтын архитектура мен үлгілерді қолдануы мүмкін, бұл код базасында жұмыс істейтін бағдарламалық жасақтама инженерлерінің ақыл-ой жүктемесін арттырып, оны игеру үшін уақытты ұзартады. Мұралық кодта автоматтандырылған тесттердің болуы мүмкін немесе олар жеткіліксіз болуы мүмкін, бұл рефакторингті қауіпті етеді және қателерді тудыруы мүмкін. Ұзақ қызмет еткен код бағдарламалық жасақтаманың «тозуына» ұшырауы мүмкін, онда орындалу ортасының немесе айналасындағы бағдарламалық жасақтаманың немесе аппараттық жабдықтың өзгеруі жұмыс істеуі үшін қандай да бір күтіп-ұстауды немесе эмуляцияны қажет етуі мүмкін. Мұралық код ескі аппараттық жабдықты, жеке мұралық жүйені немесе ескі функцияларды немесе бағдарламалық жасақтаманы пайдаланатын ескі клиентті қолдау үшін қажет болуы мүмкін. Бұл термин әдетте бастапқы кодқа қатысты болғанымен, жүйенің кейінгі нұсқасында орындалмайтын немесе үйлесімділік қабатын қажет ететін орындалатын кодқа да қолданылуы мүмкін. Мысалы, классикалық Macintosh қолданбасы macOS-та тікелей орындалмайды, бірақ Classic ортасында, ал Windows XP-де Windows XP-дегі Windows мүмкіндігін пайдаланып Win16 қолданбасы жұмыс істейді. Мұралық аппараттық жабдықтың мысалы – PS/2 және VGA порттары сияқты ескі порттар және ескі, үйлесімсіз нұсқаулар жиынтығы бар процессорлар (мысалы, жаңа операциялық жүйелермен). Мұралық бағдарламалық жасақтамаларға Adobe Flash үшін swf немесе Lotus 1 2 3 үшін .123 сияқты ескі файл пішімдері және EBCDIC сияқты ескі таңба кодтамаларымен кодталған мәтіндік файлдар жатады.

Ескі есептеу техникасы келтірген мәселелер

Кейбір бағдарламалық жасақтама инженерлері бірнеше себептермен ескі жүйелерді әлеуеттік проблемалық деп санайды. Егер ескі бағдарламалық жасақтама тек қана ескірген аппараттық құралдарда жұмыс істесе, жүйені күтіп ұстау шығындары, егер эмуляцияның немесе кері үйлесімділіктің қандай да бір түрі бағдарламалық жасақтаманың жаңа аппараттық құралдарда жұмыс істеуіне мүмкіндік бермесе, бағдарламалық жасақтаманы және аппараттық құралды алмастыру шығындарынан асып түсуі мүмкін. Бұл жүйелерді күтіп ұстау, жақсарту және кеңейту қиын болуы мүмкін, себебі жүйе туралы толыққанды түсінік жоқ; оған халық болған мамандар зейнеткерлікке шығып, немесе білгендерін ұмытып қалған, ал ол "ескі" деп танылғаннан кейін салаға келген мамандар оны бастапқыда үйренбеген. Бұл мәселе құжаттаманың жетіспеуімен немесе жоғалуымен одан әрі ушығуы мүмкін. Comair әуе компаниясы 2004 жылы өзінің бас директорын компаниядағы ешкімге белгісіз болған шектеуге тап болған ескі ұшу экипажының кестесін құру жүйесінің сәтсіздігінен кейін қызметтен босатылған. Ескі жүйелерде ескі операциялық жүйелерде немесе қосымшаларда қауіпсіздік жаңартуларының болмауы немесе қолданылмауы салдарынан осалдықтар болуы мүмкін. Сондай-ақ, қауіпсіздік мәселелерін тудыратын өндірістік конфигурациялар да болуы мүмкін. Бұл мәселелер ескі жүйені шабуылдаушылардың немесе хабардар инсайдерлердің шабуылына ұшыратуы мүмкін. Жаңа жүйелермен интеграциялау да қиын болуы мүмкін, себебі жаңа бағдарламалық жасақтама мүлдем басқа технологияларды қолдануы мүмкін. Технологиялардың интеграциясы есептеуде жиі кездеседі, бірақ жаңа технологиялар мен едәуір ескілері арасындағы интеграция сирек кездеседі. Интеграциялық технологияны дамытуға жеткілікті сұраныс болмауы мүмкін. Мұндай "көпір" кодты кейде сатушылар мен ескі технологиялардың жанкүйерлері әзірлейді. Бюджеттік шектеулер жиі корпорацияларды ескі жүйені алмастыру немесе көшіру қажеттілігін қарастырмауға итермелейді. Алайда, компаниялар көбінесе қолдаудың артуына байланысты шығындарды (адамдар, бағдарламалық жасақтама және аппараттық құралдар, жоғарыда аталғандардың барлығы) ескермейді және ескі жүйе сәтсіздікке ұшыраса, мүмкіндіктердің немесе бизнестің үздіксіздігінің үлкен жоғалуын ескермейді. Осы мәселелерді жақсы түсінгеннен кейін, жаңа, қауіпсіз, жаңартылған технологиялық платформаның тиімділігін ескере отырып, альтернативті нұсқадан гөрі шығындар аз екені анықталады және бюджет табылады. Көптеген ескі бағдарламалаушылар зейнеткерлік жасына жетіп, оларды алмастыратын жас инженерлердің саны өте аз болғандықтан, жұмыс күшінің жетіспеушілігі алаңдатады. Бұл өз кезегінде ескі жүйелерді күтіп ұстау қиындықтарына және тәжірибелі бағдарламалаушыларды іздеу шығындарының өсуіне әкеледі. Кейбір ескі жүйелерде олардың жалпы сыйымдылығына қатаң шектеулер қойылған, бұл бүгінгі қажеттіліктер үшін жеткіліксіз болуы мүмкін, мысалы, көптеген ескі x86 процессорларындағы 4 ГБ жад шегі немесе IPv4-тегі 4 миллиард адрес шегі.

Ескі бағдарламалық қамтамасыз ету жүйелерін жетілдіру

Ескі жүйелерді қолданбаны тоқтату арқылы ауыстыру мүмкін болмаған жағдайда, оларды жақсарту (немесе "жаңару") әлі де мүмкін. Көптеген даму жұмыстары мұрагерлік жүйеге жаңа интерфейстер қосуға бағытталған. Ең көп таралған тәсіл – терминалды негізделген мейнфреймдік қолданбаға веб-интерфейс ұсыну. Бұл жауап беру уақытының және тышқанмен оператордың әрекеттерінің баяу болуына байланысты қызметкерлердің өнімділігін төмендетуі мүмкін, бірақ көбінесе "жаңарту" ретінде қарастырылады, себебі интерфейс стилі білімі аз пайдаланушыларға таныс және оларды пайдалану оңай. Джон МакКормик орталық бағдарламалық жасақтаманы қолданатын мұндай стратегиялар туралы талқылайды. Баспаны жақсарту қиын, өйткені ескі бағдарламалық жүйелер көбінесе пішімдеу нұсқауларын қоспайды немесе қазіргі заманғы PC/Windows принтерлерінде қолданылмайтын протоколдарды қолданады. Деректерді ұстап алып, оны заманауи кодқа аудару үшін басып шығару серверін пайдалануға болады. Rich Text Format (RTF) немесе PostScript құжаттары мұрагерлік қолданбада жасалып, басып шығарылғанға дейін компьютерде түсіндірілуі мүмкін. Ескі жүйелерде биометриялық қауіпсіздік шараларын енгізу қиын. Жұмыс істейтін шешім – пайдаланушылар мен мейнфрейм арасында орналасқан Telnet немесе HTTP прокси-серверін пайдалану, арқылы мұрагерлік қолданбаға қауіпсіз кіруді қамтамасыз ету. Кейбір ұйымдар толыққанды жүйелерді құрайтын автоматтандырылған бизнес-процестер (ABP) бағдарламалық жасақтамасына көшуде. Бұл жүйелер ұйымның ескі жүйелерімен байланысқа түсіп, оларды деректерді сақтау орындары ретінде пайдалана алады. Бұл тәсіл бірнеше маңызды артықшылықтар береді: пайдаланушылар ескі жүйелерінің тиімсіздігінен оқшауланады және өзгерістерді ABP бағдарламалық жасақтамасына жылдам және оңай енгізуге болады. Модельге негізделген кері және тікелей инженерия тәсілдері де мұрагерлік бағдарламалық жасақтаманы жақсарту үшін қолданылуы мүмкін.

НАСА мысалы

Андреас М. Хайн Мюнхен техникалық университетінде ғарыш зерттеулерінде ескірген жүйелерді пайдалануды зерттеді. Хайнның сөзіне сәйкес, егер ұйымда тексеру, растау, сынау және операциялық тарих мүмкіндіктері болса, ескірген жүйелерді қайта пайдалану тиімді. Бұл мүмкіндіктер бағдарламалық жасақтаманың өмірлік циклінің әртүрлі кезеңдеріне, мысалы, әзірлеу, енгізу, қолдану немесе техникалық қызмет көрсетуге интеграциялануы керек. Бағдарламалық жүйелер үшін жүйені пайдалану және оны қолдау қабілеті маңызды. Әйтпесе, жүйені түсіну және оны сақтау қиын болады. Хайнның пікірінше, тексеру, растау, сынау және операциялық тарих жүйенің сенімділігі мен сапасына сенімділікті арттырады. Дегенмен, мұндай тарихты жинақтау көбінесе қымбатқа түседі. NASA-ның қазіргі кезде тоқтатылған ғарыш шаттлы бағдарламасы 1970-ші жылдарға тән технологияны кеңінен қолданды. Ұшу сертификатының жоғары құнына байланысты жаңа жүйелерге көшу экономикалық тұрғыдан тиімсіз болды. Алғашқы аппараттық құралдар ұшу үшін қажетті қымбат интеграция мен сертификаттау талаптарын орындады, бірақ кез келген жаңа құралды қайтадан сол процестен өткізу қажет еді. Бұл ұзақ және егжей-тегжейлі процесс жаңа компоненттерді жаңа конфигурацияларында жан-жақты сынауды талап етті, содан кейін ғана бір құрылғыны ғарыш шаттлы бағдарламасында қолдануға болады. Осылайша, сертификаттау процесін бастаған кез келген жаңа жүйе, ұшуға рұқсат алған кезде де-факто ескірген жүйеге айналады. Сонымен қатар, ғарыш шаттлының барлық жүйесі, соның ішінде жердегі және ұшыру құралдары, жабық жүйе ретінде бірлесіп жұмыс істеу үшін жобаланған. Техникалық талаптар өзгермегендіктен, барлық сертификатталған жүйелер мен компоненттер өздеріне берілген рөлдерді орындауда жақсы нәтижелер көрсетті. Шаттлдың 2010 жылы қызметтен шығарылуы жоспарланғанға дейін, NASA 1970-ші жылдарға тән технологияның көптеген бөліктерін жаңарту және жаңа компоненттерді қайта сертификаттаудан гөрі пайдалануды тиімді деп тапты.

Көне кодтың перспективалары

Бағдарламалық инженерия саласындағы кейбір мамандар "мұралық кодты" ескірген деген мағынасыз сипаттаудан аулақ қалуды жөн көреді. Ең көп таралған бейтарап түсініктердің қатарында – басқа біреуден мұраға қалған бастапқы код және бағдарламалық жасақтаманың бұрынғы нұсқасынан мұраға қалған бастапқы код. Typemock компаниясының бас директоры Илай Лопиан оны "бағдарламашылар өзгертуден қорқатын код" деп анықтады. Майкл Фезерс мұралық кодты тесттерсіз код деп түсіндірді, бұл автоматты регрессиялық тесттердің болмауынан мұралық кодпен жұмыс істеудің қиындығын көрсетеді. Ол сондай-ақ мұралық кодты тестке алу үшін сипаттамалық тесттерді ұсынды. Джинни Хендри код жазуды қазіргі бағдарламашылар үшін "өміріміздегі басқа мұралар сияқты" – "антикварлық заттар, мұралар және бір ұрпақтан екіншісіне құрметпен беріліп жүзетін әңгімелер сияқты" код жасауға шақыру ретінде сипаттады. "Егер мұралық кодты мақтан тұтатын нәрсе ретінде қарастырсақ қалай болар еді?" – деді ол.

Legacy терминінің қосымша пайдалануы

Легациялық қолдау термині көбінесе мұралық жүйелермен бірге қолданылады. Бұл термин қазіргі заманғы бағдарламалық жасақтаманың бір мүмкіндігін білдіруі мүмкін. Мысалы, "легациялық қолдауға" ие операциялық жүйелер ескі аппаратты анықтап, пайдалана алады. Бұл термин бизнес-функцияға сілтеме жасау үшін де қолданылуы мүмкін; мысалы, бағдарламалық қамтамасыз ету немесе жабдық жеткізушісі, ескі өнімдерге қолдау көрсететін немесе бағдарламалық қамтамасыз етуді қамтамасыз ететін компания. "Мұралық" өнім – бұл енді сатылмаған, нарықтағы үлесін жоғалтқан немесе қазіргі нұсқасы жоқ өнім болуы мүмкін. Мұралық өнімнің заманауи өнімге қарағанда кейбір артықшылықтары болуы мүмкін, бұл тұтынушыларға оны пайдалануды ұсынуы мүмкін. Өнімнің "қолданыстан шыққандығы" оның ешкімге пайдалы еместігін, яғни рационалды шешім қабылдайтын ешкім оны жаңадан сатып алмайтынын білдіреді. "Мұралық режим" термині көбінесе кері үйлесімділікке қатысты қолданылады. Өзінің бұрынғы нұсқасы сияқты жұмыс істей алатын бағдарламалық өнім "мұралық режимде жұмыс істейді" деп айтылады. Мұндай мүмкіндік операциялық жүйелерде және интернет-браузерлерде жиі кездеседі, себебі көптеген қосымшалар осы негізгі компоненттерге тәуелді. Компьютерлік мейнфрейм дәуірінде көптеген қосымшалар мұралық режимде жұмыс істеді. Қазіргі заманғы бизнес-компьютерлік ортада n-деңгейлі немесе 3-деңгейлі архитектураларды мұралық режимге орналастыру қиынырақ, өйткені олар бір жүйені құрайтын көптеген компоненттерді қамтиды. Виртуализациялау технологиясы – бұл жаңа инновация, ол мұралық жүйелерді ескі аппаратты эмуляциялайтын бағдарламалық жүйеде ескі операциялық жүйелер мен браузерлерді іске қосу арқылы заманауи аппараттық жабдықта жұмыс істеуді жалғастыруға мүмкіндік береді.

Браунфилд сәулет өнері

Бағдарламашылар «қоңыр алап» терминін құрылыс саласынан қабылдады, онда бұрын пайдаланылған жерлер (көбінесе ластанған және тасталған) «қоңыр алап» деп аталады. Қоңыр алап архитектурасы – бұл ескі жүйелерді интеграциялайтын бағдарламалық қамтамасыз ету немесе желілік архитектура түрі. Қоңыр алапқа енгізу – бұл қолданыстағы бағдарламалық қамтамасыз ету немесе желілік архитектураны жаңарту немесе кеңейту, ол ескі компоненттерді сақтайды.