다음을 통해 공유


HIP(Host-Initiated Processing)

HIP(호스트 시작 처리)를 사용하면 호스트 애플리케이션이 COM 또는 .NET 개체의 메서드를 호출하고, 매개 변수를 메서드에 전달하고, 메서드에서 매개 변수를 다시 받을 수 있습니다. 데이터가 먼저 호스트에서 클라이언트로 이동한 다음 클라이언트에서 호스트로 이동하면 호스트가 이해할 수 있는 형식에서 클라이언트에 적합한 형식으로 데이터가 변환됩니다.

호스트 시작 처리는 다음 단계에서 구현됩니다.

  1. 애플리케이션이라고 하는 HIP 서비스 프로세스는 로컬 환경 정의에 지정된 엔드포인트 목록에서 들어오는 연결을 수신 대기하기 시작합니다.

  2. 호스트에서 실행되는 클라이언트 애플리케이션은 엔드포인트 중 하나를 사용하여 HIP 시스템에 대한 TCP 연결을 시작합니다.

  3. HIP 서비스 프로세스는 엔드포인트와 클라이언트 호스트 이름 또는 IP 주소 간에 설정된 연결이 있는지 확인합니다. 연결이 없으면 연결이 중단됩니다.

  4. 연결은 클라이언트 요청을 완료하기 위해 수행할 일련의 워크플로인 작업 계획을 고유하게 식별합니다. 작업 계획에는 다음 세 가지 유형이 있습니다.

    1. 엔드포인트

    2. 트랜잭션 요청 메시지

    3. 데이터.

엔드포인트

엔드포인트 작업 계획은 단일 최종 워크플로로 구성됩니다. 연결은 클라이언트 요청 처리에 대해 호출될 COM 개체의 메서드에 직접 매핑됩니다. 엔드포인트 워크플로는 다음을 수행합니다.

  1. 클라이언트 데이터를 받습니다.

  2. 데이터 압축을 풀고 메서드에 대한 매개 변수를 채웁니다.

  3. 개체를 만들고 메서드를 호출합니다.

  4. 클라이언트 데이터에 반환된 매개 변수 팩

  5. 클라이언트 데이터 보내기

  6. 연결을 닫습니다.

트랜잭션 요청 메시지

TRM(트랜잭션 요청 메시지) 작업 계획은 TRM 및 최종 워크플로의 두 가지 워크플로로 구성됩니다. TRM 워크플로는 클라이언트가 TRM을 보내고 워크플로가 TRM 회신을 사용하여 회신할 때 대화의 초기 부분을 처리합니다. TRM 유형에 따라 TRM 워크플로는 Microsoft 동시 서버, Microsoft Link, IBM 동시 서버의 세 가지 TRM 처리기 중 하나를 사용할 수 있습니다. TRM 워크플로는 다음을 수행합니다.

  1. 할당된 입력 형식을 사용하여 TRM을 수신하고 압축을 풉니다.

  2. TRM을 할당된 처리기에 전달합니다.

  3. 처리기는 확인 정보 및 양수 TRM 회신을 반환합니다.

  4. 문자 데이터로 예상되는 해상도 정보는 호스트 환경과 연결된 코드 페이지를 사용하여 유니코드로 변환됩니다.

  5. 워크플로는 확인 정보에 대해 정의된 개체의 메서드에 대한 매핑이 있는 경우 데이터베이스를 쿼리합니다.

  6. 일치 항목을 찾을 수 없는 경우 처리기가 호출되어 음수 TRM 회신을 가져옵니다.

  7. TRM 회신은 할당된 출력 형식을 사용하여 압축되고 전송됩니다. 음수의 경우 연결이 중단됩니다.

  8. 워크플로는 찾은 메서드 ID와 함께 최종 워크플로에 제어를 전달합니다.

데이터

데이터 결정 작업 계획은 데이터 결정자와 최종 워크플로의 두 가지 워크플로로 구성됩니다. 데이터 결정자 워크플로는 연결에 대해 정의된 결정자 중 하나와 일치하는 항목을 찾으려는 클라이언트 데이터를 전처리합니다. 결정자에는 문자 문자열과 클라이언트 데이터의 문자열 위치가 포함됩니다. 각 결정자는 개체의 메서드에 매핑됩니다. 시작 시 결정자는 결정자와 연결된 호스트의 모든 코드 페이지로 미리 변환됩니다. 규칙은 엔드포인트에 대한 결정자가 적용됩니다. 즉, 호스트 연결이 중복되지 않거나 한 결정자가 다른 결정자에 속하지 않습니다. 워크플로는 다음 단계를 따릅니다.

  1. 지정된 엔드포인트 – 호스트 조합에 대한 결정자 목록을 가져오고 길이와 위치의 합계를 오름차순으로 정렬합니다.

  2. 첫 번째 결정자는 목록에서 가져옵니다.

  3. 클라이언트 데이터의 일부가 수신됨

  4. 데이터가 결정과 일치하는지 확인합니다.

  5. 일치하는 항목이 없는 경우 다음 결정자가 목록에서 가져온 경우 필요한 경우 더 많은 클라이언트 데이터가 수신되고, 결정자보다 데이터가 더 많이 수신됩니다.

  6. 사용 가능한 결정자가 데이터와 일치하지 않는 경우 연결이 중단됩니다.

  7. 결정자가 발견되면 컨트롤이 메서드 ID 및 클라이언트 데이터를 이미 읽은 상태에서 최종 워크플로로 전달됩니다. 결정적 데이터가 메서드 매개 변수에 매핑된 클라이언트 데이터 내 또는 이후에도 있을 수 있습니다.

참고

HIP MVS 클라이언트는 소켓 보내기 직후와 소켓 수신 직전에 소켓 종료를 수행해야 합니다. 즉각적인 소켓 종료를 수행하지 않으면 TI 런타임에서 데이터를 거부하고, 연결을 끊고, 808 이벤트 메시지(트랜잭션 통합자 HIP 애플리케이션이 예상보다 많은 데이터를 수신했습니다.)를 서버 애플리케이션 이벤트 로그에 기록합니다. 또한 워크스테이션으로 전송되는 데이터가 포함된 패킷은 오해의 소지가 있는 것처럼 보일 수 있습니다. Microsoft 네트워크 모니터는 패킷 내의 데이터와 데이터 길이가 과도하지 않음을 표시합니다.

참고 항목

WIP(Windows-Initiated Processing)
프로그래밍 모델