Một số khái niệm quan trọng

1. Mô hình Máy khách-máy chủ (Client-server Model)

Máy khách-máy chủ là một mô hình cấu trúc các nhiệm vụ hoặc khối lượng công việc của một ứng dụng giữa nhà cung cấp tài nguyên hoặc dịch vụ (máy chủ -server) và dịch vụ hoặc người yêu cầu tài nguyên (máy khách – client).

Nói một cách đơn giản, máy khách là ứng dụng yêu cầu một số loại thông tin hoặc thực hiện các hành động, và máy chủ là chương trình gửi (đáp ứng) thông tin hoặc thực hiện các hành động theo những gì máy khách yêu cầu hay thực hiện.

Máy khách thường được đại diện bởi các ứng dụng front-end chạy trên web hoặc ứng dụng dành cho thiết bị di động (mặc dù các nền tảng khác cũng tồn tại và các ứng dụng back-end cũng có thể hoạt động như những ứng dụng khách). Máy chủ thường là các ứng dụng back-end.

Để minh họa điều này bằng một ví dụ, hãy tưởng tượng bạn đang truy cập mạng xã hội yêu thích của mình. Khi bạn nhập URL trên trình duyệt của mình và nhấn enter, trình duyệt của bạn đang hoạt động như một ứng dụng khách và gửi yêu cầu đến máy chủ mạng xã hội, máy chủ này sẽ phản hồi bằng cách gửi cho bạn nội dung của trang web.

Hầu hết các ứng dụng ngày nay đều sử dụng mô hình máy khách-máy chủ. Khái niệm quan trọng nhất cần nhớ về nó là máy khách yêu cầu tài nguyên hoặc dịch vụ mà máy chủ thực hiện.

Một khái niệm quan trọng khác cần biết là máy khách và máy chủ là một phần của cùng một hệ thống, nhưng mỗi máy là một ứng dụng / chương trình của riêng nó. Có nghĩa là chúng có thể được phát triển, lưu trữ và thực thi riêng biệt.

2. API (Application Programming Interface)

Chúng ta vừa đề cập rằng máy khách và máy chủ là các thực thể giao tiếp với nhau để yêu cầu và phản hồi mọi thứ. Cách mà hai phần này thường giao tiếp là thông qua một API (giao diện lập trình ứng dụng).

API không gì khác hơn là một tập hợp các quy tắc được xác định thiết lập cách một ứng dụng có thể giao tiếp với ứng dụng khác. Nó giống như một hợp đồng giữa hai phần có nội dung “Nếu bạn gửi A, tôi sẽ luôn trả lời B. Nếu bạn gửi C, tôi sẽ luôn trả lời D …” và vân vân.

Có bộ quy tắc này, máy khách biết chính xác những gì nó phải yêu cầu để hoàn thành một tác vụ nhất định và máy chủ biết chính xác những gì máy khách sẽ yêu cầu khi phải thực hiện một hành động nhất định.

Có nhiều cách khác nhau để triển khai một API. Thông dụng nhất được sử dụng là REST, SOAP và GraphQl.

Về cách các API giao tiếp, thường thì giao thức HTTP được sử dụng và nội dung được trao đổi ở định dạng JSON hoặc XML. Nhưng các giao thức và định dạng nội dung khác là hoàn toàn có thể.

3. Tính mô-đun (Modularity)

Khi chúng ta nói về “tính mô-đun” trong kiến ​​trúc phần mềm, chúng ta đề cập đến việc thực hành chia những thứ lớn thành những phần nhỏ hơn. Thực hành chia nhỏ mọi thứ này được thực hiện để đơn giản hóa các ứng dụng (applications) hoặc cơ sở mã (codebases) lớn.

Mô-đun có những ưu điểm sau:

  • Nó rất tốt cho việc phân chia các mối quan tâm và các tính năng, giúp hình dung, hiểu và tổ chức một dự án.
  • Dự án có xu hướng dễ bảo trì hơn và ít bị lỗi (errors, bugs) hơn khi nó được tổ chức và chia nhỏ rõ ràng.
  • Nếu dự án của bạn được chia thành nhiều phần khác nhau, mỗi phần có thể được làm việc và sửa đổi riêng biệt và độc lập, điều này thường rất hữu ích.

Tính mô-đun hoặc thực hành chia nhỏ mọi thứ là một phần rất quan trọng của kiến ​​trúc phần mềm.