CodeGym/Blog Java/Ngẫu nhiên/Phần 2. Hãy nói một chút về kiến trúc phần mềm
John Squirrels
Mức độ
San Francisco

Phần 2. Hãy nói một chút về kiến trúc phần mềm

Xuất bản trong nhóm
Tài liệu này là một phần của loạt bài "Giới thiệu về Phát triển Doanh nghiệp" . Phần đầu tiên, về kết nối mạng, ở đây . Phần 2. Nói một chút về kiến ​​trúc phần mềm - 1Kiến trúc phần mềm đề cập đến cấu trúc được tạo trong một ứng dụng, tức là toàn bộ các mô-đun và thành phần của chương trình và cách chúng tương tác. Các lập trình viên đã làm việc trên các kiến ​​trúc tốt trong một thời gian rất dài, vì vậy không có gì ngạc nhiên khi chúng ta đã nghe nói về rất nhiều mẫu kiến ​​trúc. Bạn cần hiểu chúng: khi viết một ứng dụng web, điều quan trọng là phải đưa ra một kiến ​​trúc tốt, bởi vì một ứng dụng web có nhiều thành phần và mô-đun hơn một ứng dụng thông thường. Một mô hình kiến ​​trúclà một cách thông minh để giải quyết một số vấn đề thiết kế phần mềm. Bạn có thể đã bắt gặp các mẫu thiết kế như phương thức xuất xưởng, nhà máy trừu tượng, trình xây dựng, nguyên mẫu, đơn lẻ và có thể là những mẫu khác. Chúng tôi sử dụng chúng khi viết mã, tạo lớp và lập kế hoạch cách các lớp sẽ tương tác. Các mẫu kiến ​​trúc được sử dụng ở mức trừu tượng cao hơn, khi lập kế hoạch tương tác của người dùng với máy chủ, dữ liệu và các thành phần khác. Chúng ta hãy xem nhanh một số mẫu và cách sử dụng chúng.

Kiến trúc máy khách-máy chủ

Cái tên tạo ấn tượng rằng mọi thứ về mẫu này đều đơn giản và rõ ràng. Nhưng hãy làm rõ một số điểm để khi bắt đầu học Spring, bạn sẽ hiểu chúng ta đang nói về điều gì. Giả sử bạn đã viết một ứng dụng trò chuyện và bạn cùng một người bạn bắt đầu sử dụng ứng dụng đó. Bạn có thể áp dụng một cách tiếp cận rất đơn giản, gửi tin nhắn cho nhau trực tiếp qua Internet bằng các địa chỉ IP đã biết: Phần 2. Nói một chút về kiến ​​trúc phần mềm - 2Lúc đầu, mọi thứ dường như hoạt động tốt cho đến khi một người bạn khác của bạn yêu cầu tham gia trò chuyện. Vì vậy, khi bạn quyết định thêm bạn chung của mình vào cuộc trò chuyện, bạn gặp phải một vấn đề về kiến ​​trúc: đối với mỗi người tham gia trò chuyện, bạn cần cung cấp thông tin hiện tại về số lượng người dùng và địa chỉ IP của người dùng mới. Và khi một tin nhắn được gửi đi, nó cần được gửi đến tất cả những người tham gia. Đây là những vấn đề rõ ràng nhất sẽ phát sinh. Một loạt các vấn đề khác sẽ được ẩn trong chính mã. Để tránh chúng, bạn cần sử dụng một máy chủ, sẽ lưu trữ tất cả thông tin về người dùng, bao gồm cả địa chỉ của họ. Tin nhắn chỉ cần được gửi đến máy chủ. Đến lượt nó, nó sẽ gửi tin nhắn đến từng người nhận. Khi bạn quyết định thêm phần máy chủ vào ứng dụng trò chuyện của mình, bạn đang bắt đầu xây dựng kiến ​​trúc máy khách-máy chủ.

Các thành phần của kiến ​​trúc client-server

Hãy xem tất cả những gì về nó. Kiến trúc máy khách-máy chủ là một mẫu thiết kế được sử dụng để tạo các ứng dụng web. Kiến trúc này bao gồm ba thành phần: Phần 2. Nói một chút về kiến ​​trúc phần mềm - 3
  1. Máy khách — Từ tên của nó, chúng ta có thể biết rằng thành phần này sử dụng một số dịch vụ (ứng dụng web), liên hệ với máy chủ để yêu cầu một số thông tin.

  2. Máy chủ — Đây là nơi đặt ứng dụng web của bạn hoặc phần máy chủ của nó. Nó lưu trữ thông tin người dùng cần thiết hoặc có thể yêu cầu nó. Ngoài ra, khi máy khách gửi yêu cầu, máy chủ sẽ trả về thông tin được yêu cầu.

  3. Mạng — Phần này đơn giản. Nó tạo điều kiện cho việc trao đổi thông tin giữa máy khách và máy chủ.

Máy chủ có thể xử lý một số lượng lớn yêu cầu từ những người dùng khác nhau. Điều này có nghĩa là có thể có nhiều khách hàng. Nếu họ cần trao đổi thông tin với nhau, điều này phải xảy ra thông qua máy chủ. Do đó, máy chủ có một chức năng khác: kiểm soát lưu lượng. Liên quan đến chương trình trò chuyện nhiều người dùng của chúng tôi, toàn bộ ứng dụng sẽ bao gồm hai mô-đun:
  • mô-đun máy khách — chứa giao diện đồ họa để đăng nhập và gửi/nhận tin nhắn

  • mô-đun máy chủ — một ứng dụng web được lưu trữ trên máy chủ và nhận tin nhắn từ người dùng, xử lý chúng rồi gửi chúng đến người nhận

Phần 2. Nói một chút về kiến ​​trúc phần mềm - 4Khi chúng tôi muốn xem thông tin hữu ích (hoặc không hữu ích lắm) trên Internet, chúng tôi mở trình duyệt, nhập truy vấn vào thanh tìm kiếm và nhận thông tin từ công cụ tìm kiếm để phản hồi. Trong chuỗi này, trình duyệt là máy khách. Nó gửi một yêu cầu với thông tin về những gì chúng tôi đang tìm kiếm đến máy chủ. Máy chủ xử lý yêu cầu, tìm các kết quả phù hợp nhất, đóng gói chúng ở định dạng mà trình duyệt (máy khách) có thể hiểu và gửi lại. Các dịch vụ phức tạp như công cụ tìm kiếm có thể có rất nhiều máy chủ. Ví dụ: máy chủ ủy quyền, máy chủ tìm kiếm thông tin, máy chủ tạo phản hồi, v.v. Nhưng khách hàng không biết và không quan tâm đến bất kỳ điều gì trong số này: đối với khách hàng, máy chủ là một thực thể thống nhất. Khách hàng chỉ biết về điểm vào, nghĩa là, địa chỉ của máy chủ mà yêu cầu sẽ được gửi đến. Nhớ lại ứng dụng mà chúng tôi đã kiểm tra trongphần trước của loạt bài này . Nó dùng để theo dõi nhiệt độ không khí trung bình ở tất cả các quốc gia trong thời gian thực. Kiến trúc của nó trông giống như sau: Phần 2. Nói một chút về kiến ​​trúc phần mềm - 5Ứng dụng của chúng tôi được đặt trên máy chủ. Giả sử rằng cứ sau 5 giây, nó sẽ gửi yêu cầu đến các máy chủ do các trạm khí tượng địa phương vận hành, nhận thông tin nhiệt độ của một quốc gia cụ thể từ các máy chủ và lưu trữ thông tin này. Khi khách hàng yêu cầu chúng tôi "xem nhiệt độ không khí hiện tại của thế giới", chúng tôi trả về thông tin được lưu trữ gần đây nhất, được sắp xếp theo quốc gia. Do đó, ứng dụng của chúng tôi đóng vai trò vừa là máy chủ (khi nó xử lý yêu cầu của người dùng) vừa là máy khách (khi nó nhận thông tin từ các máy chủ khác).
Đây là một điểm quan trọng: khái niệm máy chủ không phải là về một máy tính cụ thể, mà là về mối quan hệ giữa các thực thể mạng .
Kiến trúc máy khách-máy chủ đơn giản rất hiếm khi được sử dụng và chỉ dành cho các ứng dụng rất đơn giản. Đối với các dự án thực sự lớn và phức tạp, chúng tôi sử dụng các kiến ​​trúc khác nhau mà bạn sẽ gặp trong tương lai. Bây giờ hãy xem xét một mô hình rất giống với kiến ​​trúc máy khách-máy chủ.

Kiến trúc ba lớp

Đây là một mẫu kiến ​​trúc giới thiệu mô-đun thứ ba — lưu trữ dữ liệu . Trong mẫu này, ba cấp độ thường được gọi là lớp hoặc bậc: Phần 2. Nói một chút về kiến ​​trúc phần mềm - 6
  1. Tầng máy khách là giao diện người dùng, còn được gọi là tầng trình bày. Nó có thể là một trình duyệt web nhận các trang HTML hoặc giao diện người dùng đồ họa được viết bằng JavaFX. Điều chính là lớp này cho phép người dùng gửi yêu cầu đến máy chủ và xử lý các phản hồi của nó.

  2. Tầng logic là máy chủ xử lý các yêu cầu/phản hồi. Thường thì nó còn được gọi là lớp máy chủ. Đây cũng là nơi diễn ra tất cả các hoạt động logic: tính toán toán học, hoạt động dữ liệu, gọi đến các dịch vụ khác hoặc lưu trữ dữ liệu, v.v.

  3. Lớp dữ liệu là máy chủ cơ sở dữ liệu: máy chủ của chúng tôi tương tác với nó. Lớp này lưu trữ tất cả thông tin cần thiết để ứng dụng hoạt động.

Do đó, máy chủ của chúng tôi chịu mọi trách nhiệm truy cập dữ liệu và không cho phép người dùng truy cập trực tiếp vào dữ liệu đó.

Ưu điểm của kiến ​​trúc ba lớp

Một kiến ​​trúc như thế này mang lại cho chúng ta nhiều lợi thế, bao gồm:
  1. Khả năng bảo vệ chống lại SQL injection (đây là một cuộc tấn công vào máy chủ; nó liên quan đến việc gửi mã SQL mà khi được thực thi sẽ cho phép kẻ tấn công ảnh hưởng đến cơ sở dữ liệu của chúng tôi).

  2. Tách dữ liệu mà chúng tôi muốn kiểm soát quyền truy cập của người dùng.

  3. Khả năng sửa đổi dữ liệu trước khi gửi cho khách hàng.

  4. Khả năng mở rộng (khả năng mở rộng ứng dụng của chúng tôi tới nhiều máy chủ sẽ sử dụng cùng một cơ sở dữ liệu.

  5. Ít yêu cầu nghiêm ngặt hơn về chất lượng kết nối người dùng. Khi tạo phản hồi trên máy chủ, chúng tôi thường lấy rất nhiều thông tin khác nhau từ cơ sở dữ liệu và định dạng nó, chỉ để lại những gì người dùng cần. Làm điều này làm giảm lượng thông tin mà chúng tôi gửi trong phản hồi của chúng tôi cho khách hàng.

Các mẫu kiến ​​trúc nên được sử dụng thường xuyên như thế nào?

Ví dụ, nếu bạn đã quen thuộc với mẫu thiết kế phương thức xuất xưởng , có lẽ bạn đã tự hỏi khi nào nên sử dụng nó. Đôi khi thật khó để quyết định phải làm gì: tạo một đối tượng bằng cách sử dụng toán tử mới hoặc sử dụng phương thức xuất xưởng. Nhưng theo thời gian, sự hiểu biết đến. Mọi thứ hơi khác một chút khi nói đến các mẫu kiến ​​trúc. Các khung doanh nghiệp được thiết kế để cho phép một lập trình viên tạo một dự án dựa trên một số mẫu được chấp nhận chung. Theo đó, trước khi tìm hiểu Spring Framework, bạn nên hiểu rõ về kiến ​​trúc client-server, kiến ​​trúc ba tầng và kiến ​​trúc MVC. Đừng lo lắng: chúng ta sẽ nói về kiến ​​trúc MVC. Phần 3. HTTP/HTTPS Phần 4. Cơ bản về Maven Phần 5. Servlet và Java Servlet API. Viết một ứng dụng web đơn giản Phần 6. Bộ chứa Servlet Phần 7. Giới thiệu mẫu MVC (Model-View-Controller)
Bình luận
  • Phổ biến
  • Mới
Bạn phải đăng nhập để đăng nhận xet
Trang này chưa có bất kỳ bình luận nào