Java Web服务: WS-Security的大开销[Java编程]
本文“Java Web服务: WS-Security的大开销[Java编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
WS-Security 以现有的密码学以及 XML 加密和签名行业尺度为底子,为 Web 服务利用程序供应了一组全面的安全特点,您可以通过 WS-Policy 和 WS-SecurityPolicy 来指定特定利用程序可以利用哪些特点,从而答应服务客户机自行配置以拜候服务.通过跨多个平台和 Web 服务框架对这些尺度的遍及支持,可以实现超卓的互操作性(并且会不断改进).
固然能带来这么多好处,但 WS-Security 也存在一些缺陷.在本 系列 的前两篇文章中,您已经知道 WS-Security 的配置有时会非常复杂,并且有时会在交换的消息中增添很多块(bulk).那么,WS-Security 带来的收益在什么情形下才物有所值呢?在本文中,我们将深化探究 WS-Security 以及相关 WS-SecureConversation 的运行时本钱(在处理开销和增添块方面),并引伸到若何利用 WS-Security 才能让利用程序受益的话题.
察看性能
为了丈量利用程序在差别配置下的性能,本文将测定当客户机和服务器运行于同一系统中特定恳求序列的履行时间.这种办法存在一些缺陷 — 最明显的是,它将客户机和服务器处理开销结合在一同,因此不能单独测算它们 — 但它比在网络上运行测试能生成越发一致的后果.您还可以轻松地在自己的硬件和 JVM 上试运行这些测试,相关的实现代码请拜见 下载.
性能测试利用程序
用于测试的利用程序是一个地震数据检索服务.它基于一个地震数据库,此中包含一段时间内世界各地发生的 93,000 多次地震的实际数据.对服务的恳求将指定经度、纬度、日期或震级的范围,并且服务将按区域和时间次序分组返回全部匹配的地震.整个数据库按索引保存在内存中,以便于快速处理恳求,因此每条恳求几近全部的处理时间都花在实际的 Web 服务处理代码上(包含将转换为 XML 或从 XML 转换而来的数据绑定代码).
清单 1 展示了一个对服务的示例恳求,以及随后的呼应(为适应页面宽度重新调整了格局):
清单 1. 示例恳求和呼应
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Body>
<ns1:matchQuakes xmlns:ns1="http://ws.sosnoski.com/seismic/types">
<ns1:min-date>2001-08-08T16:31:05.752+00:00</ns1:min-date>
<ns1:max-date>2001-08-14T23:51:31.499+00:00</ns1:max-date>
<ns1:min-long>160.4685</ns1:min-long>
<ns1:max-long>178.19693</ns1:max-long>
<ns1:min-lat>-42.423557</ns1:min-lat>
<ns1:max-lat>-30.44976</ns1:max-lat>
</ns1:matchQuakes>
</soapenv:Body>
</soapenv:Envelope>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Body>
<ns1:results xmlns:ns1="http://ws.sosnoski.com/seismic/types" count="9">
<ns1:result-set>
<ns1:area-name>New Zealand Region</ns1:area-name>
<ns1:regions count="0">
<ns1:region ident="rgn159" index="159">NORTH ISLAND,
NEW ZEALAND</ns1:region>
<ns1:region ident="rgn160" index="160">OFF E. COAST OF N. ISLAND,
N.Z.</ns1:region>
</ns1:regions>
<ns1:quakes count="9">
<ns1:quake time="2001-08-11T09:52:54.000+00:00" millis="1000"
latitude="-37.6499" longitude="177.74" depth="83.0" magnitude="4.4"
method="ML" region="rgn160"/>
<ns1:quake time="2001-08-11T09:52:55.000+00:00" millis="0"
latitude="-37.71" longitude="177.77" depth="70.0" magnitude="4.5"
method="ML" region="rgn160"/>
<ns1:quake time="2001-08-11T15:02:47.000+00:00" millis="5600"
latitude="-38.0429" longitude="175.632" depth="299.8" magnitude="4.6"
method="ML" region="rgn159"/>
<ns1:quake time="2001-08-12T07:42:41.000+00:00" millis="7000"
latitude="-37.97" longitude="175.97" depth="289.0" magnitude="4.3"
method="MB" region="rgn159"/>
<ns1:quake time="2001-08-12T22:37:58.000+00:00" millis="5600"
latitude="-38.3839" longitude="176.121" depth="163.2" magnitude="4.0"
method="ML" region="rgn159"/>
<ns1:quake time="2001-08-12T23:25:09.000+00:00" millis="6700"
latitude="-39.9559" longitude="176.115" depth="76.0" magnitude="4.0"
method="ML" region="rgn159"/>
<ns1:quake time="2001-08-13T05:10:07.000+00:00" millis="4300"
latitude="-37.5859" longitude="176.651" depth="189.0" magnitude="4.3"
method="ML" region="rgn159"/>
<ns1:quake time="2001-08-14T02:43:18.000+00:00" millis="2900"
latitude="-38.3699" longitude="175.902" depth="193.4" magnitude="4.5"
method="ML" region="rgn159"/>
<ns1:quake time="2001-08-14T18:02:35.000+00:00" millis="5400"
latitude="-37.8159" longitude="176.375" depth="193.3" magnitude="4.5"
method="ML" region="rgn159"/>
</ns1:quakes>
</ns1:result-set>
</ns1:results>
</soapenv:Body>
</soapenv:Envelope>
在测试中,客户机将查询范围调整为整体地震数据集的一部份,并生成一系列伪随机恳求.每次利用相同输入参数运行客户机所生成的恳求序列都是相同的,这答应我们测试差别的 Web 服务配置.通过更改客户机的输入参数(用于更改恳求所利用的查询范围),可以轻松地测试差别的后果消息大小.
以上是“Java Web服务: WS-Security的大开销[Java编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |