Enterprise エディション
出力パイプライン
NextPDF Enterprise は、NextPDF Pro の出力パイプラインマニフェストの大規模なバッチ実行を、構成可能な並行性の上限と、完了した出力に対する任意のコンプライアンスハンドオフとともに調整します。Pro 出力パイプラインの上に位置するバッチレイヤーです。
提供状況とライセンス
「提供状況とライセンス」という見出しのセクションこの機能は NextPDF Enterprise(nextpdf/enterprise)に含まれ、Enterprise ティアのライセンスエンベロープでアクティブになります。そのエンタイトルメントを持たないデプロイメントでは、この機能のクラスはロードされません。エディションを比較してライセンスを取得する。
Enterprise のバッチサーフェスは Pro 出力パイプライン(pro.output.pipeline)の上に構築されますが、これはゲートではなく前提条件です。機能ごとの個別の機能コードはありません。バッチオーケストレーターとコンプライアンスハンドオフは、ライセンス付きの nextpdf/enterprise パッケージがインストールされている場所であればどこでも利用できます。
インストール
「インストール」という見出しのセクションcomposer require nextpdf/enterprise:^3概念の概要
「概念の概要」という見出しのセクションBatchPipelineOrchestrator は、多数の PipelineManifest インスタンスを 1 つのバッチとして実行します。各マニフェストは Pro の PipelineExecutor を通じて実行されます。オーケストレーターは、バッチの調整、リソース制限ガード(バッチごとのマニフェスト数に上限が設けられます)、バッチごとのタイムアウト処理、そして任意のコンプライアンスハンドオフを追加します。
BatchPipelineConfig は 3 つのことを制御します。同時並行のワーカーコールバックの最大数、任意のグローバルバッチタイムアウト(ミリ秒単位)、そしてパイプライン完了後にすべての出力に対してコンプライアンスチェックを実行するかどうかです。コンプライアンスチェックが有効な場合、ComplianceHandoff がパイプラインステップとして統合され、派生した各 PDF を Enterprise コンプライアンスゲートウェイを通じて再検証します。これにより、パイプラインによって変更されたドキュメントは、変更前の状態から信頼されるのではなく、再チェックされます。
本番デプロイメントでは、並列ワーカーのディスパッチとバックプレッシャーは別の実行サイドカーによって処理されます。ここで説明する PHP オーケストレーターは、バッチの調整とコンプライアンスハンドオフのロジックを提供し、リクエストハンドラーから直接ではなく、ジョブワーカーによって呼び出されます。
この仕組みが機能する理由
「この仕組みが機能する理由」という見出しのセクション大量のバッチ生成は 2 つの関心事に分かれます。すなわち、どのマニフェストをどの保証のもとで実行するかを調整することと、生の並列スループットを駆動することです。NextPDF は、調整とコンプライアンスのセマンティクスをこの決定的な PHP オーケストレーターに保持し、並列ワーカーのディスパッチとバックプレッシャーは別の実行サイドカーに委ねます。その境界により、スループットレイヤーは並行性を独立してスケールでき、一方でオーケストレーターはシンプルで、制限され、監査可能なままとなります。バッチごとのマニフェスト数のハードな上限がピークメモリを予測可能に保つため、1 つの大きな送信がワーカープールを低下させることはできません。コンプライアンスハンドオフは、派生した各出力を変更前の状態から信頼するのではなく再検証し、フェイルクローズします。完了したマニフェストは、ゲートウェイが適合を確認した場合にのみパスし、デフォルトでパスすることはありません。
設計の背景: 大量ドキュメント生成。
API サーフェス
「API サーフェス」という見出しのセクション| クラス | 責務 |
|---|---|
BatchPipelineOrchestrator | 多数のマニフェストを、制限された並行性でバッチとして実行。 |
BatchPipelineConfig | 最大並行性、バッチタイムアウト、完了時コンプライアンスのトグル。 |
BatchPipelineResult | 集約: マニフェストごとの結果、完了数と失敗数、タイミング。 |
ComplianceHandoff | 任意のパイプライン終了時コンプライアンス再検証ステップ。 |
コードサンプル — クイックスタート
「コードサンプル — クイックスタート」という見出しのセクションuse NextPDF\Enterprise\OutputPipeline\BatchPipelineOrchestrator;
$result = (new BatchPipelineOrchestrator($executor))->executeBatch($manifests);コードサンプル — 本番
「コードサンプル — 本番」という見出しのセクションuse NextPDF\Enterprise\OutputPipeline\BatchPipelineOrchestrator;use NextPDF\Enterprise\OutputPipeline\BatchPipelineConfig;
$config = new BatchPipelineConfig( maxConcurrency: 4, timeoutMs: 600_000, complianceCheckOnComplete: true,);
$result = (new BatchPipelineOrchestrator($executor, $config)) ->executeBatch($manifests, $variablesMap);
$logger->info('pipeline.batch', [ 'completed' => $result->completedCount, 'failed' => $result->failedCount,]);エッジケースと注意点
「エッジケースと注意点」という見出しのセクション- バッチはマニフェスト数の上限を強制します。これを超えると、黙って低下するのではなく、リソースガードエラーが発生します。
- グローバルタイムアウトがゼロの場合、バッチタイムアウトはありません。本番では有限の値を設定し、スタックしたマニフェストがバッチを無期限にブロックできないようにしてください。
- コンプライアンスハンドオフは、上流ステップの出力に認識可能な PDF があることを必要とします。見つからない場合、ステップは黙ってパスするのではなく、そのマニフェストについて失敗を報告します。
- このモジュールは Pro 出力パイプラインに依存します。新しいステップモデルではなく、バッチの調整を追加するものです。
パフォーマンス
「パフォーマンス」という見出しのセクションスループットは、構成された並行性とマニフェストごとのコストに応じて増減します。並行性は、コールバックがワーカープールを飽和させないよう、ワーカープールに対して控えめに設定すべきです。バッチごとのマニフェスト上限が、ピークメモリを制限します。
セキュリティに関する注意
「セキュリティに関する注意」という見出しのセクションバッチオーケストレーターは、呼び出し元が供給するあらゆるマニフェストと変数を処理します。パイプラインの入力は、他のあらゆる信頼できない PDF ワークロードと同様に扱ってください。コンプライアンスハンドオフは再検証の補助であり、認可の管理策ではありません。
データレジデンシーと PII の緩和策
「データレジデンシーと PII の緩和策」という見出しのセクションバッチ出力には個人データが含まれる場合があります。処理はインプロセスかつローカルで行われ、このオーケストレーターによるアウトバウンドのネットワーク呼び出しはありません。バッチ出力には、ご自身の保持管理策を適用してください。
安全なテレメトリとログのスクラブ
「安全なテレメトリとログのスクラブ」という見出しのセクションバッチ結果は、ドキュメントの内容ではなく、カウントとタイミングを報告します。マニフェスト識別子がテナントやケースのデータをエンコードしている場合は、ログからスクラブしてください。
このモジュールについては標準への適合性は主張されません。これはオーケストレーションレイヤーです。任意のコンプライアンスハンドオフは Enterprise コンプライアンスゲートウェイに委ねられ、ゲートウェイは独自の参照を運びます。
FIPS モードの挙動
「FIPS モードの挙動」という見出しのセクションこのモジュールは暗号操作を実行しません。
脅威モデル
「脅威モデル」という見出しのセクション主要な入力は、呼び出し元が供給するマニフェストと変数です。緩和策: バッチごとのマニフェストのハードな上限、制限された並行性、派生出力の任意の再検証、そしてオーケストレーター自体にネットワーク I/O がないことです。
挙動コントラクト
「挙動コントラクト」という見出しのセクションexecuteBatch()は、各マニフェストを Pro パイプラインエグゼキューターを通じて実行し、完了数と失敗数、タイミングを伴うマニフェストごとの結果を返します。- ハードな上限がバッチごとのマニフェスト数を制限します。これを超えると、黙って低下するのではなく、リソースガードエラーが発生します。
- グローバルタイムアウトがゼロの場合、バッチタイムアウトはありません。有限の値は、スタックしたマニフェストを制限します。
- 有効な場合、コンプライアンスハンドオフは派生した各 PDF を再検証し、上流に認識可能な PDF が見つからない場合は、黙ってパスするのではなく、ステップの失敗を報告します。
公開範囲の境界
「公開範囲の境界」という見出しのセクションこのページは、外部から観測可能な挙動とサポートされるパブリック API サーフェスのみを文書化します。内部の名前空間パス、ヘルパークラス、メカニズムのテーブル、ランブックのファイル名、チケットプレフィックスは範囲外です。
Core フォールバック
「Core フォールバック」という見出しのセクションNextPDF Core には出力パイプラインのモデルがありません。Core のみのデプロイメントは、Core API に対して独自のステップを直接組み立てます。マニフェストも、バッチの調整も、コンプライアンスハンドオフもありません。
Pro フォールバック
「Pro フォールバック」という見出しのセクションPro のみのデプロイメントでは、サポートされるサーフェスは単一マニフェストの Pro 出力パイプライン(pro.output.pipeline)です。Pro の PipelineExecutor は、一度に 1 つのマニフェストを実行します。Pro は、バッチオーケストレーター、制限された並行性のバッチガード、バッチごとのタイムアウト、Enterprise コンプライアンスハンドオフを提供しません。Pro のみのデプロイメントでバッチオーケストレーションまたはコンプライアンスハンドオフを要求する構成には、それを満たす Enterprise コンポーネントがありません。Pro のパイプラインサーフェスについては Pro overview を参照してください。
Enterprise の境界に関する注記
「Enterprise の境界に関する注記」という見出しのセクションバッチの調整、リソースガードの制限、コンプライアンスハンドオフの配線は、挙動レベルでのみ説明しています。内部のサイドカーディスパッチプロトコル、内部のバックプレッシャーのセマンティクス、内部のコンプライアンスゲートウェイの配線は、パブリックサーフェスの範囲外であり、ここでは複製していません。
デプロイの境界
「デプロイの境界」という見出しのセクション本番では、並列ワーカーのディスパッチとバックプレッシャーは別の実行サイドカーによって処理されます。ここで説明する PHP オーケストレーターは、バッチの調整とコンプライアンスハンドオフのロジックを提供し、リクエストハンドラーから直接ではなく、ジョブワーカーによって呼び出されます。ワーカープールのサイジング、サイドカーのプロビジョニング、PHP ワーカープールに対する並行性の上限は、オペレーターの責任です。コンプライアンスハンドオフは再検証の補助であり、認可の管理策ではありません。
法令遵守の境界
「法令遵守の境界」という見出しのセクション任意のコンプライアンスハンドオフは、派生ドキュメントに対して検証パスを再実行します。所見を報告するものであり、ドキュメントを認証したり、規制上の十分性を保証したり、法的助言を構成したりはしません。出力がご自身の義務を満たすかどうかの判断は、ご自身の責任です。
- 出力パイプライン(Enterprise リファレンス) — バッチオーケストレーターの API リファレンス。
- Pro overview — 基盤となる出力パイプライン。
- Enterprise overview
- Core vs Pro vs Enterprise feature matrix