歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> 使用Java進行CORBA編程-JacORB-Event Service

使用Java進行CORBA編程-JacORB-Event Service

日期:2017/3/1 10:40:20   编辑:Linux編程

CORBA的Event Service提供了一種分發事件通知的方式。
Event Servcie的Event Channel從一個Supplier那裡得到事件,發送到一個或多個Consumer那裡。
事件可以用push的方式發送,也可以用pull的方式發送,也可以混合push和pull。

Event Service的實現可以看JacORB安裝目錄下的\idl\omg目錄中的IDL文件。
CosEventComm.idl
CosEventChannelAdmin.idl
用類圖來表示:

通過這個類圖,可以很清晰的得到使用Event Service的步驟。以push mode為例,
Server側(Supplier)
1)創建一個類,繼承自PushSupplierPOA,這個類就是Server側的Supplier的實現類。
2)創建一個org.jacorb.events.EventChannelImpl的對象,它實現了EventChannel的接口。
然後向NameService注冊這個Channel,注冊時提供一個Channel名。
3)調用EventChannelImpl對象的for_suppliers()方法,得到一個SupplierAdmin對象。
4)調用SupplierAdmin對象的obtain_push_consumer()方法,得到一個ProxyPushConsumer對象。
5)創建1)中的Supplier的實現類的一個實例。
在上面4)得到的ProxyPushConsumer對象上調用connect_push_supplier()方法,
把Supplier的實現類的實例傳給此方法。
6)現在Server側已經連接到Event Channel,可以調用ProxyPushConsumer對象的push()方法來發送事件通知給Channel了。

Copyright © Linux教程網 All Rights Reserved