SMP/E

**시스템 수정 프로그램/확장**(System Modification Program/Extended, **SMP/E**)는 **시스템 수정 프로그램**(System Modification Program, **SMP**)의 독점 버전으로, z/OS 시스템에 소프트웨어 제품 설치를 관리하고 해당 제품의 수정을 추적하도록 설계된 도구이다.

SMP/E는 여러 소프트웨어 버전을 관리하고, 패치 및 업데이트(PTF)를 적용하는 데 도움을 주며, 체계적인 테스트와 필요한 경우 이전 상태로의 복구를 용이하게 한다. 또한 실제 설치가 제대로 작동하는지 확인하기 위한 "시험 실행" 유사 설치를 허용하고, 승인된 소프트웨어 업데이트만 이루어지도록 감사 및 보안 기록을 유지하며, z/OS의 모든 소프트웨어 설치에 대한 고도로 발전된 중앙 집중식 제어를 제공한다.

SMP/E 없이 z/OS에 설치되는 소프트웨어 제품을 설계하고 출시할 수는 있지만, 대부분의 메인프레임 관리자는 적어도 중요하지 않은 패키지의 경우 SMP/E 지원 제품을 선호한다. SMP/E를 사용하려면 일반적으로 작업 제어 언어(JCL)에 대한 기본적인 지식이 필요하지만, 대부분의 제품은 샘플 JCL을 제공한다. SMP/E와 관련된 엄격한 소프트웨어 관리 규율은 제품 문서에도 적용되며, IBM 및 기타 공급업체는 SMP/E 작업 프로세스와 정확히 일치하는 표준화된 "프로그램 디렉토리" 설명서를 각 소프트웨어 제품에 대해 제공한다. 예를 들어, 프로그램 디렉토리는 사전 요구사항 및 동시 요구사항에 대한 자세한 정보를 제공한다.

SMP/E를 사용하여 시스템 업데이트를 관리하면 시스템이 일관된 상태를 유지하고 해당 상태에 대한 변경 사항이 제대로 감사되도록 함으로써 시스템 무결성을 보장하는 데 도움이 된다.

## 역사

IBM은 OS/360 및 OS/VS에 SMP를 도입하여 IEBEDIT 및 IMAPTFLE와 같은 도구를 포함하는 반자동 프로세스를 대체했다. IBM은 이후 3개의 SMP 무료 릴리스를 도입했으며, 특히 SMP3에서 SMP4로의 릴리스 간에 상당한 변경이 있었다. 네 가지 릴리스 모두 분할 데이터 세트(PDS)에 추적 데이터를 저장한다.

IBM은 OS/VS용 SMP/E를 도입했지만, SMP/E 릴리스 2는 OS/VS1을 지원하는 마지막 릴리스이다. SMP/E는 SMP 릴리스 1부터 4까지 사용했던 PDS 대신 VSAM 데이터 세트에 추적 데이터를 저장한다. 원래는 별도의 제품이었지만, SMP/E는 z/OS와 함께 번들로 제공된다.

IBM은 궁극적으로 다른 운영체제에도 유사한 도구를 도입했다. 예를 들어, DOS/360용 Maintain System History Program (MSHP), VM/SP부터 z/VM까지의 **가상 머신 서비스 가능성 향상 단계 (VM/SP SES)** (현재 **VMSES/E**) 등이 있다.

## 개념

모든 IBM 소프트웨어와 대부분의 비IBM 소프트웨어에는 해당 소프트웨어 조각과 릴리스 번호를 식별하는 최소 7자리 FMID(Function Modification ID)가 할당된다. 이 첫 번째 FMID를 기본 FMID라고 한다. 예를 들어, DB2 버전 9의 기본 FMID는 HDB9910이다. 별도로 설치 가능한 기능들도 기본 제품과 어떤 식으로든 관련되는 FMID(종속 FMID라고 함)를 갖는다. DB2 버전 9의 영어 언어 패널의 종속 FMID는 JDB9910이다.

소프트웨어 패키지는 오브젝트 파일(MOD), 매크로(MAC), 샘플 프로그램(SAMP) 등과 같은 개별 구성 요소인 요소로 구성된다.

CSI(Consolidated Software Inventory)는 SMP/E가 배포 및 대상 라이브러리의 내용을 추적하는 데 필요한 정보를 포함하는 데이터 세트이다. CSI는 설치된 FMID 및 요소, 최신 업데이트 ID, 관련 라이브러리에 대한 포인터를 식별하는 "메타데이터"를 포함한다.

SYSMOD(System Modification)는 시스템에 대한 모든 수정 사항을 의미한다. 여기에는 다음이 포함된다.
* 기능 SYSMOD는 새 제품, 버전 또는 릴리스를 설치한다.
* PTF SYSMOD는 보고된 문제에 대한 공식 IBM 수정 사항이다.
* APAR FIXES는 IBM의 덜 공식적인 수정 사항이다.
* USERMOD는 설치별 "종료"와 같은 제품에 대한 사용자 수정 사항이다.

각 SYSMOD에는 고유하게 식별하기 위해 7자리 SYSMOD ID가 할당된다. SYSMOD가 설치될 때 이 ID는 추가되거나 교체되는 요소의 CSI 항목에 기록되며 RMID(replacement module id)라고 불린다.

MCS(Modification Control Statements)라고 불리는 간단한 선언적 언어는 SYSMOD를 식별하고 설치 방법에 대한 정보를 SMP/E에 제공한다. 각 SYSMOD는 APAR 수정 또는 PTF로 식별하고 SYSMOD ID를 제공하며 해당 FMID를 식별하는 등 여러 MCS 문으로 시작된다. 

선행 조건(prereqs)은 두 번째 SYSMOD가 설치되기 전에 설치해야 하는 SYSMOD이다. 공동 조건(coreqs)은 함께 설치되어야 하는 두 개 이상의 SYSMOD로, 다른 SYSMOD 없이는 어떤 SYSMOD도 설치할 수 없다. SYSMOD가 첫 번째 SYSMOD의 기능을 대체하는 경우 해당 SYSMOD를 대체(supersedes 또는 sups)한다. 이 prereq, coreq, sup 정보는 MCS에 제공된다. 필수 체인은 "주어진 SYSMOD의 필수 조건으로 직간접적으로 식별되는 SYSMOD의 시퀀스"이다. 예를 들어, A가 B의 prereq이고 B가 C의 prereq이면, A와 B는 C의 필수 체인이며 C가 설치되기 전에 둘 다 설치되어야 하지만, 반드시 별도의 SMP/E 실행에서 설치될 필요는 없다. 필수 체인은 종종 매우 복잡해지며 수백 개의 SYSMOD를 포함할 수 있다.

HOLDDATA는 특정 SYSMOD에 오류가 포함되어 있거나 설치하기 전에 SMP/E 범위 밖에서 수동 처리가 필요함을 나타내는 MCS 문 세트이다. 사용자는 보류된 SYSMOD를 설치하기 전에 가능하면 문제를 해결하기 위한 조치를 취해야 한다.

SMP/E는 두 가지 유형의 라이브러리를 관리한다. 대상 라이브러리(TLIBS)는 시스템을 실행하는 데 사용되는 실행 코드 및 기타 정보를 포함한다. 원래는 실행 프로그램용 SYS1.LINKLIB, 표준 매크로용 SYS1.MACLIB 등 제한된 수의 대상 라이브러리가 있었지만, 2012년 현재 각 소프트웨어 제품은 일반적으로 자체 대상 라이브러리 세트를 가지고 있다. 배포 라이브러리(DLIBS)는 시스템의 각 요소에 대한 마스터 복사본을 포함한다. 각 제품(FMID)은 일반적으로 SMP/E에 의해서만 사용되는 자체 배포 라이브러리 세트를 가지고 있다. OS/360의 라이브러리는 유닉스의 디렉토리와 달리 일반적으로 한 가지 유형 및 형식의 데이터만 포함한다. 소프트웨어 패키지에는 오브젝트 라이브러리(MOD), ISPF 패널(PNL), 매크로 라이브러리(MAC) 등이 있을 수 있다.

## 사용
SMP/E는 배치 작업으로 실행되는 단일의 큰 프로그램이다. 일련의 ISPF 패널을 사용하여 사용자 입력을 기반으로 SMP/E 작업 스트림을 대화식으로 구축할 수 있다.

일반적인 단계 순서는 각 단계에 사용되는 명령에서 따온 **RECEIVE-APPLY-ACCEPT**이다.

SMP/E RECEIVE 명령은 SMP 외부 소스의 SYSMOD를 처리한다. 이전에는 IBM에서 대략 매월 배포하는 PUT 테이프였을 수도 있다. 최근에는 인터넷을 통해 다운로드된 SYSMOD 컬렉션일 수도 있다. RECEIVE 프로세스는 MCS를 사용하여 각 SYSMOD에 대한 CSI 항목을 생성하고, 해당 상태를 "RECEIVED"로 표시하며, MCS 정보와 실제 SYSMOD 데이터를 저장한다.

REJECT 명령은 "RECEIVED" 상태의 SYSMOD를 삭제하는 데 사용될 수 있다.

APPLY 명령은 하나 이상의 수신된 SYSMOD를 해당 대상 라이브러리에 설치한다. 적용할 SYSMOD는 다양한 기준에 따라 선택할 수 있다. 예를 들어, 단일 SYSMOD는 SYSMOD ID로 선택할 수 있고, 그룹으로 수신된 모든 SYSMOD는 SOURCEID로 선택할 수 있으며, 수신되었지만 아직 적용되지 않은 모든 SYSMOD를 적용할 수 있다. 지정된 SYSMOD에 대한 필수 체인이 확인되고, 적절한 필수 조건이 없거나, 보류 상태이거나, 대체된 SYSMOD는 오류로 표시되어 설치되지 않는다. 일반적으로 SMP/E는 이러한 오류를 최소화하기 위해 "RECEIVE" 상태의 필수 조건도 자동으로 적용하도록 지시된다. 설치된 SYSMOD는 CSI에서 상태가 "APPLIED"로 변경된다. APPLY CHECK는 실제 설치를 수행하지 않고도 설치할 SYSMOD를 확인하는 데 사용할 수 있다.

RESTORE 명령은 승인되지 않은 적용된 SYSMOD를 제거하는 데 사용될 수 있다.

ACCEPT 명령은 SYSMOD를 배포 라이브러리에 영구적으로 설치하고 CSI에서 상태를 "ACCEPTED"로 표시한다. 일반적으로 ACCEPT는 다음 서비스 APPLY 전에 SYSMOD가 올바르게 작동하는 것으로 확인되면 수행된다. SMP/E에는 CSI를 포함한 모든 설치 라이브러리를 삭제(그리고 설치를 다시 시작)하는 것 외에는 ACCEPT 작업을 취소하는 방법이 없다.

## SMP/E 데이터 세트
SMP/E는 크고 복잡한 프로그램이며, 각 릴리스마다 기능과 데이터 세트가 추가된다. 주요 SMP/E 데이터 세트는 다음과 같다.
; CSI 통합 소프트웨어 인벤토리: CSI에는 SMP/E가 배포 및 대상 라이브러리를 추적하는 데 필요한 모든 정보가 포함되어 있다.
; PTS PTF 임시 저장소: PTS 데이터 세트는 수신된 PTF를 보관하는 데 사용된다.
; MTS 매크로 임시 저장소: MTS 데이터 세트는 배포 라이브러리에만 존재하는 매크로를 위한 대상 라이브러리로, APPLY 처리 중에 이러한 매크로의 현재 버전을 어셈블리에 사용할 수 있도록 한다.
; STS 소스 임시 저장소: STS 데이터 세트는 배포 라이브러리에만 존재하는 소스를 위한 대상 라이브러리로, APPLY 처리 중에 이러한 모듈의 현재 버전을 어셈블리에 사용할 수 있도록 한다.

## 같이 보기
* IBM 프로그램 임시 수정

## 각주

## 출처
**SMP**
:
**SMP4**
:
**SMPE**
:
**SMPEREF**
:

## 외부 링크
* SMP/E를 사용한 시스템 설치 및 유지보수

분류:IBM 소프트웨어
분류:패키지 관리 시스템
분류:소프트웨어 유지 보수
분류:IBM 메인프레임 운영체제