• 热门标签

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

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

对于以上功能调用的一个例子如下:
程序清单11 - 2 9
让我们看看调用这些方法的服务器代码。再次强调服务器实现并不需要使用与客户相同的
语言(甚至平台)。但是我们将得到相同的功效,就像为客户做的那样。
(7) ASP
程序清单11 - 3 0
第11章服服务器到服务器使用443 下载
(8) Java
程序清单11 - 3 1
(9) PHP
程序清单11 - 3 2
11.3.5 书籍应用例子
下面的这个应用的例子( Wr o x网站上有一些相关的本书没有显示的代码)表明如何激活一
个远程程序来接收消息和更新远程的信息库。Wrox Books已经决定在世界五个不同的地方安装
五个远程服务器。在那里,书籍信息以X M L文件的方式存储。尽管这些文件也能从在伯明翰的
本地服务器上直接更新(假设书籍目录的维护是在该站点进行的),使用者将能够选择咨询地点
并得到一个主题表单,当这个表单被返回,使用者能选择一个主题以及查询的区域。这样,就
能在这些地点得到有关该主题的信息。
让我们看看表示相关过程的图表(参见图11 - 1 2)。
444使用XML 高级编程
下载
图11-12
一个想获得一个或更多服务器上书籍信息的使用者,将通过显示器来选择站点,进而通过
该站点获得一个书籍主题的列表(参见图11 - 1 3)。
图11-13
产生显示的H T M L如下所示,它在文件c l i e n t . h t m里(参见程序清单11 - 3 3):
程序清单11 - 3 3
第11章服服务器到服务器使用445 下载
Glasgow
web服务器
客户web
浏览器
Milano web
服务器
悉尼web
服务器
伯明翰本地
web服务器
达拉斯web
服务器
响应返回了一个城市的列表,以及一个书籍主题的下拉式列表(参见图11 - 1 4)。
图11-14
在特定的远程站点,相关书籍的数据在被存入到一个X M L文件里。这个文件被称作
C i t y N a m e B o o k s . x m l,每个文件是否被查询取决于选择的城市。因此,所有城市的X M L数据文
件都是不同的,并被该站点更新。
这个例子说明了X M L - R P C的强大,每一个X M L库均能存在世界上不同的远程服务器上。
446使用XML 高级编程
下载
同样,使用这个例子,不仅能够将所有的X M L库放进网络服务器的一个目录里,还能够
通过在不同端口创建We b实现多个虚拟服务器。可以通过如h t t p : / / m y s e r v e r :
port/<citystore>.xml的方式实现访问,位置对客户是完全隐藏的。
关于在何处指定X M L库位置的进一步描述将在本章给出。
下面的X M L文件是为G l a s g o w书店建立的。这里有许多书,但每本书必须包含一个书的I D、
出版日期、书名、作者以及书的类属。出版日期是U K日期格式,所有的处理将在伯明翰U K
We b服务器上。很明显,如果该X M L文件要在一些国际化的服务器上处理,使用类似于I S O
8 6 0 1(该格式被X M L - R P C规范内部使用)时间格式将更有好处。
程序清单11 - 3 4
第11章服服务器到服务器使用447 下载
1. 获得主题列表
图11 - 1 5将表明从X M L数据文件里获得一个主题列表的过程。
图11-15
表单被提交到一个称作s u b j e c t . a s p的页面上,它是用V B S c r i p t写的。我们必须首先将X M L -
R P C客户/服务器的文件包含进来,该文件包含了一个功能即将你的方法调用转换成标准定义
(就A S P而言,目前使用的是V B S c r i p t)。
然后可以使用H T M L在屏幕显示城市及其复选框,这个文件称作p r o x y. a s p,当按照选择的主
题查询书籍时它将被使用。
程序清单11 - 3 5
448使用XML 高级编程
下载
Client.html
不可为所有使用者
利用的网页,用于
选择将查询的远程
站点
Subjects.asp
向使用表单的使用
者显示相关主题
提交选择
的城市
XML RPC调
用激活方法
Getsubjects()
使用被选城
市作为参数
Bookserver.asp
按照R P C调用里要求的方法查询
一个本地X M L文件并返回结果到
Subjects.asp
Subjects.asp
检查P O S T发现哪个城市被选中,并为
每个所选的城市在该远程站点调用
B o o k s e r v e r. a s p (如果G l a s g o w被选中,
那么该处的web服务器将被查询)
然后我们创建一个目录对象的实例来保存每一个返回的主题的名字。将使用函数
C h e c k D u p l i c a t e(),这个函数决定是否一个主题的实例已经被找到。如果没有,它将被去掉
—这样就可以避免用户在下拉列表中看到重复主题。
程序清单11 - 3 6
然后我们引用在前页c l i e n t . h t m中的隐藏元素F u n c t i o n,它将用于定义被激活的X M L - R P C方
法。我们想调用的这个方法称作G e t S u b j e c t s(),被选城市将被作为一个参数传送,因此我们声
明一个数组(该参数必须以数组形式传送)称作p a r a m l i s t,有一个元素。
程序清单11 - 3 7
这些值被插入到一个断开的记录集中去,因为有记录集对象的s a v e()方法,因而保存分布
式系统数据是简单的。记录集设置了用户游标来许可记录集的断开。
程序清单11 - 3 8
随后,在记录集对象里创建一个区域。我们想通过标题的地点和它在本地的唯一I D来识别
第11章服服务器到服务器使用449 下载
每一个标题。因此,我们在记录集里附属三个标题, I D作为一个整型来定义(整型在A D O记录
集里以“3”来定义),标题和城市作为字符串(字符串型在A D O记录集里以“ 8”来定义),然
后使用O p e n()打开记录集进行操作。
程序清单11 - 3 9
因为在每一个城市都有一个服务器,我们产生X M L - R P C调用来得到一个相关主题的列表。
首先检查客户是否已经查看了G l a s g o w数据库,做这个工作是通过检查FORM POST,而F O R M
 
中国航空网 www.aero.cn
航空翻译 www.aviation.cn
本文链接地址:XML高级编程上(141)