Share via


구독 처리 아키텍처

이벤트를 수집한 후 Notification Services는 알림을 생성하여 구독을 처리할 수 있습니다. 이벤트에 대해 구독을 평가하는 작업은 생성자가 수행합니다.

알림을 생성하기 위해 응용 프로그램 개발자는 응용 프로그램에 대한 규칙을 하나 이상 만듭니다. 이러한 규칙은 이벤트와 구독이 관련되는 방식 외에도 알림 생성을 위해 충족되어야 하는 다른 모든 조건을 지정하는 Transact-SQL 쿼리로 작성됩니다.

간단한 응용 프로그램에서 생성자가 규칙을 발생시키면 해당 응용 프로그램은 사용할 수 있는 모든 구독을 이벤트 뷰에 나타나는 이벤트의 현재 일괄 처리에 대해 평가합니다. 단일 이벤트가 단일 구독과 일치할 경우 알림 생성자가 알림을 만듭니다. 이 알림에는 이벤트에 대한 데이터가 들어 있으며 구독자, 구독자 장치, 때로는 구독자 로캘 및 배포에 필요한 다른 정보에 대한 데이터를 참조하기도 합니다.

기본 구독 처리 아키텍처

알림은 생성된 직후에 전달되지는 않습니다. 대신 생성자가 내부 알림 테이블에 알림을 기록합니다. 알림의 일괄 처리 준비가 완료되면 알림에 서식이 지정되고 배포자에 의해 배포됩니다.

응용 프로그램에서 예약된 구독을 지원할 경우 생성자가 예약된 구독을 처리하면 평가할 예정인 구독만 나타납니다. 예를 들어 생성자가 15분마다 실행될 경우 오전 8시에는 생성자가 오전 7시 45분에서 오전 8시 사이에 예약된 모든 구독을 평가합니다.

응용 프로그램에서 기록 데이터를 사용하는 경우 응용 프로그램은 기록이라고 하는 보조 테이블에 이벤트 및 구독 정보와 함께 이 데이터를 저장한 다음 이 데이터를 사용하여 알림을 생성할 수 있습니다.

기록이 있는 구독 처리

생성자는 응용 프로그램 정의의 퀀텀 기간에서 정의한 일정에 따라 실행됩니다. 퀀텀은 생성자가 깨어나서 규칙을 발생시키는 빈도를 결정합니다. 퀀텀 기간이 짧으면 생성자가 더 자주 실행되어 시스템 리소스가 더 많이 사용됩니다. 퀀텀 기간이 길면 이벤트 도착과 알림 생성 사이의 지연 시간이 늘어납니다.

규칙 유형

생성자의 작업은 응용 프로그램에 대해 정의된 규칙에 의해 결정됩니다. 다음과 같은 유형의 규칙을 만들 수 있습니다.

  • 이벤트 기록 규칙은 응용 프로그램 개발자가 정의한 기록 테이블의 이벤트 기록을 저장하거나 업데이트합니다. 생성자가 실행할 때마다 이러한 유형의 규칙이 먼저 발생됩니다.
  • 이벤트 규칙은 이벤트 기반 구독에 대한 알림을 생성합니다. 연관된 이벤트 일괄 처리를 사용할 수 있을 경우 이러한 유형의 규칙은 이벤트 기록 규칙보다 나중에 실행됩니다. 또한 기록 테이블도 관리할 수 있습니다.
  • 예약 규칙은 예약된 구독에 대한 알림을 생성합니다. 이러한 유형의 규칙은 처리될 예정인 모든 관련 구독에 대한 이벤트 기록 규칙보다 나중에 실행됩니다. 또한 기록 테이블도 관리할 수 있습니다.

규칙 작업 유형

이벤트 규칙 및 예약 규칙은 규칙이 발생될 때 수행할 작업을 지정합니다. 각 작업은 수행할 생성자의 작업 단위를 정의하는 Transact-SQL 쿼리입니다. 이러한 쿼리로 알림을 생성할 수 있으며 기록 데이터 유지와 같은 다른 작업도 수행할 수 있습니다.

이벤트 및 예약 규칙은 단순한 매개 변수 기반 작업 또는 보다 융통성 있는 조건 작업을 사용할 수 있습니다.

  • 단순 작업은 모든 WHERE 절을 포함한 알림 생성 쿼리를 완전히 정의하는 Transact-SQL 쿼리입니다. 단순 작업은 구독 및 이벤트 데이터에서 WHERE 절 식을 가져옵니다. 예를 들어 날씨 보고 응용 프로그램에서는 구독자가 날씨를 알릴 도시를 지정하도록 할 수 있습니다. 그런 다음 단순 작업 쿼리는 도시 이름에 이벤트 및 구독 데이터를 조인하는 WHERE subscription.city = event.city와 같은 WHERE 절을 사용할 수 있습니다.
    규칙에서 단순 작업을 사용할 때 구독자는 쿼리에 도시 이름과 같은 매개 변수를 제공합니다.
  • 조건 작업을 사용하면 구독자가 해당 쿼리 검색 조건을 완전히 정의할 수 있습니다. 예를 들어 구독 관리 인터페이스에서 이벤트 데이터 스키마를 제공하고 구독자가 이 데이터에 대해 WHERE event.State = Washington AND event.LowTemperature < 0과 같이 원하는 검색 조건을 만들도록 허용할 수 있습니다. 구독 관리 인터페이스에서는 목록 상자에서 열과 연산자를 선택한 다음 입력란에 값을 입력하여 이러한 검색 조건을 간단하게 작성할 수 있습니다.

단순 작업은 생성자가 평가할 수 있는 제한된 검색 조건 세트를 생성하므로 일반적으로 조건 작업보다 원활하게 수행됩니다. 조건 작업은 보다 강력하기는 하지만 이벤트나 예약 규칙에 대해 더 많은 검색 조건을 평가하는 데 따른 오버헤드가 있습니다.

참고 항목

개념

생성자 퀀텀 기간 지정
구독 규칙 정의
이벤트 컬렉션 아키텍처
구독 관리 아키텍처
알림 서식 지정 및 배달 아키텍처

도움말 및 정보

SQL Server 2005 지원 받기