Notification Services 보안, 안정성, 확장성 및 가용성
엔터프라이즈 시스템은 안전하고 안정적이며 확장 가능하고 사용 가능해야 합니다. Microsoft SQL Server Notification Services는 프로그래밍 프레임워크와 Notification Services를 실행하는 서버 아키텍처에서 이러한 요구 사항을 만족합니다.
보안
Notification Services, Microsoft .NET Framework 및 SQL Server에는 응용 프로그램 개발자와 관리자가 응용 프로그램과 전체 배포에 대한 종단 간 보안을 강화할 수 있는 디자인 기능들이 통합되어 있습니다.
- Notification Services는 산업 표준 웹 보안 모델을 사용하여 무선 및 유선 장치로 인터넷을 통한 통신을 수행하며 표준 Microsoft Windows 보안 메커니즘과 SQL Server 2005 기반의 보안 메커니즘을 사용하여 서버를 보호합니다.
- 개별 Notification Services 인스턴스는 SQL Server 2005 기반 보안 매커니즘을 사용하여 서로 격리됩니다. 이렇게 하면 각 개별 인스턴스의 보안을 유지하면서 여러 인스턴스를 동일한 컴퓨터에서 호스팅할 수 있습니다. 인스턴스를 완전히 격리하려는 경우 인스턴스는 데이터베이스 역할을 공유하므로 동일한 데이터베이스에 여러 인스턴스를 배치하지 마십시오.
- 개별 구독자는 알림이 생성되고 배포되는 방식으로 인해 서로 격리됩니다. 따라서 각 구독은 마치 시스템에 있는 유일한 구독인 것처럼 처리됩니다.
- 정의된 데이터 집합에서 사용자 정의 쿼리를 지원하는 조건 작업에는 사용자가 해당 서버의 다른 데이터에 액세스할 수 없도록 만드는 별도의 데이터베이스 사용자 계정이 필요합니다.
- 응용 프로그램 개발자는 자체 이벤트 공급자를 정의하여 Notification Services를 확장할 수 있습니다. 이러한 공급자는 .NET Framework가 지원하는 관리 코드로 실행되므로 서버의 보안을 손상시키지 않습니다.
안정성
SQL Server 2005 데이터베이스 엔진은 데이터 저장과 구독 처리를 매우 안정적으로 수행하여 Notification Services에 다음과 같은 이점을 제공합니다.
- Notification Services에서 관리하는 구독 데이터는 미리 쓰기 로깅과 장애 조치(Failover) 클러스터링을 지원하는 매우 견고한 데이터베이스 서버인 SQL Server 2005에 저장됩니다.
- Notification Services의 이벤트, 구독 및 알림에 대한 처리는 완전히 트랜잭션으로 이루어지므로 안정성이 더욱 보장됩니다. SMTP(Simple Mail Transfer Protocol)와 같은 일부 배달 프로토콜에서는 메시지 배달을 보장하지 않습니다. 그러나 Notification Services 플랫폼에는 응용 프로그램이 메시지를 다시 보내서 배달을 다시 시도할 수 있는 다시 시도 논리가 있습니다.
또한 Notification Services는 사용자 지정 구성 요소의 관리 코드를 사용하여 사용자 지정 구성 요소가 시스템의 안정성을 침해하지 않도록 합니다. 응용 프로그램 개발자는 안정적인 이벤트 공급자와 안정적인 배달 프로토콜(예: MSMQ라고도 하는 메시지 큐 기반)을 작성하여 완벽한 종단 간 안정성을 이룰 수 있습니다.
확장성
Notification Services는 다중 프로세서 Windows 기반 서버에서 분당 수천 개의 이벤트가 들어오고 수백만 개의 구독이 일치되며 분당 수천 개의 알림이 배달되는 대규모 응용 프로그램을 지원합니다. 응용 프로그램은 다음과 같이 몇 가지 방식으로 확장될 수 있습니다.
- 구독 관리 인터페이스는 병렬로 실행할 수 있으므로 SQL Server 데이터베이스 엔진에서 수직적 확장(Scale-up)을 통해 효율성이 커집니다.
- Notification Services는 다중 스레드 방식이므로 다중 프로세서 컴퓨터에서 실행될 때 리소스가 수직으로 확장됩니다.
- Notification Services 서비스를 한 서버에 배포하고 Notification Services 데이터베이스는 다른 서버에 배포할 수 있습니다. 데이터베이스 서버에서 알림 생성이 수행되는 동안 Notification Services 서버에서 알림의 서식 지정이 수행되므로 이 구성은 매우 효율적입니다.
- 단일 인스턴스가 여러 이벤트 공급자와 여러 배포자를 지원할 수 있습니다. 여러 서버에 이벤트 공급자, 생성자 및 배포자를 분산시킬 수 있습니다. 알림의 양이 많고 서식 지정 및 배달 오버헤드가 큰 배포의 경우에는 배포자를 수평적으로 확장(Scale-out)하는 기능이 중요합니다.
- 수평적 확장을 위해 여러 Notification Services 인스턴스에 대해 구독을 분할하여 각각 독립적으로 작동하도록 할 수 있습니다. 응용 프로그램 모델이 구독을 서로 독립되게 하므로 이러한 분할은 자연스러우며 분할로 인해 알림 응용 프로그램의 확장성이 매우 커집니다. 응용 프로그램에서 구독 분할을 구현해야 합니다. Notification Services는 자동으로 구독을 분할하지 않습니다.
가용성
Notification Services 인스턴스에서 모든 데이터와 상태는 SQL Server 데이터베이스 서버에 유지되고 임시 데이터만 이벤트 공급자, 생성자 및 배포자에 유지됩니다.
데이터가 저장되고 처리되는 SQL Server 2005는 장애 조치 클러스터링, 로그 전달 및 트랜잭션 복제와 같은 다양한 고가용성 기술을 가진 안정적인 데이터베이스 서버입니다. 하드웨어 오류를 자동으로 처리하도록 이 데이터베이스 서버를 구성할 수 있습니다.
참고 항목
개념
Notification Services 정의
Notification Service 사용 시나리오
Notification Services 아키텍처
Notification Services 프로그래밍 프레임워크
Notification Services 배포 옵션
Notification Services 및 다른 기술
Notification Services 버전