본문 바로가기

SAP&ABAP

SAP BC [BC 실전가이드] - 1. SAP 시스템 기본 구조

728x90

 

  • SAP ERP 제품에 대해 전반적인 관리를 맡는 역할 : BC(Basic Component) 혹은 Basis라고 한다. 
  •  SAP BC의 역할 
    • SAP 시스템 도입 시 하드웨어 ~ 시스템 구조 까지 전반적인 사항 
    • ex) 설치, 사용자 관리, 라이선스 관리, 변경사항 적용(CTS), 패치, 모니터링, 튜닝 등 
    • SAP 지식, 하드웨어, 네트워크, 운영체제, 데이터베이스 등에 대해 기본적인 소양이 있어야 함 

 

  • SAP Netweaver란 
    • WebServer나 WAS의 기능들을 제공하는 프로그램 , Apache나 Tomcat 생각하면 될 듯 

 

  • Solman; Solution Manager 
    • 시스템 설치 시 Installation Key 발행  
    • Support Package를 SAP Service Merket Place에서 내려받을 수 있도록 승인 
    • 이 외에도 다양한 기능들이 있음 
  • SAProuter 
    • Note를 자동으로 내려받아 적용할 수 있게 함 
    • Basis와 여타 모듈에서 문제 발생 시 자체적으로 해결 불가능한 경우 SAP으로부터 직접 도움을 받을 수 있는데 이 때 SAProuter를 통해 SAP에서 직접적으로 도움을 받을 수 있다. 
      • *Router :논리적, 또는 물리적으로 분리된 망 사이를 지나는 패킷의 위치에 따라 최적화된 경로(루트, route)를 지정하는 기능을 수행하는 장비 
    • SAProuter도 마찬가지로 SAP 시스템과 다른 시스템들 간의 네트워크 연결에서 Proxy역할을 한다. 
    • SAP Service Center와의 연결 등을 통제하는 기능이 있는 프로그램이라고 봐야할 듯

 

 

 

SAP 시스템의 구성 

  1. NetWeaver란 
    1. SAP의 플랫폼, 이것 저것 다 이 기반 위에 올라가서 작동함  
    2. 그냥 Web Server, WAS 등 미들웨어라고 생각하면 편할 듯 함 
    3. NetWeaver가 AS ABAP, AS Java를 포함하고 있고 2개의 서버 인스턴스가 NetWeaver에 들어있는게 dual-instance구조이다. 
      1. AS ABAP은 SAP GUI로 접근하는 요청을 처리하고 
      2. AS Java는 웹으로 접근하는 요청을 처리한다. 

 

 

  1. 3 System Landscape 
    1. DEV(개발) -> QAS(품질) -> PRD(운영) 
    2. 다른 웹 프로그래밍 구축 환경과 같이 3중 구조로 되어 있다. 
    3. Commit이라는 용어보다는 CTS(Change and Transport System)라는 용어를 사용한다. 
    4. SAP 시스템을 제외한 다른 기간계, 정보계 등 그룹웨어 시스템을 Legacy System라고 칭한다. 

 

 

 

 

  1. Client 
    1. 클라이언트-웹서버-WAS-DB 등의 웹서비스 계층 구조를 말할 때의 Client가 아니라 SAP 시스템 안 에 속하는 고유 개념임 -> 그래서인지 SAP 문서 등을 살펴보면 혼동을 막기 위해 Web Client라는 용어를 사용하는 듯? 
    2. 간단히 말해서 조직적/상업적/기술적으로 자신만의 데이터를 가지는 최소한의 관리 단위 정도로 보면 된다. 
    3. 이에 대한 속성 변경은 SCC4에서 한다. 

 

*DEV는 역할 별로 Client를 구분해 놓는 경우가 많아 Client가 많음(시스템 카피, IMG Master 등) 

 

 

- 서버 내부 구조

 

  • CI(Central Instance)와 DI(Dialog Instance) 
    • CI는 DB Instance와 Message Server, Enqueue Server 등 핵심 서비스를 포함한 시스템 
    • DI(주로 AP1, AP2 등으로 표기)와 CI의 결정적인 차이점은 Message Server와 Enqueue Server가 없다는 것 
    • Message Server로 유저가 접속하면 CI의 Message Server가 로드밸런싱을 통해 AP# 시스템으로 분산해주는 방식 
    • Enqueue Server : The enqueue server receives a lock request and checks the lock table to determine whether the lock request collides with an existing lock. 데이터 lock 상태 관리 서비스인 듯. 데이터 처리 순서 통제하는 그런 건가 봄 

 

  • SAP Work Process, SAP 시스템이 사용자 요청을 처리하는 방식 
    • 웹 브라우저를 통한 요청 -> ICM(Internet Communication Manager), 그 외 -> ABAP Dispatcher 
    • Dispatcher는 자신의 queue에 요청을 넣고 FIFO방식으로 처리 -> 자신 아래에 있는 Work Process들에 일을 넘김(Spring Framework에서 Dispatcher Servlet과 Controller들의 관계인 듯) 
    • 유닉스 계열 서버에서 ps -df | grep sap으로 PPID(parent pid)가 같은 항목들이 있는데 그것들이 work precess들이고 그 PPID가 dispatcher의 pid임. 
    • Work Process의 종류 
      • D : dialog 
      • V : update 
      • E : Enqueue 
      • B : Background 
      • S : spool 
      • G : gateway 
      • M : message server 
      • /usr/sap/<SID>/DVEBMGS00 -> 각 알파벳이 workprocess를 의미함 00은 인스턴스 번호(AP1은 01, AP2는 02로 되어 있을 거임) 
    • 포트번호 
      • ABAP Dispatcher - 32## 
      • ABAP Gateway - 33## 
      • ABAP Message Server - 36## 
      • ABAP ICM - 80## ( Web 요청을 받음 ) 
      • JAVA HTTP - 5##00 
      • JAVA Message Server HTTP - 81## 
      • JAVA P4 - 5##04 -> NetWeaver 7.1 부터 없어졌다함 
      • JAVA Telnet - 5##08 ( AS JAVA를 관리하는 툴 ) 
      • SAPinst - 21212 ( SAP 설치 프로그램 ) 
      • SAP MC HTTP - 5##13 (SAP Management Control : SAP 종료/기동 등의 작업을 하는 툴 ) 

 

 

SAP 공식 사이트에 SAP 시스템의 각 서비스의 기본 포트번호와 범위를 알 수 있도록 게시해놓았음  

  • sapstartsrv 라는 프로세스가 실행 중임 -> sapstartsrv는 SAP Start 프로그램으로 이 프로세스를 사용해 SAP을 구동시키고 종료함. (서비스명은 sapctrl)
  • 5##13, 5##14 포트를 사용한다. ##은 인스턴스 번호

 

  • 요청 처리과정 

  • 요청 in -> ABAP dispatcher가 받음 -> waiting 상태의 Work process에게 할당 -> Shared Memory영역에 있는 Roll Area의 User Context에서 사용자 권한 체크 -> 권한 있으면 처리(Screen Processer가 화면처리, ABAP Interpreter가 실제 ABAP 코드 처리) 

 

  •  보통 데이터베이스는 CI에 같이 설치되어 있어 DB접근 시 오라클의 SAP<SCHEMA-ID> (SAPSR3라는 사용자)로 접속 
  • DI에서 DB 접근 시에는 먼저 OPS$.. 사용자로 운영체제 인증을 밭아 붙고 SAPUSER 테이블에서 비밀번호 가져와서 SAP<SCHEMA-ID>로 다시 붙음 -> remote_os_authent 값을 FALSE로 하면 DI가 정상적으로 작동하지 않을 것임!! 

 

 

SAP 설치 옵션 3가지 

  1. Central System : SAP 인스턴스와 데이터베이스가 하나의 장비에 모두 설치 
  2. Distributed System : DBI(데이터베이스 인스턴스)와 CI가 분리되는 형식 
  3. HA : Failover를 할 수 있는 형태로 설치

*1번 2번은 둘 중 하나 선택이지만 3은 1,2에 추가되는 옵션이라고 보면 될 듯 

 

  • PAS는 CI의 새로운 명칭 
  • ASCS는 두 가지 역할 : Message Server , Enqueue Server 
  • ERS : HA(High Availability) 구성 시, Lock Table 정보를 노드 간에 동일하게 관리하기 위해 사용, Enqueue 서버가 하는 일을 백업하는 듯 

 

 

  • HA 구성 : PAS-AAS를 제외하고 Cluster를 구성, ERS를 이용하여 데이터 lock 관리를 동기화하여 작업의 일관성을 유지한다. AAS는 HA 구성에서 Standby 서버

 

Disk 구성 

 

  •  SYS/global - Log File 있음 
  • SYS/profile - SAP 시스템의 프로파일 위치함, 프로파일이란 파라미터들의 집합. SAP 시스템 시작 시 한 번 읽어들임. DEFAULT.PFL, Instance, Start 프로파일 (스프링에서 xml 설정 같은 건가 봄) 
  • SYS/exe - SAP 시스템의 커널이 위치한 곳(The SAP kernel is the core component of any SAP system. It consists of the executable files that run on the server to handle connections to the system and execute the SAP programs.)  
  • <INSTANCE>/work - Log 및 Trace파일 위치 
  • <INSTANCE>/j2ee - AS JAVA 관련 파일 위치 
  • <INSTNACE>/exe - 커널이 있는 곳, 시스템 시작 시 /SYS/exe 아래의 내용을 복사해 둔 곳. 

 

 

SAP System의 기타 구성 

  • NetWeaver 7.1부터는 듀얼 스택(AS ABAP과 AS JAVA가 같은 SID로 구성) 허용하지 않음 -> 2개 이상의 시스템이 하나의 데이터베이스를 공유하는 경우(MCOD : Multi Components in One Database)는 권장되지 않음. 
  • SAP 시스템이 Oracle 데이터베이스로 설치될 떄 기본 스키마(소유자)는 AS ABAP은 SAPSR3, AS JAVA의 경우 SAPSR3DB이다. 이 떄 MCOD 형태로 설치되면 SAPSR3, 4 이렇게 되어야 한다. 그러나 설치 시 기존 시스템이 살아있지 않다면 SAPSR4가 아니라 SAPSR3로 만들어 기존 시스템을 다 날려버리게 됨. 
  • 듀얼 스택이라면 SM51에서 프로세스 확인하면 J2EE 프로세스가 보일 것임 

 

 

  • 다만 Solution Manager와 PI 제품은 듀얼 스택 허용(아예 이 형태로 설치됨) 

 

 

 

 *용어 : AS = Application Server, ECC = ERP Central Component, EhP = Enhancement Package 

SAP ERP 6.06 = Enhancement Packege 6 for ERP 6.0 이라는 뜻, 제품군을 칭하는 용어가 막 다르니 그 때 그 때 찾아보면 될 듯 

 

 

728x90