본문 바로가기

카테고리 없음

[SAP] ABAP RESTful Application Programming Model[RAP]의 개념적 이해

반응형

원문 : Get to Know the ABAP RESTful Application Programming Model | SAP Tutorials

약간 개념적으로 아리까리한 부분이 있어 튜토리얼을 진행한 뒤 다시 정리해야 할 듯

1. ABAP RESTful Application Programming Model 개요

ABAP RESTful Application Programming[RAP] Model은 세 가지 주요 레이어로 구성된다.

  • Data Modeling & Behavior
    • transactional behavior(crud 행위)와 CDS(Core Data Services)라 부르는 도메인 특화 비즈니스 객체(domain-specific business objects)를 포함
  • Business Services Provisioning
    • 데이터 모델의 어떤 부분을 OData 프로토콜을 통해 서비스로 노출할지 결정함
    • 데이터 모델의 특정 측면에 초점을 맞춤
      • projection views => encapsulation과 유사
  • Service Consumption
    • 서비스가 노출한 OData를 사용하는 계층

ABAP RESTful Application Programming Model overview


2. 데이터베이스 레이어

데이터베이스 테이블은 딕셔너리 테이블(dictionary tables)에 의해 정의됨.

위 1의 3계층에 포함되지 않지만, 비즈니스 데이터모델의 기초임

 

점선 직사각형 부분에 주목

dictionary tables


3. Core Data Services(CDS) 기반 데이터 모델

핵심 데이터 모델은 CDS에 의해 정의됨.
  • CDS 계층(layer)을 사용해 데이터베이스에 영속(persist)되는 데이터를 사용하고 조작함.
    • CDS는 딕셔너리 테이블을 바로 사용하는 view임.
  • projection은 데이터 모델 필드의 부분집합(subset)임.
    • 예를 들어 UI 주석은 projection view의 일부임
  • service definition 어떤 데이터를 비즈니스 서비스로 노출할 지 결정함
    • projection을 사용하여
    • DTO와 유사함
  • service binding은 클라이언트에 서버 데이터를 연결해주는 역할을 수행함
    • ex) ajax, axios 서버의 컨트롤러

이미지의 점선 직사각형 부분에서 해당 부분을 구현한다.

CDS based data model

웹으로 비유하자면 DB Table > Model > ViewModel > Service > client-server communication client(axios) 정도가 될듯 하다.

약간 JPA의 개념과 유사한것 같다.

모델 로직은 behavior에 들어가 있을 것이다.

  • CDS Data Model -> Repository Entity
  • Data Model Projection -> Domain Object
  • Service Difinition -> DTO
  • Service Binding -> Controller

4. transactional behavior

트랜잭셔널함 > crud 로직을 포함함을 의미

  • behavior definition
    • crud 기능 인터페이스
  • behavior implementation
    • crud 기능 메써드 

이미지의 점선 직사각형 부분에서 해당 부분을 구현한다.

transactional behavior


4. enhance behavior(추가 사용자 정의 로직 개발)

  • validation(검증)
  • action(상태 변경과 같은 사이드이펙트, 비즈니스 로직과 같이 사용되는 기능)

점선 직사각형 부분에서 해당 로직을 구현한다.

validation, action 위치

 

반응형