事件收集体系结构
事件收集是从一个或多个源(如 XML 文件、应用程序或数据库)收集事件数据,然后将这些信息提交给通知应用程序的过程。此项作业由事件提供程序执行。
每个应用程序都使用一个或多个事件提供程序来收集事件。每个事件提供程序都使用以下三种事件 API 之一将数据提交给应用程序:事件对象 API、XML API 或 SQL Server API。下图清楚地说明了这些 API 的使用方式。
- 事件对象 API 使用 Event 和 EventCollector 对象提交各个事件。应用程序使用事件表中的字段名称将 Event 对象提交到事件收集器,然后由事件收集器将数据写入事件表。
- XML API 提供了一种大容量加载 XML 数据的方法。XML 事件提供程序从事件源收集 XML 文档或流,并将数据提交到 XMLEventLoader,然后由后者将事件写入事件表。
- SQL Server API 使用存储过程从数据库对象加载事件数据。使用 SQL Server 事件提供程序的两种典型方法分别为:通过存储过程调用提供程序以及按照计划运行查询。事件提供程序将接收结果集,并通过 API 存储过程将这些结果写入事件表。
事件类视图
创建 Notification Services 实例之后,Notification Services 将添加一个与事件类同名的视图。此视图就是通知生成查询的事件源。
SQL Server 2005 Notification Services 还支持将事件插入到此视图中。将事件插入到此视图中,会导致 Notification Services 为每条 insert 语句创建和关闭批事件。
标准事件提供程序和自定义事件提供程序
Notification Services 应用程序开发人员可以使用上述任一 API 编写自己的自定义事件提供程序,也可以使用 Notification Services 附带的某个标准事件提供程序。标准事件提供程序可以从观察文件夹选取 XML 数据、查询 SQL Server 数据库以及查询 Analysis Services 多维数据集。有关详细信息,请参阅标准事件提供程序。
自定义事件提供程序提供了所有标准事件提供程序都不具备的功能。例如,如果您需要从股票行情自动接收器的逗号分隔文件中收集数据,开发人员就可以使用 Notification Services API 来创建具有此功能的事件提供程序。有关自定义事件提供程序的详细信息,请参阅开发自定义事件提供程序。
宿主事件提供程序和非宿主事件提供程序
事件提供程序可以是宿主的,也可以是非宿主的。
宿主事件提供程序在 Notification Services 内部运行。宿主事件提供程序可以连续运行,也可以按照应用程序定义中所定义的计划运行。这些事件提供程序由称为“事件提供程序宿主”的 Notification Services 组件运行。事件提供程序宿主与生成器组件按照应用程序定义中指定的同一个计划运行。
非宿主事件提供程序以外部应用程序的方式运行,并按照各自的计划提交事件。例如,驻留在 Internet 信息服务 (IIS) 中的事件提供程序就是一个非宿主事件提供程序,因为它通过 Web 来提交事件。驻留在您编写的进程内部的事件提供程序也是非宿主事件提供程序。
事件批处理
事件提供程序按批写入事件。按批写入事件可以使生成器一次性联接当前的订阅集与批事件中的所有事件。这种以批为单位的处理模式可以提高应用程序的性能。
请参阅
概念
订阅管理体系结构
订阅处理体系结构
通知的格式化和传递体系结构
其他资源
Notification Services 视图
定义事件类
定义事件提供程序