想了解webservice的原理及概念的新动态吗?本文将为您提供详细的信息,我们还将为您解答关于webservice基本原理的相关问题,此外,我们还将为您介绍关于PHP使用SOAP扩展实现WebSer
想了解webservice的原理及概念的新动态吗?本文将为您提供详细的信息,我们还将为您解答关于webservice基本原理的相关问题,此外,我们还将为您介绍关于PHP使用SOAP扩展实现WebService的方法 webservice视频教程 c# webservice php webservice、Spring的WebServiceTemplate访问WebService的方法及其本质原理、webService 原理及概念、WebService 学习总结(二)--WebService 相关概念介绍的新知识。
本文目录一览:- webservice的原理及概念(webservice基本原理)
- PHP使用SOAP扩展实现WebService的方法 webservice视频教程 c# webservice php webservice
- Spring的WebServiceTemplate访问WebService的方法及其本质原理
- webService 原理及概念
- WebService 学习总结(二)--WebService 相关概念介绍
webservice的原理及概念(webservice基本原理)
webservice的原理及概念
1 webservice
所谓webservice就是定义了一套标准的调用过程:
a 服务器首先用一套标准的方法向外界描述它所提供的服务的内容,就属于WSDL
b 客户端需要以一种标准的协议来调用此服务,这属于SOAP.
c 服务提供者将服务内容放在一个公共的网址让大家查询,就属于uddi.
2 命名空间
命名空间其主要目的通过加一个命名属性,使名称保持唯一性。WSDL有大量的使用
命名空间的地方。本质上WSDL是一个XML文件,作为一个XML文件,为了区别同名的元素,就需要采用命名空间的概念。
3 WSDL的本质:服务内容的标准化描述
WSDL的全称是web service Description Language,是一种基于XML格式的关于web服务
的描述语言。其主要目的在于web service的提供者将自己的web服务的所有相关内
容,如所提供的服务的传输方式,服务方法接口,接口参数,服务路径等,生成相应
的完全文档,发布给使用者。使用者可以通过这个WSDL文档,创建相应的SOAP请求消息
,通过HTTP传递给webservice提供者;web服务在完成服务请求后,将SOAP返回消息
传回请求者,服务请求者再根据WSDL文档将SOAP返回消息解析成自己能够理解的内容。
4 SOAP的本质:标准的传输协议
SOAP是web service的标准通信协议,SOAP为simple object access protocoll的
缩写,简单对象访问协议. 它是一种标准化的传输消息的XML消息格式。
5 uddi的本质:服务的公共网址
将web service进行uddi注册发布,uddi是一种创建注册表服务的规范,以便大家将自己的
web service进行注册发布供使用者查找.
然而当服务提供者想将自己的web service向全世界公布,以便外部找到其服务时,那么
服务提供者可以将自己的web service注册到相应的uddi商用注册网站,目前全球有
IBM等4家uddi商用注册网站。
因为WSDL文件中已经给定了web service的地址URI,外部可以直接通过WSDL提供的
URI进行相应的web service调用。所以uddi并不是一个必需的web service组件,服务
方完全可以不进行uddi的注册。
Web 服务有两层含义:1、是指封装成单个实体并发布到网络上的功能集合体;2、是指功能集合体被调用后所提供的服务。
Web Service 是为其它应用提供数据和服务的应用逻辑单元,应用程序通过标准的Web 协议和数据格式获得Web Service,如HTTP 、XML 和SOAP 等,每个Web Service 的实现是完全独立的。
简单地讲,Web 服务是一个URL 资源,客户端可以通过编程方式请求得到它的服务,而不需要知道所请求的服务是怎样实现的,这一点与传统的分布式组件对象模型不同。
Web 服务的体系结构是基于Web 服务提供者、Web 服务请求者、Web 服务中介者三个角色和发布、发现、绑定三个动作构建的。简单地说,Web 服务提供者就是Web 服务的拥有者,它耐心等待为其他服务和用户提供自己已有的功能;Web 服务请求者就是Web 服务功能的使用者,它利用SOAP 消息向Web 服务提供者发送请求以获得服务;Web 服务中介者的作用是把一个Web 服务请求者与合适的Web 服务提供者联系在一起,它充当管理者的角色,一般是uddi 。这三个角色是根据逻辑关系划分的,在实际应用中,角色之间很可能有交叉:一个Web 服务既可以是Web 服务提供者,也可以是Web 服务请求者,或者二者兼而有之。显示了Web 服务角色之间的关系: 其中,“发布”是为了让用户或其他服务知道某个Web 服务的存在和相关信息; “查找(发现)”是为了找到合适的Web 服务; “绑定”则是在提供者与请求者之间建立某种联系。
图1 Web 服务角色的相互关系
实现一个完整的Web 服务包括以下步骤:
◆ Web 服务提供者设计实现Web 服务,并将调试正确后的Web 服务通过Web 服务中介者发布,并在uddi 注册中心注册 ; (发布)
◆ Web 服务请求者向Web 服务中介者请求特定的服务,中介者根据请求查询 uddi 注册中心,为请求者寻找满足请求的服务; (发现)
◆ Web 服务中介者向Web 服务请求者返回满足条件的Web 服务描述信息,该描述信息用WSDL 写成,各种支持Web 服务的机器都能阅读;(发现)
◆ 利用从Web 服务中介者返回的描述信息生成相应的SOAP 消息,发送给Web 服务提供者,以实现Web 服务的调用;(绑定)
◆ Web 服务提供者按SOAP 消息执行相应的Web 服务,并将服务结果返回给Web 服务请求者。(绑定)
一、webservice概述
简单的说webservice就是一些站点开放一些服务出来,也可以是你自己开发的service,也就是一些方法,通过URL,指定某一个方法名,发出请求,站点的这个服务(方法),接收请求后,根据传入的参数做一些处理,然后将处理后的结果以XML形式返回给你,你的程序就解析这些XML参数,然后显示出来或做其他操作。
例如:很多大的站点提供有天气预报的webservice、查询某网站的数据的webservice,只要你发送请求过来,它就返回天气预报、某网站的数据,然后你把结果显示处来。
二、webservice的用途和好处
实际上,webservice的主要目标是跨平台的可互操作性,为了达到这个目标,webservice完全基于XML(可扩展标记语言)、XSD(XMLSchema)等独立于平台、独立于软件供应商的标准,是创建可互操作行、分布式应用程序的新平台,由此可以看出,在以下三种情况下,使用webservice会带来极大的好处。
三、Web Service的几个很重要的概念
1、SOAP
2、SOAP是Web Service的基本通信协议。因为SOAP与DCOM和CORBA在概念上有相同之处,所以很多人在问:“SOAP是怎样激活对象的?”或“SOAP在使用什么命名服务(Naming Service)?”。或许在执行SOAP的过程当中会用到这些,但这些并不在SOAP规范要考虑的范畴之内。SOAP只是定义SOAP消息的XML格式(XML Format),如果你用一对SOAP标记(SOAP Elements)把XML文档括起来,那么这个就是一个SOAP消息,这不是很简单吗?
SOAP规范还定义了怎样用XML来描述程序数据(Program Data),怎样执行RPC(Remote Procedure Call)。这些可选的规范是为了构建RPC-style的应用程序(客户端SOAP消息包含函数名和在函数中用到的参数,而服务器端SOAP消息包含执行函数之后的结果)。大多数SOAP解决方案都支持RPC-style应用程序,因为很多程序员已对DCOM或CORBA熟悉。SOAP还支持Document-style应用程序(SOAP消息只包含XML文本信息)。Document-style应用程序有很好的灵活性,所以很多用RPC很难构建的Web Service用这种方式构建。
最后SOAP规范还定义了HTTP消息是怎样传输SOAP消息的。这并不代表SOAP只能用HTTP来作为传输协议,MSMQ、SMTP、TCP/IP都可以做SOAP的传输协议。
很多大公司根据SOAP规范,都开发出了自己的SOAP解决方案。这些解决方案都是相对于某种语言。比如说Microsoft SOAP toolkit2.0把COM函数转换成SOAP消息,而Apache toolkit把JAVA函数转换成SOAP消息。这样难免带来一些兼容性问题。
现在SOAP的很多另人瞩目的特性已成为现实(SOAP已经运行于不同的硬件和软件平台),而且有70多个解决方案。之所以SOAP被人们所爱戴,是因为SOAP比其他同类技术(CORBA、DCE)简单易用。
安全性对于应用程序来说是很重要的。那么SOAP的安全性如何呢?对于把HTTP作为传输协议的SOAP来说是没有问题的,因为HTTP协议已经有很好的安全构架。那么用其他传输协议会出现安全问题吗?不是的,你不必担心,因为已经有这方面的规范了。
2、WSDL WSDL是一种XML文档,它定义SOAP消息和这些消息是怎样交换的。IDL(Interface Description Language)是用于COM和CORBA的,WSDL是用于SOAP的。WSDL是一种XML文档,所以我们可以阅读和编辑,但很多时候是用工具来创建、由程序来阅读。 举个例子,你要使用供应商的Web Service构建应用程序。你可以向供应商索取使用Web Service的范例,然后按照范例来构建应用程序。这样可能出现意料不到的错误,比如说,你在程序中使用的客户代码的数据类型是integer,而供应商使用的数据类型是string.。WSDL详细定义客户端消息的格式,需要什么样的参数,这样可以避免不必要的错误。 3、 uddi uddi可以比喻成电话本,电话本里记录的是电话信息,而uddi记录的是Web Service信息。你可以不把Web Service注册到uddi。但如果要让全球的人知道你的Web Service,最好还是注册到uddi。 uddi目录说明文件也是一个XML文档,它包括三个部分。“白页(White Paper)”说明提供Web Service的公司(人)信息,比如说名称、地址和联系方式等等。“黄页(Yellow Paper)”说明uddi目录的分类,比如说金融、服务和印刷等等。“绿页(green Paper)”说明接口(Web Service 提供的)的详细信息。uddi提供多种查询方式,来帮助你找到需要的Web Service。如果你查询与财务有关的Web Service,那么uddi会提供详细的信息。
PHP使用SOAP扩展实现WebService的方法 webservice视频教程 c# webservice php webservice
Spring的WebServiceTemplate访问WebService的方法及其本质原理
WebService客户端调用的本质就是将SAOP格式的XML通过通信协议发送到WebService的服务器端,然后接收服务器端返回的XML.
本文简单介绍一下如何通过Spring提供的WebServiceTemplate访问Webservice,WebServiceTemplate与调用webservice的客户端已及webservice服务器端示意图如下(图片来源于Spring in Action):
这里以SOAP over HTTP为例,开发步骤如下:
1,在Spring的配置文件中配置WebServiceTemplate,最简单的配置如下:
<bean id="webServiceTemplate"> <property name="defaultUri" value="http://localhost:8080/prjCXFWS/services/SimpleServicePort"/> </bean>*这种配置省略了MessageFactory和messageSender的配置,Spring默认会使用SaajSoapMessageFactory和HttpUrlConnectionMessageSender.等同于下面的配置
<bean id="messageFactory"/> <bean id="webServiceTemplate"> <constructor-arg ref="messageFactory"/> <property name="messageSender"> <bean/> </property> <property name="defaultUri" value="http://localhost:8080/prjCXFWS/services/SimpleServicePort" /> </bean>还可以使用CommonsHttpMessageSender作为messageSender,它提供了设置timeout,用户名,密码等选项的功能.(需要使用commons-httpclient.jar和commons-codec.jar)
MessageFactory还可以使用AxiomSoapMessageFactory和DomPoxMessageFactory.
<bean id="webServiceTemplate"> <property name="messageSender"> <bean> <property name="readTimeout" value="0" /> </bean> </property> <property name="defaultUri" value="http://localhost:8080/prjCXFWS/services/SimpleServicePort" /> </bean>2,Java调用代码:传输的是SOAP XML.
private static final String MESSAGE = "<queryPeopleByID xmlns=\"http://test.cxfws.com\">1231ss</queryPeopleByID> "; public static void test() { ApplicationContext ac = new ClassPathXmlApplicationContext("conf/wsAppcontext.xml"); WebServiceTemplate simpleService = (WebServiceTemplate) ac.getBean("webServiceTemplate"); StreamSource source = new StreamSource(new StringReader(MESSAGE)); StreamResult result = new StreamResult(System.out); simpleService.sendSourceAndReceiveToResult(source, result); }*MESSAGE为需要发送到webservice服务器端的XML payload内容,SOAP body之内的XML内容.
Spring调用Webservice的另一种方法是通过Spring提供的JaxWsPortProxyFactoryBean,示意图如下(图片来源于Spring in Action):
Spring的配置如下:
<bean id="simpleService"> <property name="serviceInterface" value="com.cxfclient.test.SimpleService" /> <property name="wsdlDocumentUrl" value="http://localhost:8080/prjCXFWS/services/SimpleServicePort?WSDL" /> <property name="namespaceUri" value="http://test.cxfws.com/" /> <property name="serviceName" value="SimpleServiceService" /> <property name="portName" value="SimpleServicePort" /> </bean>
**这种方式需要用工具通过Webservice 的wsdl文件生成客户端需要的一些Java类,如service的interface,参数类等等(如下面代码中的SimpleService,People类).
Java调用代码如下
ApplicationContext ac = new ClassPathXmlApplicationContext("conf/wsAppcontext.xml"); SimpleService simpleService = (SimpleService) ac.getBean("simpleService"); People people = simpleService.queryPeopleByID("test"); System.out.println(people.getAge() + people.getName() + people.getPid());关于更多客户端如何调用webservice,参照http://blog.csdn.net/kkdelta/article/details/3987591
对于服务器端,其本质也是接收符合SOAP规范的XML消息,解析XML,返回符合SOAP规范的XML,这里用一个servlet模拟webservice,代码如下:
public class WSSimulator extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException { System.out.println("doGet"); BufferedReader in = new BufferedReader(new InputStreamReader( request.getInputStream())); String str; while ((str = in.readLine()) != null) { System.out.println(str); ##1 } in.close(); String soapHeader = "<SOAP-ENV:Envelope xmlns:SOAP-ENV=\"http://schemas.xmlsoap.org/soap/envelope/\">" +"<SOAP-ENV:Header/><SOAP-ENV:Body>"; String soapPayload = "<xxx>yyy</xxx>"; String soapTail = "</SOAP-ENV:Body></SOAP-ENV:Envelope>"; response.getWriter().write(soapHeader + soapPayload + soapTail); ##2 } public void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException { System.out.println("doPost"); doGet(request, response); } }通过WebServiceTemplate将消息发送到这个servlet监听的url,可以更深理解Webservice的本质.
##1 str就是从客户端传输到服务器端的XML.##2将SOAP消息返回给客户端.
更多服务器端webservice的开发请参照http://blog.csdn.net/kkdelta/article/details/3984312
原文链接: http://blog.csdn.net/kkdelta/article/details/7290769
webService 原理及概念
webservice的原理及概念
1 webservice
所谓webservice就是定义了一套标准的调用过程:
a 服务器首先用一套标准的方法向外界描述它所提供的服务的内容,就属于WSDL
b 客户端需要以一种标准的协议来调用此服务,这属于SOAP.
c 服务提供者将服务内容放在一个公共的网址让大家查询,就属于uddi.
2 命名空间
命名空间其主要目的通过加一个命名属性,使名称保持唯一性。WSDL有大量的使用命名空间的地方。本质上WSDL是一个XML文件,作为一个XML文件,为了区别同名的元素,就需要采用命名空间的概念。
3 WSDL的本质:服务内容的标准化描述
WSDL的全称是web service Description Language,是一种基于XML格式的关于web服务的描述语言。其主要目的在于web service的提供者将自己的web服务的所有相关内容,如所提供的服务的传输方式,服务方法接口,接口参数,服务路径等,生成相应的完全文档,发布给使用者。使用者可以通过这个WSDL文档,创建相应的SOAP请求消息,通过HTTP传递给webservice提供者;web服务在完成服务请求后,将SOAP返回消息传回请求者,服务请求者再根据WSDL文档将SOAP返回消息解析成自己能够理解的内容。
4 SOAP的本质:标准的传输协议
SOAP是web service的标准通信协议,SOAP为simple object access protocoll的缩写,简单对象访问协议. 它是一种标准化的传输消息的XML消息格式。
5 uddi的本质:服务的公共网址
将web service进行uddi注册发布,uddi是一种创建注册表服务的规范,以便大家将自己的web service进行注册发布供使用者查找.然而当服务提供者想将自己的web service向全世界公布,以便外部找到其服务时,那么服务提供者可以将自己的web service注册到相应的uddi商用注册网站,目前全球有IBM等4家uddi商用注册网站。因为WSDL文件中已经给定了web service的地址URI,外部可以直接通过WSDL提供的URI进行相应的web service调用。所以uddi并不是一个必需的web service组件,服务方完全可以不进行uddi的注册。
WebService 学习总结(二)--WebService 相关概念介绍
一、WebService 是什么?
1. 基于 Web 的服务:服务器端整出一些资源让客户端应用访问(获取数据)
2. 一个跨语言、跨平台的规范(抽象)
3. 多个跨平台、跨语言的应用间通信整合的方案(实际)
二、为什么要用 Web service?
web service 能解决:
跨平台调用
跨语言调用
远程调用
三、什么时候使用 web Service?
1. 同一家公司的新旧应用之间
2. 不同公司的应用之间
3. 一些提供数据的内容聚合应用:天气预报、股票行情
四、Web Service 中的几个重要术语
4.1、WSDL(web service definition language)
WSDL 是 webservice 定义语言,对应.wsdl 文档,一个 webservice 会对应一个唯一的 wsdl 文档,定义了客户端与服务端发送请求和响应的数据格式和过程
4.2、SOAP(simple object access protocal)
SOAP 是 " 简单对象访问协议 "
是一种简单的、基于 HTTP 和 XML 的协议 , 用于在 WEB 上交换结构化的数据
soap 消息:请求消息和响应消息
4.3、SEI(WebService EndPoint Interface)
SEI 是 web service 的终端接口,就是 WebService 服务器端用来处理请求的接口
4.4、CXF(Celtix + XFire)
一个 apache 的用于开发 webservice 服务器端和客户端的框架。
今天关于webservice的原理及概念和webservice基本原理的讲解已经结束,谢谢您的阅读,如果想了解更多关于PHP使用SOAP扩展实现WebService的方法 webservice视频教程 c# webservice php webservice、Spring的WebServiceTemplate访问WebService的方法及其本质原理、webService 原理及概念、WebService 学习总结(二)--WebService 相关概念介绍的相关知识,请在本站搜索。
本文标签: