경량 자바 클라이언트 기반 모듈형 워크플로 엔진
본 논문은 관리 권한 없이도 설치 가능한 경량 자바 클라이언트를 이용해, 단일 서버 포트와 HTTP 기반 통신만으로 분산 서비스와 워크플로우를 자동화하는 엔진을 제안한다. 데이터베이스와 서블릿 컨테이너를 중심으로 작업 정의·배포·수집을 수행하며, 기계공학 분야의 유한요소 해석 사례를 통해 실용성을 입증한다.
저자: R.-M. Vetter, W. Lennartz, J.-V. Peetz
본 논문은 관리 권한이 없는 일반 PC를 워크플로우 엔진의 워커 노드로 전환할 수 있는 경량 자바 클라이언트‑서버 프레임워크를 제안한다. 클라이언트는 자바 런타임과 JAR 파일만 있으면 별도 설치 없이 실행 가능하며, 서버와의 통신은 오직 하나의 열려 있는 포트와 HTTP 프로토콜을 이용한다. 서버 측은 Apache Tomcat 기반 서블릿 컨테이너와 관계형 데이터베이스를 활용해 작업 정의, 파라미터, 상태를 중앙에서 관리한다.
워크플로우는 `Task` 단위로 정의되며, 각 `Task`는 여러 `Job`으로 구성된다. `Job`은 다운로드, 애플리케이션 실행, 결과 파싱, 업로드 등으로 세분화되고, 각각 별도 데이터베이스 테이블에 파라미터가 저장된다. 클라이언트는 주기적으로 서버에 자신의 논리명을 포함한 GET 요청을 보내고, 서버는 해당 클라이언트에 할당된 `Task`를 XML 형태로 반환한다. 반환된 XML에는 작업 순서와 각 작업에 필요한 파라미터가 명시되어 있다.
클라이언트는 반환된 XML을 파싱해 `Job` 객체를 생성하고, `Job` 클래스의 서브클래스로 구현된 래퍼를 통해 실제 애플리케이션을 실행한다. 래퍼는 파라미터를 이용해 쉘 스크립트를 동적으로 생성하고, Java Native Interface(JNI)를 사용해 스크립트를 실행한다. 스크립트 내에서는 `Aliases` 서블릿에서 제공하는 별칭 매핑을 통해 OS·플랫폼·노드별 경로를 자동 교체한다. 예를 들어 `JAVA` 별칭은 각 노드에 설치된 JDK 경로로, `ANSYS` 별칭은 ANSYS 실행 파일 경로로 치환된다.
데이터 전송은 HTTP 기반으로 이루어지며, 다운로드 시 파일 길이·타임스탬프·MD5 해시를 검증해 무결성을 확보한다. 동일 파일은 로컬 캐시를 활용해 중복 다운로드를 방지한다. 업로드는 HTTP POST 폼이나 SOAP with attachment 방식을 사용해 서버의 파일 시스템에 직접 저장한다. 서버는 업로드된 파일을 즉시 다른 클라이언트가 접근할 수 있도록 웹 서버 디렉터리에 배치한다.
작업 상태는 `Tasks` 테이블에 `waiting`, `active`, `finished` 등으로 기록되며, 서버는 가장 낮은 ID와 `waiting` 상태인 작업을 우선 할당한다. 할당 시 `UPDATE` 구문으로 상태를 `active`로 전환하고, 클라이언트 이름을 기록해 동시 접근을 방지한다. 작업이 완료되면 클라이언트는 결과 파일을 업로드하고, 서버는 `Upload` 테이블에 메타데이터를 저장한다. `TasksWorkingDir` 테이블을 통해 각 작업에 전용 작업 디렉터리를 지정하고, `EraseOnExit` 플래그로 작업 종료 시 디렉터리를 자동 삭제할 수 있다.
시스템은 파일 서버나 분산 파일 시스템과 연계하면 전송 효율을 크게 향상시킬 수 있다. 또한 `Timeout` 파라미터를 통해 비정상적인 장시간 실행을 자동 중단한다. 그러나 현재 설계는 단일 서버 포트와 중앙 데이터베이스에 의존하므로 대규모 클러스터에서는 병목이 발생할 수 있다. 보안 측면에서도 인증·암호화가 최소화돼 민감 데이터 처리에 제한이 있다. 작업 스케줄링은 FIFO 기반이며, 자원 사용량 기반의 동적 로드 밸런싱은 제공되지 않는다.
실제 적용 사례로는 기계공학 분야의 유한요소 해석 워크플로우가 제시된다. 입력 파일(데크)을 서버의 `models/` 디렉터리에 보관하고, 클라이언트는 이를 다운로드해 ANSYS 시뮬레이션을 실행한다. 시뮬레이션 결과를 파싱하는 스크립트를 실행해 모드와 고유 진동수 파일을 생성하고, 이를 서버의 `results/` 디렉터리로 업로드한다. 이러한 일련의 작업이 `Task`와 `Job` 테이블에 정의되어 자동으로 진행된다.
결론적으로, 이 프레임워크는 관리 권한이 없는 이기종 환경에서도 레거시 애플리케이션을 손쉽게 서비스화하고, 워크플로우 자동화를 구현할 수 있는 실용적인 솔루션을 제공한다. 향후 연구에서는 보안 강화, 다중 서버 아키텍처, 자원 기반 스케줄링 등을 통해 확장성을 높이는 방안을 모색할 필요가 있다.
원본 논문
고화질 논문을 불러오는 중입니다...
댓글 및 학술 토론
Loading comments...
의견 남기기