下载
第17章 实例研究3
—
图书目录信息服务
在本章的实例研究中,我们将在S A X 和X P a t h 的基础上创建强大的图书目录信息服务(B C I S )。
该系统允许出版者上载描述图书内容的 X M L 目录文件,过滤其中的详细信息,然后以 X M L 或
H T M L 的格式通过电子邮件传递给系统的订阅者。两种传输格式都提供了 U R L,通过它们可以
查看书目,并在 A m a z o n . c o m 进行在线购买。这些 U R L 都是根据图书的 I S B N和A m a z o n 目前的
We b站点结构动态生成的。它们并没有包含在原始的源文档中,这意味着 B C I S 系统具备包含到
任何在线书店链接的潜力,这主要取决于订阅者的喜好。
B C I S 必须具备扩展性,能够处理任意大小的 X M L 目录文件,所以它使用 S A X解析器来访问
所有的X M L 数据文档。我们曾经在本书前面的一些章节中讨论过, S A X 解析器在处理前并不把
整个X M L 文档调入到内存中,而且在任何时候都只在内存中保留文档的一小部分
—
内存的确
切使用数量取决于文档中的元素嵌套情况。这意味着对能够处理的文件大小并没有上限限制,
也不必关心处理过程中使用的内存数量。这两点都非常重要。如果系统在 D O M 中载入文档,通
常情况下它会受到可用内存数量的限制,或者因为分页而运行得非常缓慢。
B C I S 是根据出版商/购买者之间的推模式规划的:出版商(服务器)直接把图书的细节传递
给购买者(客户),而不是购买者向出版者索取相应的信息。 B C I S的订阅者可以选择两种图书目
录(例如与A S P 、X M L等等有关的图书),过滤出需要传递给自己的信息。所以,如果出版商上
载的目录文件包含 8 000本关于花园的图书, 25 000本关于汽车的图书, 2本关于X M L 的图书,
那么注册时仅表示出对X M L 兴趣的订阅者只会收到关于这 2本X M L 图书的信息。
出版商/购买者之间的推模式有几个关键的优势,使得它对于许多应用来说是一个极具吸引
力的选择:
• 它节省了购买者的时间,因为不再需要翻阅出版商的信息,以了解最新变化。
• 它使得信息发布者能够节省宝贵的资源和带宽,因为服务器不再需要处理和服务由客户端
可能发出的大量请求(因为没有发生什么变化)。
• 出版者知道订阅者更希望了解的是信息,所以不再依赖于读者记得回到源位置来查看是否
有更新信息。
可能时下最流行的出版商 /购买者服务的应用就是新闻邮件和 We b 站点的更新通知。在这两
种情况下,出版商知道客户端感兴趣的是他们所提供的信息,或者提供的特定服务,所以在相
关事件(例如We b站点中增加了新页面)发生时会把信息用电子邮件通知客户。当客户接收到信
息时,会在空闲时阅读其中的内容,再决定是否采取进一步的动作,例如点击可能包含在电子
邮件当中的超链接。这些类型的应用也可能根据过滤、传输、从服务器向客户端传递数据的原
则进行构建。这意味着 B C I S 的编制风格使它很容易就能支持任何类型的信息和传输机制。正是
出于这一原因,这类应用的设计看起来稍微有些复杂,但我们希望在本章结束时大家能够理解
其中的原理。