Кіріспе

IBM CICS (Customer Information Control System) – z/OS және z/VSE операциялық жүйелеріндегі IBM мейнфрейм жүйелерінде қолданбалар үшін онлайн транзакцияларды басқару және байланысты қамтамасыз ететін, әртүрлі бағдарламалау тілдерін қолдайтын қолданба серверлерінің отбасы. CICS отбасының өнімдері аралық бағдарламалық құрал ретінде жобаланған және жоғары жылдамдықпен, үлкен көлемде онлайн транзакцияларды өңдеуді қолдайды. CICS транзакциясы – бір немесе бірнеше объектілерге әсер етуі мүмкін, жалғыз сұрау арқылы басталатын өңдеу бірлігі. Бұл өңдеу көбінесе интерактивті (экранға бағытталған) болады, бірақ фоновые транзакциялар да мүмкін. CICS транзакциялық сервері (CICS TS) CICS отбасының алдында тұрады және операциялық жүйенің функцияларын кеңейтетін немесе ауыстыратын қызметтерді ұсынады. Бұл қызметтер жалпы операциялық жүйе қызметтерінен тиімдірек болуы мүмкін, сонымен қатар бағдарламашылар үшін, әсіресе әртүрлі терминал құрылғыларымен байланыс жасау кезінде пайдалануға ыңғайлырақ. CICS үшін жасалған қолданбалар әртүрлі бағдарламалау тілдерінде жазылуы мүмкін және файлдар, деректер қоры байланыстары, терминалдар сияқты ресурстармен өзара әрекеттесу үшін немесе веб-қызметтер сияқты функцияларды шақыру үшін CICS ұсынған тілдік кеңейтімдерді пайдалана алады. CICS транзакцияның барлық кезеңін басқарады, сондай-ақ транзакцияның кез келген бөлігі сәтсіз аяқталған жағдайда, барлық қайта қалпына келтірілетін өзгерістер кері қайтарылады. CICS TS ең көп танымаллығын ірі қаржы институттарында, мысалы, банктер мен сақтандыру компанияларында көрсетсе де, Fortune 500 компанияларының және мемлекеттік мекемелердің көптеген ұйымдары CICS-ті пайдаланады. Басқа, кіші кәсіпорындар да CICS TS және басқа CICS отбасы өнімдерін қолдана алады. CICS көбінесе банк кассалық қолданбаларында, банкомат жүйелерінде, өнеркәсіптік өндірісті басқару жүйелерінде, сақтандыру қолданбаларында және көптеген басқа да интерактивті қолданбаларда көзге көрінбей жұмыс істейді. Жақындағы CICS TS жаңартулары әзірлеушілердің жұмысын жақсартуға бағытталған жаңа мүмкіндіктерді қамтиды, соның ішінде API, фреймворктер, редакторлар мен құрастыру құралдарын таңдау мүмкіндігі, сонымен қатар қауіпсіздік, сенімділік және басқару салаларында жаңа жаңартулар енгізілді. Алдыңғы CICS TS нұсқаларында веб-қызметтер мен Java, оқиғаларды өңдеу, Atom ағындары және RESTful интерфейстерге қолдау көрсетілді.

Тарих

CICS-тің алдында IBM MTCS деп аталатын, бір жіпті мәмілелерді өңдеу жүйесі болған. Кейіннен, бұл мәмілелерді бастапқы қолданба бағдарламаларына ешқандай өзгеріс енгізбей CICS жүйесінде орындауға мүмкіндік беретін «MTCS CICS көпірі» әзірленді. IBM-нің Клиенттік ақпаратты басқару жүйесі (CICS) алғаш рет 1966 жылы Мичиган Белл компаниясымен бірлесіп жасалды. Бен Риггинс Вирджиния электр қуаты компаниясында IBM жүйелік инженері болып жұмыс істеген кезде онлайн жүйе идеясын ойлап тапты. CICS бастапқыда 1966 жылдан бастап АҚШ-та, Иллинойс штатының Des Plaines қаласындағы IBM Дамыту орталығында, қоғамдық коммуналдық саланың қажеттіліктерін қанағаттандыру мақсатымен әзірленді. CICS-тің алғашқы өнімі 1968 жылы жарияланды және «Public Utility Customer Information Control System», яки PU CICS деп аталды. Бірақ ол көптеген басқа салаларға да қолданылатыны тез анық болды, сондықтан IMS деректер базасын басқару жүйесінен кейін, 1969 жылдың 8 шілдесінде CICS бағдарламалық өнімінің алғашқы нұсқасы шығарылғанда «Public Utility» префиксі алынып тасталды. Келесі бірнеше жыл CICS Пало-Альтода дамытылды және IBM оны IMS-ке қарағанда маңыздылығы төмен, «кішкентай» өнім деп санады, себебі IBM осы кезде IMS-ті стратегиялық тұрғыдан маңыздырақ деп есептеді. Дегенмен, клиенттердің талабы оны қолдауға көмектесті. 1974 жылы IBM IMS-ке назар аудару үшін CICS-ті дамытуды тоқтатуға шешім қабылдағанда, CICS-ті дамыту жауапкершілігін Ұлыбританиядағы IBM Hursley орталығы өз мойнына алды. Бұл орталық PL/I компиляторы бойынша жұмысын аяқтаған еді және CICS-тің көптеген клиенттерін білетін. Бүгінгі күні дамыту жұмысының негізгі бөлігі Хёрслиде, Үндістан, Қытай, Ресей, Австралия және АҚШ-тағы зертханалардың қатысуымен жалғасуда.

Ерте эволюция

CICS бастапқыда тек бірнеше IBM брендті құрылғыларды қолдады, мысалы 1965 жылғы IBM 2741 Selectric (гольф доптары) теріс машинасына негізделген терминал. 1964 жылғы IBM 2260 және 1972 жылғы IBM 3270 бейне дисплей терминалдары кейін кеңінен қолданылды. IBM мейнфреймдерінің алғашқы күндері компьютерлік бағдарламалық қамтамасыз ету компьютерлік жабдықпен қосымша ақысыз тегін бірге берілді. OS/360 операциялық жүйесі және CICS сияқты қолданбаларды қолдау бағдарламалық жасақтамасы IBM клиенттеріне ашық бағдарламалық жасақтама бастамасынан бұрын "ашық" болды. Индиана штатының Standard Oil (Amoco) сияқты корпорациялары CICS-ке үлкен үлес қосты. IBM Des Plaines командасы ASCII Teletype Model 33 ASR сияқты IBM-ге жатпайтын танымал терминалдарды қолдауды қосуға тырысты, бірақ шағын бағдарламалық жасақтаманы әзірлеу тобы оны сынауға айына 100 долларлық аппаратты сатып ала алмады. IBM басшылары болашақтың дәстүрлі перфокарталарды пайдалану арқылы топтық өңдеумен өткенге ұқсайды деп қате ойлады. IBM мемлекеттік коммуналдық компаниялар, банктер және несие картасы компаниялары тиімді интерактивті жүйені талап еткенде (American Airlines Sabre компьютерлік бронь жүйесі қолданған 1965 жылғы IBM Airline Control Program-ға ұқсас) жылдам деректерге қол жеткізу және клиенттердің ақпаратын жаңарту үшін телефон операторлары үшін (түні бойы топтық өңдеуді күтпей) минималды қаржыландыруды ұсынды. CICS Amoco-ға Teletype Model 33 ASR қолдауымен жеткізілген кезде, ол бүкіл OS/360 операциялық жүйесінің (CICS емес қолданба бағдарламаларын қоса алғанда) құлдырауына себеп болды. CICS терминалды басқару бағдарламасының (TCP – CICS-тің жүрегі) басым бөлігі және OS/360 бөлігі Талса, Оклахома штатындағы Amoco Production Company компаниясымен қайта жобаланып, қайта жазылуы керек болды. Содан кейін ол IBM-ге басқаларға тегін таратуға берілді. Бірнеше жыл ішінде CICS IBM үшін 60 миллиардтан астам жаңа аппараттық табыс әкелді және олардың ең табысты мейнфреймдік бағдарламалық өніміне айналды. 1972 жылы CICS үш нұсқада қол жетімді болды: DOS ENTRY (программа нөмірі 5736 XX6) өте шектеулі жады бар DOS/360 машиналары үшін, DOS STANDARD (программа нөмірі 5736 XX7) көбірек жады бар DOS/360 машиналары үшін және OS/360-ты іске асыратын үлкен машиналар үшін OS STANDARD V2 (программа нөмірі 5734 XX7). 1970 жылдың басында бірқатар бастапқы әзірлеушілер, соның ішінде Бен Риггинс (алғашқы шығарылымдардың басты архитекторы) Калифорнияға көшіп барды және IBM-нің Пало-Альто даму орталығында CICS-ті дамытуды жалғастырды. IBM басшылары бағдарламалық жасақтаманың пайда әкелетін өнім ретінде құндылығын федералды заң талап еткенге дейін танымады. 1980 жылы IBM басшылары Бен Риггинстің IBM-ге өзінің EBCDIC негізделген операциялық жүйесін және интегралды микропроцессорлық микросхемасын IBM персональды компьютерінде CICS интеллектуалды терминалы ретінде (кемелеспейтін Intel чипі және жетілмеген ASCII негізделген Microsoft 1980 DOS орнына) ұсынуы керек деген ұсыныстарын ескермеді. Сол дәуірдегі үлкен процессорлардың шектеулі қуаты болғандықтан, әрбір CICS орнатылымы CICS жүйелік модульдерінің барлық бастапқы кодын CICSGEN деп аталатын жүйелік генерацияға (sysgen) ұқсас процесті аяқтағаннан кейін шартты құрастыру тілі мәлімдемелерінің мәндерін орнату үшін құрастыруды талап етті. Бұл процесс әрбір клиентке CICS-тен өзі қолданғысы келмейтін кез келген мүмкіндікті, мысалы, қолданылмайтын терминал түрлерін қолдау сияқты құрылғыларды қолдауды алып тастауға мүмкіндік берді. CICS өзінің алғашқы танымалдылығын аппараттық жабдық өте қымбат болған кезде салыстырмалы түрде тиімді іске асыруына, оның көп жіпті өңдеу архитектурасына, терминалға негізделген нақты уақыт транзакциялары үшін салыстырмалы қарапайымдылығына және көптеген ашық кодты клиенттердің үлесіне, соның ішінде жөндеу мен мүмкіндіктерді жақсартуға борышты.

Z белгісі

CICS-тің бір бөлігі 1980 және 1990 жылдары Тони Хоардың жетекшілігімен Оксфорд университетінің Есептеу зертханасымен бірлесіп Z нотациясы арқылы формалдануға түсті. Бұл жұмыс Технологиялық жетістіктер үшін Королева сыйлығымен марапатталды.

CICS үлестірілген файл сервері ретінде

1986 жылы IBM таратқан деректерді басқару архитектурасы (DDM) арқылы анықталған жазбаға бағытталған файлдық қызметтерге CICS қолдауын жариялады. Бұл қашықтағы, желіге қосылған компьютерлердегі бағдарламаларға бұрын тек CICS/MVS және CICS/VSE транзакциялық өңдеу орталарында ғана қолжетімді болған файлдарды құруға, басқаруға және пайдалануға мүмкіндік берді. CICS-тің жаңа нұсқаларында DDM қолдауы тоқтатылды. CICS z/OS-тің DDM компонентіне қолдау 2003 жылдың соңында тоқтатылып, CICS z/OS 5.2 нұсқасынан бастап алынып тасталды. CICS TS for z/VSE-де DDM қолдауы V1.1.1 деңгейінде бекітілді және болашақ нұсқада тоқтату туралы хабарланды. CICS for z/VSE 2.1 және одан кейінгі нұсқаларында CICS/DDM қолдауы жоқ.

CICS және әлемдік желі

CICS Transaction Server алғаш рет нұсқа 1.2-де жергілікті HTTP интерфейсін, сондай-ақ HTML фасадымен жасыл экран терминалына негізделген бағдарламаларды орауға арналған Web Bridge технологиясын енгізді. CICS TS V1.3 нұсқасында CICS веб және құжат API-лері веб-браузерлермен тиімді өзара әрекеттесуге мүмкіндік беретін веб-танымал қосымшаларды жазу үшін жаңартылды. CICS TS нұсқалары 2.1-ден 2.3-ке дейін CORBA және EJB технологияларын CICS-ке енгізуге бағытталды, бұл CICS активтерін таратылған қосымша компоненттік модельдеріне интеграциялаудың жаңа тәсілдерін ұсынды. Бұл технологиялар Java қосымшаларын CICS-те орналастыруға негізделген. Java хостинг ортасы көптеген шығарылымдарда көптеген жақсартуларды көрді. CICS TS 4.1 нұсқасында JVMSERVER деп аталатын JVM ресурсы енгізілді, ол 5.1 нұсқасында 64 биттік JVM технологиясын пайдалану үшін одан әрі жаңартылды. 5.1 нұсқасы WebSphere Liberty профильдік веб-контейнерін де енгізді. Ақырында WebSphere Liberty 5.3 нұсқасында CICS транзакциялық серверіне толыққанды енгізілді. Java-ны пайдалана отырып, CICS-те көптеген вебке бағытталған технологияларды орналастыруға болады, бұл түпнұсқалық CORBA және EJB технологияларын жоюға әкелді. CICS TS V3.1 CICS үшін SOAP және WSDL технологияларын, сондай-ақ шығыс байланысы үшін клиенттік HTTP API-лерін жергілікті түрде жүзеге асырды. Бұл екі технология CICS компоненттерін басқа Enterprise қосымшаларымен оңай интеграциялауға мүмкіндік берді және кеңінен қолданылды. COBOL сияқты тілдерде жазылған дәстүрлі CICS бағдарламаларын WSDL анықталған веб-қызметтеріне бағдарламалық өзгерістерсіз немесе минималды өзгерістермен түрлендіруге арналған құралдар қосылды. Бұл технология CICS-тің кезекті шығарылымдарында үнемі жақсартылып келді. CICS TS V4.1 және V4.2 веб-қосылымын жақсартуды жалғастырды, соның ішінде Atom жарияланым протоколының жергілікті түрде жүзеге асырылуын қамтыды. Көптеген жаңа вебке бағытталған технологиялар CICS-тің дәстүрлі өнім шығарылымдарынан өзгеше жеткізу моделін пайдалана отырып, оның бұрынғы нұсқалары үшін қол жетімді болды. Бұл ерте пайдаланушыларға интеграцияланған технологияның соңғы дизайнына әсер ете алатын конструктивті пікір беруге мүмкіндік берді. Мысалдарға TS V2.2 үшін Soap for CICS технологиясының алдын ала қарауы SupportPac немесе TS V3.1 үшін ATOM SupportPac кіреді. Бұл тәсіл CICS TS V4.2 үшін JSON қолдауын енгізу үшін пайдаланылды, бұл технология CICS TS V5.2-ге интеграцияланды. CICS-тегі JSON технологиясы бұрынғы SOAP технологиясына ұқсас, екеуі де CICS-те орналастырылған бағдарламаларды заманауи интерфейспен орауға мүмкіндік берді. JSON технологиясы z/OS Connect Enterprise Edition-да жақсартылды, бұл бірнеше мейнфрейм жүйелерінен активтерді пайдалана алатын JSON API-ларын құрастыруға арналған IBM өнімі. CICS-пен өзара әрекеттесу үшін көптеген серіктес өнімдері де пайдаланылды. Танымал мысалдарға JCA сәйкес келетін Java қосымша серверлерінен CICS-ке қосылу үшін CICS транзакциялық шлюзін пайдалану және CICS-ке жететін веб-трафикті сүзгілеу үшін IBM DataPower құрылғылары кіреді. CICS-тің қазіргі нұсқалары қолданыстағы және жаңа бағдарламалық активтерді таратылған қосымша ағындарына интеграциялаудың көптеген тәсілдерін ұсынады. CICS активтеріне қашық жүйелерден қол жеткізуге болады және қашық жүйелерге қол жеткізуге болады; пайдаланушының идентификациясы мен транзакциялық контексті таратылуы мүмкін; RESTful API-ларды құрастыруға және басқаруға болады; құрылғылар, пайдаланушылар және серверлер стандарттарға негізделген технологияларды пайдалана отырып, CICS-пен өзара әрекеттесе алады; және CICS-тегі IBM WebSphere Liberty ортасы жаңа технологияларды жылдам қабылдауға көмектеседі.

MicroCICS

1985 жылдың қаңтарына дейін 1969 жылы құрылған, Хилтон қонақүйлері, FTD Florists, Amtrak және Budget Rent a Car компаниялары үшін "үлкен көлемді желілік жүйелерді" жасаған консалтингтік компания MicroCICS деп аталатын жаңа өнімді жариялады. Алғашқы назар IBM XT/370 және IBM AT/370 платформаларына аударылды.

CICS отбасы

CICS аталғанда, адамдар көбінесе CICS транзакциялық серверін түсінеді, бірақ CICS отбасы – транзакциялық серверлер, коннекторлар (CICS транзакциялық шлюзі деп аталады) және CICS құралдары жиынтығын білдіреді. Таратылған платформалардағы CICS мейнфреймдер емес, IBM TXSeries деп аталады. TXSeries – таратылған транзакцияларды өңдеуге арналған аралық бағдарламалық құрал. Ол бұлттық ортада және дәстүрлі деректер орталықтарында C, C++, COBOL, Java™ және PL/I қолданбаларын қолдайды. TXSeries AIX, Linux x86, Windows, Solaris және HP UX платформаларында қолжетімді. CICS басқа операциялық жүйелерде де қолдауға ие, атап айтқанда IBM i және OS/2. z/OS нұсқасы (яғни z/OS үшін CICS транзакциялық сервері) ең көп таралған және маңызды болып табылады. Бұрын VM/CMS үшін CICS-тің екі нұсқасы болған, бірақ екеуі де қолданыстан тоқтатылды. 1986 жылы IBM CICS/CMS-ті, ал 1988 жылы CICS/VM-ді шығарды. CICS/VM IBM 9370 мейнфреймінде, бөлімдерде пайдалануға арналған еді; IBM CICS/VM-ді бөлімдердегі немесе филиалдардағы мейнфреймдерде CICS-ті MVS үшін іске қосатын орталық мейнфрейммен бірге пайдалану үшін ұсынды.

CICS құралдары

CICS жүйелері мен қолданбаларын қамтамасыз ету, басқару және талдау CICS құралдары арқылы жүзеге асырылады. Бұл өнімділікті басқаруды, сондай-ақ CICS ресурстарын орнату мен басқаруды қамтиды. 2015 жылы төрт негізгі CICS құралы (және z/OS үшін CICS Optimization Solution Pack) z/OS 5.3 үшін CICS Transaction Server нұсқасымен жаңартылды. Төрт негізгі CICS құралы: z/OS үшін CICS өзара тәуелділік талдаушысы, z/OS үшін CICS орнату көмекшісі, z/OS үшін CICS өнімділік талдаушысы және z/OS үшін CICS конфигурациялық басқарушысы.

Бағдарламалау мәселесі

Бірнеше пайдаланушымен интерактивті транзакцияларды жүзеге асыру үшін қолданбалар бірнеше бір мезгілдегі транзакцияларды қолдау үшін жартылай қайта кіріп отыратын болуы қажет болды. Бағдарламалық кодтағы бір қолданбадағы қате барлық пайдаланушыларды жүйеден бұғаттауы мүмкін. CICS жартылай қайта кіретін/қайта қолдануға болатын басқару бағдарламаларының модульдік дизайны, тиімді "қырқу" арқылы бірнеше пайдаланушыларды бірнеше қолданбамен компьютерде тек 32К қымбат магниттік ядролық физикалық жадымен (оның ішінде операциялық жүйе) орындауға мүмкіндік берді. CICS бағдарламалаушыларына өздерінің транзакцияларын барынша тиімді ету үшін көп күш салу қажет болды. Көп қолданылатын тәсіл – жеке бағдарламалардың мөлшерін 4096 байттан немесе 4К-тан аспайтын етіп шектеу болды, сонда CICS басқа бағдарламаға немесе басқа қолданбалық сақтау қажеттіліктеріне қазіргі уақытта қолданылмайтын бағдарламамен қамтылған жадты оңай қайта пайдалана алатын болды. 1972 жылы OS/360 нұсқаларына виртуалды жад қосылған кезде, 4К стратегиясы пагеттеуді азайту және өнімді ресурстарды үстіртке шығару үшін одан да маңыздырақ болды. Компиляцияланған жоғары деңгейдегі COBOL және PL/I тілдік бағдарламаларының тиімділігі жетіспейтін көп нәрселерге жол берді. Көптеген CICS қолданбалары COBOL және PL/I қолдау пайда болғаннан кейін де ассемблер тілінде жазыла берді. 1960 және 1970 жылдардағы аппараттық ресурстар қымбат және аз болғандықтан, жүйелерді оңтайландыру сарапшылары арасында бәсекелестік "ойын" пайда болды. Критикалық код анықталғанда, кодтың үзіндісі бір сарапшыдан екіншісіне берілді. Әрбір сарапшы (а) қажетті код байттарының санын азайтуға немесе (б) қажетті CPU циклдерінің санын азайтуға тырысты. Жас сарапшылар тәжірибелі ұстаздардан үйренді. Ақырында, ешкім (а) немесе (б) орындай алмағанда, код оңтайландырылған деп есептелді және олар басқа үзінділерге көшті. Тек бір сарапшысы бар шағын кеңселер CICS-ті оңтайландыруды өте баяу үйренді (немесе мүлдем үйренбеді). Қолданбалық бағдарламалар көптеген бір мезгілдегі желілермен бөлісе алатындықтан, бағдарламаға енгізілген статикалық айнымалыларды пайдалану (немесе операциялық жүйе жадысын пайдалану) конвенция бойынша шектелді. Өкінішке орай, көптеген "ережелер" жиі бұзылды, әсіресе COBOL бағдарламашылары өз бағдарламаларының ішкі құрылымын түсінбеуі немесе қажетті шектеулі компиляция уақытын пайдаланбауы мүмкін. Бұл "қайта кірмейтін" кодқа әкелді, ол көбінесе сенімсіз, жалған сақтау бұзушылықтарына және бүкіл CICS жүйесінің құлауына себеп болды. Бастапқыда, бүкіл бөлім немесе бірнеше виртуалды сақтау (MVS) аймағы, CICS ядролық кодын қоса алғанда, бірдей жад қорғау кілтімен жұмыс істеді. Бағдарламаның бұзылуы және CICS басқару блогының бұзылуы жүйелік тоқтаудың жиі себебі болды. Бір қолданбалық бағдарламадағы бағдарламалық қате бір немесе барлық орындалып жатқан қолданбалық транзакциялардың жадына (код немесе деректерге) жазылуы мүмкін. Операциялық жүйе сарапшысы үшін күрделі уақытша қателері бар құқық бұзушылықты қолданба кодын анықтау өте қиын мәселе болуы мүмкін. Бұл кемшіліктер 20 жылдан астам уақыт бойы CICS-тің бірнеше жаңа нұсқаларында сақталды, олардың ауырлығына және жоғары сапалы CICS біліктіліктеріне сұраныс жоғары және ұсыныстың аз екендігіне қарамастан. Олар TS V3.3, V4.1 және V5.2 нұсқаларында Storage Protection, Transaction Isolation және Subspace мүмкіндіктерімен шешілді, олар қолданбалар бөлек жазылмаса да, бір адрестік кеңістіктегі қолданба кодын және деректерді қорғау үшін операциялық жүйенің аппараттық мүмкіндіктерін пайдаланады. CICS қолданбалық транзакциялары көптеген коммуналдық компаниялар, ірі банктер және басқа да миллиардтаған долларлық қаржы институттары үшін маңызды болып қала береді. Сонымен қатар, бақылау бағдарламасының бақылауымен тестілеуді жүргізу арқылы алдын ала қосымшаны қорғау шараларын қамтамасыз ету мүмкін, бұл сондай-ақ Тестілеу және Ақаулықтарды жою мүмкіндіктерін қамтамасыз етуге қызмет етеді.

Макро деңгейіндегі бағдарламалау

CICS алғаш рет шығарылған кезде ол тек IBM 360 Assembler тілінде жазылған қолданба транзакциялық бағдарламаларды қолдады. COBOL және PL/I тілдеріне қолдау бірнеше жылдан кейін қосылды. Бастапқы құрастырушыға бағытталғандықтан, CICS қызметтеріне сұраныстар құрастырушы тілінің макростарын пайдалану арқылы жіберілді. Мысалы, файлдан жазбаны оқу сұранысы CICS-тің "Файлдарды басқару бағдарламасына" макро шақыру арқылы жасалды: DFHFC TYPE=READ,DATASET=myfile,TYPOPER=UPDATE, және т.б. Бұл кейінірек "макро деңгейлі CICS" терминологиясының пайда болуына әкелді. Жоғары деңгейдегі тілдерге қолдау қосылған кезде макростар сақталды, ал кодты COBOL немесе PL/I CALL операторларына эквивалентті түрде кеңейтетін алдын ала компилятор оны түрлендірді. Осылайша, HLL қолданбасын дайындау HLL компиляторына кіріс ретінде берілген алдын ала өңдеушіден алынған "екі сатылы" компиляция нәтижесі болды. COBOL ескертулері: PL/I-ден айырмашылығы, IBM COBOL көбінесе сілтемелерді (адрестерді) өңдеу мүмкіндігін қамтамасыз етпейді. COBOL бағдарламашыларына CICS басқару блоктарына және динамикалық жадқа қол жеткізуге мүмкіндік беру үшін, әзірлеушілер іс жүзінде хакерлік тәсілге жүгінді. COBOL байланыс бөлімі әдетте бағдарламалар арасындағы байланыс үшін, мысалы, параметрлерді жіберу үшін пайдаланылады. Компилятор Байланысқа арналған базалық локатор (BLL) деп аталатын адрестер тізімін жасайды, олардың әрқайсысы шақырылған бағдарламаға кіргенде орнатылады. Бірінші BLL байланыс бөліміндегі бірінші элементке сәйкес келеді, және т.б. CICS бағдарламашыға осы тізімнің мекенжайын бағдарламаға бірінші аргумент ретінде жіберу арқылы оларға қол жеткізуге және оларды өңдеуге мүмкіндік береді. Содан кейін BLL-дер CICS немесе қолданба арқылы динамикалық түрде орнатылуы мүмкін, бұл байланыс бөліміндегі тиісті құрылымға қол жеткізуге мүмкіндік береді.

Орындау уақытында конверсия

1990 жылдардың басында енгізілген командалық деңгейдегі CICS, CICS-тің бұрынғы нұсқаларына қарағанда бірнеше артықшылықтар ұсынды. Дегенмен, IBM бұрынғы нұсқаларға арналған макро деңгейлі қолданба бағдарламаларын қолдауды тоқтатты. Осының салдарынан көптеген қолданба бағдарламаларын тек командалық деңгейдегі EXEC командаларын пайдалану үшін түрлендіруге немесе толығымен қайта жазу қажет болды. Сол кезде әлем бойынша ондаған жылдар бойы өндірісте болған миллиондаған бағдарламалар болды. Оларды қайта жазу көбінесе жаңа мүмкіндіктерді қоспай, жаңа қателерге әкеп соқты. V3 нұсқасына көшуден кейін де көптеген пайдаланушылар макрокодты орындау үшін CICS V2 қолданбалық аймақтарын (AOR) көп жылдар бойы пайдаланды. Сонымен қатар, APT International's Command CICS сияқты түрлендіру бағдарламалық жасақтамасын пайдаланып, ескі макро деңгейлі бағдарламаларды іске қосуға болады еді.

Жаңа бағдарламалау стильдері

Соңғы CICS транзакциялық серверінің жетілдірілуіне бірқатар заманауи бағдарламалау стильдерін қолдау кіреді. CICS Transaction Server 5.6 нұсқасы Java-ны Java әзірлеушілеріне бұлтты тәжірибе беру үшін қолдауды күшейтті. Мысалы, жаңа CICS Java API (JCICSX) мокинг және стабтау тәсілдерін пайдаланып, бірлікті сынауды жеңілдетеді және оны әзірлеушінің жергілікті жұмыс станциясында қашықтан іске қосуға болады. Maven Central-дегі CICS артефактілерінің жиынтығы әзірлеушілерге Java тәуелділіктерін Apache Maven және Gradle сияқты танымал тәуелділіктерді басқару құралдарын қолдана отырып шешуге мүмкіндік береді. CICS пакеттерін автоматты түрде құруды жеңілдету үшін Maven (cics bundle maven) және Gradle (cics bundle gradle) плагиндері де ұсынылады, олар Eclipse, IntelliJ IDEA және Visual Studio Code сияқты танымал IDE-лерді қолданады. Сонымен қатар, Node.js z/OS қолдауы 12 нұсқада жақсартылды, осымен жылдам іске қосылу, жақсартылған әдепкі үйінді шектері, V8 JavaScript қозғалтқышына жаңартулар және т.б. қамтамасыз етілді. Jakarta EE 8 қолдауы да қосылды. CICS TS 5.5 Node.js үшін IBM SDK қолдауын енгізді, толық JavaScript орындалу ортасын, серверлік API-лерді және IBM Z үшін жоғары өнімді, кеңейтілген желілік қосымшаларды тиімді құруға арналған кітапханаларды ұсынады. CICS Transaction Server Version 2.1 Java қолдауын енгізді. CICS Transaction Server Version 2.2 бағдарламалық жасақтаманы әзірлеушілер құралы жиынтығын қолдады. CICS IBM-нің WebSphere өнімдер отбасымен бірдей орындалу ортасын қамтиды, сондықтан Java EE қосымшалары CICS және WebSphere арасында тасымалданады және Java EE қосымшаларын әзірлеу және орналастыру үшін ортақ құралдар бар. Бұдан өзге, CICS қазіргі заманғы интерфейстерде қолданыстағы қосымша бағдарламаларын «орауға» баса назар аударды, осылайша ұзақ жылдар бойы қалыптасқан бизнес-функцияларды жаңа қызметтерге енгізуге болады. Бұларға WSDL, SOAP және JSON интерфейстері кіреді, олар веб- немесе мобильді қосымшаларға негізгі бизнес-объектілерін қайта жазуды қажет етпей алуға және жаңартуға мүмкіндік береді.

Sysplex пайдалану

1990 жылдардың басында CICS ESA V3.2 кезінде IBM CICS-ті жаңа zOS Sysplex мейнфрейм желісін пайдалану үшін қалай іске қосуға болатынына қатысты қиындыққа тап болды. Sysplex бұрынғы ECL (Emitter Coupled Logic) аппараттық жүйесіне емес, CMOS (Complementary Metal Oxide Silicon) жүйесіне негізделуі керек еді. Мейнфреймдік бірегей ECL-ді кеңейту құны CMOS-тан әлдеқайда жоғары болды, оны Sony PlayStation сияқты үлкен көлемде қолдануға бейімделген keiretsu әр буын процессорларының құнын төмендету үшін жасады. ECL пайдаланушылар үшін де қымбат болды, себебі шлюз тогы қатты қыздырып, CPU-ды инерт газ поршеньдерімен және суыту үшін үлкен көлемде салқындатылған сумен жабдықталған арнайы Термиялық өткізгіш модульге (TCM) орналастыруға мәжбүр етті. Дегенмен, ауамен салқындатылатын CMOS технологиясының процессор жылдамдығы бастапқыда ECL-ге қарағанда әлдеқайда төмен болды (әсіресе Amdahl және Hitachi сияқты мейнфрейм клондарының өнімдерінде). Бұл IBM-ді CICS тұрғысынан қатты алаңдатты, өйткені барлық ірі мейнфрейм клиенттері CICS-ті пайдаланды және көптегендері үшін бұл негізгі мейнфрейм жұмыс жүктемесі болды. Sysplex-те бірдей транзакциялардың жалпы өнімділігін қамтамасыз ету үшін әр жұмыс жүктемесі үшін бірнеше машиналарды параллель пайдалану қажет болды. Алайда, CICS адрестік кеңістігі квази-қайта кіретін қолданба бағдарламалау моделіне байланысты, тіпті MVS қосалқы тапсырмаларын пайдаланғанда да бір машинада шамамен 1,5 процессордан артық пайдалана алмады. Параллелизмді арттырмайынша, клиенттер CICS жұмыс жүктемесін кеңейте отырып, IBM-нің бәсекелестеріне көшуге бейім болар еді. IBM ішінде қосымшалар үшін жоғары деңгейде үйлесімділікті бұзу және IMS/DC сияқты толық қайта кіретін модельге көшу, әлде бірнеше аймақты пайдалану (MRO) арқылы бір мейнфреймнің қуатын толық пайдалану үшін клиенттер қабылдаған тәсілді кеңейту маңызды мәселе болды. Ақырында, CICS пайдаланушылар қауымдастығымен кеңескеннен кейін екінші жол қабылданды. Қауымдастық жоғары деңгейде үйлесімділікті бұзуға қарсы болды, себебі олар сол кезде Y2K мәселесімен күресуге тиіс еді және миллиондаған COBOL, PL/I немесе ассемблер кодтарын қайта жазу мен сынаудың қажеттілігін көрмеді. IBM Sysplex-тегі CICS үшін ұсынған құрылым бойынша, әр Sysplex түйінінде кем дегенде бір CICS терминалды иеленетін аймақ орналастырылуы керек, ол бүкіл Sysplex бойынша таратылған көптеген қолданба иеленетін аймақтарға (AOR) транзакцияларды жіберді. Егер бұл қолданбаларға ортақ ресурстарға қол жеткізу қажет болса, олар Sysplex пайдаланатын деректер қоймасын (мысалы, IBM Db2 немесе IMS/DB) пайдаланған немесе ресурстық сұраныстарды функцияларды жіберу арқылы жеке ресурстық иеленуші аймақтарға (ROR) шоғырландырған, соның ішінде VSAM және CICS деректер кестелері үшін файл иеленуші аймақтар (FOR), MQ, CICS уақытша деректер (TD) және CICS уақытша сақтау (TS) үшін кезек иеленуші аймақтар (QOR). Бұл ескі қолданбалар үшін үйлесімділікті сақтады, бірақ көптеген CICS аймақтарын конфигурациялау және басқарудың операциялық күрделілігіне әкелді. Келесі релиздер мен нұсқаларда CICS VSAM/RLS, zOS үшін MQ-де жаңа Sysplex мүмкіндіктерін пайдалана алды және өзінің деректер кестелерін, TD және TS ресурстарын Sysplex үшін архитектуралық ортақ ресурс менеджеріне (Coupling Facility немесе CF) орналастырды, көптеген ROR қажеттілігін жойды. CF ресурстардың карталық көрінісін ұсынады, соның ішінде ортақ уақыт базасы, буферлік аймақтар, құлыптар және аппараттық хабарламалар арқылы ресурстарды бөлісуді Sysplex арқылы сауалдаудан тиімдірек және сенімдірек етеді (іс жүзінде сәтке дейін сақтық көшірме CF пайдалану). Осы кезде CMOS желісінде бір процессорға көбірек процессорлары бар ең жылдам ECL машинасының қуатын асып түсетін жеке машиналар пайда болды. Оларды біріктіргенде 32 немесе одан да көп түйін бір жұмыс жүктемесі үшін жалпы қуатты екі есеге арттыра алды. Мысалы, 2002 жылы Чарльз Шваб Phoenix, AZ-дегі екі жерде орналасқан екі резервтік Sysplex-тен тұратын "MetroPlex" жүйесін пайдаланды, әрқайсысында 32 түйін болды және ортақ CICS/DB/2 жұмыс жүктемесімен доткомды бұрыштардан бұрынғы веб-клиенттердің сұраныстарын қолдады. Бұл арзан, әлдеқайда кеңейтілген CMOS технологиялық базасы және 64 биттік адрестеуге жетуге және тәуелсіз клондалған CF функционалдығын жасауға қажетті үлкен инвестициялық шығындар IBM мейнфрейм клондарының бірінен соң бірі бизнестен шығуына себеп болды.

Құралымдары

Әрбір CICS аймағы барлық транзакциялар орындалатын бір негізгі тапсырмадан тұрады, бірақ IBM Db2 деректеріне қол жеткізу сияқты кейбір қызметтер басқа тапсырмаларды (TCB) пайдаланады. Аймақ ішінде транзакциялар бірлесіп көп тапсырмалы жұмыс істейді, олардың жақсы әрекет етуі және күтудің орнына процессорды босатуы күтіледі. CICS қызметтері мұны автоматты түрде басқарады. Әрбір бірегей CICS "тапсырмасы" немесе транзакциясы іске қосылғанда өзіне динамикалық жад бөлінеді, ал қосымша жадқа келесі сұраулар "жадты басқару бағдарламасына" (CICS ядросының немесе "өлзегінің" бөлігі) жүгіну арқылы өңделеді, бұл операциялық жүйеге ұқсас. CICS жүйесі онлайн ядродан, пакеттік өңдеу бағдарламаларынан және қолданбалық қызметтерден тұрады.