• 热门标签

当前位置: 主页 > 航空资料 > 计算机 >

时间:2010-08-09 13:16来源:蓝天飞行翻译 作者:admin
曝光台 注意防骗 网曝天猫店富美金盛家居专营店坑蒙拐骗欺诈消费者

我们的应用程序样例是一个编程小组管理工具。我们希望根据姓名搜索特定的程序员,并
获得他所完成的项目的成绩报告清单。用户应该能够添加新的程序员记录,并给现有的程序员
添加性能报告。我们会将X M L作为浏览器和服务器之间数据通信的手段。同时利用We b页面中
的J a v a S c r i p t和服务器端的ASP JavaScript实现应用程序的功能。
之所以采取X M L这类新技术,是因为它能够满足当前技术不能很好处理的一些需求。需要
这样的暗示性问题,我们对应用程序特性的需求能满足当今计算环境。在分析实例之前,我们
首先阐述一下We b开发人员面临的问题。为了帮助你解决这个问题,我将提出五条指导性原则。
毫无疑问, X M L是解决方案的核心。
本实例的大部分材料来自《Designing Distributed Applications》一书(Wrox Press,I S B N
1 - 8 6 1 0 0 2 - 2 7 - 0)。该书详细说明了我在此总结的弱点的根源和动机。本章即将出现的应用
程序实例与该书中的应用程序略有不同,在本章中,该程序的作用是引出用于说明开发
原则的扩展实例。这个实例是完全独立的。即使不参考以前的书,你也完全能够通过本
例理解XML在ASP应用程序中的作用。
16.1 目前的弱点
近年来,We b应用程序非常流行。许多新的应用程序都是用We b协议和工具构建的。We b似
乎成为一种出色的计算环境。对于这种赞誉,它自然当之无愧,然而它同时对程序员提出了一
些新的挑战。如果我们不对此做好准备的话,它们将发展成为我们将面临的主要问题和弱点,
并最终削弱构建功能强大的应用程序的能力。然而,到底有哪些弱点呢?
1. 处理不断增长的复杂性
功能强大的站点要解决的问题常常与独立的应用程序一样复杂。而且,分布式系统本身的
特性进一步增加了它的复杂度。无法管理的复杂性是分布式系统的一个弱点。随着后期开发的
客户端对于资源的含义和功能越来越不了解,资源的价值也变得越来越微弱。
由于基于We b的应用程序很容易实施,它不需要经过任何人的允许就能够添加到I n t e r n e t上
(除了需要获得域名之外),因此We b服务器和服务迅速发展和成熟。虽然有人可能理解他们能够
执行的操作,但是多数本来能够使用某些功能的用户却不知道存在这些特殊的功能。功能将被
一次次不必要地重复实现,仅仅因为没有定义用于说明可用功能的机制。这在公共的I n t e r n e t中
尚可忍受;但是在企业内部网中,这不仅是一种浪费,而且也是企业网存在的弊病。
2. 不灵活的应用程序
应用程序,甚至是We b应用程序,也常常是针对特定的客户端编写的。如果改变客户端的需
求,你必须重写服务器端程序,或者创建极其类似的新服务。
3. 代码的重复
新的应用程序常常重复大量现有的代码,因为需求和规范的变化很小。代码的重复可以视
作是一种极大的浪费。
4. 向自动化We b任务的转移
假设我们有一个We b应用程序,它通过基于浏览器的界面与用户交互,完成用户要求的任务。
现在,我们希望将它变为自动的过程—消除手工干涉,直接将两个应用程序连接在一起。但
是,存在这样一个问题。服务器以前产生的H T M L是供人类使用的。然而,我们越来越期望将应
用程序连接在一起,消除其中的手工干预。基于We b的B 2B贸易就是实例之一。如果B 2 B过程的
每一步都由用户读取结果并重新提供输入,就会使电子商务的许多优越性丧失殆尽。但是,在
实现任务自动化的过程中,我们却发现H T M L很难保存数据的含义。H T M L的主要用途是提供可
视化的样式,而不需要人类干预的应用程序对此并不感兴趣。
5. 分布式开发和实施小组
当某些组织机构提供的服务不在预期的客户端控制之下时,就会遇到麻烦。
例如,在你建立的企业外部网供应链应用程序中,某些服务可能必须依赖于外部合作伙伴。
当协作不正规或者不存在协作时,服务将转移、改变或消失。为了跟上环境的变化而产生的管
理开销将迅速增长。为此,我们需要依靠新的技术和服务构建灵活、强健、能容错,且能够根
据需求变化的分布式系统。更重要的是,在实现这一目标时,应该消除人类的干预。
16.2 构建网络应用程序的五条原则
只要开发小组的每个成员能够就实现应用程序所需的工具和技术达成一致,就能够利用众
所周知的技术克服任何弱点。然而在We b上,要达成这种一致是不现实的。依我看来,可行的解
决方案是建立一个较短的公共原则列表。这个列表必须足够短,保证每个人不必做大的改动或
技术承诺就能够同意。我提出了五条核心原则。
这五条原则包含了开发应用程序所需获得的目标,它将促进应用程序代码的重用,提高应
用程序在面对需求和程序变化时的适应能力。
构建协作网络应用程序的五条原则包括:
(1) 从粗粒度服务构建应用程序—应用程序应该协调来自基于服务器的模块的离散结果,
这些模块使用各种部件解决特定的问题或完成特定的任务。
(2) 通过查询目录发现服务—应用程序应该在运行时通过查询目录寻找所需的服务的位置
第16章实例研究2—XML和分布式应用程序使用685 下载
和名称。它不应该寻找特定的实现,而是应该寻求能够解决特定问题或任务的任何服务实现。
(3) 将服务提供为自描述数据—应用程序应该通过交换结构化数据处理服务,这些数据符
合事先约定的语法。而且,它们是根据专为服务所要解决的问题或者要执行的任务定义的词汇
表编写的。
(4) 服务是短暂的—应用程序查找和使用服务只需要很少的几个(最好是一个)往返,而
且在往返过程中不必保存状态信息。在交互过程中,应用程序和服务都不认为对方是长期可用
的。
(5) 服务必须可扩展,且能够降低对外部的要求—服务必须考虑到将来的增强,比如:自
身逻辑的增强,或者本身与其它应用程序和服务交换格式的增强。遇到新版本的交换数据时,
服务应该尽可能利用这些数据。当应用程序和服务接收到不符合要求的格式时,都不能崩溃。
 
中国航空网 www.aero.cn
航空翻译 www.aviation.cn
本文链接地址:XML高级编程下(55)