加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

webService常用名词

发布时间:2020-12-17 00:42:00 所属栏目:安全 来源:网络整理
导读:1.?基本概念 ???? ???? ? SOA : 面向服务的体系结构(Service-Oriented Architecture,SOA) ????? SOAP: (Simple Object Access Protocol )简单对象访问协议是在分散或分布式的环境中交换信息并执行远程过程调用的轻量级协议,是一个 基于 XML 的协 议

1.?基本概念????

???? ?SOA 面向服务的体系结构(Service-Oriented Architecture,SOA)
????? SOAP:(Simple Object Access Protocol )简单对象访问协议是在分散或分布式的环境中交换信息并执行远程过程调用的轻量级协议,是一个基于XML的协议。使用SOAP,不用考虑任何特定的传输协议(最常用的还是HTTP协议),可以允许任何类型的对象或代码,在任何平台上,?以任何一种语言相互通信。
????? SOAP包括四个部分:
????? SOAP封装(envelop),封装定义了一个描述消息中的内容是什么,是谁发送的,谁应当接受并处理它以及如何处理它们的框架;
????? SOAP编码规则(encoding rules),用于表示应用程序需要使用的数据类型的实例;
????? SOAP RPC表示(RPC representation),表示远程过程调用和应答的协定;
????? SOAP绑定(binding),使用底层协议交换信息。

?

2.?WebService体系结构

????? Web Services 服务提供方通过WSDL(Web Services Description Language) 描述所提供的服务,并将这一描述告知Web Services 注册服务器。注册服务器依据WSDL 的描述,依照UDDI (Universal Description Discovery and Integration) 的协定更新服务目录并在Internet 上发布。用户在使用Web Services 前先向注册服务器发出请求,获得Web Services 提供者的地址和服务接口信息,之后使用SOAP 协议(Simple Object Access Protocol) 与Web Services 提供者建立连接,进行通信。Web Services 的技术主要建立在XML 的规范之上,这保证了这一体系结构的平台无关性、语言无关性和人机交互性能。


3.?WebService原理

?????? 客户端通过get请求可以得到wsdl文件,也就知道服务器提供的方法和参数了,然后客户端会通过webservice提供的工具类(通常为wsdl to java生成相应的类)。? 接下来,客户端会向webservice发送一个soap请求,这个soap请求实际上就是一段xml代码,然后server接收到soap请求,然后进行相应的处理,并将响应结果以soap 方式发送回客户端。

?

4.Axis

????? Axis本质上就是一个SOAP引擎(Apache Axis is an implementation of the SOAP),提供创建服务器端、客户端和网关SOAP操作的基本框架。
????? 但Axis并不完全是一个SOAP引擎,它还包括:
??????是一个独立的SOAP服务器。
????? 是一个嵌入Servlet引擎(例如Tomcat)的服务器。
??????支持WSDL。
????? 提供转化WSDL为Java类的工具。
????? 提供例子程序。
????? 提供TCP/IP数据包监视工具。

?????WSDL(Web Service Description Language)Web服务器描述语言是用XML文档来描述Web服务的标准,是Web服务的接口定义语言
???
???? WSDD就是WEB服务分布描述(Web Service Deployment Descriptor),它定义了WEB服务的接口,如服务名、提供的方法、方法的参数等信息。

??? ?UDDI就是统一描述、发现和集成(Universal Description,Discovery,and Integration)。
??? ?UDDI用于集中存放和查找WSDL描述文件,起着目录服务器的作用。

???? AXIS有四种service styles分别是:RPC,Document,Wrapped,Message。最常用的就是RPC和Message。
???? RPC:
???? 在AXIS中是一个默认选项。当你部署的时候使用下列两种方式: 或则 ,它遵循SOAP RPC和编码规则。
每个RPC都包括一个表示名称的外部接点和一些表示参数的内部接点。AXIS会根据规则将一个XML(WSDL文件)
文件转化成一个JAVA对象,并对对想赋上在文件中描述的值。也可以根据规则将一个JAVA对象转化成XML文件。
???? Message:
?? ? 以这种方式部署的话,会使AXIS失去意义,它使你的代码真正的用XML形式,而不需要转化成JAVA对象。

??? ?基于RPC(远程过程调用)方式,这也是Web服务最常用的方式。面向消息/文档的的类型跟RPC不同的是它提供了一个更底层的抽象,要求更多的编程工作。客户端可以传入任何的XML文档,得到的响应不一定是SOAPEnvelope,可以返回任何它所需要的东西,甚至不返回。
??? ?虽然这对开发者来说非常的灵活,但是这种通讯类型在实际的应用中并不常见。面向消息/文档的Web服务主要适合于下面几种情况,
???? 比如批量处理,基于表单的数据导入,有需要返回非XML数据时,Web服务器实现中要求直接访问传输层等等


? ?Webservice的工作方式一般包括:远程方法调用和消息发送
????远程方法调用:比较简单,两端可以直接使用对方返回来的对象,不用关系他们是怎么解析的。
????消息发送:??? (style="message") 一般直接传送xml数据格式。适合传递的数据已经是xml类型的。


??? Webservice返回对象一般要配置beanMapping , typeMapping
??? beanMapping 一般指简单的javaBean,只包括Getter和Setter方法。
??? typeMapping可以处理比较复杂的类型。比如附件的DataHandler ,当然也包括简单类型。所以只用TypeMapping即可。

??? 注:
???wsdd-Web?? Service?? Deployment?? Descriptor,部署文件??
??? wsdl -Web?? Service?? Deployment?? Language,WebService描述
??? wsdd和wsdl的区别在于前者只描述Web服务和操作方法以及传输方式,它相对于wsdl要简单的多,更易被人读懂。

?

?

?
??? Axis支持三种web service的部署和开发,分别为:
??? 1、Dynamic Invocation Interface ( DII) 如.jws
??? 2、Stubs方式? 如:.wsdd
??? 3、Dynamic Proxy方式

?

?axis 配置:
?? 1.axis所需要的包配置在环境变量path中,因为生成service-config.wsdd文件要用到。 ?? 用Eclipse开发时,要把axis包放到项目的web-inf/lib 目录下,链接的话好像有问题,会报找不到所需要的包。 ? ?axis 返回一个自定义对象。我自己在做的时候遇到的一些问题

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读