다음을 통해 공유


파트너 오케스트레이션 직접 바인딩 포트 사용 방법

파트너 오케스트레이션 직접 바인딩 포트는 포트를 통해 오케스트레이션간 통신을 수행하는 기능을 제공합니다. 두 가지 통신 패턴, 즉 전달 파트너 오케스트레이션 직접 바인딩 및 역 파트너 오케스트레이션 직접 바인딩을 만들 수 있습니다. 이러한 두 패턴은 명시적 오케스트레이션간 통신을 제공하며, 이는 전방향 파트너 오케스트레이션 직접 바인딩을 사용하는 경우 의도한 받는 사람 오케스트레이션이 있고 역방향 파트너 오케스트레이션 직접 바인딩을 사용하는 경우 의도한 보낸 사람 오케스트레이션이 있음을 의미합니다.

다음 중 하나를 수행하여 암시적 파트너 오케스트레이션 직접 바인딩을 디자인할 수도 있습니다.

  • 받는 사람을 MessageBox 직접 바인딩 포트로 설정하고 특정 보낸 사람 오케스트레이션의 메시지를 허용하는 필터를 만듭니다.

  • 보낸 사람을 MessageBox 직접 바인딩 포트로 설정하고 수신 오케스트레이션의 등록과 일치시킬 속성을 승격합니다.

    파트너 오케스트레이션 직접 바인딩 포트를 구성하려면 포트 구성 마법사에서 포트 바인딩에 대해 직접을 지정하고 다른 오케스트레이션에서 메시지를 수신하려면 여기를 선택하고, 해당 오케스트레이션에서 또는 다른 오케스트레이션으로 메시지를 보내려면 이 포트를 선택하고, 이 포트에서 메시지를 받거나 보내는지 여부에 따라 해당 오케스트레이션에서 이 포트를 선택합니다. 그런 다음 파트너 오케스트레이션의 포트 드롭다운 목록에서 포트를 선택합니다. 두 포트의 포트 유형이 같아야 하며, 이는 메시지 유형도 같아야 함을 의미합니다. 또한 파트너 오케스트레이션 포트에 직접 바인딩할 수 있도록 하려면 포트 형식의 형식 한정자는 동일한 어셈블리 내의 오케스트레이션에 대한 내부 또는 다른 어셈블리의 오케스트레이션이 바인딩되도록 허용하려면 공용 이어야 합니다. 포트의 극성(Polarity)은 정반대여야 합니다. 예를 들어 한 쪽이 송신 포트이면 다른 쪽은 수신 포트여야 합니다.

    파트너 오케스트레이션 직접 바인딩된 포트를 사용하는 방법에 대한 예제는 의 SDK 샘플 "오케스트레이션에 직접 바인딩" https://go.microsoft.com/fwlink/?LinkId=73703을 참조하세요.

전방향 파트너 오케스트레이션 직접 바인딩

이는 파트너 오케스트레이션 직접 바인딩에 사용되는 일반적인 통신 패턴입니다. 이 유형의 전방향 파트너 오케스트레이션 바인딩을 사용하면 여러 보낸 사람이 동일한 받는 사람에 바인딩될 수 있습니다.

전방향 파트너 오케스트레이션 직접 바인딩을 구성하려면 다음을 수행하십시오.

  1. 오케스트레이션 A의 오케스트레이션 도구 상자에서 포트 셰이프를 선택합니다. 그러면 포트 구성 마법사가 시작됩니다.

  2. 포트 속성 페이지의 이름 필드에 를 입력합니다MyReceivePort. 다음을 클릭합니다.

  3. 포트 유형 선택 페이지에서 새 포트 유형 만들기를 선택합니다. 포트 형식 이름 필드에 를 입력합니다MyPartnerPortType. 다음을 클릭합니다.

  4. 포트 바인딩 페이지의 통신 포트 방향 드롭다운 목록에서 이 포트에서 항상 메시지를 받습니다를 선택합니다. 포트 바인딩 드롭다운 목록에서 직접을 선택합니다.

  5. 다른 오케스트레이션에서 메시지를 받으려면 를 선택하고 여기에서 해당 오케스트레이션에서 이 포트를 선택한 다음 파트너 오케스트레이션의 포트 드롭다운 목록에서 OrchestrationA.MyReceivePort를 선택합니다. 다음을 클릭합니다.

  6. 포트 마법사 완료 페이지에서 마침을 클릭합니다.

  7. 오케스트레이션 B의 오케스트레이션 도구 상자에서 포트 셰이프를 선택합니다. 그러면 포트 구성 마법사가 시작됩니다.

  8. 포트 속성 페이지의 이름 필드에 를 입력합니다MySendPort. 다음을 클릭합니다.

  9. 포트 유형 선택 페이지에서 기존 포트 유형 사용을 선택합니다. 사용 가능한 포트 형식에서 MyPartnerPortType을 선택하고 다음을 클릭합니다.

  10. 포트 바인딩 페이지의 통신 포트 방향 드롭다운 목록에서 이 포트에서 항상 메시지를 보내겠습니다를 선택합니다. 포트 바인딩 드롭다운 목록에서 직접을 선택합니다.

  11. 다른 오케스트레이션에 메시지를 보내려면 를 선택하고 여기에서 해당 오케스트레이션에서 이 포트를 선택한 다음 파트너 오케스트레이션의 포트 드롭다운 목록에서 OrchestrationA.MyReceivePort를 선택합니다. 다음을 클릭합니다.

  12. 포트 마법사 완료 페이지에서 마침을 클릭합니다.

    참고

    보낸 사람 오케스트레이션과 받는 사람 오케스트레이션 간에는 강력한 바인딩이 있습니다. 따라서 받는 사람 오케스트레이션을 수정하거나 받는 사람 오케스트레이션의 버전을 변경하려면 보낸 사람 파트너 오케스트레이션 직접 바인딩 포트의 디자인 타임 구성을 업데이트해야 합니다. 그러나 받는 사람 오케스트레이션이 보낸 사람 오케스트레이션을 명시적으로 알지 못하므로 받는 사람 오케스트레이션에 영향을 주지 않고 보낸 사람 오케스트레이션을 업데이트할 수 있습니다.

    앞의 구성에서 오케스트레이션 A는 받는 사람이고 오케스트레이션 B는 보낸 사람입니다. 구성을 사용하면 Orchestration B가 OrchestrationA.MyReceivePort로 메시지를 보낼 수 있으며 오케스트레이션 A가 OrchestrationA.MyReceivePort로 전송된 모든 메시지를 수신할 수 있습니다. 또한 오케스트레이션 B와 동일한 구성을 사용하여 두 번째 보낸 사람에 오케스트레이션 C를 추가하고 세 번째 보낸 사람에 오케스트레이션 D를 추가할 수 있습니다.

역방향 파트너 오케스트레이션 직접 바인딩

이는 파트너 오케스트레이션 직접 바인딩에 사용되는 일반적인 통신 패턴이 아닙니다. 이 패턴에서 바인딩 방향은 통신 방향의 역방향입니다. 이 유형의 역방향 파트너 오케스트레이션 바인딩을 사용하면 하나의 보낸 사람이 여러 받는 사람과 통신할 수 있습니다.

참고

양방향 포트 유형 및 역방향 파트너 오케스트레이션 직접 바인딩을 사용하는 경우 받는 사람 중 하나만 메시지를 사용하도록 수신 필터를 설정해야 합니다. 이는 간청-응답 포트에 하나의 응답이 필요하기 때문입니다. 여러 받는 사람이 메시지를 받는 경우 간청-응답 포트에서 첫 번째 응답만 수락하고 모든 후속 응답은 일시 중단되어 다시 사용할 수 없습니다. 이런 상황에서 메시지를 보내려고 하면 메시징 엔진이 예외를 throw하고 간청-응답 포트에 여러 받는 사람이 있음을 표시합니다.

역방향 파트너 오케스트레이션 직접 바인딩을 구성하려면 다음을 수행하십시오.

  1. 오케스트레이션 A의 오케스트레이션 도구 상자에서 포트 셰이프를 선택합니다. 그러면 포트 구성 마법사가 시작됩니다.

  2. 포트 속성 페이지의 이름 필드에 를 입력합니다MySendPort. 다음을 클릭합니다.

  3. 포트 유형 선택 페이지에서 새 포트 유형 만들기를 선택합니다. 포트 형식 이름 필드에 를 입력합니다MyPartnerPortType. 다음을 클릭합니다.

  4. 포트 바인딩 페이지의 통신 포트 방향 드롭다운 목록에서 이 포트에서 항상 메시지를 보내겠습니다를 선택합니다. 포트 바인딩 드롭다운 목록에서 직접을 선택합니다.

  5. 다른 오케스트레이션에 메시지를 보내려면 를 선택하고 여기에서 해당 오케스트레이션에서 이 포트를 선택한 다음 파트너 오케스트레이션의 포트 드롭다운 목록에서 OrchestrationA.MySendPort를 선택합니다. 다음을 클릭합니다.

  6. 포트 마법사 완료 페이지에서 마침을 클릭합니다.

  7. 오케스트레이션 B의 오케스트레이션 도구 상자에서 포트 셰이프를 선택합니다. 그러면 포트 구성 마법사가 시작됩니다.

  8. 포트 속성 페이지의 이름 필드에 를 입력합니다MyReceivePort. 다음을 클릭합니다.

  9. 포트 유형 선택 페이지에서 기존 포트 유형 사용을 선택합니다. 사용 가능한 포트 형식에서 MyPartnerPortType을 선택하고 다음을 클릭합니다.

  10. 포트 바인딩 페이지의 통신 포트 방향 드롭다운 목록에서 이 포트에서 항상 메시지를 받습니다를 선택합니다. 포트 바인딩 드롭다운 목록에서 직접을 선택합니다.

  11. 다른 오케스트레이션에서 메시지를 받으려면 를 선택하고 여기에서 해당 오케스트레이션에서 이 포트를 선택한 다음 파트너 오케스트레이션의 포트 드롭다운 목록에서 OrchestrationA.MySendPort를 선택합니다. 다음을 클릭합니다.

  12. 포트 마법사 완료 페이지에서 마침을 클릭합니다.

    참고

    받는 사람 오케스트레이션은 보낸 사람 오케스트레이션에 강력하게 바인딩되어 있습니다. 따라서 받는 사람 오케스트레이션을 수정하거나 받는 사람 오케스트레이션의 버전을 업데이트하려면 보낸 사람의 포트 구성을 업데이트해야 합니다. 보낸 사람 오케스트레이션이 받는 사람 오케스트레이션을 명시적으로 알지 못하므로 보낸 사람 오케스트레이션에 영향을 주지 않고 받는 사람 오케스트레이션을 업데이트할 수 있습니다.

    앞의 구성에서 오케스트레이션 A는 보낸 사람이고 오케스트레이션 B는 받는 사람입니다. 구성을 사용하면 오케스트레이션 A가 OrchestrationA.MySendPort를 통해 오케스트레이션 B로 메시지를 보낼 수 있으며 오케스트레이션 B가 OrchestrationA.MySendPort에서 메시지를 받을 수 있습니다. 또한 오케스트레이션 B와 동일한 구성을 사용하여 두 번째 받는 사람에 오케스트레이션 C를 추가하고 세 번째 받는 사람에 오케스트레이션 D를 추가할 수 있습니다.

참고 항목

MessageBox 직접 바인딩된 포트를 사용하는방법 Self-Correlating 직접 바인딩된 포트를 사용하는 방법