• 热门标签

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

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

C o i n s需要在X M L文件与J a v a对象间建立密切的联系,而X M L - R P C在X M L中是一个静态的
接口。这就导致了交换消息的程序之间的依赖性。数据元素能够通过一个更新程序被加入,而
不需要对另一个程序同步更新。
关于Coins的进一步信息可参考此网站:http://www.jxml.com/coins/index.htm/。
3. WDDX的串行化过程
基于以上二者之间的是W D D X,即分布式We b数据交换,它是在程序之间交换复杂数据结
第11章服服务器到服务器使用425 下载
构的一种技术。它基本上是语言独立的X M L数据的描述标准,它还包括一套串行化/逆串行化的
模块。模块被A l l a i r e所发展。目前,它已经被JavaScript 1.x 、ColdFusion 4.0、C O M、P e r l和
J a v a所包含。W D D X使用X M L描述分布式对象,但并不像X M L - R P C那样激活一个远程调用。
可以从h t t p:/ / w w w·w d d x . o rg /网站中下载WDDX DK并能得到关于W D D X的更进一步的
描述。
W D D X的应用程序将通过串行化把对本地对象的描述打包,然后传送给远程服务器,在那
里,一个应用程序将使用逆串行化过程解包,并产生有用的相关信息。
W D D X并不关心数据如何被发送,只关心数据已被提交到一个网页,而该网页能够从请求
对象中访问被串行化的X M L,一个包含有所需书籍标题名字的简单W D D X数据包,如下例所
示:
程序清单11 - 2
我们能够使用脚本并通过消息的串行化创建数据包,下面就是一个P e r l的例子:
Perl WDDX库在可下载的S D K中。
程序清单11 - 3
下面是一个J a v a S c r i p t的例子,功能和上面的例子相同:
426使用XML 高级编程
下载
程序清单11 - 4
然后,我们将这个已串行化的W D D X消息存储在一个H I D D E N元素中,而这个元素允许消
息从一个表单区提交来— 我们称这个H I D D E N区域为W d d x C o n t e n t。当内容被提交到
W d d x C o n t e n t后,将使用逆串行化过程得到原始消息,使用W D D X逆串行化对象去进行此项工
作。
程序清单11 - 5
W D D X是一个非常有用的规范,并能同许多语言协同工作。实际上,它已经被A l l a i r e(它
的发明者)用于一些产品的制造,但是,比起X M L - R P C和S O A P来,它是一个较为封闭的规范,
并与这些规范的要求不一样。同时,它比起S O A P来有较多限制,但对于简单分布式通信而言它
是胜任的。
4. XMOP的串行化过程
XML Metadata Object Persistence即X M L元数据对象一致性,它的目标是使如C O M、J a v a和
C O R B A等技术能交互运行,而这是通过提供形式对象串行化的机制来实现,这种机制与特定的
系统对象并无联系。因此对象能够在C O M和J a v a之间配置,甚至能够在不同的J a v a的虚拟机上
第11章服服务器到服务器使用427 下载
配置。
值得注意的是X M O P是X M L - R P C或者S O A P的补充(例如在S O A P方法调用中作为一种界面
参数串行化的方式)。
X M O P使用SODL (简单对象定义语言) (SODL可参见h t t p : / / j a b r.ne.mediaone.net /documents
/sodl.htm) 即XML IDL DTD,它允许在C O M和C O R B A中通过使用I D L使得对对象描述保持兼容
性,X M O P实际上使用S O D L的DTD 1.0版本。
更多的信息请访问:http//jabr.ne.mediaone.net/documents/xmop.htm。
5. KOALA的串行化
另一方面, K O M L(K o a l a对象标记语言)是一种J a v a解决方案,它描述如何串行化和逆串
行化一个X M L文档中的J a v a对象,并遵循XML 1.0的标准和SAX 1.0标准。一些人可能发现它是
有用的,因为它是一个1 0 0 %的J a v a解决方案,但是因为它仅能服务于J a v a对象,这就限制了它
的使用,在I n t e r n e t上更是如此。
K o a l a方案使用J a v a S e r i a l i z a b l e接口类实现集成。
一个K o a l a可串行化对象必须实现接口j a v a . i o . S e r i a l i z a b l e,因此用J a v a描述的一个叫做Bo o k
的类有下面的代码:
程序清单11 - 6
在K O M L中将被表现为如下的X M L文档:
程序清单11 - 7
一个K O M L文档的命名空间将指向URL http://www. i n r i a . f r / k o a l a / X M L / k o m l 11 . d t d,关于
KOML的进一步信息,能在如下站点找到:http://www.inria.fr/ koala/XML/serialization/。
11.2.2 紧耦合系统和松耦合系统
下面我们将讨论X M L所提供的松耦合系统的优点和缺点,松耦合系统是与传统的紧耦合系
428使用XML 高级编程
下载
统比较而言的。当今的许多应用程序仍提供紧耦合系统,它要求理解在其中传递的消息格式,
例如是否这些消息使用了D C O M或C O R B A(I I O P)。另一方面,松散耦合系统并不需要系统间
如此严格的理解,至于X M L,它仅是一个在其间传送的简单文本。
1. 松耦合系统的缺点
对于一个分布式组件解决方案来讲,使用松耦合的X M L的两个最大可能的缺点是带宽和速
度。例如,尽管X M L消息的创建是简单的,但是在它们被传送到应用程序前必须通过一个X M L
解析器而使之有效,这个过程是非常重要的。同时,将一个标记文本加到数据中去组成一个
X M L文档也是很重要的,通过传送增加了网络的通信量(尽管使用压缩技术可以减少网络的通
信量)。
紧耦合系统了解其间传输的消息的格式。与X M L消息比较而言,它能节省网络成本,因为
X M L的消息必须经过解析。当然,传统的紧耦合系统经常需要“握手”,并且如果服务器升级为
另一个新的格式,将很容易导致这种“握手”失败。
2. 松散耦合系统的优点
事实上,基于X M L的组件框架是能够被升级的,多种方法的调用能够被打包在一个请求里,
这与传统的客户-服务器模式相反,在这种模式里,每个被调用的方法都必须产生一个请求。
图11 - 7显示了传统的远程方法调用的过程:
 
中国航空网 www.aero.cn
航空翻译 www.aviation.cn
本文链接地址:XML高级编程上(136)