연결 사용 방법 및 단계

업데이트 날짜: 2015년 7월

BizTalk 서비스에서는 통과 연결 및 XML 연결의 두 가지 연결 유형이 제공되며 XML 연결에는 XML 단방향 연결 및 XML 요청-응답 연결이 포함됩니다. 이 섹션에서는 이러한 연결의 사용 방법과 단계에 대해 설명합니다.

XML 연결을 사용하면 XML 메시지를 교환하여 통신하는 둘 이상의 개별 시스템 간의 불일치 사항을 중재 및 연결할 수 있습니다. XML 연결은 메시지 흐름의 다른 서비스 버스 엔터티와 함께 다음과 같은 여러 중재 패러다임과 시나리오를 제공합니다.

  • 메시지 유효성 검사: XML 연결은 XSD 스키마와 대조하여 들어오는 XML 메시지의 유효성을 검사할 수 있도록 지원합니다. 유효성 검사에 실패하는 메시지는 거부됩니다.

  • 메시지 보강 및 추출: XML 연결에서는 다른 데이터 원본에서 데이터를 조회하여 메시지를 보강할 수 있도록 지원합니다. 대개 구성 저장소, 외부 서비스 등에서 제공되는 메시지 범위 외부의 상황별 데이터가 메시지에 필요할 수 있는 상황에서 이 기능이 유용합니다.

    또한 XML 연결에서는 XML 메시지에서 속성을 추출하여 라우팅에 사용할 수도 있습니다. 예를 들어 구매 주문 메시지에서 수량 요소를 표시한 다음 주문 수량 값에 따라 메시지를 라우팅할 수 있습니다.

  • 메시지 변환: XML 연결에서는 메시지 본문의 XML 구조 변환이 지원됩니다. 이러한 XML 연결 기능을 사용하면 여러 메시지를 단일 메시지로 매핑하는 경우에 메시지를 '정규화'할 수도 있습니다. 연결이 여러 고객으로부터 각기 다른 스키마로 작성된 구매 주문을 수락한 다음 조직에 필요한 구매 주문 스키마 하나로 변환하는 경우를 예로 들 수 있습니다.

  • 위치 가상화: XML 연결에서는 백 엔드 서비스의 기본 위치 가상화 기능을 제공합니다. 클라이언트는 클라우드 또는 온-프레미스에 있을 수 있는 실제 서비스가 아닌 클라우드에 표시되는 XML 연결 끝점으로 표시됩니다. 그러면 연결이 라우팅 규칙에 따라 메시지를 백 엔드 서비스로 라우팅합니다.

  • 사용자 지정 처리: 연결은 기본 제공 연결 구성에 포함되어 있지 않은 처리 작업을 통합하기 위해 사용자 지정 코드를 포함하는 옵션을 제공합니다.

이 섹션에서는 XML 연결의 각 단계에 대해 설명합니다. 각 단계는 필요한 경우 수행하면 되며 설정 또는 해제할 수 있습니다.

XML 연결의 첫 단계는 유효성 검사 단계입니다. 이 단계에서는 지정된 스키마와 대조하여 XML 메시지의 XSD 유효성을 검사할 수 있습니다. 유효성 검사에 사용할 스키마는 연결 구성 중에 지정합니다. XML 연결 하나가 여러 스키마로 작성된 XML 메시지를 받아서 처리할 수 있습니다. 유효성 검사 단계에서는 들어오는 메시지에 따라 해당하는 스키마를 선택하여 유효성 검사에 사용합니다. 스키마와 대조하여 메시지 유효성을 검사한 후 유효성 검사 단계에서는 메시지의 X_PIPELINE_MESSAGETYPE 속성을 승격합니다. 이 속성의 값은 http://IntegrationServices.Schema#RootNode와 같이 스키마의 대상 네임스페이스와 루트 노드 이름이 결합된 것입니다. 일치하는 스키마를 찾을 수 없거나, 둘 이상의 스키마가 일치하는 등 일치 상태가 모호하여 메시지 유효성 검사가 실패하면 예외가 throw됩니다.

유효성 검사 단계를 구성하는 방법에 대한 지침은 XML 단방향 브리지 만들기 또는 XML 요청-응답 연결 만들기을 참조하세요.

보강 단계에서는 속성을 만들어 메시지를 보강할 수 있습니다. 속성의 값은 들어오는 메시지 헤더, 시스템 승격 속성, 들어오는 메시지 본문의 요소/특성에서 파생될 수도 있고 Microsoft Azure SQL 데이터베이스 테이블 등의 외부 데이터 원본에서 조회할 수도 있습니다. 이러한 속성을 사용하여 대상 끝점으로 메시지를 라우팅하고 프로토콜 브리징을 수행할 수 있습니다.

 

작업 설명

속성에 헤더 할당

이 작업에서는 메시지 헤더의 값을 속성에 할당할 수 있습니다. 예를 들어 SOAP 헤더에서 작업을 추출하여 속성에 할당한 다음 추가 처리 및/또는 라우팅용으로 해당 속성을 사용할 수 있습니다. 연결로 메시지를 보내는 데 사용되는 메시지 프로토콜을 기준으로 속성을 사용할 수 있습니다. 지원되는 프로토콜은 HTTP, SOAP, FTP, SFTP입니다. 이러한 프로토콜에 사용할 수 있는 속성은 다음과 같습니다.

  • SOAP

    • Action

    • MessageId

    • ReplyTo

    • 받는 사람

    • 사용자 지정 SOAP 헤더

  • HTTP – 표준 HTTP 헤더

  • FTP/SFTP

    • FileName

    • ServerAddress

    • 폴더

속성에 헤더 할당을 구성하는 방법에 대한 지침은 Create an XML Bridge 또는 XML Request-Reply Bridge : Configuring the Enrich Stage for the Response Message을 참조하세요.

시스템 표시 속성 사용

기본적으로 BizTalk 서비스에서는 연결이 처리하는 메시지의 일부 속성을 승격합니다. 이러한 속성을 시스템 승격 속성이라고도 합니다. 이러한 속성의 값은 라우팅 대상 결정 등의 여러 처리 작업에도 사용할 수 있습니다. 사용 가능한 시스템 승격 속성은 다음과 같습니다.

  • RequestId - 메시지에 할당되는 고유한 요청 ID입니다.

  • MessageReceivedTime - 연결 끝점에서 메시지가 수신된 시간을 나타내는 타임스탬프입니다.

  • SourceName - 연결이 메시지를 수신하는 원본의 이름(연결 구성 화면에서 정의함)입니다.

  • SourceType - 연결이 메시지를 수신하는 원본의 유형(연결 구성 화면에서 정의함)입니다.

시스템 승격 속성을 사용하는 방법에 대한 지침은 Create an XML Bridge 또는 XML Request-Reply Bridge : Configuring the Enrich Stage for the Response Message을 참조하세요.

추출

보강 단계의 추출 작업을 사용하여 메시지 라우팅 또는 추가 처리 중에 사용할 메시지 본문 자체의 특성이나 특정 요소의 값을 추출합니다.

추출 작업을 구성하는 방법에 대한 지침은 Create an XML Bridge 또는 XML Request-Reply Bridge : Configuring the Enrich Stage for the Response Message을 참조하세요.

조회

보강 단계의 조회 작업을 사용하여 메시지 범위 외부의 원본에서 데이터를 조회 및 포함하여 메시지를 보강합니다. 온라인 쇼핑몰에서 사용자는 현지 통화를 사용하여 주문을 할 수 있도록 하고 주문 처리용 백 엔드 서비스에서는 모든 주문 처리에 달러 등의 단일 통화를 사용하는 경우를 예로 들어 보겠습니다. 이러한 경우에는 메시지를 백 엔드 서비스로 보내기 전에 주문의 값을 현지 통화에서 달러로 변환해야 합니다. 최신 환율을 제공하는 다른 서비스를 조회하여 이 작업을 수행할 수 있습니다.

이번 릴리스의 경우 보강 단계에서 Microsoft Azure SQL 데이터베이스에서 데이터를 조회하는 방식만 지원됩니다. 즉, 현재 릴리스에서 지원되는 조회 '공급자'는 Microsoft Azure SQL 데이터베이스뿐입니다. 조회 공급자에 대한 정보는 BizTalk Services 프로젝트에 추가되는 LookupProviderConfigurations.xml에 저장됩니다. .xml 파일 하나에서 여러 공급자를 정의할 수 있으므로 단일 보강 단계에서 여러 Microsoft Azure SQL 데이터베이스 데이터 원본을 조회할 수 있습니다. LookupProviderConfigurations.xml 파일의 일반적인 공급자 정의는 다음과 같습니다.

<ArrayOfLookupProviderConfiguration xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.microsoft.com/WindowsAzureServiceBus/Bridge">
  <LookupProviderConfiguration i:type="SqlTableLookupProviderConfiguration">
    <ProviderName>...</ProviderName>
    <ConnectionString>...</ConnectionString>
    <QueryInColumnName>...</QueryInColumnName>
    <QueryOutColumnName>...</QueryOutColumnName>
    <TableName>...</TableName>
  </LookupProviderConfiguration>
</ArrayOfLookupProviderConfiguration>

위에 발췌되어 있는 코드에서는 LookupProviderConfiguration 요소의 type 특성이 SqlTableLookupProviderConfiguration으로 고정됩니다. 현재 Microsoft Azure SQL 데이터베이스에서는 테이블만 조회할 수 있기 때문입니다.

또한 Microsoft Azure SQL 데이터베이스에서 데이터를 조회할 때는 다음의 몇 가지 사항을 고려해야 합니다.

  • Microsoft Azure SQL 데이터베이스 테이블만 조회할 수 있습니다.

  • 조회는 키-값 쌍을 사용하여 수행해야 합니다.

  • 조회에서는 값이 하나만 반환되어야 하며, 이 값이 메시지의 속성에 할당됩니다. 조회에서 값이 두 개 이상 반환되면 그 중 첫 번째 값이 속성에 할당됩니다.

  • 여러 데이터 원본에서 값을 조회할 수 있습니다. 즉, 둘 이상의 Microsoft Azure SQL 데이터베이스 테이블이나 Microsoft Azure SQL 데이터베이스에서 조회를 할 수 있습니다.

조회 작업을 구성하는 방법에 대한 지침은 Create an XML Bridge 또는 XML Request-Reply Bridge : Configuring the Enrich Stage for the Response Message을 참조하세요.

공급자에 대한 정보는 LookupProviderConfigurations.xml에 저장되고 헤더에서 메시지 속성에 할당할 값, 추출할 값, 조회할 값에 대한 정보는 연결 구성 파일에 저장됩니다. BizTalk Services 프로젝트를 빌드할 때는 LookupProviderConfigurations.xml도 연결 구성 파일에 롤업됩니다. BizTalk Services 프로젝트를 배포하면 이 연결 구성 파일이 서비스 버스에 배포됩니다.

보강 단계에서는 속성을 만든 다음 해당 속성에 값을 할당합니다. 이 섹션에서는 이러한 속성을 사용하여 수행할 수 있는 작업과 속성을 통해 작업을 보다 쉽게 수행하는 방법을 설명합니다. 속성은 다음의 두 가지 방식으로 사용할 수 있습니다.

  • 속성을 사용하여 각기 다른 대상으로 메시지를 라우팅하는 필터 조건을 설정할 수 있습니다. 이 작업을 수행하는 방법에 대한 지침은 The Routing Condition을 참조하십시오.

  • 속성을 사용하여 메시지 보낸 사람과 메시지 받는 사람 간의 프로토콜 불일치 상황을 해결할 수 있습니다. 예를 들어 들어오는 SOAP 메시지에 사용자 지정 헤더 값이 포함되어 있는데, 메시지 받는 사람이 SOAP 메시지 형식을 이해하지 못해 REST 메시지를 받고자 하여 HTTP 메시지의 사용자 지정 헤더로 이 값을 전달하려는 경우 속성을 사용하면 이 작업을 수행할 수 있습니다. 먼저 들어오는 메시지 헤더에서 P1 등의 속성으로 값을 할당한 다음 받는 사람에게 메시지를 보낸 동안 P1의 값을 나가는 메시지의 메시지 헤더에 할당하면 됩니다. 자세한 내용은 경로 및 회신 동작: 브리징 프로토콜 불일치를 참조하세요.

연결 구성 내에서 보강 단계의 일부분으로 정의하는 속성은 연결 구성의 각 단계에서 진행되는 메시지 흐름 전체에 걸쳐 사용할 수 있습니다. 다시 말해서 보강 단계에서 정의한 속성은 변환 단계와 매핑 작업에서도 사용할 수 있습니다. 또한 보강 단계에서 정의한 속성을 연결 구성 범위 외부에서 사용할 수도 있습니다. 단, 이 경우에는 몇 가지 사항을 고려해야 합니다. 이러한 고려 사항에 대해 자세히 설명하기 전에 먼저 속성 값은 서비스 버스 BrokeredMessage 클래스의 속성으로 저장된다는 점을 이해해야 합니다. 이 점을 기억하고 연결 구성 외부의 속성 수명에 대해 살펴보겠습니다.

  • BrokeredMessage 유형 메시지는 서비스 버스 큐 또는 항목에서만 사용할 수 있으므로 속성 및 해당 값(키-값 쌍)을 큐 또는 항목이 직접 사용할 수 있습니다. 그리고 나면 항목이 추가 처리 및 라우팅 등을 위해 속성을 사용할 수 있습니다.

  • 단방향/양방향 릴레이 끝점이나 단방향/양방향 외부 서비스 끝점 등의 기타 연결 구성 구성 요소로 속성 및 해당 값을 전달할 수는 없습니다. 이러한 엔터티에 속성 값을 전달하려면 나가는 메시지의 헤더에 속성 값을 할당해야 합니다. 자세한 내용은 경로 및 회신 동작: 브리징 프로토콜 불일치를 참조하세요.

  • 특정 연결의 메시지를 다른 연결로 라우팅한 다음 최종적으로 서비스 버스 큐에 라우팅하는 등의 "체인" 시나리오에서는 체인에 포함된 마지막 연결의 속성만 추가 라우팅 및 처리용으로 사용 가능합니다. 또한 후속 연결로 속성 값을 전달하려면 나가는 메시지의 헤더에 속성 값을 할당해야 합니다. 이러한 속성은 두 번째 연결에서 추출해야 합니다.

변환 단계에서는 이름에서도 알 수 있듯이 메시지의 구조 변환을 수행하는 기능을 제공합니다. 파이프라인의 다른 단계와 마찬가지로 변환 단계에서도 여러 메시지 유형을 사용할 수 있으므로 변환 단계의 일부분으로 여러 변환을 수행할 수 있습니다. 연결을 구성할 때 해당하는 변환을 구성하여 업로드한 경우, 들어오는 메시지 유형에 따라 수행해야 하는 적절한 변환을 런타임에 자동으로 조회합니다. 들어오는 메시지의 메시지 유형을 기준으로 변환 확인이 수행됩니다.

  • 변환 단계에서는 메시지의 유형이 맵의 원본 스키마 메시지 유형과 일치하는지를 확인합니다.

  • 유효성 검사 단계가 해제되어 있으면 변환 단계에서는 들어오는 메시지가 원본 메시지 스키마와 일치하는지를 확인합니다. 확인이 완료되면 메시지의 MessageType 속성이 승격됩니다.

현재 릴리스에서는 단일 원본을 단일 대상으로 변환하는 방식만 지원됩니다. 자세한 내용은 메시지 맵 및 변환 학습 및 만들기를 참조하세요. 변환 단계를 구성하는 방법에 대한 지침은 Create an XML Bridge 또는 XML Request-Reply Bridge : Configuring the Enrich Stage for the Response Message을 참조하세요.

변환 후의 보강 단계도 변환 전의 보강 단계와 비슷합니다. 두 단계의 차이는 변환 후 보강 단계에서는 변환된 메시지를 보강할 수 있다는 것뿐입니다. 보강 단계를 구성하는 방식은 변환 전 보강 단계와 같습니다. 변환 후 보강 단계를 구성하는 방법에 대한 절차는 Create an XML Bridge 또는 XML Request-Reply Bridge : Configuring the Enrich Stage for the Response Message을 참조하세요.

note참고
변환 단계 전에 추출 또는 조회한 모든 속성은 변환된 메시지에서도 사용할 수 있습니다. 이전에 추출했거나 보강한 속성은 변환 후 보강 단계에서 수정하는 경우 덮어씊니다.

이전 섹션에서 설명한 것처럼, 유효성 검사 단계에서는 스키마와 대조한 유효성 검사가 수행되며 변환 단계에서는 변환을 통해 메시지를 변환합니다. XML 연결의 일부분으로 제공되는 아티팩트는 다음과 같습니다.

  • 스키마. 확장명이 .XSD 입니다.

  • 변환. 확장명은 .TRFM이며, 변환 단계 내에 여러 변환이 포함될 수 있습니다.

  • 어셈블리. 연결의 특정 단계에서 통합할 수 있는 사용자 지정 처리 논리가 포함됩니다.

  • 인증서. 메시지 전송을 보안하는 데 사용됩니다.

note참고
연결 구성 파일은 여러 연결에서 공유할 수 없으므로 아티팩트가 아니며 연결별로 각기 다릅니다.

BizTalk Services 응용 프로그램은 여러 연결을 포함할 수 있으며 각 연결은 여러 변환 및 스키마를 사용할 수 있습니다. 그러므로 일반적인 BizTalk 서비스 응용 프로그램은 많은 변환과 스키마를 포함합니다. 그와 동시에 각 XML 연결에 모든 변환과 스키마가 필요한 것은 아닙니다. 따라서 연결과 변환 및 스키마의 연관성을 지정하는 방법이 있어야 합니다. 연결을 구성할 때 이 연관성을 지정할 수 있습니다.

스키마 및 변환을 연결하려면 XML 단방향 브리지 만들기 또는 XML 요청-응답 연결 만들기을 참조하세요.

연결을 통해 메시지 유형을 처리하려는 경우 통과 연결을 사용합니다. 따라서 통과 연결에는 유효성 검사 또는 변환 단계가 포함되지 않습니다. 이 두 단계는 모두 메시지 유형에 연결되기 때문입니다. 통과 연결에는 보강 단계만 포함되며, 이 단계는 XML 연결에서와 같은 용도로 사용됩니다. 통과 연결을 구성하는 방법에 대한 지침은 통과 연결 만들기을 참조하십시오.

참고 항목

개념

브리지란?

표시: