实现XML和Web服务时要避免的三种常见错误

2016-02-19 19:00 4 1 收藏

今天给大家分享的是由图老师小编精心为您推荐的实现XML和Web服务时要避免的三种常见错误,喜欢的朋友可以分享一下,也算是给小编一份支持,大家都不容易啊!

【 tulaoshi.com - Web开发 】

  IBM的Kyle Brown在其评论文章开始描述了一种常见的情景:“许多人因以不恰当的方式使用Web服务和XML而给他们自己挖了一个坑”。在他的评论中,Kyle介绍了三个常见的痛点,解释了它们为何会发生并提供了一些替代方法。

  我的消息吃了我的服务器!Kyle指出,通常,Web服务开发者开始经历“内存溢出”的错误或者奇怪的“性能问题”时,总是会发现服务器拥有极高的处理负载,CPU使用率接近100%,以及较低的吞吐量和高网络延迟。导致这些症状的典型原因是非常大的(有时会达到50 MB或者更大)消息。而且,这些大消息往往包含了非常大的、作为XML消息主体的、采用base-64编码的二进制编码信息。导致其发生的原因通常是:

  ……开发者不理解技术的局限性:XML处理对解决许多问题都有用,但是你必须认识到消息是要被解析的——并且在大多数……产品中,这就意味着许多或者所有的消息都会驻留在内存中。

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/webkaifa/)

  Kyle建议采用如下方法来改善这种情况:

  不要发送冗余信息。在许多情况下,发送二进制数据时,你可能会发现消息高度重复。如果是这样,你可能就要考虑在HTTP层面使用压缩技术来改善你的网络延迟。虽然这不会帮助你处理负载,但可能有助于减轻其中一个问题。 在XML消息体中,根本不要嵌入二进制信息。这是较好的解决方法,还有几种不同的途径可以实现这一效果。比如,你可以使用带有附件的SOAP或者消息传输优化机制(MTOM)绕过解析开销,尽管这无助于网络延迟问题。 ……还有一个更好的办法,使用SOAP根本不发送大的二进制blob。替代方法,通过受控的文件传输系统,使用一个“带外数据”传输……或者“声明标签(claim Check,参见《EIP模式》或这里)”模式,避免在SOAP和HTTP上发送大的二进制文件。

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/webkaifa/)

  不好意思,你的数据正在显示。根据Kyle所说,另一个典型的Web服务的“性能问题” 是,使用Web服务的层面非常、非常低——通常Web服务跟一个SQL语句相关,这是因为:

  误解了SOA架构原则。一个优秀SOA架构的关键原则是你的服务应该具有高复用性。

  根据Kyle所说,这些情况通常发生在:

  ……如果设计是根据现有代码“自上而下”衍生出服务,这类服务就会出现;通常,开发者会看着他们现有的架构图并且决定将架构中的每一层(包括表现层)转变成服务集。相反,在SOA架构的正确位置使用粗粒度的Web服务会更好。再次强调,检查一个架构的标准分层模型,通常在架构中会有一个明确定义的地方已经封装了系统业务逻辑。可以使用“远程门面模式(Remote Facade Pattern)”来包装这些服务,以便用合适的方式来暴露基于模型的服务。

  模式(Schema)?我们不需要任何发臭的模式! Kyle指出,通常开发者试图重用现有代码来生成和解析作为Web服务实现基础的XML。这些实现通常使用XML解析器来编组/解组消息,同时使用Java HTTP类来发送和接收XML文档。使用Web服务时,通用的方法是,创建使用模式元素的WSDL文档,使XML不受阻地通过,然后在现有代码中对它们进行解析。

  这个问题的症状是组织没有看到SOA承诺的好处,而且维护他们的解决方案似乎比以前使用Web服务的时候更难(而不是更容易)

  简单的解决方案是,每当写Web服务时,不管使用WS-*标准还是使用REST方法,都要确保你创建了代表你文档结构的完整准确的XML模式。

  如果你正在构建WS-* Web服务,那么这个XML应该被包含在描述你的Web服务的WSDL之中。即使你在使用REST方法,拥有易于访问的XML模式将鼓励你的服务被重用。

  避免Kyle描述的陷阱似乎是个常识。不幸的是,我们的业界证明了,除非很好的理解和治理SOA实现,否则我们会继续一次又一次地重复犯同样错误。

来源:http://www.tulaoshi.com/n/20160219/1619804.html

延伸阅读
标签: 怀孕
一、把性生活看作单纯的“献身” 这首先表现为对自己的生理构造、性功能和性反应缺乏足够的认识和理解。随着计划生育和妇女保健工作的普及,妻子对于避孕、怀孕和妇女病的知识较过去增加了很多,但是由于传统和习俗的限制,仍有一半以上的妻子不知道女性最敏感的性部位是什么,40%的妻子不知道或说不清女性的性高潮有什么表现。 这是由于...
中华养生常见的三种药膳 药膳菜肴 生地黄罐蒸鸡 【配方】生地黄100克,母鸡l只,大枣l0枚。 做法 1.将母鸡宰杀洗净后,入沸水锅内略焯一下,捞出。2。将生地黄洗净后,切成小块,放入鸡腹内。再将鸡与大枣都放入罐内,倒入米汤,封口后,用大火蒸2~3小时。取出后,依个人口味调味即成。 【功效】养阴益肾...
拍摄美女要避免的七种错误   为了更直观的表达我们的意思,我们特地从网上图片中选取一组作为典型案例来进行评点。特别声明,我们也不是故意要评点MM的姿势或表情,仅仅作为例子而已。 我们也不想在第一张就看到MtuLaoShi.comM以这样的表情来表现,表面上看是装可爱,但是如果在严肃的摄影师看来,这是非常不好的表情,只能损...
标签: 孕前准备 孕前
(www.tulaoshi.com) 保护前列腺应该避免的行为 前列腺 是 男性 独有的重要器官之一。但是生活中由于多种原因可能导致前列腺出现问题。那么哪些行为对于我们的前列腺是不利的呢?下面我们一起了解下吧。 喝酒 美国弗莱德哈钦森 癌症 研究中心的一项研究发现,每天喝高浓度酒超过50克的人,患晚期前列...
标签: Web开发
Web服务经常从它的组件技术的角度来进行描述。SOAP、UDDI、WSDL、XML以及HTTP各自组成了Web服务体系的一部分,它们都发挥了重要作用。让我们看看XML技术对Web服务平台的贡献。 标准化   与其它Web服务技术相比,标准化是XML特色之一。XML提供了Web服务应用程序之间传输数据的标准格式。万维网联盟(W3C)管理XML标...

经验教程

994

收藏

54
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部