`
zhang_xzhi_xjtu
  • 浏览: 524943 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

SOA客户端预取技术

    博客分类:
  • SOA
阅读更多

计算机在执行指令时,为了性能,一般是有一个预先取指析指的过程,而这个是依赖于指令预测的,即预测要执行哪条指令,如果预测命中,则执行该指令的时间可以大大缩短,从而提示性能。

 

在基于SOA架构的系统开发中,经常感觉客户端比较慢,很大一个原因是因为很多操作要跨网络取数据,还要对数据进行转换处理,如果系统在数据传输上加入一些其他功能,如安全,加密,特殊的编解码等等,则速度就更低了。

 

如果我们在客户端加入了预取功能,则可以改善性能,得到更好的用户体验。预取和缓存是不一样的。预取是基于预测用户行为,而提前异步执行某些操作。

 

举个例子,例如,有一个用户浏览窗口,其中有一个用户列表,用户可以查看其中用户的详细信息。

 

方法1:得到用户列表用一个service call,当用户选择查看一个选定用户的详细信息时,再发一个service call。

这个方法的缺点是service call的粒度太细,每次都要调用service call得到用户详细信息,性能太低。

 

方法2:一个service call得到所有数据。

这个方法的缺点是UI响应慢,Ux不好。

 

方法3:得到用户列表用一个service call,show出界面,同时预测用户有可能查看详细信息,然后有另一个service call在悄悄的拿所有用户的详细信息数据。

 

在某些情况下,针对细粒度的操作的预测也是非常有用的。如当用户选择一个条目时,则开始取该条目相关的数据,当用户真正操作该条目时,可以直接使用刚才得到的数据,性能提升,用户体验更好。

1
0
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics