自从Web服务被当作应用程序后,依照响应时间和存储需要,Web服务的性能就成为了我们要考虑的主要因素。使用XML和SOAP是Web服务高效性的最大障碍,许多工具包的开发者都在解决性能问题方面付出了努力。本文的目的就是将Web服务的构成分成几个要素。 ·信息传递 ·信息分析 ·建立服务对象 ·后端流程 ·建立响应 ·信息传递 一般来说REST服务要求非常紧密,而SOAP信息要求相对于整个庞大的信息规模而言有效负荷的规模就很小了。
SOAP信息中命名空间引用的激增也会增加对带宽的要求。我之前在一篇文章中看到的Fast Infoset标准意在使SOAP信息更为紧凑,分析更为迅速。Su……
我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。
我原创,你原创,我们的内容世界才会更加精彩!
【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】
微信公众号
TechTarget
官方微博
TechTarget中国
自从Web服务被当作应用程序后,依照响应时间和存储需要,Web服务的性能就成为了我们要考虑的主要因素。使用XML和SOAP是Web服务高效性的最大障碍,许多工具包的开发者都在解决性能问题方面付出了努力。本文的目的就是将Web服务的构成分成几个要素。
·信息传递
·信息分析
·建立服务对象
·后端流程
·建立响应
·信息传递
一般来说REST服务要求非常紧密,而SOAP信息要求相对于整个庞大的信息规模而言有效负荷的规模就很小了。SOAP信息中命名空间引用的激增也会增加对带宽的要求。我之前在一篇文章中看到的Fast Infoset标准意在使SOAP信息更为紧凑,分析更为迅速。Sun公司公司的开放源Glassfish服务器项目包括Fast Infoset实施,但是我不能肯定是否有人在用它。
这里还有许多建立XML信息的方法。有些人将其概括为标准的“gzip”压缩算法,这种算法可以建立一个良好的紧凑信息。由于gzip可以用几种语言编写,所以在HTTP服务器的应用更为广泛,并且很容易实施。
信息分析
在这一步骤中,服务必须通过一些工具包,和参数方法来确定要求的目标。目标和参数可以直接通过RESTful Web服务从URL中进行抽取,但是需要分析SOAP信息。
人们在改进SOAP要求的XML分析阶段耗费了很大精力。所有的XML分析程序都要扫描引入字符并且要识别多个XML要素,将所有的要素数据打包到特定的编程语言,例如Java对象。这些分析程序的不同之处在于如何处理这些数据。
在文档对象模型或者是DOM中,当内存对象复制原有XML文档时结束时,所有的XML标签和真正的请求数据也随之结束了。创建DOM会占有很多CPU内存和时间。
DOM的一个好处就是像XPath 这样的工具可以通过使用简化标记定位数据。原有的Apache SOAP工具箱使用DOM,但是速度很慢,还会占很大内存。
XFire和Axis2工具箱项目使用的是构造SOAP的最新方法,该方法意在通过使用事件驱动的分析程序来提高性能,例如StAX。StAX被称为“牵引”分析程序,因为它能生成所需的事件,服务可以借此找到一切所需的数据,在整个SOAP信息读取之前就可以停止分析,所占的内存也相对较小。
XFire工具包的高速度是出了名的,它于2005年建成。并于2007年五月在市场发布了XFire1.2.6版本。但是当 XFire项目和IONA公司的Celtix项目结合在一起组成了一个叫做CXF的Apache项目时,CXF却从Axis2项目分离了出来,所以现在是两个由Apache Software Foundation封装的完全分离的开放源高效Web服务项目。在这些基于StAX的工具包中,分析和建立服务对象同步进行。
建立服务对象
建立服务对象通常指当向服务要求抽取价值时所发生的“数据绑定”步骤,这些价值传递的方法会完成服务要求。通过这些基于Java的服务,建立新的对象会将抽取的价值进行初始化。
这个步骤中有一个不断扩散的方案,有些人为Web服务设计了全新的的方案,有些人则是在现有的应用框架上安装了插件例如Spring。从这个基准点来看,数据绑定会使生产量得到大大的提高。CXF和Axis2试图尽可能的支持更多的数据绑定方案。常用的数据绑定方法包括:
·JAXB: XML绑定的Java应用程序接口是标准Java数据库的组成部分
·POJO: Axis2和CXF都为建立在Plain Old Java Objects基础上的Web服务建立提供至少一个以上的方法
·Spring框架对象:Spring是一个广为应用的开放源应用框架
·Castor:对于Java来说是一个流行的开放源XML绑定框架
后端流程
借于Web服务的设计的原因,后端流程,例如,和其它阶段相比,数据搜索整理会占用的时间更久。如果你的潜在Web服务也属于这种类型,你就没必要按照这个标准选择Web服务,这个标准只能衡量使用仿造结果的响应时间。
能够扑捉复杂后端流程的标准技术是一个全新的理念。通过复制要求的频率,可以成倍提高速度。微软公司为建立Web服务量身打造的工具使用的是ASP.NET,ASP.NET含有一个机制,程序设计人员依靠这个机制发出指令,指定系统必须将输出复制到储藏处,这些是输出将在储藏处保留一段时间。
建立响应
在原有Apache SOAP工具箱内,通过建立输出信息的DOM来创建响应,并将其序列化到响应流。很显然这样效率很低。通常用于数据绑定的不同工具箱也会提供对象数据序列化入XML的机制。这主要取决于Web服务工具例如Axis2和CXF,以便将数据封装到正确的SOAP外壳中。
作者
相关推荐
-
SAP收购CallidusCloud 与Salesforce竞争
一直被称为后台办公巨头的SAP现在似乎也想在前台办公大展拳脚。 最新的迹象是SAP收购CallidusClou […]
-
企业架构 请用好移动设施和云计算
虽然很多企业都实施了移动化,但是并没有改变其底层架构。其结果就是,他们最终会围绕手机这样一个集成点来开发一个轴辐型的架构。
-
API管理工具能否弥补REST与Web服务之间的鸿沟?
随着企业学习如何通过RESTful利用现有服务,API管理工具正在引起轰动。API管理工具能否弥补REST与Web服务之间的鸿沟?
-
API设计如龙生九子 各不相同
IT咨询管理公司CA Technologies对API产业做了个问卷调查,问卷内容涉及API设计风格以及管理部署的新动向。调查结果表明,JSON与XML可谓两分天下。