Cấp N(Nhiều tầng), 3 tầng, 2 tầng Archikiến trúc với VÍ DỤ

⚡ Tóm tắt thông minh

Kiến trúc N-Tier, hay còn gọi là kiến ​​trúc đa tầng, phân phối một ứng dụng trên ba hoặc nhiều lớp riêng biệt như lớp trình bày, lớp logic nghiệp vụ và lớp dữ liệu. Mô hình này cải thiện khả năng mở rộng, bảo mật và khả năng tái sử dụng cho các ứng dụng máy chủ-khách hàng cấp doanh nghiệp.

  • 🏗️ Định nghĩa: Ứng dụng N-Tier được phân phối trên ba hoặc nhiều máy tính riêng biệt trong một mạng phân tán.
  • 🧱 Ba lớp cốt lõi: Các lớp trình bày (giao diện người dùng), logic nghiệp vụ và cơ sở dữ liệu tách biệt rõ ràng các chức năng.
  • 🔢 Các biến thể theo cấp bậc: Các mô hình phổ biến là 1 tầng, 2 tầng và 3 tầng, trong đó mô hình 3 tầng được sử dụng rộng rãi nhất.
  • 🌐 Sử dụng trong thế giới thực: Các trang web như IRCTC, MakeMyTrip và Amazon dựa vào kiến ​​trúc này.
  • Lợi ích chính: Khả năng mở rộng, tính toàn vẹn dữ liệu, khả năng tái sử dụng, bảo mật được cải thiện và tính sẵn sàng.
  • ⚠️ Sự đánh đổi: Càng nhiều lớp thì càng tăng nỗ lực phát triển và độ phức tạp tổng thể của hệ thống.

Cấp N Archikiến trúc

Cấp N là gì?

An Ứng dụng cấp N chương trình là chương trình được phân phối giữa ba hoặc nhiều máy tính riêng biệt trong mạng phân tán.

Hình thức phổ biến nhất của n tầng là Ứng dụng 3 tầng và được phân thành ba loại.

  • Lập trình giao diện người dùng trên máy tính của người dùng
  • Logic nghiệp vụ trong một máy tính tập trung hơn, và
  • Dữ liệu cần thiết trong máy tính quản lý cơ sở dữ liệu.

Mô hình kiến ​​trúc này cung cấp cho các nhà phát triển phần mềm một cách để tạo ra các ứng dụng/hệ thống có thể tái sử dụng với tính linh hoạt tối đa.

In Cấp N, “N” đề cập đến một số cấp bậc hoặc lớp đang được sử dụng, ví dụ như – 2 tầng, 3 tầng hoặc 4 tầng, v.v.. Nó còn được gọi là “Nhiều tầng Archikiến trúc".

Kiến trúc n tầng Đây là mô hình kiến ​​trúc phần mềm đã được chứng minh trong ngành. Nó phù hợp để hỗ trợ các ứng dụng máy chủ-khách hàng cấp doanh nghiệp bằng cách cung cấp các giải pháp về khả năng mở rộng, bảo mật, khả năng chịu lỗi, khả năng tái sử dụng và khả năng bảo trì. Nó giúp các nhà phát triển tạo ra các ứng dụng linh hoạt và có thể tái sử dụng.

Cấp N Archikiến trúc

Ở đây mô tả sơ đồ của hệ thống n tầng – các lớp trình bày, ứng dụng và cơ sở dữ liệu.

Cấp N Archikiến trúc
Cấp N Archisơ đồ kiến ​​trúc

Ba lớp này có thể được chia nhỏ thành các lớp con khác nhau tùy theo yêu cầu.

Một số trang web nổi tiếng đã áp dụng kiến ​​trúc này là:

  • MakeMyTrip.com
  • Ứng dụng doanh nghiệp Sales Force
  • Đường sắt Ấn Độ – IRCTC
  • Amazon.com, v.v.

Một số thuật ngữ thông dụng cần ghi nhớ để hiểu rõ hơn khái niệm:

  • Mạng phân phối: Đây là một kiến ​​trúc mạng trong đó các thành phần đặt tại các máy tính trong mạng phối hợp và truyền đạt hành động của chúng chỉ bằng cách gửi thông điệp. Nó là một tập hợp gồm nhiều hệ thống đặt tại các nút khác nhau nhưng lại hiển thị cho người dùng như một hệ thống duy nhất.
    • Nó cung cấp một mạng truyền thông dữ liệu duy nhất có thể được quản lý riêng biệt bởi các mạng khác nhau.
    • Một ví dụ về Mạng phân tán – trong đó các máy khách khác nhau được kết nối trong kiến ​​trúc mạng LAN ở một phía và ở phía khác, chúng được kết nối với các bộ chuyển mạch tốc độ cao cùng với một giá đỡ máy chủ chứa các nút dịch vụ.
  • Máy khách-Máy chủ Archikiến trúc: Đây là một mô hình kiến ​​trúc trong đó máy khách (một chương trình) yêu cầu một dịch vụ từ máy chủ (một chương trình khác). tức là Đây là dịch vụ yêu cầu-phản hồi được cung cấp qua internet hoặc mạng nội bộ. Trong mô hình này, Khách hàng sẽ phục vụ như một bộ chương trình/mã thực thi một bộ hành động qua mạng. Trong khi của chúng tôimặt khác, là một tập hợp của một chương trình khác, gửi các tập hợp kết quả đến hệ thống máy khách theo yêu cầu.
    • Trong mô hình này, máy tính khách cung cấp giao diện cho người dùng cuối để yêu cầu một dịch vụ hoặc tài nguyên từ máy chủ, và mặt khác, máy chủ sẽ xử lý yêu cầu và hiển thị kết quả cho người dùng cuối.
    • Một ví dụ về mô hình Client-Server là máy ATM. Ngân hàng đóng vai trò là máy chủ xử lý các ứng dụng trong cơ sở dữ liệu khách hàng khổng lồ, còn máy ATM là máy khách có giao diện người dùng với một số chức năng xử lý ứng dụng đơn giản.
  • Nền Tảng: Trong khoa học máy tính hoặc ngành công nghiệp phần mềm, nền tảng là một hệ thống mà trên đó một chương trình ứng dụng có thể chạy. Nó bao gồm sự kết hợp giữa phần cứng và phần mềm có chứa các lệnh được lập trình sẵn để bộ xử lý/vi xử lý thực hiện các thao tác cụ thể.
    • Nói một cách đơn giản hơn, nền tảng là một hệ thống hoặc một cơ sở mà bất kỳ ứng dụng nào cũng có thể chạy và thực thi để hoàn thành một nhiệm vụ cụ thể.
    • Một ví dụ về Nền tảng - Một máy cá nhân được tải với Windows 2000 hoặc Mac OS X là ví dụ về 2 nền tảng khác nhau.
  • Cơ sở dữ liệu: Nó là một tập hợp thông tin một cách có tổ chức để có thể dễ dàng truy cập, quản lý và cập nhật.
    • Ví dụ về Cơ sở dữ liệu – MySQL, SQL Máy chủ và Oracle Database Dưới đây là một số cơ sở dữ liệu phổ biến.

Các loại cấp N Archikiến trúc

Có nhiều loại N-Tier khác nhau Archikết cấu, như 3 tầng Archikiến trúc, 2 tầng Archikết cấu và 1 tầng Archikiến trúc.

Đầu tiên chúng ta sẽ thấy 3 tầng Archikiến trúc, điều này rất quan trọng.

3-Cấp Archikiến trúc

Nhìn vào sơ đồ dưới đây, bạn có thể dễ dàng nhận ra rằng Kiến trúc 3 tầng có ba lớp khác nhau.

  • Lớp trình bày
  • Lớp logic nghiệp vụ
  • Lớp cơ sở dữ liệu
Tầng 3 Archisơ đồ kiến ​​trúc
Tầng 3 Archisơ đồ kiến ​​trúc

Ở đây, chúng ta đã lấy một ví dụ đơn giản về mẫu đơn học sinh để hiểu rõ cả ba lớp thông tin này. Mẫu đơn này chứa thông tin về học sinh như: Tên, Địa chỉ, Email và Ảnh.

Lớp giao diện người dùng hoặc Lớp trình bày

3-Cấp Archikiến trúc

Lớp trình bày

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 Giải thích

  • Đoạn mã trên định nghĩa thiết kế cơ bản cho giao diện người dùng của ứng dụng cũng như việc gọi các hàm của các lớp khác để chúng có thể được tích hợp với nhau.

Lớp truy cập doanh nghiệp –

Đây là chức năng của lớp nghiệp vụ chấp nhận dữ liệu từ lớp ứng dụng và chuyển nó đến lớp dữ liệu.

  • Logic nghiệp vụ đóng vai trò là giao diện giữa lớp Client và lớp truy cập dữ liệu.
  • Tất cả logic nghiệp vụ – như xác thực dữ liệu, tính toán, chèn/sửa đổi dữ liệu – đều được viết ở lớp logic nghiệp vụ.
  • Nó giúp việc giao tiếp giữa máy khách và lớp dữ liệu trở nên nhanh chóng và dễ dàng hơn.
  • Xác định một hoạt động quy trình công việc thích hợp cần thiết để hoàn thành một nhiệm vụ.
// 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;
	}
}

Giải thích mã

Đoạn mã này sử dụng chức năng của lớp nghiệp vụ, chức năng này sẽ nhận dữ liệu từ lớp ứng dụng và chuyển tiếp đến lớp dữ liệu. Mã của lớp nghiệp vụ đóng vai trò trung gian giữa các hàm được định nghĩa trong lớp trình bày và lớp dữ liệu, và gọi các hàm theo chiều ngược lại.

Lớp truy cập dữ liệu

Đây là chức năng lớp dữ liệu, nhận dữ liệu từ lớp nghiệp vụ và thực hiện các thao tác cần thiết vào cơ sở dữ liệu.

// 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;
	}
}

Giải thích mã

Đoạn mã được định nghĩa trong lớp dữ liệu ở trên chấp nhận toàn bộ yêu cầu từ hệ thống và thực hiện các thao tác cần thiết trên cơ sở dữ liệu.

2-Cấp Archikiến trúc

Giống như kiến ​​trúc Máy khách-Máy chủ, trong đó giao tiếp diễn ra giữa máy khách và máy chủ.

Trong loại kiến ​​trúc phần mềm này, lớp trình bày hay lớp giao diện người dùng chạy ở phía máy khách, trong khi lớp dữ liệu được thực thi và lưu trữ ở phía máy chủ.

Không có lớp logic nghiệp vụ hay lớp trung gian nào giữa máy khách và máy chủ.

Cấp đơn hoặc 1 cấp Archikiến trúc

Đây là phương pháp đơn giản nhất, vì nó tương đương với việc chạy ứng dụng trên máy tính cá nhân. Tất cả các thành phần cần thiết để ứng dụng hoạt động đều nằm trên một ứng dụng hoặc máy chủ duy nhất.

Lớp trình bày, lớp logic nghiệp vụ và lớp dữ liệu đều nằm trên một máy.

Ưu điểm và nhược điểm của nhiều tầng Archikiến trúc

Cũng như bất kỳ lựa chọn thiết kế nào, phương pháp đa tầng mang lại những lợi ích rõ ràng cùng với một vài sự đánh đổi, được tóm tắt dưới đây.

Ưu điểm Nhược điểm
khả năng mở rộng Tăng cường nỗ lực
Ngày Integrity Tăng độ phức tạp
Tái sử dụng
Giảm phân phối
Cải thiện an ninh
Cải thiện tính khả dụng

Do đó, nó là một phần của chương trình mã hóa các vấn đề kinh doanh trong thế giới thực và xác định cách dữ liệu có thể được cập nhật, tạo, lưu trữ hoặc thay đổi để hoàn thành nhiệm vụ.

Cấp N ArchiMẹo và phát triển kiến ​​trúc

Vì các chuyên gia phần mềm cần phải kiểm soát hoàn toàn tất cả các lớp của kiến ​​trúc, dưới đây là một số lời khuyên về kiến ​​trúc đa tầng:

  1. Hãy cố gắng tách rời các lớp khỏi nhau càng nhiều càng tốt bằng cách sử dụng kỹ thuật như SOAP XML.
  2. Sử dụng một số công cụ tự động để tạo bản đồ.ping Giữa lớp logic nghiệp vụ và lớp cơ sở dữ liệu quan hệ (lớp dữ liệu). Các công cụ có thể giúp mô hình hóa bản đồ này.ping Các kỹ thuật đó là Entity Framework và Hibernate cho .Net, v.v.
  3. Trong lớp trình bày phía máy khách, hãy đặt mã chung cho tất cả các máy khách vào một thư viện riêng biệt càng nhiều càng tốt. Điều này sẽ tối đa hóa khả năng tái sử dụng mã cho tất cả các loại máy khách.
  4. Lớp bộ đệm có thể được thêm vào lớp hiện có để tăng tốc hiệu suất.

Câu Hỏi Thường Gặp

Lớp (layer) là sự phân tách logic của mã, chẳng hạn như mã trình bày hoặc mã logic nghiệp vụ. Tầng (tier) là sự phân tách vật lý của các lớp đó trên các máy khác nhau. Nhiều lớp có thể chạy trên một tầng, hoặc mỗi lớp có thể có tầng riêng của nó.

Không. MVC là một mô hình thiết kế để tổ chức mã nguồn trong một ứng dụng, trong khi kiến ​​trúc 3 tầng tách biệt vật lý giữa phần trình bày, logic và dữ liệu trên các tầng khác nhau. Các thành phần của MVC tương tác tự do, trong khi các lớp của kiến ​​trúc 3 tầng giao tiếp theo thứ tự từ trên xuống dưới nghiêm ngặt.

Các lựa chọn phổ biến bao gồm .NET, Java (Spring) và Node.js cho logic nghiệp vụ, HTML/JavaCác khung kịch bản cho bài thuyết trình và các cơ sở dữ liệu như... MySQL, SQL Server, hoặc Oracle Đối với lớp dữ liệu. Các ORM như Entity Framework và Hibernate kết nối các lớp này.

Trí tuệ nhân tạo (AI) thường được tích hợp vào lớp logic nghiệp vụ hoặc như một tầng dịch vụ riêng biệt. Nó hỗ trợ các tính năng như đề xuất, phát hiện gian lận và tìm kiếm, trong khi lớp trình bày và dữ liệu vẫn không thay đổi.ping Kiến trúc có tính mô-đun và dễ bảo trì.

Đúng vậy. Hệ thống giám sát dựa trên AI có thể dự đoán các đợt tăng đột biến lưu lượng truy cập và tự động mở rộng quy mô từng cấp độ một cách độc lập. Nó cũng có thể cân bằng tải, phát hiện các điểm nghẽn và tối ưu hóa các truy vấn cơ sở dữ liệu, giúp ích.ping Các ứng dụng máy chủ-khách hàng quy mô lớn vẫn duy trì khả năng phản hồi nhanh chóng ngay cả khi nhu cầu thay đổi.

Tóm tắt bài viết này với: