关于WSRP服务的异步调用

Portal可以将不同的Web应用聚合在同一页面,而Web Services for Remote Portlets (WSRP)规范允许Portal聚合远程Portal Server提供的Portlet,在这种关系下,远程Portal被称为Producer,本地Portal被称为Consumer,最终用户只访问Consumer,并不需要了解Producer的存在。WSRP和普通Web Services比起来更容易使用,因为界面部分已经由Producer提供了,我们只要在Consumer里做一些设置而不是编写JSP代码。

听起来不错,但为此我们也许要付出些代价,其中我想最突出的是性能问题。因为Consumer在向最终用户返回聚合后的页面前,必须等待所有Portlet包括远程Portlet返回结果,这样,只要有一个Portlet响应时间较长,整个页面就变得很慢。在使用WSRP时,用户到Consumer一般是远程访问,而Consumer到Producer也是远程的,这必然带来额外的时间开销。

一个可能的解决方法是在Consumer里异步显示每个Portlet(或仅异步显示那些远程Portlet),AJAX技术听起来是一个不错的选择,lao_lee的这篇文章里曾提到他们有过类似的想法:

05年时我们曾经的一个idea是,把每一个portlet封装为一个web service服务点, (WSRP已经可以作到这一点), 然后改进聚合器,让聚合器首先把页面的框架和js返回,然后每一个portlet通过AJAX请求异步拿到自己的内容. 这里涉及到一个关键问题是URL改写.

我想除了URL改写以外还有些问题必须处理。

搬家前链接:https://www.cnblogs.com/bjzhanghao/archive/2006/12/27/605510.html