Notification Services 提供了编程框架以便快捷地开发专业通知应用程序,并提供了在可靠且可伸缩的环境中运行这些应用程序的平台。
快捷的应用程序开发
Notification Services 使您可以定义应用程序属性并有选择性地使用 Notification Services 编程框架创建自定义组件,从而快捷地开发和部署通知应用程序。此框架为应用程序提供了多种服务,其中包括:
- 集成到 SQL Server Management Studio 中,使得 Notification Services 实例易于部署和管理并且 XML 文件和 Transact-SQL 脚本易于编辑。
- 支持事件触发的订阅和预定的订阅。预定的订阅适用于 Microsoft Windows 支持的所有时区,并可以自动进行夏令时时间转换。
- 支持简单订阅操作或更灵活的基于条件的订阅操作。简单订阅操作使订阅方可以为开发人员定义的查询提供参数;而灵活的条件操作使订阅方可以基于事件数据创建自己的匹配条件。
- 包含标准事件提供程序,更容易向系统提交事件;还包含用于创建自定义事件提供程序的界面。
- 包含标准传递协议,更容易发送通知;还包含用于创建自定义传递协议的界面。
- 通过应用程序自动管理事件流和通知。
- 自动管理已过时的数据,如过期的事件和陈旧的通知数据:您可以指定一个计划使 Notification Services 删除这种数据。
- 自动记录传递尝试以及传递失败后的重试。
- 为多台设备上多种语言的通知自定义格式。
- 集成到“性能”控制面板应用程序,容易进行性能监视。
- 自动在应用程序事件日志中记录错误和警告。
性能和可伸缩性
由于使用的是“以集为单位的处理模型”**,即使必须支持数千或数百万个订阅方,Notification Services 应用程序也能保持良好的运行状态。
发送通知的所有应用程序都必须在恰当的时间(或者按照计划,或者在发生与订阅相关的事件时)评估订阅。
无论是哪种情况,小型应用程序只需将每个订阅定义为自己的查询,然后在适当的时间运行这些查询即可满足上述要求。然而,对于具有数千或数百万个订阅的大型应用程序而言,运行数千条甚至数百万条查询将无法保证良好的伸缩性。
Notification Services 依靠大多数订阅的公用结构避免了此问题。Notification Services 不再将订阅当作各个单独的查询,而是将它们作为一个集合进行处理和评估。这种以集为单位的数据处理方法非常适合数据库引擎,并且是 Notification Services 编程框架的基础。
在这种以集为单位的模型中,只需在收到的新事件与大型订阅集合之间执行数据库联接即可评估订阅。Notification Services 可以实现下列多种类别的订阅:
- 简单的事件触发订阅,在事件发生后立即进行评估。
- 根据各自的计划进行评估的订阅。
- 使用过去和当前事件的订阅。
- 基于应用程序状态的订阅。
- 使用外部数据库的订阅。
如果使用灵活的条件操作,那么用户定义的匹配条件的多样性会影响性能。如果基于条件的订阅与基于参数的订阅具有相同的签名,那么评估订阅时的性能也相似。但是,“任意”匹配条件会降低性能,因为每次只能评估一个条件。
请参阅
概念
Notification Services 的工作机制
Notification Services 体系结构