WebService

用过和WebService相同的技术么?

Hessian是一个轻量级的remoting onhttp工具,使用简单的方法提供了RMI的功能。 相比WebService,Hessian更简单、快捷。采用的是二进制RPC协议,因为采用的是二进制协议,所以它很适合于发送二进制数据。Hessian 是由 caucho 提供的一个基于 binary-RPC 实现的远程通讯 library 。

1 、是基于什么协议实现的?

基于 Binary-RPC 协议实现。

2 、怎么发起请求?

需通过 Hessian 本身提供的 API 来发起请求。

3 、怎么将请求转化为符合协议的格式的?

Hessian 通过其自定义的串行化机制将请求信息进行序列化,产生二进制流。

4 、使用什么传输协议传输?

Hessian 基于 Http 协议进行传输。

5 、响应端基于什么机制来接收请求?

响应端根据 Hessian 提供的 API 来接收请求。

6 、怎么将流还原为传输格式的?

Hessian 根据其私有的串行化机制来将请求信息进行反序列化,传递给使用者时已是相应的请求信息对象了。

7 、处理完毕后怎么回应?

处理完毕后直接返回, hessian 将结果对象进行序列化,传输至调用端。

WebService数据压缩

在使用WebService技术的过程中,免不了进行数据传输,比如说传输文本、图片、Zip压缩包等。在网络环境比较好、数据量小的情况下,传输的方式可以忽略不计,我们可以选择任意的方式,不需要考虑优化的问题,可以将图片、包变成二进制流进行传输,可以从数据库读出数据来,以DataSet形式进行传输。

但是如果网络条件不好,或者数据量很大的时候,我们就要考虑到对数据进行压缩之后再传输。

例如在传输DataSet的过程中,我们首先要从数据库中读取DataSet,利用DataSetSurrogate类将DataSet序列化,转换成二位数组,这个时候数据的大小基本上变成原来的1/3,然后我们利用SharpZipLib对数据进行压缩,最后使用WebService Enhancements的WS-Attachment进行传输。将包放到SOAP附件里面,而不是在信封里面,不用经过XML序列化,封成DIME消息(Direct Internet Message Encapsulation),这样原来的大数据就可以被封成很小的数据了,传输也变得简单,迅速。

实现DIME文件传输,我们首先要安装Microsoft WSE 2.0 SP3.msi,然后在服务器端配置:

            1.添加Microsoft.Web.Service2.dll引用

            2.修改WebConfig配置文件

            3.WebMethod实现

最后在客户端引用,Reference.cs文件中代理类的基类为Microsoft.Web.Services2.WebServicesClientProtocol;

WebService数据加密

发布WebService服务的过程中,为了安全,通常需要安全验证。所谓的安全验证就是客户端的每一次请求,都要带着请求头,而服务端就去解析请求头,看里面带的token是否跟预期的一致,如果一致就说明安全了,否则就抛出异常不让调用。

 那么我们在实现安全验证的过程中,我们涉及到了这样两个操作:

 首先在客户端发送webService调用前,构造一个SOAP消息头,把token带过去

 然后在服务器端解析消息头,把指定的那个头字段解析出来,对比两边的token是否相同

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值