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

XML高级编程上(135)

时间:2010-08-09 13:05来源:蓝天飞行翻译 作者:admin 点击:
  
消费者
转卖商
书库
零售商依照得到
的书籍描述,将
定单发送给书库
书库向零售商提
供所有书籍的详
细描述,包括最
新出版的图书
消费者从零售商
处索取书籍标题
利用X M L的(参见图11 - 2)。
图11-2
11.1.1 基于FTP的XML传送
在书库中有一个常规性的处理过程即送X M L文档到零售商,此X M L文档包括数据库中所有
最近出版的书籍的标题信息,例如目录、主题、内容摘要和价格等。显然,经过一段时间将会
有成千上万的标题信息,因此X M L文档将变得很大。这就决定了通过F T P传送这些文档是最有
效的一种方式,因为这种方式适合于成块的数据传送。
这是一个后台自动、异步的过程,同时,我们必须在零售商的目的服务器运行一个进程,
它对到达的X M L文件扫描目标目录,并且进行适当的工作,如索引某条消息,并将它插入到商
务书籍数据库中。
图11 - 3将显示该工作过程。
图11-3
11.1.2 XML和消息队列
零售商订购相关所需书籍的过程也是异步的,不过比起通过F T P来传送X M L文档,这个过
422使用XML 高级编程
下载
消费者
转卖商
书库
2. M S M Q上
的XML
3. 通过H T T P
的XML
4. 通过S M T P
的XML
1. F T P上
的XML
书库服务器
分销商服务器
将数据插入本地
数据库
服务器处
书单被标记成为XML 理进程
并通过FTP传送
程要相对轻松一些。这个订单在某一刻将被呈递。消息能够到达是很重要的,因此最好的技术
是消息队列,例如微软消息队列( M S M Q)或者I B M系统的M Q S e r i e s队列(参见图11 - 4)。
图11-4
订单消息并不是直接送至服务器处理,而是被排成一个消息队列并迟一些时间再处理。订
单在X M L中被传递,该X M L将从使用标记订购书籍的X M L文档中得到,这个文档就是此前已经
通过F T P传出的。
11.1.3 基于HTTP的XML
当一个消费者从零售商处购买一本书时,他使用网络浏览器并提交一个关于该书的X M L文
档,这个请求将被同步处理,并且能作为一个MSXML 被呈送到We b服务器。或者,如果我们开
发一个定制的组件,就能在其中使用M S X M L组件去实现XML HTTP请求(参见图11 - 5)。
图11-5
11.1.4 基于SMTP的XML
消费者订购图书能够采用的最后一种方式是通过S M T P(e - m a i l)。其中,一个X M L文档将
被传送,必须符合以下两点,即遵照一个有效的框架,并有一个检查特定的P O P 3邮箱的过程,
这个邮箱是专供有效的X M L书籍定单使用,这些定单是参照订购计划制订的,在消费者与零售
商之间的订购允许异步(参见图11 - 6)。
第11章服服务器到服务器使用423 下载
分销商服务器
书库服务器进程订单
将定单放入队列
客户分销商服务器
通过HTTP订购图书向数据库中插入
定单信息
Web服务器
图11-6
11.2 作为一种分布式组件模式的XML
前面已经演示, X M L作为一种消息在系统间传送有很多种方式,下面我们将关注针对X M L
消息传送而出现的一些流行的方式和标准。
11.2.1 消息传送和串行化
典型的X M L文档被构造成描述性结构、人可读数据,并可对此进行一些处理。我们可以将
此概念扩展到机读数据,并使用数据串行化按照一个明确的标准来传送消息。这样既减少了平
台的依赖性,又通过使用代码简化了操作。
消息传送包括一个称作串行化的过程和它的反转过程即逆串行化。通过串行化,一个数据条
目被构造成简单的一维数组在线传送,例如数据“ H e l l o,Wo r l d!”能够被串行化为这种格式:
同样一个包含有数据的记录集如表11 - 1所示。
表11 - 1
列名值
F i r s t N a m e S t e v e n
L a s t N a m e L i v i n g s t o n e
C i t y G l a s g o w
它的串行化如下所示。
程序清单11 - 1
424使用XML 高级编程
下载
客户
分销商服务器
向数据库插入
定单信息
信箱监视
通过SMTP订购图书过程
一旦我们使数据串行化,就能够使它作为一种简单的文本在不同的系统中传送,在目的地
又使用逆串行化使之恢复到合乎需要的系统格式。有许多协议能够用于传送串行数据,最流行
的是H T T P、F T P和S M T P(该协议用于传送e - m a i l)。
1. 使用X M L - R P C和S O A P的串行化
这一章里的主要焦点是X M L - R P C(X M L远程过程调用),我们将看到它将串行化一些简单
和比较复杂的数据形成X M L并在I n t e r n e t上传送。执行上它将允许许多语言类型被串行化(或逆
串行化),并有一个广阔的范围,非常适合I n t e r n e t。S O A P即简单对象访问协议,是一个更复杂
和更成熟的X M L - R P C,我们将在后面作一些描述,二者都是完全开放的(在编写本书时),并
且可以被许多平台所运用。
X M L - R P C可能是最流行的、最有用的基于X M L的分布式通信协议。S O A P在较长时间后可
能成为其继任者—对更为复杂的系统尤其如此。
2. Coins(X M L和J a v a的混合)
由于有对J a v a串行化的依赖,一些人并不认为J a v a b e a n s是在J a v a中写组件的最好方法。
C o i n s混合了X M L和J a v a,并用X M L代替了串行化,并且不保存对象的状态。它的目标是使程序
之间的消息传送变得简单。
而且,由于X M L是简单自然语言(它没有J a v a b e a n s那么严格),使得调试过程得到了改进。
在处理过程中,也少了许多限制——这是由于在X M L格式里,数据能够很容易地在不同应用程
序中改变。如果参考外部组件,那么C o i n s也能够再还原为X M L文档,这是因为C o i n s支持独立
文档中元素之间的链接(相反,传统的J a v a b e a n s并不支持超链接且很少支持组件划分)。
 
中国航空网 www.aero.cn
民航翻译 www.aviation.cn
本文链接地址:XML高级编程上(135)
 
------分隔线----------------------------