Quay lại
Kiến trúc Sitefinity CMS
28 Th8, 2024
•
02.26 PM
Kiến trúc nhiều lớp của Sitefinity được thiết kế và xây dựng dựa trên các khái niệm chính về khả năng mở rộng, khả năng tương tác và tích hợp, cùng tính linh hoạt. Điều này được thực hiện thông qua:
- Các mẫu trừu tượng giúp ẩn đi chi tiết về cách triển khai và vị trí lưu trữ.
- Nhiều điểm mở rộng linh hoạt.
- API công khai cho tất cả các thành phần và dịch vụ hệ thống, từ đó xây dựng nên các mô-đun mặc định của Sitefinity.
Hình minh họa dưới đây mô tả các lớp ứng dụng trong một trang web chạy Sitefinity:
Kiến trúc ứng dụng N-tier của Sitefinity cho phép các nhóm thành phần hệ thống được sắp xếp theo lớp, đảm bảo rằng bạn có thể thực hiện thay đổi trong một lớp mà không ảnh hưởng đến các lớp khác.
Các phần dưới đây sẽ mô tả chi tiết từng lớp ứng dụng.
Lưu trữ dữ liệu
Sitefinity CMS mặc định sử dụng cơ sở dữ liệu quan hệ SQL để lưu trữ nội dung và dữ liệu hệ thống. Lớp cơ sở dữ liệu này được triển khai bằng ORM Telerik DataAccess, hỗ trợ cho Microsoft SQL. Khi lưu trữ các tài liệu và phương tiện, Sitefinity CMS cho phép bạn sử dụng nhiều nhà cung cấp lưu trữ tệp và blob khác nhau, cũng như các dịch vụ bên ngoài, chẳng hạn như cơ sở dữ liệu, hệ thống tệp, Azure blob storage, Amazon S3, MOVEit, và nhiều hơn nữa. Chúng tôi khuyến nghị rằng lớp lưu trữ dữ liệu nên được triển khai trên một máy chủ riêng biệt.
Nhà cung cấp dữ liệu
Trong Sitefinity CMS, các mẫu nhà cung cấp (provider patterns) được sử dụng để trừu tượng hóa vị trí lưu trữ và giao thức truyền thông cho việc lưu trữ và truy xuất nội dung cùng dữ liệu hệ thống mà các mô-đun của Sitefinity CMS sử dụng. Sitefinity CMS mặc định sử dụng các nhà cung cấp lưu trữ cơ sở dữ liệu quan hệ, được triển khai bằng ORM Telerik DataAccess, cho tất cả các mô-đun. Ngoài ra, Sitefinity CMS cũng hỗ trợ lưu trữ cơ sở dữ liệu phi quan hệ. Ví dụ, người dùng và vai trò có thể được truy xuất từ các lưu trữ phi quan hệ như LDAP (Active Directory) và Sitefinity CMS có nhà cung cấp LDAP cho người dùng và vai trò. Bạn cũng có thể sử dụng các nhà cung cấp lưu trữ khác cho các tệp phương tiện như hình ảnh, video, và tài liệu, và lưu trữ chúng ở các vị trí phi quan hệ bên ngoài. Mỗi mô-đun, chẳng hạn như Tin tức hoặc Blog, có một lớp nhà cung cấp cơ bản trừu tượng mà bạn cần triển khai để có nhà cung cấp lưu trữ tùy chỉnh cho mô-đun cụ thể. Do đó, bạn có thể lưu trữ dữ liệu trong cơ sở dữ liệu phi quan hệ hoặc cơ sở dữ liệu không được hỗ trợ bởi DataAccess.
Quản lý
Quản lý (Managers) là đại diện cho API logic nghiệp vụ trong Sitefinity. Bạn sẽ sử dụng các công cụ này khi làm việc với nội dung và dữ liệu hệ thống. Mỗi mô-đun trong Sitefinity đều có một lớp quản lý riêng, cung cấp các chức năng như truy vấn, lưu trữ, cập nhật, xóa, và xử lý các tác vụ phức tạp liên quan đến nội dung. Quản lý cung cấp một API giao dịch, cho phép bạn gộp nhiều thao tác thành một đơn vị công việc duy nhất và cam kết chúng như một giao dịch hoàn chỉnh. Bạn cũng có thể kết hợp các hoạt động quản lý riêng lẻ thành một giao dịch cam kết hai pha duy nhất trên nhiều mô-đun và kho lưu trữ khác nhau.
Khi làm việc với quản lý, thường sẽ có một nhà cung cấp dữ liệu cơ bản để quản lý ủy quyền các thao tác CRUD. Quản lý giúp ẩn đi sự phức tạp của việc lựa chọn nhà cung cấp dữ liệu phù hợp, kiểm soát thời gian sống của giao dịch, và hỗ trợ môi trường đa trang web. Ngoài ra, còn có lớp API facade nằm trên các quản lý, được gọi là Fluent API, giúp đơn giản hóa các thao tác thường gặp, giảm số lượng dòng mã cần viết và cải thiện khả năng đọc của mã.
Dịch vụ
Dịch vụ Web
Các dịch vụ web REST HTTP cho phép các ứng dụng và khách hàng bên ngoài truy cập và quản lý nội dung cùng dữ liệu hệ thống của Sitefinity CMS qua giao thức HTTP.
Dịch vụ web của Sitefinity CMS cho phép truy cập vào việc truy xuất, cập nhật, và xuất bản nội dung. Sitefinity CMS cũng mở rộng cấu hình và luồng công việc của nó dưới dạng các dịch vụ REST. Hầu hết các dịch vụ trong Sitefinity CMS được triển khai bằng WCF. Một số dịch vụ REST mới được phát triển gần đây, chẳng hạn như chỉnh sửa trực tuyến và dữ liệu liên quan, được xây dựng dựa trên framework service stack.
Dịch vụ hệ thống
Bạn có thể sử dụng dịch vụ hệ thống dưới dạng .NET API cho các mô-đun của Sitefinity CMS, mở rộng hệ thống. Các dịch vụ hệ thống là các thành phần cốt lõi cung cấp chức năng sau:
- Thông báo qua email
- Tìm kiếm toàn văn bản
- Vị trí địa lý
- Cá nhân hóa (phân đoạn người dùng)
- Xuất bản lên các hệ thống bên ngoài
- Luồng công việc nội dung
Bạn tuân theo mẫu trừu tượng hóa triển khai, do đó, bạn có thể thay thế hầu hết các dịch vụ hệ thống bằng cách triển khai tùy chỉnh.
Trình xử lý HTTP
Trình xử lý HTTP là lớp ứng dụng được đối mặt phổ biến nhất, được Sitefinity CMS phơi bày. Lớp này phục vụ tất cả các yêu cầu HTTP để hiển thị nội dung, phần lớn được tạo ra bởi các trình duyệt. Trình xử lý HTTP phục vụ các yêu cầu để hiển thị các trang HTML, phát trực tuyến phương tiện, chẳng hạn như hình ảnh, video, tài liệu, và những nội dung khác, ví dụ như PageRouteHandler và LibraryHttpHandler.
Trước khi phục vụ các yêu cầu từ phía khách hàng, các trình xử lý sẽ kiểm tra các vấn đề liên quan đến bảo mật và đảm bảo rằng nội dung được bảo vệ đúng cách. Trình xử lý trang là một trong những thành phần chính, vì nó phục vụ các yêu cầu từ trình duyệt bằng cách đầu tiên định tuyến yêu cầu đến trang thích hợp bằng cách xem xét URL trang, ngôn ngữ, trang web, phân đoạn cá nhân hóa, và v.v. Sau đó, trình xử lý trang đảm bảo rằng trang được tạo và biên dịch. Cuối cùng, trình xử lý thực thi và có thể lưu vào bộ nhớ đệm đầu ra.
Khách hàng
Khách hàng phổ biến nhất là các trình duyệt HTML. Sitefinity CMS hỗ trợ nhiều loại trình duyệt, nhưng có một số hạn chế áp dụng cho phần phụ trợ. Để biết thêm thông tin, hãy xem yêu cầu hệ thống. System requirements.Một công cụ năng suất phát triển khác là Sitefinity CMS VSIX. Nó cho phép tích hợp và triển khai thuận tiện hơn khi phát triển với Microsoft Visual Studio và Sitefinity CMS.
Các thành phần chéo nhau
Mô-đun
Mô-đun Sitefinity CMS đại diện cho một hệ thống con chức năng của CMS. Các mô-đun là các thực thể tách rời cao và chỉ dựa trên cơ sở hạ tầng CMS hoặc một số mô-đun lõi của Sitefinity CMS. Nghĩa là, các mô-đun có thể được cài đặt hoặc gỡ bỏ riêng lẻ và có thể đóng gói giao diện người dùng riêng, lưu trữ dữ liệu, API công khai, API REST công khai, cấu hình, luồng công việc, và v.v. Phần lớn các khả năng của Sitefinity CMS được đóng gói dưới dạng các mô-đun, chẳng hạn như Tin tức, Blog, Thư viện, Biểu mẫu, Dịch thuật, Móc dịch vụ, và v.v. Các mô-đun thường tận dụng tất cả các lớp của kiến trúc CMS.
EventHub
Sitefinity CMS EventHub là một API nơi các nhà phát triển có thể đăng ký các sự kiện hệ thống khác nhau thông báo về các hoạt động đã hoàn thành trong hệ thống, ví dụ như cập nhật nội dung, phục vụ các yêu cầu trang, truy cập trái phép, và v.v. Bằng cách kết nối với các sự kiện này, bạn có thể tùy chỉnh hệ thống, chẳng hạn như tích hợp với các hệ thống khác, gửi thông báo tùy chỉnh, hoặc áp dụng ủy quyền và xác thực.
Blog Khác
•
10.03 AM
•
02.39 PM
•
05.35 PM
•
05.44 PM