nimbus (1.2.4) | 2018-01-25 20:02 |
nimbus-sample (1.2.4) | 2018-01-26 17:06 |
jp.ossc.nimbus.service.beancontrol.ClientBeanFlowInvokerFactoryServiceは、リモートのBeanFlowInvokerFactoryを呼び出すBeanFlowInvokerFactory実装サービスです。
リモートの業務フローをRMIで呼び出します。
クラスタ上に共有されたリモートの業務フローを呼び出すためのBeanFlowInvokerServerリモートオブジェクトを取得して、リソースの利用率が低いBeanFlowInvokerServerを選択して呼び出します。
呼び出される側のリモートJVM上には、BeanFlowInvokerServerをリモートオブジェクトとして、RMIリポジトリにバインドし、クラスタで共有させるBeanFlowInvokerServerServiceサービスを定義する必要があります。
このサービスは、複合的なサービスで、以下のサービスを下位サービスとして使用します。
下位サービスインタフェース | 用途 |
jp.ossc.nimbus.service.keepalive.ClusterService | リモートの業務フローを呼び出すためのBeanFlowInvokerServerリモートオブジェクトを共有するクラスタサービス |
jp.ossc.nimbus.service.context.ThreadContextService | リモートの業務フローを呼び出す時に、リモートのThreadContextServiceに伝搬するコンテキスト情報を取得する |
jp.ossc.nimbus.service.queue.QueueHandlerContainer | 非同期呼び出し時に、RMIの呼び出しコストも非同期にするための非同期処理コンテナ |
以下に簡単なサービス定義を示します。
- <?xml version="1.0" encoding="Shift_JIS"?>
- <!DOCTYPE server PUBLIC
- "-//Nimbus//DTD Nimbus 1.0//JA"
- "http://nimbus.sourceforge.jp/dtd/nimbus-service_1_0.dtd">
- <server>
- <manager>
- <!-- リモートの業務フローを呼び出すBeanFlowInvokerFactoryサービス -->
- <service name="BeanFlowInvokerFactory"
- code="jp.ossc.nimbus.service.beancontrol.ClientBeanFlowInvokerFactoryService">
- <!-- リモートの業務フローを呼び出すBeanFlowInvokerServerを共有するクラスタサービスのサービス名を設定する -->
- <attribute name="ClusterServiceName">#Cluster</attribute>
- <depends>Cluster</depends>
- </service>
- <!-- クラスタサービス -->
- <service name="Cluster"
- code="jp.ossc.nimbus.service.keepalive.ClusterService">
- <attribute name="MulticastGroupAddress">239.0.0.10</attribute>
- <attribute name="Client">true</attribute>
- </service>
- </manager>
- </server>
ClientBeanFlowInvokerFactoryServiceサービス向けインタフェースBeanFlowInvokerServerは、リモートから業務フローを呼び出されるサーバ側のRMIリモートインタフェースです。
BeanFlowInvokerServerリモートオブジェクトを、RMIリポジトリにバインドし、クラスタで共有させるサービスが以下です。
サービス | 概要 |
jp.ossc.nimbus.service.beancontrol.BeanFlowInvokerServerService | BeanFlowInvokerServeリモートオブジェクトをRMIリポジトリにバインドし、クラスタで共有させる |