﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-桔子园-随笔分类-Web Service</title><link>http://www.blogjava.net/orangelizq/category/24107.html</link><description>orangelizq</description><language>zh-cn</language><lastBuildDate>Wed, 22 Jul 2009 05:21:06 GMT</lastBuildDate><pubDate>Wed, 22 Jul 2009 05:21:06 GMT</pubDate><ttl>60</ttl><item><title>[转]XML解析技术研究--冯进-国防科技大学</title><link>http://www.blogjava.net/orangelizq/archive/2009/07/21/287567.html</link><dc:creator>桔子汁</dc:creator><author>桔子汁</author><pubDate>Tue, 21 Jul 2009 01:29:00 GMT</pubDate><guid>http://www.blogjava.net/orangelizq/archive/2009/07/21/287567.html</guid><wfw:comment>http://www.blogjava.net/orangelizq/comments/287567.html</wfw:comment><comments>http://www.blogjava.net/orangelizq/archive/2009/07/21/287567.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/orangelizq/comments/commentRss/287567.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/orangelizq/services/trackbacks/287567.html</trackback:ping><description><![CDATA[鉴于国防科技大学冯进的XML解析技术研究与我之前的一篇文章同名，引起部分读者疑惑，因此特将此文的部分贴图发出，以供大家比较，参考学习。<span style="color: #0000ff">在此未经过原作者同意，请谅解</span>。在此仅给出部分截图，如对原文感兴趣，请到<a href="http://epub.edu.cnki.net/">http://epub.edu.cnki.net/</a>&nbsp;下载。<br />
<br />
<br />
<br />
<img height="788" alt="" src="http://www.blogjava.net/images/blogjava_net/orangelizq/xml解析/001-g.JPG" width="841" border="0" /><br />
<img height="363" alt="" src="http://www.blogjava.net/images/blogjava_net/orangelizq/xml解析/002-g.JPG" width="862" border="0" /><br />
<img height="520" alt="" src="http://www.blogjava.net/images/blogjava_net/orangelizq/xml解析/003-g.JPG" width="849" border="0" /><br />
<img height="651" alt="" src="http://www.blogjava.net/images/blogjava_net/orangelizq/xml解析/004-g.JPG" width="849" border="0" /><br />
<img height="820" alt="" src="http://www.blogjava.net/images/blogjava_net/orangelizq/xml解析/005-g.JPG" width="631" border="0" /><br />
--<br />
<img height="815" alt="" src="http://www.blogjava.net/images/blogjava_net/orangelizq/xml解析/006-g.JPG" width="629" border="0" /><br />
<img src ="http://www.blogjava.net/orangelizq/aggbug/287567.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/orangelizq/" target="_blank">桔子汁</a> 2009-07-21 09:29 <a href="http://www.blogjava.net/orangelizq/archive/2009/07/21/287567.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>WSRF研究--WS-N协议族</title><link>http://www.blogjava.net/orangelizq/archive/2009/07/19/287339.html</link><dc:creator>桔子汁</dc:creator><author>桔子汁</author><pubDate>Sun, 19 Jul 2009 07:52:00 GMT</pubDate><guid>http://www.blogjava.net/orangelizq/archive/2009/07/19/287339.html</guid><wfw:comment>http://www.blogjava.net/orangelizq/comments/287339.html</wfw:comment><comments>http://www.blogjava.net/orangelizq/archive/2009/07/19/287339.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/orangelizq/comments/commentRss/287339.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/orangelizq/services/trackbacks/287339.html</trackback:ping><description><![CDATA[&nbsp; <a name="_Toc197767474"><span lang="EN-US" style="font-family: 'Times New Roman'; mso-fareast-font-family: 宋体">WS-N</span></a><span style="mso-bookmark: _Toc197767474"><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">协议族</span></span><span lang="EN-US" style="font-family: 'Times New Roman'; mso-fareast-font-family: 宋体"><o:p></o:p></span>
<p class="MsoNormal" style="text-indent: 21pt; line-height: 150%"><span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt">WS-Notification</span><span style="line-height: 150%; font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">协议的相关研究最早集中在网格中间件领域，美国的</span><span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt">Argonne National Laboratory</span><span style="line-height: 150%; font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">实验室所主导的</span><span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt">Globus Toolkit</span><span style="line-height: 150%; font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">，为了将网格计算和</span><span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt">Web</span><span style="line-height: 150%; font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">服务进行融合，以</span><span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt">OGSI</span><span style="line-height: 150%; font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">为基础，同</span><span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt">IBM</span><span style="line-height: 150%; font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">、</span><span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt">Akami Technologies</span><span style="line-height: 150%; font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">、</span><span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt">SAP</span><span style="line-height: 150%; font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">、</span><span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt">Sonic Software</span><span style="line-height: 150%; font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">以及</span><span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt">HP</span><span style="line-height: 150%; font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">等公司共同提出了</span><span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt">WSRF</span><span style="line-height: 150%; font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">和</span><span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt">WS-Notification</span><span style="line-height: 150%; font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">协议族，于</span><span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt">2004</span><span style="line-height: 150%; font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">年</span><span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt">5</span><span style="line-height: 150%; font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">月首次提交给</span><span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt">OASIS</span><span style="line-height: 150%; font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">组织。</span><span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt">2006</span><span style="line-height: 150%; font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">年</span><span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt">10</span><span style="line-height: 150%; font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">月，</span><span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt">WS-Notification</span><span style="line-height: 150%; font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">协议族被</span><span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt">OASIS</span><span style="line-height: 150%; font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">正式批准为标准。</span><span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt">WS-Notification</span><span style="line-height: 150%; font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">协议包括</span><span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt">WS-BaseNotification</span><span style="line-height: 150%; font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">，</span><span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt">WS-BrokeredNotification</span><span style="line-height: 150%; font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">和</span><span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt">WS-Topic</span><span style="line-height: 150%; font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">。它是一套基于主题的</span><span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt">Web</span><span style="line-height: 150%; font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">服务通知协议。</span><span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-indent: 21pt; line-height: 150%"><span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt">WS-Notification</span><span style="line-height: 150%; font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">协议族建立于有状态的</span><span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt">Web</span><span style="line-height: 150%; font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">服务基础之上。有状态的</span><span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt">Web</span><span style="line-height: 150%; font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">服务中所描述的状态资源在</span><span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt">WSRF</span><span style="line-height: 150%; font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">当中进行了定义，状态资源的改变可以为通知机制提供事件源。通知信息的事件源正是来自于状态信息的改变。对事件源进行包装成为事件发布者，每一个事件发布者可以被注册为通知主题，从而发布到主题树和通知生产者当中去。</span><span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-indent: 21pt; line-height: 150%"><span style="line-height: 150%; font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">按照通知方式的不同，通知机制可分为基本通知机制和代理通知机制。在</span><span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt">2006</span><span style="line-height: 150%; font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">年</span><span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt">10</span><span style="line-height: 150%; font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">月，</span><span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt">WS-Notification 1.3</span><span style="line-height: 150%; font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">已经正式批准为</span><span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt">OASIS</span><span style="line-height: 150%; font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">标准，它包括如下三个协议：</span><span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-indent: 21pt; line-height: 150%"><span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt">WS-Topic</span><span style="line-height: 150%; font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">：通知主题名字空间，主题，主题表达式结构的定义。主题表达式查询语言的定义。</span><span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-indent: 21pt; line-height: 150%"><span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt">WS-BaseNotification</span><span style="line-height: 150%; font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">：基本通知机制的角色、接口及报文定义。基本通知机制的实现方式是客户端直接向通知生产者订阅感兴趣的主题，通知生产者直接去告之消费者的实现模式。</span><span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-indent: 21pt; line-height: 150%"><span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt">WS-BrokeredNotification</span><span style="line-height: 150%; font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">：代理通知机制的角色、接口及报文定义。代理通知机制的实现方式是客户端者向通知代理订阅感兴趣的主题，而通知生产者先将通知消息告知通知代理，通知代理再将通知去告之通知消费者的实现模式。</span><span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt"><o:p></o:p></span></p>
<br />
（待续）
<img src ="http://www.blogjava.net/orangelizq/aggbug/287339.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/orangelizq/" target="_blank">桔子汁</a> 2009-07-19 15:52 <a href="http://www.blogjava.net/orangelizq/archive/2009/07/19/287339.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>WSRF研究--WS-ServiceGroup协议</title><link>http://www.blogjava.net/orangelizq/archive/2009/07/19/287338.html</link><dc:creator>桔子汁</dc:creator><author>桔子汁</author><pubDate>Sun, 19 Jul 2009 07:51:00 GMT</pubDate><guid>http://www.blogjava.net/orangelizq/archive/2009/07/19/287338.html</guid><wfw:comment>http://www.blogjava.net/orangelizq/comments/287338.html</wfw:comment><comments>http://www.blogjava.net/orangelizq/archive/2009/07/19/287338.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/orangelizq/comments/commentRss/287338.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/orangelizq/services/trackbacks/287338.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: &nbsp; WS-ServiceGroup协议WS-ServiceGroup协议定义了ServiceGroup的概念，它使得我们可以根据各种规则，将 Web 服务和 WS-Resources 成组在一起。以下是WS-ServiceGroup协议中的几个重要定义：l&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Member: A Web se...&nbsp;&nbsp;<a href='http://www.blogjava.net/orangelizq/archive/2009/07/19/287338.html'>阅读全文</a><img src ="http://www.blogjava.net/orangelizq/aggbug/287338.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/orangelizq/" target="_blank">桔子汁</a> 2009-07-19 15:51 <a href="http://www.blogjava.net/orangelizq/archive/2009/07/19/287338.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>WSRF研究--WS-BaseFault协议</title><link>http://www.blogjava.net/orangelizq/archive/2009/07/19/287337.html</link><dc:creator>桔子汁</dc:creator><author>桔子汁</author><pubDate>Sun, 19 Jul 2009 07:49:00 GMT</pubDate><guid>http://www.blogjava.net/orangelizq/archive/2009/07/19/287337.html</guid><wfw:comment>http://www.blogjava.net/orangelizq/comments/287337.html</wfw:comment><comments>http://www.blogjava.net/orangelizq/archive/2009/07/19/287337.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/orangelizq/comments/commentRss/287337.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/orangelizq/services/trackbacks/287337.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;<a name="_Toc197767464"><span lang="EN-US" style="font-size: 15pt; line-height: 173%; mso-fareast-font-family: 'Times New Roman'"><span style="mso-list: Ignore"><span style="font: 7pt 'Times New Roman'">&nbsp; </span></span></span><span lang="EN-US" style="font-size: 15pt; line-height: 173%">WS-BaseFault</span></a><span style="mso-bookmark: _Toc197767464"><span style="font-size: 15pt; line-height: 173%; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">协议</span></span><span lang="EN-US" style="font-size: 15pt; line-height: 173%"><o:p></o:p></span>
<p class="MsoNormal" style="text-indent: 21pt; line-height: 150%"><span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt">WS-BaseFault</span><span style="line-height: 150%; font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">协议描述了一个标准的错误报告机制，定义了一个返回错误信息的基本错误类型。并且</span><span style="color: blue; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">提供了一种方法，为更多的特定目的扩展该基本格式，而不改变最初的结构。</span><span style="line-height: 150%; font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">错误消息格式的一致性，使得各种错误更加容易被理解和处理。</span><span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt"><o:p></o:p></span></p>
<h4><a name="_Toc197767465"><span lang="EN-US" style="font-size: 12pt; line-height: 156%; mso-fareast-font-family: Arial; mso-bidi-font-family: Arial"><span style="mso-list: Ignore">1.1.1.1<span style="font: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp; </span></span></span><span lang="EN-US">BaseFault</span></a><span lang="EN-US" style="font-weight: normal; font-size: 12pt; line-height: 156%; mso-bidi-font-weight: bold"><o:p></o:p></span></h4>
<p class="MsoNormal" style="text-indent: 21pt; line-height: 150%; mso-char-indent-count: 2.0"><span style="color: blue; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">中心概念是</span><span lang="EN-US" style="color: blue"> BaseFault </span><span style="color: blue; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的概念</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">。</span><span lang="EN-US">BaseFault </span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">类似于下面这样：</span></p>
<div style="border-right: windowtext 1pt solid; padding-right: 4pt; border-top: windowtext 1pt solid; padding-left: 4pt; background: #ccffff; padding-bottom: 1pt; border-left: windowtext 1pt solid; padding-top: 1pt; border-bottom: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-element: para-border-div">
<p class="MsoNormal" style="border-right: medium none; padding-right: 0cm; border-top: medium none; padding-left: 0cm; background: #ccffff; padding-bottom: 0cm; border-left: medium none; text-indent: 21pt; line-height: 150%; padding-top: 0cm; border-bottom: medium none; mso-char-indent-count: 2.0; mso-border-alt: solid windowtext .5pt; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt"><span lang="EN-US">&lt;BaseFault&gt;</span></p>
<p class="MsoNormal" style="border-right: medium none; padding-right: 0cm; border-top: medium none; padding-left: 0cm; background: #ccffff; padding-bottom: 0cm; border-left: medium none; text-indent: 21pt; line-height: 150%; padding-top: 0cm; border-bottom: medium none; mso-char-indent-count: 2.0; mso-border-alt: solid windowtext .5pt; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt"><span lang="EN-US"><span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>&lt;<span style="color: red">Timestamp</span>&gt;<st1:chsdate w:st="on" year="2005" month="2" day="15" islunardate="False" isrocdate="False">2005-2-15</st1:chsdate>T03:24:57&lt;/Timestamp&gt;</span></p>
<p class="MsoNormal" style="border-right: medium none; padding-right: 0cm; border-top: medium none; padding-left: 0cm; background: #ccffff; padding-bottom: 0cm; border-left: medium none; text-indent: 21pt; line-height: 150%; padding-top: 0cm; border-bottom: medium none; mso-char-indent-count: 2.0; mso-border-alt: solid windowtext .5pt; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt"><span lang="EN-US"><span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>&lt;<span style="color: red">OriginatorReference</span>&gt;</span></p>
<p class="MsoNormal" style="border-right: medium none; padding-right: 0cm; border-top: medium none; padding-left: 0cm; background: #ccffff; padding-bottom: 0cm; border-left: medium none; text-indent: 21pt; line-height: 150%; padding-top: 0cm; border-bottom: medium none; mso-char-indent-count: 2.0; mso-border-alt: solid windowtext .5pt; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt"><span lang="EN-US"><span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>&lt;wsa:<span style="color: blue">EndpointReference</span> xmlns:wsa="http://www.w3.org/2005/02/addressing"</span></p>
<p class="MsoNormal" style="border-right: medium none; padding-right: 0cm; border-top: medium none; padding-left: 0cm; background: #ccffff; padding-bottom: 0cm; border-left: medium none; text-indent: 21pt; line-height: 150%; padding-top: 0cm; border-bottom: medium none; mso-char-indent-count: 2.0; mso-border-alt: solid windowtext .5pt; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt"><span lang="EN-US"><span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>xmlns:sat="http://example.org/satelliteSystem"&gt;</span></p>
<p class="MsoNormal" style="border-right: medium none; padding-right: 0cm; border-top: medium none; padding-left: 0cm; background: #ccffff; padding-bottom: 0cm; border-left: medium none; text-indent: 21pt; line-height: 150%; padding-top: 0cm; border-bottom: medium none; mso-char-indent-count: 2.0; mso-border-alt: solid windowtext .5pt; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt"><span lang="EN-US"><span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>&lt;wsa:Address&gt;http://example.com/satellite&lt;/wsa:Address&gt;</span></p>
<p class="MsoNormal" style="border-right: medium none; padding-right: 0cm; border-top: medium none; padding-left: 0cm; background: #ccffff; padding-bottom: 0cm; border-left: medium none; text-indent: 21pt; line-height: 150%; padding-top: 0cm; border-bottom: medium none; mso-char-indent-count: 2.0; mso-border-alt: solid windowtext .5pt; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt"><span lang="EN-US"><span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>&lt;wsa:ReferenceProperties&gt;</span></p>
<p class="MsoNormal" style="border-right: medium none; padding-right: 0cm; border-top: medium none; padding-left: 0cm; background: #ccffff; padding-bottom: 0cm; border-left: medium none; text-indent: 21pt; line-height: 150%; padding-top: 0cm; border-bottom: medium none; mso-char-indent-count: 2.0; mso-border-alt: solid windowtext .5pt; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt"><span lang="EN-US"><span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>&lt;sat:SatelliteId&gt;SAT9928&lt;/sat:SatelliteId&gt;</span></p>
<p class="MsoNormal" style="border-right: medium none; padding-right: 0cm; border-top: medium none; padding-left: 0cm; background: #ccffff; padding-bottom: 0cm; border-left: medium none; text-indent: 21pt; line-height: 150%; padding-top: 0cm; border-bottom: medium none; mso-char-indent-count: 2.0; mso-border-alt: solid windowtext .5pt; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt"><span lang="EN-US"><span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>&lt;/wsa:ReferenceProperties&gt;</span></p>
<p class="MsoNormal" style="border-right: medium none; padding-right: 0cm; border-top: medium none; padding-left: 0cm; background: #ccffff; padding-bottom: 0cm; border-left: medium none; text-indent: 21pt; line-height: 150%; padding-top: 0cm; border-bottom: medium none; mso-char-indent-count: 2.0; mso-border-alt: solid windowtext .5pt; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt"><span lang="EN-US"><span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>&lt;/wsa:EndpointReference&gt;</span></p>
<p class="MsoNormal" style="border-right: medium none; padding-right: 0cm; border-top: medium none; padding-left: 0cm; background: #ccffff; padding-bottom: 0cm; border-left: medium none; text-indent: 21pt; line-height: 150%; padding-top: 0cm; border-bottom: medium none; mso-char-indent-count: 2.0; mso-border-alt: solid windowtext .5pt; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt"><span lang="EN-US"><span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>&lt;/OriginatorReference&gt;</span></p>
<p class="MsoNormal" style="border-right: medium none; padding-right: 0cm; border-top: medium none; padding-left: 0cm; background: #ccffff; padding-bottom: 0cm; border-left: medium none; text-indent: 21pt; line-height: 150%; padding-top: 0cm; border-bottom: medium none; mso-char-indent-count: 2.0; mso-border-alt: solid windowtext .5pt; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt"><span lang="EN-US"><span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>&lt;<span style="color: red">ErrorCode</span> <span style="color: blue">dialect</span>="http://www.example.com/NeutronErrorMessages"&gt;</span></p>
<p class="MsoNormal" style="border-right: medium none; padding-right: 0cm; border-top: medium none; padding-left: 0cm; background: #ccffff; padding-bottom: 0cm; border-left: medium none; text-indent: 21pt; line-height: 150%; padding-top: 0cm; border-bottom: medium none; mso-char-indent-count: 2.0; mso-border-alt: solid windowtext .5pt; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt"><span lang="EN-US"><span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>PolarityUnchangedError</span></p>
<p class="MsoNormal" style="border-right: medium none; padding-right: 0cm; border-top: medium none; padding-left: 0cm; background: #ccffff; padding-bottom: 0cm; border-left: medium none; text-indent: 21pt; line-height: 150%; padding-top: 0cm; border-bottom: medium none; mso-char-indent-count: 2.0; mso-border-alt: solid windowtext .5pt; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt"><span lang="EN-US"><span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>&lt;/ErrorCode&gt;</span></p>
<p class="MsoNormal" style="border-right: medium none; padding-right: 0cm; border-top: medium none; padding-left: 0cm; background: #ccffff; padding-bottom: 0cm; border-left: medium none; text-indent: 21pt; line-height: 150%; padding-top: 0cm; border-bottom: medium none; mso-char-indent-count: 2.0; mso-border-alt: solid windowtext .5pt; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt"><span lang="EN-US"><span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>&lt;<span style="color: red">Description</span>&gt;Unable to reverse the polarity of the neutron flow! &lt;/Description&gt;</span></p>
<p class="MsoNormal" style="border-right: medium none; padding-right: 0cm; border-top: medium none; padding-left: 0cm; background: #ccffff; padding-bottom: 0cm; border-left: medium none; text-indent: 21pt; line-height: 150%; padding-top: 0cm; border-bottom: medium none; mso-char-indent-count: 2.0; mso-border-alt: solid windowtext .5pt; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt"><span lang="EN-US">&lt;/BaseFault&gt;</span></p>
</div>
<p class="MsoNormal" style="text-indent: 21pt; line-height: 150%; mso-char-indent-count: 2.0"><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">所有这些值都是可选的，<span style="color: blue">只有</span></span><span lang="EN-US" style="color: blue"> Timestamp </span><span style="color: blue; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">除外</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">，它指出故障是何时实际发生的。</span><span lang="EN-US">OriginatorReference </span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">是对产生故障的</span><span lang="EN-US"> Web </span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">服务的端点引用，而</span><span lang="EN-US"> ErrorCode </span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">和</span><span lang="EN-US"> Description </span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">描述实际的问题。</span><span lang="EN-US" style="color: blue">dialect </span><span style="color: blue; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">属性是一个</span><span lang="EN-US" style="color: blue"> URL</span><span style="color: blue; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">，使我们可以指定如何解释</span><span lang="EN-US" style="color: blue"> ErrorCode</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">。提及的协议映射错误代码到（比如）</span><span lang="EN-US"> POSIX errno </span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">消息。</span></p>
<p class="MsoNormal" style="text-indent: 21pt; line-height: 150%; mso-char-indent-count: 2.0"><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">我们也可以添加包含其他</span><span lang="EN-US"> BaseFault </span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的</span><span lang="EN-US"> FaultCause </span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">元素。这使我们可以将错误链接在一起。</span></p>
<h4><a name="_Toc197767466"><span lang="EN-US" style="font-size: 12pt; line-height: 156%; mso-fareast-font-family: Arial; mso-bidi-font-family: Arial"><span style="mso-list: Ignore">1.1.1.2<span style="font: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp; </span></span></span><span style="font-family: 宋体">扩展</span><span lang="EN-US">BaseFault</span></a><span lang="EN-US" style="font-weight: normal; font-size: 12pt; line-height: 156%; mso-bidi-font-weight: bold"><o:p></o:p></span></h4>
<p class="MsoNormal" style="text-indent: 21.1pt; line-height: 150%; mso-char-indent-count: 2.0"><strong style="mso-bidi-font-weight: normal"><span style="color: blue; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">创建新的故障</span><span lang="EN-US" style="color: blue"><o:p></o:p></span></strong></p>
<p class="MsoNormal" style="text-indent: 21pt; line-height: 150%; mso-char-indent-count: 2.0"><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">您可以照原来的样子使用</span><span lang="EN-US"> BaseFault</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">，让客户机应用程序解析信息并确定问题，但是更通常的情况是扩展</span><span lang="EN-US"> BaseFault </span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">以创建更多特定的故障。我们做到这一点的方式是，<span style="color: blue">使用</span></span><span lang="EN-US" style="color: blue"> XML </span><span style="color: blue; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">模式来创建新的类型</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">。例如，我们可以像下面这样创建新的</span><span lang="EN-US"> SatelliteNotRespondingFault</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">：</span></p>
<div style="border-right: windowtext 1pt solid; padding-right: 4pt; border-top: windowtext 1pt solid; padding-left: 4pt; background: #ccffff; padding-bottom: 1pt; border-left: windowtext 1pt solid; padding-top: 1pt; border-bottom: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-element: para-border-div">
<p class="MsoNormal" style="border-right: medium none; padding-right: 0cm; border-top: medium none; padding-left: 0cm; background: #ccffff; padding-bottom: 0cm; border-left: medium none; text-indent: 21pt; line-height: 150%; padding-top: 0cm; border-bottom: medium none; mso-char-indent-count: 2.0; mso-border-alt: solid windowtext .5pt; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt"><span lang="EN-US">&lt;xsd:complexType<span style="mso-spacerun: yes">&nbsp; </span>name="SatelliteNotRespondingFaultType"&gt;</span></p>
<p class="MsoNormal" style="border-right: medium none; padding-right: 0cm; border-top: medium none; padding-left: 0cm; background: #ccffff; padding-bottom: 0cm; border-left: medium none; text-indent: 21pt; line-height: 150%; padding-top: 0cm; border-bottom: medium none; mso-char-indent-count: 2.0; mso-border-alt: solid windowtext .5pt; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt"><span lang="EN-US"><span style="mso-spacerun: yes">&nbsp; </span>&lt;xsd:complexContent&gt;</span></p>
<p class="MsoNormal" style="border-right: medium none; padding-right: 0cm; border-top: medium none; padding-left: 0cm; background: #ccffff; padding-bottom: 0cm; border-left: medium none; text-indent: 21pt; line-height: 150%; padding-top: 0cm; border-bottom: medium none; mso-char-indent-count: 2.0; mso-border-alt: solid windowtext .5pt; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt"><span lang="EN-US"><span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </span>&lt;xsd:extension base="wsbf:BaseFaultType"&gt;</span></p>
<p class="MsoNormal" style="border-right: medium none; padding-right: 0cm; border-top: medium none; padding-left: 0cm; background: #ccffff; padding-bottom: 0cm; border-left: medium none; text-indent: 21pt; line-height: 150%; padding-top: 0cm; border-bottom: medium none; mso-char-indent-count: 2.0; mso-border-alt: solid windowtext .5pt; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt"><span lang="EN-US"><span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>&lt;xsd:sequence&gt;</span></p>
<p class="MsoNormal" style="border-right: medium none; padding-right: 0cm; border-top: medium none; padding-left: 0cm; background: #ccffff; padding-bottom: 0cm; border-left: medium none; text-indent: 21pt; line-height: 150%; padding-top: 0cm; border-bottom: medium none; mso-char-indent-count: 2.0; mso-border-alt: solid windowtext .5pt; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt"><span lang="EN-US"><span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>&lt;xsd:element name="LastReboot" type="xsd:dateTime" /&gt;</span></p>
<p class="MsoNormal" style="border-right: medium none; padding-right: 0cm; border-top: medium none; padding-left: 0cm; background: #ccffff; padding-bottom: 0cm; border-left: medium none; text-indent: 21pt; line-height: 150%; padding-top: 0cm; border-bottom: medium none; mso-char-indent-count: 2.0; mso-border-alt: solid windowtext .5pt; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt"><span lang="EN-US"><span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>&lt;/xsd:sequence&gt;</span></p>
<p class="MsoNormal" style="border-right: medium none; padding-right: 0cm; border-top: medium none; padding-left: 0cm; background: #ccffff; padding-bottom: 0cm; border-left: medium none; text-indent: 21pt; line-height: 150%; padding-top: 0cm; border-bottom: medium none; mso-char-indent-count: 2.0; mso-border-alt: solid windowtext .5pt; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt"><span lang="EN-US"><span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </span>&lt;/xsd:extension&gt;</span></p>
<p class="MsoNormal" style="border-right: medium none; padding-right: 0cm; border-top: medium none; padding-left: 0cm; background: #ccffff; padding-bottom: 0cm; border-left: medium none; text-indent: 21pt; line-height: 150%; padding-top: 0cm; border-bottom: medium none; mso-char-indent-count: 2.0; mso-border-alt: solid windowtext .5pt; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt"><span lang="EN-US"><span style="mso-spacerun: yes">&nbsp; </span>&lt;/xsd:complexContent&gt;</span></p>
<p class="MsoNormal" style="border-right: medium none; padding-right: 0cm; border-top: medium none; padding-left: 0cm; background: #ccffff; padding-bottom: 0cm; border-left: medium none; text-indent: 21pt; line-height: 150%; padding-top: 0cm; border-bottom: medium none; mso-char-indent-count: 2.0; mso-border-alt: solid windowtext .5pt; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt"><span lang="EN-US">&lt;/xsd:complexType&gt;</span></p>
<p class="MsoNormal" style="border-right: medium none; padding-right: 0cm; border-top: medium none; padding-left: 0cm; background: #ccffff; padding-bottom: 0cm; border-left: medium none; text-indent: 21pt; line-height: 150%; padding-top: 0cm; border-bottom: medium none; mso-char-indent-count: 2.0; mso-border-alt: solid windowtext .5pt; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt"><span lang="EN-US">&lt;xsd:element name="SatelliteNotRespondingFault" type="wsrl:SatelliteNotRespondingFaultType"/&gt;</span></p>
</div>
<p class="MsoNormal" style="text-indent: 21pt; line-height: 150%; mso-char-indent-count: 2.0"><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">这允许我们返回一个故障，比如：</span></p>
<p class="MsoNormal" style="text-indent: 21pt; line-height: 150%; mso-char-indent-count: 2.0"><span lang="EN-US"><o:p>&nbsp;</o:p></span></p>
<div style="border-right: windowtext 1pt solid; padding-right: 4pt; border-top: windowtext 1pt solid; padding-left: 4pt; background: #ccffff; padding-bottom: 1pt; border-left: windowtext 1pt solid; padding-top: 1pt; border-bottom: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt; mso-element: para-border-div">
<p class="MsoNormal" style="border-right: medium none; padding-right: 0cm; border-top: medium none; padding-left: 0cm; background: #ccffff; padding-bottom: 0cm; border-left: medium none; text-indent: 21pt; line-height: 150%; padding-top: 0cm; border-bottom: medium none; mso-char-indent-count: 2.0; mso-border-alt: solid windowtext .5pt; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt"><span lang="EN-US">&lt;SatelliteNotRespondingFault&gt;</span></p>
<p class="MsoNormal" style="border-right: medium none; padding-right: 0cm; border-top: medium none; padding-left: 0cm; background: #ccffff; padding-bottom: 0cm; border-left: medium none; text-indent: 21pt; line-height: 150%; padding-top: 0cm; border-bottom: medium none; mso-char-indent-count: 2.0; mso-border-alt: solid windowtext .5pt; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt"><span lang="EN-US"><span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </span>&lt;Timestamp&gt;<st1:chsdate w:st="on" year="2005" month="2" day="15" islunardate="False" isrocdate="False">2005-2-15</st1:chsdate>T03:24:57&lt;/Timestamp&gt;</span></p>
<p class="MsoNormal" style="border-right: medium none; padding-right: 0cm; border-top: medium none; padding-left: 0cm; background: #ccffff; padding-bottom: 0cm; border-left: medium none; text-indent: 21pt; line-height: 150%; padding-top: 0cm; border-bottom: medium none; mso-char-indent-count: 2.0; mso-border-alt: solid windowtext .5pt; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt"><span lang="EN-US"><span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </span>&lt;Description&gt;Cannot connect to satellite&lt;/Description&gt;</span></p>
<p class="MsoNormal" style="border-right: medium none; padding-right: 0cm; border-top: medium none; padding-left: 0cm; background: #ccffff; padding-bottom: 0cm; border-left: medium none; text-indent: 21pt; line-height: 150%; padding-top: 0cm; border-bottom: medium none; mso-char-indent-count: 2.0; mso-border-alt: solid windowtext .5pt; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt"><span lang="EN-US"><span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </span>&lt;LastReboot&gt;<st1:chsdate w:st="on" year="2005" month="2" day="10" islunardate="False" isrocdate="False">2005-2-10</st1:chsdate>T09:43:02&lt;/LastReboot&gt;</span></p>
<p class="MsoNormal" style="border-right: medium none; padding-right: 0cm; border-top: medium none; padding-left: 0cm; background: #ccffff; padding-bottom: 0cm; border-left: medium none; text-indent: 21pt; line-height: 150%; padding-top: 0cm; border-bottom: medium none; mso-char-indent-count: 2.0; mso-border-alt: solid windowtext .5pt; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt"><span lang="EN-US">&lt;/SatelliteNotRespondingFault&gt;</span></p>
</div>
<p class="MsoNormal" style="text-indent: 21pt; line-height: 150%; mso-char-indent-count: 2.0"><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">在本例中，我们以</span><span lang="EN-US">LastReboot</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">元素的形式提供了额外的信息，但这是一个</span><span lang="EN-US">SatelliteNotRespondingFault</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">，几乎给客户机提供了所有信息。实际上，</span><span lang="EN-US">WSRF </span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">协议定义的大多数故障只是扩展</span><span lang="EN-US"> BaseFault </span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">以创建新命名的故障，并不添加任何附加的信息。只要知道返回了哪种类型的故障，就提供了所有必需的信息。</span></p>
<h4><a name="_Toc197767467"><span lang="EN-US" style="font-size: 12pt; line-height: 156%; mso-fareast-font-family: Arial; mso-bidi-font-family: Arial"><span style="mso-list: Ignore">1.1.1.3<span style="font: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp; </span></span></span><span lang="EN-US">WSRF</span></a><span style="mso-bookmark: _Toc197767467"><span style="font-family: 宋体">中定义的错误</span></span><span lang="EN-US" style="font-weight: normal; font-size: 12pt; line-height: 156%; mso-bidi-font-weight: bold"><o:p></o:p></span></h4>
<p class="MsoNormal" style="text-indent: 21pt; line-height: 150%; mso-char-indent-count: 2.0"><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">下面我们来看</span><span lang="EN-US"> WSRF </span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">协议定义的不同类型的故障。</span></p>
<p class="MsoNormal" style="text-indent: 21pt; line-height: 150%; mso-char-indent-count: 2.0"><span lang="EN-US">WSRF </span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">故障：</span><span lang="EN-US">WS-ResourceProperties</span></p>
<p class="MsoNormal" style="margin-left: 21pt; line-height: 150%"><span lang="EN-US">WS-ResourceProperties </span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">协议定义了以下故障，以作为适当事件的响应发送：</span></p>
<p class="MsoNormal" style="margin-left: 42pt; text-indent: -21pt; line-height: 150%; mso-list: l3 level1 lfo2; tab-stops: list 42.0pt"><span lang="EN-US" style="font-family: Wingdings; mso-fareast-font-family: Wingdings; mso-bidi-font-family: Wingdings"><span style="mso-list: Ignore">l<span style="font: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><span lang="EN-US" style="color: blue">ResourceUnknownFault</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">：该故障适用于所有各种操作，并指出</span><span lang="EN-US"> Web </span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">服务不认识指向端点引用的消息。</span><span lang="EN-US"> </span></p>
<p class="MsoNormal" style="margin-left: 42pt; text-indent: -21pt; line-height: 150%; mso-list: l3 level1 lfo2; tab-stops: list 42.0pt"><span lang="EN-US" style="font-family: Wingdings; mso-fareast-font-family: Wingdings; mso-bidi-font-family: Wingdings"><span style="mso-list: Ignore">l<span style="font: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><span lang="EN-US" style="color: blue">InvalidResourcePropertyQName</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">：当请求一个或多个属性时，该故障指出客户机试图获得或设置所操作的</span><span lang="EN-US"> WS-Resource </span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">上不存在的</span><span lang="EN-US"> ResourceProperty</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">。</span><span lang="EN-US"> </span></p>
<p class="MsoNormal" style="margin-left: 42pt; text-indent: -21pt; line-height: 150%; mso-list: l3 level1 lfo2; tab-stops: list 42.0pt"><span lang="EN-US" style="font-family: Wingdings; mso-fareast-font-family: Wingdings; mso-bidi-font-family: Wingdings"><span style="mso-list: Ignore">l<span style="font: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><span lang="EN-US" style="color: blue">InvalidSetResourcePropertiesRequestContent</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">：在这种情况下，</span><span lang="EN-US">SetResourcePropertyRequest </span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">中发送的数据不符合适当资源属性文档的模式。</span><span lang="EN-US"> </span></p>
<p class="MsoNormal" style="margin-left: 42pt; text-indent: -21pt; line-height: 150%; mso-list: l3 level1 lfo2; tab-stops: list 42.0pt"><span lang="EN-US" style="font-family: Wingdings; mso-fareast-font-family: Wingdings; mso-bidi-font-family: Wingdings"><span style="mso-list: Ignore">l<span style="font: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><span lang="EN-US" style="color: blue">UnableToModifyResourceProperty</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">：在这种情况下，客户机试图设置的资源属性是只读的。</span><span lang="EN-US"> </span></p>
<p class="MsoNormal" style="margin-left: 42pt; text-indent: -21pt; line-height: 150%; mso-list: l3 level1 lfo2; tab-stops: list 42.0pt"><span lang="EN-US" style="font-family: Wingdings; mso-fareast-font-family: Wingdings; mso-bidi-font-family: Wingdings"><span style="mso-list: Ignore">l<span style="font: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><span lang="EN-US" style="color: blue">SetResourcePropertyReqestFailed</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">：这是一个一般错误，指出服务器不能添加或更改资源属性。</span><span lang="EN-US"> </span></p>
<p class="MsoNormal" style="margin-left: 42pt; text-indent: -21pt; line-height: 150%; mso-list: l3 level1 lfo2; tab-stops: list 42.0pt"><span lang="EN-US" style="font-family: Wingdings; mso-fareast-font-family: Wingdings; mso-bidi-font-family: Wingdings"><span style="mso-list: Ignore">l<span style="font: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><span lang="EN-US" style="color: blue">UnknownQueryExpressionDialect</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">：当查询资源属性时，该故障指出客户机试图以服务不认识的方言（</span><span lang="EN-US">dialect</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">）评估查询。因此，定义了</span><span lang="EN-US"> XPath V1.0 </span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">和</span><span lang="EN-US"> V2.0</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">。</span><span lang="EN-US"> </span></p>
<p class="MsoNormal" style="margin-left: 42pt; text-indent: -21pt; line-height: 150%; mso-list: l3 level1 lfo2; tab-stops: list 42.0pt"><span lang="EN-US" style="font-family: Wingdings; mso-fareast-font-family: Wingdings; mso-bidi-font-family: Wingdings"><span style="mso-list: Ignore">l<span style="font: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><span lang="EN-US" style="color: blue">InvalidQueryExpression</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">：在这种情况下，查询不符合指定的方言。</span><span lang="EN-US"> </span></p>
<p class="MsoNormal" style="margin-left: 42pt; text-indent: -21pt; line-height: 150%; mso-list: l3 level1 lfo2; tab-stops: list 42.0pt"><span lang="EN-US" style="font-family: Wingdings; mso-fareast-font-family: Wingdings; mso-bidi-font-family: Wingdings"><span style="mso-list: Ignore">l<span style="font: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><span lang="EN-US" style="color: blue">QueryEvaluationError</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">：这是一个一般错误，指出在处理查询时出现了错误。</span><span lang="EN-US"> </span></p>
<p class="MsoNormal" style="text-indent: 21pt; line-height: 150%; mso-char-indent-count: 2.0"><span lang="EN-US"><o:p>&nbsp;</o:p></span></p>
<p class="MsoNormal" style="text-indent: 21pt; line-height: 150%; mso-char-indent-count: 2.0"><span lang="EN-US">WSRF </span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">故障：</span><span lang="EN-US">WS-ResourceLifetime</span></p>
<p class="MsoNormal" style="text-indent: 21pt; line-height: 150%; mso-char-indent-count: 2.0"><span lang="EN-US">WS-ResourceLifetime </span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">协议定义了四种与</span><span lang="EN-US"> WS-Resource </span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的即时销毁或预定销毁有关的故障：</span></p>
<p class="MsoNormal" style="margin-left: 42pt; text-indent: -21pt; line-height: 150%; mso-list: l0 level1 lfo3; tab-stops: list 42.0pt"><span lang="EN-US" style="font-family: Wingdings; mso-fareast-font-family: Wingdings; mso-bidi-font-family: Wingdings"><span style="mso-list: Ignore">l<span style="font: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><span lang="EN-US" style="color: blue">ResourceUnknownFault</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">：与</span><span lang="EN-US"> WS-ResourceProperties </span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">中一样，该故障指出客户机试图访问不存在的或者</span><span lang="EN-US"> Web </span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">服务不知道的</span><span lang="EN-US"> WS-Resource</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">。</span><span lang="EN-US"> </span></p>
<p class="MsoNormal" style="margin-left: 42pt; text-indent: -21pt; line-height: 150%; mso-list: l0 level1 lfo3; tab-stops: list 42.0pt"><span lang="EN-US" style="font-family: Wingdings; mso-fareast-font-family: Wingdings; mso-bidi-font-family: Wingdings"><span style="mso-list: Ignore">l<span style="font: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><span lang="EN-US" style="color: blue">ResourceNotDestroyedFault</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">：该故障指出，</span><span lang="EN-US">WS-Resource </span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">没有被销毁。实际的错误消息可能会给出更多的解释信息。</span><span lang="EN-US"> </span></p>
<p class="MsoNormal" style="margin-left: 42pt; text-indent: -21pt; line-height: 150%; mso-list: l0 level1 lfo3; tab-stops: list 42.0pt"><span lang="EN-US" style="font-family: Wingdings; mso-fareast-font-family: Wingdings; mso-bidi-font-family: Wingdings"><span style="mso-list: Ignore">l<span style="font: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><span lang="EN-US" style="color: blue">UnableToSetTerminationTimeFault</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">：这是一个一般故障，指出服务不能做出请求的更改。</span><span lang="EN-US"> </span></p>
<p class="MsoNormal" style="margin-left: 42pt; text-indent: -21pt; line-height: 150%; mso-list: l0 level1 lfo3; tab-stops: list 42.0pt"><span lang="EN-US" style="font-family: Wingdings; mso-fareast-font-family: Wingdings; mso-bidi-font-family: Wingdings"><span style="mso-list: Ignore">l<span style="font: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><span lang="EN-US" style="color: blue">TerminationTimeChangeRejectedFault</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">：在这种情况下，客户机试图做出不符合</span><span lang="EN-US"> WS-Resource </span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的内部规则的更改。</span><span lang="EN-US"> </span></p>
<p class="MsoNormal" style="text-indent: 21pt; line-height: 150%; mso-char-indent-count: 2.0"><span lang="EN-US"><o:p>&nbsp;</o:p></span></p>
<p class="MsoNormal" style="text-indent: 21pt; line-height: 150%; mso-char-indent-count: 2.0"><span lang="EN-US">WSRF </span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">故障：</span><span lang="EN-US">WS-ServiceGroup</span></p>
<p class="MsoNormal" style="text-indent: 21pt; line-height: 150%; mso-char-indent-count: 2.0"><span lang="EN-US">WS-ServiceGroup </span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">协议定义了三种故障：</span></p>
<p class="MsoNormal" style="margin-left: 42pt; text-indent: -21pt; line-height: 150%; mso-list: l2 level1 lfo4; tab-stops: list 42.0pt"><span lang="EN-US" style="font-family: Wingdings; mso-fareast-font-family: Wingdings; mso-bidi-font-family: Wingdings"><span style="mso-list: Ignore">l<span style="font: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><span lang="EN-US" style="color: blue">UnsupportedMemberInterfaceFault</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">：该故障指出，客户机试图添加的服务不实现任何所需的</span><span lang="EN-US"> portType</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">。</span><span lang="EN-US"> </span></p>
<p class="MsoNormal" style="margin-left: 42pt; text-indent: -21pt; line-height: 150%; mso-list: l2 level1 lfo4; tab-stops: list 42.0pt"><span lang="EN-US" style="font-family: Wingdings; mso-fareast-font-family: Wingdings; mso-bidi-font-family: Wingdings"><span style="mso-list: Ignore">l<span style="font: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><span lang="EN-US" style="color: blue">ContentCreationFailedFault</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">：在这种情况下，添加</span><span lang="EN-US"> Web </span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">服务的请求不具有适当的</span><span lang="EN-US"> Content </span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">元素，如</span><span lang="EN-US"> ServiceGroup </span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的</span><span lang="EN-US"> MembershipContentRule </span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">中所定义的。</span><span lang="EN-US"> </span></p>
<p class="MsoNormal" style="margin-left: 42pt; text-indent: -21pt; line-height: 150%; mso-list: l2 level1 lfo4; tab-stops: list 42.0pt"><span lang="EN-US" style="font-family: Wingdings; mso-fareast-font-family: Wingdings; mso-bidi-font-family: Wingdings"><span style="mso-list: Ignore">l<span style="font: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><span lang="EN-US" style="color: blue">AddRefusedFault</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">：这是一个一般故障，指出资源不能被添加。</span><span lang="EN-US"> </span></p>
<p class="MsoNormal" style="text-indent: 21pt; line-height: 150%"><span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt"><o:p>&nbsp;</o:p></span></p>
<img src ="http://www.blogjava.net/orangelizq/aggbug/287337.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/orangelizq/" target="_blank">桔子汁</a> 2009-07-19 15:49 <a href="http://www.blogjava.net/orangelizq/archive/2009/07/19/287337.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>WSRF研究--WS-ResourceLifetime协议</title><link>http://www.blogjava.net/orangelizq/archive/2009/07/19/287336.html</link><dc:creator>桔子汁</dc:creator><author>桔子汁</author><pubDate>Sun, 19 Jul 2009 07:45:00 GMT</pubDate><guid>http://www.blogjava.net/orangelizq/archive/2009/07/19/287336.html</guid><wfw:comment>http://www.blogjava.net/orangelizq/comments/287336.html</wfw:comment><comments>http://www.blogjava.net/orangelizq/archive/2009/07/19/287336.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/orangelizq/comments/commentRss/287336.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/orangelizq/services/trackbacks/287336.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: &nbsp; WS-ResourceLifetime协议WS-ResourceLifetime协议定义了WS-Resource的资源销毁机制，其中包括资源的立即销毁和资源的调度销毁。立即销毁使得客户可以显示地要求对特定的WS-Resource进行销毁，从而释放该WS-Resource占用的系统资源。调度销毁则允许客户通过设定某个WS-Resource的预定销毁时间(Termination Ti...&nbsp;&nbsp;<a href='http://www.blogjava.net/orangelizq/archive/2009/07/19/287336.html'>阅读全文</a><img src ="http://www.blogjava.net/orangelizq/aggbug/287336.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/orangelizq/" target="_blank">桔子汁</a> 2009-07-19 15:45 <a href="http://www.blogjava.net/orangelizq/archive/2009/07/19/287336.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>WSRF研究--WS-ResourceProperties协议</title><link>http://www.blogjava.net/orangelizq/archive/2009/07/19/287335.html</link><dc:creator>桔子汁</dc:creator><author>桔子汁</author><pubDate>Sun, 19 Jul 2009 07:43:00 GMT</pubDate><guid>http://www.blogjava.net/orangelizq/archive/2009/07/19/287335.html</guid><wfw:comment>http://www.blogjava.net/orangelizq/comments/287335.html</wfw:comment><comments>http://www.blogjava.net/orangelizq/archive/2009/07/19/287335.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/orangelizq/comments/commentRss/287335.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/orangelizq/services/trackbacks/287335.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;<a name="_Toc197767450"><span lang="EN-US" style="font-size: 15pt; line-height: 173%; mso-fareast-font-family: 'Times New Roman'"><span style="mso-list: Ignore"><span style="font: 7pt 'Times New Roman'">&nbsp;</span></span></span><span lang="EN-US" style="font-size: 15pt; line-height: 173%">WS-ResourceProperties</span></a><span style="mso-bookmark: _Toc197767450"><span style="font-size: 15pt; line-height: 173%; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">协议</span></span><span lang="EN-US" style="font-size: 15pt; line-height: 173%"><o:p></o:p></span>
<p class="MsoNormal" style="text-indent: 21pt; line-height: 150%"><span lang="EN-US">WS-ResourceProperties</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">协议解决了两个问题：</span><span lang="EN-US">(1)</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">如何描述资源状态；</span><span lang="EN-US">(2)</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">如何操作资源状态。</span></p>
<p class="MsoNormal" style="text-indent: 21pt; line-height: 150%"><span lang="EN-US">WSRP</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">使用资源属性文档来描述资源的属性，它是一个代表资源属性元素逻辑组合的</span><span lang="EN-US">XML</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">文档。资源属性文档是资源状态的一个映射，并与</span><span lang="EN-US">WSDL</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的</span><span lang="EN-US">portType</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">相关联。同时</span><span lang="EN-US">WSRP</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">还定义了一系列的消息交换格式，用于操作资源的状态：如获取、插入和修改属性等。</span></p>
<p class="MsoNormal" style="text-indent: 21pt; line-height: 150%"><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'">协议中的定义如下：</span><span lang="EN-US" style="mso-hansi-font-family: 宋体"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-indent: 21pt; line-height: 150%"><span lang="EN-US" style="color: blue; line-height: 150%; mso-bidi-font-size: 10.5pt">Resource Property: <o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left: 42pt; text-indent: -21pt; line-height: 150%; mso-list: l1 level1 lfo2; tab-stops: list 42.0pt"><span lang="EN-US" style="color: blue; line-height: 150%; font-family: Wingdings; mso-fareast-font-family: Wingdings; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: Wingdings"><span style="mso-list: Ignore">l<span style="font: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><span lang="EN-US" style="color: blue; line-height: 150%; mso-bidi-font-size: 10.5pt">A resource property is a piece of information defined as part of the state model of a WS-Resource. <o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left: 42pt; text-indent: -21pt; line-height: 150%; mso-list: l1 level1 lfo2; tab-stops: list 42.0pt"><span lang="EN-US" style="color: blue; line-height: 150%; font-family: Wingdings; mso-fareast-font-family: Wingdings; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: Wingdings"><span style="mso-list: Ignore">l<span style="font: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><span lang="EN-US" style="color: blue; line-height: 150%; mso-bidi-font-size: 10.5pt">A resource property may reflect a part of the resource&#8217;s state, meta-data, manageability information, etc.<o:p></o:p></span></p>
<p class="MsoNormal" style="text-indent: 21pt; line-height: 150%"><span lang="EN-US" style="color: blue; line-height: 150%; mso-bidi-font-size: 10.5pt">Resource Properties Document: <o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left: 42pt; text-indent: -21pt; line-height: 150%; mso-list: l2 level1 lfo3; tab-stops: list 42.0pt"><span lang="EN-US" style="color: blue; line-height: 150%; font-family: Wingdings; mso-fareast-font-family: Wingdings; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: Wingdings"><span style="mso-list: Ignore">l<span style="font: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><span lang="EN-US" style="color: blue; line-height: 150%; mso-bidi-font-size: 10.5pt">The XML document representing a logical composition of resource property elements. The resource properties document defines a particular view or projection of the state data implemented by the WS-Resource. <o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left: 42pt; text-indent: -21pt; line-height: 150%; mso-list: l2 level1 lfo3; tab-stops: list 42.0pt"><span lang="EN-US" style="color: blue; line-height: 150%; font-family: Wingdings; mso-fareast-font-family: Wingdings; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: Wingdings"><span style="mso-list: Ignore">l<span style="font: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><span lang="EN-US" style="color: blue; line-height: 150%; mso-bidi-font-size: 10.5pt">The type (e.g. the XML Schema definition of the root element) of a resource properties document is associated with the WSDL portType defining the Web service interface. This association is the basis of the WS-Resource definition. Each instance of a particular WS-Resource type MUST implement a logical resource properties document of the type declared in the WSDL portType. <o:p></o:p></span></p>
<p class="MsoNormal" style="text-indent: 21pt; line-height: 150%"><span lang="EN-US" style="color: blue; line-height: 150%; mso-bidi-font-size: 10.5pt">Resource Property Element: <o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left: 42pt; text-indent: -21pt; line-height: 150%; mso-list: l4 level1 lfo4; tab-stops: list 42.0pt"><span lang="EN-US" style="color: blue; line-height: 150%; font-family: Wingdings; mso-fareast-font-family: Wingdings; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: Wingdings"><span style="mso-list: Ignore">l<span style="font: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><span lang="EN-US" style="color: blue; line-height: 150%; mso-bidi-font-size: 10.5pt">The XML representation of a resource property.<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left: 42pt; text-indent: -21pt; line-height: 150%; mso-list: l4 level1 lfo4; tab-stops: list 42.0pt"><span lang="EN-US" style="color: blue; line-height: 150%; font-family: Wingdings; mso-fareast-font-family: Wingdings; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: Wingdings"><span style="mso-list: Ignore">l<span style="font: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><span lang="EN-US" style="color: blue; line-height: 150%; mso-bidi-font-size: 10.5pt">A resource property element must appear as the immediate child of the root element of a resource properties document.<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left: 42pt; text-indent: -21pt; line-height: 150%; mso-list: l4 level1 lfo4; tab-stops: list 42.0pt"><span lang="EN-US" style="color: blue; line-height: 150%; font-family: Wingdings; mso-fareast-font-family: Wingdings; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: Wingdings"><span style="mso-list: Ignore">l<span style="font: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><span lang="EN-US" style="color: blue; line-height: 150%; mso-bidi-font-size: 10.5pt">A resource property element must be an XML global element definition (GED), and is uniquely identified by QName.<o:p></o:p></span></p>
<p class="MsoNormal" style="text-indent: 21pt; line-height: 150%"><span lang="EN-US" style="color: blue; line-height: 150%; mso-bidi-font-size: 10.5pt">Resource Property Value: <o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left: 42pt; text-indent: -21pt; line-height: 150%; mso-list: l0 level1 lfo5; tab-stops: list 42.0pt"><span lang="EN-US" style="color: blue; line-height: 150%; font-family: Wingdings; mso-fareast-font-family: Wingdings; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: Wingdings"><span style="mso-list: Ignore">l<span style="font: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><span lang="EN-US" style="color: blue; line-height: 150%; mso-bidi-font-size: 10.5pt">The value(s) associated with a resource property.<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left: 21pt; line-height: 150%"><span lang="EN-US" style="color: blue; line-height: 150%; mso-bidi-font-size: 10.5pt"><o:p>&nbsp;</o:p></span></p>
<p class="MsoNormal" style="text-indent: 21pt; line-height: 150%"><span lang="EN-US">WS-ResourceProperties</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">协议还定义了</span><span lang="EN-US">9</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">种标准操作：</span></p>
<p class="MsoNormal" style="margin-left: 36pt; text-indent: -18pt; line-height: 150%; mso-list: l5 level2 lfo6; tab-stops: list 36.0pt"><span lang="EN-US" style="mso-fareast-font-family: 'Times New Roman'"><span style="mso-list: Ignore">1.<span style="font: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><span lang="EN-US">GetResourcePropertyDocument</span></p>
<p class="MsoNormal" style="margin-left: 36pt; text-indent: -18pt; line-height: 150%; mso-list: l5 level2 lfo6; tab-stops: list 36.0pt"><span lang="EN-US" style="mso-fareast-font-family: 'Times New Roman'"><span style="mso-list: Ignore">2.<span style="font: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><span lang="EN-US">GetResourceProperty</span></p>
<p class="MsoNormal" style="margin-left: 36pt; text-indent: -18pt; line-height: 150%; mso-list: l5 level2 lfo6; tab-stops: list 36.0pt"><span lang="EN-US" style="mso-fareast-font-family: 'Times New Roman'"><span style="mso-list: Ignore">3.<span style="font: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><span lang="EN-US">GetMultipleResourceProperties</span></p>
<p class="MsoNormal" style="margin-left: 36pt; text-indent: -18pt; line-height: 150%; mso-list: l5 level2 lfo6; tab-stops: list 36.0pt"><span lang="EN-US" style="mso-fareast-font-family: 'Times New Roman'"><span style="mso-list: Ignore">4.<span style="font: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><span lang="EN-US">QueryResourceProperties</span></p>
<p class="MsoNormal" style="margin-left: 36pt; text-indent: -18pt; line-height: 150%; mso-list: l5 level2 lfo6; tab-stops: list 36.0pt"><span lang="EN-US" style="mso-fareast-font-family: 'Times New Roman'"><span style="mso-list: Ignore">5.<span style="font: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><span lang="EN-US">PutResourcePropertyDocument</span></p>
<p class="MsoNormal" style="margin-left: 36pt; text-indent: -18pt; line-height: 150%; mso-list: l5 level2 lfo6; tab-stops: list 36.0pt"><span lang="EN-US" style="mso-fareast-font-family: 'Times New Roman'"><span style="mso-list: Ignore">6.<span style="font: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><span lang="EN-US">SetResourceProperties</span></p>
<p class="MsoNormal" style="margin-left: 36pt; text-indent: -18pt; line-height: 150%; mso-list: l5 level2 lfo6; tab-stops: list 36.0pt"><span lang="EN-US" style="mso-fareast-font-family: 'Times New Roman'"><span style="mso-list: Ignore">7.<span style="font: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><span lang="EN-US">UpdateResourceProperties</span></p>
<p class="MsoNormal" style="margin-left: 36pt; text-indent: -18pt; line-height: 150%; mso-list: l5 level2 lfo6; tab-stops: list 36.0pt"><span lang="EN-US" style="mso-fareast-font-family: 'Times New Roman'"><span style="mso-list: Ignore">8.<span style="font: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><span lang="EN-US">DeleteResourceProperties</span></p>
<p class="MsoNormal" style="margin-left: 36pt; text-indent: -18pt; line-height: 150%; mso-list: l5 level2 lfo6; tab-stops: list 36.0pt"><span lang="EN-US" style="mso-fareast-font-family: 'Times New Roman'"><span style="mso-list: Ignore">9.<span style="font: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><span lang="EN-US">InsertResourceProperties</span></p>
<p class="MsoNormal" style="text-indent: 18pt; line-height: 150%"><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">一个包含资源属性文档的</span><span lang="EN-US">Web</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">服务必须支持</span><span lang="EN-US">GetResourceProperty</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">消息交换方式，可以支持其它</span><span lang="EN-US">8</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">种消息交换模式。</span></p>
<p class="MsoNormal" style="text-indent: 21pt; line-height: 150%"><span style="line-height: 150%; font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">注意在协议中并没有定义创建资源的操作，该操作由应用程序自己定义。</span><span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-indent: 21pt; line-height: 150%"><span style="line-height: 150%; font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'">关于创建</span><span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt"> WS-Resource </span><span style="line-height: 150%; font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'">的实际</span><span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt"> SOAP </span><span style="line-height: 150%; font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'">请求是非常简单的：</span><span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt"><o:p></o:p></span></p>
<p class="MsoNormal" style="background: #ccffff; text-indent: 21pt; line-height: 150%; mso-char-indent-count: 2.0"><span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt">&lt;SOAP-ENV:Envelope<span style="mso-spacerun: yes">&nbsp; </span>xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"&gt;<o:p></o:p></span></p>
<p class="MsoNormal" style="background: #ccffff; text-indent: 21pt; line-height: 150%; mso-char-indent-count: 2.0"><span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt"><span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </span>&lt;SOAP-ENV:Header/&gt;<o:p></o:p></span></p>
<p class="MsoNormal" style="background: #ccffff; text-indent: 21pt; line-height: 150%; mso-char-indent-count: 2.0"><span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt"><span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </span>&lt;SOAP-ENV:Body&gt;<o:p></o:p></span></p>
<p class="MsoNormal" style="background: #ccffff; text-indent: 21pt; line-height: 150%; mso-char-indent-count: 2.0"><span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt"><span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>&lt;createSatellite xmlns="http://example.com/satellite"/&gt;<o:p></o:p></span></p>
<p class="MsoNormal" style="background: #ccffff; text-indent: 21pt; line-height: 150%; mso-char-indent-count: 2.0"><span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt"><span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </span>&lt;/SOAP-ENV:Body&gt;<o:p></o:p></span></p>
<p class="MsoNormal" style="background: #ccffff; text-indent: 21pt; line-height: 150%; mso-char-indent-count: 2.0"><span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt">&lt;/SOAP-ENV:Envelope&gt;<o:p></o:p></span></p>
<p class="MsoNormal" style="text-indent: 21pt; line-height: 150%; mso-char-indent-count: 2.0"><span style="line-height: 150%; font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'">我们还没有实际的对象，所以该请求到达</span><span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt"> WSDL </span><span style="line-height: 150%; font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'">文件中列出的</span><span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt"> URI</span><span style="line-height: 150%; font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'">，并且我们将该请求定义为一个简</span><span style="line-height: 150%; font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">单的</span><span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt"> createSatellite </span><span style="line-height: 150%; font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">元素。</span><span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-indent: 21pt; line-height: 150%"><span style="line-height: 150%; font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">响应要稍微有意思一些。</span><span style="line-height: 150%; font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'">一旦您发送针对新人造卫星的请求，服务器就创建一个对新</span><span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt">WS-Resource</span><span style="line-height: 150%; font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'">的引用，并以</span><span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt">EndpointReference</span><span style="line-height: 150%; font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'">形式将它返回：</span><span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt"> <o:p></o:p></span></p>
<p class="MsoNormal" style="background: #ccffff; text-indent: 21pt; line-height: 150%; mso-char-indent-count: 2.0"><span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt">&lt;SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"&gt;<o:p></o:p></span></p>
<p class="MsoNormal" style="background: #ccffff; text-indent: 21pt; line-height: 150%; mso-char-indent-count: 2.0"><span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt"><span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </span>&lt;SOAP-ENV:Header/&gt;<o:p></o:p></span></p>
<p class="MsoNormal" style="background: #ccffff; text-indent: 21pt; line-height: 150%; mso-char-indent-count: 2.0"><span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt"><span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </span>&lt;SOAP-ENV:Body&gt;<o:p></o:p></span></p>
<p class="MsoNormal" style="background: #ccffff; text-indent: 21pt; line-height: 150%; mso-char-indent-count: 2.0"><span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt"><span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>&lt;wsa:EndpointReference<span style="mso-spacerun: yes">&nbsp; </span>xmlns:wsa="http://www.w3.org/2005/02/addressing"<o:p></o:p></span></p>
<p class="MsoNormal" style="background: #ccffff; text-indent: 21pt; line-height: 150%; mso-char-indent-count: 2.0"><span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt"><span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>xmlns:sat="http://example.org/satelliteSystem"&gt;<o:p></o:p></span></p>
<p class="MsoNormal" style="background: #ccffff; text-indent: 21pt; line-height: 150%; mso-char-indent-count: 2.0"><span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt"><span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;</span>&lt;wsa:Address&gt;http://example.com/satellite&lt;/wsa:Address&gt;<o:p></o:p></span></p>
<p class="MsoNormal" style="background: #ccffff; text-indent: 21pt; line-height: 150%; mso-char-indent-count: 2.0"><span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt"><span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>&lt;wsa:ReferenceProperties&gt;<o:p></o:p></span></p>
<p class="MsoNormal" style="background: #ccffff; text-indent: 21pt; line-height: 150%; mso-char-indent-count: 2.0"><span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt"><span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>&lt;sat:SatelliteId&gt;SAT9928&lt;/sat:SatelliteId&gt;<o:p></o:p></span></p>
<p class="MsoNormal" style="background: #ccffff; text-indent: 21pt; line-height: 150%; mso-char-indent-count: 2.0"><span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt"><span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>&lt;/wsa:ReferenceProperties&gt;<o:p></o:p></span></p>
<p class="MsoNormal" style="background: #ccffff; text-indent: 21pt; line-height: 150%; mso-char-indent-count: 2.0"><span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt"><span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>&lt;/wsa:EndpointReference&gt;<o:p></o:p></span></p>
<p class="MsoNormal" style="background: #ccffff; text-indent: 21pt; line-height: 150%; mso-char-indent-count: 2.0"><span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt"><span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </span>&lt;/SOAP-ENV:Body&gt;<o:p></o:p></span></p>
<p class="MsoNormal" style="background: #ccffff; text-indent: 21pt; line-height: 150%; mso-char-indent-count: 2.0"><span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt">&lt;/SOAP-ENV:Envelope&gt;<o:p></o:p></span></p>
<p class="MsoNormal" style="text-indent: 21pt; line-height: 150%; mso-char-indent-count: 2.0"><span style="line-height: 150%; font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'">注意，</span><span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt">EndpointReference </span><span style="line-height: 150%; font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'">的</span><span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt"> Address </span><span style="line-height: 150%; font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'">元素指向我们在</span><span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt"> WSDL </span><span style="line-height: 150%; font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'">文件中列出的同一</span><span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt"> URI</span><span style="line-height: 150%; font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'">，所以信息仍然到达相同的地方，只是量的增多。</span><span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-indent: 21pt; line-height: 150%; mso-char-indent-count: 2.0"><span style="line-height: 150%; font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'">现在我们应该注意，这不是一个普通的端点引用。</span><span lang="EN-US" style="color: blue; line-height: 150%; mso-bidi-font-size: 10.5pt"> ReferenceProperties </span><span style="color: blue; line-height: 150%; font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'">元素展示一个标识符，该标识符最终将用于识别</span><span lang="EN-US" style="color: blue; line-height: 150%; mso-bidi-font-size: 10.5pt"> WS-Resource</span><span style="color: blue; line-height: 150%; font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'">，所以这实际上是一个</span><span lang="EN-US" style="color: blue; line-height: 150%; mso-bidi-font-size: 10.5pt"> WS-Resource </span><span style="color: blue; line-height: 150%; font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'">限定的端点引用</span><span style="line-height: 150%; font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'">。我们可以使用该信息来对</span><span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt">WS-Resource</span><span style="line-height: 150%; font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'">做出后续调用。</span><span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-indent: 21pt; line-height: 150%"><span style="line-height: 150%; font-family: 宋体; mso-bidi-font-size: 10.5pt">已经创建了<span lang="EN-US"> WS-Resource</span>，那么我们可以对它做什么呢？<span lang="EN-US"><o:p></o:p></span></span></p>
<p class="MsoNormal" style="text-indent: 21pt; line-height: 150%"><span style="line-height: 150%; font-family: 宋体; mso-bidi-font-size: 10.5pt">实际上，可以通过调整它的属性来做任何事情。例如，可以通过更改<span lang="EN-US"> altitude </span>属性来改变人造卫星轨道的大小。不，只是更改值并不能移动人造卫星；<span style="color: blue">人造卫星的实际移动是由<span lang="EN-US"> Web </span>服务背后的应用程序决定的。但是这是<span lang="EN-US"> WS-Resources </span>所真正关心的：创建一种方式，以便通过更改属性来操纵对象。协议只是指出了如何将这些更改告诉<span lang="EN-US">Web</span>服务。它不关心应用程序是如何真正操纵对象的</span>，我们也不关心。</span><span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt"><o:p></o:p></span></p>
<img src ="http://www.blogjava.net/orangelizq/aggbug/287335.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/orangelizq/" target="_blank">桔子汁</a> 2009-07-19 15:43 <a href="http://www.blogjava.net/orangelizq/archive/2009/07/19/287335.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>WSRF研究-WS-Resource协议</title><link>http://www.blogjava.net/orangelizq/archive/2009/07/19/287334.html</link><dc:creator>桔子汁</dc:creator><author>桔子汁</author><pubDate>Sun, 19 Jul 2009 07:40:00 GMT</pubDate><guid>http://www.blogjava.net/orangelizq/archive/2009/07/19/287334.html</guid><wfw:comment>http://www.blogjava.net/orangelizq/comments/287334.html</wfw:comment><comments>http://www.blogjava.net/orangelizq/archive/2009/07/19/287334.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/orangelizq/comments/commentRss/287334.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/orangelizq/services/trackbacks/287334.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: &nbsp;1.1&nbsp;&nbsp;&nbsp;&nbsp; WSRF协议族2002-2003年提出的OGSI的概念是开放网格体系结构 (OGSA : Open Grid Service Architecture[34]) 的基本组件，它是一项基于新兴的Web service标准的网格软件基础结构标准化工作，用于为 OGSA 软件组件提供最大的互操作性。其根本的出发点是通过将关键的网...&nbsp;&nbsp;<a href='http://www.blogjava.net/orangelizq/archive/2009/07/19/287334.html'>阅读全文</a><img src ="http://www.blogjava.net/orangelizq/aggbug/287334.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/orangelizq/" target="_blank">桔子汁</a> 2009-07-19 15:40 <a href="http://www.blogjava.net/orangelizq/archive/2009/07/19/287334.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>WSRF研究-WSRF历史</title><link>http://www.blogjava.net/orangelizq/archive/2009/07/19/287333.html</link><dc:creator>桔子汁</dc:creator><author>桔子汁</author><pubDate>Sun, 19 Jul 2009 07:38:00 GMT</pubDate><guid>http://www.blogjava.net/orangelizq/archive/2009/07/19/287333.html</guid><wfw:comment>http://www.blogjava.net/orangelizq/comments/287333.html</wfw:comment><comments>http://www.blogjava.net/orangelizq/archive/2009/07/19/287333.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/orangelizq/comments/commentRss/287333.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/orangelizq/services/trackbacks/287333.html</trackback:ping><description><![CDATA[&nbsp;
<h1><a name="_Toc197767439"><span lang="EN-US" style="mso-fareast-font-family: 'Times New Roman'"><span style="mso-list: Ignore">1<span style="font: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><span lang="EN-US">WSRF</span></a></h1>
<h2><a name="_Toc197767440"><span lang="EN-US" style="font-family: 'Times New Roman'; mso-fareast-font-family: 'Times New Roman'"><span style="mso-list: Ignore">1.1<span style="font: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><span lang="EN-US" style="font-family: 'Times New Roman'; mso-fareast-font-family: 宋体">WSRF</span></a><span style="mso-bookmark: _Toc197767440"><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">简介</span></span><span lang="EN-US" style="font-family: 'Times New Roman'; mso-fareast-font-family: 宋体"><o:p></o:p></span></h2>
<h3><a name="_Toc197767441"><span lang="EN-US" style="font-size: 15pt; line-height: 173%; mso-fareast-font-family: 'Times New Roman'"><span style="mso-list: Ignore">1.1.1<span style="font: 7pt 'Times New Roman'">&nbsp;&nbsp; </span></span></span><span style="font-size: 15pt; line-height: 173%; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">无状态</span></a><span style="mso-bookmark: _Toc197767441"><span lang="EN-US" style="font-size: 15pt; line-height: 173%">Web</span></span><span style="mso-bookmark: _Toc197767441"><span style="font-size: 15pt; line-height: 173%; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">服务的局限性</span></span><span lang="EN-US" style="font-size: 15pt; line-height: 173%"><o:p></o:p></span></h3>
<p class="MsoNormal" style="text-indent: 21pt; line-height: 150%; mso-char-indent-count: 2.0"><span style="line-height: 150%; font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">随着大规模网络技术的发展，特别是网格计算技术的兴起，极大地扩大了分布式系统的规模。网格是近年来逐渐兴起的构建在</span><span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt">Internet</span><span style="line-height: 150%; font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">之上的一种新的计算模式，其目标是在分布式、异构、自治的网络资源环境之上动态的构建虚拟组织，并在其内部实现跨自治域的资源共享与协作，满足当前复杂应用对大规模计算能力和海量数据处理等需求。因此，如何在分布式计算环境</span><span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt">(</span><span style="line-height: 150%; font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">特别是网格计算环境</span><span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt">)</span><span style="line-height: 150%; font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">下对异构资源进行共享和管理，是一个亟待解决的问题。</span><span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-indent: 21pt; line-height: 150%; mso-char-indent-count: 2.0"><span style="line-height: 150%; font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">近年来，</span><span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt">Web</span><span style="line-height: 150%; font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">服务技术已得到快速发展和应用，它采用可扩展标记语言</span><span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt">XML</span><span style="line-height: 150%; font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">定义一组</span><span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt">Web</span><span style="line-height: 150%; font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">服务协议栈，通过开放协议和标准提供了面向</span><span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt">Internet</span><span style="line-height: 150%; font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">应用的统一服务注册、发现、绑定和集成机制，成为</span><span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt">Internet</span><span style="line-height: 150%; font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">环境下实现互操作性的一种主要机制。将</span><span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt">Web</span><span style="line-height: 150%; font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">服务技术引入网格研究领域，有助于解决网格研究所面临的应用集成、资源共享、系统互操作和标准化等问题。但传统的</span><span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt">Web</span><span style="line-height: 150%; font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">服务实现是无状态的，客户端发出请求并得到响应，然后断开连接。然而在很多系统中，如机票预定系统、</span><span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt">CPU</span><span style="line-height: 150%; font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">管理系统和工作流系统，有一个共同的特点就是它们都需要提供一种方式，使得客户端能够访问到系统内部的有状态实体，获取实体的属性并管理它们的生命周期。这些需求促使了</span><span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt">OGSI(Open Grid Services Infrastructure)</span><span style="line-height: 150%; font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的诞生，它把在网格计算环境下对状态的建模和管理作为自己的首要目标。</span><span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-indent: 21pt; line-height: 150%; mso-char-indent-count: 2.0"><span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt">Web</span><span style="line-height: 150%; font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">服务资源框架</span><span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt">(Web Services Resource Framework,WSRF)</span><span style="line-height: 150%; font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">是对</span><span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt">OGSI</span><span style="line-height: 150%; font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的重构与发展，它保留了</span><span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt">OGSI</span><span style="line-height: 150%; font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的所有核心功能，并克服了</span><span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt">OGSI</span><span style="line-height: 150%; font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的一些弊病：在一个协议中定义的内容太多、不能和现存的</span><span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt">Web</span><span style="line-height: 150%; font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">服务和</span><span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt">XML</span><span style="line-height: 150%; font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">工具很好的工作，等等。</span><span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt">WSRF</span><span style="line-height: 150%; font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">将</span><span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt">OGSI</span><span style="line-height: 150%; font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">定义的功能划分进四个不同的协议中，这些协议共同解决了在</span><span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt">Web</span><span style="line-height: 150%; font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">服务框架中表示、抽象及管理资源状态的问题。</span></p>
<h3><a name="_Toc197767442"><span lang="EN-US" style="font-size: 15pt; line-height: 173%; mso-fareast-font-family: 'Times New Roman'"><span style="mso-list: Ignore">1.1.2<span style="font: 7pt 'Times New Roman'">&nbsp;&nbsp; </span></span></span><span lang="EN-US" style="font-size: 15pt; line-height: 173%">WSRF</span></a><span style="mso-bookmark: _Toc197767442"><span style="font-size: 15pt; line-height: 173%; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的起源</span></span><span lang="EN-US" style="font-size: 15pt; line-height: 173%"><o:p></o:p></span></h3>
<p class="MsoNormal" style="text-indent: 21pt; line-height: 150%; mso-char-indent-count: 2.0"><span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt">WSRF ( </span><span lang="EN-US" style="color: blue">Web Services Resource Framework </span><span style="color: blue; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">，</span><span lang="EN-US" style="color: blue">Web</span><span style="color: blue; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">服务资源框架</span><span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt">)</span><span style="line-height: 150%; font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">是在网格中开发的。在网格计算中</span><span style="line-height: 150%; font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'">工作被分成适合于在多个系统上处理的</span><span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt">&#8220;</span><span style="line-height: 150%; font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'">单元</span><span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt">&#8221;</span><span style="line-height: 150%; font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'">，该</span><span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt">&#8220;</span><span style="line-height: 150%; font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'">工作</span><span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt">&#8221;</span><span style="line-height: 150%; font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'">可以是计算、存储或其他类型的处理。</span><span style="line-height: 150%; mso-bidi-font-size: 10.5pt"> </span><span style="line-height: 150%; font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'">单元被分布到多个客户机。这个步骤通过让客户机请求或</span><span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt">&#8220;pull&#8221;</span><span style="line-height: 150%; font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'">工作，或者让中央服务器将工作</span><span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt">&#8220;push&#8221;</span><span style="line-height: 150%; font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'">给可用的客户机来完成。</span><span style="line-height: 150%; mso-bidi-font-size: 10.5pt"> </span><span style="line-height: 150%; font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'">总体进展、需求和状态由中央系统或系统组维护。</span><span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt"> <o:p></o:p></span></p>
<p class="MsoNormal" style="text-indent: 21pt; line-height: 150%; mso-char-indent-count: 2.0"><span style="line-height: 150%; font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'">当前的网格应用程序一般遵循这种模式，有一个中央系统与客户机交互，这些客户机位于那些一般在地理位置上与中央服务器分离的系统上。</span><span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-indent: 21pt; line-height: 150%; mso-char-indent-count: 2.0"><span style="line-height: 150%; font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'">既然多个客户机在不同的地方，那么</span><span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt"> Web </span><span style="line-height: 150%; font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'">服务应该是网格计算顺理成章的选择。毕竟，它提供一种标准而容易的方法，以从一个系统到另一个系统获得信息，而不用求助于特定于平台或语言的方法，比如</span><span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt"> CORBA</span><span style="line-height: 150%; font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'">、</span><span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt">DCOM </span><span style="line-height: 150%; font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'">或</span><span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt"> Java-RMI</span><span style="line-height: 150%; font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'">。</span><span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-indent: 21pt; line-height: 150%; mso-char-indent-count: 2.0"><span style="line-height: 150%; font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'">然而，早期的网格应用程序使用其他更加不可移植的方法。但是为什么呢？</span><span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-indent: 21pt; line-height: 150%; mso-char-indent-count: 2.0"><span style="line-height: 150%; font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'">也许最贴切的是体系结构方面的原因。尽管网格应用程序可以在很多机器上实现，但它仍然是一个应用程序，因此很难与本质上是无状态的体系结构相协调。当使用数据库客户机连接到一个数据库时，您就保持了连接，并且可以插入记录，然后再查看插入的结果。另一个客户查看表时不会看到该记录，除非您提交了事务，但是数据库认识您的会话，并知道是您。</span><span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-indent: 21pt; line-height: 150%; mso-char-indent-count: 2.0"><span style="line-height: 150%; font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'">但是</span><span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt">Web</span><span style="line-height: 150%; font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'">服务的工作方式不是这样的。利用</span><span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt"> Web </span><span style="line-height: 150%; font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'">服务，您发出请求（比如插入一条记录）并得到响应（比如插入成功），然后断开连接。没有正在进行的会话需要管理。例如</span><span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt"> HTTP —</span><span style="line-height: 150%; font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'">在大多数情况下，</span><span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt">Web</span><span style="line-height: 150%; font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'">服务通过</span><span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt">HTTP</span><span style="line-height: 150%; font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'">传输</span><span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt">—</span><span style="line-height: 150%; font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'">每个请求独立于前一个请求，</span><span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt">Web</span><span style="line-height: 150%; font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'">服务没有访问或使用任何不是当前输入消息一部分的信息。</span><span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-indent: 21pt; line-height: 150%; mso-char-indent-count: 2.0"><span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt">WSRF </span><span style="line-height: 150%; font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'">的目标是通过创建</span><span style="line-height: 150%; font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">&#8220;</span><span style="line-height: 150%; font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'">状态</span><span style="line-height: 150%; font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">&#8221;</span><span style="line-height: 150%; font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'">概念以及处理状态的方法来解决该问题。</span><span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-indent: 21pt; line-height: 150%; mso-char-indent-count: 2.0"><span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt">WSRF ( </span><span lang="EN-US" style="color: blue">Web Services Resource Framework </span><span style="color: blue; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">，</span><span lang="EN-US" style="color: blue">Web</span><span style="color: blue; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">服务资源框架</span><span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt">) </span><span style="line-height: 150%; font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-ansi-language: FR">是在</span><span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt"> Web </span><span style="line-height: 150%; font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-ansi-language: FR">服务的无状态环境中使用</span><span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt">&#8220;</span><span style="line-height: 150%; font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-ansi-language: FR">有状态</span><span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt">&#8221;</span><span style="line-height: 150%; font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-ansi-language: FR">资源的一种方式</span><span style="line-height: 150%; font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">，</span><span style="line-height: 150%; font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-ansi-language: FR">即在其中创建持久资源并通过</span><span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt">Web</span><span style="line-height: 150%; font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-ansi-language: FR">服务来管理它</span><span style="line-height: 150%; font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">，</span><span style="line-height: 150%; font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-ansi-language: FR">这种组合叫做</span><span style="line-height: 150%; mso-bidi-font-size: 10.5pt"> <span lang="EN-US" style="color: red">WS-Resource</span></span><span style="color: red; line-height: 150%; font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-ansi-language: FR">。</span><span style="line-height: 150%; font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">这种有状态资源实际上可以是任何东西，从数据库到电子鼠标都是有状态资源。实际上，可以使用</span><span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt"> WSRF </span><span style="line-height: 150%; font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">来处理任何可以通过改变其属性来操纵的东西。</span><span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-indent: 21pt; line-height: 150%; mso-char-indent-count: 2.0"><span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt">WSRF </span><span style="line-height: 150%; font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">实际上是一系列协议，用于定义</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">操纵有状态资源的</span><span style="line-height: 150%; font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">标准的</span><span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt">&#8220;</span><span style="line-height: 150%; font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">消息模式</span><span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt">&#8221;</span><span style="line-height: 150%; font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">或方法，以请求属性的值或者指定这些属性应该变更。更确切的说，</span><span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt">WSRF </span><span style="line-height: 150%; font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">定义一些标准操作，以处理关于处理</span><span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt"> WS-Resources </span><span style="line-height: 150%; font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的各个方面，比如处理它们的属性，从而将它们成组在一起，以达到诸如这样的目的</span><span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt">--</span><span style="line-height: 150%; font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">进行身份验证，确保它们被及时地销毁等。</span><span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-indent: 21pt; line-height: 150%; mso-char-indent-count: 2.0"><span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt">WSRF </span><span style="line-height: 150%; font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">定义这些操作的方法是，定义了描述这些操作的</span><span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt"> WSDL </span><span style="line-height: 150%; font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">文件的结构，指定它们应该如何出现在</span><span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt"> Web </span><span style="line-height: 150%; font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">服务描述语言（</span><span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt">Web Services Description Language</span><span style="line-height: 150%; font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">，</span><span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt">WSDL</span><span style="line-height: 150%; font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">）文件中。</span><span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt">WSDL </span><span style="line-height: 150%; font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">文件定义</span><span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt"> Web </span><span style="line-height: 150%; font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">服务会话两端之间传输的消息，所以通过定义</span><span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt"> WSDL </span><span style="line-height: 150%; font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">文件，</span><span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt">WSRF </span><span style="line-height: 150%; font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">定义了发生的任何交互的形式。该</span><span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt"> WSDL </span><span style="line-height: 150%; font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">文件然后可以被任何语言的实现所使用。</span></p>
<h3><a name="_Toc197767443"><span lang="EN-US" style="font-size: 15pt; line-height: 173%; mso-fareast-font-family: 'Times New Roman'"><span style="mso-list: Ignore">1.1.3<span style="font: 7pt 'Times New Roman'">&nbsp;&nbsp; </span></span></span><span lang="EN-US" style="font-size: 15pt; line-height: 173%">WSRF</span></a><span style="mso-bookmark: _Toc197767443"><span style="font-size: 15pt; line-height: 173%; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的历史</span></span><span lang="EN-US" style="font-size: 15pt; line-height: 173%"><o:p></o:p></span></h3>
<p class="MsoNormal" style="text-indent: 21pt; line-height: 150%; mso-char-indent-count: 2.0"><span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt">2001</span><span style="line-height: 150%; font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">年，</span><span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt">Ian Foster</span><span style="line-height: 150%; font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">提出了开放的网格服务体系结构</span><span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt">OGSA[17,18] (Open Grid Service Architecture)</span><span style="line-height: 150%; font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">，确定了</span><span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt">Web</span><span style="line-height: 150%; font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">服务作为网格资源的新的抽象形式和构造基础。在</span><span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt">2003</span><span style="line-height: 150%; font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">年</span><span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt">3</span><span style="line-height: 150%; font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">月的</span><span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt">GGF[19]</span><span style="line-height: 150%; font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">上，</span><span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt">OGSA</span><span style="line-height: 150%; font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">已确定为网格研究的主流方向。</span><span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt">OGSA</span><span style="line-height: 150%; font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">是一个面向服务的体系结构，采用服务作为资源的统一封装和互操作形式，通过定义标准的网格协议使网格成为一个开放系统。</span><span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-indent: 21pt; line-height: 150%; mso-char-indent-count: 2.0"><span style="line-height: 150%; font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">开放网格服务基础结构</span><span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt">(OGSI)</span><span style="line-height: 150%; font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">是</span><span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt">OGSA</span><span style="line-height: 150%; font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的基本组件。这是一项基于新兴的</span><span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt">Web Services</span><span style="line-height: 150%; font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">标准的网格软件基础结构标准化工作，用于为</span><span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt">OGSA</span><span style="line-height: 150%; font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">软件组件提供最大的互操作性。其根本出发点是通过将关键的网格技术与</span><span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt">Web</span><span style="line-height: 150%; font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">服务技术集成起来，形成一个分布式系统框架，通过一种</span><span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt">Grid Service</span><span style="line-height: 150%; font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">来实现两者的结合。</span><span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-indent: 21pt; line-height: 150%; mso-char-indent-count: 2.0"><span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt">Web</span><span style="line-height: 150%; font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">服务支持者认为</span><span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt">OGSI</span><span style="line-height: 150%; font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">有如下</span><span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt">4</span><span style="line-height: 150%; font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">个不利于其发展的弊病：</span><span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt">(1)</span><span style="line-height: 150%; font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">在一个协议中包含了过多的内容，协议对不同内容的规定详细程度也各不相同，使得协议的实现难于搭建；</span><span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt">(2)</span><span style="line-height: 150%; font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">由于过多的使用</span><span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt">XML Schema</span><span style="line-height: 150%; font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">及其扩展，</span><span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt">OGSI</span><span style="line-height: 150%; font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">与现有的</span><span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt">Web</span><span style="line-height: 150%; font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">服务和</span><span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt">XML</span><span style="line-height: 150%; font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">工具不能很好的联系起来；</span><span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt">(3)</span><span style="line-height: 150%; font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">在编程模式的设计上过于面向对象化，要求</span><span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt">Web Service</span><span style="line-height: 150%; font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">对象一样能够支持实例内部状态的维护，这一点得不到</span><span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt">Web</span><span style="line-height: 150%; font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">服务技术拥护者的支持，同时也难于在基于</span><span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt">HTTP</span><span style="line-height: 150%; font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的</span><span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt">Web</span><span style="line-height: 150%; font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">上实现；</span><span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt">(4)</span><span style="line-height: 150%; font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">对</span><span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt">WSDL</span><span style="line-height: 150%; font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">做了过多的扩展，使得</span><span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt">OGSI</span><span style="line-height: 150%; font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">难以无缝集成到以</span><span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt">WSDL</span><span style="line-height: 150%; font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">为基础的</span><span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt">Web</span><span style="line-height: 150%; font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">服务协议栈之中，使</span><span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt">OGSI</span><span style="line-height: 150%; font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">与</span><span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt">Web</span><span style="line-height: 150%; font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">服务不能很好地结合在一起。</span><span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-indent: 21pt; line-height: 150%; mso-char-indent-count: 2.0"><span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt">2004</span><span style="line-height: 150%; font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">年</span><span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt">1</span><span style="line-height: 150%; font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">月，</span><span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt">IBM</span><span style="line-height: 150%; font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">、</span><span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt">Globus</span><span style="line-height: 150%; font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">联盟和</span><span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt">HP</span><span style="line-height: 150%; font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">共同提出了</span><span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt">WSRF</span><span style="line-height: 150%; font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">协议，它是对</span><span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt">OGSI</span><span style="line-height: 150%; font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的重构和发展，保留了</span><span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt">OGSI</span><span style="line-height: 150%; font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的核心功能并解决了上述弊病。经过两年多的发展，</span><st1:chsdate w:st="on" year="2006" month="4" day="1" islunardate="False" isrocdate="False"><span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt">2006</span><span style="line-height: 150%; font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">年</span><span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt">4</span><span style="line-height: 150%; font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">月</span><span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt">1</span><span style="line-height: 150%; font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">日</span></st1:chsdate><span style="line-height: 150%; font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">，</span><span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt">WSRF1.2 </span><span style="line-height: 150%; font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">成为了</span><span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt">OASIS</span><span style="line-height: 150%; font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的标准。</span><span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-indent: 21pt; line-height: 150%; mso-char-indent-count: 2.0"><span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt">WSRF</span><span style="line-height: 150%; font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的目标是定义一个通用、开放的框架，使用</span><span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt">Web</span><span style="line-height: 150%; font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">服务技术对有状态资源进行建模和寻址。它定义了如何表示、访问、管理有状态资源</span><span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt">(WS-Resource)</span><span style="line-height: 150%; font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">以及如何将资源进行群组。其中最核心的概念是</span><span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt">WS-Resource</span><span style="line-height: 150%; font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">，它是&#8220;静态&#8221;</span><span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt">Web</span><span style="line-height: 150%; font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">服务和相关有状态资源的组合，能够通过隐式资源模式</span><span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt">(implied resource pattern[20])</span><span style="line-height: 150%; font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">进行寻址和访问。</span><span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt">WS-Addressing[21]</span><span style="line-height: 150%; font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">协议的提出，极大地促进了</span><span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt">WSRF</span><span style="line-height: 150%; font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的发展，它解决了有状态资源的寻址问题，提出了一种传输中立</span><span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt">(transport-neutral)</span><span style="line-height: 150%; font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">、面向服务</span><span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt">(service-oriented)</span><span style="line-height: 150%; font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的机制对动态且有状态的资源进行寻址。</span><span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt">WSRF</span><span style="line-height: 150%; font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">协议包含一系列子协议，旨在解决有状态</span><span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt">Web</span><span style="line-height: 150%; font-family: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">服务的运行、管理和通信问题。</span><span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-indent: 21pt; line-height: 150%; mso-char-indent-count: 2.0"><span lang="EN-US" style="line-height: 150%; mso-bidi-font-size: 10.5pt"><o:p></o:p></span></p>
<img src ="http://www.blogjava.net/orangelizq/aggbug/287333.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/orangelizq/" target="_blank">桔子汁</a> 2009-07-19 15:38 <a href="http://www.blogjava.net/orangelizq/archive/2009/07/19/287333.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>XML解析技术研究(二)</title><link>http://www.blogjava.net/orangelizq/archive/2009/07/19/287332.html</link><dc:creator>桔子汁</dc:creator><author>桔子汁</author><pubDate>Sun, 19 Jul 2009 07:30:00 GMT</pubDate><guid>http://www.blogjava.net/orangelizq/archive/2009/07/19/287332.html</guid><wfw:comment>http://www.blogjava.net/orangelizq/comments/287332.html</wfw:comment><comments>http://www.blogjava.net/orangelizq/archive/2009/07/19/287332.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/orangelizq/comments/commentRss/287332.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/orangelizq/services/trackbacks/287332.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: XML作为过去十年中出现的最流行的技术之一，得到了广泛的应用，而其中XML解析技术是XML应用的关键。本文介绍了XML解析技术的研究动向，分析和比较了4种XML解析技术的优劣，并归纳总结了应用系统设计中选取合适的XML解析技术的原则。&nbsp;&nbsp;<a href='http://www.blogjava.net/orangelizq/archive/2009/07/19/287332.html'>阅读全文</a><img src ="http://www.blogjava.net/orangelizq/aggbug/287332.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/orangelizq/" target="_blank">桔子汁</a> 2009-07-19 15:30 <a href="http://www.blogjava.net/orangelizq/archive/2009/07/19/287332.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>XML解析技术研究(一)</title><link>http://www.blogjava.net/orangelizq/archive/2009/07/19/287330.html</link><dc:creator>桔子汁</dc:creator><author>桔子汁</author><pubDate>Sun, 19 Jul 2009 07:25:00 GMT</pubDate><guid>http://www.blogjava.net/orangelizq/archive/2009/07/19/287330.html</guid><wfw:comment>http://www.blogjava.net/orangelizq/comments/287330.html</wfw:comment><comments>http://www.blogjava.net/orangelizq/archive/2009/07/19/287330.html#Feedback</comments><slash:comments>6</slash:comments><wfw:commentRss>http://www.blogjava.net/orangelizq/comments/commentRss/287330.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/orangelizq/services/trackbacks/287330.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: XML作为过去十年中出现的最流行的技术之一，得到了广泛的应用，而其中XML解析技术是XML应用的关键。本文介绍了XML解析技术的研究动向，分析和比较了4种XML解析技术的优劣，并归纳总结了应用系统设计中选取合适的XML解析技术的原则。&nbsp;&nbsp;<a href='http://www.blogjava.net/orangelizq/archive/2009/07/19/287330.html'>阅读全文</a><img src ="http://www.blogjava.net/orangelizq/aggbug/287330.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/orangelizq/" target="_blank">桔子汁</a> 2009-07-19 15:25 <a href="http://www.blogjava.net/orangelizq/archive/2009/07/19/287330.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>XMPP协议简介</title><link>http://www.blogjava.net/orangelizq/archive/2009/03/25/261957.html</link><dc:creator>桔子汁</dc:creator><author>桔子汁</author><pubDate>Wed, 25 Mar 2009 14:47:00 GMT</pubDate><guid>http://www.blogjava.net/orangelizq/archive/2009/03/25/261957.html</guid><wfw:comment>http://www.blogjava.net/orangelizq/comments/261957.html</wfw:comment><comments>http://www.blogjava.net/orangelizq/archive/2009/03/25/261957.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/orangelizq/comments/commentRss/261957.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/orangelizq/services/trackbacks/261957.html</trackback:ping><description><![CDATA[ <img src ="http://www.blogjava.net/orangelizq/aggbug/261957.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/orangelizq/" target="_blank">桔子汁</a> 2009-03-25 22:47 <a href="http://www.blogjava.net/orangelizq/archive/2009/03/25/261957.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[转] Axis， Axis2  和Apache CXF</title><link>http://www.blogjava.net/orangelizq/archive/2008/05/15/200649.html</link><dc:creator>桔子汁</dc:creator><author>桔子汁</author><pubDate>Thu, 15 May 2008 07:19:00 GMT</pubDate><guid>http://www.blogjava.net/orangelizq/archive/2008/05/15/200649.html</guid><wfw:comment>http://www.blogjava.net/orangelizq/comments/200649.html</wfw:comment><comments>http://www.blogjava.net/orangelizq/archive/2008/05/15/200649.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/orangelizq/comments/commentRss/200649.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/orangelizq/services/trackbacks/200649.html</trackback:ping><description><![CDATA[新一代的 Web Services 框架如 Axis2、CXF 都是由现有的项目中逐渐演化而来的，Axis2 是由大家熟悉的 Axis 1.x 系列演化过来，而 <span class="hilite1"><span class="hilite1">Apache</span></span> CXF 则是由 Celtix 和 XFire 项目整合而生，并且刚刚发布了 2.0.2 的最新版本，不过仍是 <span class="hilite1"><span class="hilite1">Apache</span></span> 的一个孵化项目。 <br />
<br />
Axis2 是对 Axis 进行了彻底的重写的一个新项目了，它使用了新的模块化架构，更方便于功能性的扩展等等。 <br />
<span class="hilite1"><span class="hilite1">Apache</span></span> CXF 则是由 XFire 和 Celtix 两个现有的项目进行了重组。 <br />
<br />
问题：如果现有的应用程序是基于 Axis 1.x、XFire 或者 Celtix 的话，那应该怎么办？都迁移到这些新的框架上去吗？但是即使是要迁移，那应该迁移到哪个框架上去呢？ <br />
如果是编写一个新的 Web Services 应用程序的话，就不存在迁移的问题了，但是哪个框架是你应当选择进行使用的呢？哪个比哪个更好呢？ <br />
<br />
对于现在的应用程序的迁移，如果你的应用程序是稳定而成熟的，并且在可预知的未来的情况下，只要很少的一些需求变更要做的话，那么保存你的体力，不要去做&#8220;劳民伤财&#8220;的迁移工作了。 <br />
如果你的现有应用程序BUG缠身，性能，功能等等都一片糟糕的话，那就要考虑迁移了，那选哪个框架呢？先比较一下它们的不同之处： <br />
<br />
　　1、<span class="hilite1"><span class="hilite1">Apache</span></span> CXF 支持 WS-<span class="hilite2"><span class="hilite2">Addressing</span></span>、WS-Policy、WS-RM、WS-Security和WS-I BasicProfile <br />
　　2、Axis2 支持 WS-<span class="hilite2"><span class="hilite2">Addressing</span></span>、WS-RM、WS-Security和WS-I BasicProfile，WS-Policy将在新版本里得到支持 <br />
　　3、<span class="hilite1"><span class="hilite1">Apache</span></span> CXF 是根据Spring哲学来进行编写的，即可以无缝地与Spring进行整合 <br />
　　4、Axis2 不是 <br />
　　5、Axis2 支持更多的 data bindings，包括 XMLBeans、JiBX、JaxMe 和 JaxBRI，以及它原生的 data binding（ADB）。 <br />
　　6、<span class="hilite1"><span class="hilite1">Apache</span></span> CXF 目前仅支持 JAXB 和 Aegis，并且默认是 JAXB 2.0，与 XFire 默认是支持 Aegis 不同，XMLBeans、JiBX 和 Castor 将在 CXF 2.1 版本中得到支持，目前版本是 2.0.2 <br />
　　7、Axis2 支持多种语言，它有 C/C++ 版本。 <br />
　　8、<span class="hilite1"><span class="hilite1">Apache</span></span> CXF 提供方便的Spring整合方法，可以通过注解、Spring标签式配置来暴露Web Services和消费Web Services <br />
<br />
如何抉择： <br />
1、如果应用程序需要多语言的支持，Axis2 应当是首选了； <br />
2、如果应用程序是遵循 Spring 哲学路线的话，<span class="hilite1"><span class="hilite1">Apache</span></span> CXF 是一种更好的选择，特别对嵌入式的 Web Services 来说； <br />
3、如果应用程序没有新的特性需要的话，就仍是用原来项目所用的框架，比如 Axis1，XFire，Celtrix 或 BEA 等等厂家自己的 Web Services 实现，就别劳民伤财了。 
<img src ="http://www.blogjava.net/orangelizq/aggbug/200649.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/orangelizq/" target="_blank">桔子汁</a> 2008-05-15 15:19 <a href="http://www.blogjava.net/orangelizq/archive/2008/05/15/200649.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>WSDL样式详解</title><link>http://www.blogjava.net/orangelizq/archive/2008/04/22/194903.html</link><dc:creator>桔子汁</dc:creator><author>桔子汁</author><pubDate>Tue, 22 Apr 2008 15:02:00 GMT</pubDate><guid>http://www.blogjava.net/orangelizq/archive/2008/04/22/194903.html</guid><wfw:comment>http://www.blogjava.net/orangelizq/comments/194903.html</wfw:comment><comments>http://www.blogjava.net/orangelizq/archive/2008/04/22/194903.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/orangelizq/comments/commentRss/194903.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/orangelizq/services/trackbacks/194903.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: WSDL样式详解，WSDL绑定中的RPC，Document，Encoded，Literal的作用。&nbsp;&nbsp;<a href='http://www.blogjava.net/orangelizq/archive/2008/04/22/194903.html'>阅读全文</a><img src ="http://www.blogjava.net/orangelizq/aggbug/194903.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/orangelizq/" target="_blank">桔子汁</a> 2008-04-22 23:02 <a href="http://www.blogjava.net/orangelizq/archive/2008/04/22/194903.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[转]W3C 标准化进程 </title><link>http://www.blogjava.net/orangelizq/archive/2008/04/19/194231.html</link><dc:creator>桔子汁</dc:creator><author>桔子汁</author><pubDate>Sat, 19 Apr 2008 12:52:00 GMT</pubDate><guid>http://www.blogjava.net/orangelizq/archive/2008/04/19/194231.html</guid><wfw:comment>http://www.blogjava.net/orangelizq/comments/194231.html</wfw:comment><comments>http://www.blogjava.net/orangelizq/archive/2008/04/19/194231.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/orangelizq/comments/commentRss/194231.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/orangelizq/services/trackbacks/194231.html</trackback:ping><description><![CDATA[<p>W3C 标准化进程 </p>
<p>--------------------------------------------------------------------------------<br />
作者:w3pop.com 翻译/整理:w3pop.com&nbsp;<br />
&nbsp;<br />
The W3C standards approval process includes up to 7 different steps.<br />
W3C标准包含了7个不同的审批步骤。<br />
--------------------------------------------------------------------------------</p>
<p>W3C Specification Approval Steps<br />
W3C规格的审批步骤<br />
When W3C is publishing a new Web standard, the specification has worked its way from an idea through a lot of refining processes including the following:<br />
当W3C发布一个全新的网络标准时，必须通过下面的确认进程：</p>
<p>W3C receives a Submission<br />
W3C 受到一个提交申请 <br />
W3C publishes a Note<br />
W3C 发布一个公告 <br />
W3C creates a Working Group<br />
W3C 创建一个工作组 <br />
W3C publishes a Working Draft<br />
W3C 发布一个工作草案 <br />
W3C publishes a Candidate Recommendation<br />
W3C 发布一个候选的推荐标准 <br />
W3C publishes a Proposed Recommendation<br />
W3C 发布一个被提议的推荐标准 <br />
W3C publishes a Recommendation<br />
W3C 正式发布一个推荐标准 <br />
--------------------------------------------------------------------------------</p>
<p>W3C Submissions<br />
W3C 提请<br />
Any W3C member can submit a suggestion for a Web standard to the consortium. Most W3C Recommendations started as a submission to the consortium.<br />
所有的W3C成员都可以向联盟提交他们推荐的网络标准。大多数W3C推荐标准都始于最初提交的标准。</p>
<p>If a submission is within the W3C work area (or charter), the W3C will decide if they should start working to refine the suggestion.<br />
如果是在W3C工作域（或部门）内部提交的，那么W3C将决定是否应该开始对其提交的内容标准进行限定。</p>
<p><br />
--------------------------------------------------------------------------------</p>
<p>W3C Notes<br />
W3C 公告<br />
Often a submission to the W3C becomes a Note. A Note is a description of a suggestion refined as a public document.<br />
通常情况下，向W3C提请推荐的标准都会被公告出来。他会以公共文档的形式描述这个提议。</p>
<p>A Note is made available by the W3C for discussion only. Publication of a Note indicates no endorsement by W3C. The content of a Note is edited by the member that submitted the Note, and not by the W3C. A Note may be updated, replaced, or rendered obsolete at any time. The publication of a Note does not indicate that the W3C has started any work related to the Note.<br />
该公告将会作为W3C的讨论对象。发布公告意味着并未得到W3C的签署确认。公告内容由提交公告的成员编辑成章，而不是W3C。一份公告可以在任何时间更新、替换、呈递、废除。公告的发布并不意味着W3C已经对其公告开始任何工作了。</p>
<p><br />
--------------------------------------------------------------------------------</p>
<p>W3C Working Groups<br />
W3C工作组<br />
When a submission is acknowledged by the W3C, a Working Group consisting of members and other interested parties is formed.<br />
当一份提交的公告被W3C接纳时，那么就会组成包括各个成员和其他相关的部门在内的工作组。</p>
<p>The Working Group will normally define a time schedule and issue a Working Draft of the proposed standard, describing the work in progress.<br />
工作组将会确定一个时间表，并讨论所提请标准的相关议题草案，以描述工作进程。</p>
<p><br />
--------------------------------------------------------------------------------</p>
<p>W3C Working Drafts<br />
W3C 工作草案<br />
W3C Working Drafts are normally posted on the W3C Web site, along with an invitation for public comments.<br />
W3C 工作草案通常在W3C的网站上发布，通常包括发布注释。</p>
<p>A Working Draft indicates work in progress, but should not be used as reference material. The content may be updated, replaced, or rendered obsolete at any time.<br />
工作草案暗示了工作进程，但是，不能用作参考资料。该内容可以在任何时间内更新、替代、呈递、废除。</p>
<p><br />
--------------------------------------------------------------------------------</p>
<p>W3C Candidate Recommendations<br />
W3C 候选推荐标准<br />
Some specifications are more complex than others, and might require more input, more time, and more testing from members and software vendors. Sometimes these specifications are published as Candidate Recommendations.<br />
许多规范较为复杂，因此，它可能需要更多的信息、时间和来自各成员方以及软件销售商的更多测试。有时，这些规范将作为候选标准被发布。</p>
<p>A Candidate Recommendation is also a "work in progress" and should not be used as reference material. The document may be updated, obsolete, and replaced at any time.<br />
候选标准也是一个&#8220;工作进程&#8221;，其同样不能作为参考资料。该文档可以在任何时间内更新、替代、呈递、废除。</p>
<p><br />
--------------------------------------------------------------------------------</p>
<p>W3C Proposed Recommendations<br />
W3C 被提议的推荐标准<br />
A Proposed Recommendation represents the final stage of the work in the Working Group.<br />
被提议的推荐标准代表了工作组所有工作的尾声。</p>
<p>A Proposed Recommendation is still a "work in progress" and may still be updated, obsolete, and replaced. But even if it does not imply any official endorsement by the W3C, most often a Proposed Recommendation is close to the final Recommendation both in content and in time.<br />
被提议的推荐标准同样属于&#8220;工作进程&#8221;，因此，也可以被更新、废除或替代。然而，即使它没有得到任何关于W3C的官方认可，大多数情况下，被提议的推荐标准与最终的推荐标准无论是在内容上还是时间上都是非常相近的。</p>
<p><br />
--------------------------------------------------------------------------------</p>
<p>W3C Recommendations<br />
W3C 推荐标准<br />
W3C Recommendations have been reviewed by the W3C members, and have the W3C's director's stamp of approval.<br />
W3C 推荐标准将被W3C成员重新回顾，并且拥有W3C主管的确认印章。 </p>
<p>A W3C Recommendation is considered a stable document and may be used as reference material.<br />
W3C 推荐标准被认为是确认的文档，它可以用于参考资料。 </p>
<img src ="http://www.blogjava.net/orangelizq/aggbug/194231.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/orangelizq/" target="_blank">桔子汁</a> 2008-04-19 20:52 <a href="http://www.blogjava.net/orangelizq/archive/2008/04/19/194231.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[转]W3C 简介 </title><link>http://www.blogjava.net/orangelizq/archive/2008/04/19/194229.html</link><dc:creator>桔子汁</dc:creator><author>桔子汁</author><pubDate>Sat, 19 Apr 2008 12:50:00 GMT</pubDate><guid>http://www.blogjava.net/orangelizq/archive/2008/04/19/194229.html</guid><wfw:comment>http://www.blogjava.net/orangelizq/comments/194229.html</wfw:comment><comments>http://www.blogjava.net/orangelizq/archive/2008/04/19/194229.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/orangelizq/comments/commentRss/194229.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/orangelizq/services/trackbacks/194229.html</trackback:ping><description><![CDATA[<p>W3C 简介 </p>
<p>--------------------------------------------------------------------------------<br />
作者:w3pop.com 翻译/整理:w3pop.com&nbsp;<br />
<br />
&nbsp;W3C was started in 1994 to lead the Web to its full potential by developing common protocols that promote its evolution and ensure its interoperability.<br />
W3C 在1994年创立，它通过开发最常用的协议推进互联网的革命，确保互联网的协同工作能力，从而引领了互联网的潮流。</p>
<p>--------------------------------------------------------------------------------</p>
<p>What it Is<br />
什么是W3C？<br />
W3C Stands for the World Wide Web Consortium<br />
W3C 代表了万维网联盟</p>
<p>W3C was created in October 1994<br />
W3C 在1994年10月创立</p>
<p>W3C was created by Tim Berners-Lee<br />
W3C 的创始人是Tim Berners-Lee</p>
<p>W3C was created by the Inventor of the Web<br />
W3C 是Web的发明者创建的</p>
<p>W3C is organized as a Member Organization<br />
W3C 是一个成员组织</p>
<p>W3C is working to Standardize the Web<br />
W3C 致力于创建标准化的网络</p>
<p>W3C creates and maintains WWW Standards<br />
W3C 创建和维护了 WWW 标准</p>
<p>W3C Standards are called W3C Recommendations<br />
W3C 标准被称为 W3C 推荐</p>
<p><br />
--------------------------------------------------------------------------------</p>
<p>How it Started<br />
它是怎样被创建的？</p>
<p>The World Wide Web (WWW) began as a project at the European Organization for Nuclear Research (CERN), where Tim Berners-Lee developed a vision of the World Wide Web.<br />
万维网（WWW）是作为欧洲原子能研究机构组织（CERN）的一个项目而被创建出来的。在那里，Tim Berners-Lee 开发了万维网的第一个可视化版本。</p>
<p><br />
Tim Berners-Lee - the inventor of the World Wide Web - is now the Director of the World Wide Web Consortium (W3C).<br />
Tim Berners-Lee - 万维网的创始人 - 现在是W3C的总指挥。</p>
<p><br />
W3C was created in 1994 as a collaboration between the Massachusetts Institute of Technology (MIT) and the European Organization for Nuclear Research (CERN), with support from the U.S. Defense Advanced Research Project Agency (DARPA) and the European Commission.<br />
W3C 是由美国麻省理工大学（MIT）和欧洲原子能研究机构组织（CERN）</p>
<p><br />
--------------------------------------------------------------------------------</p>
<p>Standardizing the Web<br />
标准化网络</p>
<p>W3C is working to make the Web accessible to all users (despite differences in culture, education, ability, resources, and physical limitations)<br />
W3C 致力于让所有人都能够访问网络（包括不同的文化、教育程度、能力、资源和物理限制）</p>
<p><br />
W3C also coordinates its work with many other standards organizations such as the Internet Engineering Task Force, the Wireless Application Protocols (WAP) Forum and the Unicode Consortium.<br />
W3C 通常与其它的标准化组织合作，如：Internet 工程任务组。无线应用协议（WAP）论坛和统一标准编码协会。</p>
<p><br />
W3C is hosted by three universities:<br />
W3C 是由三所大学主办：</p>
<p><br />
Massachusetts Institute of Technology in the U.S.<br />
美国麻省理工</p>
<p>The French National Research Institute in Europe<br />
欧洲法国国家研究机构</p>
<p>Keio University in Japan<br />
日本庆应大学（Keio University）</p>
<p><br />
--------------------------------------------------------------------------------</p>
<p>W3C Members<br />
W3C 成员</p>
<p>Because the Web is so important (both in scope and in investment) that no single organization should have control over its future, W3C functions as a member organization.<br />
因为网络是如此的重要（包括活动范围和投资），因此，不可能出现单独的一支机构来掌控它的将来，W3C就是作为这样的一个成员组织。</p>
<p><br />
Some well known members are:<br />
很多著名的成员包括：</p>
<p><br />
IBM [国际商用机器]</p>
<p>Microsoft [微软]</p>
<p>America Online [美国在线]</p>
<p>Apple [苹果公司]</p>
<p>Adobe [Adobe公司]</p>
<p>Macromedia [Macromedia 公司]</p>
<p>Sun Microsystems [Sun 微型计算机系统公司]</p>
<p>The Full List of Member Organisations includes a variety of software vendors, content providers, corporate users, telecommunications companies, academic institutions, research laboratories, standards bodies, and governments.<br />
成员组织列表包含了所有的软件供应商、内容提供者、协作用户、电信公司、学术机构、研究实验室、标准团体和政府。</p>
<p>&nbsp;</p>
<p>--------------------------------------------------------------------------------</p>
<p>W3C Recommendations<br />
W3C 推荐标准</p>
<p>The most important work done by the W3C is the development of Web specifications (called "Recommendations") that describe communication protocols (like HTML and XML) and other building blocks of the Web.<br />
W3C最重要的工作就是发展用于描述交互式协议（如：HTML和XML）的网络规则和其他网络组件。</p>
<p><br />
Each W3C Recommendation is developed by a work group consisting of members and invited experts. The group obtains its input from companies and other organizations, and creates a Working Draft and finally a Proposed Recommendation. In general the Recommendation is submitted to the W3C membership and director, for a formal approval as a W3C Recommendation.<br />
每个W3C推荐标准都是由W3C成员和邀请的专家所开发的。该团体包括了来自于公司和其它组织的输入信息，并创建了工作样本，最终，将该协议作为推荐的标准。大致上讲，推荐的协议都要提交给W3C成员和总指挥审查，而后作为正式的W3C推荐标准公布于众。</p>
<img src ="http://www.blogjava.net/orangelizq/aggbug/194229.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/orangelizq/" target="_blank">桔子汁</a> 2008-04-19 20:50 <a href="http://www.blogjava.net/orangelizq/archive/2008/04/19/194229.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>WSDL的建模与解析</title><link>http://www.blogjava.net/orangelizq/archive/2008/04/08/191559.html</link><dc:creator>桔子汁</dc:creator><author>桔子汁</author><pubDate>Tue, 08 Apr 2008 12:40:00 GMT</pubDate><guid>http://www.blogjava.net/orangelizq/archive/2008/04/08/191559.html</guid><wfw:comment>http://www.blogjava.net/orangelizq/comments/191559.html</wfw:comment><comments>http://www.blogjava.net/orangelizq/archive/2008/04/08/191559.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/orangelizq/comments/commentRss/191559.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/orangelizq/services/trackbacks/191559.html</trackback:ping><description><![CDATA[&nbsp;
<p style="line-height: 150%"><span style="font-family: 宋体">对于</span> WSDL <span style="font-family: 宋体">解析，有如下</span> 3 <span style="font-family: 宋体">种基本方法：</span></p>
<p style="margin-left: 21pt; text-indent: -21pt; line-height: 150%; text-align: left; tab-stops: list 21.0pt" align="left"><strong>1.<span style="font: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></strong><strong><span style="font-family: 宋体">基于</span> DOM </strong><strong><span style="font-family: 宋体">的方法</span></strong><span style="font-family: 宋体">：由于</span> WSDL <span style="font-family: 宋体">文件从本质上来讲是一个</span> XML <span style="font-family: 宋体">文件，现有的</span> DOM API<span style="font-family: 宋体">（例如</span> Xerces<span style="font-family: 宋体">）能够用来进行解析或者构建</span> WSDL <span style="font-family: 宋体">文件。这种方法是最通用的，但同时也是处理</span> XML <span style="font-family: 宋体">文件最费力的方法。尽管从技术上来讲是可行的，基于</span> DOM API <span style="font-family: 宋体">的实现对于代码敏感且容易出错。同时，这一解决方法迫使您不得不处理两个完全不同的模型：</span>DOM <span style="font-family: 宋体">和</span> WSDL <span style="font-family: 宋体">模型。</span></p>
<p style="margin-left: 21pt; text-indent: -21pt; line-height: 150%; text-align: left; tab-stops: list 21.0pt" align="left"><strong>2.<span style="font: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></strong><strong><span style="font-family: 宋体">基于特定</span> API </strong><strong><span style="font-family: 宋体">的方法</span></strong><span style="font-family: 宋体">：</span> <span style="font-family: 宋体">利用</span> IBM <span style="font-family: 宋体">的</span> WSDL4J <span style="font-family: 宋体">来实现</span> WSDL <span style="font-family: 宋体">操作就是一个例子。这种方法倾向于</span> WSDL <span style="font-family: 宋体">模型，它允许您直接操作</span> WSDL <span style="font-family: 宋体">。这种方法的不足在于您不仅要处理</span> WSDL <span style="font-family: 宋体">本身，还要处理</span> WS-Addressing<span style="font-family: 宋体">、</span>WS-Policy <span style="font-family: 宋体">和扩展脚本。它同时还使用那些尚未成为标准的事物，这就意味着现有的一些</span> API <span style="font-family: 宋体">将会改变。在当前，一些试验性的</span> API <span style="font-family: 宋体">支持</span> WS-Addressing <span style="font-family: 宋体">的当前版本，但对于</span> WS-Policy <span style="font-family: 宋体">和扩展脚本却根本不支持。这就意味着这种基于特定</span> API <span style="font-family: 宋体">的方法不得不掺杂一定数量的</span> DOM <span style="font-family: 宋体">处理。</span></p>
<p style="margin-left: 21pt; text-indent: -21pt; line-height: 150%; text-align: left; tab-stops: list 21.0pt" align="left"><strong>3.<span style="font: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></strong><strong><span style="font-family: 宋体">基于</span> Java </strong><strong><span style="font-family: 宋体">生成的方法</span></strong><span style="font-family: 宋体">：因为描述我们实现的所有脚本都是标准的</span> XML <span style="font-family: 宋体">脚本，因此可以生成对应于这些脚本的</span> Java <span style="font-family: 宋体">类（支持</span> XML <span style="font-family: 宋体">编组和分组）。在这种情况下，</span> <strong>WSDL </strong><strong><span style="font-family: 宋体">文件直接转化为</span> Java </strong><strong><span style="font-family: 宋体">类，然后作为</span> Java </strong><strong><span style="font-family: 宋体">对象来管理</span></strong><span style="font-family: 宋体">。考虑到标准在不断进化这一事实，定制性的扩展将是很有必要。由于它的灵活性和对变化的适应性，这一方法最适合实现我们的解决方案。</span></p>
<p style="line-height: 150%"><span style="font-family: 宋体">对于</span>WSDL<span style="font-family: 宋体">模型目前有以下两种：</span></p>
<p style="margin-left: 21pt; text-indent: -21pt; line-height: 150%; tab-stops: list 21.0pt"><strong>1.<span style="font: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></strong>JSR110<span style="font-family: 宋体">规范，&#8220;</span>Java APIs For WSDL<span style="font-family: 宋体">&#8221;，是</span>Java<span style="font-family: 宋体">的</span>WSDL1.1<span style="font-family: 宋体">建模规范。</span></p>
<p style="text-indent: 21pt; line-height: 150%"><span style="font-family: 宋体">目前的实现是</span>WSDL4J<span style="font-family: 宋体">。最新版本为</span>WSDL4J V1.6.2<span style="font-family: 宋体">（</span>2006-11-08<span style="font-family: 宋体">）。</span></p>
<p style="text-indent: 21pt; line-height: 150%">The Web Services Description Language for Java Toolkit (WSDL4J) allows the creation, representation, and manipulation of WSDL documents. Is the reference implementation for JSR110 'JWSDL' </p>
<p style="margin-left: 21pt; line-height: 150%"><span style="font-family: 宋体">网址为：</span><a href="http://sourceforge.net/projects/wsdl4j/">http://sourceforge.net/projects/wsdl4j/</a></p>
<p style="margin-left: 21pt; text-indent: -21pt; line-height: 150%; tab-stops: list 21.0pt"><strong><span style="line-height: 150%">2.<span style="font: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></strong>Apache Woden <span style="font-family: 宋体">开源项目。对</span>WSDL2.0<span style="font-family: 宋体">规范的建模。</span></p>
<p style="margin-left: 21pt; line-height: 150%"><span style="font-family: 宋体">最新版本为</span> Woden V1.0M7b<span style="font-family: 宋体">（</span>2007-08-03<span style="font-family: 宋体">）</span></p>
<p style="text-indent: 21pt; line-height: 150%">The Woden project is an incubation subproject of the Apache Web Services Project to develop a Java class library for reading, manipulating, creating and writing WSDL documents, initially to support WSDL 2.0 but with the longer term aim of supporting past, present and future versions of WSDL.</p>
<p style="text-indent: 21pt; line-height: 150%">There are two main deliverables: an API and an implementation. The Woden API will consist of a set of Java interfaces. The WSDL 2.0-specific portion of the Woden API will conform to the W3C WSDL 2.0 specification. The implementation will be a high performance implementation directly usable in other Apache projects such as Axis2. </p>
<p style="line-height: 150%"><span style="line-height: 150%">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="line-height: 150%; font-family: 宋体">网址是：</span><span style="line-height: 150%">http://ws.apache.org/woden/index.html</span></p>
<img src ="http://www.blogjava.net/orangelizq/aggbug/191559.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/orangelizq/" target="_blank">桔子汁</a> 2008-04-08 20:40 <a href="http://www.blogjava.net/orangelizq/archive/2008/04/08/191559.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>理解WSRF之三：使用 WS-Notification</title><link>http://www.blogjava.net/orangelizq/archive/2007/12/27/170823.html</link><dc:creator>桔子汁</dc:creator><author>桔子汁</author><pubDate>Thu, 27 Dec 2007 02:54:00 GMT</pubDate><guid>http://www.blogjava.net/orangelizq/archive/2007/12/27/170823.html</guid><wfw:comment>http://www.blogjava.net/orangelizq/comments/170823.html</wfw:comment><comments>http://www.blogjava.net/orangelizq/archive/2007/12/27/170823.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/orangelizq/comments/commentRss/170823.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/orangelizq/services/trackbacks/170823.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: &nbsp;&nbsp;<a href='http://www.blogjava.net/orangelizq/archive/2007/12/27/170823.html'>阅读全文</a><img src ="http://www.blogjava.net/orangelizq/aggbug/170823.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/orangelizq/" target="_blank">桔子汁</a> 2007-12-27 10:54 <a href="http://www.blogjava.net/orangelizq/archive/2007/12/27/170823.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>理解WSRF之二：使用 WS-ResourceLifetime、WS-ServiceGroup 和 WS-BaseFaults </title><link>http://www.blogjava.net/orangelizq/archive/2007/11/27/163554.html</link><dc:creator>桔子汁</dc:creator><author>桔子汁</author><pubDate>Tue, 27 Nov 2007 13:24:00 GMT</pubDate><guid>http://www.blogjava.net/orangelizq/archive/2007/11/27/163554.html</guid><wfw:comment>http://www.blogjava.net/orangelizq/comments/163554.html</wfw:comment><comments>http://www.blogjava.net/orangelizq/archive/2007/11/27/163554.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/orangelizq/comments/commentRss/163554.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/orangelizq/services/trackbacks/163554.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: &nbsp; 理解 WSRF，第 2 部分：使用 WS-ResourceLifetime、WS-ServiceGroup 和 WS-BaseFaults &nbsp;谁应该学习本教程？ 本教程介绍 Web 服务资源框架（Web Services Resource Framework，WSRF）背后的概念。具体来说，解释了 WS-ServiceGroups 和 WS-BaseFaul...&nbsp;&nbsp;<a href='http://www.blogjava.net/orangelizq/archive/2007/11/27/163554.html'>阅读全文</a><img src ="http://www.blogjava.net/orangelizq/aggbug/163554.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/orangelizq/" target="_blank">桔子汁</a> 2007-11-27 21:24 <a href="http://www.blogjava.net/orangelizq/archive/2007/11/27/163554.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>理解WSRF之一 使用WS-ResourceProperties (整理自IBM网站)</title><link>http://www.blogjava.net/orangelizq/archive/2007/11/07/158944.html</link><dc:creator>桔子汁</dc:creator><author>桔子汁</author><pubDate>Wed, 07 Nov 2007 14:04:00 GMT</pubDate><guid>http://www.blogjava.net/orangelizq/archive/2007/11/07/158944.html</guid><wfw:comment>http://www.blogjava.net/orangelizq/comments/158944.html</wfw:comment><comments>http://www.blogjava.net/orangelizq/archive/2007/11/07/158944.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/orangelizq/comments/commentRss/158944.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/orangelizq/services/trackbacks/158944.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: &nbsp;&nbsp;<a href='http://www.blogjava.net/orangelizq/archive/2007/11/07/158944.html'>阅读全文</a><img src ="http://www.blogjava.net/orangelizq/aggbug/158944.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/orangelizq/" target="_blank">桔子汁</a> 2007-11-07 22:04 <a href="http://www.blogjava.net/orangelizq/archive/2007/11/07/158944.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[转]Web服务已不再Cool </title><link>http://www.blogjava.net/orangelizq/archive/2007/09/28/149362.html</link><dc:creator>桔子汁</dc:creator><author>桔子汁</author><pubDate>Fri, 28 Sep 2007 13:58:00 GMT</pubDate><guid>http://www.blogjava.net/orangelizq/archive/2007/09/28/149362.html</guid><wfw:comment>http://www.blogjava.net/orangelizq/comments/149362.html</wfw:comment><comments>http://www.blogjava.net/orangelizq/archive/2007/09/28/149362.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/orangelizq/comments/commentRss/149362.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/orangelizq/services/trackbacks/149362.html</trackback:ping><description><![CDATA[<blockquote dir="ltr" style="margin-right: 0px">
<p>作者：Eric Newcomer<br />
<br />
嗯，这是迟早的事<font face="Times New Roman">。没有一项技术可以永远享有全新技术的称号。在将近七年之后，我想，也终于轮到<span class="492200506-10012007">Web服务了。</span></font></p>
<p class="entry-body">
<p><span class="492200506-10012007">Web服务的</span>采纳率继续稳定增长，近期的一次<a title="blocked::http://home.businesswire.com/portal/site/google/index.jsp?ndmViewId=news_view&amp;newsId=20061220005813&amp;newsLang=en" href="http://home.businesswire.com/portal/site/google/index.jsp?ndmViewId=news_view&amp;newsId=20061220005813&amp;newsLang=en"><font title="blocked::http://home.businesswire.com/portal/site/google/index.jsp?ndmViewId=news_view&amp;newsId=20061220005813&amp;newsLang=en" color="#575757">调查</font></a>（不幸地是，它似乎混淆了<span class="492200506-10012007">Web服务与SOA</span>）显示，<span class="492200506-10012007">SOA的采纳正在增加，并且确实带来了生产率的提高。</span></p>
<p>这一迹象似乎与<a title="blocked::http://www.infoq.com/articles/pete-lacey-ws-criticism" href="http://www.infoq.com/articles/pete-lacey-ws-criticism"><font title="blocked::http://www.infoq.com/articles/pete-lacey-ws-criticism" color="#575757">近来关于<span class="492200506-10012007" title="blocked::http://www.infoq.com/articles/pete-lacey-ws-criticism">SOAP的批评</span></font></a>公然抵触。</p>
<p>那么，这一切意味着什么呢？这意味着，不可避免的批判就要开始，这种批判会在一项Cool<span class="492200506-10012007">技术进入主流时发生。就好比，人们喜爱独立乐队，但当它卖出了一百万张CD时，人们的态度就会发生改变。</span></p>
<p>这恰恰与<span class="492200506-10012007">Gartner集团的"<a title="blocked::http://www.gartner.com/DisplayDocument?doc_cd=130115" href="http://www.gartner.com/DisplayDocument?doc_cd=130115"><font title="blocked::http://www.gartner.com/DisplayDocument?doc_cd=130115" color="#575757">hype cycle</font></a>"相吻合——Web服务已经过了期望膨胀期（peak of inflated expectations），现在正处于幻觉破灭期（trough of disillusionment），并正在走向主流采纳。 </span></p>
<p><span class="492200506-10012007">[注：虽然我无法提供免费的Gartner Hype Cycle 2006年度报告的链接，但我可以告诉你，SOA正处于幻觉破灭期之中，而高级Web服务很快也将步入这一阶段。]</span></p>
<p>所以，我们不断听到的这些关于<span class="492200506-10012007">WS-*多么糟糕的</span>议论，只不过表明它即将进入主流而已。<span class="492200506-10012007"> ;-)</span></p>
<p>不过认真地说，一项技术一旦通过了<span class="492200506-10012007">hype cycle并获得采纳，随着我们发现它所真正适用和不适用的场合，它的所有瑕疵和不足将会变得愈加明显。那样的话，这些批判其实是认同"应当胜任目标场合"（尽管它是通过不胜任的例子来表达的）。</span></p>
<p><a title="blocked::http://www.infoq.com/news/2006/12/soa-web-services-discussion" href="http://www.infoq.com/news/2006/12/soa-web-services-discussion"><font title="blocked::http://www.infoq.com/news/2006/12/soa-web-services-discussion" color="#575757">Mark Little</font></a>最近发表了一则有趣的观点，他问"所有这种对<span class="492200506-10012007">Web服务的</span>对抗会不会威胁<span class="492200506-10012007"> SOA的采纳"。他在一则<a title="blocked::http://www.infoq.com/news/2006/12/soa-web-services-discussion#view_4242" href="http://www.infoq.com/news/2006/12/soa-web-services-discussion#view_4242"><font title="blocked::http://www.infoq.com/news/2006/12/soa-web-services-discussion#view_4242" color="#575757">评论</font></a>中做出了阐明，他说"在Web服务和SOA之间划上等号，限制了在某些SOA需求中选择采用其他更合适的技术"。</span></p>
<p>这点好极了——我们既不应将<span class="492200506-10012007">Web服务作为正确的方案，也不应将REST作为正确的方案。</span></p>
<p>实际上，这种争论在一定程度上表明了<span class="492200506-10012007">Web服务将变得十分平常——它可能会在一些它所不适用的场合被使用</span><span class="492200506-10012007">。所以，批判也好，对抗也好，如此等等，只要有助于防止这种情况，那就是有益的。</span></p>
<p>我们可以（也将会）解决<span class="492200506-10012007">Web服务正在暴露出来的诸多问题。当然，SOAP可以比实际所需的更为复杂。整个可选的SOAP报头十分怪异——而如何组合使用这些报头还不清楚。而且，有些WS-*提案最终将根本不被采用，或者用得不多。</span></p>
<p>不错，许多<span class="492200506-10012007">Web服务工具对XML采取了一种略显局限的观点，而且倾向于将XML与面向对象技术捆得过紧。</span></p>
<p>但是我们可以改进。我们可以改进使用<span class="492200506-10012007">XML的方式，可以在SOA环境中深入应用动态语言（值得关注的是，前面提及的那个调查也提到Ajax正逐渐获得采纳），以及可以在适当的地方加入REST式交互，等等。</span></p>
<p>我们可以继续将服务与对象分开，并创建新的能够更好支持服务概念的<a title="blocked::http://www.eclipse.org/stp/" href="http://www.eclipse.org/stp/"><font title="blocked::http://www.eclipse.org/stp/" color="#575757">工具</font></a>。 </p>
<p><span style="color: #0000ff">我们做不了的，是在另一套规范上获得广泛的业界认同</span>。我可以容易地记起那个"还不确信<span class="492200506-10012007">SOAP会成功地获得充分采纳"的年代。</span></p>
<p>我们的世界就是这样。它或许并不很好，但它奏效，而且肯定比没有它更好。</p>
<p>而现在，它又像缺乏自信一样<span class="492200506-10012007">。</span></p>
<p>原文链接：<a href="http://blogs.iona.com/newcomer/archives/000431.html">http://blogs.iona.com/newcomer/archives/000431.html</a></p>
<p><span class="post-footers">原文发表于：2006年12月20日</span></p>
<p>&nbsp;</p>
</blockquote>
<img src ="http://www.blogjava.net/orangelizq/aggbug/149362.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/orangelizq/" target="_blank">桔子汁</a> 2007-09-28 21:58 <a href="http://www.blogjava.net/orangelizq/archive/2007/09/28/149362.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>架构（SOA）安全标准 过犹不及？</title><link>http://www.blogjava.net/orangelizq/archive/2007/09/12/144535.html</link><dc:creator>桔子汁</dc:creator><author>桔子汁</author><pubDate>Wed, 12 Sep 2007 08:50:00 GMT</pubDate><guid>http://www.blogjava.net/orangelizq/archive/2007/09/12/144535.html</guid><wfw:comment>http://www.blogjava.net/orangelizq/comments/144535.html</wfw:comment><comments>http://www.blogjava.net/orangelizq/archive/2007/09/12/144535.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/orangelizq/comments/commentRss/144535.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/orangelizq/services/trackbacks/144535.html</trackback:ping><description><![CDATA[2007-09-05 10:11:45　来源:<a href="http://www.enet.com.cn/" target="_blank">eNet硅谷动力</a><br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 在服务导向架构（SOA）领域，标准无处不在，Web服务(WS-*)更是会继续膨胀，以影响到所有可能的简单对象访问协议（SOAP）应用案例。尽管如此，专门针对安全问题而制定的标准却屈指可数，而那些无所不包的标准则环环相扣，彼此依赖。现在，SOA领域的&#8220;物质基础&#8221;已然尘埃落定，而&#8220;上层建筑&#8221;仍在建立之中。 <br />
<br />
　　&#183;WS-Security 1.1。 描述如何将XML加密（XML Encryption）和XML签名（XML Signature）应用于SOAP文档或信息。此标准得到了所有厂商的支持，同时也被用于其他所有与安全相关的WS-*标准中。其最新版本发布于2006年2月，很可能也是最后一个版本，因为未来的改进将被纳入其他标准。 <br />
<br />
　　&#183;WS-SecurityPolicy 1.2。 对哪些人被允许访问某个服务以及访问方式做出规定，并对认证方式的类型和/或所需要的加密等级做出限制。他是Web服务策略（WS-Policy）的子集，以更为通用的方式对服务的能力和限制进行描述。此标准由国际商业机器公司（IBM）和微软公司（Microsoft）共同开发，并于2007年7月正式确立，最终将会得到所有厂商的支持。 <br />
<br />
　　&#183;WS-SecureConversation 1.3。 是按照WS-Security标准，实施WS-SecurityPolicy中所描述的策略的方法。此标准于2007年3月通过审批；与此同时，IBM和太阳计算机系统公司（Sun）演示了此标准的实施过程。尽管现在鲜有客户使用此标准，Actional公司、毕益辉公司（BEA Systems）、思科公司（Cisco System）、CA公司、利基网络公司（Layer 7 Networks）、甲骨文公司（Oracle）、Reactivity公司、RSA安全公司（RSA Security）以及VeriSign公司等其他厂商也都表示支持此标准。 <br />
<br />
　　&#183;WS-Trust 1.3。 应用WS-Security标准传输密码、数字证书以及安全性断言标记语言（SAML）断言等安全标识。非SOAP Web服务与XML密钥管理规范 (XKMS)和SAML有部分相同之处。 <br />
<br />
　　&#183;WS-Federation 1.1。 根据WS-SecurityPolicy中描述的服务规则，应用WS-Trust中提到的被传输的安全标识，通过Web服务的认证。由于与SAML的许多功能相同，目前尚未得到广泛应用。相较SAML，他的主要优势在于，Windows支持这一标准，而且与WS-*之间结合紧密。
<img src ="http://www.blogjava.net/orangelizq/aggbug/144535.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/orangelizq/" target="_blank">桔子汁</a> 2007-09-12 16:50 <a href="http://www.blogjava.net/orangelizq/archive/2007/09/12/144535.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[转]WS-Policy的作用</title><link>http://www.blogjava.net/orangelizq/archive/2007/09/12/144534.html</link><dc:creator>桔子汁</dc:creator><author>桔子汁</author><pubDate>Wed, 12 Sep 2007 08:43:00 GMT</pubDate><guid>http://www.blogjava.net/orangelizq/archive/2007/09/12/144534.html</guid><wfw:comment>http://www.blogjava.net/orangelizq/comments/144534.html</wfw:comment><comments>http://www.blogjava.net/orangelizq/archive/2007/09/12/144534.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/orangelizq/comments/commentRss/144534.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/orangelizq/services/trackbacks/144534.html</trackback:ping><description><![CDATA[时间：2005-10-11&nbsp;&nbsp;&nbsp; 作者：Jong Lee<br />
<br />
<strong>WS-Policy的作用</strong><br />
<p>　&nbsp;&nbsp;&nbsp; Web服务策略框架规范(Web Services Policy Framework，WS-Policy)提供了一种灵活、可扩展的语法，用于表示基于XML Web services的系统中实体的能力、要求和一般特性。WS-Policy定义了一个框架和一个模型，将这些特性表示为策略。策略表示法既支持简单的声明式断言，也支持比较复杂的条件式断言。策略断言是要表示行为的个体要求、能力或其他特性。例如，可以创建一个策略断言，定义这样一个要求：必须使用受信任的X.509证书签名SOAP消息主体。WS-Policy只是一个框架，为特定的域定义一套特定的策略断言则是系统的任务。WebLogic Server 9.0为WS-Security和WS-RM(Reliable Messaging)定义了策略断言。有了策略断言之后，还需要将其与web服务关联。至于如何关联，请看我下一篇关于WS-PolicyAttachment的文章。 <br />
<br />
<br />
<strong>WS-PolicyAttachment如何与WS-Policy相配合？</strong></p>
<br />
　Web服务策略附件规范(<a href="http://ftpna2.bea.com/pub/downloads/WS-PolicyAttachment.pdf" target="_blank">WS-PolicyAttachment</a>)明确定义了以下几项内容：
<ul>
    <li>如何从WSDL定义中引用策略。
    <li>如何将策略与部署的Web服务端点关联起来。
    <li>如何将策略与UDDI实体关联起来。 </li>
</ul>
<p>　　策略主题(Policy Subject)是策略可以与之关联的一个实体（如：端点、消息、资源、交互）。策略范围(Policy Scope)是策略适用的策略主题的集合。策略附着(Policy Attachment)是一种将策略与一个或多个策略范围关联的机制。有效策略(Effective Policy)，针对某一给定的策略主题，是相关策略的组合。相关策略是属于包含某个策略主题的策略范围的策略。</p>
<p>　　对WSDL1.1，有以下几种计算有效策略的方法。wsdl:service中定义的策略称为服务策略主题(Service Policy Subject)。端点策略主题(Endpoint Policy Subject)是wsdl:port, wsdl:portType和wsdl:binding中定义的有效策略。操作策略主题(Operation Policy Subject)是在wsdl:portType/wsdl:operation和wsdl:binding/wsdl:operation中定义的有效策略。计算消息策略主题(Message Policy Subject)的WSDL1.1元素有：wsdl:message、wsdl:portType/wsdl:operation/wsdl:input、wsdl:portType/wsdl:operation/wsdl:output、wsdl:portType/wsdl:operation/wsdl:fault、wsdl:binding/wsdl:operation/wsdl:input、wsdl:binding/wsdl:operation/wsdl:output和wsdl:binding/wsdl:operation/wsdl:fault。</p>
<p>　　定义不同级的策略主题的目的是，允许web服务根据具体的需要使用不同的策略。例如，希望在web服务中要求用户在调用操作之前要先登录，但是响应消息不要求进行身份验证。这种情况下，只需为所有入站消息创建一个输入消息策略主题。如果想对消息进行数字签名或加密，可能需要添加操作策略主题，以便所有入站和出站消息都受限于该操作要求。如果所有的操作的策略要求都相同，应该定义端点策略主题，而不是将同一个操作策略主题复制到端点中的所有操作。</p>
<img src ="http://www.blogjava.net/orangelizq/aggbug/144534.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/orangelizq/" target="_blank">桔子汁</a> 2007-09-12 16:43 <a href="http://www.blogjava.net/orangelizq/archive/2007/09/12/144534.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[转]新的安全标准正在建立</title><link>http://www.blogjava.net/orangelizq/archive/2007/09/12/144533.html</link><dc:creator>桔子汁</dc:creator><author>桔子汁</author><pubDate>Wed, 12 Sep 2007 08:39:00 GMT</pubDate><guid>http://www.blogjava.net/orangelizq/archive/2007/09/12/144533.html</guid><wfw:comment>http://www.blogjava.net/orangelizq/comments/144533.html</wfw:comment><comments>http://www.blogjava.net/orangelizq/archive/2007/09/12/144533.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/orangelizq/comments/commentRss/144533.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/orangelizq/services/trackbacks/144533.html</trackback:ping><description><![CDATA[新的安全标准正在建立<br />
<br />
作者: Colleen Frye, 　出处:TechTarget&nbsp; 2005-08-09<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IBM/Microsoft Web Services (WS-*) Security Roadmap中又有三个新的规范将提交给OASIS，并且还将提交一项涉及到多联盟标识协议的成功的互操作的demo。该消息的宣布，标志着业界在Web服务中的安全方面的合作在最近往前迈出了好几步。<br />
<br />
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;在9月，IBM/Microsoft Web Services (WS-*) Security Roadmap中又有三个新的规范将提交给OASIS，并且还将提交一项涉及到多联盟标识协议的成功的互操作的demo。这是上个月在Burton Group's Catalyst Conference上发生的。随着该消息的宣布，标志着业界在Web服务中的安全方面的合作在最近往前迈出了好几步。</p>
<p>　　WS-Trust, WS-SecurityPolicy and WS-SecureConversation建立在2004年被OASIS批准的WS- Security的基础之上的。WS-Trust和WS-SecureConversation是有类似Actional Corp., BEA Systems Inc., Computer Associates International Inc., Oracle Corp., RSA Security Inc., VeriSign Inc和其他的提供商共同著作的。WS-SecurityPolicy是为RSA Security和VeriSign共同著作的。</p>
<p>　　&#8220;WS-Security定义了提供安全信号的基本机制的同时，WS-Trust 定义了WS-Security的扩展，而这些扩展将提供建立的方法和个个组织之间的商业信赖的关系。&#8221; Ari Bixhorn说，他是微软的Web服务战略部门的主管:&#8220;它通过提供一个在不同的安全标识类型(包括Kerberos, X.509和SAML [Security Assertion Markup Language])之间移动的机制来完成这个。通常的它是通过使用安全标识服务[STS]来完成这个的。安全标识服务是一个可以处理可以被一个服务消息的发送者和接受者都信任的安全标识的Web服务。&#8221;</p>
<p>　　在一个Web服务环境中，&#8220;新的的供应链被建立起来在不同系统之间工作;这个生态系统可以通讯和安全的把使用开放协议结合起来。&#8221; IBM Tivoli的Security, Policy 和 Compliance程序主管， Venkat Raghavan说:&#8220;挑战是在于我们如何来得到一个一般的想法来标识和确保在不同的平台，技术，中间件——跨越整个价值链的安全。WS-Trust给你一种使得异质系统均匀的一种方法。&#8221;</p>
<p>　　各种组织已经在不同的地方有不同的技术来验证用户，Raghavan说:&#8220;目标不是替代现有的安全技术，而是去平衡调节现有的各种安全技术，以运行商务过程的集成。&#8221;</p>
<p>　　在Utah的 Midvale 的Burton Group的高级分析员Gerry Gebel说WS-Trust是一个有重大意义的特别的混合环境。&#8220;你可以给一种标示然后要求以另外一种标识返回。&#8221;</p>
<p>　　第二个说明，WS-SecurityPolicy，定义了一般的应用于Web服务安全的安全策略的声明。例如，据IBM Software Group 的著名的工程师和安全架构师Anthony Nadalin 说，WS-SecurityPolicy将被用来实现Web服务互操作性基本规范(WS-I BSP)。&#8220;其他的例子包括了能够描述一个Web服务的安全能力和不安全性。&#8221;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;同时，WS-SecureConversation&#8220;定义了一些扩展，这些扩展允许安全环境的建立共享和引出session关键字。&#8221; Nadalin说:&#8220;这样就允许环境的建立和可能的更有效的关键字或者新的关键字材料的交换，从而提高并发的交换的整体性能和安全。&#8221;</p>
<p>　　WS-Trust ，WS-Federation和WS-*路线图中其他的部分，是该会议中的操作性示范的一部分。该demo设定了三个围绕自动供应链的场景:多协议hub，多协议translator hubs和使用WS-Trust STS的协议转换。标示符是安全管理的，并由SAML 1.0, SAML 2.0, Liberty Alliance WS-Federation 和 WS-Trust协议交换。</p>
<p>　　&#8220;以前的demo关注于单独的协议和一个协议的单独的一个版本。&#8221;Gebel说:&#8220;这是联盟协议的成熟的标志。&#8221;</p>
<p>　　这个demo显示了&#8220;如果你作为一个汽车经销商，同时你买进了一个Hewlett-Packard的产品和另外一个厂商的不同的产品，而这两个产品可以合得来。&#8221; Cambridge. Mass. 的DataPower Technology Inc.的产品市场经理 Rebecca Xiong说。 DataPower Technology是14个参加到这个demo的开发的厂商之一。&#8220;越多的厂商支持协议，消费者就能更简单的构件他们的Web 站点以及和合作伙伴协同工作。&#8221;</p>
<p>　　Nadalin说，一旦OASIS 有了WS-Trust, WS-SecurityPolicy, 和WS-SecureConversation规范，一个技术委员会会被组建，同时标准化的过程将会启动。在计划图剩下的说明——WS-Federation, WS-Privacy 和 WS-Authorization&#8220;IBM 已经提交了所有WS Security 计划图中的规范给标准化组织。我不能说什么时候和什么地点这些规范将会被发布。&#8221; Nadalin说。在WS-Federation已经融入几个互操作的demo的同时，WS-Privacy和WS-Authorization&#8220;在这个时候仍然没有发表。&#8221;</p>
<p>　　Microsoft'的Bixhorn指出这个过程如此之长。&#8220;关于WS-Trust, WS-SecurityPolicy 和 WS-SecureConversation的宣布也是业界在基于SOAP的Web服务的互操作性的一个漫长历程的另一个暗示。&#8221;</p>
<p>&nbsp;</p>
<img src ="http://www.blogjava.net/orangelizq/aggbug/144533.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/orangelizq/" target="_blank">桔子汁</a> 2007-09-12 16:39 <a href="http://www.blogjava.net/orangelizq/archive/2007/09/12/144533.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[转] 浅谈SOAP</title><link>http://www.blogjava.net/orangelizq/archive/2007/07/31/133624.html</link><dc:creator>桔子汁</dc:creator><author>桔子汁</author><pubDate>Tue, 31 Jul 2007 09:18:00 GMT</pubDate><guid>http://www.blogjava.net/orangelizq/archive/2007/07/31/133624.html</guid><wfw:comment>http://www.blogjava.net/orangelizq/comments/133624.html</wfw:comment><comments>http://www.blogjava.net/orangelizq/archive/2007/07/31/133624.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/orangelizq/comments/commentRss/133624.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/orangelizq/services/trackbacks/133624.html</trackback:ping><description><![CDATA[<p align=left><font face=Verdana>&nbsp;&nbsp;&nbsp; 随着计算机技术的不断发展，现代企业面临的环境越来越复杂，其信息系统大多数为多平台、多系统的复杂系统。这就要求今天的企业解决方案具有广泛的兼容能力，可以支持不同的系统平台、数据格式和多种连接方式，要求在</font></p>
<p align=left><font face=Verdana>&nbsp;&nbsp;&nbsp;&nbsp;Internet 环境下，实现系统是松散耦合的、跨平台的，与语言无关的，与特定接口无关的，而且要提供对Web 应用程序的可靠访问。 </font></p>
<p align=left><font face=Verdana>　 随着异种计算环境的不断增加，各种系统间的互操作性就愈显得必要，要求系统能够无缝地进行通信和共享数据，从而在Internet环境下，消除巨大的信息孤岛，实现信息共享、进行数据交换，达到信息的一致性。Web services 希望实现不同的系统之间能够用&#8220;软件-软件对话&#8221;的方式相互调用，打破了软件应用、网站和各种设备之间的格格不入的状态，实现&#8220;基于WEB无缝集成&#8221;的目标。 </font></p>
<font face=Verdana>
<div align=left><img style="CURSOR: pointer" onclick=javascript:window.open(this.src); src="mhtml:file://C:\Documents%20and%20Settings\Lizq\桌面\浅谈SOAP.mht!http://www.alixixi.com/UploadPic/2007-5/200757141538981.gif" onload="return imgzoom(this,550)"></div>
<div align=left><font color=#000099><strong>什么是SOAP？</strong></font></div>
<p align=left><br>　　SOAP（Simple Object Access Protocol ）简单对象访问协议是在分散或分布式的环境中交换信息的简单的协议，是一个基于XML的协议，它包括四个部分：SOAP封装(envelop)，封装定义了一个描述消息中的内容是什么，是谁发送的，谁应当接受并处理它以及如何处理它们的框架；SOAP编码规则（encoding rules），用于表示应用程序需要使用的数据类型的实例; SOAP RPC表示(RPC representation)，表示远程过程调用和应答的协定;SOAP绑定（binding），使用底层协议交换信息。 <br><br>　　虽然这四个部分都作为SOAP的一部分，作为一个整体定义的，但他们在功能上是相交的、彼此独立的。特别的，信封和编码规则是被定义在不同的XML命名空间(namespace)中，这样使得定义更加简单。</p>
<p align=left>　SOAP的两个主要设计目标是简单性和可扩展性。这就意味着有一些传统消息系统或分布式对象系统中的某些性质将不是SOAP规范的一部分。比如：分布式垃圾收集 (Distributed garbage collection)、成批传送消息(Boxcarring or batching of messages)、对象引用 (Objects-by-reference（which requires distributed garbage collection）)、对象激活 (Activation（which requires objects-by-reference）)。 <br><br><strong>SOAP消息举例：</strong> <br><br>　　1．第一个例子阐明了SOAP中一个简单的通信信息，包括了两个不是SOAP定义而是应用程序定义的元素：头块元素alertcontrol 和体块元素alert。头块元素包括两个参数：priority 和expires。体块元素包括的是实际传送的信息。 <br><br>（EXAMPLE 1） <br><br></p>
<p align=left></p>
<div align=left><img style="CURSOR: pointer" onclick=javascript:window.open(this.src); src="mhtml:file://C:\Documents%20and%20Settings\Lizq\桌面\浅谈SOAP.mht!http://www.alixixi.com/UploadPic/2007-5/200757141538118.gif" onload="return imgzoom(this,550)"></div>
<p align=left><br>　　2．SOAP通信与底层的不同协议和不同的交换格式有关，下面的例子SOAP使用HTTP作为底层通信协议，从而可以很好的使用request/response机制来传送信息。 SOAP/HTTP请求包括一个GetLastTradePrice的块元素，该请求携带一个字符串参数和ticker符号，在SOAP应答中返回一个浮点数。XML名域用来区分SOAP标志符和应用程序特定的标志符。 <br><br>（EXAMPLE 2） <br><br></p>
<div align=left><img style="CURSOR: pointer" onclick=javascript:window.open(this.src); src="mhtml:file://C:\Documents%20and%20Settings\Lizq\桌面\浅谈SOAP.mht!http://www.alixixi.com/UploadPic/2007-5/200757141539160.gif" onload="return imgzoom(this,550)"></div>
<div align=left>　3. 例3 展示的是StockQuote SOAP服务信息，是对例2的请求作出的一条应答消息。 <br><br>（EXAMPLE 3） <br><br></div>
<div align=left><img style="CURSOR: pointer" onclick=javascript:window.open(this.src); src="mhtml:file://C:\Documents%20and%20Settings\Lizq\桌面\浅谈SOAP.mht!http://www.alixixi.com/UploadPic/2007-5/200757141540919.gif" onload="return imgzoom(this,550)"></div>
<div align=left><br>&nbsp;</div>
<div align=left><font color=#000099><strong>SOAP与CORBA，COM/DCOM的区别？</strong></font></div>
<div align=left>　　在SOAP刚刚提出来的时候，许多人就提出了疑问：SOAP与CORBA和DCOM的区别何在？ <br><br>　　&#183; CORBA（Common Object Request Broker Architecture）公共对象请求代理体系结构是由OMG组织制订的一种标准的面向对象应用程序体系规范。由对象请求代理ORB、对象服务、公共设施、域接口和应用接口这几个部分组成。其核心部分是对象请求代理ORB（Object Request Broker）。ORB提供了一种机制，通过这种机制，对象可以透明的发出请求和接收响应。分布的、可以互操作的对象可以利用ORB构造可以互操作的应用。ORB可看作是在对象之间建立客户/服务关系的一种中间件。基于ORB，客户可以透明的调用服务对象提供的方法，该服务对象可以与客户运行在同一台机器上，也可以运行在其他机器上通过网络与客户进行交互。ORB截取客户发送的请求，并负责在该软件总线上找到实现该请求的服务对象，然后完成参数、方法调用，并返回最终结果。CORBA 1.1 由对象管理组织在 1991 年发布。定义了接口定义语言（IDL）和应用编程接口（API），从而通过实现对象请求代理（ORB）来激活客户/服务器的交互。CORBA 2.0 于 1994 年的 12 月发布定义了如何跨越不同的 ORB 提供者而进行通讯。 </div>
<div align=left>　&#183; COM/DCOM(Component Object Model / Distributed Component Object Model )是微软公司提出的分布式组件对象模型标准，支持在局域网、广域网甚至Internet上不同计算机的对象之间的通讯。DCOM基于COM的应用程序、组件、工具等的基础之上，处理网络协议的低层次的细节问题，而不必关心太多的网络协议细节，从而使用户能够集中精力解决用户所要求的问题。DCOM位于应用程序的组件之间，将组件以不可见的方式胶合在一起组成具有完整功能的应用程序。 <br><br>　　SOAP 与CORBA，DCOM/COM的比较。 <br><br>　　首先指出的是SOAP不会取代CORBA，COM/DCOM，三者的概念有所区别。COM/DCOM是个组件模型标准，CORBA是分布式应用的服务标准。CORBA和DCOM为分布式应用程序建立服务，服务对象来执行客户端调用的服务。而SOAP是基于XML和HTTP的分布式对象的通信协议，是COM/DCOM和CORBA对象进行通讯的协议。实际上，利用SOAP的互操作性和CORBA强大的执行能力，两者可以很好的结合在一起。 OMG （Object Management Group responsible for the CORBA specification）正在关注这方面的发展。 <br><br>　　CORBA应用程序和DCOM应用程序不能实现互操作，两者不能在一起协作。因为在ORPC(Object RPC)协议中，用ObjRef代表了一个正在运行对象的引用；在CORBA/IIOP(Internet Inter-Orb Protocol)中，用交换可互操作对象引用IOR（Interoperable Object Reference）代表一个服务器的对象引用。不幸的是，IOR 与 ObjRef不能够关联起来。然而，使用SOAP可以实现在垂直应用层面上CORBA ，DCOM技术的水平整合，能够更好的集成CORBA，DCOM为一个整体。 <br><br>　　SOAP并没有定义信息的语义，服务质量，基于INTERNET的事务处理。而是采用 XML 进行消息编码，正确的处理需要服务器和客户端本身来执行，理解和执行彼此使用的信息格式（ONE-TO-ONE，REQUEST/REPLY，BROADCAST，ETC），应用程序本身在语义解析中扮演着十分重要的角色。而CORBA，DCOM表示了传送信息的语义，对参数和返回值使用二进制编码。可对诸如参数名称或类型的任何元信息都不编码，但使中介很难处理消息。又因为每个系统使用不同的二进制编码，系统间的互操作的很难实现。 <br><br>　　尽管CORBA可以在不同的平台上执行，DCOM可以在微软的各种平台上运行，但是基于CORBA和DCOM的解决方案必须依赖于单一的应用程序。比如说，假如运行的是DCOM服务器程序，所有的分布式的客户端不得不运行于微软的操作平台上。CORBA 虽然可以运行于不同的平台，但CORBA的互操作性并没有在更高层的服务上进行扩展，如安全性和事务处理，在这种情况下，许多提供的服务没有得到很好的优化。DCOM和CORBA适合于服务器--服务器间的通讯，但是对于客户端--服务器的通讯十分脆弱，尤其当客户程序分布在INTERNET上更是如此。</div>
<div align=left>　SOAP不象DCOM一样试图定义分布式系统的所有元素，SOAP没有提供分布式类库，类型安全检查，版本控制等等，SOAP比它处于一个更低的层次，有点类似于IIOP在CORBA的作用，DCOM却提供了一些额外的协议功能，是IIOP 或者SOAP所不具备的。然而，许多. DCOM的额外功能只有在服务器――服务器间通信时才会用到，对于客户端――服务器之间的通信则是多余的。 </div>
<div align=left>&nbsp;&nbsp;<font color=#000099><strong>SOAP=RPC+HTTP+XML</strong></font></div>
<div align=left>　　SOAP简单的理解，就是这样的一个开放协议SOAP=RPC+HTTP+XML：采用HTTP作为底层通讯协议；RPC作为一致性的调用途径，ＸＭＬ作为数据传送的格式，允许服务提供者和服务客户经过防火墙在INTERNET进行通讯交互。RPC的描叙可能不大准确，因为SOAP一开始构思就是要实现平台与环境的无关性和独立性，每一个通过网络的远程调用都可以通过SOAP封装起来，包括DCE（Distributed Computing Environment ）　RPC CALLS，COM/DCOM CALLS, CORBA CALLS, JAVA CALLS，etc。 <br><br>　　SOAP 使用 HTTP 传送 XML，尽管HTTP 不是有效率的通讯协议，而且 XML 还需要额外的文件解析（parse），两者使得交易的速度大大低于其它方案。但是XML 是一个开放、健全、有语义的讯息机制，而 HTTP 是一个广泛又能避免许多关于防火墙的问题，从而使SOAP得到了广泛的应用。但是如果效率对你来说很重要，那么你应该多考虑其它的方式，而不要用 SOAP。 <br><br>　　为了更好的理解SOAP,HTTP,XML如何工作的，不妨先考虑一下COM/DCOM的运行机制，DCOM处理网络协议的低层次的细节问题，如PROXY/STUB间的通讯，生命周期的管理，对象的标识。在客户端与服务器端进行交互的时候，DCOM采用NDR（Network Data Representation）作为数据表示，它是低层次的与平台无关的数据表现形式。 <br><br>　　DCOM是有效的，灵活的，但也是很复杂的。而SOAP的一个主要优点就在于它的简单性，SOAP使用HTTP作为网络通讯协议，接受和传送数据参数时采用XML作为数据格式，从而代替了DCOM中的NDR格式，SOAP和 DCOM执行过程是类似的，如下图，但是用XML取代 NDR作为编码表现形式，提供了更高层次上的抽象，与平台和环境无关。</div>
<div align=left><img style="CURSOR: pointer" onclick=javascript:window.open(this.src); src="mhtml:file://C:\Documents%20and%20Settings\Lizq\桌面\浅谈SOAP.mht!http://www.alixixi.com/UploadPic/2007-5/200757141540808.gif" onload="return imgzoom(this,550)"></div>
<div align=left>　　客户端发送请求时，不管客户端是什么平台的，首先把请求转换成XML格式，SOAP网关可自动执行这个转换。为了保证传送时参数，方法名，返回值的唯一性，SOAP协议使用了一个私有标记表，从而服务端的SOAP网关可以正确的解析，这有点类似于COM/DCOM 中的桩（STUB）。转化成XML格式后，SOAP终端名（远程调用方法名）及其他的一些协议标识信息被封装成HTTP请求，然后发送给服务器。如果应用程序要求，服务器返回一个HTTP应答信息给客户端。与通常对HTML页面的HTTP GET请求不同的是，此请求设置了一些HTTP HEADER，标识着一个SOAP服务激发，和HTTP包一起传送。例如：对于一个询问股票价格的应用程序，服务器端具有组件提供某股票当前的价格，组件是COM或CORBA在服务器上建立的。客户端发送一个SOAP请求给服务器询问股票价格。服务器依赖于服务器上的SOAP网关，使用内嵌的HTML对象调用合适的方法，然后把得到的价格通过SOAP应答传给客户端。 </div>
<div align=left><font color=#000099><strong>SOAP 的前景</strong></font></div>
<div align=left>　　　W3C于2000年5月8日发表了Simple Object Access Protocol (SOAP) 1.1版本，具体规范发布在下列站点上（http://www.w3.org/TR/SOAP/）。又于2001年7月9号推出了SOAP Version 1.2版本的建议草案，具体规范发布在下列站点上（http://www.w3.org/TR/soap12/）。编写SOAP Version 1.1版本的工作小组的成员包括：DevelopMentor, International Business Machines Corporation, Lotus Development Corporation, Microsoft, UserLand Software。 <br><br>　　SOAP的推出是令人兴奋的。可以相信，随着网络服务的的不断发展，它将极大的改变我们的思考模式和开发模式。现在，已有许多大公司着手支持SOAP的开发，2000年 IBM公司 和 Microsoft公司 都发行了实现 SOAP 的第一批版本。 IBM 公司启动了Apache SOAP 项目计划，微软最近又推出了SOAPtoolkit2.0的正式版，主要包括如下的一些特征：SOAP的高层接口和低层接口，消息对象接口，完全支持WSDL 1.1标准，支持用户自定义类型映射，并且提供了丰富和完整的开发文档以及应用实例。而且，两家公司正在互操作性方面努力研究。可以乐观的估计，不用多久，SOAP 互操作性的时代就将来临。 </div>
<div align=left><strong>与SOAP相关的一些标准：</strong> <br><br>　　HTTP 1.0 or greater（http://www.w3.org/Protocols/HTTP/ietf-http-ext） <br><br>　　the core W3C XML recommendation（http://www.w3.org/TR/1998/REC-xml-19980210） <br><br>　　W3C XML namespace recommendation（http://www.w3.org/TR/REC-xml-names）. <br><br>　　XML Schema（http://www.w3.org/TR/xmlschema-1/） <br><br>　　支持SOAP的一些公司产品： <br><br>　　Organization Product <br><br>　　Rogue Wave Nouveau ORB <br><br>　　Iona Orbix 2000 <br><br>　　ObjectSpace Voyager <br><br>　　Digital Creations Zope, the Python Application Server <br><br>　　UserLand Frontier groupware product <br><br>　　Microsoft Windows DNA 2000 <br><br>　　SOAP是一个协议，与编程语言无关。实际上，许多语言已经开始支持SOAP，如：java,c/c++,vb,c#,perl,php.下面列出了在Java/C++/Perl/ADA/Python环境下SOAP的执行工具： <br><br>　　Java: Apache SOAP , DevelopMentor's implementation, IdooXoap from ZVON <br><br>　　Python: PythonWare (client side only) <br>　C++: IdooXoap from ZVON <br><br>　　Perl: SOAP::Lite <br><br>　　ADA: An ADA implementation <br>　<br>　　Microsoft Visual Studio: The Microsoft SOAP toolkit. <br><br></font><font face="宋体, MS Song">参考资料 <br><br>　　http://www.cn.ibm.com/developerWorks/xml/index.shtml（IBM公司） <br><br>　　http://msdn.microsoft.com/（微软公司） <br><br>　　http://www.w3.org/TR/soap12/（W3C联盟） <br><br>　　http://www.soaprpc.com/ <br><br>　　http://www.webservices.org <br><br>　　http://www.soapwebservices.com <br><br>　　http://www.xml.org.cn（中国xml联盟） <br></font><font id=zoom><br><font face="宋体, MS Song">　　鉴于SOAP是当前的新技术，国内资料贫乏，主要参考了国外的一些资料及IBM和MICROSOFT的相关资料，文章偏颇之处，请多指教！ </font><br></div>
</font>
<img src ="http://www.blogjava.net/orangelizq/aggbug/133624.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/orangelizq/" target="_blank">桔子汁</a> 2007-07-31 17:18 <a href="http://www.blogjava.net/orangelizq/archive/2007/07/31/133624.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[转]Apache CXF2.0发布并通过JAX-WS2.0 TCK</title><link>http://www.blogjava.net/orangelizq/archive/2007/07/31/133623.html</link><dc:creator>桔子汁</dc:creator><author>桔子汁</author><pubDate>Tue, 31 Jul 2007 09:15:00 GMT</pubDate><guid>http://www.blogjava.net/orangelizq/archive/2007/07/31/133623.html</guid><wfw:comment>http://www.blogjava.net/orangelizq/comments/133623.html</wfw:comment><comments>http://www.blogjava.net/orangelizq/archive/2007/07/31/133623.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/orangelizq/comments/commentRss/133623.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/orangelizq/services/trackbacks/133623.html</trackback:ping><description><![CDATA[2007-06-30&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Apache最近宣布了Apache CXF 2.0的发布。Apache CXF提供了一套创建SOA服务的基础设施框架，用户由此可以按照自己喜欢的编程模式，利用Apache CXF提供的简单易用工具(包括Maven插件)，创建适合SOA环境的任何WEB服务，包括SOAP/HTTP服务及REST/HTTP服务。 Apache CXF可扩展的插拔式架构不但支持XML消息格式和HTTP通信协议，而且还支持基于其他通信协议如IIOP和非XML消息格式如CORBA CDL或JSON。
<p>　　Apache CXF项目是由Objectweb Celtix和Codehaus XFire在一年前合并成立的。Objectweb Celtix是由IONA公司赞助、于2005年成立的开源Java ESB产品，XFire则是业界知名的SOAP堆栈。合并后的Apache CXF融合该两个开源项目的功能精华，提供了实现SOA所需要的核心ESB功能框架，包括SOA服务创建，服务路由，及一系列企业级QoS功能。此次发布代表了Apache CXF开发人员及社区用户一年的努力结果，并标志 Apache CXF软件的进一步成熟，成为实现SOA的优秀技术解决方案之一。</p>
<p>　　Apache CXF实现了JCP及Web服务的主要技术标准，大大方便了用户使用不同编程模式进行SOA服务开发，并为企业遗留系统的集成提供了可扩展性。Apache CXF支持的主要技术标准及功能包括：</p>
<p>　　<strong>多种技术标准：</strong>Apache CXF完全实现了多个JSR标准，包括JAX-WS 2.0(JSR-224) 、Java Web服务元数据(JSR-181)、和SAAJ (JSR-67)。Apache CXF 2.0发布还通过了JAX-WS 2.0 TCK，成为开源社区继JAX-WS RI之后的第一个通过JAX-WS TCK的SOAP堆栈。Apache CXF还实现了多个Web服务标准，为用户实现企业级的Web服务提供了广泛的支持，这些 Web服务标准包括SOAP 1.1、SOAP1.2、MTOM/XOP 、WSDL 1.0、WS-Addressing、WS-ReliableMessaging 、WS-Policy,WS-Security及WS-I Basic Profile。</p>
<p>　　<strong>多种编程模式：</strong>为方便用户按照自己喜欢的方式创建web服务，Apache CXF提供了多种web服务开发模式。除了完全支持JAX-WS 各种编程模式如client/server、同步、异步 、单程及动态调用接口，Apache CXF还支持JavaScript及ECMAScript 4 XML(E4X) 编程。Spring用户可以很容易地按照 Spring编程方式快速创建并部署web服务。传统的Java开发人员则可以通过注释(Annotation)方便地进行web服务开发，喜欢POJOs 的Java开发人员更可直接配置并部署基于POJOs的web服务。更值得一提的是，通过Apache Yoko，用户不需要任何CORBA编程知识就可以轻松地把现有CORBA 应用转化为web服务，或开发客户端与现有CORBA应用直接交互。</p>
<p>　　<strong>多种通信协议及消息格式：</strong>Apache CXF支持多种通信传输协议，包括HTTP/HTTPS、JMS、 Servlet及同一JVM内通信，并提供了SOAP或纯XML通信消息格式(payload) 支持。同时，Apache CXF具有创新意义的REST/HTTP支持也大大方便了用户创建真正符合REST风格的web服务。对于那些需要重用IT遗留系统的用户来说，Apache CXF可扩展的插拔式架构允许定制开发并混合使用任何类型的通信协议及通信消息格式。</p>
<p>　　<strong>支持多种容器部署：</strong>基于Apache CXF的web服务可以单独运行，也可部署在多种容器里，包括轻量级容器如Tomcat及Spring ，JEE容器如Geronimo, JBOSS, WebLogic等。同时，Apache CXF web服务还可以服务引擎方式部署于JBI容器如ServiceMix或OpenESB 。SCA容器如Apache Tuscany的支持也在计划之中。</p>
<p>　　目前，与Apache CXF类似的开源项目有Apache Axis2，JBOSS ESB和Sun的Metro项目。据Apache CXF社区宣称，Apache CXF以其性能和插拔式架构的优势正与其他开源项目区别开来，引起许多SOA编程高级用户的注意。</p>
<img src ="http://www.blogjava.net/orangelizq/aggbug/133623.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/orangelizq/" target="_blank">桔子汁</a> 2007-07-31 17:15 <a href="http://www.blogjava.net/orangelizq/archive/2007/07/31/133623.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[转] SOA 2006年终回顾以及2007展望</title><link>http://www.blogjava.net/orangelizq/archive/2007/07/27/132789.html</link><dc:creator>桔子汁</dc:creator><author>桔子汁</author><pubDate>Fri, 27 Jul 2007 06:50:00 GMT</pubDate><guid>http://www.blogjava.net/orangelizq/archive/2007/07/27/132789.html</guid><wfw:comment>http://www.blogjava.net/orangelizq/comments/132789.html</wfw:comment><comments>http://www.blogjava.net/orangelizq/archive/2007/07/27/132789.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/orangelizq/comments/commentRss/132789.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/orangelizq/services/trackbacks/132789.html</trackback:ping><description><![CDATA[－、国内发展现状和应用需求<br>&nbsp;&nbsp;&nbsp; SOA几乎已经成为企业应用架构的主流，从2006年6月22日计算机世界&#8220;中间件应用年会&#8221;上可以看出，大部分主题演讲都涉及到SOA的应用和部署问题，IBM当前不仅以服务商的角色介入SOA，而且在此次大会上还带来了众多的SOA的成功实施案例；BEA公司也定位于SOA平台提供商，并且推出了一系列产品和方案；国内软件企业，像中创、东方通科技以及金蝶、用友、科诺等公司也在不同程度地切入SOA工具或解决方案的开发。种种迹象表明，SOA已经超越概念走向应用，并逐渐形成一股不可阻挡的潮流。<br><br><br>二、Web Services开源热火朝天<br><br>1.Web Services开源项目<br>&nbsp;&nbsp;&nbsp; 作为SOA一种主要实行方式的Web Services，其开源项目正如火如荼。<br><br>&nbsp;&nbsp;&nbsp; Java6 发布，支持XML&amp;WebService, JDK就直接支持Web Services了。这样Sun强势参与Web Services的竞争。这种现象很有趣，各大厂商在各自强项之间互相渗透，Sun被Apache Harmony项目所逼，被一些厂商要求两年后，将JDK开源，但同时也给IBM、BEA、Oracle等厂商反戈一击，在刚发布的JDK 6中捆绑Web Services。<br><br>&nbsp;&nbsp;&nbsp; Axis2和XFire是最火的两个Web Services开源项目，但其他的项目也做得不错。<br><br>XFire<br>Celtix<br>Mule<br>Apache Axis2<br>Apache CXF<br>&nbsp;&nbsp;&nbsp; XFire和Celtix合并，在Apache下形成的一个新的孵化项目。<br>Apache Ode<br>&nbsp;&nbsp;&nbsp; 是一个WS-BPEL实现<br>Apache Rampart<br>&nbsp;&nbsp;&nbsp; 是一个WS-Security实现<br>Apache Sandesha2<br>&nbsp;&nbsp;&nbsp; 是一个WS-ReliableMessaging实现<br>Apache Tuscany<br>&nbsp;&nbsp;&nbsp; 是一个SCA实现。<br>Apache ServiceMix<br>&nbsp;&nbsp;&nbsp; 是一个JBI实现。<br><br>Eclipse的STP（SOA Tooling Project）子项目<br>此Eclipse项目旨在提供一个其他开发人员可以使用的SOA开发工具框架，以便使他们不必自己开发这些工具。<br><br>2.Web Services开源项目特点：<br>&nbsp;&nbsp;&nbsp; 1)各项目侧重点有些不一样，还互相引用，交流甚多，人员合作也较多。不像Sun JDK开源和Apache Harmony，Apahce Geronomy和JBOSS等几乎重叠，正面冲突。<br><br>&nbsp;&nbsp;&nbsp; 2)这些项目都支持Spring的Bean配置或扩展Spring的接口，和Spring集成。可见Spring火爆程度。不同开源社区不断融合，互相吸引人气。<br>&nbsp;&nbsp;&nbsp; 3)使用工具的变化<br>&nbsp;&nbsp;&nbsp; 版本管理工具由cvs变为subversion<br>&nbsp;&nbsp;&nbsp; build工具由ant变为maven<br>&nbsp;&nbsp;&nbsp; 4)众多开源社区中Apache的人气最旺<br>&nbsp;&nbsp;&nbsp; 有意思的是，很多开源项目在别的小社区发展到2.0, 3.0版本后还不遗余力地迁移到Apache, 如ServiceMix从Codehaus搬到Apache，Codehaus的XFire和objectweb的Celtix合并后，乔迁到Apache。它们甚至甘愿接受Apache社区的规定：需要一段时间的修炼才能从孵化器中毕业。<br><br>3.微软Indigo<br>&nbsp;&nbsp;&nbsp; 说了这么多JAVA阵营的Web Services项目，还得提一下巨人微软的策略。<br>&nbsp;&nbsp;&nbsp; Indigo是微软用于构建面向服务应用程序的代号，后被正式命名为Windows Communication Foundation。Indigo允许目前创建面向对象应用程序的开发人员采用 .NET Framework以相似的方式来创建面向服务的应用程序。同时为了让这些应用程序能够与运行在 Windows 和其他平台上的软件有效地进行交互，Indigo 还实现了SOAP和其他Web服务技术，这样开发人员就可以创建可靠、安全且能够与运行在任何系统上的软件实现互操作的事务型服务。<br><br>为了实现基本通信以外的功能，Indigo 采用了一些更新的WS-* 规范。这些文档定义了用于添加可靠消息传输、安全性、事务以及更多基于 SOAP 的 Web 服务的多供应商方式。所有这些规范最初均是由 Microsoft、IBM 及其他供应商共同制定的。随着它们日渐稳定，所有权通常会转移到一些标准机构，如结构化信息标准促进组织 (OASIS)。Indigo 第一版中支持的 Web 服务规范包括 WS-Addressing、WS-Policy、WS-MetadataExchange、WS-ReliableMessaging、WS-Security、WS-Trust、WS-SecureConversation、WS-Coordination、WS- AtomicTransaction 和 SOAP 消息传输优化机制 (MTOM)。<br><br>&nbsp;&nbsp;&nbsp; Indigo已经包含在Vista之中。<br><br>&nbsp;&nbsp;&nbsp; 目前Web Services的实现分为两大阵营，一是微软，一是Java厂商。这两大阵营实现Web Services规范的产品都在互相进行互操作性测试。<br><br><br>三、这一年各开源项目广泛实现的web services规范<br>&nbsp;&nbsp;&nbsp; 括弧里的开源项目支持前面的规范及其新版本。<br><br>SOAP 1.2（Axis2 1.1）<br>WSDL 2.0（XFire 1.2.2）<br>JAX-WS 2.0（Celtix 1.0）<br>WS-Policy（Axis2 1.1）<br>MTOM（Axis2 1.1）<br>XOP（Axis2 1.1）<br>WS-RM（Celtix 1.0、Apache Sandesha2、Axis2 1.1）<br>WS-Addressing（Axis2 1.1、Celtix 1.0）<br>WS-Security（Apache Rampart、Axis2 1.1）<br>SAAJ 1.1（Axis2 1.1、Celtix 1.0）<br>JBI（ServiceMix 3.0.1，Celtix 1.0仅集成，XFire 1.2.2仅集成，Mule）<br>SCA（Tuscany）<br>WS-BPEL（Apache Ode、ServiceMix 3.0.1）<br><br><br>四、争论与融合<br>1. SOAP和REST正走向融合<br>&nbsp;&nbsp;&nbsp; 基于SOAP和WSDL的Web Services规范多而复杂，虽然它是标准的，但是用户头疼，学习曲线陡而长，应用构建时间长。简单就是美，易用性是金。在java企业应用开发领域， EJB的没落，Spring框架的兴起和流行印证了这一规律。同样，在SOA领域这一规律也已起作用，兴起了另一种简单的实现——REST，虽然它不是标准的。<br><br>&nbsp;&nbsp;&nbsp; 其实REST和SOAP各有所长。REST简单、易用，与互联网思想一脉相承，核心思想是资源共享、面向资源的Web Services。而SOAP是广为接受的标准，在互操作性方面，解决复杂的系统集成方面优势明显，其核心思想是面向活动的Web Services。<br><br>&nbsp;&nbsp;&nbsp; 以前，REST和SOAP的争论异常激烈。如google选择SOAP；而Amazon 85％的web services应用采用REST，15％采用SOAP。<br><br>&nbsp;&nbsp;&nbsp; 但慢慢地厂商变得越来越聪明，逐步摆脱理论上的争论，看重实际的接受度。如微软的Web Services项目Indigo去年底宣布支持REST；Apache Axis2同时支持SOAP协议栈和REST，而且二者可互相通讯。<br>&nbsp;&nbsp;&nbsp; 同时，SOAP族的Web Services规范新版本开始支持REST的特性（http get/post）,如WSDL 2.0和SOAP 1.2<br><br>&nbsp;&nbsp;&nbsp; 真所谓分久必合，合久必分。SOAP和REST正走向融合。<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <br>2. JBI和SCA之争<br>&nbsp;&nbsp;&nbsp; SUN阵营支持JBI，而BEA、IBM、SAP、SIEBEL支持SCA。随着7月初SUN公司的加入SCA/SDO国际构件标准组织，标志着Sun将逐步放弃自己的JBI，预示着Java和JavaEE将在未来五年内逐渐退出&#8216;解决客户关键问题的主流技术&#8217;的地位。<br>&nbsp;&nbsp;&nbsp; 其实不少JBI和JCA专家组的成员更倾向于JBI，但是IBM等不喜欢SUN控制JAVA，不愿看到将来SUN控制SOA的商业应用。其实JBI是好东西，被牺牲了。不过，SUN如果早点将JDK开源，避垄断JAVA之嫌，就不会这么孤立。<br><br><br>3. JAX-WS2.0 替换JAX-RPC 1.1<br>&nbsp;&nbsp;&nbsp; JAX-WS2.0即Java API for XML Web Services (JAX-WS) 2.0，JAX-RPC 1.1即Java API for XML-Based RPC (JAX-RPC) 1.1。它们都是sun公司的使用 Java 技术开发 Web 服务的规范，前者是后者的升级版本。<br>&nbsp;&nbsp;&nbsp; JAX-WS2.0的binding层用JAXB（JSR 222），xml解析层用StAX（JSR 173），完全基于标准，性能得到大幅提升；支持Java 5的注释（annotation），容易开发。<br>&nbsp;&nbsp;&nbsp; <br><br><br>五、总结<br>1. SOA是未来企业的IT应用模式<br>&nbsp;&nbsp;&nbsp; 而在SOA创造的商业世界里，企业将有机会像玩积木（网络服务构件就是积木）游戏一样创造崭新的商业模式，从不同厂商购买网络服务，编排和组装自己的应用。IT的收费方式不是整个产品，也不是按CPU、license收费，而是按网络服务调用次数收费。灵活、总体拥有成本将大大降低，将注意力集中于自身的商业逻辑。<br>&nbsp;&nbsp;&nbsp; 同时，经历十几年、二十几年的IT建设，企业拥有了各种各样的系统，c++、java、c、cobra写的各种各样的遗留系统，保护企业以前的投资，构建出新的应用，这样的需求越来越多、越来越强烈。而这正是SOA发挥作用的舞台，SOA可提供跨平台、跨语言的、可扩展的、可靠和安全的网络服务。<br>&nbsp;&nbsp;&nbsp; Gartner预测，到2008年，75%的新企业应用将采纳SOA。<br><br>2. ESB（企业服务总线）的淡出<br>&nbsp;&nbsp;&nbsp;&nbsp; ESB这一概念将会淡出，SOA治理、策略（policy）和SOA Network、SOA Repository正在兴起。<br><br>3. SOA应用趋势<br>&nbsp;&nbsp;&nbsp;&nbsp; 总结一句，SOA的应用大潮将至，SOA中间件产品的竞争越来越激烈。IBM 11月1日宣布在北京和印度成立SOA全球解决方案中心。这标志着SOA应用竞争的升级。<br>
<img src ="http://www.blogjava.net/orangelizq/aggbug/132789.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/orangelizq/" target="_blank">桔子汁</a> 2007-07-27 14:50 <a href="http://www.blogjava.net/orangelizq/archive/2007/07/27/132789.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>SOA的发展历史与标准规范</title><link>http://www.blogjava.net/orangelizq/archive/2007/07/27/132778.html</link><dc:creator>桔子汁</dc:creator><author>桔子汁</author><pubDate>Fri, 27 Jul 2007 06:10:00 GMT</pubDate><guid>http://www.blogjava.net/orangelizq/archive/2007/07/27/132778.html</guid><wfw:comment>http://www.blogjava.net/orangelizq/comments/132778.html</wfw:comment><comments>http://www.blogjava.net/orangelizq/archive/2007/07/27/132778.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/orangelizq/comments/commentRss/132778.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/orangelizq/services/trackbacks/132778.html</trackback:ping><description><![CDATA[<div class=item-content>&nbsp;&nbsp;&nbsp; 新技术的兴起必然伴随着一系列技术标准和规范的诞生，SOA也是如此。短短几年之内，在厂商、研究人员和标准化组织的共同努力下，已经制定出一大批SOA标准和规范，有力地推动了SOA的发展。面对众多的SOA标准和规范，很多人可能会感到迷茫和疑惑，进而愈发觉得SOA太复杂而高不可攀。其实，只要了解SOA的发展历程和SOA架构的基本知识，同时对标准的制定、审核和发布机构及工作机制有一定认识和了解，就不难理解这些标准的意义和作用。
<p><font color=#ff0000>&nbsp;&nbsp;&nbsp;&nbsp;1. SOA发展回顾 </font><br><br>&nbsp;&nbsp;&nbsp;&nbsp;SOA的概念最初由Gartner公司提出，由于当时的技术水平和市场环境尚不具备真正实施SOA的条件，因此当时SOA并未引起人们的广泛关注，SOA在当时沉寂了一段时间。伴随着互联网的浪潮，越来越多的企业将业务转移到互联网领域，带动了<a href="http://www.qqread.com/erp/9/index.html" target=_blank><u><font color=#a40000 size=2>电子商务</font></u></a>的蓬勃发展。为了能够将公司的业务打包成独立的、具有很强伸缩性的基于互联网的服务，人们提出了Web服务的概念，这可以说是SOA的发端。 <br><br>&nbsp;&nbsp;&nbsp;&nbsp;Web服务开始流行以后，互联网迅速出现了大量的基于不同平台和语言开发的Web服务组件。为了能够有效地对这些为数众多的组件进行管理，人们迫切需要找到<font color=#ff0000>一种新的面向服务的分布式Web计算架构</font>。该架构要能够使这些由不同组织开发的Web服务能够相互学习和交互，保障安全以及兼顾复用性和可管理性。由此，人们重新找回面向服务的架构（Service-Oriented Architecture，SOA），并赋予其时代的特征。需求推动技术进步，正是这种强烈的市场需求，使得SOA再次成为人们关注的焦点。回顾SOA发展历程，我们把其大致分为了三个阶段。下面将分别介绍每个阶段的重要标准和规范。 <br><br>&nbsp;&nbsp;&nbsp;&nbsp;1.1 孕育阶段 <br><br>&nbsp;&nbsp;&nbsp;&nbsp;这一阶段以<a href="http://www.qqread.com/keywords/xml.html" target=_blank><u><font color=#a40000 size=2>XML</font></u></a>技术为标志，时间大致从上世纪九十年代末到本世纪初。虽然这段时期很少提到SOA，但XML的出现无疑为SOA的兴起奠定了稳固的基石。 <br><br>&nbsp;&nbsp;&nbsp;&nbsp;可扩展标记语言（Extensibl Markup Language，XML）系W3C所创建，源自流行的标准通用标记语言（Standard Generalised Markup Language，SGML），它在上世纪60年代后期就已存在。这种广泛使用的元语言，允许组织定义文档的元数据，实现企业内部和企业之间的电子数据交换。由于SGML比较复杂，实施成本很高，因此很长时间里只用于大公司之间，限制了它的推广和普及。 <br><br>&nbsp;&nbsp;&nbsp;&nbsp;通过XML，开发人员摆脱了HTML语言的限制，可以将任何文档转换成XML格式，然后跨越互联网<a href="http://www.qqread.com/z/protocol/index.html" target=_blank><u><font color=#a40000 size=2>协议</font></u></a>传输。借助XML转换语言（Extensible Stylesheet Language Transformation，XSLT），接受方可以很容易地解析和抽取XML的数据。这使得企业既能够将数据能够以一种统一的格式描述和交换，同时又不必负担SGML那样高的成本。事实上，XML实施成本几乎和HTML一样。 <br><br>&nbsp;&nbsp;&nbsp;&nbsp;<span style="COLOR: #0000ff">XML是SOA的基石</span>。XML规定了服务之间以及服务内部数据交换的格式和结构。<span style="COLOR: #0000ff">XSD Schemas 保障了消息数据的完整性和有效性</span>，而<span style="COLOR: #0000ff">XSLT使得不同的数据表达能够通过Schema映射而互相</span><a href="http://www.qqread.com/z/telecom/index.html" target=_blank><u><span style="COLOR: #0000ff">通信</span></u></a><span style="COLOR: #0000ff">。</span> <br><br><font color=#000000>&nbsp;&nbsp;&nbsp;&nbsp;1.2 发轫之初 </font><br><br>&nbsp;&nbsp;&nbsp;&nbsp;2000年以后，人们普遍认识到基于公共——专有互联网之上的电子商务具有极大的发展潜力，因此需要创建<span style="COLOR: #0000ff">一套全新的基于互联网的开放通信框架</span>，以满足企业对电子商务中各分立系统之间通信的要求。于是，人们提出了Web服务的概念，希望通过将企业对外服务封装为基于统一标准的Web服务，实现异构系统之间的简单交互。这一时期，出现了三个著名的Web服务标准和规范：&nbsp;<br><br>&nbsp; 简单对象访问协议（Simple Object <a href="http://www.qqread.com/access/tech/index.html" target=_blank><u><font color=#a40000 size=2>Access</font></u></a> Protocal，<a href="http://www.qqread.com/keywords/soap.html" target=_blank><u><font color=#a40000 size=2>SOAP</font></u></a>）&nbsp;<br>&nbsp; Web服务描述语言（Web Services Description Language，WSDL）&nbsp;<br>&nbsp; 通用服务发现和集成协议（Universal Discovery Description and Integration，UUDI） <br><br>&nbsp;&nbsp;&nbsp;&nbsp;这三个标准可谓Web服务三剑客，极大地推动了Web服务的普及和发展。短短几年之间，互联网上出现了大量的Web服务，越来越多的网站和公司将其对外服务或业务接口封装成Web服务，有力地推动了电子商务和互联网的发展。Web服务也是互联网Web 2.0时代的一项重要特征。 <br><br><font color=#ff0000><font color=#000000>&nbsp;&nbsp;&nbsp;&nbsp;1.3 成长阶段 </font><br></font><br>&nbsp;&nbsp;&nbsp;&nbsp;从<span style="COLOR: #0000ff">2005</span>年开始，SOA推广和普及工作开始加速。不仅专家学者，几乎所有关心软件 <br>行业发展的人士都开始把目光投向SOA。一时间，SOA频频出现在各种技术媒体、新产品发布会和技术交流会上。 <br><br>&nbsp;&nbsp;&nbsp;&nbsp;各大厂商也逐渐放弃成见，通过建立厂商间的协作组织共同努力制定中立的SOA标准。这一努力最重要的成果体现在3个重量级规范上：<span style="COLOR: #0000ff">SCA/SDO/WS-Policy</span>。<span style="COLOR: #0000ff">SCA和SDO构成了SOA编程模型的基础</span>，而<span style="COLOR: #0000ff">WS-Policy建立了SOA组件之间安全交互的规范</span>。这三个规范的发布，标志着SOA进入了实施阶段。 <br><br>&nbsp;&nbsp;&nbsp;&nbsp;从整体架构角度看，人们已经把关注点从简单的Web服务拓展到面向服务体系架构的各个方面，包括安全、业务流程和事务处理等。 <br></p>
<p><font color=#000000><strong>&nbsp;&nbsp;&nbsp;2. 标准与规范</strong> </font><br><br>&nbsp;&nbsp;&nbsp;&nbsp;2.1 标准与规范的区别 </p>
<p>&nbsp;&nbsp;&nbsp; 大多数人习惯上把&#8220;标准&#8221;与&#8220;规范&#8221;这两个术语交替使用，这样做基本没有问题。但严格地讲，二者还是有一定差异的。<font color=#ff0000>规范是标准的建议文档</font>。这就意味着，<font color=#ff0000>标准一般是由业界公认的标准化组织制定和发布</font>。而<font color=#ff0000>规范要灵活的多，多为厂商或非标准化组织发布</font>。<font color=#ff0000>事实上，很多规范并不是标准，比如SDO和SCA，而是由某些厂商或厂商联盟制定发布。但是凭借这些厂商强大的市场地位，这些规范往往会成为事实上的标准</font>。 <br><br>&nbsp;&nbsp;&nbsp;&nbsp;我们大体上可以把SOA标准分为<a href="http://www.qqread.com/keywords/xml.html" target=_blank><u><span style="COLOR: #0000ff">XML</span></u></a><span style="COLOR: #0000ff">标准集</span>、<span style="COLOR: #0000ff">Web服务标准集</span>和<span style="COLOR: #0000ff">SOA参考模型</span>，下面我将分别介绍，为叙述方便，不再严格区分标准和规范，统一称作标准。 <br><br>&nbsp;&nbsp;&nbsp;&nbsp;2.2 XML标准集 <br><br>&nbsp;&nbsp;&nbsp;&nbsp;2001年10月，W3C发布了XML信息集（XML Information Set，XML Infoset）。 <br>&nbsp;&nbsp;&nbsp; Infoset是一个抽象的数据模型，它兼容基于文本的XML 1.0，也是所有最新XML规范（XML Schema、XML Query和XSLT 2.0）的基础。由于Web服务架构是以XML Infoset为基础，而不是以某一特定的表现形式为基础，使得该架构及其核心<a href="http://www.qqread.com/z/protocol/index.html" target=_blank><u><font color=#a40000 size=2>协议</font></u></a>组件可与各种编码技术兼容。 <br><br>&nbsp;&nbsp;&nbsp;&nbsp;除了<span style="COLOR: #0000ff">基于纯文本的Infoset编码技术</span>以外，Web服务架构还需要支持另外一种编码技术——即允许不透明的二进制数据与传统的基于文本的标记交织在一起。由于XML Infoset仅支持基于文本的XML，W3C于<span style="COLOR: #0000ff">2005年初发布了XML二进制优化封装协议（XML-binary Optimized Packaging，XOP）</span>。XOP格式使用MIME将原始二进制数据引入到XML 1.0文档中，而不采用base64编码。通过<span style="COLOR: #0000ff">其配套规范——</span><a href="http://www.qqread.com/keywords/soap.html" target=_blank><u><span style="COLOR: #0000ff">SOAP</span></u></a><span style="COLOR: #0000ff"> 消息（Transmission Optimization Method，MTOM）</span>实现将二进制XOP格式绑定到SOAP。XOP和MTOM是将原始二进制数据与基于文本的XML混合在一起的首选方法，它们取代了目前普遍遭到反对的SOAP with Attachments（SwA）和WS-Attachments/DIME。 <br><br>&nbsp;&nbsp;&nbsp;&nbsp;2.3 Web服务标准集 <br><br>&nbsp;&nbsp;&nbsp;&nbsp;经过几年的努力，Web服务标准集已经初具规模，内容涵盖传输层、消息机制、编程模型、服务发现和描述、可靠性、事务处理、安全和管理等方面。尽管其中部分内容还处于规范级别，但由于受到广泛的关注和支持，成为正式标准只是时间上的问题。<br><br>&nbsp;&nbsp;&nbsp;&nbsp;2.4 SOA参考模型 <br><br>&nbsp;&nbsp;&nbsp;&nbsp;SOA参考模型由结构化信息标准促进组织制定和发布。事实上，它并不是一个标准，而是<span style="COLOR: #0000ff">SOA架构的一个抽象框架</span>，统一了SOA相关术语用法并且定义了这些术语的涵义，同时还明确定义了SOA各组件之间的关系。SOA架构师或系统<a href="http://www.qqread.com/keywords/photoshop_e.html" target=_blank><u><font color=#a40000 size=2>设计</font></u></a>人员可以根据这个模型指导自己的SOA实践，下图说明了SOA参考模型与SOA实践之间的关系。<br><br><img alt="" src="http://img45.pp.sohu.com/images/blog/2007/4/4/23/20/112546bc81a.jpg" border=0></p>
<p>&nbsp;&nbsp;&nbsp; </p>
<p>&nbsp;&nbsp;&nbsp; 从上图可以看出，参考模型位于抽象级别的顶部，也就是说参考模型提供了SOA实现的抽象基础。每个SOA架构设计者都要考虑参考架构、模式、模型以及由参考架构派生出的概念架构，审慎思考实际环境（需求、动机和目标等）对实现架构的影响，同时利用已有的标准和协议，这样就<font color=#ff0000>形成了一个比较完整的SOA设计方法论</font>。总而言之，SOA参考模型使得我们能够系统地考虑SOA架构的实现，并给出最基本的概念和设计模式。</p>
<p>&nbsp;&nbsp;&nbsp; </p>
<p><font color=#ff0000>&nbsp;&nbsp;&nbsp; <strong>3. 标准化组织对标准的贡献 </strong></font><br><br>&nbsp;&nbsp;&nbsp;&nbsp;3.1 <span style="COLOR: #0000ff">结构化信息标准促进组织（Organization for the Advancement of Structured Information Standards，OASIS）</span> </p>
<p>&nbsp;&nbsp;&nbsp; OASIS是一个非赢利的国际协会，致力于<a href="http://www.qqread.com/erp/9/index.html" target=_blank><u><font color=#a40000 size=2>电子商务</font></u></a>相关标准的制定和推广，也是目前制定Web服务标准最多的一个组织。除了制定通用的电子商务、Web服务和安全标准之外，OASIS还制定了很多针对行业的电子标准。OASIS理事会成员几乎全部来自微软、IBM、BEA system、<a href="http://www.qqread.com/oracle/tech/index.html" target=_blank><u><font color=#a40000 size=2>Oracle</font></u></a>、Sun、SAP AG、诺基亚等业界大公司。 <br><br>&nbsp;&nbsp;&nbsp;&nbsp;OASIS为SOA专门成立了六个技术委员会（Technical Committees），分别负责制定电子商务、Web Service开发和部署、服务质量以及面向服务架构等方面的标准。 <br><br>&nbsp;&nbsp;&nbsp;&nbsp;3.2 <span style="COLOR: #0000ff">开放SOA合作组织（Open SOA Collaboration，OSOA）</span> <br><br>&nbsp;&nbsp;&nbsp;&nbsp;OSOA是一个非正式的厂商联盟，使得各厂商能够共同开发一个语言中立的编程模型。该编程模型帮助企业软件开发人员能够最大限度的发挥SOA架构的特性和优势。目前加入OSOA的厂商包括IBM、BEA、SAP、Oracle等。尽管OSOA不是一个标准化组织，但由于有IBM、BEA等业界厂商的支持，它制定的规范很可能会成为事实上的标准。因此，我们可以把它看作一个准标准化组织。OSOA成立了两个项目组，分别负责制定SCA和SDO规范。 <br><br>&nbsp;&nbsp;&nbsp;&nbsp;3.3 <span style="COLOR: #0000ff">万维网联盟（World Wide Web Consortium，W3C）</span> <br><br>&nbsp;&nbsp;&nbsp;&nbsp;W3C成立于1994年，主要负责制定Web相关标准和规范，比如HTML、<a href="http://www.qqread.com/keywords/css.html" target=_blank><u><font color=#a40000 size=2>CSS</font></u></a>等。W3C专门成立了Web服务专区，下辖六个工作组，负责制定Web服务相关的标准。W3C对Web服务的发展可谓功不可没，像非常著名的<a href="http://www.qqread.com/keywords/soap.html" target=_blank><u><font color=#a40000 size=2>SOAP</font></u></a>和WSDL皆出自于W3C。 <br><br>&nbsp;&nbsp;&nbsp;&nbsp;3.4 <span style="COLOR: #0000ff">Web服务互操作组织（Web Services Interoperability Organization，WS-I）</span> <br><br>&nbsp;&nbsp;&nbsp;&nbsp;WS-I是一个开放的厂商联盟，鼓励任何对Web服务有兴趣的厂商加盟并贡献自己的力量。 它主要致力于提升Web服务基于平台、<a href="http://www.qqread.com/os/" target=_blank><u><font color=#a40000 size=2>操作系统</font></u></a>和编程语言中立的互操作能力，其成员几乎覆盖了所有重量级厂商，如IBM、微软、Sun、Oracle和BEA等。 <br><br>&nbsp;&nbsp;&nbsp;&nbsp;3.5 <span style="COLOR: #0000ff">互联网工程任务组(Internet Engineering Task Force，IETF)</span> <br><br>&nbsp;&nbsp;&nbsp;&nbsp;The IETF（因特网工程工作小组）是定义标准因特网操作<a href="http://www.qqread.com/z/protocol/index.html" target=_blank><u><font color=#a40000 size=2>协议</font></u></a>（像<a href="http://www.qqread.com/z/protocol/tcp-ip.html" target=_blank><u><font color=#a40000 size=2>TCP/IP</font></u></a>）的团体，IETF接受国际互联网协会Internet架构委员会（Internet Architecture Board，IAB）的监督管理。IETF的成员分别来自于互联网协会的个人或者组织成员。 <br><br><font color=#ff0000>&nbsp;&nbsp;&nbsp;&nbsp;<strong>4.厂商之间的博弈 </strong><br></font><br>&nbsp;&nbsp;&nbsp;&nbsp;谁控制了标准，谁就控制了游戏规则，就能够在未来的软件行业立于不败之地。因此，几乎当前所有的主要工具供应商和平台提供商都参与了SOA标准的制定，包括微软、IBM、BEA、Oracle、Sun、SAP AG、诺基亚、IONA、Xcalia、Zend 、Sonic Software。 <br><br>&nbsp;&nbsp;&nbsp;&nbsp;<font color=#ff0000>表面上，标准化组织都声称自己独立于任何厂商，强调其独立性和自主性。但如果观察这些组织理事会的成员构成，就会发现大部分成员都来自上面提到的业界寡头，来自欧美发达国家，可以说是&#8220;大国俱乐部&#8221;和&#8220;大厂俱乐部&#8221;。</font> <br><br>&nbsp;&nbsp;&nbsp;&nbsp;在参与制定标准的同时，各大厂还开始并购优秀的行业SOA解决方案提供商，积累针对特定行业标准的实施经验，以期获取竞争优势。2006年8月，IBM宣布成功收购了一家专门提供面向行业的SOA软件与服务的私有企业——Webify解决方案公司。Webify公司专注于提供帮助企业加速开发和部署应用的软件产品，以及数以百计的针对特定行业的基于标准的预置加速器、工具和框架，用于解决特定行业的业务问题，如帮助医疗保健行业符合《健康保险便携性及责任性法案》（HIPAA）的要求、帮助保险行业满足《国际保险业数据标准》（ACORD）等。此次收购将进一步增强IBM在SOA领域的领导地位。 Webify在语义方面的专业技术与IBM在开放标准开发利用丰富经验的结合，能够更好地解决特定垂直行业的常见业务问题。 <br><br><font color=#ff0000>&nbsp;&nbsp;&nbsp;&nbsp;<strong>5.标准的发展趋势 </strong><br></font><br>&nbsp;&nbsp;&nbsp;<span style="COLOR: #0000ff">&nbsp;2007年将有三个重量级的标准问世，它们目前都属于规范级别。它们就是SCA、SDO、WS-Policy。</span>SCA和SDO构成了SOA组件开发的核心，而WS-Policy则成为SOA组件间安全通讯的标准，其作用类似于安全套接层在浏览器与<a href="http://www.qqread.com/hardware/server/index.html" target=_blank><u><font color=#a40000 size=2>服务器</font></u></a>通讯中的重用。事实上，WS-Policy的基本原理与SSL是一致的。 <br><br>&nbsp;&nbsp;&nbsp;&nbsp;今后标准开发将具有一个共同的特点，就是标准与SOA架构的协调性。也就是说，无论是已有的标准还是正在开发的标准，都必须符合SOA架构的要求，同时要考虑单个标准与其它SOA标准之间的协调一致。 <br><br>&nbsp;&nbsp;&nbsp;&nbsp;2007年将会有许多SOA的规范升级为标准。<span style="COLOR: #0000ff">SCA和SDO计划于2007年由OASIS审核通过</span>，而<span style="COLOR: #0000ff">WS-Policy也将于2007年8月正式成为W3C标准</span>。 <br><br>&nbsp;&nbsp;&nbsp;&nbsp;基于市场的强劲需求，各标准化组织将继续加大在制定SOA相关标准上的投入力度，标准的制定和发布周期将大大缩短。比如对WS-Policy，W3C制定了精密的时间表。目前WS-Policy的发布时间表是这样安排的，2007年3月发布候选推荐版本(Candidate Recommendation drafts)，2007年7月发布提议推荐版本(Proposed Recommendation drafts)，2007年8月发布W3C推荐版本(W3C Recommendations)。W3C历来以严谨和审慎著称，发布一个标准平均需要3至5年的时间。但就WS-Policy而言，从2006年4月 IBM和微软公司将WS-Policy规范提交给W3C算起，按照目前的时间表，整个标准发布周期仅为16个月。</p>
</div>
<img src ="http://www.blogjava.net/orangelizq/aggbug/132778.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/orangelizq/" target="_blank">桔子汁</a> 2007-07-27 14:10 <a href="http://www.blogjava.net/orangelizq/archive/2007/07/27/132778.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>注意区分规范API和参考实现</title><link>http://www.blogjava.net/orangelizq/archive/2007/07/15/130353.html</link><dc:creator>桔子汁</dc:creator><author>桔子汁</author><pubDate>Sun, 15 Jul 2007 03:18:00 GMT</pubDate><guid>http://www.blogjava.net/orangelizq/archive/2007/07/15/130353.html</guid><wfw:comment>http://www.blogjava.net/orangelizq/comments/130353.html</wfw:comment><comments>http://www.blogjava.net/orangelizq/archive/2007/07/15/130353.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/orangelizq/comments/commentRss/130353.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/orangelizq/services/trackbacks/130353.html</trackback:ping><description><![CDATA[SAX 规范API，参考实现有Xerces<br>DOM规范，本身为语言中立的，有Java对象模型的，参考实现有Xervice<br>StAX规范API，为JavaAPI,参考实现有wstx。<br>JAXP是构建在SAX，DOM上的更抽象的一层，其实也是个规范API，在其发行版本中有参考实现。
<img src ="http://www.blogjava.net/orangelizq/aggbug/130353.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/orangelizq/" target="_blank">桔子汁</a> 2007-07-15 11:18 <a href="http://www.blogjava.net/orangelizq/archive/2007/07/15/130353.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[转] XML基础</title><link>http://www.blogjava.net/orangelizq/archive/2007/07/14/130273.html</link><dc:creator>桔子汁</dc:creator><author>桔子汁</author><pubDate>Sat, 14 Jul 2007 06:48:00 GMT</pubDate><guid>http://www.blogjava.net/orangelizq/archive/2007/07/14/130273.html</guid><wfw:comment>http://www.blogjava.net/orangelizq/comments/130273.html</wfw:comment><comments>http://www.blogjava.net/orangelizq/archive/2007/07/14/130273.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/orangelizq/comments/commentRss/130273.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/orangelizq/services/trackbacks/130273.html</trackback:ping><description><![CDATA[<p>1:什么是XML？<br>这往往是第一个问题，也往往在第一个问题上你就会搞不明白，因为大多的教材上这样回答：<br>XML是Extensible Markup Language的简写，一种扩展性标识语言。<br>这是标准的定义。那么什么是标志语言，为什么叫扩展性？已经让人有些糊涂。我想我们这样来理解会好一些：<br>对HTML你已经非常熟悉了吧，它就是一种标记语言，记得它的全称吗："Hypertext Markup Language" 超文本标记语言。明白了？同时，HTML里面有很多标签，类似&lt;head&gt;,&lt;table&gt;等，都是在HTML 4.0里规范和定义，而XML里允许你自己创建这样的标签，所以叫做可扩展性。</p>
<p>这里有几个容易混淆的概念要提醒大家：<br>1.XML并不是标记语言。它只是用来创造标记语言(比如HTML)的元语言。天，又糊涂了！不要紧，你只要知道这一点：XML和HTML是不一样的，它的用处途比HTML广泛得多，我们将在后面仔细介绍。<br>2.XML并不是HTML的替代产品。XML不是HTML的升级，它只是HTML的补充，为HTML扩展更多功能。我们仍将在较长的一段时间里继续使用HTML。(但值得注意的是HTML的升级版本XHTML的确正在向适应XML靠拢。)<br>3.不能用XML来直接写网页。即便是包含了XML数据，依然要转换成HTML格式才能在浏览器上显示。</p>
<p>2. 使用XML有什么好处？ <br>有了HTML，为什么还需要用XML？ <br>因为现在网络应用越来越广泛，仅仅靠HTML单一文件类型来处理千变万化的文档和数据已经力不丛心，而且HTML本身语法十分不严密，严重影响网络信息传送和共享。(想想浏览器兼容的问题伤透多少设计师的脑细胞啊。)人们早已经开始探讨用什么方法来满足网络上各种应用的需要。使用SGML是可以的，但SGML太庞大，编程复杂，于是最终选择了"减肥"的SGML---XML作为下一代web运用的数据传输和交互的工具。 <br>使用XML有什么好处？来看w3c组织(XML标准制定者)的说明： <br>XML使得在网络上使用SGML语言更加"简单和直接": 简化了定义文件类型的过程，简化了编程和处理SGML文件的过程，简化了在Web上的传送和共享。 <br>1.XML可以广泛的运用于web的任何地方; <br>2.XML可以满足网络应用的需求； <br>3.使用XML将使编程更加简单； <br>4.XML便于学习和创建； <br>5.XML代码将清晰和便于阅读理解； </p>
<p>3. XML和HTML的区别 <br>XML和HTML都来自于SGML，它们都含有标记，有着相似的语法，HTML和XML的最大区别在于：HTML是一个定型的标记语言，它用固有的标记来描述，显示网页内容。比如&lt;H1&gt;表示首行标题，有固定的尺寸。相对的，XML则没有固定的标记，XML不能描述网页具体的外观，内容，它只是描述内容的数据形式和结构。 <br>这是一个质的区别：网页将数据和显示混在一起，而XML则将数据和显示分开来。 <br>我们看上面的例子，在myfile.htm中，我们只关心页面的显示方式，我们可以设计不同的界面，用不同的方式来排版页面，但数据是储存在myfile.xml中，不需要任何改变。 <br>(如果你是程序员，你会惊讶的发现，这与模块化面向对象编程的思想极其相似！其实网页何尝不是一种程序呢？) <br>正是这种区别使得XML在网络应用和信息共享上方便，高效，可扩展。所以我们相信，XML做为一种先进的数据处理方法，将使网络跨越到一个新的境界。</p>
<p><br>XML文档的有关术语<br>什么是XML文档？知道HTML原代码文件吧，XML文档就是用XML标识写的XML原代码文件。XML文档也是ASCII的纯文本文件，你可以用Notepad创建和修改。XML文档的后缀名为.XML，例如myfile.xml。用IE5.0以上浏览器也可以直接打开.xml文件，但你看到的就是"XML原代码"，而不会显示页面内容。你可以将下面代码存为myfile.xml试试：</p>
<p>&lt;?xml version="1.0" encoding="GB2312"?&gt;<br>&lt;myfile&gt;<br>&lt;title&gt;XML轻松学习手册&lt;/title&gt;<br>&lt;author&gt;ajie&lt;/author&gt;<br>&lt;email&gt;ajie@aolhoo.com&lt;/email&gt;<br>&lt;date&gt;20010115&lt;/date&gt;<br>&lt;/myfile&gt;</p>
<p>XML文档包含三个部分：<br>1. 一个XML文档声明；<br>2. 一个关于文档类型的定义；<br>3. 用XML标识创建的内容。</p>
<p>举例说明:<br>&lt;?xml version="1.0"?&gt;<br>&lt;!DOCTYPE filelist SYSTEM "filelist.dtd"&gt;</p>
<p>&lt;filelist&gt; <br>&lt;myfile&gt;<br>&lt;title&gt;QUICK START OF XML&lt;/title&gt;<br>&lt;author&gt;ajie&lt;/author&gt;<br>&lt;/myfile&gt;<br>......<br>&lt;/filelist&gt; <br>其中第一行&lt;?xml version="1.0"?&gt;就是一个XML文档的声明，第二行说明这个文档是用filelist.dtd来定义文档类型的，第三行以下就是内容主体部分。 我们来了解XML文档中有关的术语：</p>
<p>1.Element(元素)：<br>元素在HTML我们已经有所了解，它是组成HTML文档的最小单位，在XML中也一样。一个元素由一个标识来定义，包括开始和结束标识以及其中的内容，就象这样：&lt;author&gt;ajie&lt;/author&gt; <br>唯一不同的就是：在HTML中，标识是固定的，而在XML中，标识需要你自己创建。</p>
<p>2.Tag(标识) <br>标识是用来定义元素的。在XML中，标识必须成对出现，将数据包围在中间。标识的名称和元素的名称是一样的。例如这样一个元素：<br>&lt;author&gt;ajie&lt;/author&gt; <br>其中&lt;author&gt;就是标识。</p>
<p>3.Attribute(属性): <br>什么是属性？看这段HTML代码:&lt;font color="red"&gt;word&lt;/font&gt;。其中color就是font的属性之一。<br>属性是对标识进一步的描述和说明，一个标识可以有多个属性，例如font的属性还有size。XML中的属性与HTML中的属性是一样的，每个属性都有它自己的名字和数值，属性是标识的一部分。举例：<br>&lt;author sex="female"&gt;ajie&lt;/author&gt;<br>XML中属性也是自己定义的，我们建议你尽量不使用属性，而将属性改成子元素，例如上面的代码可以改成这样：<br>&lt;author&gt;ajie<br>&lt;sex&gt;female&lt;/sex&gt;<br>&lt;/author&gt;<br>原因是属性不易扩充和被程序操作。</p>
<p>4.Declaration(声明) <br>在所有XML文档的第一行都有一个XML声明。这个声明表示这个文档是一个XML文档，它遵循的是哪个XML版本的规范。一个XML的声明语句就象这样：<br>&lt;?xml version="1.0"?&gt; </p>
<p>5.DTD(文件类型定义) <br>DTD是用来定义XML文档中元素，属性以及元素之间关系的。<br>通过DTD文件可以检测XML文档的结构是否正确。但建立XML文档并不一定需要DTD文件。关于DTD文件的详细说明我们将在下面单独列项。</p>
<p>6.Well-formed XML(良好格式的XML)<br>一个遵守XML语法规则，并遵守XML规范的文档称之为"良好格式"。如果你所有的标识都严格遵守XML规范，那么你的XML文档就不一定需要DTD文件来定义它。<br>良好格式的文档必须以一个XML声明开始，例如：<br>&lt;?xml version="1.0" standalone="yes" encoding="UTF-8"?&gt;<br>其中你必须说明文档遵守的XML版本，目前是1.0；其次说明文档是"独立的"，它不需要DTD文件来验证其中的标识是否有效；第三，要说明文档所使用的语言编码。默认的是UTF-8，如果使用中文，你需要设置为GB2312。<br>良好格式的XML文档必须有一个根元素，就是紧接着声明后面建立的第一个元素，其它元素都是这个根元素的子元素，属于根元素一组。<br>良好格式的XML文档的内容书写时必须遵守XML语法。(有关XML语法我们将在下一章仔细讲解)</p>
<p>7.Valid XML(有效的XML)<br>一个遵守XML语法规则，并遵守相应DTD文件规范的XML文档称为有效的XML文档。注意我们比较"Well-formed XML"和"Valid XML"，它们最大的差别在于一个完全遵守XML规范，一个则有自己的"文件类型定义(DTD)"。<br>将XML文档和它的DTD文件进行比较分析，看是否符合DTD规则的过程叫validation(确认)。这样的过程通常我们是通过一个名为parser的软件来处理的。<br>有效的XML文档也必须以一个XML声明开始，例如：<br>&lt;?xml version="1.0" standalone="no" encode="UTF-8"?&gt;<br>和上面例子不同的，在standalone(独立)属性中，这里设置的是"no"，因为它必须和相应的DTD一起使用，DTD文件的定义方法如下：<br>&lt;!DOCTYPE type-of-doc SYSTEM/PUBLIC "dtd-name"&gt; <br>其中：<br>"!DOCTYPE"是指你要定义一个DOCTYPE;<br>"type-of-doc"是文档类型的名称，由你自己定义，通常于DTD文件名相同；<br>"SYSTEM/PUBLIC"这两个参数只用其一。SYSTEM是指文档使用的私有DTD文件的网址，而PUBLIC则指文档调用一个公用的DTD文件的网址。<br>"dtd-name" 就是DTD文件的网址和名称。所有DTD文件的后缀名为".dtd"。<br>我们还是用上面的例子，应该写成这样：<br>&lt;?xml version="1.0" standalone="no" encode="UTF-8"?&gt;<br>&lt;!DOCTYPE filelist SYSTEM "filelist.dtd"&gt; <br><br><br>二.DTD的有关术语<br>什么是DTD,我们上面已经简略提到。DTD是一种保证XML文档格式正确的有效方法，可以比较XML文档和DTD文件来看文档是否符合规范，元素和标签使用是否正确。一个DTD文档包含：元素的定义规则，元素间关系的定义规则，元素可使用的属性，可使用的实体或符号规则。<br>DTD文件也是一个ASCII的文本文件，后缀名为.dtd。例如:myfile.dtd。<br>为什么要用DTD文件呢？我的理解是它满足了网络共享和数据交互，使用DTD最大的好处在于DTD文件的共享。(就是上文DTD说明语句中的PUBLIC属性)。比如，两个相同行业不同地区的人使用同一个DTD文件来作为文档创建规范，那么他们的数据就很容易交换和共享。网上有其他人想补充数据，也只需要根据公用的DTD规范来建立文档，就立刻可以加入。<br>目前，已经有数量众多的写好的DTD文件可以利用。针对不同的行业和应用，这些DTD文件已经建立了通用的元素和标签规则。你不需要自己重新创建，只要在他们的基础上加入你需要的新标识。<br>当然，如果愿意，你可以创建自己的DTD，它可能和你的文档配合的更加完美。建立自己的DTD也是很简单的一件事，一般只需要定义4-5个元素就可以了。<br>调用DTD文件的方法有两种：<br>1.直接包含在XML文档内的DTD<br>你只要在DOCTYPE声明中插入一些特别的说明就可以了，象这样：<br>我们有一个XML文档：<br>&lt;?xml version="1.0" encoding="GB2312"?&gt;<br>&lt;myfile&gt;<br>&lt;title&gt;XML轻松学习手册&lt;/title&gt;<br>&lt;author&gt;ajie&lt;/author&gt;<br>&lt;/myfile&gt;<br>我们在第一行后面插入下面代码就可以：</p>
<p>&lt;!DOCTYPE myfile [<br>&lt;!ELEMENT title (#PCDATA)&gt;<br>&lt;!ELEMENT author (#PCDATA)&gt;<br>&lt;!ENTITY copyright "Copyright 2001, Ajie."&gt;<br>]&gt;</p>
<p>2.调用独立的DTD文件<br>将DTD文档存为.dtd的文件，然后在DOCTYPE声明行中调用，例如，将下面的代码存为myfile.dtd<br>&lt;!ELEMENT myfile (title, author)&gt;<br>&lt;!ELEMENT title (#PCDATA)&gt;<br>&lt;!ELEMENT author (#PCDATA)&gt;</p>
<p>然后在XML文档中调用，在第一行后插入：<br>&lt;!DOCTYPE myfile SYSTEM "myfile.dtd"&gt;</p>
<p>我们可以看到DTD文档和HTML中js的调用是差不多的，关于DTD文档具体如何写，我们将在下一章和XML文档的语法一起介绍。 <br>下面我们来了解DTD有关的术语：</p>
<p>1.Schema(规划) <br>schema是数据规则的描述。schema做两件事：<br>a.它定义元素数据类型和元素之间的关系；<br>b.它定义元素所能包含的内容类型。<br>DTD就是关于XML文档的一个schema。</p>
<p>2.Document Tree(文档树) <br>"文档树"在前面第二章我们已经提到过，它是文档元素分级结构的形象表示。一个文档结构树包含根元素，根元素是最顶级的元素，(就是紧接着XML声明语句后的第一个元素)。看例子：<br>&lt;?xml version="1.0"?&gt;<br>&lt;filelist&gt; <br>&lt;myfile&gt;<br>&lt;title&gt;...&lt;/title&gt;<br>&lt;author&gt;...&lt;/author&gt;<br>&lt;/myfile&gt;<br>&lt;/filelist&gt;<br>上面的例子分三级结构排列成"树"状，其中的&lt;filelist&gt;就是根元素。在XML和DTD文件中，第一个定义的都是根元素。</p>
<p>3.Parent Element(父元素)/Child Element(子元素)<br>父元素是指包含有其它元素的元素，被包含的元素称为它的子元素。看上面的"结构树"，其中&lt;myfile&gt;是父元素，&lt;title&gt;,&lt;author&gt;是它的子元素，而&lt;myfile&gt;又是&lt;filelist&gt;的子元素。象&lt;title&gt;这样没有包含任何子元素的最后一级元素我们也称之为"页元素"。</p>
<p>4.Parser(解析软件) <br>Parser是一种检查XML文档是否遵循DTD规范的工具软件。<br>XML的parser发展为两类：一种是"非确认类paeser"，只检测文档是否遵守XML语法规则，是否用元素标识建立了文档树。另一种是"确认类paeser"，它不但检测文档语法，结构树，而且比较解析你使用的元素标识是否遵守了相应DTD文件的规范。<br>Parser能独立使用，也可以成为编辑软件或浏览器的一部分。在后面的相关资源列表里，我列出了当前比较流行的一些parsers。</p>
<p><br><br><br>一.XML语法规则 <br>二.元素的语法 <br>三.注释的语法 <br>四.CDATA的语法 <br>五.Namespaces的语法 <br>六.entity的语法 <br>七.DTD的语法 </p>
<p>通过前面三章的学习，我们已经对什么是XML，它的实现原理以及相关的术语有所了解。接下来我们就开始学习XML的语法规范，动手写自己的XML文档。</p>
<p>一.XML语法规则<br>XML的文档和HTML的原代码类似，也是用标识来标识内容。创建XML文档必须遵守下列重要规则：<br>规则1：必须有XML声明语句<br>这一点我们在上一章学习时已经提到过。声明是XML文档的第一句，其格式如下：</p>
<p>声明的作用是告诉浏览器或者其它处理程序：这个文档是XML文档。声明语句中的version表示文档遵守的XML规范的版本；standalone表示文档是否附带DTD文件，如果有，参数为no；encoding表示文档所用的语言编码，默认是UTF-8。<br>规则2：是否有DTD文件<br>如果文档是一个"有效的XML文档"(见上一章)，那么文档一定要有相应DTD文件，并且严格遵守DTD文件制定的规范。DTD文件的声明语句紧跟在XML声明语句后面，格式如下：</p>
<p>其中：<br>"!DOCTYPE"是指你要定义一个DOCTYPE;<br>"type-of-doc"是文档类型的名称，由你自己定义，通常于DTD文件名相同；<br>"SYSTEM/PUBLIC"这两个参数只用其一。SYSTEM是指文档使用的私有DTD文件的网址，而PUBLIC则指文档调用一个公用的DTD文件的网址。<br>"dtd-name" 就是DTD文件的网址和名称。所有DTD文件的后缀名为".dtd"。</p>
<p>规则3：注意你的大小写<br>在XML文档中，大小写是有区别的。 <br>因为大小写不匹配产生的文档错误。</p>
<p>规则4：给属性值加引号<br>在HTML代码里面，属性值可以加引号，也可以不加。例如:word和word都可以被浏览器正确解释。<br>但是在XML中则规定，所有属性值必须加引号(可以是单引号，也可以是双引号)，否则将被视为错误。</p>
<p>规则5：所有的标识必须有相应的结束标识<br>在HTML中，标识可能不是成对出现的，<br>而在XML中规定，所有标识必须成对出现，有一个开始标识，就必须有一个结束标识。否则将被视为错误。</p>
<p>规则6：所有的空标识也必须被关闭<br>空标识就是标识对之间没有内容的标识</p>
<p><br><br>二.元素的语法 <br>元素由一对标识以及其中的内容组成。就象这样：ajie。元素的名称和标识的名称是一样的。标识可以用属性来进一步描述。 <br>在XML中，没有任何保留字，所以你可以随心所欲的用任何词语来作为元素名称。但是也必须遵守下列规范： <br>1.名称中可以包含字母、数字以及其它字母； <br>2.名称不能以数字或"_" (下划线)开头； <br>3.名称不能以字母 xml(或 XML 或 Xml ..)开头 <br>4.名称中不能包含空格 <br>5.名称中间不能包含":"(冒号) <br>为了使元素更容易阅读理解和操作，我们还有一些建议： </p>
<p>1.名称中不要使用"."。因为在很多程序语言中,"."是作为对象的属性，例如：font.color。同样的原因"-"也最好不要用，必须使用的，以"_"代替； <br>2.名称尽量简短。 <br>3.名称的大小写尽量采用同一标准。 <br>4.名称可以使用非英文字符，比如用中文。但是有些软件可能不支持。(IE5目前是支持中文元素的。) <br>另外，补充一点关于属性的说明。在HTML中，属性可以用来定义元素的显示格式，比如：word将把word显示为红色。而在XML中，属性只是对标识的描述，与元素内容的显示无关。例如同样一句：word，并不会将word显示为红色。(那么，有网友会问：如何在XML中将文字显示为红色呢？这就需要使用CSS或者XSL，我们在下面详细讲述。) </p>
<p><br>三.注释的语法 <br>注释是为了便于阅读和理解，在XML文档添加的附加信息，将不会被程序解释或则浏览器显示。<br>&nbsp;<br><br><br>四.CDATA的语法 <br>CDATA全称character data，翻译为字符数据。我们在写XML文档时，有时需要显示字母，数字和其它的符号本身，比如"&lt;"，而在XML中，这些字符已经有特殊的含义，我们怎么办呢？这就需要用到CDATA语法。语法格式如下： <br>例如： <br>&lt;![CDATA[ajie]]&gt; <br>在页面上显示的内容将是"ajie" <br><br><br>五.Namespaces的语法 <br>Namespaces翻译为名字空间。名字空间有什么作用呢？当我们在一个XML文档中使用他人的或者多个DTD文件，就会出现这样的矛盾：因为XML中标识都是自己创建的，在不同的DTD文件中，标识名可能相同但表示的含义不同，这就可能引起数据混乱。<br>比如在一个文档&lt;table&gt;wood table&lt;/table&gt;中&lt;table&gt;表示桌子，<br>而在另一个文档&lt;table&gt;namelist&lt;/table&gt;中&lt;table&gt;表示表格。如果我需要同时处理这两个文档，就会发生名字冲突。<br>了解决这个问题，我们引进了namespaces这个概念。namespaces通过给标识名称加一个网址(URL)定位的方法来区别这些名称相同的标识。<br>Namespaces同样需要在XML文档的开头部分声明，声明的语法如下：<br>&lt;document xmlns:yourname='URL'&gt;<br>其中yourname是由你定义的namespaces的名称，URL就是名字空间的网址。<br>假设上面的"桌子&lt;table&gt;"文档来自<a href="http://www.zhuozi.com/"><font color=#000080>http://www.zhuozi.com</font></a>，我们就可以声明为<br>&lt;document xmlns:zhuozi='http://www.zhuozi.com'&gt; <br>然后在后面的标识中使用定义好的名字空间：<br>&lt;zhuozi:table&gt;wood table&lt;/table&gt;<br>这样就将这两个&lt;table&gt;区分开来。注意的是：设置URL并不是说这个标识真的要到那个网址去读取，仅仅作为一种区别的标志而已。</p>
<p><br><br>六.entity的语法<br>entity翻译为"实体"。它的作用类似word中的"宏"，也可以理解为DW中的摸板，你可以预先定义一个entity，然后在一个文档中多次调用，或者在多个文档中调用同一个entity。<br>entity可以包含字符，文字等等，使用entity的好处在于：1.它可以减少差错，文档中多个相同的部分只需要输入一遍就可以了。2.它提高维护效率。比如你有40个文档都包含copyright的entity，如果需要修改这个copyright,不需要所有的文件都修改，只要改最初定义的entity语句就可以了。<br>XML定义了两种类型的entity。一种是我们这里说的普通entity，在XML文档中使用；另一种是参数entity，在DTD文件中使用。<br>entity的定义语法为:<br>&lt;!DOCTYPE filename [<br>&lt;!ENTITY entity-name "entity-content"<br>]<br>&gt;<br>例如我要定义一段版权信息:<br>&lt;!DOCTYPE copyright [<br>&lt;!ENTITY copyright "Copyright 2001, Ajie. All rights reserved"<br>]<br>&gt;<br>如果我的版权信息内容和他人共享一个XML文件，也可以使用外部调用的方法，语法象这样：<br>&lt;!DOCTYPE copyright [<br>&lt;!ENTITY copyright SYSTEM "<a href="http://www.sample.com/copyright.xml"><font color=#000080>http://www.sample.com/copyright.xml</font></a>"&gt; <br>]<br>&gt;<br>定义好的entity在文档中的引用语法为：&amp;entity-name;<br>例如，上面定义的版权信息，调用时写作：&amp;copyright;<br>完整的例子如下，你可以copy下来存为copyright.xml观看实例：<br>&lt;?xml version="1.0" encoding="GB2312"?&gt;<br>&lt;!DOCTYPE copyright [<br>&lt;!ENTITY copyright "Copyright 2001, Ajie. All rights reserved"&gt;<br>]&gt;<br>&lt;myfile&gt;<br>&lt;title&gt;XML&lt;/title&gt;<br>&lt;author&gt;ajie&lt;/author&gt;<br>&lt;email&gt;ajie@aolhoo.com&lt;/email&gt;<br>&lt;date&gt;20010115&lt;/date&gt;<br>&amp;copyright;<br>&lt;/myfile&gt; <br></p>
<br>
<img src ="http://www.blogjava.net/orangelizq/aggbug/130273.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/orangelizq/" target="_blank">桔子汁</a> 2007-07-14 14:48 <a href="http://www.blogjava.net/orangelizq/archive/2007/07/14/130273.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[转] XML Schema 与 XML DTD的技术比较与分析</title><link>http://www.blogjava.net/orangelizq/archive/2007/07/14/130272.html</link><dc:creator>桔子汁</dc:creator><author>桔子汁</author><pubDate>Sat, 14 Jul 2007 06:44:00 GMT</pubDate><guid>http://www.blogjava.net/orangelizq/archive/2007/07/14/130272.html</guid><wfw:comment>http://www.blogjava.net/orangelizq/comments/130272.html</wfw:comment><comments>http://www.blogjava.net/orangelizq/archive/2007/07/14/130272.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/orangelizq/comments/commentRss/130272.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/orangelizq/services/trackbacks/130272.html</trackback:ping><description><![CDATA[XML&nbsp;DTD是目前使用最广泛的一种XML&nbsp;模式，XML&nbsp;Schema则已经成为W3C的正式推荐标准，并有替代XML&nbsp;DTD的趋势。那么，从技术角度看，XML&nbsp;Schema与XML&nbsp;DTD有那些区别，XML&nbsp;Schema又有那些优势呢？<br>引言&nbsp;<br>XML&nbsp;DTD(XML的文档类型定义)是近几年来XML技术领域所使用的最广泛的一种模式。但是，由于XML&nbsp;DTD并不能完全满足XML自动化处理的要求，例如不能很好实现应用程序不同模块间的相互协调，缺乏对文档结构、属性、数据类型等约束的足够描述等等，所以W3C于2001年5月正式推荐XML&nbsp;Schema为XML&nbsp;的标准模式。显然，W3C希望以XML&nbsp;Schema来作为XML模式描述语言的主流，并逐渐代替XML&nbsp;DTD。那么XML&nbsp;Schema与XML&nbsp;DTD相比到底有哪些优势呢，XML&nbsp;DTD是否真的会在XML的模式描述领域中逐渐消失呢？
<p>&nbsp;</p>
<p>XML模式与XML格式&nbsp;<br>XML模式是指用来描述XML结构、约束等因素的语言，例如XML&nbsp;Schema、XML&nbsp;DTD、XDR，SOX等等。XML格式则是XML文档本身所具有的格式。本文以XML&nbsp;Schema来代表W3C所推荐的XML&nbsp;Schema模式标准，而以"XML模式"来代表所有的XML模式描述语言。</p>
<p>从模式的描述语言来说，XML&nbsp;Schema和XML&nbsp;DTD都属于语法模式。与概念模式不同，语法模式在对同一事物描述时，可以采用不同的语法，例如在对关系模式描述时，无论是使用XML&nbsp;Schema还是XML&nbsp;DTD，都既可以用元素也可以用属性来描述关系模式的列。</p>
<p>模式必须以某种格式来表示，XML&nbsp;Schema的格式与XML&nbsp;DTD的格式有着非常明显的区别，XML&nbsp;Schema事实上也是XML的一种应用，也就是说XML&nbsp;Schema的格式与XML的格式是完全相同的，而作为SGML&nbsp;DTD的一个子集，XML&nbsp;DTD具有着与XML格式完全不同的格式。这种区别会给XML&nbsp;Schema的使用带来许多好处：&nbsp;</p>
<p>XML用户在使用XML&nbsp;Schema的时候，不需要为了理解XML&nbsp;Schema而重新学习，节省了时间；&nbsp;<br>由于XML&nbsp;Schema本身也是一种XML，所以许多的XML编辑工具、API&nbsp;开发包、XML语法分析器可以直接的应用到XML&nbsp;Schema，而不需要修改。&nbsp;<br>作为XML的一个应用，XML&nbsp;Schema理所当然的继承了XML的自描述性和可扩展性，这使得XML&nbsp;Schema&nbsp;更具有可读性和灵活性。&nbsp;<br>由于格式完全与XML一样，XML&nbsp;Schema除了可以像XML一样处理外，也可以同它所描述的XML文档以同样的方式存储在一起，方便管理。&nbsp;<br>XML&nbsp;Schema与XML格式的一致性，使得以XML为数据交换的应用系统之间，也可以方便的进行模式交换。&nbsp;<br>XML有非常高的合法性要求，XML&nbsp;DTD对XML的描述，往往也被用作验证XML合法性的一个基础，但是XML&nbsp;DTD本身的合法性却缺少较好的验证机制，必需独立处理。XML&nbsp;Schema则不同，它与XML有着同样的合法性验证机制。&nbsp;</p>
<p>数据类型</p>
<p>或许，对于许多开发人员来讲，XML&nbsp;Schema与XML&nbsp;DTD相比的一个最显著的特征，就是其对数据类型的支持了。这完全是因为XML&nbsp;DTD提供的数据类型只有CDATA&nbsp;、Enumerated、NMTOKEN&nbsp;、NMTOKENS等十种内置（built-in）数据类型。这样少的数据类型通常无法满足文档的可理解性和数据交换的需要。XML&nbsp;Schema则不同，它内置了三十七种数据类型，如long，int，short，double等常用的数据类型，并通过将数据类型表示为由<em>value</em>&nbsp;space、lexical&nbsp;space和facet三部分组成的三元组而获得更大的灵活性。但是，&nbsp;XML&nbsp;Schema数据类型的真正灵活性来自于其对用户自定义类型的支持。XML&nbsp;Schema提供两种方式来实现数据类型的定义。</p>
<p>1)简单类型定义（simpleType），即在XML&nbsp;Schema内置的数据类型基础上或其它由XML&nbsp;Schema内置的数据类型继承或定义所得到的简单的数据类型（simpleType）基础上，通过restriction，list&nbsp;或者&nbsp;union方式定义新的数据类型。</p>
<p>例如：<br>源码1&nbsp;restriction方式的定义<br>&lt;simpleType&nbsp;name='Sku'&gt;<br>&lt;restriction&nbsp;base='string'&gt;<br>&lt;pattern&nbsp;<em>value</em>='\d{3}-[A-Z]{2}'/&gt;<br>&lt;/restriction&gt;<br>&lt;/simpleType&gt;<br>&nbsp;</p>
<p><br>源码2&nbsp;list方式的定义<br>&lt;simpleType&nbsp;name='listOfDouble'&gt;<br>&lt;list&nbsp;itemType='double'/&gt;<br>&lt;/simpleType&gt;<br>&nbsp;</p>
<p><br>源码3&nbsp;union方式的定义<br>&lt;xsd:attribute&nbsp;name="size"&gt;<br>&nbsp;&nbsp;&lt;xsd:simpleType&gt;<br>&nbsp;&nbsp;&nbsp;&lt;xsd:union&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&lt;xsd:simpleType&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;xsd:restriction&nbsp;base="xsd:positiveInteger"&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;xsd:minInclusive&nbsp;<em>value</em>="1"/&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;xsd:maxInclusive&nbsp;<em>value</em>="12"/&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/xsd:restriction&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&lt;/xsd:simpleType&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&lt;xsd:simpleType&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;xsd:restriction&nbsp;base="xsd:string"&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;xsd:enumeration&nbsp;<em>value</em>="month"/&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/xsd:restriction&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&lt;/xsd:simpleType&gt;<br>&nbsp;&nbsp;&nbsp;&lt;/xsd:union&gt;<br>&nbsp;&nbsp;&lt;/xsd:simpleType&gt;<br>&nbsp;&lt;/xsd:attribute&gt;<br>&nbsp;</p>
<p><br>2)&nbsp;复合类型定义（complexType），该方法提供了一种功能强大的复杂数据类型定义机制，可以实现包括结构描述在内的复杂的数据类型。下面是一个以complexType定义实现关系模式中表结构的例子，设有表T_C_Type（Psign，Count），其中Psign为CHAR数据类型，Count为NUMBER数据类型。则有：</p>
<p>源码4&nbsp;complexType定义&nbsp;<br>&lt;!--表结构类型定义--&gt;<br>&nbsp;&lt;complexType&nbsp;name="T_C_Type"&gt;<br>&nbsp;&nbsp;&lt;sequence&nbsp;minOccurs="0"&nbsp;maxOccurs="unbounded"&gt;<br>&nbsp;&nbsp;&nbsp;&lt;element&nbsp;name="Psign"&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&lt;complexType&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;simpleContent&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;restriction&nbsp;base="string"&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;attribute&nbsp;name="<em>value</em>"&nbsp;type="string"/&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/restriction&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/simpleContent&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&lt;/complexType&gt;<br>&nbsp;&nbsp;&nbsp;&lt;/element&gt;<br>&nbsp;&nbsp;&nbsp;&lt;element&nbsp;name="Count"&nbsp;minOccurs="0"&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&lt;complexType&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;complexContent&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;restriction&nbsp;base="anyType"&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;attribute&nbsp;name="<em>value</em>"&nbsp;type="int"&nbsp;use="optional"/&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/restriction&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/complexContent&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&lt;/complexType&gt;<br>&nbsp;&nbsp;&nbsp;&lt;/element&gt;<br>&nbsp;&nbsp;&lt;/sequence&gt;<br>&nbsp;&lt;/complexType&gt;<br>&nbsp;</p>
<p><br>不仅如此，XML&nbsp;Schema还允许元素的内容取空值，这一点可以扩大XML&nbsp;Schema对数据情况的描述范围，而XML&nbsp;DTD则无能为力。例如：</p>
<p>源码5&nbsp;XML&nbsp;Schema&nbsp;元素取空值的定义&nbsp;&lt;element&nbsp;name='test'&nbsp;nullable='true'/&gt;<br>&nbsp;</p>
<p><br>元素顺序的支持&nbsp;<br>XML&nbsp;DTD与XML&nbsp;Schema&nbsp;都支持对子元素节点顺序的描述，但XML&nbsp;DTD没有提供对于无序情况的描述，也就是如果以XML&nbsp;DTD来描述元素的无顺序出现情况，它必须采用穷举元素各种可能出现的排列顺序的方式来实现，这种方法不仅繁琐，有时甚至是不现实的。例如对于table的a，b子元素，如果希望它们以任意的顺序出现，用XML&nbsp;DTD来描述：</p>
<p>源码6&nbsp;a，b子元素任意顺序出现的XML&nbsp;DTD定义&nbsp;<br>&lt;?xml&nbsp;version="1.0"&nbsp;encoding="UTF-8"?&gt;<br>&lt;!ELEMENT&nbsp;ENTER_NAME_OF_ROOT_ELEMENT_HERE&nbsp;EMPTY&gt;<br>&lt;!ELEMENT&nbsp;table&nbsp;((a,b)|(b,a))&gt;<br>&lt;!ELEMENT&nbsp;a&nbsp;&nbsp;(#PCDATA)&gt;<br>&lt;!ELEMENT&nbsp;b&nbsp;(#PCDATA)&gt;</p>
<p>&nbsp;</p>
<p><br>XML&nbsp;Schema提供了&lt;all&gt;标记来描述这种情况：</p>
<p>源码7&nbsp;a，b子元素任意顺序出现的XML&nbsp;Schema定义&nbsp;<br>&lt;xsd:element&nbsp;name="a"&nbsp;type="xsd:string"/&gt;<br>&nbsp;&lt;xsd:element&nbsp;name="b"&nbsp;type="xsd:string"/&gt;<br>&nbsp;&lt;xsd:element&nbsp;name="table"&gt;<br>&nbsp;&nbsp;&lt;xsd:complexType&gt;<br>&nbsp;&nbsp;&nbsp;&lt;xsd:all&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&lt;xsd:element&nbsp;ref="a"/&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&lt;xsd:element&nbsp;ref="b"/&gt;<br>&nbsp;&nbsp;&nbsp;&lt;/xsd:all&gt;<br>&nbsp;&nbsp;&lt;/xsd:complexType&gt;<br>&nbsp;&lt;/xsd:element&gt;<br>&nbsp;</p>
<p><br>可见，用XML&nbsp;Schema来实现子元素的无序描述要简单的多。</p>
<p>命名空间&nbsp;<br>在XML中引入命名空间的目的是为了能够在一个XML文档中使用其它XML文档中的一些具有通用性的定义（通常是一些元素或数据类型等的定义），并保证不产生语义上的冲突。XML&nbsp;DTD并不能支持这一特性，这进一步限制了XML&nbsp;DTD的适用范围。而XML&nbsp;Schema则很好的满足了这一点。</p>
<p>并且，&nbsp;XML&nbsp;Schema还提供了include&nbsp;和&nbsp;import两种引用命名空间的方法。下面的例子中XML&nbsp;Schema文档引用了其它两个XML&nbsp;Schema的定义，通过使用import实现了混合使用不同命名空间的目的。例子中还定义了不同命名空间中元素之间的keyref约束。</p>
<p>源码8&nbsp;XML&nbsp;Schema对命名空间的使用&nbsp;<br>schema&nbsp;targetNamespace="<a class=contentlink href='http://202.117.84.144"/' target=_blank href_cetemp='http://202.117.84.144"/'><font color=#4455aa>http://202.117.84.144"</font></a><br>xmlns:xs="<a class=contentlink href='http://202.117.84.144"/' target=_blank href_cetemp='http://202.117.84.144"/'><font color=#4455aa>http://202.117.84.144"</font></a><br>xmlns="<a class=contentlink href='http://www.w3.org/2001/XMLSchema"' target=_blank href_cetemp='http://www.w3.org/2001/XMLSchema"'><font color=#4455aa>http://www.w3.org/2001/XMLSchema"</font></a><br>xmlns:a="<a class=contentlink href='http://202.117.84.228/middlewareSqlServer2000sqlservertest20211784228"' target=_blank href_cetemp='http://202.117.84.228/middlewareSqlServer2000sqlservertest20211784228"'><font color=#4455aa>http://202.117.84.228/middlewareSqlServer2000sqlservertest20211784228"</font></a><br>xmlns:b="<a class=contentlink href='http://202.117.84.228/middlewareOracle805ioracletest20211784144"' target=_blank href_cetemp='http://202.117.84.228/middlewareOracle805ioracletest20211784144"'><font color=#4455aa>http://202.117.84.228/middlewareOracle805ioracletest20211784144"</font></a>&nbsp;<br>elementFormDefault="qualified"&gt;<br>&lt;import&nbsp;namespace="<a class=contentlink href='http://202.117.84.228/middlewareSqlServer2000sqlservertest20211784228"' target=_blank href_cetemp='http://202.117.84.228/middlewareSqlServer2000sqlservertest20211784228"'><font color=#4455aa>http://202.117.84.228/middlewareSqlServer2000sqlservertest20211784228"</font></a>&nbsp;<br>&nbsp;schemaLocation="F:\xml&nbsp;schema\middlewareSqlServer2000sqlservertest20211784228.xsd"/&gt;<br>&lt;import&nbsp;namespace="<a class=contentlink href='http://202.117.84.228/middlewareOracle805ioracletest20211784144"' target=_blank href_cetemp='http://202.117.84.228/middlewareOracle805ioracletest20211784144"'><font color=#4455aa>http://202.117.84.228/middlewareOracle805ioracletest20211784144"</font></a><br>&nbsp;schemaLocation="F:\xml&nbsp;schema\middlewareOrcal805ioracletest20211784144.xsd"/&gt;<br>&nbsp;&lt;annotation&gt;<br>&nbsp;&nbsp;&lt;documentation&nbsp;xml:lang="cn"&gt;<br>&nbsp;&nbsp;&nbsp;schema&nbsp;for&nbsp;Middleware<br>&nbsp;&nbsp;&nbsp;Copyright&nbsp;2001&nbsp;Zhou&nbsp;Jingtao.&nbsp;All&nbsp;rights&nbsp;reserved.<br>&nbsp;&nbsp;&lt;/documentation&gt;<br>&nbsp;&lt;/annotation&gt;<br>&nbsp;&lt;element&nbsp;name="CombineDatabase"&gt;<br>&nbsp;&nbsp;&lt;complexType&gt;<br>&nbsp;&nbsp;&nbsp;&lt;sequence&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&lt;element&nbsp;name="CombinGlobeSchema"&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;complexType&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;sequence&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;element&nbsp;ref="a:H-Database"/&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;element&nbsp;ref="b:H-Database"/&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/sequence&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/complexType&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;keyref&nbsp;name="SqlServerTest_T_C_Psign"&nbsp;refer="b:gz_jgxx_ID_pk"&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;selector&nbsp;xpath="a:H-Database/a:SqlServerTest/a:T_C/a:Count"/&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;field&nbsp;xpath="@<em>value</em>"/&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/keyref&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&lt;/element&gt;<br>&nbsp;&nbsp;&nbsp;&lt;/sequence&gt;<br>&nbsp;&nbsp;&lt;/complexType&gt;<br>&nbsp;&lt;/element&gt;<br>&lt;/schema&gt;<br>&nbsp;</p>
<p><br>对于API的支持&nbsp;<br>在掌握和使用XML技术时，DOM和SAX可能是技术人员最常使用到的XML&nbsp;API。DOM和SAX只对XML实例文档有效，虽然可以通过它们实现以XML&nbsp;DTD来验证XML文档,但是DOM和SAX却没有提供解析XML&nbsp;DTD文档内容的功能，也就是说我们无法通过DOM或SAX来得到DTD中元素、属性的声明和约束的描述。但是在基于XML+DTD的数据交换过程中，一些应用程序需要得到DTD本身的描述内容和结构，以方便对XML文档中数据的处理，例如在使用关系数据库存储XML&nbsp;文档的过程中就涉及到如何将XML&nbsp;DTD映射为关系模式描述的问题。为了实现对XML&nbsp;DTD的解读，研究人员必须为XML&nbsp;DTD开发新的接口或者专用工具，带来了很大的不便。</p>
<p>由于XML&nbsp;Schema本身就是一个XML&nbsp;文档，所以我们可以通过使用DOM、SAX或JDOM等XML&nbsp;API很容易的解析XML&nbsp;Schema，这就实现了XML文档与其描述模式处理方式的一致性，利于数据的传输和交换。</p>
<p>更加清晰的属性出现情况的限制、以及缺省值和枚举&nbsp;<br>XML&nbsp;DTD以关键字#IMPlIED、#FIXED和#REQUIRED来指定属性是否出现，并支持属性缺省值的定义。XML&nbsp;Schema则提供了更明确的标记来实现清晰易懂的表示。XML&nbsp;Schema废弃了XML&nbsp;DTD的#IMPlIED，不再支持属性的隐含状态，而要求必须给出明确的状态，并以prohibited来表示属性的禁用。对于缺省值的表达则更为直观，用default来直接给出。</p>
<p>源码9&nbsp;XML&nbsp;DTD&nbsp;、XML&nbsp;Schema对属性出现情况的限制&nbsp;<br>&lt;!ATTLIST&nbsp;TestDTD&nbsp;testAr1&nbsp;CDATA&nbsp;&nbsp;#IMPLIED&gt;<br>&lt;!ATTLIST&nbsp;TestDTD&nbsp;testAr2&nbsp;CDATA&nbsp;&nbsp;#REQUIRED&gt;<br>&lt;!ATTLIST&nbsp;TestDTD&nbsp;testAr3&nbsp;CDATA&nbsp;&nbsp;#FIXED&nbsp;"3"&gt;<br>&lt;!ATTLIST&nbsp;TestDTD&nbsp;testAr4&nbsp;CDATA&nbsp;&nbsp;"3"&gt;</p>
<p>&lt;xsd:attribute&nbsp;name="TestAr1"&nbsp;type="xsd:string"&nbsp;use="optional"&nbsp;default="3"/&gt;<br>&lt;xsd:attribute&nbsp;name="TestAr2"&nbsp;type="xsd:string"&nbsp;use="prohibited"/&gt;<br>&lt;xsd:attribute&nbsp;name="TestAr3"&nbsp;type="xsd:string"&nbsp;use="required"&nbsp;fixed="3"/&gt;<br>&nbsp;</p>
<p><br>对于XML&nbsp;Schema在枚举方面的改进，请参见参考资料中"XML&nbsp;问题&nbsp;#7&nbsp;W3C&nbsp;XML&nbsp;Schema&nbsp;与文档类型定义&nbsp;(DTD)&nbsp;比较"一文（文献9）。</p>
<p>注释&nbsp;<br>XML&nbsp;DTD和XML&nbsp;Schema都支持&lt;!-注释内容--&gt;这样的注释方法，但是XML&nbsp;Schema提供了更灵活和有用的注释方式：documentation和appinfo。它们提供了面向读者和应用的注释。</p>
<p>源码10&nbsp;XML&nbsp;Schema的注释<br>&lt;xsd:annotation&gt;<br>&lt;xsd:documentation&gt;面向用户和应用的注释&lt;/xsd:documentation&gt;<br>&lt;xsd:appinfo&gt;<br>//这是一段C语言代码。<br>#include&nbsp;stdio.h<br>void&nbsp;main()<br>{<br>int&nbsp;i,j;<br>i&nbsp;=1;<br>j=i+1;<br>}<br>&lt;/xsd:appinfo&gt;<br>&nbsp;</p>
<p><br>对数据库的支持&nbsp;<br>目前如何将关系数据表示为XML数据和如何实现基于关系数据库的XML数据存储、查询和更新已经成为了研究的热点。Deutsh，Florescu[5]，Kossman[5]，Shanmugasundaram[6,7]和D&nbsp;W&nbsp;Lee[8]等人都在XML与关系数据的相互转化问题方面作了较深入的研究。然而由于XML&nbsp;Schema成为正式推荐标准的时间较晚，加之XML&nbsp;DTD语法相对简单，所以现在大部分的研究和应用都是基于XML&nbsp;DTD展开的。但是，XML&nbsp;DTD在对关系数据的描述方面明显存在着不足，例如XML&nbsp;DTD有限的数据类型根本无法完成对关系数据数据类型的一一映射，也无法实现大部分的数据规则的描述。XML&nbsp;Schema提供了更多的内建数据类型，并支持用户对数据类型的扩展，基本上满足了关系模式在数据描述上的需要，这一点可以作为XML&nbsp;Schema比XML&nbsp;DTD更适合描述关系数据的一个主要的原因。&nbsp;</p>
<p>一个结论&nbsp;<br>通过比较，可以看出，XML&nbsp;Schema比XML&nbsp;DTD具有更强的表现力，能够更好的满足不同领域应用的需求。那么，是不是可以说XML&nbsp;DTD会很快被XML&nbsp;Schema替代并最终消失呢。从作者的观点来看，XML&nbsp;Schema虽然在大多数的应用领域都有替代XML&nbsp;DTD的趋势，但是XML&nbsp;DTD仍然有它的适用范围，并不可能被XML&nbsp;Schema完全替代：&nbsp;</p>
<p>XML&nbsp;DTD是作为XML&nbsp;标准的一部分发布的，W3C似乎并没有准备将其从XML标准中废除掉，对于XML&nbsp;DTD的支持还将持续。&nbsp;<br>目前大多数的面向XML应用，都对XML&nbsp;DTD做了很好的支持，XML&nbsp;DTD的工具也相对较为成熟，一般情况下，这些应用和工具并不会选择以XML&nbsp;Schema替换XML&nbsp;DTD的方式对其升级，更多的选择应该是二者都支持。当然，对于那些对数据交换或者描述能力要求较高、XML&nbsp;DTD已不能满足功能需求的应用来说，以XML&nbsp;Schema来代替XML&nbsp;DTD已经成为一种必然趋势。&nbsp;<br>当前大多数与XML&nbsp;模式相关的算法研究都是基于XML&nbsp;DTD展开的，作为一种研究的延续，并不会放弃XML&nbsp;DTD的研究成果，但是，针对XML&nbsp;Schema的研究将会成为一个新的热点。&nbsp;<br>在一些相对要求简单的处理环境中，XML&nbsp;DTD仍然会占有它的一席之地。&nbsp;<br>同其他技术的发展一样，由于新标准的出现，XML&nbsp;DTD的作用会逐渐减弱，但正如层次数据库在今天仍然在使用一样，&nbsp;对XML&nbsp;Schema是否会完全替代XML&nbsp;DTD做一个结论似乎为时过早。&nbsp;</p>
<p>所以，作为一种强有力的标准，XML&nbsp;Schema作为XML模式的主流已经成为一种趋势；但作为一种最简单的XML模式，XML&nbsp;DTD也还将会在一段时间内发挥它应有的作用。<br></p>
<img src ="http://www.blogjava.net/orangelizq/aggbug/130272.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/orangelizq/" target="_blank">桔子汁</a> 2007-07-14 14:44 <a href="http://www.blogjava.net/orangelizq/archive/2007/07/14/130272.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>