N層(多層)、3層、2層 Archi例を使用した構造

⚡ スマートサマリー

N層アーキテクチャ(マルチ層アーキテクチャとも呼ばれる)は、プレゼンテーション層、ビジネスロジック層、データ層など、3つ以上の独立した層にアプリケーションを分散させるアーキテクチャです。このモデルは、エンタープライズレベルのクライアント/サーバーアプリケーションのスケーラビリティ、セキュリティ、および再利用性を向上させます。

  • 🏗️ 定義: N層アプリケーションは、分散ネットワーク内の3台以上の独立したコンピュータに分散されます。
  • 🧱 3つのコアレイヤー: プレゼンテーション層(ユーザーインターフェース)、ビジネスロジック層、データベース層は、それぞれの役割を明確に分離している。
  • 🔢 階層のバリエーション: 一般的なモデルとしては、1層、2層、3層があり、中でも3層が最も広く使われている。
  • 🌐 実際の使用例: IRCTC、MakeMyTripなどのサイト、 Amazon このアーキテクチャに依存します。
  • 主なメリット: 拡張性、データ整合性、再利用性、セキュリティの向上、および可用性。
  • ⚠️ トレード・オフ: レイヤーが増えるほど、開発の手間とシステム全体の複雑さが増す。

N層 Archi構造

N層とは何ですか?

An N層アプリケーション プログラムは、分散ネットワーク内の XNUMX 台以上の個別のコンピュータに分散されるプログラムです。

n 層の最も一般的な形式は 3 層アプリケーションであり、XNUMX つのカテゴリに分類されます。

  • ユーザーのコンピュータでのユーザー インターフェイス プログラミング
  • より集中化されたコンピューター内のビジネス ロジック、および
  • データベースを管理するコンピュータ内に必要なデータ。

このアーキテクチャモデルは、ソフトウェア開発者が最大限の柔軟性を備えた再利用可能なアプリケーション/システムを作成するための方法を提供する。

In N層、「N」 使用されている階層やレイヤーの数を指します。 2段、3段、4段など。 「」とも呼ばれます多層 Archi構造"

n層アーキテクチャ は、業界で実績のあるソフトウェアアーキテクチャモデルです。拡張性、セキュリティ、耐障害性、再利用性、保守性といった課題に対するソリューションを提供することで、エンタープライズレベルのクライアント/サーバーアプリケーションをサポートするのに適しています。開発者が柔軟で再利用可能なアプリケーションを作成するのに役立ちます。

N層 Archi構造

ここでは、プレゼンテーション層、アプリケーション層、データベース層を n 層システムの図で表現しています。

N層 Archi構造
N層 Archi構造図

これら XNUMX つの層は、要件に応じてさらに異なるサブ層に分割できます。

このアーキテクチャを採用している人気サイトには、以下のようなものがあります。

  • MakeMyTrip.com
  • Sales Force エンタープライズ アプリケーション
  • インド鉄道 – IRCTC
  • Amazon.comなど

概念をより明確に理解するために、覚えておくと良い一般的な用語をいくつか紹介します。

  • 分散ネットワーク: これは、ネットワークコンピュータに配置されたコンポーネントがメッセージのやり取りのみによって動作を調整・通信するネットワークアーキテクチャです。複数のシステムが異なるノードに配置されていますが、ユーザーには単一のシステムとして認識されます。
    • 異なるネットワークで個別に管理できる単一のデータ通信ネットワークを提供します。
    • 分散ネットワークの一例として、異なるクライアントが一方ではLANアーキテクチャ内で接続され、他方では高速スイッチとサービスノードを含むサーバーラックに接続されている構成が挙げられます。
  • クライアントサーバー Archi構造: これは、クライアント(1 つのプログラム)がサーバー(別のプログラム)にサービスを要求するアーキテクチャ モデルです。 すなわち これは、インターネットまたはイントラネットを介して提供されるリクエスト/レスポンスサービスです。このモデルでは、 クライアント ネットワーク上で一連のアクションを実行する XNUMX つのプログラム/コード セットとして機能します。 その間 サーバー一方、 は、要求に応じて結果セットをクライアント システムに送信する別のプログラムのセットです。
    • この方式では、クライアントコンピュータがエンドユーザーに対して、サーバーからサービスやリソースを要求するためのインターフェースを提供し、一方、サーバーは要求を処理して結果をエンドユーザーに表示する。
    • クライアント・サーバーモデルの一例として、ATM機が挙げられます。銀行は、大規模な顧客データベース内でアプリケーションを処理するサーバーであり、ATM機は、簡単なアプリケーション処理機能を備えたユーザーインターフェースを持つクライアントです。
  • プラットフォーム: コンピュータ科学やソフトウェア業界において、プラットフォームとはアプリケーションプログラムを実行できるシステムのことです。これは、プロセッサ/マイクロプロセッサが特定の操作を実行するための命令が組み込まれたハードウェアとソフトウェアの組み合わせで構成されています。
    • もっと簡単に言うと、プラットフォームとは、あらゆるアプリケーションが特定のタスクを実行するために利用できるシステムまたは基盤のことです。
    • プラットフォームの例 – を搭載した個人用マシン Windows 2000 つの異なるプラットフォームの例として、2 または Mac OS X があります。
  • データベース: これは、簡単にアクセス、管理、更新できるように、整理された方法で情報が集められたものです。
    • データベースの例 – MySQL, SQL サーバー、および Oracle Database 一般的なデータベースには以下のようなものがあります。

N 層の種類 Archi構造

N 層にはさまざまな種類があります Archi構造など 3層 Archi構造、2層 Archi構造と1層 Archi構造。

まず、3 層を見てみましょう Archi非常に重要な構造です。

3層 Archi構造

以下の図を見ると、それを簡単に識別できます。 3層アーキテクチャ には XNUMX つの異なるレイヤーがあります。

  • プレゼンテーション層
  • ビジネスロジック層
  • データベース層
3層 Archi構造図
3層 Archi構造図

ここでは、これら3つの層を理解するために、学生フォームの簡単な例を取り上げます。このフォームには、学生の名前、住所、メールアドレス、写真などの情報が含まれています。

ユーザーインターフェイス層またはプレゼンテーション層

3層 Archi構造

プレゼンテーション層

private void DataGrid1_SelectedIndexChanged(object sender, System.EventArgs e)
{
// Object of the Property layer
clsStudent objproperty=new clsStudent();
// Object of the business layer
clsStudentInfo objbs=new clsStudentInfo();
// Object of the dataset in which we receive the data sent by the business layer
DataSet ds=new DataSet();
// here we are placing the value in the property using the object of the
//property layer
objproperty.id=int.Parse(DataGridl.SelectedItem.Cells[1].Text.ToString());

// In this following code we are calling a function from the business layer and
// passing the object of the property layer which will carry the ID till the database.
ds=objbs.GetAllStudentBsIDWise(objproperty);

// What ever the data has been returned by the above function into the dataset
//is being populate through the presentation laye.
txtId.Text=ds.Tables[0].Rows[0][0].ToString();
txtFname.Text=ds.Tables[0].Rows[0][1].ToString();
txtAddress.Text=ds.Tables[0].Rows[0][2].ToString();
txtemail.Text=ds.Tables[0].Rows[0][3].ToString();

Code 説明

  • 上記のコードは、アプリケーションのフロントエンドビューの基本的な設計と、他のレイヤーの関数呼び出しを定義しており、これにより各レイヤーが相互に統合されるようになっています。

ビジネスアクセス層 –

これは、アプリケーション層からデータを受け取り、それをデータ層に渡すビジネス層の機能です。

  • ビジネスロジックは、クライアント層とデータアクセス層の間のインターフェースとして機能します。
  • データ検証、計算、データ挿入/変更といったすべてのビジネスロジックは、ビジネスロジック層の下に記述されます。
  • これにより、クライアントとデータ層間の通信がより迅速かつ容易になります。
  • タスクを完了するために必要な適切なワークフロー アクティビティを定義します。
// this is the function of the business layer which accepts the data from the
//application layer and passes it to the data layer.
public class clsStudentInfo
{
	public DataSet GetAllStudentBsIDWise(clsStudent obj)
	{
	 DataSet ds=new DataSet();
	 ds=objdt.getdata_dtIDWise(obj);// Calling of Data layer function
	 return ds;
	}
}

コードの説明

このコードは、アプリケーション層からデータを受け取り、データ層に渡すビジネス層の関数を使用しています。ビジネス層のコードは、プレゼンテーション層とデータ層で定義された関数間の仲介役として機能し、逆にこれらの関数を呼び出します。

データアクセス層

これは、ビジネス レイヤーからデータを受信し、データベースに対して必要な操作を実行するデータ レイヤー機能です。

// this is the datalayer function which is receiving the data from the business
//layer and performing the required operation into the database

public class clsStudentData // Data layer class
{
	// object of property layer class
	public DataSet getdata_dtIDUise(clsStudent obj)
	{
	 DataSet ds;
	 string sql;
	 sql="select * from student where Studentld=" +obj.id+ "order by Studentld;
	 ds=new DataSet();
	//this is the datalayer function which accepts the sql query and performs the
	//corresponding operation
		ds=objdt.ExecuteSql(sql);
		return ds;
	}
}

コードの説明

上記のデータセット層で定義されたコードは、システムから要求されたリクエスト全体を受け取り、データベースに対して必要な操作を実行します。

2層 Archi構造

これは、クライアントとサーバーの間で通信が行われるクライアント サーバー アーキテクチャに似ています。

このタイプのソフトウェアアーキテクチャでは、プレゼンテーション層(ユーザーインターフェース層)はクライアント側で実行され、データセット層はサーバー側で実行および保存されます。

クライアントとサーバーの間には、ビジネスロジック層や中間層は存在しません。

単一層または 1 層 Archi構造

これは最もシンプルな方法で、アプリケーションをパーソナルコンピュータ上で実行するのと同等です。アプリケーションの実行に必要なすべてのコンポーネントが、単一のアプリケーションまたはサーバー上に存在します。

プレゼンテーション層、ビジネス ロジック層、データ層はすべて XNUMX 台のマシン上にあります。

多層の長所と短所 Archi構造

他の設計上の選択と同様に、多層構造のアプローチには明確な利点がある一方で、いくつかのトレードオフも伴います。以下にその概要を示します。

優位性 デメリット
拡張性 労力の増加
Rescale データ Integrity 複雑さの増大
再利用性
配布の縮小
セキュリティの向上
可用性の向上

したがって、これは現実世界のビジネス上の問題を暗号化し、完全なタスクを完了するためにデータを更新、作成、保存、または変更する方法を決定するプログラムの一部です。

N層 Archi構造のヒントと開発

ソフトウェア専門家はアーキテクチャのすべてのレイヤーを完全に制御する必要があることを考慮し、n層アーキテクチャに関するヒントを以下に示します。

  1. SOAP XMLのような技術を用いて、各レイヤー間の結合をできる限り弱めるようにしてください。
  2. 自動化ツールを使用して地図を生成するping ビジネスロジック層とリレーショナルデータベース層(データ層)の間。これらのマッピングをモデル化するのに役立つツールping 技術としては、.NET向けのEntity FrameworkやHibernateなどがあります。
  3. クライアントプレゼンター層では、すべてのクライアントに共通するコードを可能な限り別のライブラリにまとめてください。これにより、あらゆる種類のクライアントにおけるコードの再利用性を最大限に高めることができます。
  4. キャッシュ レイヤーを既存のレイヤーに追加して、パフォーマンスを高速化できます。

よくあるご質問

レイヤーとは、プレゼンテーション層やビジネスロジック層など、コードの論理的な区分を指します。ティアとは、それらのレイヤーを物理的に異なるマシンに分離したものです。複数のレイヤーを1つのティア上で実行することも、各レイヤーをそれぞれ独自のティアに配置することも可能です。

いいえ。MVCは、1つのアプリケーション内でコードを整理するための設計パターンであり、3層アーキテクチャは、プレゼンテーション、ロジック、データを物理的に各層に分離します。MVCコンポーネントは自由に相互作用しますが、3層アーキテクチャでは、各層は厳密なトップダウンの順序で通信します。

一般的な選択肢には、.NET、 Java (Spring)、ビジネスロジックにはNode.js、HTML/Javaプレゼンテーション用のスクリプトフレームワーク、およびデータベースなど MySQLSQL Server、または Oracle データ層に関しては、Entity FrameworkやHibernateなどのORMが各層を接続します。

AI は通常、ビジネスロジック層または独立したサービス層として追加されます。AI は、レコメンデーション、不正検出、検索などの機能を実現し、プレゼンテーション層とデータ層は変更されずに維持されます。ping アーキテクチャはモジュール式で保守性が高い。

はい。AI 駆動型監視はトラフィックの急増を予測し、各階層を個別に自動スケーリングできます。また、負荷分散、ボトルネックの検出、データベースクエリの最適化も可能です。ping 大規模なクライアントサーバーアプリケーションは、変化する需要に対しても応答性を維持します。