소개

본 장에서는 AnyLink 서버에 대한 기본 기능과 구성에 대하여 설명한다.

1. 개요

AnyLink는 크게 두 개의 서로 다른 역할을 하는 서버들로 구성된다.

  • 런타임 엔진 서버(RTE, Runtime Engine Server)

    서비스 플로우 엔진, 어댑터, 멀티바인딩 라우터 등 내부 컴포넌트로 구성되어 있으며, 실제 서비스를 구현하는 서버이다.

    업무 요청을 처리하는 AnyLink 런타임 엔진 서버는 다음과 같은 컴포넌트들로 구성되어 있다.

    • 서비스 플로우 엔진(Service Flow Engine)

      요청을 처리하는 일련의 흐름을 정의하는 서비스 플로우를 실행시키는 엔진이다.

    • 어댑터(Adapter)

      다양한 프로토콜과 애플리케이션 등을 연계하여 내부적으로 표준화된 규격으로 변환해주는 컴포넌트이다. 어댑터에 대해서는 별도의 안내서에서 자세히 다룬다.

    • 멀티바인딩 라우터(Multi-binding Router)

      서비스 컴포넌트 내부적인 라우팅이 실행 시점에 동적으로 이루어질 수 있는 컴포넌트간 라우팅 기능을 담당하는 컴포넌트이다.

  • 데이터 통합 서버(DIS, Data Integration Server)

    배포 리소스 및 환경 설정 정보를 관리하는 서버이다. DIS는 런타임 엔진 서버로 전달되는 리소스들을 관리하고 소스 코드를 생성하거나 컴파일하는 역할을 수행한다. WebAdmin과 통합 스튜디오에 정보를 제공하는 서버이다.

2. 주요 기능

AnyLink는 서로 다른 시스템들 간의 연계 혹은 연동을 담당하거나 다양한 클라이언트에 대한 대외 서비스를 제공하는 역할을 한다.

AnyLink는 연계 오버헤드를 최소화해서 I/O 처리를 빠르게 처리하고 작업 대기 시간을 최소화한다. 또한 여러 서비스들의 흐름을 조율(orchestrate)하는 기능과 다양한 형태의 서버와 클라이언트의 요청과 응답을 처리하기 위해 프로토콜 및 애플리케이션 어댑터 기능이 있다.

figure external system interface
AnyLink와 타 시스템 연계 구성도

AnyLink는 대내 연계를 하거나 내부 시스템의 세부 구조를 감추는 대외 통합 인터페이스 계층의 역할을 한다.

figure internal external integration
대외 연계 형태

다음은 AnyLink가 하는 계층역할에 대한 자세한 설명이다.

  • 서비스 오케스트레이션

    AnyLink는 전체 엔터프라이즈 시스템 아키텍처에서 제어를 담당하는 노드의 역할을 한다. AnyLink는 입출력과 이벤트 등을 처리하는 제어 노드로서 각 업무 처리 노드들과의 오케스트레이션을 담당한다.

    figure enterprise system arch
    엔터프라이즈 시스템 아키텍처에서 AnyLink 역할
  • Proxy 서비스

    • Wrapper 서비스

    • Composite 서비스

      figure proxy composite service
      Proxy 서비스 형태
  • 연계 서비스

    figure hub spoke
    내부 연계 - Hub & Spoke 형태
  • 자체 구현 서비스

    • 연계 및 업무 로직이 결합된 형태

3. 서버 구성

AnyLink는 크게 실행 환경과 개발 및 배포 환경 두 가지 형태로 구분해볼 수 있다. 실행 환경은 AnyLink 런타임 엔진 서버들과 연계 대상 시스템들로 구성되며, 연계 대상 시스템들의 구성과 형태에 따라 몇 가지 형태를 갖는다.

개발 및 배포 환경은 배포를 담당하는 서버인 데이터 통합 서버와 실행 서버인 런타임 엔진 서버 그리고 각종 룰과 환경 정보를 작성하는 클라이언트인 스튜디오와 WebAdmin으로 구성된다.

figure dev and deploy servers
AnyLink 개발 및 배포 구성 형태

AnyLink는 개발 및 배포 서버인 데이터 통합 서버(DIS)와 운영 서버(RTE)를 분리하여, 실제로 운영을 하는 경우에는 배포 서버인 DIS의 기동 여부와 상관없이 RTE 서버가 서비스를 정상적으로 실행되도록 설계되어 있다.

개발 및 배포를 담당하는 DIS는 업무 개발을 위한 통합 스튜디오와 운영 및 모니터링을 위한 WebAdmin에서 요청하는 각 명령들을 처리하는 역할을 한다. DIS는 스튜디오로부터 전달받은 개발 리소스들을 런타임 엔진 서버로 배포하고 이력 관리를 한다. DIS는 개발 리소스를 관리하고 로그 통계 등 모니터링 정보를 제공하기 위하여 RDBMS를 필요로 한다.