NEXCORE Batch Scheduler는 웹 브라우저를 통해서 실시간으로 Batch Job들을 컨트롤하고 모니터링 할 수 있는 제품입니다.

그동안 대부분의 Batch 스케줄링 도구들은 전용 프로그램을 사용자 PC에 설치해야 했던 반면에, NEXCORE Batch Scheduler는 웹 기반의 화면을 제공함으로써 시간과 장소의 구애를 받지 않고 편리하게 Batch 작업을 관리할 수 있는 환경을 제공합니다.

또한 스케줄러의 Active-Active 방식의 이중화 운영이 가능하여, 하나의 스케줄러가 다운이 되는 상황에서도 즉각 안정적으로 작업 수행이 가능하며, 여러 시스템에서 동작되는 Batch Job들을 한 곳에서 관리할 수 있게 하여 편리성과 활용성을 극대화 하였습니다.

단순히 Shell 프로그램을 호출하는 형태뿐만 아니라, JAVA EJB POJO 형태, C 프로그램 등의 수행과 컨트롤은 물론, 파일 로딩 감시나 일정시간 대기,Dummy Job 수행, 센터컷 호출 등의 다양한 기능을 제공함으로써 기존에 운영되고 있던 Batch Job의 변경을 최소화 하고, 제품 변경에 따른 Risk를 최소화 할 수 있습니다.

또한 진행율에 따른 세부적인 컨트롤을 제공하고, /후행 설정에 따른 JobFlow까지 시각적으로 파악하고 설계 가능하도록 하여 완벽한 컨트롤을 가능하게 하였습니다.

마지막으로 다양한 일자 스케줄링 기능 및 업무 상황에 특화된 Calendar를 제공하며 이를 시뮬레이션 해 볼 수도 있어 외산 제품에 비해 적용이 편리하며, 고객 비즈니스 상황에 최적화된 환경을 제공합니다.

이처럼, NEXCORE Batch Scheduler를 도입함으로써, 외산 제품에 비해 더 적은 비용으로 더 다양한 기능과 높은 안정성을 지닌 Batch 운영 환경을 구축할 수 있습니다.

 

 다양한 요구사항에 대응

기존의 Batch Scheduler 제품들이 스케줄에 따른 프로그램의 단순한 수행이 전부였다면, NEXCORE Batch Scheduler는 고객의 비즈니스에서 도출되는 다양한 요구사항에 대응할 수 있는 준비가 되어 있습니다.

단순한 Shell 프로그램만을 호출하는 것에서 벗어나서, 다양한 형태의 Batch Job을 호출할 수 있고, NEXCORE Framework에서 제공하는 라이브러리를 통해 트랜잭션 관리까지 가능한 Batch Job을 만들 수 있고, 이렇게 논리 단위로 구분된 Batch Job은 더 세밀한 관리와 통제가 가능하여 운영 편의성을 향상시킵니다.

또한, 다양한 비즈니스 환경에 적용할 수 있도록, 영업일, 대체일, 익일, 전일과 같이 다양한 방식의 날짜 스케줄링 방식을 제공하고, Batch Job Flow의 중간 단계에서 관리자의 Confirm을 받거나, 긴급상황에서 일시적으로 Job들의 실행을 차단하는 기능들도 제공합니다.

 

 복잡한 Batch Job들의 안정적인 처리

24시간 대량의 데이터를 다루는 기업 환경에서 Batch Scheduler 역시 항상 안정적으로 동작해야 합니다. NEXCORE Batch Scheduler는 이중화된 시스템끼리 Batch Job Schedule Data를 서로 공유할 수 있도록 되어 있어서, 기존 유사 제품과 달리 Active-Standby 방식이 아닌 Active-Active 방식으로 이중화 구성이 가능하기 때문에 장애 발생 시에도 즉각적인 대응이 가능합니다.

또한, 시스템 별로 Batch Scheduler를 별도로 설치해야 할 필요 없이 다양한 시스템에서 돌아가고 있는 Batch Job을 한 곳에서 관리할 수 있도록 분산 실행 환경을 제공합니다.

 

 기업 Needs에 맞춘 편리하고 강력한 기능

여러 프로젝트 경험과 VoC 청취를 통해 고객 Needs에 맞춘 다양한 기능들을 준비했습니다. 특히, 웹 기반으로 제공되는 스케쥴러는 별도의 클라이언트 프로그램을 설치할 필요 없이 언제 어디서든 편리하게 운영이 가능하도록 도와줍니다.

또한, 논리적 선후행을 포함하는 Batch Job Flow를 시각적으로 보여주며, 해당 Job에 대한 실시간 정보 및 실행 결과 제공 기능 등은 운영인력이 쉽게 이해하고 정확하게 관리할 수 있도록 도움을 드립니다.

 

 

NEXCORE Batch Scheduler 기능 상세

NEXCORE Batch Scheduler가 제공하는 기능은 크게 개발 및 테스트 환경, 실행 환경, 운영 환경으로 나누어 볼 수 있습니다.

 

 다양한 종류의 Batch Job 지원

NEXCORE Batch Scheduler에서는 Shell Command뿐만 아니라 JAVA C 프로그램을 구동할 수도 있고, 특정 폴더에 파일이 저장되었는지를 감시하는 등의 다양한 기능 등을 제공합니다. 

 Batch Job의 다양한 컨트롤 가능

기존 제품들은 Batch Job의 상태가 성공/실패/진행의 3가지에 불과했던 반면, NEXCORE Batch Scheduler에서는 더욱 고도화된 상태 구분과 컨트롤을 제공합니다.

컨트롤을 통한 구성의 예를 도식으로 나타내보면 아래 [그림1]와 같습니다.

이러한 NEXCORE Batch Scheduler만의 특징은 담당자로 하여금 보다 세밀하고 정확하게, 원하는 대로 Batch Job들을 컨트롤 할 수 있도록 합니다.

 

 Job Flow의 논리적이고 Visual한 구성

Batch Scheduler를 도입했음에도 불구하고 선행 Job의 종료 시점을 예측할 수 없어 밤새 대기해야 했던 경험이 있으시다면 NEXCORE Batch Scheduler의 선행 Batch Job Flow 생성 기능을 사용해 보시기 바랍니다.

이 기능은 다양하고 복잡한 비즈니스 로직을 Batch Job Flow 내에서 완벽하게 반영할 수 있도록 하며, 분산 환경 아래에서 개별적으로 실행되는 여러 개의 Batch Job들을 논리적으로 구성할 수 있어서 완벽한 Batch Control이 가능하게 합니다.

Job ID를 통하여 선행 Batch Job을 구분하고, And Or 조건을 통해 여러 가지 조건을 동시에 지정할 수 있습니다. 이렇게 구성된 Job Flow는 각각의 진행 건수와 진행률이 표시되어 [그림2]처럼 쉽게 확인이 가능하고, 목록으로만 제공되는 것이 아니라 다음 [그림3]과 같이 Visual Job Flow 기능을 통해 시각적으로 확인할 수 있어서 Batch Job들의 선후행 관계 및 실행 상태들을 쉽게 모니터링 할 수 있습니다.

[그림2] Batch Job 상태 컨트롤을 통한 구성의 예


 

 다양한 Scheduling 방식 제공

고객의 다양한 비즈니스 환경에 맞출 수 있도록 동종 제품 최고 수준의 일자 Scheduling 옵션을 제공하고, 이렇게 설정된 실행 일자들을 Calendar 상에서 시뮬레이션 해 볼 수 있어 편리합니다.

① 날짜 직접 입력

- 수행 조건에 해당s되는 월과 일 각각 설정

- 스케줄러와 연동된 캘린더에서 직접 설정

② 정규 표현식 사용 가능

- ) ....02.. : 매년 2(의 모든 날)에 실행

- ) ....(0[1-6])01/....(0[7-9]|1[0-2])LD

: 매년 상반기(1~6) 1일 수행,

하반기(7~12)는 말일(LD) 수행Calendar 연산

첫 몇 일과 끝 몇 일 설정(Bn/En 형식)

- ) B1/B2/E2/E1

- ) -B1/-E1

③ 함수를 통한 주/요일 설정

- 몇 번째 주의 몇 번 째 요일 설정

) 1D1/1D2 : 첫번째 일/월요일

) W2D3/W2D4 : 두번째 주의 화/수요일

) WAD5/WAD6 : 매주 목/금요일

④ 익전일, 대체일 설정 기능

- #(A#), #(B#) 설정 가능

- 휴일인 경우 전영업일/익영업일 대체 설정 가능

- Reverse 기능을 통해 설정된 날짜 제외 실행 가능

 

 Batch Job의 안전 수행 보장 기능

중요한 Batch Job들이 잘못 수행되었을 때, 그 파급효과는 상상을 초월합니다.

NEXCORE Batch Scheduler Batch Job이 안전하게 수행될 수 있도록 다양한 기능들을 제공합니다.

Confirm 기능

Job 실행 조건 중 하나의 속성으로써, 운영자가 Confirm 버튼을 눌렀는지의 여부를 체크하여 수행하며, 해당 Job을 통해 생성되는 모든 인스턴스에 적용됩니다.

Lock(상태 잠금) 기능

Job 인스턴스의 상태를 잠그는 기능. 이를 해제할 때까지 Running 상태로 바꾸지 못하고 Wait 상태로 대기하는 기능입니다.

이 기능을 통해 긴급 상황에서 Wait하고 있는 대기상태의 Job들을 실행시키지 않도록 조치할 수 있습니다.

해당 인스턴스에만 적용되므로 다음 수행 시에는 적용되지 않습니다.

③ 병렬 제한 그룹 설정 기능

한 순간에 수 많은 Batch Job들이 동시에 실행되어 서버의 가용성을 떨어트리는 것을 방지하기 위해서 사용합니다.

시스템 사용도가 높은 특정 Batch Job들을 병렬 제한 그룹으로 설정하고, 이 그룹 내에서 동시에 수행 가능한 Batch Job들의 최대 개수를 제한할 수 있습니다.

제한 개수를 넘어가는 경우 Wait 상태로 대기하고 있다가, 제한 개수 이하로 떨어지는 경우에 실행됩니다.

Batch Job 수행 결과 통지 기능

특정 Batch Job의 수행 결과를 지정된 수신자에게 E-mail, SMS 등으로 통지할 수 있는 인터페이스를 제공합니다.

또한 Job ID의 패턴에 따라서 통지 여부와 방식을 결정할 수도 있어 편리합니다.

(, SMTP 서버와 SMS 서버는 별도 구축이 필요합니다.)

Job 이관 기능

Batch Job 개발 후에 운영 환경으로 이관하기 위해 별도의 수작업을 해야 할 필요 없이 Scheduler에서 제공하는 Job 이관 기능을 통해 개발 환경에서 설정된 정보를 운영환경으로 안전하고 간단하게 이관하여 등록할 수 있습니다.

⑥ 계정관리 기능

권한의 관리는 보안은 물론 업무의 효율성을 위해서도 매우 중요합니다.

NEXCORE Batch Scheduler에서는 다음 표와 같이 계정별로 차등화된 권한을 부여함으로써 여러 사람이 편리하면서도 안정적으로 Batch 시스템을 운영할 수 있습니다.

 

 기타 기능

그 외에 제공하는 기능들은 다음과 같습니다.

① 매개변수(Parameter) 제공

A. 개별 매개변수

- Job 등록시 설정

- 개별 Job에 적용

B. 전역 매개변수

- Batch Admin에서 설정(관리자 권한)

- 전체 Job에 동일하게 적용

C. 내장 매개변수

- 스케줄러 내부 변수

- 전체 Job에 동일하게 적용

D. 매개변수(Parameter) 함수

하나의 Batch Job을 다양하게 활용할 수 있도록 함수 기반의 매개변수를 제공하여 유연한 매개 변수 설정 기능을 제 공합니다. 또한, 이렇게 설정한 매개변수를 시뮬레이션 해 볼 수도 있도록 지원합니다.

② 통합 로그 관리 체계

프레임워크에서 제공되는 API를 통하여 단순 stdout, stderr 로그 뿐만 아닌, Batch Job이 생성하는 모든 개별 로그들을 조회하고 관리할 수 있도록 합니다.

이를 통해 Batch 로그 레벨을 실시간으로 변경할 수도 있어서 모든 시스템의 Batch 로그들을 통합 관리할 수 있는 종합적인 체계를 제공합니다.

③ 서버 원격 관리 및 모니터링 기능

Agent가 설치된 Batch Server를 원격에서 손쉽게 관리할 수 있는 기능을 제공합니다. 이 기능으로 Batch Job의 실행 및 차단을 실시간으로 설정할 수 있어, 운영상 발생할 수 있는 긴급상황에 즉각 대처할 수 있으며, 서버의 메모리 상태와 Thread 상태를 실시간으로 모니터링 할 수 있습니다.

④ 엑셀 파일을 통한 Batch Job 정보 관리

Batch Job 정보를 손쉽게 관리할 수 있도록 Job 정보에 대한 엑셀 파일을 업로드 및 다운로드 할 수 있어 편리합니다.

 

NEXCORE Batch Scheduler 주요 적용 프로젝트