曝光台 注意防骗
网曝天猫店富美金盛家居专营店坑蒙拐骗欺诈消费者
地”与其他客户端应用程序配合使用。
然而,我们的工作并非尽善尽美。我们犯的错误将用以说明我们提出的开发原则的价值。
16.12.1 违反的开发原则
数据绑定迫使我们的程序员将I T S t a ff e r词汇表与程序员表单以及P r o j R e p o r t词汇表与成果报
告历史表单紧密结合。实际上,我们并不能将之称为违背开发原则,至少在缺少公认的元数据
标准的情况下。使用数据绑定极大地简化了编程任务,而且使客户端能够具有简洁的用户界面。
然而,词汇表的改变会严重影响到客户端应用程序。
由于我们在代码中没有区分I T S t a ff e r和S t a ff e r元素,因此丧失了绝好的代码重用机会。在本
例中,这两个元素的差别极小,因此没有理由使用附加的代码。然而,在现实世界中,我们要
建立用于处理普通S t a ff e r词汇表的函数,然后用其他函数处理特殊的I T S t a ff e r词汇表。专有化的
函数将调用通用函数中已经实现的功能,以处理I T S t a ff e r文档的通用部分(S t a ff e r元素)。
16.12.2 组件
程序因使用了M S X M L及其相关接口、XML DSO和I X M L H T T P而得到简化。虽然这使得我
们的客户浏览器局限于Microsoft Internet Explorer 5.0,但是要想通过自己的编程代替这些组件
提供的主要功能非常困难。我们特定的应用程序可以完全在服务器上执行,它用A S P编写,返回
H T M L。然而,这种方法使得其他应用程序无法重用我们实现的服务,特别是自动化的客户。我
们鼓励的代码重用是以客户编程为代价的。然而,我们确实有所损失。我们没有创建任何自己
的组件。特别是,我们的开发原则提倡在每一层都使用组件,并将组件数据转化为X M L在平台
之间传递。哪里有与I T S t a ff e r和P o r j R e p o r t相关的组件?
我们本应该使用JavaScript 将I T S t a ff e r类创建为C O M组件。应该利用它检查是否违反了字段
限制或业务规则。例如,可以根据企业职称分类数据库检查某个职称是否合法。在应用程序的
服务器端,这类组件非常有价值。在我们这个仅仅用于说明X M L应用的例子中,不可能也没有
必要采取这种方式,然而在现实世界中,这是至关重要的。事实上,其他应用程序只能重用本
例中的脚本,而无法重用完整的代码。如果不编辑源代码,本例没有任何可重用的组件。
16.12.3 重用的可能性
然而,本章介绍的应用程序中有两个资源是将来可重用的:分别由H i s t o r y. a s p和S t a ff . a s p表
示的服务。这些服务是通用的,而且符合我们的开发原则,因此任何需要这些词汇表的应用程
718使用XML 高级编程
下载
序可以调用它们。这就是协作网络应用程序的目的。你开发服务,通过目录列表发布它。由于
这些服务有已知的接口,因此客户应用程序可以使用它们。在本例中,接口包含X M L词汇表。
如果这些词汇表能够忠实地反应商业运作中的某个有用部分,它们本身就是可重用的资源。
16.13 小结
在本章中,我们介绍了将X M L与A S P相结合的基本方法。看到X M L非常适于A S P和动态文
档生成。使用了一些特定平台的工具,主要是M S X M L的I X M L H T T P接口和数据绑定。如果要保
证应用程序的平台独立性,需要将所有处理移至服务器端,使用与平台无关的组件,或者针对
不同的浏览器产生不同的客户页面版本。
我们看到了普通的编程方法在I n t r a n e t和I n t e r n e t应用程序设计中暴露出的问题。例如:
• 处理日益增长的复杂性。
• 不灵活的应用程序。
• 代码重复。
• 转向自动化We b任务。
• 分布式开发和实施小组。
在We b开发中,为了克服以上弱点,我提出了五条原则:
• 从粗粒度服务构建应用程序。
• 通过查询目录发现服务。
• 将服务提供为自描述数据。
• 服务应该是短暂的。
• 服务必须可扩展,且能够降低对外部的要求。
最后,我将理论与实践相结合。事实证明, X M L是一种能够实现这五条原则的出色技术。
A S P也非常适于构建基于We b的服务。总而言之,如果要建立功能强大的We b应用程序,而且要
满足松散连接的网络和应用程序的特殊需求, A S P和X M L是最合适的选择。
第16章实例研究2—XML和分布式应用程序使用719 下载
下载
第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等等有关的图书),过滤出需要传递给自己的信息。所以,如果出版商上
中国航空网 www.aero.cn
航空翻译 www.aviation.cn
本文链接地址:
XML高级编程下(64)