Service Broker의 일반 용도

Service Broker는 비동기 처리를 수행해야 하거나 여러 컴퓨터에 처리를 분산시켜야 하는 응용 프로그램에 유용할 수 있습니다. Service Broker의 일반 용도는 다음과 같습니다.

  • 비동기 트리거

  • 안정적인 쿼리 처리

  • 안정적인 데이터 수집

  • 클라이언트 응용 프로그램에 대한 서버 측 분산 처리

  • 클라이언트 응용 프로그램에 대한 데이터 통합

  • 대량 일괄 처리

비동기 트리거

OLTP(온라인 트랜잭션 처리) 시스템과 같이 트리거를 사용하는 응용 프로그램은 Service Broker를 유용하게 활용할 수 있는 경우가 많습니다. 트리거는 Service Broker 서비스에서 요청이 작동하는 메시지를 대기시킵니다. 트리거는 요청된 작업을 실제로 수행하지 않습니다. 대신 수행할 작업에 대한 정보가 포함된 메시지를 만들고 해당 작업을 수행하는 서비스에 이 메시지를 보냅니다. 그런 다음 트리거는 반환됩니다.

원래 트랜잭션이 커밋되면 Service Broker는 메시지를 대상 서비스로 배달합니다. 서비스를 구현하는 프로그램은 작업을 개별 트랜잭션으로 수행합니다. 이 작업을 개별 트랜잭션으로 수행하면 원래 트랜잭션이 바로 커밋될 수 있습니다. 응용 프로그램은 작업을 수행하는 동안 원래 트랜잭션을 열어 놓음으로써 야기되는 시스템의 속도 저하를 방지합니다.

안정적인 쿼리 처리

일부 응용 프로그램은 컴퓨터 오류나 정전 또는 이와 유사한 문제가 발생하더라도 쿼리를 안정적으로 처리해야 합니다. 안정적인 쿼리 처리가 필요한 응용 프로그램은 Service Broker 서비스에 메시지를 보내 쿼리를 전송할 수 있습니다. 서비스를 구현하는 응용 프로그램은 메시지를 읽고 쿼리를 실행하며 결과를 반환합니다. 이 3가지 작업은 모두 같은 트랜잭션에서 실행됩니다. 트랜잭션이 커밋되기 전에 오류가 발생하면 전체 트랜잭션이 롤백되고 메시지가 큐로 반환됩니다. 컴퓨터가 복구되면 응용 프로그램이 다시 시작되고 메시지가 다시 처리됩니다.

안정적인 데이터 수집

큰 원본 집합에서 데이터를 수집하는 응용 프로그램은 Service Broker를 통해 안정적으로 데이터를 수집할 수 있습니다. 예를 들어 여러 사이트를 사용하는 정품 응용 프로그램은 Service Broker를 사용하여 트랜잭션 정보를 중앙 데이터 저장소로 보냅니다. Service Broker는 안정적인 비동기 메시지 배달을 제공하므로 각 사이트의 중앙 데이터 저장소에 대한 연결이 일시적으로 손실되더라도 트랜잭션을 계속 처리할 수 있습니다. Service Broker 보안은 메시지가 잘못 전달되지 않고 전송 중인 데이터를 보호하도록 도와줍니다.

클라이언트 응용 프로그램에 대한 서버 측 분산 처리

여러 SQL Server 데이터베이스에 액세스하는 대형 응용 프로그램은 Service Broker를 유용하게 활용할 수 있습니다. 예를 들어 도서 주문 웹 응용 프로그램은 서버 측에서 Service Broker를 사용하여 주문, 고객, 재고 및 신용에 대한 데이터가 포함된 여러 데이터베이스 간에 정보를 교환할 수 있습니다. Service Broker는 메시지 큐와 안정적인 메시지 배달을 제공하므로 데이터베이스 중 하나를 사용할 수 없게 되거나 작업량이 많더라도 응용 프로그램은 계속해서 주문을 접수할 수 있습니다. 이 시나리오에서 Service Broker는 분산 OLTP 시스템의 프레임워크로 작동합니다.

클라이언트 응용 프로그램에 대한 데이터 통합

여러 데이터베이스의 정보를 동시에 사용하거나 표시해야 하는 응용 프로그램은 Service Broker를 활용할 수 있습니다. 예를 들어 여러 위치의 데이터를 한 화면에 통합하는 고객 서비스 응용 프로그램의 경우 Service Broker를 사용하여 이러한 여러 요청을 병렬로 실행할 수 있으므로 순차적으로 실행하는 것보다 응용 프로그램 응답 시간이 상당히 단축될 수 있습니다. 고객 서비스 응용 프로그램은 여러 서비스에 요청을 병렬로 보냅니다. 즉 서비스가 요청에 응답할 때 고객 서비스 응용 프로그램은 응답을 수집하고 결과를 표시합니다.

대량 일괄 처리

대량 일괄 처리를 수행해야 하는 응용 프로그램은 Service Broker에 제공되는 큐 및 병렬 처리 기능을 통해 많은 작업을 신속하고 효율적으로 처리할 수 있습니다. 응용 프로그램은 처리할 데이터를 Service Broker 큐에 저장합니다. 프로그램은 정기적으로 큐에서 데이터를 읽고 해당 데이터를 처리합니다. 응용 프로그램은 Service Broker에 제공되는 안정적인 메시징 기능을 통해 요청이 시작된 컴퓨터 이외의 다른 컴퓨터에서 일괄 처리를 수행할 수 있습니다.