星期二, 八月 03, 2004

Web Service的执行效率

在看《C++ Builder 6 SOAP/Web Service开发》中Web Service和执行效率一章中的“以一个包封装多个远程服务调用”一段,只有一小段,也没啥例子,实在不明白说得是啥。现把这段摘录下来,请高手帮偶SEE一下:


以一个包封装多个远程服务调用





  虽然从前面的讨论中我们已经通过避免存取WSDL和使用THTTPRIO控件的URL特性来加快Web Service应用系统的执行效率,但是在前面的范例中,客户端从Web Service取得的真正数据使用率仍然是非常低。这当然是因为SOAP包是由XML封装的,所以在返回的结果包之中XML本身的信息便占据了一定的数量。对于前面返回信息的Web Service范例来说,返回的结果数据只是43个字节。因此不管如何调整执行效率以减少不必要的数据传递,整个结果仍然不尽理想。


  对于这个情形,程序员就需要知道在设计Web Service的服务接口时,必须好好的设计其中的方法。除了不要让客户端应用程序多次调用Web Service以完成工作之外,在每一次调用Web Service的服务时也要尽量地把有用的信息在一次调用中完成,或是把多个远程Web Service调用封装在一个调用之中,以增加数据的使用率并且减少网络的Round-Trip。就像DCOM的QueryInterface一样,可以在一个远程调用的网络Round-Trip中取得多个COM对象的接口。





文章的后半段最不理解,偶把偶觉得是要点的用红色指出了。

猛禽:
这是李维的书? 他这一段的意思大致是说:在一个方法中做尽可能多的事,如将多个请求放在一起调用,并同时返回多个结果数据(通过OUT参数)。 基本上我不是太同意这个观点,因为它在一定程度上破坏了OO。 如果真的要考虑性能,就不应该用SOAP,否则如果如此文所说这样“优化”的话,将破坏系统结构的清晰性,处理不当,反而可能造成性能下降。 我的观点是优化必须适度,比如尽量避免多余的网络Round-trip,但不必过份。

令狐虫:
猛禽的话我倒不是很赞成。 诚然,如果整个系统里80%的内容需要经过这样的“优化”否则就不能使用的话,使用SOAP本身就是一个错误。 但是,在一个适合使用Web Service的场合中,考虑这样的优化还是有意义的。 事实上,这种减少IO的优化并非只是在Web Service里才需要。 以前我在东软的时候,我的老板跟我说,在数据库编程中,最重要的一点是尽量减少数据库的I/O操作,能在内存中完成的工作就在内存中完成。他展示给我们的PL/SQL语句里也有大量的结构数组。我对数据库没有太多的发言权,但是我觉得这一点还是有道理的,但是并不是说因为要在内存里操作就不需要数据库了。面对数百G的数据,数据库的作用还是很大的。 我只是想说,有些东西不能太完美化,必要的原则违反还是需要的(就像数据库里对范式的违反,有时也是必要的)。当然,破坏得满目苍痍也是不行的,那样,确实不如不用了。

猛禽:
大概是最近看《重构》看的:) 另一方面就是偶对SOAP的性能实在不是很受得了。 我也说了优化必须适度,我们的分歧应该是在这个度上: 我觉得:如果整个系统里30%的内容需要经过这样的“优化”否则就不能使用的话,使用SOAP就是一个错误。
再补充一下:SOAP和数据库是两回事。 SOAP只是一个非常非必要的选择,还有多的是其它的选择,但数据库中的性能问题,不在这种情况下优化,没有其它的选择。
再说一下范式:之所以提出范式,就是因为不用范式有很多的问题,所以一般来说还是要尽量满足范式,违反范式的唯一理由就是性能,但这样的话就同时还要考虑所带来的更新性能及数据一致性问题。这里也有一个度的权衡问题。

送给八月生日军团(狮子篇)

没想到BLOG上八月生日的人也贼多,写点东东就当送给八月生日的朋友们。(偶也是八月军团哦)


  狮子座是黄道星座。由于岁差的缘故,在四千多年前的每年六月,太阳的视运动正好经过狮子。(现在的六月,太阳的视运动已经到了金牛座与双子座之间。)那时,波斯湾古国迦勒底的人民认,太阳是从狮子座中获得了很多热量,所以天气才变得热起来。古埃及人也有同感,因为每年的这个时候,许多狮子都迁移到尼罗河河谷中去避暑。
我们在春夜通过春季大三角(狮子座的β星、牧夫座的大角以及处女座的角宿一,组成了春夜里很重要的“春季大三角”)找到了狮子座β星后,它东边的一大片星,就都是狮子座的了。在狮子座中,δ、θ、β三颗星构成一个很显著的三角形,这是狮子的后身和尾巴;从ε到α这六颗星组成了一个镰刀的形状,又象个反写的问号,这是狮子的头,连接大熊座的指极星(即勺口的两颗星)向与北极星相反的方向延伸,就可以找到它。α星我国叫轩辕十四(又名:帝王之星),它的视星等为1.35m,是狮子座最亮的星,也是全天第二十一亮星,同时也是唯一位于黄道上的一等星。占星家利用这颗星占卜帝王的命运。航海者也经常用它来确定航船在大海中的位置,所以狮子座α星又被授予“航海九星之一”的称号。
狮子座是全天中,具有流星群的星座。在狮子座反写问号的ζ星附近,会有大量的流星出现,这就是著名的狮子座流星雨。它大约每33年出现一次极盛。最近的一次是2001年的狮子座流星雨。



星期一, 八月 02, 2004

八月到了,生日军团出场了

今天是一位漂亮MM的生日,先祝贺一下!可惜MM现在在海南工作,一点机会也没有。偶也就只能发发短信,好无聊啊~~~(过去上学时,也就看到她会紧张,没想到最近偶连发短信也会紧张,寒自己先)


两天后是偶好兄弟生日。追中报道。待继~~~~

副业实验(四)

 最新消息,我在闲鱼的第一单已经产生了,230元,不包邮。从这一单我的毛利达到了惊人的15元。然后算上我为了保养、维护、修复这些二手游戏机。一共投入了200多元的工具。所以我的净利是-200 。 但如果一切顺利,等我把收的机器全部卖掉,应该还是能有小赚。让我们拭目以待吧。