Interstage Application Server アプリケーション作成ガイド (イベントサービス編) |
目次
索引
![]() ![]() |
第7章 アプリケーションの開発(Java言語) |
Java言語でのMixedモデルのアプリケーションの開発について説明します。
MixedモデルはPushモデル、Pullモデルの2つの通信モデルを使用します。
サプライヤはイベントチャネルにイベントデータを送信し、コンシューマはイベントチャネルにイベントデータを要求します。
サプライヤはイベントチャネルにイベントデータを送信します。Pushモデルのサプライヤと同様のインタフェースを使用します。サプライヤからコンシューマにイベントデータを送信する処理の概要と流れを以下に説明します。
[Mixedモデルのサプライヤ]
public boolean func() { ... try { supplier = Eventch.for_suppliers(); /* 1 */ proxy_push = supplier.obtain_push_consumer(); /* 2 */ proxy_push.connect_push_supplier(null); /* 3 */ proxy_push.push( data ); /* 4 */ proxy_push.disconnect_push_consumer(); /* 5 */ } catch( Exception e ) { ... } ... }
[Mixedモデル(StructuredEvent型)のサプライヤ]
public boolean func() { ... try { supplier = Eventch.default_supplier_admin(); /* 1 */ tmp_proxy=supplier.obtain_notification_push_consumer (ClientType.STRUCTURED_EVENT,proxyid); /* 2 */ proxy_push= StructuredProxyPushConsumerHelper.narrow (tmp_proxy); proxy_push.connect_structured_push_supplier (null); /* 3 */ proxy_push.push_structured_event(data); /* 4 */ proxy_push.disconnect_structured_push_consumer(); /* 5 */ } catch( Exception e ) { ... } ... }
[Mixedモデル(any型)のサプライヤ]
public boolean func() { ... try { supplier = Eventch.default_supplier_admin(); /* 1 */ tmp_proxy=supplier.obtain_notification_push_consumer (ClientType.ANY_EVENT,proxyid); /* 2 */ proxy_push= ProxyPushConsumerHelper.narrow(tmp_proxy); proxy_push.connect_any_push_supplier(null); /* 3 */ proxy_push.push(data); /* 4 */ proxy_push.disconnect_push_consumer(); /* 5 */ } catch( Exception e ) { ... } ... }
コンシューマはイベントチャネルにイベントデータを要求します。Pullモデルのコンシューマと同様のインタフェースを使用します。コンシューマがイベントチャネルにイベントデータを要求する手続き例と処理の流れを以下に説明します。
[Mixedモデルのコンシューマ]
public boolean func() { ... try { consumer = Eventch.for_consumers(); /* 1 */ proxy_pull = consumer.obtain_pull_supplier(); /* 2 */ proxy_pull.connect_pull_consumer( null ); /* 3 */ data = proxy_pull.pull(); /* 4 */ proxy_pull.disconnect_pull_supplier(); /* 5 */ } catch( Exception e ) { ... } ... }
[Mixedモデル(StructuredEvent型)のコンシューマ]
public boolean func() { ... try { consumer = Eventch.default_consumer_admin(); /* 1 */ tmp_proxy =consumer.obtain_notification_pull_supplier (ClientType.STRUCTURED_EVENT,proxyid); /* 2 */ proxy_pull= StructuredProxyPullSupplierHelper.narrow (tmp_proxy); proxy_pull.connect_structured_pull_consumer (null); /* 3 */ data = proxy_pull.pull_structured_event(); /* 4 */ proxy_pull.disconnect_structured_pull_supplier(); /* 5 */ } catch( Exception e ) { ... } ... }
[Mixedモデル(any型)のコンシューマ]
public boolean func() { ... try { consumer = Eventch.default_consumer_admin(); /* 1 */ tmp_proxy =consumer.obtain_notification_pull_supplier (ClientType.ANY_EVENT,proxyid); /* 2 */ proxy_pull= ProxyPullSupplierHelper.narrow(tmp_proxy); proxy_pull.connect_any_pull_consumer(null); /* 3 */ data = proxy_pull.pull(); /* 4 */ proxy_pull.disconnect_pull_supplier(); /* 5 */ } catch( Exception e ) { ... } ... }
目次
索引
![]() ![]() |