5 mẫu kiến trúc phần mềm, hệ thống phổ biến hiện nay

Mục Lục Nội Dung I. 5 mẫu kiến trúc phần mềm, hệ thống phổ biến #1. Kiến trúc phân lớp (Layered Architecture) #2. Client – Server #3. Model – View – Controller (MVC) #4. Kiến trúc Microservices #5. Kiến trúc hướng sự kiện II. Lời kết Chào các bạn, kể từ khi các phần mềm…

17/01/2022
0
348
5 mẫu kiến trúc phần mềm, hệ thống phổ biến hiện nay
  • Thủ thuật chặn virus từ USB, cách phòng chống virus lây từ USB
  • Cách Ghost máy tính ở chuẩn UEFI và ổ cứng GPT (chuẩn 100%)
  • Cách chia sẻ File trong mạng Lan trên máy tính Windows chuẩn nhất
  • 3 cách thay đổi địa chỉ Mac trên Windows 7/ 8/ 10/ 11 an toàn
  • Hướng dẫn hiển thị đuôi file trên Windows XP/ 7/ 8/ 10/ 11
  • Cách soạn văn bản khi bị liệt bàn phím cực hay & hữu ích
  • Cách tạo máy ảo VMware Workstation trên Windows 7/ 8/10/ 11.. (cực dễ)
  • TOP phần mềm tạo ổ đĩa ảo hữu ích trên máy tính
  • Kinh nghiệm sử dụng Laptop và những thói quen xấu nên bỏ
  • Cách cài máy in cho máy tính và cài qua mạng LAN 2025
  • Đánh giá Perplexity: Một AI đang rất được ưa chuộng
  • Cách tạo phân vùng boot EFI, MSR và Recovery cho chuẩn UEFI/GPT
Loading…

Chào các bạn, kể từ khi các phần mềm được ra đời thì chúng đã được phát triển qua nhiều dạng khác nhau. Từ các trò chơi đen trắng cho tới những siêu ứng dụng mà chúng ta dùng hàng ngày như Facebook, Youtube…

Vậy đã bao giờ các bạn thắc mắc làm sao mà người ta tạo ra được những ứng dụng đó chưa? làm thế nào mà người ta thiết kế ra được những ứng dụng với số lượng người dùng nhiều như thế?

Trong bài viết hôm nay mình sẽ cùng các bạn tìm hiểu 5 mẫu kiến trúc phần mềm, hệ thống phổ biến nhất hiện nay. Biết đâu qua bài viết này thì các bạn sẽ phần nào hình dung ra được người ta đã tạo ra các phần mềm mà chúng ta vẫn dùng hàng ngày như thế nào ^^

I. 5 mẫu kiến trúc phần mềm, hệ thống phổ biến

Đọc thêm:

#1. Kiến trúc phân lớp (Layered Architecture)

Trong tiếng Anh, cụm từ “N-tier architecture” hoặc “Multi-tiered architecture” thường được dùng để mô tả cho kiến trúc phân lớp.

5-mau-kien-truc-phan-mem-he-thong-pho-bien (1)

Đây là một mẫu thiết kế khá phổ biến khi mã nguồn (source code) được phân chia thành các tầng (tiers). Một vài đặc điểm của kiến trúc kiểu này:

+ Tầng ngoài cùng sẽ là tầng nhận dữ liệu, dữ liệu sẽ được truyền tải (xử lý) thông qua các tầng trung gian. Cuối cùng, sau khi đã xử lý xong thì dữ liệu sẽ được lưu lại ở tầng cuối cùng (thường gọi là data tier – tầng này làm việc trực tiếp với database)

+ Đơn giản nhất mà chúng ta thường thấy là mô hình 3 tầng (three tiers) gồm có: Presentation Tier, Application Tier và Data Tier.

+ Trong đó Presentation Tier thường là tầng giao diện, tương tác trực tiếp với người dùng để nhận dữ liệu. Application Tier thường là tầng nhận dữ liệu và thực hiện xử lý các logic nghiệp vụ (còn được gọi là Business logic tier). Data tier là tầng thực hiện tương tác với cơ sở dữ liệu.

Ưu điểm:

+ Quá trình bảo trì khá là dễ dàng vì code được phân tầng rất rõ và các tầng hoàn toàn tách biệt.

+ Cấu trúc mã nguồn đơn giản, dễ hiểu cho người mới.

Nhược điểm:

+ Source code về lâu dài sẽ “phình to ra” theo kích thước dự án.

+ Một phần lớn code đôi khi chỉ đảm nhiệm việc trung chuyển dữ liệu giữa các tầng, gây ảnh hưởng tới hiệu năng của ứng dụng.

#2. Client – Server

Mô hình Client – Server (máy chủ – máy khách) có lẽ không còn xa lạ với nhiều người nữa. Mô hình này bao gồm một máy chủ và nhiều máy khách kết nối với máy chủ đó.

5-mau-kien-truc-phan-mem-he-thong-pho-bien (2)

Một vài đặc điểm của mô hình này đó là:

+ Máy khách sẽ gửi yêu cầu tới máy chủ và đợi phản hồi từ máy chủ.

+ Khi máy chủ chấp nhập yêu cầu từ máy khách nó sẽ tạo một kết nối tới máy khách đó thông qua giao thức mạng bảo mật (thường là https).

Có rất nhiều ứng dụng, dịch vụ đang sử dụng mô hình này. Tiêu biểu có thể kể đến đó là dịch vụ gửi và nhận Email.

Ưu điểm:

+ Máy khách có thể truy cập tài nguyên dữ liệu của máy chủ thông qua các truy cập được bảo mật. Điều này giúp cho việc chia sẽ dữ liệu dễ dàng hơn khi ở xa.

+ Với mô hình này chúng ta không quá phụ thuộc vào công nghệ vì có thể sử dụng bất cứ ngôn ngữ lập trình nào phù hợp.

+ Việc bảo trì sẽ dễ dàng cho phân chia trách nhiệm máy khách, máy chủ rõ ràng.

Nhược điểm:

+ Nhược điểm lớn nhất có thể thấy của mô hình này là sức chịu tải của server khi có quá nhiều yêu cầu từ các máy khách khác nhau.

+ Ngoài ra, mô hình này nếu không đảm bảo được bảo mật đường truyền thì rất dễ bị ăn cắp dữ liệu.

#3. Model – View – Controller (MVC)

Tiếp theo chúng ta sẽ cùng tìm hiểu về một mô hình thiết kế phần mềm rất phổ biến nữa đó là mô hình MVC (Model – View – Controller)

5-mau-kien-truc-phan-mem-he-thong-pho-bien (3)

Với mô hình này, chúng ta chia làm 3 thành phần: Applications’ data model, Presentation Layer (view) và Controller. Đặc điểm chung của mô hình này là:

+ Người dùng có thể tương tác với dữ liệu ứng dụng thông qua tầng view. Nhưng ngược lại tầng này lại không thể quyết định người dùng làm gì với dữ liệu.

+ Tầng Controller đứng giữa Model và View. Tầng view sẽ lắng nghe các sự kiện và tầng controller sẽ thực hiện các sự kiện đó. Thường hành động này sẽ gọi một hàm tới tầng model và kết quả sẽ được trả lại và hiển thị ở view.

Có rất nhiều web framework đang triển khai mô hình này giống như Spring hay Rails. Chính vì vậy nhiều ứng dụng vẫn đang sử dụng mô hình này.

Ưu điểm:

+ Mô hình này thúc đẩy quá trình phát triển phần mềm vì cả 3 thành phần view, model, controller có liên hệ chặt chẽ với nhau.

+ Do tầng view chỉ có trách nhiệm hiển thị và truyền nhận dữ liệu nên có thể hiển thị nhiều view khác nhau cho người dùng (trong khi dữ liệu không đổi)

+ Các thay đổi giao diện người dùng là cực kỳ phổ biến đối với các ứng dụng web nhưng với mô hình MVC giao diện có thể tùy biến mà không ảnh hưởng

Nhược điểm:

+ Do 3 thành phần view, model, controller liên kết và tương tác chặt chẽ với nhau nên khi có một lớp mới thì sẽ khó để tích hợp.

+ Nhà phát triển cũng phải tìm hiểu nhiều công nghệ nếu muốn làm chủ được mô hình này.

#4. Kiến trúc Microservices

Trong những năm trở lại đây, với sự phát triển của các siêu ứng dụng thì khái niệm Microservices cũng được nhiều người biết đến hơn.

5-mau-kien-truc-phan-mem-he-thong-pho-bien (1)

Microservices là mô hình kiến trúc nơi các dịch vụ được triển khai riêng biệt, trong đó mỗi dịch vụ sẽ có một nhiệm vụ chính. Các dịch vụ này thường sẽ độc lập với nhau để khi một dịch vụ lỗi thì các dịch vụ khác vẫn hoạt động bình thường.

Mình lấy ví dụ khi bạn đặt xe trên các ứng dụng đặt xe thì bạn sẽ phải đăng nhập, đặt xe và hệ thống sẽ tìm tài xế gần bạn nhất…

Nếu theo mô hình mircoservice thì việc đăng nhập có thể tách thành một service riêng, việc đặt xe có thể tách thành một service riêng…

Các dịch vụ này hoạt động độc lập, nếu chức năng đặt xe hỏng bạn vẫn có thể đăng nhập bình thường chỉ là không đặt được xe nữa.

Ưu điểm:

+ Việc chia ứng dụng thành các chức năng nhỏ giúp cho quá trình phát triển, kiểm thử và bảo trì nhanh hơn, ít lỗi hơn.

+ Tránh được việc khi ứng dụng “chết” là cả hệ thống “sập” mà thay vào đó tăng tính linh hoạt và độc lập giữa các chức năng với nhau.

+ Có thể tái sử dụng các service ở các ứng dụng khác

Nhược điểm:

+ Có thể sẽ tiêu tốn nhiều tài nguyên phần cứng hơn do phải xây dựng nhiều server để triển khai nhiều service nhỏ.

+ Đội ngũ phát triển sẽ phải sử dụng khá nhiều công nghệ để đảm bảo hệ thống hoạt động trơ tru, tránh bị sấp hoặc quá tải.

#5. Kiến trúc hướng sự kiện

5-mau-kien-truc-phan-mem-he-thong-pho-bien (4)

Có những ứng dụng mà các thành phần (chức năng) chỉ hoạt động khi có xử lý dữ liệu và khi không có xử lý thì không hoạt động.

Với kiến trúc hướng sự kiện này chúng ta có thể liên tưởng tới các ứng dụng di động hoặc các ứng dụng desktop đều được thiết kế với kiến trúc này.

Ưu điểm:

+ Với việc xử lý theo sự kiện giúp cho ứng dụng có thể xử lý nhiều logic phức tạp

+ Đây là một kiến trúc có khă năng mở rộng tốt do nếu muốn thêm mới một thành phần chỉ cần thêm các sự kiện mới cho các thành phần đó.

Nhược điểm:

+ Có nhiều chức năng, thành phần liên quan đến nhau khiến cho việc kiểm thử đôi khi gặp khó khăn.

+ Nhiều chức năng khác nhau đôi khi lại xử lý cùng một sự kiện sẽ dẫn đến lỗi…

II. Lời kết

Trên đây là 5 mẫu kiến trúc, thiết kế phần mềm mình thấy khá phổ biến hiện nay. Mỗi mẫu thiết kế đều có những ưu điểm, nhược điểm riêng.

Còn trên thực tế sẽ còn rất nhiều mẫu thiết kế ứng dụng, phần mềm khác có thể kể đến như Blackboard, Intercepter, Peer-to-Peer…

Khi phát triển một ứng dụng hay xây dựng một hệ thống thì việc chọn thiết kế, kiến trúc thích hợp sẽ giúp tối ưu được rất nhiều chi phí và giúp dễ dàng mở rộng sau này. Hẹn gặp lại các bạn trong các bài viết tiếp theo.

CTV: Nguyễn Đức Cảnh – Blogchiasekienthuc.com

Bạn đánh giá bài viết này mấy sao 🙂

Loading…

5 mẫu kiến trúc phần mềm, hệ thống phổ biến hiện nay | Blogchiasekienthuc.com

Bài Viết Liên Quan

  • Thủ thuật chặn virus từ USB, cách phòng chống virus lây từ USB

    Thủ thuật chặn virus từ USB, cách phòng chống virus lây từ USB

  • Cách Ghost máy tính ở chuẩn UEFI và ổ cứng GPT (chuẩn 100%)

    Cách Ghost máy tính ở chuẩn UEFI và ổ cứng GPT (chuẩn 100%)

  • Cách chia sẻ File trong mạng Lan trên máy tính Windows chuẩn nhất

    Cách chia sẻ File trong mạng Lan trên máy tính Windows chuẩn nhất

  • 3 cách thay đổi địa chỉ Mac trên Windows 7/ 8/ 10/ 11 an toàn

    3 cách thay đổi địa chỉ Mac trên Windows 7/ 8/ 10/ 11 an toàn

  • Hướng dẫn hiển thị đuôi file trên Windows XP/ 7/ 8/ 10/ 11

    Hướng dẫn hiển thị đuôi file trên Windows XP/ 7/ 8/ 10/ 11

  • Cách soạn văn bản khi bị liệt bàn phím cực hay & hữu ích

    Cách soạn văn bản khi bị liệt bàn phím cực hay & hữu ích

  • Cách tạo máy ảo VMware Workstation trên Windows 7/ 8/10/ 11.. (cực dễ)

    Cách tạo máy ảo VMware Workstation trên Windows 7/ 8/10/ 11.. (cực dễ)

  • TOP phần mềm tạo ổ đĩa ảo hữu ích trên máy tính

    TOP phần mềm tạo ổ đĩa ảo hữu ích trên máy tính

Theo dõi
Thông báo của
0 Góp ý
Mới nhất
Cũ nhất Được bỏ phiếu nhiều nhất
Phản hồi nội tuyến
Xem tất cả bình luận
Đăng Ký Hosting Azigi để được hỗ trợ MIỄN PHÍ
  • Thủ thuật tự động mở lần lượt các link có trong file *.TXT
  • HitPaw Photo AI: Chỉnh sửa ảnh bằng AI cực kỳ mạnh mẽ
  • Trên tay Ba lô Solo NY Define UBN708: an toàn, tiện lợi, rộng rãi
  • Cách tạo VPS Windows trên Microsoft Azure
  • Apple M4: Hệ quả vội vàng của việc Apple chậm chân trong cuộc chạy đua AI?
  • Đóng các ứng dụng trên iPhone là hành động lãng phí thời gian, khiến máy hao pin hơn

AI (5) Android (15) Apple (19) Bill Gates (4) bài học cuộc sống ý nghĩa (58) bài học thành công (58) bàn phím (4) bảo mật (12) cafe's công nghệ (8) camera (1759) Canva (9) CapCut (11) ChatGPT (5) chuột máy tính (5) chụp ảnh (5) con trỏ chuột (4) cá nhân hóa windows (6) Câu chuyện cảm hứng (58) công nghệ (1758) cộng đồng (1758) danh ngôn về tình bạn (58) Dark Mode (4) Download trình duyệt web (3) driver (4) dịch ngôn ngữ (4) Elon Musk (6) Excel (4) Facebook (25) fake ip (5) firewall (3) Galaxy Fold (4) game giả lập PS2 (4) game mini (33) game pc (35) game việt hóa (4) Google (7) Google Chrome (10) hướng dẫn sử dụng windows 10 (27) hỏi đáp (1758) icloud (3) ios (3) iphone (11) Jeff Bezos (7) khoa học (1758) kĩ thuật (1758) kỹ năng mềm (59) kỹ năng sống (58) lỗi máy tính (1758) lỗi điện thoại (1758) Mozilla Firefox (4) máy tính (1758) mẹo vặt (1758) nghệ thuật giao tiếp (58) nghệ thuật sống (58) những câu nói hay (58) những câu nói thâm thúy (58) office 2019 (3) office 2021 (4) Paint (3) pdf (6) phần mềm (9) phần mềm thiết kế (6) phục hồi dữ liệu (4) quy tắc giao tiếp (58) Samsung (7) smartphone (4) stt hay thâm thúy (58) Sống hay sống đẹp (58) sống hạnh phúc (58) sửa lỗi (1758) sửa lỗi mạng (3) sửa lỗi windows (13) sự cố (1758) Telegram (6) thảo luận (1758) thủ thuật laptop (10) Thủ thuật văn phòng (6) thủ thuật windows (65) Thủ thuật Windows 7 (3) Thủ thuật Windows 8/8.1 (3) Thủ thuật Windows 10 (10) thủ thuật điện thoại (5) Tin học cơ bản (5) tiện ích mở rộng (5) truyện ngắn hay (58) tư vấn windows (4) tải video (5) tối ưu (4) UEFI (5) USB (9) usb boot (4) vcop (3) Virtua Cop (3) vpn (4) Windows 11 (63) xử lý ảnh (4) Zalo (10) điều khiển máy tính từ xa (5) ứng dụng chụp ảnh (3) ứng dụng điện thoại (22)