数十から数百の文書を変換することは、ペイロードが大きい単一のリクエストではありません。キューイング、制御された同時実行、ストレージ、リトライ、監視、そして結果をアプリケーション内で確実に提示する方法が必要なワークフローです。
Windows と .NET 上で開発するチーム向けに、Doconut はファイル処理後の埋め込み閲覧レイヤーを提供できます。この分離は重要です。変換サービスが出力を準備し、Doconut SDK がユーザーに自社の Web アプリケーション内でサポートされた文書を表示させます。

変換と閲覧の役割を理解する
バッチ変換エンジンと文書ビューアは異なる課題を解決します。
- 変換レイヤー はソースファイルを受け取り、必要な出力を作成します。
- オーケストレーションレイヤー はキュー、リトライ、タイムアウト、ジョブステータスを管理します。
- ストレージレイヤー は入力および出力ファイルを必要な期間だけ保持します。
- 閲覧レイヤー は処理された文書をアプリケーション内に表示します。
これらの責務を分離することで、システムのスケーラビリティとトラブルシューティングが容易になります。また、ユーザー向け文書体験を再設計せずに、コンバータやストレージプロバイダーを変更できます。
バッチ処理が重要な理由
- リソース使用の制御 — 変換は大量の CPU、メモリ、ディスク容量を消費する可能性があります。キューにより同時に実行されるジョブ数を抑制します。
- 信頼できるリトライ — 一時的なストレージやサービスの障害は、ユーザーに再アップロードを求めずにリトライできます。
- 明確なジョブステータス — 各文書はキューイング、処理中、完了、失敗といった予測可能な状態を遷移します。
- 運用可視性 — 各ジョブの実行時間、失敗理由、ファイルサイズ、リトライ回数を記録できます。
一般的なバッチ変換のボトルネック
| ボトルネック | 典型的な症状 | 実用的な緩和策 |
|---|---|---|
| 大きなファイル | アップロードがタイムアウトしたり、ワーカーがメモリ不足になる。 | 文書化されたサイズ制限を適用し、可能な限りストリーミングし、キューイング前に未対応入力を拒否します。 |
| 長時間実行ジョブ | 上流プロキシが切断するまでリクエストが開いたままになる。 | ジョブ識別子を即座に返し、バックグラウンドワーカーでファイルを処理します。 |
| トラフィックスパイク | 多数のユーザーが同時にアップロードすると CPU とメモリ使用率が急上昇する。 | ワーカーの同時実行数を制限し、キューでバックプレッシャーを適用します。 |
| 一時的な失敗 | ストレージまたは変換依存関係が短時間失敗する。 | 指数バックオフ付きの制限付きリトライを使用し、元のエラーを保持します。 |
| 無制限の保持 | 一時的な文書が蓄積し、コストやリスクが増大する。 | ソースと出力ファイルのライフサイクルルールを定義します。 |
| 未対応または破損したファイル | 同じ入力でワーカーが繰り返し失敗する。 | 処理前に形式、サイズ、基本的なファイル整合性を検証します。 |
ホスト型変換エンドポイントが提供しない可能性のあるもの
変換プロバイダーを選択する前に、以下をサポートしているか確認してください:
- アプリケーションが必要とする複数の入力フォーマットと特定の出力
- 予測可能なファイルサイズとページ数の制限
- 長時間の HTTP リクエストではなく非同期ジョブ
- リトライ安全または冪等なリクエスト
- リージョン別の処理と保持制御
- 詳細なエラーレスポンスと運用ログ
無料の単一ファイル変換ページは、実稼働のバッチ API の代替になることは稀です。受け入れる制限を文書化し、それに合わせてキューを設計してください。
実践的な Windows と .NET アーキテクチャ
1. キューイング前の検証
ジョブを作成する前に、宣言されたファイルタイプ、実際のファイルシグネチャ、ファイルサイズ、ビジネス固有の制限を確認します。拒否されたファイルには明確な理由を示し、一時的な失敗として再試行されないようにします。
2. 永続的キューの使用
永続的キューはアップロードと変換を分離します。Azure Service Bus、RabbitMQ、またはインフラがサポートする他のキューを使用して、Windows ベースの .NET ワーカー間で作業を分配できます。
メッセージは小さく保ちます。文書は保護されたストレージに保存し、キューにはジョブ識別子とストレージ参照のみを置きます。
3. 同時実行数の制限
ワーカーを増やすことが必ずしもスループット向上につながるわけではありません。変換エンジンは CPU、メモリ、一時ディスク領域、フォント、またはライセンスコンポーネントを争う可能性があります。保守的な同時実行数で開始し、実際の文書で測定し、ホストが安定しているときのみ増やします。
4. ジョブを冪等にする
メッセージは複数回配信される可能性があります。ワーカーはジョブが既に完了していることを認識し、重複出力を防止できる必要があります。決定的な出力キーや完了状態を持つジョブレコードがこの保護を提供します。
5. 出力を安全に保存する
保護されたオブジェクトストレージまたは他の管理されたリポジトリを使用します。保存時の暗号化を適用し、サービス権限を制限し、テンポラリ URL が必要な場合は短期間のアクセスを使用します。
6. 閲覧レイヤーの追加
処理が完了したら、アプリケーションは文書を埋め込みビューアで利用できるようにします。Doconut ビューア は、Web アプリケーションに文書閲覧機能を統合するための .NET ドキュメントビューア SDK です。
ビューアは、アプリケーションの認可フローを通じて文書参照を受け取るべきです。クライアント側のマークアップで永続的な公開 URL やストレージ認証情報を露出しないでください。
セキュリティとプライバシーの考慮事項
意図した信頼境界内にファイルを保持する
文書のフルパスをマッピングします:アップロード、 一時ストレージ、変換ワーカー、出力ストレージ、閲覧、削除。すべてのコンポーネントは必要な権限だけを持つべきです。
転送中および保存時のデータ保護
アップロードおよび内部サービス呼び出しには HTTPS を使用します。ストレージ暗号化を有効にし、シークレットは構成ファイルにコミットするのではなく、プラットフォームのシークレット管理サービスに保管します。
短期間の保持期間を使用する
ソースファイル、変換出力、一時ファイル、失敗ジョブそれぞれに別個の保持ルールを設定します。クリーンアップが放棄されたアップロードやワーカーのクラッシュも対象となることを確認してください。
ビューアコントロールは使いやすさの機能とみなし、絶対的な保護とは考えない
ダウンロードや印刷のコントロールを非表示にすれば意図したワークフローを支援できますが、権限を持つユーザーが表示情報を取得できないことを保証するものではありません。機密性の高いアプリケーションでは、認証、認可、監査コントロール、適切な文書ポリシーが依然として必要です。
有用な監査データの記録
ジョブ識別子、タイムスタンプ、ステータス変更、実行時間、リトライ回数、サニタイズされたエラー詳細をログに記録します。文書内容、署名付き URL、アクセストークン、不要な個人情報をログに残さないようにします。
信頼性の高いバッチの運用ヒント
各文書を個別に追跡する
100 ファイルを含むバッチが、成功か失敗かの不透明な結果になるべきではありません。各文書を個別に追跡し、個々の結果からバッチステータスを算出します。
一時的エラーと永続的エラーを区別する
タイムアウトや一時的なストレージ障害はリトライの根拠となります。暗号化された、破損した、または未対応のファイルは通常ユーザーの対応が必要です。永続的な失敗をリトライすると容量が無駄になり、バッチ全体が遅延します。
明示的な制限を設定する
最大ファイルサイズ、ページ数、バッチサイズ、処理時間を公開します。制限はサービスを保護し、顧客に予測可能な期待を提供します。
全体ワークフローを測定する
キュー待ち時間、変換時間、出力サイズ、ビューアの可用性、失敗率、クリーンアップ成功率を監視します。変換速度だけではユーザー体験を説明できません。
Doconut の位置付け
Doconut はこのアーキテクチャにおける文書閲覧コンポーネントとして最適です。 .NET チームが自社アプリケーションに文書閲覧を埋め込むのを支援し、周辺システムはアップロード、変換ジョブ、認可、ストレージ、保持を担当したままです。
このアプローチが有用になるケースは次のときです:
- ASP.NET アプリケーションに統合されたビューア
- PDF 以外の業務文書フォーマットへの対応
- アプリケーション体験と文書アクセスフローの制御
- 自社インフラ要件に合わせたデプロイモデル
アーキテクチャを最終決定する前に、Doconut ウェブサイト で最新の製品詳細、サポートフォーマット、要件、統合リソースを確認してください。
重要なポイント
- バッチ変換は長時間の Web リクエストではなく、非同期ワークフローとして扱います。
- キューイング前にファイルを検証し、各文書を個別に追跡します。
- 制限された同時実行、冪等ジョブ、保護されたストレージ、明示的な保持を使用します。
- 永続的な失敗とリトライ可能なエラーを分離します。
- 変換、ストレージ、アクセスはアプリケーションが管理し、埋め込み閲覧レイヤーとして Doconut を使用します。
.NET アプリケーションに文書閲覧を追加する
Windows ベースの .NET アプリケーションで統合された文書プレビュー機能が必要な場合は、Doconut ビューア を検討し、利用可能な ダウンロードとドキュメント を確認してください。