通知的格式化和传递体系结构
在 Notification Services 中,通知的格式化和分发由分发服务器执行。当生成器创建一批通知后,分发服务器会将这批通知分为多个工作项,其中每个工作项都发往同一传递通道。然后,分发服务器会将工作项发送到内容格式化程序。完成格式化后,分发服务器会将通知发送给传递通道所指定的传递端点。
消息的格式化
创建应用程序的步骤之一是定义如何将原始通知数据转换为可读消息。Notification Services 包含一个标准的可扩展样式表语言转换 (XSLT) 内容格式化程序,该程序要求应用程序支持的每个设备类型和区域设置具有一个相应的 XSLT 文件。您也可以基于设备和区域设置来开发自定义内容格式化程序以适当地格式化通知。
格式化后的消息可以包含三类数据:原始通知数据、格式化期间计算出来的数据以及由内容格式化程序添加的文本。使用这些选项可以使消息文本和 URL 或其他链接看起来很专业,并且友好。
传递通道
Notification Services 本身不执行通知的最终传递,而是使用传递通道进行传递,这些通道就像是通向传递服务 [简单邮件传输协议 (SMTP) 服务器] 的管道。Notification Services 会将通知发送到一个或多个传递通道。每个传递通道依次将通知根据其协议进行打包,然后将这些通知发送给传递服务。传递服务负责将通知最终传递给订阅方。
您可以为 Notification Services 实例配置多个传递通道。驻留在该实例中的所有应用程序将共享这些传递通道。
每个传递通道使用一个通向特定传递端点的特定传递协议。Notification Services 包含下列常用协议:
- SMTP 协议,用于将通知发送到 Microsoft Exchange Server 或其他 SMTP 服务器。
- 可扩展 HTTP 协议,可用于简单对象访问协议 (SOAP)、短消息服务 (SMS)、.NET Alerts 以及其他与 HTTP 相关的协议。
- File 协议,用于将通知发送给操作系统文件(主要用于调试应用程序)。
如有必要,可以为一个传递协议定义多个传递通道。
如果希望支持其他设备类型或使用特定的 SMTP 或 File 功能,您可以开发自定义传递协议。
有关标准协议和自定义协议的详细信息,请参阅标准传递协议和开发自定义传递协议。
跟踪和重试通知分发
为了支持传递重试、性能监视和故障排除,Notification Services 将保留通知传递信息。传递通道通过传递通道回调来报告各个通知是否传递成功。回调将更新通知表,以反映每个通知是否传递成功。可以使用 NSNotificationClassNameNotificationDistribution 视图或 Notification Services 存储过程来查看传递状态。
可以为发送的每个通知类型配置重试计划。有关详细信息,请参阅指定传递协议执行设置。
传递选项
除了逐个格式化和传递通知这一标准选项外,Notification Services 还提供了另外两个选项:摘要传递和多播传递。
- 如果需要将多个通知发送给各个订阅方(如多支股票的价格信息),可以使用摘要传递将通知组成一条消息。可以将批通知中属于一个订阅方的通知分为一组,并作为一条消息发送。摘要传递可以降低系统中的格式化和分发负荷。
- 如果应用程序生成的通知是许多订阅方共同关心的信息(如体育比赛分数或天气预报),则可以使用多播传递。多播传递只将通知格式化一次,然后将它们发送给多个订阅方,这会降低系统中的格式化负荷,从而提高系统性能。
请参阅
概念
定义传递通道
指定摘要或多播传递
订阅管理体系结构
事件收集体系结构
订阅处理体系结构
其他资源
配置传递协议
Notification Services 存储过程 (Transact-SQL)