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

jp.ossc.nimbus.service.beancontrol.DefaultBeanFlowInvokerFactoryServiceは、BeanFlowInvokerFactoryデフォルト実装サービスです。

XMLで記述した業務フローを読み込み、アプリケーションに提供します。

業務フロー定義XMLのパーサーとして、旧実装新実装があります。

旧実装は、バッチ由来のJCL(Job Control Language)ライクな実装で、処理ステップ毎にステートフルな業務ロジックBeanに設定やデータを引き渡し、処理を実行しその結果を次の処理ステップに引き渡す単純なウォーターフロー処理実装です。
旧実装は、Nimbus2で廃止されているため、非推奨です。

新実装は、ステートフル及びステートレスな業務ロジックBeanの制御、条件判定、分岐、繰り返し、例外ハンドリング(if、switch、for、while、try-catch)などのフローロジック、フローの細分化を支援する子フロー呼び出し、同期/非同期実行、流量制御、トランザクションサポートなどを実装した強力なフローエンジンです。
上記、新実装の業務フロー定義XMLの記述方法は、業務フロー定義XMLDTDを参照。

このサービスは、複合的なサービスで、以下のサービスを下位サービスとして使用します。

下位サービスインタフェース用途
jp.ossc.nimbus.service.journal.Journal業務フローのジャーナルを出力する
jp.ossc.nimbus.service.journal.editorfinder.EditorFinder業務フローのジャーナルを編集するJournalEditorを見つける
jp.ossc.nimbus.service.queue.QueueHandlerContainer業務フローの非同期実行の非同期処理コンテナ
jp.ossc.nimbus.service.aop.InterceptorChainFactory業務フローにアスペクトするInterceptorのチェインを取得する
jp.ossc.nimbus.service.interpreter.Interpreter業務フローの一部をスクリプトエンジンでインタプリタ実行する。また、条件式や、計算式などの式言語を、スクリプトエンジンでインタプリタ実行する。
jp.ossc.nimbus.service.context.ThreadContextService業務フロー非同期呼び出し時に引き継ぐスレッドコンテキスト。
jp.ossc.nimbus.service.transaction.TransactionManagerFactory業務フローでトランザクション制御をする際に使用する
jp.ossc.nimbus.service.performance.PerformanceRecorderジャーナルの出力量を記録する。
jp.ossc.nimbus.service.template.TemplateEngine文字列編集をテンプレートエンジンで処理する。
jp.ossc.nimbus.service.performance.PerformanceRecorderジャーナルの出力量を記録するサービス。

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

  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. <!-- BeanFlowInvokerを生成するBeanFlowInvokerFactoryサービス -->
  8. <service name="BeanFlowInvokerFactory"
  9. code="jp.ossc.nimbus.service.beancontrol.DefaultBeanFlowInvokerFactoryService">
  10. <!-- 業務フロー定義ファイルを格納しているディレクトリを設定する -->
  11. <attribute name="DirPaths">flows</attribute>
  12. <!-- 業務フロー定義ファイルのパーサークラスを設定する -->
  13. <attribute name="BeanFlowInvokerAccessClass">jp.ossc.nimbus.service.beancontrol.BeanFlowInvokerAccessImpl2</attribute>
  14. <!-- 業務フロー定義ファイルの検証を行うかを設定する -->
  15. <attribute name="Validate">true</attribute>
  16. </service>
  17. </manager>
  18. </server>


業務フロー/BeanFlowInvokerFactory