banq
2009-08-16 09:14
OSGI的白板模式Whiteboard Pattern比原始监听模式的要更进一步,将OSGI的事件机制引入,相当于producer + OSGI + Consumer。白板模式具体见:http://www.osgi.org/wiki/uploads/Links/whiteboard.pdf

文中案例代码是利用OSGI本身的ServiceTracker服务跟踪监听类作为Listener的触发机制,这样,基于OSGI开发事件模式,就不用把Listener注册到Source,从而发生紧耦合,只要双方直接注册到OSGI中就可以了。

这就是利用service registry来实现双方的解耦,也就是利用OSGI框架内部bundle(inter-bundle)依赖来实现event source和event listener的松耦合,可节省维持event source和event listener之间事件关系代码。

TSS上一篇文章利用OSGI的版本模式实现了IRC机器人聊天的功能,并在Consumer方实现一个onMessage方法,这个方法非常类似JMS中Consumer的onMessage,

文章代码如下:

The Whiteboard Pattern for OSGi

http://www.theserverside.com/news/thread.tss?thread_id=49380

个人认为:OSGI的这种producer + OSGI + Consumer和zk5的publish-queue-subscribe异步有些类似之处,或者可以说,可以将OSGI白板模式作为异步事件模式使用。因为事件生产方产生事件后就自行结束,属于fire and forget方式。

[该贴被admin于2009-08-16 09:15修改过]

猜你喜欢
2Go 上一页 1 2