Service Broker 서비스 만들기

Service Broker 서비스의 정의에는 해당 서비스를 대상으로 하는 계약의 이름이 포함됩니다. 대상 서비스는 해당 서비스가 지정하는 계약으로 식별되는 태스크에 대한 요청을 받아들이는 주소를 나타냅니다. 시작 서비스는 대상 서비스와의 대화에 사용할 반환 주소를 나타냅니다.

서비스는 비즈니스 프로세스를 고유한 태스크 집합으로 나타내며, 서비스 내의 각 계약은 특정 태스크를 나타냅니다. 서비스에서는 둘 이상의 계약을 지정할 수 있으며 한 계약을 둘 이상의 서비스에서 사용할 수도 있습니다.

각 서비스에서는 큐를 사용하여 메시지를 저장합니다. 서비스에 보낸 메시지는 큐로 배달됩니다. 일반적으로 특정 큐를 하나의 서비스에서만 사용하는 경우에 응용 프로그램을 구현하기가 가장 쉽습니다. 그러나 Service Broker를 사용하면 여러 서비스에서 동일한 큐를 지정할 수 있는 유연성이 있습니다. 이 경우 응용 프로그램에서는 같은 유형의 메시지를 모두 동일한 방식으로 처리하거나, 메시지 유형 이름과 서비스 이름을 둘 다 검사하여 메시지 처리 방법을 결정합니다. 이 전략은 응용 프로그램에서 동일한 서비스의 여러 버전을 지원하는 경우에 편리합니다.

메시지의 네트워크 형식에는 서비스 이름이 포함됩니다. 따라서 서비스에는 데이터 정렬 문제와 이름 충돌을 방지할 수 있는 이름을 선택하는 경우가 많습니다. 이름 지정에 대한 자세한 내용은 Service Broker 개체 이름 지정을 참조하십시오.

서비스를 만들려면 다음을 수행해야 합니다.

  1. 송수신할 수 있는 데이터를 정의하는 메시지 유형을 만듭니다.

  2. 특정 태스크를 수행하는 데 사용할 수 있는 메시지 유형과 해당 메시지 유형을 보낼 수 있는 끝점을 식별하는 계약을 만듭니다.

  3. 특정 태스크를 수행하는 데 필요한 대로 메시지를 받고 처리하고 보내는 응용 프로그램을 만듭니다.

  4. 서비스에 대해 들어오는 메시지를 저장할 큐를 만듭니다. 메시지가 도착할 때 Broker에서 저장 프로시저를 자동으로 활성화하여 메시지를 처리할 수 있도록 큐를 활성화 저장 프로시저와 연결할 수 있습니다.

  5. 서비스를 만들고 이를 해당 서비스에 대한 메시지를 받을 큐에 연결합니다. 서비스는 해당 서비스에서 다른 서비스 대신 수행할 태스크를 정의하는 계약을 제공합니다. 해당 서비스가 다른 서비스에 요청하는 태스크에 대한 계약을 지정할 필요는 없습니다.

서비스를 만드는 정확한 단계는 서비스의 구체적인 요구 사항에 따라 약간씩 달라질 수 있습니다. 예를 들어 이벤트 알림을 처리하는 서비스를 만드는 경우 메시지 유형 및 계약은 이미 SQL Server에 정의되어 있으므로 만들 필요가 없습니다.