맨위로가기

CICS

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.

1. 개요

CICS(Customer Information Control System)는 IBM에서 개발한 온라인 트랜잭션 처리 시스템으로, 1966년 공익 사업의 요구를 충족하기 위해 개발을 시작하여 1969년 정식 릴리즈되었다. 금융, 유통, 항공 예약 등 다양한 산업 분야에서 대규모 온라인 트랜잭션 처리를 위해 사용되며, 현재는 CICS Transaction Server, TXSeries for Multiplatforms, CICS 클라이언트 등으로 구성된 CICS Family로 제공된다. CICS는 COBOL, PL/I, C, Java 등 다양한 프로그래밍 언어를 지원하며, 매크로 수준 및 명령 수준 프로그래밍 방식을 거쳐 최신 프로그래밍 스타일을 지원한다. 한국에서는 1970년대 후반부터 도입되어 금융권을 중심으로 사용이 확대되었으며, 웹 서비스, Java 지원 등 새로운 기술과 클라우드 환경에 발맞춰 발전하고 있다.

더 읽어볼만한 페이지

  • IBM 소프트웨어 - IBM 시스템 R
  • IBM 소프트웨어 - PL/I
    PL/I는 1960년대 IBM이 과학 및 상업 분야의 다양한 프로그래밍 요구를 위해 개발한 고급 프로그래밍 언어로, 포트란, 코볼, 알골의 특징을 융합하여 시스템 프로그래밍, 이벤트 기반 프로그래밍 등 다양한 분야에 사용될 수 있도록 설계되었다.
  • 트랜잭션 처리 - 2단계 커밋 프로토콜
    2단계 커밋 프로토콜은 분산 컴퓨팅 환경에서 트랜잭션의 원자성을 보장하는 분산 알고리즘으로, 조정자와 참가자로 구성되어 모든 참가자가 트랜잭션을 완료하거나 아무도 완료하지 못하도록 하며, 커밋 요청 및 커밋 단계를 거쳐 모든 참가자의 동의를 얻어야 커밋된다.
  • 트랜잭션 처리 - 온라인 트랜잭션 처리
    온라인 트랜잭션 처리(OLTP)는 실시간 데이터베이스 트랜잭션 처리 방식으로, 가용성, 속도, 동시성, 내구성을 목표로 은행, 항공사, 전자 상거래 등에서 활용된다.
  • 어셈블리어 소프트웨어 - 터보 파스칼
    필립 칸이 개발하고 안데르스 헤일스베르그가 기반을 다진 터보 파스칼은 저렴한 가격, 빠른 컴파일, 사용하기 쉬운 IDE를 특징으로 1980년대 PC 프로그래밍에 혁신을 가져왔으며, 여러 기능 추가를 거쳐 델파이 등장 후 레거시 기술이 되었고 일부 버전은 프리웨어로 배포된다.
  • 어셈블리어 소프트웨어 - MS-DOS
    MS-DOS는 마이크로소프트가 개발한 개인용 컴퓨터용 디스크 운영 체제로, IBM PC의 표준 운영 체제로 널리 사용되었으며, 단일 작업 환경과 명령줄 인터페이스를 특징으로 한다.
CICS - [IT 관련 정보]에 관한 문서
개요
이름CICS (Customer Information Control System)
종류텔레프로세싱 모니터
상세 정보
개발사IBM
최초 출시일1969년 7월 8일
최신 버전CICS 트랜잭션 서버 V6.1
최신 버전 출시일2022년 6월 17일
운영 체제z/OS
z/VSE
플랫폼IBM Z
라이선스프로프리에타리 소프트웨어
관련 제품
TXSeries for Multiplatforms 최신 버전V9.1 / 2018년
TXSeries for Multiplatforms 지원 OSAIX
솔라리스
HP-UX
Windows
TXSeries for Multiplatforms 종류트랜잭션 게이트웨이
TXSeries for Multiplatforms 라이선스프로프리에타리 소프트웨어 (IPL)
기타
공식 웹사이트CICS Transaction Server for z/OS

2. 역사

CICS는 1966년 미국 일리노이주 데스 플레인즈의 IBM 개발 센터에서 공익 사업(전기, 가스, 수도)의 요구를 충족시키기 위해 개발되기 시작했다.[3] 1968년 PU-CICS (Public Utility Customer Information Control System)라는 이름으로 처음 공개되었으며, 이후 다양한 산업 분야로 확대되었다.[4] 1969년 7월 8일, 현재의 CICS라는 이름으로 첫 릴리즈가 발표되었다.

1974년, CICS 개발 책임은 영국 IBM 허슬리(Hursley) 연구소로 이관되었으며, 현재까지도 개발 및 유지보수가 진행되고 있다. 초기에는 IBM 2741, IBM 2260, IBM 3270 등 특정 IBM 장치만 지원했으나, 점차 다양한 터미널 및 프로토콜을 지원하도록 확장되었다.

1980년대와 1990년대에는 옥스퍼드 대학교와의 협력을 통해 Z 표기법을 사용하여 시스템의 일부가 정비되었다. 이 작업은 여왕상을 수상했다.[6]

3. 프로그래밍

CICS에서 가동되는 응용 프로그램은 COBOL, PL/I, C, C++, 어셈블리 언어, REXX, Java 등 다양한 프로그래밍 언어로 개발할 수 있다.[57] CICS 온라인 트랜잭션 시스템에서 동작하는 업무 응용 프로그램에는 CICS가 트랜잭션 ID를 할당하며, 화면은 맵(map) 단위로 관리된다. 최종 사용자 입력 데이터는 이 맵을 통해 프로그램에 전달된다. CICS 화면의 문자는 고휘도 하이라이트, 다양한 색상, 점멸 등을 활용하여 표시할 수 있다.

다중 사용자 환경에서 CICS는 여러 트랜잭션 스레드를 동시에 지원하기 위해 준(quasi)-reentrant 프로그래밍 모델을 사용한다. 이 모델은 한 응용 프로그램의 코드 오류가 전체 시스템 접근을 막는 것을 방지한다. CICS의 재진입/재이용 가능한 제어 프로그램들의 모듈식 설계 덕분에, 여러 사용자와 응용 프로그램들이 32K 마그네틱 코어 물리 메모리(운영 체제 포함)를 가진 컴퓨터에서 실행될 수 있었다.

CICS 응용 프로그램 개발자들은 트랜잭션을 최대한 효율적으로 만들기 위해 노력해야 했다. 일반적인 방법은 프로그램 크기를 4,096바이트(4K) 이하로 제한하여, CICS가 다른 프로그램이나 응용 프로그램의 메모리 요구에 따라 사용하지 않는 프로그램의 메모리를 쉽게 재사용할 수 있도록 하는 것이었다. 1972년 OS/360가상 메모리가 추가되면서, 4K 전략은 페이징과 스래싱으로 인한 비생산적인 리소스 경합을 줄이는 데 더욱 중요해졌다.

초기에는 컴파일된 고급 COBOL 및 PL/I 언어 프로그램들의 효율성이 낮았기 때문에, COBOL과 PL/I 지원이 가능해진 후에도 많은 CICS 응용 프로그램이 어셈블리어로 계속 작성되었다.

MVS 리전(region)(전체 파티션)은 CICS 커널 코드를 포함하여 동일한 메모리 보호 키로 동작하였다. 프로그램 오류 및 CICS 제어 블록 오류는 시스템 다운의 빈번한 원인이었다.

3. 1. 매크로 수준 프로그래밍 (Macro-level Programming)

CICS가 처음 출시되었을 때, CICS는 IBM 360 어셈블러로 작성된 애플리케이션 트랜잭션 프로그램만 지원했다. COBOL과 PL/I 지원은 수년 후에 추가되었다. 초기에 어셈블러를 중심으로 개발되었기 때문에, CICS 서비스 요청은 어셈블러 언어 매크로를 사용하여 이루어졌다. 예를 들어, 파일에서 레코드를 읽는 요청은 CICS의 "파일 제어 프로그램"에 대한 매크로 호출을 통해 이루어졌으며, 다음과 같은 형태를 가질 수 있었다.

```text

DFHFC TYPE=READ,DATASET=myfile,TYPOPER=UPDATE,....etc.

```

이로 인해 나중에 "'''매크로 레벨''' CICS"라는 용어가 생겨났다.

3. 2. 명령 수준 프로그래밍 (Command-level Programming)

1980년대 IBM 허슬리 연구소는 "명령 수준 CICS"를 지원하는 CICS 중간 버전을 개발했다.[57] 이 버전은 기존 프로그램들을 지원하는 동시에 새로운 명령 수준 응용 프로그램 개발을 위한 API를 도입했다.

일반적인 명령 수준 호출의 예시는 다음과 같다:



EXEC CICS

SEND MAPSET('LOSMATT') MAP('LOSATT')

END-EXEC


`SEND MAPSET` 명령에 사용된 값은 맵 정의에서 `MAPSET` 인수의 첫 번째 `DFHMSD` 매크로와 `MAP` 인수의 `DFHMSI` 매크로에 사용된 이름에 해당한다. 이 코드는 사전 컴파일 및 배치 변환 단계를 거쳐 포함된 명령(EXEC)을 스텁 서브루틴 호출 문으로 변환한다. 따라서 응용 프로그램 실행에는 여전히 두 단계가 필요했다. 매크로 레벨과 명령 레벨 문을 모두 사용해 "혼합 모드" 응용 프로그램을 작성하는 것도 가능했다.

초기에 명령 레벨 명령은 런타임 변환기인 "EXEC 인터페이스 프로그램"을 통해 이전 매크로 레벨 호출로 변환된 후, 변경되지 않은 CICS 코어 프로그램에서 실행되었다. 그러나 CICS 커널이 TS V3용으로 재작성되면서, `EXEC CICS`는 CICS 응용 프로그램 프로그래밍의 유일한 방법이 되었고, 많은 기본 인터페이스가 변경되었다.

1990년대 초 도입된 '명령어 레벨 전용' CICS는 이전 버전에 비해 몇 가지 장점을 제공했다. 그러나 IBM은 이전 버전용으로 작성된 매크로 레벨 응용 프로그램에 대한 지원을 중단했다. 이 때문에 많은 응용 프로그램이 명령어 레벨 `EXEC` 명령만 사용하도록 변환되거나 완전히 다시 작성되어야 했다.

당시 전 세계적으로 수백만 개의 CICS 프로그램이 운영되고 있었고, 상당수는 수십 년 동안 사용되었다. 이를 다시 작성하는 것은 새로운 기능을 추가하지 않으면서 새로운 버그를 유발하는 경우가 많았다. CICS V3로 변경된 후에도 매크로 코드를 계속 실행하기 위해 CICS V2 응용 프로그램 소유 영역(AOR)을 실행하는 사용자가 많았다.

APT International의 ''Command CICS''와 같은 변환 소프트웨어를 사용해 이전 매크로 레벨 프로그램을 실행하는 것도 가능했다.[37]

COBOL에서 맵이 어떻게 전송되는지 보여주는 예시는 다음과 같다:

```

EXEC CICS

SEND MAPSET(MPS1) MAP(MP1)

END-EXEC.

```

1980년대와 1990년대에 CICS의 일부는 옥스퍼드 대학교 전산 연구소와 협력하여 Z 표기법으로 공식화되었으며, 이는 토니 호어의 지휘 아래 진행되었다. 이 작업은 기술적 업적에 대한 여왕상을 수상했다.[6]

3. 3. 최신 프로그래밍 스타일

CICS 트랜잭션 서버는 최근 여러 현대 프로그래밍 스타일을 지원한다.

CICS 트랜잭션 서버 버전 2.1에서는 엔터프라이즈 자바빈즈 (EJB)를 지원하기 시작했다. 버전 2.2에서는 소프트웨어 개발자 툴킷을 지원했다. CICS는 IBM의 웹스피어 제품군과 동일한 런타임 컨테이너를 제공하여, EJB 애플리케이션을 CICS와 웹스피어 간에 이식할 수 있으며, EJB 애플리케이션 개발 및 배포를 위한 통일된 도구를 사용할 수 있다.

CICS는 기존 애플리케이션 프로그램을 최신 인터페이스로 "래핑"하여, 오랫동안 구축된 비즈니스 기능을 보다 현대적인 서비스에 통합할 수 있도록 했다. 여기에는 웹 또는 모바일 애플리케이션이 백엔드 기능을 대대적으로 다시 작성하지 않고도 핵심 비즈니스 개체를 얻고 업데이트할 수 있도록 레거시 코드를 래핑하는 WSDL, SOAP 및 JSON 인터페이스가 포함된다.

CICS 트랜잭션 서버 버전 5.6[38]은 Java 개발자에게 클라우드 네이티브 경험을 제공하기 위해 Java 지원을 강화했다. 예를 들어, 새로운 CICS Java API (JCICSX)를 사용하면 모킹 및 스터빙 방식을 사용하여 더 쉽게 단위 테스트를 수행할 수 있으며, 개발자의 로컬 워크스테이션에서 원격으로 실행할 수 있다. Maven Central의 CICS 아티팩트 세트를 통해 개발자는 아파치 메이븐Gradle과 같은 인기 있는 종속성 관리 도구를 사용하여 Java 종속성을 해결할 수 있다. 이클립스, IntelliJ IDEA, Visual Studio Code와 같은 친숙한 IDE를 사용하여 CICS 번들의 자동 빌드를 단순화하기 위해 Maven (cics-bundle-maven) 및 Gradle (cics-bundle-gradle)용 플러그인도 제공된다. 또한 Node.js z/OS 지원은 버전 12에서 향상되어 더 빠른 시작, 더 나은 기본 힙 제한, V8 JavaScript 엔진 업데이트 등을 제공한다. 자카르타 EE 8에 대한 지원도 포함되어 있다.

CICS TS 5.5는 IBM SDK for Node.js에 대한 지원을 도입하여, IBM Z용 고성능, 고도로 확장 가능한 네트워크 애플리케이션을 효율적으로 구축하기 위한 전체 JavaScript 런타임, 서버 측 API 및 라이브러리를 제공했다.

4. 트랜잭션

CICS 트랜잭션은 함께 태스크를 수행하는 명령어들의 모임이며, 각 트랜잭션은 고유한 트랜잭션 식별자(Transaction Identifier)를 사용하여 초기화된다.[58] CICS는 트랜잭션의 원자성을 보장하여 데이터 무결성을 유지한다.[58]

CICS 온라인 트랜잭션 시스템을 이용하면, System z 등 IBM의 대형 컴퓨터(메인프레임)상에서 초당 수천 건의 온라인 트랜잭션 처리가 가능하여, 대기업에서 중견 기업에 이르기까지 기업의 중핵 시스템 역할을 담당할 수 있다.[7] CICS는 은행현금 자동 입출금기, 유통, 신용 판매, 항공사 예약 시스템, 공장의 생산 관리 시스템 등 다양한 온라인 트랜잭션 시스템에서 사용되며,[7] 특히 은행 등 금융 업계에서 요구되는 고도의 온라인 시스템 플랫폼으로서 IMS TM에 이어 높은 신뢰성과 운용 경제성을 제공하는 플랫폼으로 이용되고 있다.[7]

4. 1. BMS 맵 코드 예제

CICS 화면은 일반적으로 기본 매핑 지원(BMS) 어셈블러 매크로나 타사 도구로 생성된 모듈인 맵이라는 구조로 전송된다. COBOL을 통해 맵을 전송하는 방법의 예는 다음과 같다. 최종 사용자는 데이터를 입력하며, CICS에서 맵을 수신하여 프로그램에서 액세스할 수 있다.[58]

```cobolfree

EXEC CICS

RECEIVE MAPSET('LOSMATT') MAP('LOSATT') INTO(OUR-MAP)

END-EXEC.

```

기본 매핑 지원은 다음과 같은 어셈블러 매크로를 통해 화면 형식을 정의한다. 이는 CICS 로드 라이브러리에서 로드 모듈인 ''물리적 맵 세트''와 소스 프로그램에 복사되는 PL/I, COBOL, 어셈블러 등에서 구조 정의 또는 ''DSECT''인 ''기호 맵 세트''를 모두 생성하기 위해 어셈블되었다.[39]

```cobol

LOSMATT DFHMSD TYPE=MAP, X

MODE=INOUT, X

TIOAPFX=YES, X

TERM=3270-2, X

LANG=COBOL, X

MAPATTS=(COLOR,HILIGHT), X

DSATTS=(COLOR,HILIGHT), X

STORAGE=AUTO, X

CTRL=(FREEKB,FRSET)



LOSATT DFHMDI SIZE=(24,80), X

LINE=1, X

COLUMN=1



LSSTDII DFHMDF POS=(1,01), X

LENGTH=04, X

COLOR=BLUE, X

INITIAL='MQCM', X

ATTRB=PROT



DFHMDF POS=(24,01), X

LENGTH=79, X

COLOR=BLUE X

ATTRB=ASKIP, X

INITIAL='PF7- 8- 9- 10- X

11- 12-CANCEL'



DFHMSD TYPE=FINAL

END

5. 구조

z/OS 환경에서 CICS 설치본은 하나 이상의 리전(region, 일반적으로 CICS 리전을 가리킴)으로 구성된다.[59] 각 CICS 리전은 배치 처리 및 표준 JCL 문을 포함한 배치 주소 공간으로 시작할 수 있다. (무기한으로 실행하는 잡) 또한, 각각의 CICS는 시작된 태스크로서 시작할 수 있다. 배치 잡이든, 시작된 태스크든 CICS 리전은 유지 보수(MVS나 CICS)를 위해 종료하기 앞서 수일, 수주, 수개월에 걸쳐 동작할 수 있다.

일반적인 설치본은 수많은 개별 응용 프로그램들로 구성된다. 각 응용 프로그램은 보통 자신만의 TOR(Terminal-Owning Region) 및 하나 이상의 AOR(Application-Owning Region)을 가지고 있으며, 다른 구성 방식 또한 가능하다. 예를 들어 AOR은 파일 입출력을 수행하지 않지만, AOR 트랜잭션을 위해 파일 입출력을 수행하는 FOR(File-Owning region)이 있다.

6. 구성 요소

CICS 시스템은 온라인 핵(nucleus), 배치 지원 프로그램, 애플리케이션 서비스로 구성된다.[60][47] 각 CICS 리전은 모든 트랜잭션이 실행되는 하나의 주요 태스크로 구성되지만, IBM Db2 데이터 액세스와 같은 특정 서비스는 다른 태스크(TCB)를 사용한다. 리전 내에서 트랜잭션은 협력적으로 멀티태스킹되며, 대기하는 대신 CPU를 잘 활용하고 양보하도록 설계되었다. CICS 서비스가 이를 자동으로 처리한다.

각 고유한 CICS "태스크" 또는 트랜잭션은 시작 시 자체 동적 메모리가 할당되며, 추가 메모리에 대한 후속 요청은 CICS '''핵심''' 또는 "커널"의 일부인 "스토리지 제어 프로그램" 호출에 의해 처리된다. 이는 운영 체제와 유사하다.

6. 1. 핵 (Nucleus)

CICS 핵(Nucleus)은 CICS 시스템의 핵심 기능을 담당하는 모듈들의 집합이다. CICS 핵은 다수의 기능 모듈로 구성되어 있으며, 주요 모듈은 다음과 같다:[47]

  • 작업 제어 프로그램 (KCP, Task Control Program): CICS 시스템에서 실행되는 작업(Task)들을 관리하고 제어한다.
  • 기억 제어 프로그램 (SCP, Storage Control Program): CICS 시스템의 메모리(Storage) 할당 및 관리를 담당한다.
  • 프로그램 제어 프로그램 (PCP, Program Control Program): CICS 시스템에서 실행되는 프로그램들의 로딩, 실행, 종료 등을 제어한다.
  • 프로그램 인터럽트 제어 프로그램 (PIP, Program Interrupt Control Program): 프로그램 실행 중 발생하는 인터럽트를 처리한다.
  • 구간 제어 프로그램 (ICP, Interval Control Program): 시간 기반의 작업을 처리한다. (예: 특정 시간 간격마다 특정 프로그램 실행)
  • 덤프 제어 프로그램 (DCP, Dump Control Program): 시스템 오류 발생 시 디버깅을 위한 덤프(Dump) 생성을 담당한다.
  • 터미널 제어 프로그램 (TCP, Terminal Control Program): CICS 시스템과 연결된 터미널과의 통신을 관리한다.
  • 파일 제어 프로그램 (FCP, File Control Program): CICS 시스템에서 사용되는 파일에 대한 입출력 작업을 처리한다.
  • 임시 데이터 제어 프로그램 (TDP, Transient Data Control Program): 임시 데이터(Transient Data)를 관리한다. 임시 데이터는 특정 트랜잭션 내에서만 유효한 데이터이다.
  • 임시 기억 제어 프로그램 (TSP, Temporary Storage Control Program): 임시 기억 장치(Temporary Storage)를 관리한다. 임시 기억 장치는 여러 트랜잭션 간에 공유될 수 있는 데이터를 저장하는 데 사용된다.


초기 CICS는 다중 사용자 대화형 트랜잭션 애플리케이션 프로그램이 여러 개의 동시 데이터베이스 트랜잭션 스레드(컴퓨터 과학)를 지원하기 위해 준(quasi-)-재진입 가능(서브루틴)으로 만들어져야 했다. CICS 재진입 가능/재사용 가능한 제어 프로그램의 모듈식 설계는 여러 애플리케이션을 가진 여러 사용자가 32K의 자기 코어 물리 메모리(운영 체제 포함)만으로 컴퓨터에서 실행될 수 있음을 의미했다.

이후 V3부터 CICS Nucleus는 PL/AS 언어를 사용하여 커널과 도메인 구조로 재작성되었다. 이전 구조는 관심사 분리를 강제하지 않아 많은 프로그램 간 종속성을 가지고 있었지만, 새로운 구조는 더 모듈화되어 탄력적이었다.

6. 1. 1. 초기 핵 구성 요소 (V3 이전)

CICS 초기 Nucleus는 V3까지 370 어셈블러로 작성된 여러 기능 모듈로 구성되었다.[47]

프로그램 이름(영문)프로그램 이름(번역)설명
Task Control Program (KCP)작업 제어 프로그램작업을 제어
Storage Control Program (SCP)기억 제어 프로그램기억 장치를 제어
Program Control Program (PCP)프로그램 제어 프로그램프로그램을 제어
Program Interrupt Control Program (PIP)프로그램 인터럽트 제어 프로그램프로그램 인터럽트를 제어
Interval Control Program (ICP)구간 제어 프로그램구간을 제어
Dump Control Program (DCP)덤프 제어 프로그램덤프를 제어
Terminal Control Program (TCP)터미널 제어 프로그램터미널을 제어
File Control Program (FCP)파일 제어 프로그램파일을 제어
Transient Data Control Program (TDP)임시 데이터 제어 프로그램임시 데이터를 제어
Temporary Storage Control Program (TSP)임시 기억 제어 프로그램임시 기억 장치를 제어



V3부터 CICS Nucleus는 어셈블러로 컴파일되는 IBM의 PL/AS 언어를 사용하여 커널과 도메인 구조로 다시 작성되었다.

이전 구조는 관심사 분리를 강제하지 않아, 철저한 코드 분석 없이는 버그가 발생할 수 있는 많은 프로그램 간 종속성을 가지고 있었다. 새로운 구조는 더 모듈화되어 있어, 영향 없이 변경하기 쉬웠기 때문에 더 탄력적이었다. 첫 번째 도메인은 종종 이전 프로그램의 이름을 사용했지만, 마지막 "P"를 생략하여 만들어졌다. 예를 들어, 프로그램 제어 도메인(DFHPC) 또는 임시 데이터 도메인(DFHTD)이 있다. 커널은 도메인 간 요청의 스위처 역할을 했는데, 처음에 이는 빈번하게 호출되는 도메인(예: 추적)에 비용이 많이 들었지만, PL/AS 매크로를 활용하여 이러한 호출은 별도의 도메인 설계를 손상시키지 않고 인라인 처리되었다.

이후 버전에서는 저널 제어 프로그램(JCP)을 대체하는 로깅 도메인 DFHLG 및 트랜잭션 도메인 DFHTM과 같이 완전히 재설계된 도메인이 추가되었다.

6. 1. 2. V3 이후 핵 구성 요소

V3부터 CICS Nucleus는 PL/AS 언어를 사용하여 커널과 도메인 구조로 재작성되었다.[47]

이전 구조는 관심사 분리를 강제하지 않아, 철저한 코드 분석 없이는 버그가 발생할 수 있는 많은 프로그램 간 종속성을 가지고 있었다. 새로운 구조는 더 모듈화되어 있어, 영향 없이 변경하기 쉬웠기 때문에 더 탄력적이었다. 첫 번째 도메인은 종종 이전 프로그램의 이름을 사용했지만, 마지막 "P"를 생략하여 만들어졌다. 예를 들어, 프로그램 제어 도메인(DFHPC) 또는 임시 데이터 도메인(DFHTD)이 있다.[47] 커널은 도메인 간 요청의 스위처 역할을 했는데, 처음에는 빈번하게 호출되는 도메인(예: 추적)에 비용이 많이 들었지만, PL/AS 매크로를 활용하여 이러한 호출은 별도의 도메인 설계를 손상시키지 않고 인라인 처리되었다.[47]

이후 버전에서는 저널 제어 프로그램(JCP)을 대체하는 로깅 도메인 DFHLG 및 트랜잭션 도메인 DFHTM과 같이 완전히 재설계된 도메인이 추가되었다.[47]

6. 2. 지원 프로그램 (Support Programs)

CICS는 온라인 기능뿐 아니라 배치 작업으로 실행할 수 있는 여러 지원 프로그램을 갖추고 있다.[61] 이러한 프로그램들은 CICS 시스템 운영 및 관리를 위한 유틸리티들이다.

6. 2. 1. 주요 지원 프로그램


  • 고급 언어 (매크로) 전처리기[61]
  • 명령어 변환기[61]
  • 덤프 유틸리티 – CICS 덤프 관리가 만들어낸, 서식 있는 덤프를 인쇄한다.[61]
  • 트레이스 유틸리티 – CICS 트레이스 출력에 서식을 입히고 인쇄한다.[61]
  • 저널 포맷팅 유틸리티 – 오류 발생 시 CICS 리전(region)의 서식화된 덤프를 인쇄한다.[61]

6. 3. 애플리케이션 서비스 (Application Services)

CICS는 애플리케이션 개발을 지원하는 다양한 구성 요소를 제공한다.[61] 주요 구성 요소는 다음과 같다.

구성 요소설명
BMS (기본 매핑 지원)장치 독립적인 터미널 입출력을 제공
DIP (데이터 교환 프로그램)IBM 3770 및 IBM 3790 프로그래머블 장치 지원
2260 호환성IBM 2260 디스플레이 장치용 프로그램들을 3270 디스플레이에서 실행 가능
EXEC 인터페이스 프로그램`EXEC CICS`를 통해 만든 호출들을 CICS 함수에 대한 호출로 변환하는 작은 프로그램
내장 함수테이블 검색, 음성 변환, 필드 확인, 필드 편집, 비트 검사, 입력 서식 추가, 편중 검색(weighted retrieval) 기능



초기 CICS는 다중 사용자 대화형 트랜잭션 애플리케이션을 지원하기 위해 준-재진입 가능하도록 설계되었다. 당시에는 하드웨어 자원이 부족했기 때문에, 애플리케이션 프로그래머는 트랜잭션을 최대한 효율적으로 만들기 위해 노력해야 했다. 예를 들어 프로그램 크기를 4KB 이하로 제한하여 메모리 재사용성을 높이는 기술이 사용되었다.

하지만 COBOL 및 PL/I와 같은 고급 언어 프로그램의 효율성은 좋지 않았고, 이로 인해 많은 CICS 애플리케이션이 어셈블러 언어로 작성되었다. 또한 프로그램 내 정적 변수 사용이나 운영 체제 메모리 사용 제한 등의 규칙이 자주 위반되어 시스템 안정성 문제가 발생하기도 했다.

이러한 문제점에도 불구하고 CICS는 오랫동안 중요한 시스템으로 사용되었으며, 이후 버전에서는 스토리지 보호, 트랜잭션 격리 등의 기능을 통해 안정성을 향상시켰다.

6. 3. 1. 주요 애플리케이션 서비스


  • BMS (기본 매핑 지원, Basic Mapping Support): 장치 독립적인 터미널 입출력을 제공한다.[61]
  • DIP (데이터 교환 프로그램, Data Interchange Program): IBM 3770 및 IBM 3790 프로그래머블 장치에 대한 지원을 제공한다.
  • 2260 호환성: IBM 2260 디스플레이 장치용으로 작성된 프로그램들을 3270 디스플레이에서 실행할 수 있게 한다.
  • EXEC 인터페이스 프로그램: `EXEC CICS`를 통해 만든 호출들을 CICS 함수에 대한 호출로 변환하는 작은 프로그램이다.
  • 내장 함수: 테이블 검색, 음성 변환, 필드 확인, 필드 편집, 비트 검사, 입력 서식 추가, 편중 검색(weighted retrieval) 기능을 제공한다.[61]

7. CICS 제품군 (CICS Family)

CICS가 언급될 때, 보통 CICS Transaction Server를 의미하지만, '''CICS Family'''는 트랜잭션 서버, 커넥터(CICS Transaction Gateway라고 불림) 및 CICS Tools의 포트폴리오를 지칭한다.

CICS 패밀리는 다음과 같이 구성된다.

제품명설명
CICS Transaction Server (CICS TS)CICS의 핵심으로, 견고한 트랜잭션 처리를 제공한다.
TXSeries for Multiplatforms윈도우 및 오픈 시스템 UNIX OS에서 CICS 트랜잭션 처리를 실현한다. V8.1은 AIX, HP-UX, Solaris, Windows, 리눅스에서 가동된다.
CICS 클라이언트
CICS Transaction Gateway (CTG)분산 처리에서 WebSphere Application Server 등 애플리케이션 서버상의 애플리케이션과 CICS/TXSeries의 연계를 위한 통신 게이트웨이이다.
CICS Universal Client (CUC)CICS 애플리케이션에 단일 사용자 액세스를 제공한다. (CTG의 서브세트)
3270계 표시 장치 및 인쇄 장치
웹 클라이언트 (J2EE Connecter Architecture 등)



CICS 시스템 및 애플리케이션의 프로비저닝, 관리 및 분석은 CICS 도구에서 제공된다. 여기에는 성능 관리와 CICS 자원의 배치 및 관리가 포함된다. 2015년에 4개의 핵심 기반 CICS 도구(및 z/OS용 CICS 최적화 솔루션 팩)가 CICS Transaction Server for z/OS 5.3의 출시와 함께 업데이트되었다. 4가지 핵심 CICS 도구는 다음과 같다: z/OS용 CICS Interdependency Analyzer, z/OS용 CICS Deployment Assistant, z/OS용 CICS Performance Analyzer 및 z/OS용 CICS Configuration Manager.

8. 발음

한국어로는 각 글자를 따로 읽어 '씨아이씨에스'로 발음한다.[49] 영어권에서는 미국 기준으로 각 글자를 따로 읽어 '씨아이씨에스'로 발음하거나, '킥스(kicks)'로 발음하기도 한다.[49] 영국, 호주 등에서는 '킥스(kicks)'로 발음한다.[49] 그 외 다른 국가에서는 각 국가별 발음 규칙에 따라 다르게 발음한다.[49]

국가별 CICS 발음[49]
국가/지역발음
미국씨아이씨에스, 킥스 (kicks)
영국, 호주, 벨기에, 캐나다, 홍콩킥스 (kicks)
덴마크킥스 (kicks)
핀란드킥스 (kiks)
프랑스세.이.세.에스
독일, 오스트리아, 헝가리칙스 (tsɪks), 드물게 킥스 (kɪks)
그리스킥스 (kiks)
인도킥스 (kicks)
이란킥스 (kicks)
이탈리아칙스 (tʃiks)
폴란드킥스 (kʲiks)
포르투갈, 브라질식스 (siks)
러시아킥스 (kiks)
슬로베니아킥스 (kiks)
스페인식스 (θiks)
스웨덴킥스 (kicks)
우간다킥스 (kicks)
튀르키예킥스 (kiks)


9. 주요 버전

CICS Transaction Server for z/OS의 주요 버전 및 기능은 다음과 같다.

버전발표일릴리스 날짜서비스 종료일기능
CICS Transaction Server for OS/390 1.11996년 9월 10일[20]1996년 11월 8일2001년 12월 31일
CICS Transaction Server for OS/390 1.21997년 9월 9일[20]1997년 10월 24일2002년 12월 31일
CICS Transaction Server for OS/390 1.31998년 9월 8일[20]1999년 3월 26일2006년 4월 30일
CICS Transaction Server for z/OS 2.12001년 3월 13일[21]2001년 3월 30일2002년 6월 30일
CICS Transaction Server for z/OS 2.22001년 12월 4일[22]2002년 1월 25일2008년 4월 30일
CICS Transaction Server for z/OS 2.32003년 10월 28일[23]2003년 12월 19일2009년 9월 30일
CICS Transaction Server for z/OS 3.12004년 11월 30일[24]2005년 3월 25일2015년 12월 31일
CICS Transaction Server for z/OS 3.22007년 3월 27일[25]2007년 6월 29일2015년 12월 31일
CICS Transaction Server for z/OS 4.12009년 4월 28일[26]2009년 6월 26일2017년 9월 30일
CICS Transaction Server for z/OS 4.22011년 4월 5일[27]2011년 6월 24일2018년 9월 30일
CICS Transaction Server for z/OS 5.12012년 10월 3일[28]2012년 12월 14일2019년 7월 1일
CICS Transaction Server for z/OS 5.22014년 4월 7일[29]2014년 6월 13일2020년 12월 31일
CICS Transaction Server for z/OS 5.32015년 10월 5일[30]2015년 12월 11일2021년 12월 31일
CICS Transaction Server for z/OS 5.42017년 5월 16일[31]2017년 6월 16일2023년 12월 31일
CICS Transaction Server for z/OS 5.52018년 10월 2일[32]2018년 12월 14일2025년 9월 30일
CICS Transaction Server for z/OS 5.62020년 4월 7일[33]2020년 6월 12일Spring Boot, Jakarta EE 8, Node.js 12 지원. 원격 개발 기능을 갖춘 새로운 JCICSX API. 보안, 복원력 및 관리 개선.
CICS Transaction Server for z/OS 6.12022년 4월 5일[34]2022년 6월 17일Java 11, Jakarta EE 9.1, Eclipse MicroProfile 5, Node.js 12, TLS 1.3 지원. 보안 강화 및 단순화. 영역 태깅.
CICS Transaction Server for z/OS 6.22024년 4월 9일[35]2024년 6월 14일


참조

[1] 웹사이트 IBM CICS Transaction Server for z/OS, V5.6 delivers significant improvements to the developer experience, security, resilience, and management https://www.ibm.com/[...] 2022-04-05
[2] 웹사이트 CICS Transaction Server for z/OS Glossary:T https://www.ibm.com/[...] 2021-02-02
[3] 웹사이트 IBM archives https://www.ibm.com/[...] IBM 2022-12-06
[4] 웹사이트 ESM Mainframe hall of fame https://www.enterpri[...] ESM 2022-12-06
[5] 서적 Customer Information Control System (CICS) General Information Manual http://bitsavers.org[...] IBM 1972-12
[6] 서적 Specification Case Studies Prentice Hall
[7] 간행물 IBM Gives PC Programs Direct Mainframe Access: PC Applications Can Alter Files https://books.google[...] 1987-02-23
[8] 웹사이트 IBM CICS Transaction Server for z/OS, V5.2 takes service agility, operational efficiency, and cloud enablement to a new level http://www.ibm.com/c[...] IBM 2014-04-07
[9] 웹사이트 IBM z/VSE Central Functions Version 9.2 - z/VSE Version 5.2 http://www-01.ibm.co[...] IBM 2014-04-07
[10] 웹사이트 IBM CICS Transaction Server for z/VSE V2.1 delivers enhancements for future workloads http://www-01.ibm.co[...] IBM 2015-10-05
[11] 간행물 Unicorn is Betting that CICS is easer and cheaper on a PC 1986-10-27
[12] 간행물 Unicorn MicroCICS/RT 1985-12-09
[13] 간행물 IBM Get its CICS 1992-11-10
[14] 문서 "announced .. October of 1985 .. didn't start deliveries until July of this year."
[15] 웹사이트 CICS/CMS http://www-01.ibm.co[...] IBM
[16] 웹사이트 CUSTOMER INFORMATION CONTROL SYSTEM/ CONVERSATIONAL MONITOR SYSTEM (CICS/CMS) RELEASE 1 ANNOUNCED AND PLANNED TO BE AVAILABLE JUNE 1986 http://www-01.ibm.co[...] IBM 1985-10-15
[17] 웹사이트 (CICS/VM) Customer Information Control System / Virtual Machine http://www-01.ibm.co[...] IBM
[18] 웹사이트 CUSTOMER INFORMATION CONTROL SYSTEM/VIRTUAL MACHINE (CICS/VM) http://www-01.ibm.co[...] IBM 1987-10-20
[19] 간행물 VM/SP update eases migration https://books.google[...] IDG Enterprise 1987-11-02
[20] 웹사이트 US - IBM CICS Transaction Server (CICS TS) for OS/390 https://www.ibm.com/[...] 2004-02-03
[21] 웹사이트 CICS TS for z/OS V2 https://www.ibm.com/[...] 2001-05-23
[22] 웹사이트 IBM CICS Transaction Server for z/OS V2.2 Delivers Major Value to All CICS Customers https://www.ibm.com/[...] 2001-12-04
[23] 웹사이트 IBM CICS Transaction Server for z/OS V2.3 advances towards on demand business https://www.ibm.com/[...] 2003-10-28
[24] 웹사이트 IBM CICS Transaction Server for z/OS V3.1 offers improved integration, application transformation https://www.ibm.com/[...] 2004-11-30
[25] 웹사이트 CICS Transaction Server for z/OS V3.2 delivers significant innovation for application connectivity https://www.ibm.com/[...] 2007-03-27
[26] 웹사이트 IBM US Announcement Letter https://www.ibm.com/[...] 2009-04-28
[27] 웹사이트 IBM US Announcement Letter https://www.ibm.com/[...] 2011-04-05
[28] 웹사이트 IBM CICS Transaction Server for z/OS V5.1 delivers operational efficiency and service agility with cloud enablement https://www.ibm.com/[...] 2012-10-03
[29] 웹사이트 IBM CICS Transaction Server for z/OS, V5.2 takes service agility, operational efficiency, and cloud enablement to a new level https://www.ibm.com/[...] 2014-04-07
[30] 웹사이트 IBM CICS Transaction Server for z/OS, V5.3 delivers advances in service agility, operational efficiency, and cloud enablement with DevOps https://www.ibm.com/[...] 2015-10-05
[31] 웹사이트 IBM CICS Transaction Server for z/OS, V5.4 delivers unparalleled mixed language application serving https://www.ibm.com/[...] 2017-05-16
[32] 웹사이트 IBM CICS Transaction Server for z/OS, V5.5 delivers support for Node.js and further enhancements to CICS Explorer, systems management, and security https://www.ibm.com/[...] 2018-10-02
[33] 웹사이트 IBM CICS Transaction Server for z/OS, V5.6 delivers significant improvements to the developer experience, security, resilience, and management https://www.ibm.com/[...] 2020-04-07
[34] 웹사이트 IBM CICS Transaction Server for z/OS, 6.1 delivers significant improvements in the areas of developer productivity, security, and management https://www.ibm.com/[...] 2022-04-05
[35] 웹사이트 IBM CICS Transaction Server for z/OS 6.2 general availability https://www.ibm.com/[...] 2024-04-09
[36] 서적 Customer Information Control System (CICS) Application Programmer's Reference Manual http://www.bitsavers[...] 1972
[37] 웹사이트 Command/CICS http://www.ibm.com/p[...] 2018-04-22
[38] 웹사이트 IBM CICS Transaction Server for z/OS, V5.6 delivers significant improvements to the developer experience, security, resilience, and management https://www-01.ibm.c[...] 2020-04-07
[39] 웹사이트 Basic mapping support http://publib.boulde[...]
[40] 웹사이트 CICS Transaction Server glossary http://publib.boulde[...] IBM Information Center, Boulder, Colorado 2010-09-13
[41] 웹사이트 IBM Archives: Thermal conduction module https://www-03.ibm.c[...] 2003-01-23
[42] 서적 IMS John Wiley & Sons, Ltd
[43] 웹사이트 IBM Knowledge Center MQ for zOS https://www.ibm.com/[...] 2014-03-11
[44] 뉴스 Amdahl gives up on mainframe business https://www.computer[...] 2018-06-01
[45] 뉴스 Hitachi exits mainframe hardware but will collab with IBM on z Systems https://www.theregis[...] 2018-06-01
[46] 웹사이트 IBM Knowledge Center https://www.ibm.com/[...] 2021-02-02
[47] 서적 Customer Information Control System (CICS) System Programmer's Reference Manual http://bitsavers.inf[...] 2012-11-21
[48] 서적 Customer Information Control System/Virtual Storage (CICS/VS) Version 1, Release 3 Introduction to Program Logic Manual http://bitsavers.inf[...] 2012-11-24
[49] 웹사이트 CICS - An Introduction ftp://service.boulde[...] IBM Corporation 2004-07-08
[50] 문서 IBM CICS Transaction Server for z/OS, 6.1 delivers significant improvements in the areas of developer productivity, security, and management https://www.ibm.com/[...]
[51] 문서 IBM TXSeries for Multiplatforms V9.1 delivers RESTful API enablement and enhanced enterprise integration https://www.ibm.com/[...]
[52] 문서 IBM CICS Transaction Server for z/OS V5.2 は、サービスの俊敏性、運用効率、およびクラウド・イネーブルメントを新たなレベルへ進化させます - IBM http://www-01.ibm.co[...]
[53] 문서 IBM CICS Transaction Server for z/OS V5.3 は、サービスの俊敏性、運用効率、クラウド・イネーブルメントを DevOps により進化させます http://www-01.ibm.co[...]
[54] 웹인용 CICS Transaction Server for z/OS, Version 3.2 Glossary:T http://publib.boulde[...] 2012-12-07
[55] 문서 CICS 35 year anniversary http://www.ibm.com/s[...] IBM 2004
[56] 문서 CICS Transaction Server for z/OS V4.2 http://www.ibm.com/c[...] IBM 2011
[57] 서적 CICS/ESA Primer John Wiley & Sons, Inc. 1995
[58] 웹인용 Basic mapping support http://publib.boulde[...] 2020-02-06
[59] 웹인용 CICS Transaction Server glossary http://publib.boulde[...] IBM Information Center, Boulder, Colorado 2010-09-13
[60] 서적 Customer Information Control System (CICS) System Programmer's Reference Manual http://bitsavers.inf[...]
[61] 서적 Customer Information Control System/Virtual Storage (CICS/VS) Version 1, Release 3 Introduction to Program Logic Manual http://bitsavers.inf[...] 2014-04-03



본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.

문의하기 : help@durumis.com