멀티바인딩 룰 에디터

본 절에서는 멀티바인딩 룰을 설정하는 에디터의 사용법에 대해서 설명한다.

1. 멀티바인딩 룰

멀티바인딩은 동적으로 서비스 내부적인 라우팅을 담당하는 것을 말하는 것으로, 라우팅을 담당하는 부분을 멀티바인딩 라우터라 말하며 서로 다른 서비스를 하나의 서비스로 묶어 내부의 라우팅을 실제로 담당시킬 수 있는 멀티바인딩 룰로 구성된다.

멀티바인딩 룰은 여러 개의 서비스를 하나로 묶어 조건에 따라 실행 도중 조건에 따라 플로우의 수행 순서를 분기하거나 여러 개의 서비스를 한꺼번에 호출하는 멀티캐스팅 기능을 제공한다.

멀티바인딩은 서비스의 메시지 이벤트(Receive), 어댑터의 아웃바운드 룰, 멀티바인딩 룰, 내부 서비스등을 모두 그루핑하는 것이 가능하며 스스로도 하나의 서비스로 간주되는 '룰’이므로 어댑터의 파싱 룰에 의해 플로우 내부에서 즉시 멀티바인딩 룰로 호출될 수도 있다.

여러 서비스로 분기하는 것은 서비스 플로우 액티비티의 "게이트 액티비티"에서 사용하는 Split 개념과 유사하며 여러 액티비티를 한 번에 호출하는 멀티캐스팅은 서비스 플로우와 메시지 이벤트들 간의 코릴레이션을 수행한다고 보면 된다.

  1. 멀티바인딩 룰에 대한 더욱 자세한 설명은 AnyLink 런타임 엔진 서버 안내서를 참고한다.

  2. 플로우 에디터에서 멀티바인딩을 사용하기 위해서는 반드시 먼저 다음과 같이 멀티바인딩 룰을 생성한 후 플로우 에디터에서 관련 내용을 입력해야만 한다. 플로우 에디터를 사용하는 방법은 서비스 플로우 에디터를 참고한다.

2. 멀티바인딩 룰 생성

멀티바인딩 룰 생성은 왼쪽 프로젝트 네비게이터의 컨텍스트 메뉴에서 [새로만들기] > [멀티바인딩]을 선택한다. 멀티바인딩 생성 화면에서 각 항목을 설정하고 [Finish] 버튼을 클릭한다.

figure multibinding multibinding create
멀티바인딩 룰 생성 화면
항목 설명

멀티바인딩 아이디

멀티바인딩의 아이디를 입력한다.

영어, 숫자, 특수문자(_)만 입력이 가능하며 첫 글자는 영어로 입력한다.

멀티바인딩 이름

멀티바인딩의 이름을 입력한다.

한글, 영어, 숫자, 특수문자 입력이 가능하다. 멀티바인딩 이름은 XML Naming Convention을 따른다.

3. 멀티바인딩 설정

멀티바인딩 에디터에서 멀티바인딩 룰에 필요한 정보를 작성한다.

  • 기본 정보

    figure multibinding info
    멀티바인딩 - 기본 정보
    항목 설명

    멀티바인딩 ID

    리소스 아이디로 작성한 아이디이다. 수정은 불가능하다.

    멀티바인딩 이름

    멀티바인딩의 이름을 입력한다.

    멀티바인딩의 이름은 중복을 허용하지 않으므로 다른 멀티바인딩의 이름과 겹치지 않도록 유의하도록 한다.

    설명

    멀티바인딩에 대한 설명을 기술한다. 각 멀티바인딩을 구별하기 쉽게 도와주므로 보다 상세하게 설정할 것을 권장한다.

  • 요청/응답/업무 오류 메시지 설정

    [추가] 버튼을 클릭하여 메시지 선택 다이얼로그에서 메시지를 추가하거나 [제거] 버튼을 클릭하여 추가한 메시지를 삭제할 수 있다.

    figure multibinding message
    멀티바인딩 - 요청 메시지
    항목 설명

    요청 메시지

    멀티바인딩 룰에 입력으로 들어오는 메시지의 형식을 지정한다.

    응답 메시지

    멀티바인딩 결과를 메시지로 따로 출력할 때 성공적으로 작업을 마친 경우 보낼 메시지의 형식을 지정한다.

    업무 오류 응답 메시지

    멀티바인딩 결과를 메시지로 따로 출력할 때 작업 도중 오류가 발생한 경우 보낼 메시지의 형식을 지정한다.

  • 바인딩 설정

    바인딩에 요구되는 각종 요소들을 설명한다. 자세한 내용은 매핑 설정을 참고한다.

    figure multibinding binding setting
    멀티바인딩 - 바인딩 설정
    항목 설명

    선택 옵션

    멀티바인딩에 사용할 라우팅 메소드 방법을 설정한다.

    • Value : 선택 옵션 추가 정보에서 설정한 표현식의 결과값에 따라 라우팅을 수행한다.

    • RoundRobin : 각 서비스를 순차적으로 라우팅한다.

    • WeightBased : RoundRobin과 같으나 서비스의 가중치를 고려해 라우팅한다.

    • Multicast : 등록된 모든 서비스/메시지에 메시지를 전달한다. One-way 방식의 서비스에서만 사용할 수 있다.

    • TimeRange : 지정한 시간대에 서비스를 호출시킨다.

    • Flow Correlation : 서비스 플로우의 코릴레이션. 가장 먼저 값이 일치하는 서비스 항목으로 라우팅한다. 서비스 항목은 코릴레이션을 지원하는 서비스 플로우 메시지 이벤트여야 한다.

    • Handler : 사용자가 정의한 핸들러를 이용하여 라우팅 방법을 결정한다. 선택 옵션 추가 정보에 사용할 핸들러의 이름을 적어야 한다.

    선택 옵션에서 타입을 변경하면 매핑 목록에 입력한 내용이 모두 삭제되므로 주의한다.

    선택 옵션 추가 정보

    '선택 옵션' 항목에서 선택한 라우팅 메소드 방법에 추가적으로 요구되는 항목을 적는다. Value, Handler에서만 사용되며 나머지의 경우는 적지 않는다.

    • Value : 값을 판단할 표현식의 이름을 적는다. 여기서 정의한 표현식에 따라 어느 서비스로 라우팅할지 결정된다.

    • Handler : 라우팅할 대상을 결정하는 핸들러의 클래스의 이름을 적는다.

    매핑 목록

    라우팅의 조건에 따라 라우팅할 서비스를 선택하고, 멀티바인딩의 메시지들과 서비스의 메시지들을 서로 매핑한다.

4. 매핑 설정

본 절에서는 [바인딩 설정] > [매핑 목록]에서 메시지들을 매핑하는 방법을 설명한다.

4.1. 매핑 추가/삭제

매핑은 하단의 [추가][삭제] 버튼을 클릭하면 설정할 수 있다. [추가] 버튼을 클릭하면 매핑 목록에 다음 그림과 같이 공백인 줄이 생성되며 각 필드를 클릭하여 데이터를 설정할 수 있다. 생성된 매핑의 제거는 [삭제] 버튼을 클릭한다.

figure multibinding multibinding add mapping
매핑 추가/삭제 화면

다음은 매핑 값을 설정하는 항목에 대한 설명이다.

항목 설명

[바인딩 설정] > [선택 옵션]에서 선택한 라우팅의 조건을 적는다.

예를 들어 Value로 설정된 경우 입력한 값과 일치한 값이 입력으로 들어올 때 설정한 서비스로 라우팅된다.

이름

라우팅할 서비스의 이름을 표기한다.

사용자가 편집할 수 없고 '아이디' 항목으로 서비스가 설정된 경우 해당 서비스의 이름을 표기한다.

ID

라우팅할 서비스의 ID를 표기한다.

'아이디' 항목을 클릭하면 [찾기] 버튼이 나타난다. 해당 버튼을 클릭하면 리소스 검색 화면에서 원하는 서비스를 찾아 등록할 수 있다.

타입

라우팅할 서비스의 타입을 표기한다.

사용자가 편집할 수 없고 '아이디' 항목으로 서비스가 설정된 경우 해당 서비스의 타입을 표기한다.

요청 매핑

멀티바인딩 룰로 입력으로 들어오는 메시지와 라우팅되는 서비스의 입력 메시지를 매핑하는 방법을 설정한다.

컬럼을 클릭하면 [찾기] 버튼과 [추가] 버튼이 나타난다.

  • [찾기] 버튼 : 이미 설정된 매핑 파일을 리소스 검색 화면을 통해 찾아 매핑하는 방법을 설정한다. 이미 매핑이 정의된 경우 유용하다.

  • [추가] 버튼 : 매핑 화면을 통해 메시지들을 서로 매핑한다.

응답 매핑

라우팅된 서비스의 정상 응답 메시지를 멀티바인딩 정상 응답 메시지와 매핑하는 방법을 설정한다.

컬럼을 클릭하면 [찾기] 버튼과 [추가] 버튼이 나타난다. 기능 설명은 '요청 매핑' 항목의 설명을 참고한다.

장애응답 매핑

라우팅된 서비스의 업무오류 응답 메시지를 멀티바인딩 업무오류 응답 메시지와 매핑하는 방법을 설정한다.

컬럼을 클릭하면 [찾기] 버튼과 [추가] 버튼이 나타난다. 기능 설명은 '요청 매핑' 항목의 설명을 참고한다.