BeanFlowInvokerFactory実装サービス jp.ossc.nimbus.service.beancontrol.ClientBeanFlowInvokerFactoryService

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の呼び出しコストも非同期にするための非同期処理コンテナ

以下に簡単なサービス定義を示します。

  1. <?xml version="1.0" encoding="Shift_JIS"?>
  2. <!DOCTYPE server PUBLIC
  3. "-//Nimbus//DTD Nimbus 1.0//JA"
  4. "http://nimbus.sourceforge.jp/dtd/nimbus-service_1_0.dtd">
  5. <server>
  6. <manager>
  7. <!-- リモートの業務フローを呼び出すBeanFlowInvokerFactoryサービス -->
  8. <service name="BeanFlowInvokerFactory"
  9. code="jp.ossc.nimbus.service.beancontrol.ClientBeanFlowInvokerFactoryService">
  10. <!-- リモートの業務フローを呼び出すBeanFlowInvokerServerを共有するクラスタサービスのサービス名を設定する -->
  11. <attribute name="ClusterServiceName">#Cluster</attribute>
  12. <depends>Cluster</depends>
  13. </service>
  14. <!-- クラスタサービス -->
  15. <service name="Cluster"
  16. code="jp.ossc.nimbus.service.keepalive.ClusterService">
  17. <attribute name="MulticastGroupAddress">239.0.0.10</attribute>
  18. <attribute name="Client">true</attribute>
  19. </service>
  20. </manager>
  21. </server>

ClientBeanFlowInvokerFactoryServiceサービス向けインタフェースBeanFlowInvokerServer

ClientBeanFlowInvokerFactoryServiceサービス向けインタフェースBeanFlowInvokerServerは、リモートから業務フローを呼び出されるサーバ側のRMIリモートインタフェースです。

BeanFlowInvokerServerリモートオブジェクトを、RMIリポジトリにバインドし、クラスタで共有させるサービスが以下です。

サービス概要
jp.ossc.nimbus.service.beancontrol.BeanFlowInvokerServerServiceBeanFlowInvokerServeリモートオブジェクトをRMIリポジトリにバインドし、クラスタで共有させる


業務フロー/BeanFlowInvokerFactory