(OutSystems) 로우 코드도 괜찮습니다. BATCH 처리 !! vol.1

배경



로우 코드 플랫폼 「OutSystems」를 사내에 도입·개발 서포트하고 있다.
Java나 Python도 즐겁지만, 앞으로의 시대는 로우 코드!!

도전



OutSystems는 WEB는 좋지만 BATCH가구나… 본고에서는, OutSystems로 BATCH 처리를 실현하는데 있어서의 궁리 포인트를 소개한다.

가정
· 수천 ~ 수백만 레코드 단위 처리
· 스케줄러는 OutSystems와는 다른 (Zabbix, Windows 작업 스케줄러, JP1 등)

포인트
① BATCH 아키텍처
※정시 기동, 상시 실행, 온 디맨드의 타입이 있지만, 본고에서는 "정시 기동"에 대해서 적는다
② 타임 아웃 대응
③ 커밋 제어
④ 응답 개선
 a) TextDitionary를 활용
 b) 코어 부분만 외부를 활용 (Extention, PL/SQL, Powershell)

대응



이번에는 이하에 대해 기술한다.
① BATCH 아키텍처
※ 정시 기동, 상시 실행, 온 디맨드의 타입이 있지만, 본고에서는 "정시 기동"에 대해 적는다

목적



OutSystems에서 BATCH를 실현하는데 있어서의 일례를 소개해, 로우 코드에 대한 우려를 부드럽게, 보다 보급시키고 싶다.

내용



특별 고민할 필요도 없지만, 이하 구성이 간단.


Powershell은 try-chatch에서 REST API를 호출하여 반환 값을 결정합니다. 이상 종료의 경우는 Excetpion을 슬로우.


REST API는 정상시와 이상시의 제어에만 집중하고, 업무 처리는 Server Action으로 기술한다.
BATCH의 이상 처리시는 Exception를 슬로우 해 트랜잭션을 롤백시킨다.
↓는 REST API상의 구현 예


BATCH의 결과를 감시하고 싶은 경우는, Powershell로 로그를 출력하는지(텍스트 감시), OSP상에서 에러 로그 출력해, DB 감시한다.

OutSystemsCloud를 이용하고 있는 경우는 Powershell 실행용의 온프레 서버를 준비한다.
온프레만의 경우는 OSP를 도입하고 있는 서버에 Powershell을 배치하는 것이 좋다.


결과 or 깨달은 점



OutSystems로 정시 기동의 BATCH를 실현하는 경우는, 대체로 이런 구성이 되는 것은 아닐까.

결론



이번에는 궁리 포인트를 소개하기 위한 전제가 되는 아키텍처를 공유했다.
다음 번부터 내용의 이야기.

좋은 웹페이지 즐겨찾기