﻿<?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-juanshuchun-文章分类-Web Services</title><link>http://www.blogjava.net/juanshuchun/category/27961.html</link><description /><language>zh-cn</language><lastBuildDate>Fri, 07 Dec 2007 20:14:24 GMT</lastBuildDate><pubDate>Fri, 07 Dec 2007 20:14:24 GMT</pubDate><ttl>60</ttl><item><title>Xfire</title><link>http://www.blogjava.net/juanshuchun/articles/166129.html</link><dc:creator>*一凡*</dc:creator><author>*一凡*</author><pubDate>Fri, 07 Dec 2007 12:35:00 GMT</pubDate><guid>http://www.blogjava.net/juanshuchun/articles/166129.html</guid><description><![CDATA[<a href="http://baike.baidu.com/pic/93/11867130522729567.jpg" target="_blank"><img title="点击查看大图" alt="" hspace="5" src="http://baike.baidu.com/pic/93/11867130522729567_small.jpg" align="right" vspace="5" border="0" /></a> XFire是新一代的Java Web服务引擎，XFire<span style="color: red"><strong>使得在JavaEE应用中发布Web服务变得轻而易举</strong></span>。和其他Web服务引擎相比，XFire的配置非常简单，可以非常容易地和Spring集成，它使得Java开发人员终于可以获得和.Net开发人员一样的开发效率。<br />
<br />
由于使用了StAX（the Streaming API for XML，基于流的XML解析）作为XML解析器，XFire的运行速度又有了质的提高，并且XFire支持最新的JSR 181的Web服务注解。如果使用Java 5，只需要在源代码中编写相应的JSR 181注解，XFire就可以根据Java 5注解自动提取所需的全部信息。由于JSR 181也是JavaEE Web服务标准的一部分，使用它最大的好处在于不仅极大地简化了配置，而且避免了配置文件和某个特定的Web服务引擎的锁定
 <img src ="http://www.blogjava.net/juanshuchun/aggbug/166129.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/juanshuchun/" target="_blank">*一凡*</a> 2007-12-07 20:35 <a href="http://www.blogjava.net/juanshuchun/articles/166129.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Web Services 简介</title><link>http://www.blogjava.net/juanshuchun/articles/166125.html</link><dc:creator>*一凡*</dc:creator><author>*一凡*</author><pubDate>Fri, 07 Dec 2007 12:15:00 GMT</pubDate><guid>http://www.blogjava.net/juanshuchun/articles/166125.html</guid><description><![CDATA[<strong>Web Services </strong>是一种构建应用程序的普通模型，并能在所有支持 Internet 通讯的操作系统上实施运行。Web Services 令基于组件的开发和 Web 的结合达到最佳，基于组件的对象模型，如：Distributed Component Object Model(DCOM)、Remote Method Invocation(RMI)，Internet Inter-Orb Protocol(IIOP)都已经发布了很长时间了，但是这些模型都依赖于特殊对象模型协议，而 Web Services 利用 SOAP 和 XML<br />
对这些模型在通讯方面作了进一步的扩展以消除特殊对象模型的障碍。<br />
&nbsp;&nbsp;Web Services 主要利用 HTTP 和 SOAP 协议是商业数据在 Web 上传输，SOAP通过 HTTP 调用商业对象执行远程功能调用，Web 用户能够使用 SOAP 和 HTTP通过 Web 调用的方法来调用远程对象.<br />
<br />
<strong>Web Services 结构</strong><br />
<br />
客户根据 WSDL 描述文档，会生成一个 SOAP 请求消息。Web Services 都是放在Web服务器（如IIS）后面，客户生成的SOAP请求会被嵌入在一个HTTP POST请求中，发送到 Web 服务器来。Web 服务器再把这些请求转发给 Web Services 请求处理器。请求处理器的作用在于，解析收到的 SOAP 请求，调用 Web Services，<br />
然后再生成相应的 SOAP 应答。Web 服务器得到 SOAP 应答后，会再通过 HTTP应答的方式把信息送回到客户端。<br />
<br />
<strong>Web Services 体系</strong><br />
<br />
Web Services 体系主要包括以下几个方面：<br />
① Web Services 组件。包括 3 种组件：<br />
服务提供者：提供服务，进行注册以使服务可用；<br />
服务代理：服务交换所，服务提供者和服务请求者之间的媒体；<br />
服务请求者：向服务代理请求服务，调用这些服务创建应用程序。<br />
② Web Services 操作。包括 3 种操作：<br />
&nbsp;&nbsp;&nbsp;&nbsp;发布/不发布(Publish/Unpublish)：提供者向代理发布（注册）服务或不发布（移<br />
&nbsp;&nbsp;&nbsp;&nbsp;去）这些服务的注册；<br />
发现(Find)：由服务请求者向服务代理执行 find 操作，服务请求者描述要找的<br />
服务，服务代理分发匹配的结果；<br />
绑定(Bind)：在服务请求者和服务提供者之间绑定，这两部分协商以使请求者<br />
可以访问和调用提供者的服务。<br />
③ UDDI——通用发现、描述和整合。<br />
这是一个Web Services的信息注册规范,基于UDDI的Web Services注册可以被发现 UDDI 的发现方法是：在 Web 上有一种分布的注册服务，商务和服务以一种通用的 XML 格式描述，XML 中的结构化数据易于发现、分析和操作。<br />
④ WSDL——Web 服务描述语言。<br />
Web 服务描述言语(WSDL)是一种 XML 语法，为服务提供者提供了描述构建在不同协议或编码方式之上的 Web Services 请求基本格式的方法。<strong><span style="color: red"><strong>WSDL 用来描述一个 Web Services 能做什么，它的位置在哪里，如何调用它等。在假定以SOAP/HTTP/MIME 作为远程对象调用机制的情况下，WSDL 会发挥最大作用</strong>。</span></strong>UDDI 注册描述了 Web Services 绝大多数方面，包括服务的绑定细节。WSDL 可以看作是 UDDI 服务描述的子集。<br />
WSDL 将服务定义为一个网络端点的集合，或者说端口的集合。在 WSDL 里面，端点及消息的抽象定义与它们具体的网络实现和数据格式绑定是分离的。这样就可以重用这些抽象定义：消息，需要交换的数据的抽象描述；端口类型，操作的抽象集合。针对一个特定端口类型的具体协议和数据格式规范构成一个可重用的绑定。一个端口定义成网络地址和可重用的绑定的连接，端口的集合定义为服务。因此一个 WSDL 文档在定义网络服务的时候使用如下的元素：<br />
类型——使用某种的类型系统（如 XSD）定义数据类型的容器；<br />
消息——通讯数据抽象的有类型的定义；<br />
操作——服务支持动作的抽象描述；<br />
端口类型——一个操作的抽象集合，该操作由一个或多个端点支持；<br />
绑定——针对一个特定端口类型的具体协议规范和数据格式规范；<br />
端口——一个单一的端点，定义成一个绑定和一个网络地址的链接；<br />
服务——相关端点的集合。<br />
所以不难看出，WSDL 给客户提供了一个模板，方便客户描述和绑定服务 <br />
 <img src ="http://www.blogjava.net/juanshuchun/aggbug/166125.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/juanshuchun/" target="_blank">*一凡*</a> 2007-12-07 20:15 <a href="http://www.blogjava.net/juanshuchun/articles/166125.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>