寻找用于实现分布式MVC模式的分布式缓存解决方案

时间:2011-02-09 06:52:42

标签: java design-patterns distributed-caching

我正在构建一个客户端/服务器应用程序,其中包含一个相当复杂(但不是大型的10,00个对象)对象模型。多个客户端需要查看模型(通过Eclipse RCP GUI),但服务器将是唯一可以直接编辑模型的节点。我希望编辑模型以发布给客户端。新客户将能够请求该模型,并注册更新。

它真的是一个相当标准的模型 - 视图 - 控制器模式。

任何人都可以提出好的,开源的,复制的缓存解决方案,它们将处理我的对象模型的分发,以及将更改分发给模型。我希望将'deltas'发送给客户,而不是每次一个字段发生变化时发送完整的模型。

此外,我需要能够复制一个对象图并保持一致性,例如,如果我有一个'Person'对象:

 public class Person implements Serializable {
private Person manager;
private String name;

     public Person (Person manager, String name) {

在我的缓存中添加三个人:

 Person boss = new Person(null,"TheBoss");
 Person employee1 = new Person(boss,"employee 1");
 Person employee2 = new Person(boss,"employee 2");

 cache.put(new Element("boss",boss)
 cache.put(new Element("employee1",employee1)
 cache.put(new Element("employee2",employee2)

然后更新'老板的名字:

 boss.setName("TheBossXX");
 cache.put(new Element("boss",boss)

我希望以下代码在所有节点上返回'TheBossXX':

 Person e1 = (Person) cache.get("employee1").getValue()
 Person b1 = e1.getManager()
 LOG.info(b1.getName());

换句话说,我希望我的解决方案知道哪些对象相互引用,并在所有节点上维护这些重放。

有兴趣听取您的建议。

尼克

1 个答案:

答案 0 :(得分:0)

我建议使用Spring Web Flow。

     Spring Web Flow compliments the Spring MVC.

以下是Spring Web Flow Demo

的链接