- 论坛徽章:
- 0
|
Event Notifier, a Pattern for Event Notification
[这个贴子最后由cinc在 2002/09/14 06:52pm 编辑]
这里有个 Remote Notification 的例子:股票
http://www.eli.sdsu.edu/courses/spring99/cs696/notes/rmiStock/rmiStock.html
应用了 server push 的技术,把 Observer 模式用到了 rmi 的环境中:
StockServer 是一个存放股票信息的服务器,股票的价格不定期更新,
StockWatch 是股票服务器提供的服务:
watch: StockViewer 把自己感兴趣的几只股票告诉 StockServer
cancel: StockViewer 从自己感兴趣的股票列表中去除一个 股票
StockServer接口 可以接受多个 StockViewer 的连接
当 StockServer 上的股票信息发生变化时,通知对这只股票感兴趣的 StockViewer
StockNotify 接口是 StockViewer 希望股票服务器对他做的事情:
当股票出现变化时,调用此接口的 update() 方法告诉他
由于 StockWatch 和 StockNotify 都需要远程调用,所以他们均是 Remote 的子接口
运行过程:
服务器:
1.StockServer 启动
2.StockServer
3.StockServer 把自己的 StockWatcher 接口 StockWatch 注册到 RMI,接受远程调用
客户机:
1.StockViewer 启动
2.从 RMI 服务器找到 StockServer
3.把自己感兴趣的股票告诉 StockServer
4.把自己的 StockNotify 接口 export 出去
当股票信息发生变化时:
StockerServer 根据各个 StockViewer 感兴趣的股票,发送更新给相应的人 |
|