Windchill の入力/出力機能用の仮想ファイルシステム
|
|
現在、仮想ファイルシステム機能はベータプレビュー段階であり、バージョン 13.0.2.4 以降でオンプレミスの Windchill で使用できるようになります。この機能はまもなくリリースされる Windchill+ の新しい展開で使用できるようになります。
|
Windchill+ では、クラウドベースの仮想ファイルシステム (VFS) を介した入力/出力機能のカスタマイズがサポートされています。VFS は PTC が管理する仮想ストレージで、これによって外部アプリケーションがファイルの読み取り、書き込み、および削除を行うことができます。VFS でファイルを使用できる場合、カスタマイズコードが、サポートされている API を使用してファイルの読み取り、書き込み、および削除を行い、Windchill で対応するオブジェクトを管理します。
サポートされている API の使用を理解するには、
「参照ドキュメント | PTC」に記載されているクラス
com.ptc.windchill.vfs.FileSystemUtils に関する Windchill JavaDoc を参照してください。
ユースケース
外部システムが 1 つのファイルストアで複数のファイル (XML、JSON など) を生成および保存しているとします。PTC が管理する VFS と Windchill+ カスタマイズコードを使用して、以下を実行できます。
• ファイルストアから VFS にファイルをアップロードする。Windchill+ を展開した後に、PTC がこの VFS の SAS URL を提供します。
• VFS で使用できるファイルを識別して読み取るためのカスタマイズコードを呼び出し、対応するオブジェクトを Windchill に作成する。このカスタマイズコードは、Windchill でサポートされている API を使用し、CCD を介してサブミットされます。
|
|
テキスト、ZIP、アーカイブ、バイナリなどのすべてのファイルフォーマットがサポートされています。実行可能ファイルを使用しないことを強くお勧めします。
|
サンプルカスタマイズ
このサンプルカスタマイズは、VFS API がどのように入力/出力機能を有効にするかを示しています。このサンプルカスタマイズをオンプレミスの Windchill 開発環境で実行します。これにより、CCD を介してサブミットしたカスタマイズが Windchill+ 環境で機能するようになります。
オンプレミスの Windchill 開発環境で、次のコマンドを実行します。
xconfmanager -s "vfs.container.level.sas.url=<SAS URL>" -t codebase/wt.properties -p
PTC が、カスタマイズを実行および検証するための一時的な SAS URL を提供します。
| このコンフィギュレーションは、Windchill+ 展開で既成で提供されます。 |
サンプルカスタマイズを実行するための必要条件:
• 次のコマンドを実行して (Linux の場合)、IntegrationsExample サンプルを /opt/ptc にコピーします。
cp -rp $WT_HOME/prog_examples/IntegrationsExample/customization /opt/ptc
• 作業ディレクトリを $WT_HOME/bin/customizationTools に変更します。
cd $WT_HOME/bin/customizationTools
• ant を使用して、データのコンパイル、展開、および読み込みを行います。
ant compile deploy load.data
| 必要条件の詳細については、$WT_HOME/prog_examples/IntegrationsExample フォルダにある readme.md を参照してください。 |
次の手順に従って、サンプルカスタマイズを実行します。
1. サイト管理者またはサイトビジネス管理者としてログインします。
3. ワークフロー「ACME FileSystemUtils サンプル」を開始します。
ワークフローが正常に完了した後、次のようになります。
• Parent-Folder-<timestamp> という名前のフォルダが VFS に作成され、このフォルダにサンプルファイルが追加されます。
• VFS 内のサンプルファイルごとに、ACME 製品でドキュメントが作成されます。これらのドキュメントは、acmeorgadmin としてログインすることによって表示できます。
• VFS 内の .txt ファイルはサンプルテキストによって更新され、ファイル名に _updated.txt が追加されます。
• Windchill ドキュメントのプライマリコンテンツを使用して、WTDocs.zip という名前の zip ファイルが同じフォルダに作成されます。
• VFS のコンテナレベルの SAS URL を使用して、_updated.txt と WTDocs.zip を除くすべてのファイルが VFS から削除されることを確認します。
Windchill+ 開発環境で、成功したオンプレミス環境からの実装に基づいて、カスタマイズコードを作成し、CCD パッケージを使用してサブミットできます。
| VFS で java.util.zip.ZipOutputStream と ZipInputStream を使用して、BLOB 内の zip コンテンツを管理できます。ただし、現在の実装でサポートされているのは、1 つの ZipOutputStream あたり最大 50,000 個の zip エントリです。 |
VFS について
• 一時的なストレージ: VFS は、一時的な保存先 (カスタマイズコードのテンポラリフォルダなど) として機能します。使用後に VFS からコンテンツまたはファイルを削除することをお勧めします。
• 自動削除: VFS のコンテンツまたはファイルは 7 日後に自動的に削除されます。これらは削除すると復元できません。この 7 日間にカスタマイズコードが VFS のコンテンツを使用し、削除することが理想的です。
• バックアップと復元: VFS は一時的なストレージであるため、そのコンテンツまたはファイルはバックアップされません。したがって...
◦ システムバックアップが 1 日目に行われてから、新しいファイル (N 個) が VFS に追加され、カスタマイズコードによって使用されたあとに削除されるとします。
◦ その後、システム全体が 1 日目のスナップショットに復元された場合、追加、消費、および削除された N 個のファイルは再びアップロード、消費、および削除されなければなりません (必要な場合)。
• 孤立した環境: 各 Windchill+ 環境には独自の孤立した VFS があります。したがって、Windchill+ 展開が複数ある場合、CCD パッケージを環境 E1 に展開してから環境 E2 にプロモートするときに、その CCD パッケージ内のカスタマイズコードが特定の VFS のコンテンツから独立して動作するように設計されていなければなりません。これは、VFS のコンテンツが Windchill 環境によって異なる可能性があるためです。
• ホスト再設定およびプロモーションの場合、デフォルトではソース環境またはステージング環境からの VFS のコンテンツを使用することはできません。関連するカスタマイズコードが呼び出される前に、VFS のコンテンツまたはファイルが使用可能であることを確認してください。
• オンプレミスの Windchill から Windchill Plus へのマイグレーション中、または Windchill Plus 環境内でのマイグレーション中 (開発環境から QA 環境または QA 環境から本番環境)、デフォルトでは VFS のコンテンツは使用できません。したがって、VFS のコンテンツを使用するカスタマイズはすべて失敗します。マイグレーションが正常に行われたあとに、VFS にコンテンツまたはファイルをアップロードしてから、カスタマイズを介して VFS の機能を使用してください。
VFS ベータ版機能は、次のユースケースで検証されています。
• Windchill と Azure Blob Storage が異なる地域にある場合の IO 操作は、両方が同じ地域にある場合と比較してスループットが大幅に低下します。
• Windchill カスタマイズによって作成されて VFS に書き込まれたコンテンツは、1GB のサイズまで検証されています。
• VFS API を使用すると、Windchill とストレージアカウントが同じ地域にある場合、142103 エントリを含む 3.84 GB のサイズの zip ファイルが 59 分で適切に作成されます。
• 同時実行:
◦ VFS から複数のスレッドを同時に読み取ることができます。
◦ zip ファイルへの書き込みはシングルスレッドでなければなりません。
• 回復性:
◦ zip ファイルにエントリを追加する際にエラーが発生した場合、その整合性は保証されません。また、zip ファイルフォーマットでは、書き込まれたエントリの編集はサポートされていません。したがって、VFS でのファイルの書き込み中に例外が発生した場合、数秒から数分の短い中断を挟んで、複数回再試行するメカニズムを準備する必要があります。
| 大きなコンテンツの VFS への書き込み中にエラーが発生した場合は、クラウドネイティブインフラストラクチャ固有の潜伏性と一時的なエラーを考慮して再試行を試みる必要があります。 |