nimbus (1.2.4) | 2018-01-25 20:02 |
nimbus-sample (1.2.4) | 2018-01-26 17:06 |
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 | ジャーナルの出力量を記録するサービス。 |
以下に簡単なサービス定義を示します。
- <?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>
- <!-- BeanFlowInvokerを生成するBeanFlowInvokerFactoryサービス -->
- <service name="BeanFlowInvokerFactory"
- code="jp.ossc.nimbus.service.beancontrol.DefaultBeanFlowInvokerFactoryService">
- <!-- 業務フロー定義ファイルを格納しているディレクトリを設定する -->
- <attribute name="DirPaths">flows</attribute>
- <!-- 業務フロー定義ファイルのパーサークラスを設定する -->
- <attribute name="BeanFlowInvokerAccessClass">jp.ossc.nimbus.service.beancontrol.BeanFlowInvokerAccessImpl2</attribute>
- <!-- 業務フロー定義ファイルの検証を行うかを設定する -->
- <attribute name="Validate">true</attribute>
- </service>
- </manager>
- </server>