본문 바로가기

ABAP 프로그래밍 개념/Architecture of SAP System

1. Introduction to the Three-Tier Architecture

SAP 시스템은 SAP R/3 시스템 도입 이후 SAP가 Three-Tier Architecture(세 계층 아키텍처)로 이동하였습니다. R/3 에서 R은 실시간 데이터 교환을 나타내며, 3은 Three-Tier Architecture(세 계층 아키텍처)를 나타냅니다.

이 Three-Tier Architecture(세 계층 아키텍처)는 클라이언트-서버(Clinet-Server) 아키텍처로 사용자 인터페이스(User Interface)인 프레젠테이션 레이어(Presentataion Layer), 비즈니스 로직(Business Logic)인 응용 프로그램 레이어(application layer), 데이터 저장(data storage)인 데이터베이스 레이어(database layer)는 일반적으로 별도의 플랫폼에서 독립적인 모듈로 개발 및 유지보수됩니다.

위 그림은 ABAP Architecture의 세 Layer를 묘사하고 있습니다. 볼 수 있듯이, Presentation Layer는 Application Layer와 의사소통하고, Application Layer는 Database Layer와 의사소통합니다. Presentation Layer는 Database Layer와 직접적으로 소통할 수 없고, 이는 클라이언트가 데이터베이스에 직접적인 접근 권한을 갖지 않아 비즈니스 로직의 보안성을 높입니다.

Two-Tier Architecture 아키텍처와 비교했을 때, Three-Tier Architecture 시스템에서 추가적인 계층(Layer) 도입은 구현에 복잡성을 더하지만, 매우 확장 가능한 시스템을 구축할 수 있도록 합니다. 또한, Three-Tier Architecture 시스템에서는 각 계층을 독립적으로 유지보수하고 업데이트할 수 있습니다. 예를 들어, 웹 서버 아키텍처에서 일반적으로 Presentataion Layer은 웹 브라우저 (Firefox, Chrome 등)로 구성되며, application layer은 웹 서버 (Apache, Internet Information Services [IIS] 등)로 구성되고, database layer은 데이터베이스 (Microsoft Sequel Server [MSSQL], MySQL 등)으로 구성됩니다.

여기서 각 계층은 독립적인 소프트웨어로 존재하며, 다른 계층에 영향을 미치지 않고 변경하거나 업데이트할 수 있습니다. 따라서 사용자는 application layer이나 database layer에서 문제가 발생하는 것을 걱정하지 않고 브라우저를 독립적으로 업데이트할 수 있습니다. 모든 사용자가 걱정해야 할 것은 브라우저가 웹 서버와 호환되는지 여부뿐입니다. 마찬가지로, 웹 서버와 데이터베이스는 다른 계층의 소프트웨어에 영향을 미치지 않고 독립적으로 업데이트하거나 교체할 수 있습니다. 이러한 독립성은 요구 사항이나 기술의 변화에 대응하여 시스템을 업데이트할 수 있는 유연성을 제공합니다.

아래는 각 계층(Layer)에 대한 설명입니다.

1) Presentation Layer
-> Presentation Layer 프레젠테이션 계층은 사용자 인터페이스(UI)로 구성되며, 표준 그래픽 사용자 인터페이스(GUI)를 사용하는 클라이언트 기계에서 실행됩니다. UI는 웹 브라우저와 같은 오픈소스 소프트웨어나 SAP GUI와 같은 저작원이 있는 소프트웨어일 수 있습니다. Presentation Layer은 요구 사항과 시스템 구성에 따라 독립적으로 개발될 수 있으므로, PC, 스마트폰 등 다양한 기기와 운영 체제 환경을 지원할 수 있습니다.

2) Application Layer
-> Application Layer는 ABAP 프로그램이 수행하는 모든 중요한 작업이 이루어지는 곳입니다. Application Layer는  Software Layer로서 다양한 비즈니스 기능 모듈을 호스팅하고 프로그램 코드를 실행하는 레이어입니다.Application Layer는 하나 이상의 Application Server와 레이어 내 통신을 책임지는 Messaging Server로 구성될 수 있습니다. Application(응용 프로그램)을 실행할 때, 실행은 Application Layer에서 이루어집니다. Application Layer는 사용자가 요청한 데이터를 처리하기 위해 데이터베이스와 통신할 수 있습니다.

3) Database Layer
-> Database Layer은 Persistent Data가 저장되는 공간입니다. Database는 전형적으로 RDBMS(relational database management system : 관계형 데이터베이스 관리 시스템)에 의해서 관리됩니다. RDBMS는 데이터 및 쿼리를 유지 관리하는 선언적 방법을 제공하며, 시스템은 데이터 저장을 위한 구조를 설명하는 작업을 처리합니다. RDBMS 모델에서는 데이터가 하나 이상의 테이블에 저장됩니다. 각 테이블은 행과 열로 구성되며, 각 행은 Unique Key(고유한 키)로 식별됩니다. 테이블은 Foreign Key(외래 키)를 사용하여 서로 관련되어 있습니다. 한 테이블의 키 필드가 다른 테이블에서 키가 아닌 필드로 존재하는 경우 두 테이블은 Foreign Key(외래 키) 관계를 가지고 있습니다. Foreign Key(외래 키)를 사용하면 데이터베이스의 서로 다른 테이블 간에 부모-자식 관계를 정의할 수 있습니다. SAP는 다양한 Database System을 지원하는데, 예시로는 SAP HANA, Oracle, MSSQL, SAP MaxDB, IBM Db2 등이 있습니다.

반응형