3層アーキテクチャーは、アプリケーションを3つの論理的および物理的コンピューティング層に整理する確立されたソフトウェア・アプリケーション・アーキテクチャーです。具体的には、プレゼンテーション層(ユーザー・インターフェース)、データが処理されるアプリケーション層、アプリケーションのデータが保管・管理されているデータ層の3つです。
IBMニュースレター
AI活用のグローバル・トレンドや日本の市場動向を踏まえたDX、生成AIの最新情報を毎月お届けします。登録の際はIBMプライバシー・ステートメントをご覧ください。
ニュースレターは日本語で配信されます。すべてのニュースレターに登録解除リンクがあります。サブスクリプションの管理や解除はこちらから。詳しくはIBMプライバシー・ステートメントをご覧ください。
プレゼンテーション層は、エンド・ユーザーがアプリケーションと対話する場所であるアプリケーションのユーザー・インターフェースおよびコミュニケーション層です。その主な目的は、ユーザーに情報を表示し、ユーザーから情報を収集することです。この最上位層は、Webブラウザー、デスクトップ・アプリケーション、またはグラフィカル・ユーザー・インターフェース(GUI)などで実行できます。Webプレゼンテーション層は、HTML、CSS、およびJavaScriptを使用して開発されます。デスクトップ・アプリケーションは、プラットフォームに応じてさまざまな言語で記述できます。
アプリケーション層は、論理層または中間層とも呼ばれ、アプリケーションの中心となるものです。この層では、ビジネス・ロジック(特定のビジネス・ルール)を使用して、プレゼンテーション層で収集された情報が、場合によってはデータ層の他の情報に対して処理されます。アプリケーション層では、データ層のデータを追加、削除、または変更することもできます。
アプリケーション層は通常、Python、Java、Perl、PHP、またはRubyを使用して開発され、API呼び出しを使用してデータ層と通信します。
データ層は、データベース層、データ・アクセス層、またはバックエンドとも呼ばれ、アプリケーションによって処理される情報が保管および管理される場所です。これは、PostgreSQL、MySQL、MariaDB、Oracle、Db2、Informix、Microsoft SQL Serverなどのリレーショナル・データベース管理システムでも、Cassandra、CouchDB、MongoDBなどのNoSQLデータベース・サーバーでも構いません。
3層アプリケーションでは、すべての通信がアプリケーション層を経由します。プレゼンテーション層とデータ層は相互に直接通信することはできません。
繰り返しになりますが、3層アーキテクチャーの主なメリットは、機能の論理的および物理的な分離です。各層は、その機能要件に最適な個別のオペレーティング・システムおよびサーバー・プラットフォーム(Webサーバー、アプリケーション・サーバー、データベース・サーバーなど)上で実行できます。また、各層は少なくとも1つの専用サーバー・ハードウェアまたは仮想サーバー上で実行されるため、他の層に影響を与えることなく、各層のサービスをカスタマイズおよび最適化できます。
その他のメリット(単一層または2層アーキテクチャーと比較して)には次のものがあります。
3層アーキテクチャーの議論では、「プレゼンテーション・レイヤー」や「ビジネス・ロジック・レイヤー」のように、レイヤーが層と同じ意味で誤って使用されることがよくあります。
この2つは同じではありません。「レイヤー」はソフトウェアの機能的な区分を指しますが、「層」は他の区分とは別のインフラストラクチャー上で実行されるソフトウェアの機能的な区分を意味します。例えば、携帯電話の連絡先アプリは3レイヤーのアプリケーションですが、3つのレイヤーすべてが同じ携帯電話上で実行されているため、単一層のアプリケーションです。
レイヤーは層と同じメリットを提供することはできないため、この違いは重要です。
Web開発において、層は異なる名称を持ちますが、同様の機能を実行します。
3層アーキテクチャーは最も広く採用されている多層アプリケーション・アーキテクチャーですが、仕事や研究で遭遇する可能性があるアーキテクチャーは他にもあります。
2層アーキテクチャーは、プレゼンテーション層とデータ層で構成される、元のクライアント・サーバー・アーキテクチャーです。ビジネス・ロジックがプレゼンテーション層かデータ層、またはその両方に存在します。2層アーキテクチャーでは、プレゼンテーション層(つまりエンド・ユーザー)がデータ層に直接アクセスできるため、ビジネス・ロジックは制限されることがよくあります。ユーザーが連絡先データを入力したり取得したりできる単純な連絡先管理アプリケーションは、2層アプリケーションの一例です。
N層アーキテクチャー(多層アーキテクチャーとも呼ばれる)とは、複数の層を持つ任意のアプリケーション・アーキテクチャーを指します。ただし、アプリケーションが複数の層を持つと、追加の層がほとんどメリットがないため、アプリケーションが遅くなり、管理が難しく、実行コストが高くなる可能性があるため、3層以上のアプリケーションはほとんどありません。その結果、n層アーキテクチャーと多層アーキテクチャーは通常、3層アーキテクチャーの同義語となります。
Javaアプリケーションを開発および配信するためのフルマネージドのシングルテナント・サービス。
DevOpsソフトウェアとツールを使用して、複数のデバイスや環境でクラウドネイティブ・アプリケーションを構築、デプロイ、管理します。
クラウド・アプリケーション開発は、一度構築すれば、迅速に反復し、どこにでもデプロイできます。