ハイパーメディア駆動のアプリケーション アーキテクチャ ガイド

ハイパーメディア駆動アプリケーション アーキテクチャ (HDA) アーキテクチャは、ネットワーク アプリケーションを構築する新しい方法です。従来のマルチページ アプリケーション (MPA) のシンプルさと柔軟性と、シングルページ アプリケーション (SPA) の優れたユーザー エクスペリエンスを組み合わせています。

HDA アーキテクチャは、既存の HTML インフラストラクチャを拡張することでこれを実現し、ハイパーメディア開発者がより強力なハイパーメディア駆動のインタラクションを作成できるようにします。

REST のアーキテクチャ上の制約に続いて、HDA アーキテクチャを特徴付ける 2 つの制約があります。

  • HDA は、フロントエンドの対話性を向上させるために、命令型スクリプトではなく、宣言型の HTML 埋め込み構文を使用します。

  • HDA は、非ハイパーメディア形式 (JSON など) ではなく、ハイパーメディア (HTML など) を使用してサーバーと対話します。

これら 2 つの制約を採用することにより、HDA アーキテクチャは、SPA アーキテクチャではできない元の RESTful アーキテクチャを維持します。

特に、HDA はアプリケーション状態のエンジン (HATEOAS) としてハイパーメディアを使用し続けますが、ほとんどの SPA は HATEOAS を放棄し、クライアント側のモデルとデータ (ハイパーメディアではなく) API を優先します。

HDA アーキテクチャは、元のマルチページ アプリケーション (MPA) アーキテクチャと (比較的) 新しいシングルページ アプリケーション アーキテクチャという 2 つの以前のアーキテクチャを統合したものです。

MPA のシンプルさと信頼性、およびアプリケーション状態のエンジンとしてハイパーメディアを使用する REST アーキテクチャの両方の長所を取り込みながら、多くの場合 SPA に匹敵する優れたユーザー エクスペリエンスを提供します。

注: ハイパーメディア駆動アプリケーション アーキテクチャ (ハイパーメディア駆動アプリケーション アーキテクチャ) は、アプリケーションの動作を駆動するためのハイパーメディア要素 (リンクや埋め込みリソースなど) の使用に重点を置いたアプリケーションを設計および開発するためのアプローチです。ハイパーメディア駆動のアプリケーション アーキテクチャは、REST (Representational State Transfer) アーキテクチャ スタイルと密接に関連していますが、アプリケーション内のアプリケーション状態 (アプリケーション データと動作の組み合わせ) のエンジンとしてハイパーメディアを使用することに重点を置いています。

ハイパーメディア駆動のアプリケーション アーキテクチャの中心的な考え方は、アプリケーションの各部分をリンクすることで、発見、拡張、保守が容易なシステムを作成できるということです。このアーキテクチャの主な利点には、疎結合、拡張性、柔軟性が含まれます。つまり、既存の機能に悪影響を与えることなく、システムの変更や拡張をより簡単に行うことができます。

以下に、ハイパーメディア駆動型アプリケーション アーキテクチャの重要な概念と原則をいくつか示します。

  1. リソース: ハイパーメディア駆動のアプリケーション アーキテクチャでは、リソースは情報の基本単位です。リソースには、ドキュメント、写真、ビデオ、またはその他の種類のデータが含まれます。各リソースには、リソースを識別してアクセスするために使用される一意の識別子 (URL など) があります。

  2. 表現: リソースの表現は、ネットワーク経由で転送してクライアントに提示できる何らかの形式のリソースです。表現は、HTML、XML、JSON、またはその他の形式のドキュメントにすることができます。

  3. ハイパーメディア: ハイパーメディアは、リソースを接続するリンクとコントロールです。ハイパーメディアを使用すると、クライアントは他のリソースに移動したり、リンクをクリックしたりコントロールをアクティブにしたりしてアクションを実行できます。このナビゲートおよび操作機能により、クライアントは考えられるすべてのアクションとリソースの場所を事前に知る必要がないため、アプリケーションが動的になります。

  4. ハイパーメディア コントロール: ハイパーメディア コントロールは、ナビゲーションを提供するだけでなく、クライアントがアクションを実行できるようにする特殊なタイプのハイパーメディア要素です。これらのコントロールは、リソースの作成、更新、削除、またはその他のアクションの実行に使用できるフォーム、ボタン、またはその他の対話型要素です。

  5. 疎結合: ハイパーメディア駆動のアプリケーション アーキテクチャは、URL やリソース識別子をハードコーディングするのではなく、リソースをリンクすることによって疎結合を実現します。これは、リソースの場所や構造が変更されても、クライアントは変更せずに作業を継続できることを意味します。

  6. 自己記述型メッセージ: ハイパーメディア駆動のアプリケーション アーキテクチャでは、メッセージ (HTTP リクエストや応答など) には、その意味と処理要件を説明するのに十分な情報が含まれている必要があります。これにより、クライアントは、外部実装に依存せずに、メッセージの内容に基づいてメッセージを処理する方法を自分で決定できるようになります。

おすすめ

転載: blog.csdn.net/i042416/article/details/131362045