イベントサービスのアプリケーションをノーティフィケーションサービスのアプリケーションに変更するには、使用するインタフェースを変更する必要があります。
各サービスのインタフェースの対応を、アプリケーションの処理に沿って以下の表に示します。
イベントチャネル管理オブジェクトのオブジェクトリファレンスを獲得
イベントチャネルのオブジェクトリファレンスを獲得
イベントチャネルと接続
イベントチャネルにイベントデータを送信/受信
イベントチャネルと切断
イベントファクトリによるイベントチャネルの生成
なお、ノーティフィケーションサービス固有(QoS機能)のインタフェースは、新規に作り込む必要があります。インタフェースおよび使用方法については、以降の各開発言語のノーティフィケーションサービスインタフェース(開発手順の節内)、および“4.4.1 QoSプロパティ項目の設定”を参照してください。
項番 | イベントサービスのインタフェース | ノーティフィケーションサービスのインタフェース | |
---|---|---|---|
1 | CosEventChannelAdmin_ | Structured | CosNotifyChannelAdmin_ |
any | |||
CosEventChannelAdmin_ | Structured | CosNotifyChannelAdmin_ | |
any | |||
2 | CosEventChannelAdmin_ | Structured | CosNotifyChannelAdmin_ |
any | |||
CosEventChannelAdmin_ | Structured | CosNotifyChannelAdmin_ | |
any | |||
3 | CosEventChannelAdmin_ | Structured | CosNotifyChannelAdmin_ |
any | CosNotifyChannelAdmin_ | ||
CosEventChannelAdmin_ | Structured | CosNotifyChannelAdmin_ | |
any | CosNotifyChannelAdmin_ | ||
4 | CosEventComm_ CosEventChannelAdmin_ | Structured | CosNotifyComm_ CosNotifyChannelAdmin_ |
any | CosNotifyChannelAdmin_ | ||
CosEventComm_ CosEventChannelAdmin_ | Structured | CosNotifyComm_ CosNotifyChannelAdmin_ | |
any | CosNotifyChannelAdmin_ | ||
CosEventComm_ CosEventChannelAdmin_ | Structured | CosNotifyComm_ CosNotifyChannelAdmin_ | |
any | CosNotifyChannelAdmin_ | ||
5 | CosEventComm_ CosEventChannelAdmin_ | Structured | CosNotifyComm_ CosNotifyChannelAdmin_ |
any | イベントサービスのインタフェース使用可能 | ||
CosEventComm_ CosEventChannelAdmin_ | Structured | CosNotifyComm_ CosNotifyChannelAdmin_ | |
any | イベントサービスのインタフェース使用可能 | ||
6 | EventFactory_create | Structured | CosNotifyChannelAdmin_ |
any |
■ノーティフィケーションサービスのイベントチャネルとの接続
イベントサービスのアプリケーションで、ノーティフィケーションサービスのイベントチャネルと接続する場合には、アプリケーションの一部を変更し、翻訳する必要があります。運用形態については、“1.8 イベントチャネルとアプリケーションとの接続互換”を参照してください。
イベントチャネルのオブジェクトリファレンスの獲得処理で、ノーティフィケーションサービスのイベントチャネルのオブジェクトリファレンスを獲得するため、オブジェクトリファレンスのデータ型を変更します。詳細については、本章の各開発言語の“イベントチャネルのオブジェクトリファレンスの獲得”を参照してください。
サンプルプログラムでのアプリケーションの変更例を以下に示します。
C言語の場合
インクルードファイルの指定、およびイベントチャネルのオブジェクトリファレンスの型を変更します。
[インクルードファイルの指定]
#include "EventService.h" ↓ #include "NotificationService.h"
[イベントチャネルのオブジェクトリファレンスの型の変更]
CosEventChannelAdmin_EventChannel channel; ↓ CosNotifyChannelAdmin_EventChannel channel;
C++言語の場合
インクルードファイルの指定、およびイベントチャネルのオブジェクトリファレンスの型を変更します。
[インクルードファイルの指定]
#include "EventService_cplus.h" ↓ #include "NotificationService_cplus.h"
[イベントチャネルのオブジェクトリファレンスの型の変更]
CosEventChannelAdmin::EventChannel_ptr channel; ↓ CosNotifyChannelAdmin::EventChannel_ptr channel;
channel = CosEventChannelAdmin::EventChannel::_narrow( obj ); ↓ channel = CosNotifyChannelAdmin::EventChannel::_narrow( obj );
Java言語の場合
イベントチャネルのオブジェクトリファレンスの型を変更します。
[イベントチャネルのオブジェクトリファレンスの型の変更]
EventChannel channel; ↓ org.omg.CosNotifyChannelAdmin.EventChannel channel;
channel = EventChannelHelper.narrow( nameobj ); ↓ channel = org.omg.CosNotifyChannelAdmin.EventChannelHelper.narrow( nameobj );
COBOLの場合
イベントチャネルのオブジェクトリファレンスの型を変更します。
[イベントチャネルのオブジェクトリファレンスの型の変更]
01 COPY OBJECT IN CORBA REPLACING CORBA-OBJECT BY EVENTCHOBJ. ↓ 01 COPY NOTIFYEVENTCHANNEL IN COSEVENTCOMM REPLACING COSNOTIFYCHANNELADMIN-EVENTCHA BY EVENTCHOBJ;
また、コンシューマアプリケーションで、StructuredEvent型のデータを受信する場合は、any型のメンバとして、StructuredEvent型のメッセージ構造が格納されます。変換方式については、“1.5.4 StructuredEvent型からany型への変換”を参照してください。
なお、C言語、C++言語、およびCOBOLアプリケーションでは、ノーティフィケーションサービスのスタブライブラリを結合する必要があります。