如何向用户显示长长的Web服务结果列表?

时间:2014-02-08 04:06:21

标签: java database web-services java-ee

我需要从不同的Web服务中检索很长的结果列表,并在将它们分类后显示给用户。到目前为止,我收到了所有结果并将它们放在一个名为result class的类中。

我不确定处理它们的有效方法是什么。我应该将它们放在数据库中,然后将它们显示给用户或将它们保存在内存中(我认为这不是一个好主意!)或者是否还有其他替代方法?

 User makes a search request
 Web service client requests to receive results from 
           first webservice put results into result class
           second webservice put results into result class
           third webservice put results into result class
           .....
 Sort the results based on their name
 Show the results to user.

结果类

 public class Result { 
     private long id; 
     private String name;
     private String source;
     private float code;
     .....
 }

场景就像是,每个用户都发送一个查看学生列表的请求。 假设用户想要查看超过18岁的学生列表,系统会将请求发送到所有Web服务,以便在收到所有信息后获取18岁以上的学生列表,系统将所有信息放在一起排序并将它们显示给用户。用户可以根据每个学生的年龄,名字等进行搜索,数据需要实时,因为学生信息在所有服务器上一直在变化。

1 个答案:

答案 0 :(得分:1)

您需要问自己的问题是:

  

在检索数据后多长时间,我需要相关的数据吗?

  • 如果数据与小时/天/周/ ...相关,那么数据库就是 你应该把它放在哪里。
  • 如果数据与几分钟相关,则将其存储在用户会话(内存)中。
  • 如果发出请求,您获取数据(来自不同的Web服务),对该数据执行任何处理并在响应中返回输出,您通常不会保留数据存储器中。
    编辑:
    如果数据应该返回"实时" (没有缓存),响应后数据不应该存在内存中。

提示:
如果您要将数据缓存在内存中,请查看http://ehcache.org/http://www.terracotta.org/之类的内容。
如果您决定将其保存在数据库中,请存储数据基本到期的日期和时间,然后提供一些内容(您的应用程序,crontab或您决定使用的任何内容)清除过期时间的数据。 / p>