サービス接続: 静的と動的
VB Studioのサービス接続は、サービスOpenAPIメタデータによって定義されます。このメタデータには、サービスへの接続に必要な使用可能なエンドポイントと詳細が記述されます。 接続でこのサービス・メタデータを取得する方法。静的または動的に取得できます。 どちらのオプションにも長所と短所があります。
https://service.com/openapidef
にあるとします。 サービス接続を設定して、次の2つの方法のいずれかでこの定義を取得できます:
- 開発時にサービス定義を
https://service.com/openapidef
からコピーし、ビジュアル・アプリケーションのソースに保存します。 つまり、サービス接続が最初に作成されたときにアプリケーションに保存されたサービス・メタデータ(staticサービス接続)を静的に取得します。 - 常に
https://service.com/openapidef
からサービス定義を取得します。 つまり、「動的」サービス接続を開くたびに、ソースURLからサービス・メタデータを動的に取得します。 この場合のサービス定義は、VB Studioの外部にあるOpenAPIドキュメントへのポインタである"reference"のみです。
サービス接続ウィザードでは、メタデータ取得オプションを使用して、サービス・メタデータの取得方法を指定できます:
図static-dynamic-serviceconnections-appui.pngの説明
各オプションが提供するものは次のとおりです:
- サービス定義が頻繁に変更され、特に開発中に物事が急速に進化している場合にこれらの更新を含める場合は、「メタデータの動的な取得」を選択します。 つまり、動的サービス接続を作成することで、アプリケーションUIを開くたびにサービス・メタデータがフェッチされるため、サービス定義に追加された新しいフィールドがアプリケーションUIで使用可能であることが保証されます。 これにより、新しいフィールドを含め、エンドポイントに加えられたすべての変更が選択されます。 メタデータは常に最新です。
ノート:
サービス仕様を提供するサービス接続、またはカタログから導出されたサービス接続(特にOracle Cloudアプリケーション・バックエンド)に対してのみ、メタデータを動的に取得できます。
- ランタイム・パフォーマンスを向上させるには、アプリケーション・オプションに対する「完全なOpenAPIをアプリケーションにコピー」を検討してください。 動的サービス接続は、個々のエンドポイントのみでなく、リソース全体をプルし、
openapi3.json
メタデータ・ファイルを保護できないようにすることができます。 「値リスト(LOV)を自動的に含める」チェック・ボックスも選択すると、ファイルのサイズがさらに大きくなります。 スキーマの複雑さやネットワーク・レイテンシなどのファクタと、メタデータの動的に取得するには、取得と処理に時間がかかる場合があります。 「完全なOpenAPIのコピー」オプションを使用し、アプリケーションに必要なエンドポイントのみを選択すると、より高速な取得のためにエンドポイント定義がアプリケーションにローカルに格納されるため、パフォーマンスが向上します。 - 開発用の動的サービス接続の作成を検討し、アプリケーションを本番用に準備したら接続を静的接続に変換することもできますが、より適切なオプションがあります: 最小のOpenAPIをアプリケーションにコピー。 このオプションは、ADF Describeを指すサービス接続を作成するときに、両方の長所を提供します。
「最小のOpenAPIをアプリケーションにコピー」オプションは、ADF Describe (Oracle Cloud ApplicationsのADF BCベースのREST APIなど)に基づいており、限定されたメタデータを取得するための記述エンドポイントが最小限であるサービスに対してのみ使用できます。 このオプションは、静的なサービス接続と同様に、拡張ソースで選択したエンドポイントのサービス・メタデータを格納しますが、それらのエンドポイントの最小限の記述のみがコピーされます。 また、動的サービス接続に似たパラメータ・スキーマまたはリクエスト/レスポンス・スキーマも動的に取得されます。 ただし、これは必要な場合(ユーザーがエンドポイント・レスポンスで表をバインドしようとする場合など)にのみ実行されます。拡張がオープンされるたびにかぎりません。 最小のOpenAPIのみが、選択したエンドポイントのアプリケーションにのみコピーされるため、メタデータ・ファイルのサイズは縮小されます。 また、スキーマ・オブジェクトがまだ参照されているため、必要に応じて最新のサービス定義は動的に取得されます。 最適なパフォーマンスを得るには、ADF記述ベースのサービスに推奨されるオプションです。
サービス接続オプション | メリット | 短所 |
---|---|---|
「完全なOpenAPIをアプリケーションにコピー」 (Static) | サービス・メタデータがアプリケーション・ソースからローカルに取得されるため、パフォーマンスが向上 | アプリケーションは最新のサービス定義から同期されておらず、最近のカスタマイズがない可能性があります。 また、完全なサービス・メタデータ(子オブジェクトを含む)がアプリケーション・ソースに保存されるため、このメタデータが非常に大きい場合、ランタイム・パフォーマンスに影響する可能性があります。 |
「メタデータの動的な取得」 (Dynamic) | アプリケーションの最新のサービス定義を提供 | パフォーマンスが影響を受ける場合がありますが、必ずしも影響を受けるとはかぎりません |
「最小のOpenAPIをアプリケーションにコピーします(推奨)」 (静的+動的)
「Oracle Cloudアプリケーション」などのADF記述ベースのサービスでのみ使用可能です |
最小限のサービス・メタデータが格納され、アプリケーション・ソースから迅速に取得できるため、詳細なエンドポイント選択も可能です。 動的に参照されるスキーマ・オブジェクトにより、最新のリクエスト/レスポンス・スキーマを取得できます。 | スキーマ・オブジェクトを取得すると、パフォーマンスが影響を受ける可能性があります |
サービス接続を作成するオプションはどれでも、「サービス接続の変換(静的から動的または動的から静的)」の説明に従っていつでも切り替えることができます。 また、「サービス・エンドポイントの管理」で説明されているように、サービス接続を編集してエンドポイントを追加することもできます。