2011-10-03 33 views
0

现有的外部系统定期(每隔几秒)更新多个数据库表。我们希望构建一个仪表板类型的用户界面,允许用户近乎实时地查看其他记录和重要更新。用户界面还会允许一些会导致数据库更改的事务。外部数据库更改 - >休眠 - >客户端

我们的想法是使用具有Hibernate和Flex的堆栈(请参阅http://dl.dropbox.com/u/1431390/overview.jpg),但我们愿意使用任何免费/开源技术。有几个问题,我们不确定,我们应该用我们的提议栈:

1)如何自动更新数据库的修改POJO的?据我了解,hibernate没有办法知道在自己的会话之外做出的任何更改。因此,必须进行某种投票来提取新的和已更改的记录。

2)我们打算将数据推送到flex UI(使用BlazeDS或WebORB)内的datagrid。这似乎依赖于识别这些更改并将这些更新推向频道。但是,如果我们使用Hibernate-> POJO方法来确定这些更改可能相当复杂,因为我们已经刷新了数据。有没有更好的解决方案来推动即时更新?我原以为这是一个常见的要求,但我无法在网上找到很多信息。

任何建议将感谢架构或具体问题。

非常感谢,

回答

1

对于1) - 使用轮询,或者如果你有足够的预算支持来自触发器推JMS消息(DB2数据库中,Oracle,MSSQL服务器)。

对于2) - 有一个由Adobe建立了一个商业product这可以解决这个问题更容易(它有这个功能,你正在寻找)。它有一个陡峭的学习曲线,并针对企业。否则,您将不得不实施您自己的解决方案 - 只更新已更改的数据等。