Kiến trúc phần mềm là gì?

Có nhiều định nghĩa khác nhau về kiến trúc phần mềm, tuy nhiên có thể tóm gọn lại kiến trúc phần mềm là một bộ môn nghiên cứu các cách thức tổ chức các thành phần có trong phần mềm sao cho khoa học giúp phần mềm hoạt động ổn định và dễ nâng cấp mở rộng về sau này.

Một trong những kiến trúc phần mềm phổ biến nhất đó là kiến trúc đa tầng:

mo-hinh-nhieu-tang.png

Trong mô hình này, phần mềm được chia thành nhiều tầng (ví dụ tầng tiếp nhận yêu cầu, tầng xử lý nghiệp vụ, tầng giao tiếp cơ sở dữ liệu) để dễ dàng xử lý.

Ngoài ra cũng có một số kiến trúc phần mềm khác có thể kể đến như:

  1. Kiến trúc Client-Server: Bao gồm một máy chủ cung cấp dịch vụ và nhiều máy khách yêu cầu dịch vụ từ máy chủ.
  2. Kiến trúc Master-Slave: Một thành phần chính phân phối công việc cho các thành phần con và tổng hợp kết quả.
  3. Kiến trúc Pipe-Filter: Dữ liệu được xử lý qua một chuỗi các bộ lọc và truyền qua các đường dẫn.
  4. Kiến trúc Broker: Các thành phần giao tiếp thông qua một phân phối trung gian để quản lý và điều phối các yêu cầu.
  5. Kiến trúc Peer-to-Peer (P2P): Các thành phần trong hệ thống có thể hoạt động như cả máy khách và máy chủ.
  6. Kiến trúc Event-Bus: Hệ thống phản ứng với các sự kiện được phát ra và xử lý bởi các thành phần khác nhau.
  7. Kiến trúc Model-View-Controller (MVC): Tách biệt các thành phần của ứng dụng thành Model xử lý nghiệp vụ, View hiển thị, và Controller tiếp nhận và phản hồi yêu cầu.
  8. Kiến trúc Blackboard: Các thành phần độc lập tương tác với một không gian dữ liệu chung để giải quyết vấn đề.
  9. Kiến trúc Interpreter: Hệ thống có thể diễn giải và thực thi các lệnh từ một ngôn ngữ cụ thể.

Kiến trúc phần mềm của EzyPlatform

Như đã nói trong bài giới thiệu trước, EzyPlatform sinh ra phải có khả năng mở, nghĩa là cho phép tất cả mọi người có thể sử dụng, nâng cấp, bổ sung các tính năng một cách dễ dàng, chính vì vậy mà Young Monkeys đã lựa chọn kiến trúc phần mềm Plugin cho EzyPlatform, để dễ hình dung, bạn có thể xem hình dưới đây:

Kiến trúc phần mềm ezyplatform.png

Bên trong cùng của EzyPlatform là các thành core (lõi) cung cấp các tính năng cơ bản nhất của một phần mềm bao gồm:

  1. Giao diện người dùng quản trị.
  2. Quản lý dữ liệu.
  3. Bảo mật dữ liệu.
  4. Đảm bảo hiệu suất cao.
  5. Khả năng mở rộng.
  6. Tính tương thích.
  7. Khả năng bảo trì, nâng cấp.
  8. Tính khả dụng để đảm bảo EzyPlatform hoạt động liên tục.
  9. Các đối tượng lập lịch chạy liên tục.

Ngoài ra thành phần core cũng cung cấp rất nhiều các tính năng phổ biến nhất, ví dụ:

  1. Quản lý người dùng.
  2. Quản lý quản trị viên.
  3. Quản lý đa phương tiện.
  4. Phân quyền quản trị viên.
  5. Phân quyền người dùng.
  6. Quản lý plugin.
  7. Quản lý theme.
  8. ...

Bạn có thể khám phá tất cả các tính năng này khi bạn cài đặt EzyPlatform trên máy local của bạn hoặc triển khai EzyPlatform trên một máy chủ nào đó.

Vòng ngoài sử dụng core chính là các plugin do Young Monkeys phát triển hoặc do bất kỳ ai phát triển đều được, một số plugin lớn mà Young Monkeys đã phát triển bao gồm:

  1. Ecommerce: Cung cấp các tính năng cần thiết cho thương mại điện tử.
  2. EzyArticle: Cung cấp các tính năng liên quan đến bài viết.
  3. EzyMail: Cung cấp các tính năng liên quan đến email.
  4. EzyGame: Cung cấp các tính năng cho trò chơi trực tuyến.
  5. EzyMarketing: Cung cấp các tính năng cho marketing.
  6. ...

Bạn có thể khám phá thêm rất nhiều plugin đang có sẵn trên chợ của EzyPlatform.

Vòng ngoài cùng sử dụng các plugin đó chính là theme. Trên thực tế theme cũng chính là plugin, có điều nó có đặc thù là mỗi một ezyplatform chỉ chấp nhận active một theme tại một thời điểm. Ví dụ bạn có 2 theme đã được cài đặt là:

  1. EzyBlog
  2. Elearning

Thì tại một thời điểm chỉ có hoặc là EzyBlog theme hoặc là Elearning theme được kích hoạt, và khi được kích hoạt thì sẽ dẫn đến thay đổi giao diện web. Nếu bạn muốn tạo ra các giao diện web có thể sử dụng được ở mọi theme, bạn phải viết mã nguồn vào web plugin.

Một số theme đã được tạo sẵn bởi Young Monkeys bao gồm:

  1. EzySmashers: Một game đối kháng dạng MMO.
  2. Fashion: Theme dành cho thương hiệu thời trang.
  3. Elearning: Theme dành cho các trung tâm đào tạo.
  4. StackAsk: Theme dành cho hỏi đáp.
  5. EzyBlog: Dành cho blog.
  6. ...

Bạn có thể khám phá thêm rất nhiều theme đang có sẵn trên chợ của EzyPlatform.

Tổng kết lại

EzyPlatform có kiến trúc phần mềm "Plugin", điều này cho phép bất kỳ ai có thể viết thêm bất kỳ plugin hay theme nào để cắm thêm vào EzyPlatform. Các plugin, các theme có thể tái sử dụng phần core hoặc các plugin khác mà không bị giới hạn.