다음을 통해 공유


대기 중인 처리의 이점

새 애플리케이션을 디자인할 때 개발자는 실시간(동기) 처리와 큐에 대기 중인(비동기) 처리를 위한 코딩 구성 요소의 의미를 고려해야 합니다. 선택은 기본 비즈니스 논리에 따라 결정되는 특정 애플리케이션의 요구 사항에 따라 달라집니다. 지침에 따라 대기 중인 처리는 실시간 처리에 비해 다음과 같은 이점을 제공합니다.

  • 구성 요소 가용성에 대한 종속성 감소
  • 더 짧은 구성 요소 수명
  • 연결이 끊긴 애플리케이션을 사용할 때 중단 없는 생산성
  • 메시지 안정성
  • 효율적인 서버 예약

구성 요소 가용성

실시간 처리 애플리케이션에서 서버 오버로드 또는 네트워킹 문제로 인해 트랜잭션의 구성 요소를 하나만 사용할 수 없는 경우 전체 프로세스가 차단되고 완료할 수 없습니다. 반면 COM+ 큐에 대기 중인 구성 요소 서비스를 사용하는 애플리케이션은 트랜잭션을 지금 완료해야 하는 작업과 나중에 완료할 수 있는 작업으로 구분합니다. 예를 들어 요청 구성 요소가 다른 작업에 대해 무료가 되도록 나중에 처리하기 위해 메시지를 큐에 대기할 수 있습니다.

구성 요소 수명

큐에 대기 중인 구성 요소 서비스를 사용하는 애플리케이션을 사용하면 서버 구성 요소가 클라이언트와 독립적으로 작동할 수 있습니다. 따라서 서버 구성 요소를 더 빠르게 완료할 수 있습니다. 실시간 시스템에서는 서버 구성 요소가 만들어질 때부터 개체가 마지막으로 해제될 때까지 존재합니다. 서버는 클라이언트가 메서드를 호출하고 결과가 반환될 때까지 대기하여 서버 개체의 빠른 순환을 부정하고 서버 확장성을 제한합니다.

연결이 끊긴 애플리케이션

노트북, 노트북 및 팜 컴퓨터의 사용이 증가함에 따라 때때로 연결이 끊긴 클라이언트 또는 모바일 사용자를 서비스하는 애플리케이션이 필요하게 되었습니다. 대기 중인 시스템에서 이러한 사용자는 연결이 끊긴 시나리오에서 또는 서버에 연결되지 않은 경우 계속 작업할 수 있으며 나중에 데이터베이스 또는 서버에 연결하여 요청을 처리할 수 있습니다. 예를 들어 영업 사원은 고객의 주문을 받아 나중에 배송 부서에 연결하여 해당 주문을 처리할 수 있습니다.

연결되거나 연결이 끊긴 상태로 실행할 수 있는 구성 요소가 있는 경우 메시지가 한 방향으로 이동하며 앞뒤로 전환할 필요가 거의 없습니다. 예를 들어 주문 처리 시나리오에서 배송 구성 요소는 메시지를 수신하고 처리합니다. 청구 또는 감사를 위한 다른 구성 요소를 생성할 수 있습니다. 클라이언트는 서버가 시작되기 전에 커밋합니다. 애플리케이션이 커밋될 때까지 메시지가 전송되지 않습니다.

다음 그림에서는 연결이 끊긴 시나리오의 정보 흐름을 보여 줍니다.

클라이언트와 서버 간의 정보 흐름을 보여 주는 다이어그램

메시지 안정성

메시지 큐는 데이터베이스 기술을 사용하여 강력한 방식으로 데이터를 보호하는 강력한 도구입니다. 서버 오류가 발생할 경우 메시지 큐는 메시지가 손실되지 않고 데이터가 손상되지 않도록 트랜잭션이 롤백되도록 합니다.

서버 예약

큐에 대기된 구성 요소를 사용하는 애플리케이션은 비정상 작업을 사용량이 많은 기간으로 지연하는 시간 이동 구성 요소 실행에 적합합니다. 이는 기존 일괄 처리 모드 처리에 적용된 것과 동일한 유용한 개념입니다. 서버가 다양한 요청에 즉시 응답하도록 요구하는 대신 서버에서 연속 실행을 위해 유사한 요청을 연기할 수 있습니다.