5 tầng kiến trúc của một phần mềm
Việc phát triển phần mềm bao gồm việc xây dựng nên một quy trình sau đó tìm hiểu cách phát triển và cải thiện nó. Trong bài viết này chúng ta sẽ xem “Phần mềm giống như một chiếc bánh có 5 lớp”.
Một chiếc bánh hoàn chỉnh với mỗi lớp sẽ đóng góp giá trị vào những thời điểm khác nhau và theo những cách khác nhau. Chúng ta hãy cùng tìm hiểu nhiệm vụ của từng lớp theo cách đơn giản nhất có thể ngay sau đây nhé!
Hosting (Nơi dữ liệu được lưu trữ)
Việc lưu trữ và cung cấp nội dung thông qua Internet được gọi là hosting. Lúc này, máy chủ là nơi lưu trữ tất cả dữ liệu, tệp tin, hình ảnh và cơ sở dữ liệu của bạn. "Web hosting" là một trong những loại dịch vụ hosting phổ biến nhất.
Mục tiêu của Web hosting là cung cấp một máy chủ vật lý có kết nối với Internet để host các trang web. Việc này cho phép bạn truy cập các trang web của mình từ bất kỳ nơi nào, miễn là có kết nối Internet. Việc host một trang web có thể được thực hiện theo nhiều cách khác nhau (Ví dụ: bạn có thể host trang web của mình trên một máy chủ chuyên dụng hoặc một máy chủ ảo.)
Cơ sở dữ liệu (Cách lưu trữ dữ liệu)
Cơ sở dữ liệu là một tập hợp dữ liệu được sắp xếp để dễ dàng truy cập và quản lý. Hệ quản trị cơ sở dữ liệu (DBMS) được thiết kế để người dùng thuận tiện trong việc truy cập và sửa đổi dữ liệu được lưu trữ trong cơ sở dữ liệu.
Có 5 lớp chính bên trong cơ sở dữ liệu:
• Lớp vật lý: là lớp trong cùng và nó quản lý cách dữ liệu được lưu trữ trên đĩa, băng hoặc bất kỳ loại phương tiện lưu trữ lâu dài nào khác.
• Tiếp theo là Lớp quản lý tệp, có nhiệm vụ tổ chức các tệp thành cơ sở dữ liệu và thư mục.
• Lớp logic là lớp thứ ba, nó quản lý cách dữ liệu được định danh và nhóm chúng thành các bản ghi và trường.
• Lớp thứ tư là Lớp giao diện lập trình ứng dụng (API). Lớp này quản lý cách các ứng dụng tương tác với cơ sở dữ liệu.
• External level là lớp trên cùng của cơ sở dữ liệu và nó quản lý cách các ứng dụng hoặc người dùng cuối tương tác với cơ sở dữ liệu.
Lớp Logic (Cách dữ liệu được xử lý)
Lớp logic là thành phần quan trọng nhất của một ứng dụng, chịu trách nhiệm xử lý dữ liệu. Nó được chia thành hai phần: đầu vào (input) và đầu ra (output).
Máy Turing là một đại diện tiêu biểu cho một hệ thống máy tính, bao gồm bộ xử lý trung tâm (CPU) và bộ nhớ. Trong đó, bộ nhớ lưu trữ dữ liệu (thông tin), và CPU truy xuất và thực hiện các lệnh dựa trên dữ liệu đó. Đầu vào có thể là bàn phím, chuột, màn hình cảm ứng hoặc thứ gì đó tương tự, tương tác với phần mềm và tạo đầu ra cho người dùng thông qua cạc đồ họa, màn hình hoặc loa.
Phần mềm có thể được nhúng vào phần cứng hoặc chạy trên hệ điều hành của máy tính. Những phần mềm cấp cao hơn thường phải được chạy trên một hệ điều hành như Windows, Linux hoặc Android,…
API (Cách dữ liệu luân chuyển)
API (giao diện lập trình ứng dụng) là một tập hợp các quy tắc cho phép phần mềm giao tiếp với nhau. API chính là sức mạnh của Internet.
API giúp các hệ thống khác nhau có thể giao tiếp và chia sẻ dữ liệu với nhau. Lợi ích của việc này là một lập trình viên có thể viết một chương trình một lần và tái sử dụng nó cho nhiều trang web khác nhau thay vì phải viết lại khi cần tạo một trang web mới.
Với càng nhiều số lượng API sẵn có, các lập trình viên càng dễ dàng tạo ra các ứng dụng mong muốn với những dữ liệu từ các API này.
Theo định nghĩa cơ bản nhất: API là cách mà hai phần mềm máy tính giao tiếp với nhau. API không có một định nghĩa cố định, chúng có nhiều dạng nhưng đều có chung đặc điểm là luôn có cả đầu vào và đầu ra. Nếu một nhà phát triển muốn sử dụng một API, trước tiên họ phải chuyển dữ liệu vào thông qua các đầu vào của nó. Họ cũng có thể ra yêu cầu để trích xuất thông tin từ nó, tức là đầu ra của nó. Hệ thống đầu vào-đầu ra này rất quan trọng trong việc phát triển các chương trình máy tính có thể truy cập API một cách hiệu quả.
Giao diện người dùng (Cách dữ liệu hiển thị)
Giao diện người dùng, hay UI, là cách mọi người tương tác với một thiết bị hoặc một ứng dụng phần mềm. Mục đích của nó là thể hiện các thành phần và điều khiển và hiển thị thông tin về trạng thái của chúng. Nó bao gồm các phương pháp để người dùng vận hành, kiểm soát và nhận phản hồi từ một ứng dụng. Giao diện người dùng nhận đầu vào từ người dùng trực tiếp (ví dụ: các nút, bàn phím) hoặc gián tiếp thông qua các thiết bị khác như bộ điều khiển cảm biến chuyển động (ví dụ: Microsoft Kinect) hoặc chuột máy tính.
Khi giao diện người dùng đã ổn, chúng ta sẽ đề cập đến vấn đề về trải nghiệm người dùng (UX). Người dùng chính là đối tượng xác định xem liệu UX của một ứng dụng có đủ tốt hay không.
Kết luận:
Hy vọng rằng bài viết này đã giúp bạn nắm được một vài ý chính về các các tầng kiến trúc khác nhau trong một phần mềm thông qua ví dụ đơn giản này. Happy coding!