N層(多層)、3層、2層 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 いくつかの一般的な DB があります。

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();

コードの説明

  • 上記のコードは、アプリケーションのフロントエンド ビューの基本設計と、他のレイヤーの関数の呼び出しを定義して、それらを相互に統合できるようにします。

ビジネスアクセス層 –

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

  • ビジネス ロジックは、クライアント層とデータ アクセス層の間のインターフェイスとして機能します。
  • データの検証、計算、データの挿入/変更などのすべてのビジネス ロジックは、ビジネス ロジック層の下に記述されます。
  • クライアントとデータ層間の通信がより高速かつ簡単になります。
  • タスクを完了するために必要な適切なワークフロー アクティビティを定義します。
// 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構造

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

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

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

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

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

まとめ

N 層アーキテクチャは、アプリケーションのすべてのコンポーネント (ビジネス層、プレゼンテーション層、データベース層) を 1 つの屋根の下で管理するのに役立ちます。

ローカル エリア ネットワーク上で少数のユーザーを使用するアプリケーションは、n 層アーキテクチャのメリットを享受できます。

このようなアーキテクチャ設計により、インターネット上でアプリケーションを効率的に維持、拡張、展開できるようになります。