Кіріспе
Бағдарламалық жасақтаманы іске қосу әдісі. Компьютерлік топтық өңдеу – бағдарламалық жасақтаманы «тапсырмалар» деп аталатын бағдарламаларды автоматты түрде топтап іске қосу әдісі. Пайдаланушылар тапсырмаларды жіберуге міндетті болса да, топтық өңдеу үшін олардан қосымша әрекеттер қажет емес. Топтар автоматты түрде белгіленген уақытта, сондай-ақ компьютерлік ресурстардың болуына байланысты іске қосылуы мүмкін.
Computerized batch processing is a method of running software programs called jobs in batches automatically. While users are required to submit the jobs, no other interaction by the user is required to process the batch. Batches may automatically be run at scheduled times as well as being run contingent on the availability of computer resources.
Тарих
"Баршылы өңдеу" термині өндіріс әдістерін жекелеген тапсырыс бойынша өндіріс (бір реттік өндіріс), партиялық өндіріс (бір уақытта бірнеше заттың "партиясын" өндіру, бір кезеңнен кейін кезең) және үздіксіз өндіріс (массалық өндіріс, барлық кезеңдер бір уақытта жүзеге асырылады) деп дәстүрлі түрде жіктеуден туындайды.
Ерте тарих
Алғашқы компьютерлер бір уақытта тек бір бағдарламаны ғана іске асыра алатын. Әрбір пайдаланушы белгіленген уақыт ішінде машинаны толығымен өз бақылауында ұстайтын. Олар бағдарламасымен және деректерімен, көбінесе перфокарталар мен магниттік немесе қағаз ленталарда компьютерге келіп, бағдарламаны жүктейтін, іске қосып, қатесін жоғарлайтын, жұмысы біткен соң нәтижесін алып кететін. Компьютерлердің жылдамдығы артқан сайын, дайындық және ажырату уақыты қолданыстағы компьютер уақытының үлкен бөлігін құрады. Операциялық жүйелерге дейінгі кезеңде мониторлар деп аталатын бағдарламалар жасалды, олар бағдарламалардың сериясын немесе "топтамасын" өңдей алатын, көбінесе желіден тыс дайындалған магниттік лентадан. Монитор компьютерге жүктеліп, топтамадағы алғашқы тапсырманы орындайтын. Тапсырма аяқталғаннан кейін, ол бақылауды қайта алып, келесі тапсырманы жүктеп, оны аяқтағанша іске қосатын. Көбінесе топтаманың нәтижесі магниттік лентаға жазылып, офлайн режимде басылып немесе перфорацияланатын. Мониторлардың мысалдары: IBM-нің Fortran Monitor System, SOS (Share Operating System) және 1960 жылы IBM-нің 709x жүйелері үшін IBSYS.
Үшінші буын жүйелері
1960 жылдары көп бағдарламалау мүмкіндігіне ие жүйелер пайда бола бастады. Бір уақытта бір топтық тапсырманы орындаудың орнына, мұндай жүйелер жүйенің мүмкіндігінше бос тұрмауы үшін бірнеше топтық бағдарламаны бір уақытта іске асыра алады. Бір немесе бірнеше бағдарлама кіріс күтіп, бірі CPU-да белсенді түрде орындалып, ал басқалары нәтиже шығарып жатады. Офлайн кіріс-шығыстан гөрі, "шпулер" деп аталатын бағдарламалар тапсырмаларды карталардан, дискілерден немесе қашық терминалдардан оқып, оларды орындауға қойылатын тапсырмалар тізіміне (кезегіне) орналастырады. Тұйықталудың алдын алу үшін жұмыс жоспарлаушы әр тапсырманың ресурстық талаптарын – жад, магниттік ленталар, қосылатын дискілер және т.б. білуі керек, сондықтан осы ақпаратты құрылымдалған түрде беру үшін әртүрлі сценарий тілдері жасалды. Ең танымалдарының бірі – IBM-нің Жұмыс Бақылау Тілі (Job Control Language, JCL). Жұмыс жоспарлаушылар әртүрлі критерийлерге сәйкес, оның ішінде басымдық, жад көлемі және т.б. бойынша тапсырмаларды іске қосуға таңдайды. Қашықтан топтық тапсырыс беру – бұл қашық терминалдардан топтық тапсырмаларды жіберу процедурасы, көбінесе перфокарта оқығышы және жолдық принтермен жабдықталған. Кейде асимметриялық көппроцессорлық өңдеу бір немесе бірнеше үлкен компьютерлер үшін топтық кіріс-шығысты "шпулдау" үшін қолданылады, бұл үшін IBM System/360 Attached Support Processor сияқты кішірек және арзан жүйе пайдаланылады.
Кейінгі тарих
Бірінші жалпы мақсаттағы уақыт бөлісу жүйесі, Үйлесімді уақыт бөлісу жүйесі (CTSS), пакеттік өңдеумен үйлесімді болды. Бұл пакеттік өңдеуден интерактивті есептеуге өтуді жеңілдетті. 1960 жылдардың соңынан бастап, мәтіндік компьютерлік терминал интерфейстері (Unix қабықшаларындағы немесе «оқу-бағалау-басып шығару» циклдарындағыдай) және кейіннен графикалық пайдаланушы интерфейстері сияқты интерактивті есептеулер кеңінен таралды. Бір реттік тапсырмалар, мысалы, компиляциялау, және бірнеше элементтерді пакеттермен өңдеу сияқты интерактивті емес есептеулер кейіннен пакеттік өңдеу деп аталды, ал «пакеттік жұмыс» (алғашқы қолданыста көбінесе «жұмыстар жиынтығы») термині қолданысқа енді. Алғашқы қолданылу Мичиган университетінде, Мичиган терминалдық жүйесінің (MTS) айналасында кездеседі. Уақыт бөлісу болғанымен, оның қолданылуы корпоративтік деректерді өңдеу үшін жеткілікті сенімді болған жоқ; мұның ешқайсысы адаммен басқарылатын бұрынғы бірлік тіркеу құралдарымен байланысты емес еді.
Ағымдағы
Интерактивті емес есептеулер жалпы деректерді өңдеуде де, жүйелік "қызметтік" тапсырмаларда да (жүйелік бағдарламалық қамтамасыз етуді пайдалану) компьютерлік техникада кеңінен таралған. Жоғары деңгейдегі бағдарлама (бірнеше бағдарламаны іске қосу, қосымша "қосымша" логикасымен) қазіргі кезде көбінесе скрипт деп аталады және скрипт тілдерінде, әсіресе жүйелік тапсырмалар үшін қабықша скрипттерінде жазылады; IBM PC DOS және MS DOS-та бұл топтық файл деп белгіленеді. Бұл UNIX-ке негізделген компьютерлерге, Microsoft Windows, macOS (оның негізі BSD Unix ядросы) және тіпті смартфондарға қатысты. Іске қосылып жатқан скрипт, әсіресе интерактивті кіріс сессиясынан іске қосылған скрипт, көбінесе тапсырма деп аталады, бірақ бұл термин өте мағынасыз қолданылады. "PC немесе UNIX жүйелерінде z/OS-тың топтық өңдеуіне тікелей баламасы жоқ. Топтық тапсырмалар әдетте белгіленген уақытта немесе қажет болған жағдайда орындалады. Бәлкім, ең жақын нұсқау UNIX-тегі at немесе cron командасы арқылы іске қосылатын процестермен, бірақ арасындағы айырмашылықтар маңызды".
Қазіргі заманғы жүйелер
Баталық қолданбалар көптеген ұйымдарда әлі де маңызды, себебі көптеген кәдімгі бизнес-процестер баталық өңдеуге ыңғайлы. Онлайн жүйелер қолмен араласу қажет болмаған жағдайда да жұмыс істей алады, бірақ олар көбінесе үлкен көлемдегі, қайталама тапсырмаларды орындау үшін жабдықталмаған. Сондықтан, тіпті жаңа жүйелерде де күннің соңында ақпаратты жаңарту, есептер жасау, құжаттарды басып шығару және белгілі бір бизнес мерзімінде сенімді түрде аяқталуы тиіс басқа да интерактивті емес тапсырмалар үшін бір немесе бірнеше баталық қолданбалар болады. Кейбір қолданбалар ағынды өңдеуге ыңғайлы, атап айтқанда, бір уақытта тек бір кірістен (мысалы, жиынтық емес) деректерді қажет ететіндері: әр кіріс үшін алдыңғы қадам аяқталғанда келесі қадамды бастаңыз. Мұндай жағдайда ағынды өңдеу жеке кіріс үшін күту уақытын қысқартады, олардың барлық батаның аяқталуын күтпестен орындалуына мүмкіндік береді. Дегенмен, көптеген қолданбалар барлық жазбалардан деректерді қажет етеді, әсіресе жиынтықтар сияқты есептеулерде. Бұл жағдайда пайдалы нәтиже алу үшін бүкіл батаны аяқтау керек: жартылай нәтижелер пайдаланбайды. Қазіргі заманғы баталық қолданбалар Jem The Bee, Spring Batch немесе Java үшін жазылған JSR 352 іске асырулары сияқты заманауи баталық фреймворктерді және басқа бағдарламалау тілдері үшін басқа фреймворктерді қолданады, бұл үлкен көлемді өңдеу үшін қажетті қатеге төзімділік пен масштабталу мүмкіндігін қамтамасыз етеді. Жоғары жылдамдықты өңдеуді қамтамасыз ету үшін баталық қолданбалар көбінесе желілік есептеу шешімдерімен интеграцияланып, баталық жұмысты көптеген процессорларға бөледі, бірақ мұнда бағдарламалауда елеулі қиындықтар бар. Үлкен көлемді баталық өңдеу жүйелер мен қолданба архитектураларына да айқын талаптар қояды. Мықты кіріс/шығыс өнімділігі мен вертикальді масштабталу мүмкіндігі бар архитектуралар, соның ішінде заманауи мейнфрейм компьютерлері, баламаларға қарағанда жақсы баталық өнімділікті қамтамасыз етеді. Скрипт тілдері баталық өңдеумен бірге дамыған сайын танымал болды.
Партиялық терезесі
Баспа терезесі – бұл «интенсивті онлайн белсенділігі азайған кезең», онда компьютерлік жүйе интерактивті онлайн жүйелердің бұрқырауысыз немесе олармен араласа отырып, баспа тапсырмаларын орындай алады. Банктің күн аяғындағы (EOD) жұмыстарына транзакциялар мен деректерді белгілі бір күннің баспалық өңдеуі үшін тоқтату қажет («сағат 15:00-ден кейін түскен депозиттер келесі күні өңделеді»), бұл кесу принципін қажет етеді. Онлайн жүйелердің жұмыс істеу уақытына қойылатын талаптар жаһандануды, интернетті және басқа да бизнес қажеттіліктерін қолдау үшін кеңейген сайын, баспа терезесі қысқарып, онлайн деректердің мүмкіндігінше ұзақ уақыт бойы қолжетімді болуын қамтамасыз ететін әдістерге көбірек мән берілді.
Партияның көлемі
Партияның көлемі – бір партиялық операцияда өңделетін жұмыс бірліктерінің саны. Мысалы:
Транзакцияны бекіту алдында дерекқорына жүктелетін файлдағы жолдар саны. Кезектен алынатын хабарламалар саны. Бір жүктің ішінде жіберілетін сұраулар саны.
The number of lines from a file to load into a database before committing the transaction. The number of messages to dequeue from a queue. The number of requests to send within one payload.
Жалпы партиялық өңдеуді қолдану
Интернеттегі транзакцияларды өңдеудің интерактивті (OLTP) қолданбаларына қарағанда, деректер базасын тиімді жаппай жаңарту және транзакцияларды автоматтандырылған түрде өңдеу. Дерек қоймаларын толтыру кезіндегі деректерді алу, түрлендіру және жүктеу (ETL) процесі, көптеген жағдайларда, пакеттік өңдеу болып табылады. Сандық кескіндермен жаппай операцияларды орындау, мысалы, көлемін өзгерту, форматтау, су таңбасы қою немесе кескін файлдары тобын өңдеу. Компьютерлік файлдарды бір форматтан екінші форматқа түрлендіру. Мысалы, пакеттік тапсырма меншік және ескі форматтағы файлдарды соңғы пайдаланушылардың сұраныстары мен көруі үшін қолданылатын стандартты форматтарға түрлендіре алады. Машиналық оқыту модельдерін оқыту. Мысалы, электрондық коммерция сайты есептеу ресурстарын үнемдеу үшін ұқсас өнімдерді ұсынатын модельді жаңарту мақсатында клиенттердің транзакцияларын сағат сайын пакеттік өңдеуді қалайды.
Белгілі топтаманы жоспарлау және орындау орталары
IBM z/OS операциялық жүйесі немесе платформасы, бастауы, ұзақ тарихы және үздіксіз дамуының нәтижесінде, ең жетілдірілген және дамыған топтамалық өңдеу мүмкіндіктеріне ие. Бүгінде мұндай жүйелер бір операциялық жүйе бейнесінде жүздеген, тіпті мыңдаған параллель онлайн және топтамалық тапсырмаларды қолдайды. Параллель топтамалық және онлайн өңдеуге көмектесетін технологияларға Job Control Language (JCL), REXX сияқты сценарийлік тілдер, Job Entry Subsystem (JES2 және JES3), Workload Manager (WLM), Automatic Restart Manager (ARM), Resource Recovery Services (RRS), IBM Db2 деректерді ортақ пайдалану, Parallel Sysplex, HiperDispatch сияқты ерекше өнімділікті оңтайландырулар, I/O каналдарының архитектурасы және тағы да басқалары жатады. Unix бағдарламалары cron, at және batch (қазіргі batch – at-тың бір түрі) жұмыстарды күрделі жоспарлауға мүмкіндік береді. Windows жүйесінде жұмыс жоспарлаушы бар. Көптеген жоғары өнімділікті есептеу кластерлері кластерді тиімді пайдалану үшін топтамалық өңдеуді қолданады.