次のステップは、開発する必要のあるアプリケーションの要件を収集することです。 タスクの目標と範囲を明確にし、作業の階層構造を構築します。
作業の階層構造を構築するタスクを個別に検討します。 各Webアプリケーションは、次のように表すことができます。
つまり、各WebアプリケーションはhttpリクエストをWebサーバーに送信して有用なデータを取得します。 Webサーバーを実行するプログラムは、1つまたは別のモデルを使用してデータを保存します。 現代の世界では、データベース、SQL、またはNoSQLが最もよく使用されます。
正式には、各Webアプリケーションは、相互に独立した3つの部分に分割できます。
- Webブラウザーによって実行されるモジュール。 このアプリケーションは、ブラウザーがサポートする任意の言語で作成できます。 最も一般的に使用されている言語はJavaScriptであり、最もサポートされており、優れたライブラリをサポートしています。 プロジェクトの予算を大幅に節約できるため、これは非常に重要です。
- Webサーバーの制御下でサーバー側で実行されるモジュール。 このアプリケーションは、任意の言語で作成でき、その解釈は選択したWebサーバーでサポートされています。 最近では、多くの場合、プログラミング言語としてJava言語が選択されています。 この言語は強力なライブラリもサポートしています。
- データベース。 この領域にはかなり幅広い選択肢があります。 Oracle、DB2、PostgreSQLなどの産業用データベースがあります。 MySQLなどの軽量データベースがあります。 データベースは、タスクの目標と領域に基づいて選択されます。
Webアプリケーションを設計するための可能な参照モデル。
Webアプリケーションのアーキテクチャを構築するときは、構造単位間の依存を最小限に抑える必要があります。 一般に、アプリケーションは3つの構造単位で構成されます。
- ブラウザーで実行されるモジュール。
- Webサーバーで実行されるモジュール。
- データベース。
これらの構造単位は、2種類の結合を生じさせます。
- ブラウザとサーバー側の間の接続。
- サーバー部分とデータベース間の通信。
構造単位間の最大の独立性の目標を達成するには、各構造単位が必要なデータセットでのみ動作することが必要です。 さらに詳しく考えてみましょう。
ブラウザは、Webページを表示するためのアプリケーションソフトウェアです。
HTMLは標準のドキュメントマークアップ言語です。 最近のほとんどのWebブラウザーはHTMLを解釈できます。
Webサーバーは、クライアントからHTTP要求を受信し、それらを処理し、プロトコル標準に従って応答を送信できるソフトウェアです。
データベースは、客観的な形で提示された独立した資料の集まりであり、コンピューターを使用してこれらの資料を見つけて処理できるように体系化されています(Wiki)
依存関係の最小化
ブラウザーとWebサーバー間の依存関係を最小限に抑えるには、ブラウザーでのみHTMLマークアップ言語を使用し、Webサーバーがページに必要なデータを取得するためのインターフェイスを提供する必要があります。
この問題を解決するには、次のことが必要です。
- 作成されたインターフェースのフレームワーク内で解決されるタスクの目標と範囲を定義します。
- サーバー側APIを定義します。
- サーバーとクライアント部分の間の相互作用のプロトコルを選択します。 プロトコルの作成は、XMLに基づいて最も便利に選択されます。最新のブラウザのほとんどがこの言語をサポートしているためです。
- プロトコルを設定するドキュメントを作成します。
チャートは次のように変換できます。
次に、「ブラウザ」がUML状態図に変換されます。 これらの図は、いずれかのメソッドが呼び出される場合に反映されます。
このモデルには2つの方法で到達できます。
- 「ブラウザ」によって実行されるプログラムはJavaScriptで記述され、AJAXを介してWebサーバーと通信し、特定のプロトコルに従って回答を受け取ります。
- 「ブラウザ」はHTMLコードのみを解釈し、変換はWebサーバー側のXSLT変換を介して行われます。
これらの各ケースでは、Webサーバーのソフトウェア部分と「ブラウザー」の分離が達成されます。 つまり、このモデルを使用すると、「ブラウザ」の構造単位を変更でき、サーバー部分に間接的な変更を加えることはできません。 これは、変更要求の処理コストを削減するため、非常に重要です。 これは、1つの構造単位の変更がそのフレームワークを超えないためです。
Webサーバーとデータベースの相互作用
データベースとWebサーバーの相互作用は、2つの根本的に異なるシナリオに基づいて編成できます。
- ビジネスロジックはデータベースにあります。
- ビジネスロジックはWebサーバーコードにあります。
前者の場合、データベースはデータを保存し、データアクセスインターフェイスを提供します。
- データのサンプリング-表現によって解決されます。
- データ変更-ストアドプロシージャによって解決されます。
Webサーバーのプログラムは、ビジネスロジックにアクセスするためのドライバーです。 つまり、ブラウザにデータベースに実装されているビジネスロジックを接続するだけです。
2番目の場合、データベースはデータを保存し、データへの直接アクセスを提供します。 ビジネスロジックは、Webサーバーコードで実装されます。 この場合、データベースはアトミック操作のトランザクションを提供します。
Webサーバーとデータベース間の依存関係を最小限に抑えるには、ビジネスロジックを1か所でのみ定義する必要があります。 つまり、Webサーバーコードまたはデータベースのいずれかです。 これは、変更要求の処理コストを削減するため、非常に重要です。 これは、1つの構造単位の変更がそのフレームワークを超えないためです。
仕事の階層構造
上記の資料に基づいて、作品の階層構造は次の形式を取ります。
- 「ブラウザ」のモジュール。
- Webサーバー用のモジュール。
- データベースのモジュール。
- ブラウザモジュールとWebサーバー間の交換プロトコル。
- ブラウザモジュールとWebサーバー間の相互作用インターフェイス。
- Webサーバーとデータベース間のインターフェース。