ホーム
Topics
3層アーキテクチャーとは
3層アーキテクチャーは、アプリケーションを、プレゼンテーション層(つまりユーザー・インターフェース)、アプリケーション層(データの処理が行われる)、データ層(アプリケーションに関連付けられたデータの保存と管理が行われる)の3つの論理層と物理コンピューティング層に編成する、定評のあるソフトウェア・アプリケーション ・アーキテクチャーです。
3層アーキテクチャーの主なメリットは、それぞれの層が独自のインフラストラクチャーで稼働するため、各層を個別の開発チームが同時に開発できること、また、他の層に影響を与えずに必要に応じて各層の更新または拡張を行えることです。
何十年もの間、3層アーキテクチャーは、クライアント/サーバー・アプリケーションのための一般的なアーキテクチャーでした。 現在、ほとんどの3層アプリケーションは、コンテナやマイクロサービスなどのクラウドネイティブ・テクノロジーを使用したモダナイゼーションとクラウドへの移行の対象になっています。
プレゼンテーション層とは、アプリケーションのユーザー・インターフェースかつアプリケーションの通信層であり、エンド・ユーザーはこの層でアプリケーションと対話します。 その主な目的は、ユーザーに情報を表示し、情報をユーザーから収集することです。 この第1層は、デスクトップ・アプリケーションである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層アーキテクチャーの議論では、レイヤー が、層 と同じ意味で使われることがよくあります。層と互換的に、「プレゼンテーション・レイヤー」や「ビジネス・ロジック・レイヤー」のように誤用されることがあるのです。
層とレイヤーは同じではありません。 「レイヤー」とは、ソフトウェアの機能部を指しますが、「層」とは、他の部分から分離してインフラストラクチャーで実行されるソフトウェアの機能部を指します。 例えば、電話の連絡先アプリは、3レイヤー・アプリケーションですが、3つのレイヤーがすべてその電話上で機能するため、1層 のアプリケーションです。
この違いは重要です。レイヤーには層と同じメリットがないためです。
繰り返しますが、3層アーキテクチャーの主要なメリットは、機能が論理的、物理的に分離されていることです。 各層は、機能要件に最適な個別のオペレーティング・システムとサーバー・プラットフォーム(Webサーバー、アプリケーション・サーバー、データベース・サーバーなど)で実行できます。 各層は、少なくとも1つの専用サーバー・ハードウェアまたは仮想サーバー上で稼働するため、各層のサービスのカスタマイズと最適化を、他の層に影響を与えずに行うことができます。
その他のメリット(1層または2層アーキテクチャーと比較して)には以下のようなものがあります。
Web開発では、層は異なる名前になりますが、同様に機能します。
3層アーキテクチャーは、簡単に最も広く採用されている多層アプリケーション・アーキテクチャーですが、業務や研究において、その他の多層アーキテクチャーが使用されている場合もあります。
2層アーキテクチャーは、プレゼンテーション層とデータ層で構成される、本来のクライアント/サーバー型アーキテクチャーです。ビジネス・ロジックは、プレゼンテーション層、データ層、またはその両方で使用されます。 2層アーキテクチャーでは、プレゼンテーション層(結果的にエンド・ユーザー)がデータ層に直接アクセスでき、ビジネス・ロジックが制限されることがよくあります。 ユーザーが連絡先データの入力と取得を行うことができる単純な連絡先管理アプリケーションは、2層アプリケーションの一例です。
N層アーキテクチャー(多層アーキテクチャーとも呼ばれます)は、複数の層を持つすべて のアプリケーション・アーキテクチャーを指します。 しかし、3層以上のアプリケーションは稀です。これは、それ以上のレイヤーにはほとんどメリットがなく、アプリケーションが遅くなり、管理が難しくなり、実行にコストがかかるようになる可能性があるためです。 結果として、N層アーキテクチャーと多層アーキテクチャーは、通常、3層アーキテクチャーの同義語です。
Red Hat OpenShiftソフトウェアで稼働するオープンでコンテナ化されたIBM認定の統合ソリューション、IBM Cloud Pak®を使用することで、クラウドへの移行を迅速化できます。
IBM Cloud®を使用して、VMwareのワークロードとアプリケーションをシームレスにモダナイズします。
既存のアプリケーションのモダナイズと新しいアプリケーションの構築をサポートしながら、コストを削減してROIを最大限に高めます。