WebService简单介绍
Web Service是什么?Web Service并不是一个新的概念,由于早期带宽与存储容量的限制,令它并不被人关注。但是随着带宽与存储容量已经不会构成问题了之后,Web Service逐渐成为了分布式应用中的首选。 Web?Service的使用一个标准的输出接口来定义代码提供的功能,以便让外界可以通过这个标准的输出接口来调用,而所谓的标准输出接口就是WSDL。 通过Web?Service,可以实现不同系统间的交互功能。 Web?Service根据我的理解就是一个可以远程调用的类,或者说是组件。 Web Service涉及的概念要想进一步理解Web Service,就要理解Web Service所涉及的一些概念:WSDL、WSDD、SOAP。 在传统的分布式系统中,会提供一种语言来描述server端提供的接口信息(如COBAR中的IDL语言)。同样的,Web?Service平台也必须提供一种标准来描述Web?Service,让客户可以得到足够的信息来调用这个Web?Service。 可扩展的标记语言(XML)是Web?Service平台中表示数据的基本格式。但这只是基础,你还需要向别人描述你提供的接口,WSDL就是这样一个基于XML的语言,用于描述Web Service及其函数、参数和返回值。利用Eclipse这样的开发工具可以根据你的Web Service生成WSDL文档,也可以导入WSDL文档,生成相应Web Service的代码。 而且绝大多数的Web Service框架都支持通过WSDL自动生成client代码,并不需要我们自己去编写。 编写好了接口,我们就需要将接口部署到服务器上,Web Service有两种部署方式,而其中一种就需要WSDD文件来告诉容器怎么管理这个服务。 Web Service创建好之后,我们就需要去调用它了,既然是远程调用,那么我们就要选择一个RPC(远程过程调用协议)协议去调用它了,SOAP(简单对象访问协议)提供了标准的RPC方法来调用Web Service。
WSDLWSDL是基于XML的,Web Service的描述语言,是一种接口定义语言,用于描述Web Service的接口信息等。 一个WSDL文档通常包含7个重要的元素,即types、import、message、portType、operation、binding、 service元素。 这些元素嵌套在definitions元素中,definitions是WSDL文档的根元素。每个元素在WSDL文档中都对应了一个标签,如:<wsdl:definitions>、<wsdl:types>等等。 各个元素的作用(这里直接使用WSDL中的标签表示): <wsdl:types>(消息类型):数据类型定义的容器,它使用某种类型系统(如XSD)。实际上就是对这个WSDL文件(本质上是个XML)的Schema约束。可以理解为返回对象中的各个属性的类型。 <wsdl:message>(消息):通信数据的抽象类型化定义,它由一个或者多个<wsdl:part>组成。使用<wsdl:types>所定义的类型来定义整个消息的数据结构。可以理解为传入或返回的各种对象。 <wsdl:part>(消息参数):可以理解为返回对象中的各种字段属性。 <wsdl:portType>(端口类型):特定端口类型的具体协议和数据格式规范。可以理解为一类操作的分组,也就是说是若干个方法的分组,即接口。由若干个<wsdl:operation>组成。 <wsdl:binding>:特定端口类型的具体协议和数据格式规范。binding元素将一个抽象portType映射到一组具体协议(SOAP和HTTP)、消息传递样式、编码样式。通常binding元素与协议专有的元素和在一起使用。一般会指定type为<wsdl:portType>。也由若干个<wsdl:operation>组成。 <wsdl:operation>(操作):对服务所支持的操作进行抽象描述,WSDL定义了四种操作: 1.单向(one-way):端点接受信息;2.请求-响应(request-response):端点接受消息,然后发送相关消息;3.要求-响应(solicit-response):端点发送消息,然后接受相关消息;4.通知(notification[2]):端点发送消息。 <wsdl:input>:输入类型。 <wsdl:output>:输出类型。 <wsdl:fault>:错误类型。 <wsdl:service>:相关端口的集合,包括其关联的接口、操作、消息等。 <wsdl:port>:定义为绑定和网络地址组合的单个端点。一般嵌套<wsdlsoap:address>来指定Web Service的地址。 <wsdl:import>:import元素使得可以在当前的WSDL文档中使用其他WSDL文档中指定的命名空间中的定义元素。 通常在用户希望模块化WSDL文档的时候,该功能是非常有效果的。? Web Service的发布Web Service的发布分为两种: 即时发布 JWS (Java Web Service) 通过编写Web Service服务类、部署到服务器、发布Web Service之后,我们的Web Service服务端就算是完成了。之后再通过不同的发布方式来编写对应的客户端代码,就可以调用Web Service了。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- twitter-bootstrap – Select2下拉列表,但允许用户新的值?
- express – 将angular 2通用启动器部署到外部服务器主机(Go
- 使用axis自动生成webservice客户端代码
- Scala中shouldBe和shouldEqual之间有什么区别?
- vim配置python 开发环境
- AngularJS入门(5)-Angular作用域($Scope)
- vim – 视觉模式中有什么?
- 在AngularJS中使用success/error/finally/catch与Promises
- angular – Ionic 3引用app模块问题中的新页面
- scala中`=> String`的类型是什么?