4.5.1 Giải quyết vấn đề đường dẫn tới website thành viên – kỹ thuật URL Friendly
Yêu cầu cơ bản của hệ thống SaasSystem là phải bảo đảm các website thành
viên( website mà khách hàng có được sau khi đăng kí) hoạt động độc lập nhau, mỗi website sẽ có giao diện riêng, danh mục riêng, sản phẩm riêng, khách hàng riêng. Đồng thời người dùng trên hệ thống SaasSystem vẫn có thể quản lí được thông tin của tất cả các webiste thành viên. Đường dẫn của website thành viên phải tuân theo nguyên tắc sau: http://SaasSystemDomain/username/.
Trong đó SaasSystemDomain chính là domain của hệ thống SaasSystem, username chính là username của người dùng đăng kí trên SaasSystem, dùng để phân biệt giữa các website thành viên với nhau
Có 2 cách tiếp cận để giải quyết vấn đề này
• Cách 1: Quản lí theo thư mục. Khi một khách hàng đăng kí 1 tài khoản trên hệ thống SaasSystem thì hệ thống SaaSSystem sẽ phát sinh mã nguồn cho khách hàng này vào một thư mục, có nghĩa là mỗi trang thành viên sẽ có 1 thư mục riêng. Khi đó để truy cập tới website thành viên nào ta chỉ cần gõ đúng đường dẫn đến thư mục của website thành viên đó là được.
Ví dụ: nếu đăng nhập với user name là customer1 thì SaasSystem sẽ tạo 1 thư mục là customer1 trên server, để truy cập tới webiste thành viên này ta chỉ cần gõ: http://SaasSystemDomain/customer1/
• Cách 2: Sử dụng kỹ thuật URL Friendly. Dùng kĩ thuật này để ánh xạ tên người dùng và đường dẫn đến website người dùng đó. Với cách làm này, kết quả sẽ là kết quả của cách 1. Tuy nhiên sẽ không có thư mục người dùng nào được tạo riêng. Kĩ thuật URL Friendly giúp ta thay thế một đường dẫn dạng:
http://SaasSystemDomain?user=customer1 thành đường dẫn dạng:
http://SaasSystemDomain/customer1.
• Nếu số lượng webiste thành viên nhiều thì cách một không khả thi. Lí do: số lượng thư mục tạo ra trong một thư mục con là giới hạn. Và con số này sẽ đặt đến giới hạn khi số thành viên tăng theo ngày tháng.
• Vấn đề quản lý thư mục người dùng sẽ gặp nhiều khó khăn do số lượng thư mục con trong thư mục gốc quá nhiều.
Tuy nhiên cách 1 cũng có ưu điểm của nó: chính là việc phân chia độc lập như vậy thì khi một ứng dụng của website thành viên nào đó bị sự cố sẽ ít gây ảnh hưởng tới các website thành viên khác.
Nhóm chọn cách 2 để thực hiện. Nếu làm theo cách 2 thì không cần phải quan tâm đến những khó khăn gặp phải do cách 1 gây ra ở trên.
4.5.2 Sơ đồ lớp
Hình 4-32 Tổng quan về các lớp trong hệ thống SaaSSystem
Theo sơ đồ trên, hệ thống sẽ gốm có 3 đối tượng người dùng sau:
• SaasCustomer là khách hàng của hệ thống SaasSystem, mỗi khách hàng sẽ có một website thành viên tương ứng với tài khoản đã đăng kí trên hệ thống SaasSystem.
• ClientCustomer đóng vai trò là khách hàng trên từng website thành viên cụ thể.
• Mỗi website thành viên cụ thể sẽ có những đối tượng sau( tham khảo sơ đồ mô tả cụ thể ở hình 4-17, 4-18):
o Danh mục sản phẩm(Category)
o Sản phẩm( Product)
o Danh mục đơn hàng( Order)
o Khách hàng (ClientCustomer)
o Menu
o Tin tức(Content)
o Loại đăng kí trên hệ thống SaasSystem(TypeRegister)
o Banner quảng cáo(Banner)
o Thông tin cấu hình(Config)
Hình 4-35 Sơ đồ lớp cho phân hệ Phân quyền người dùng.
Hệ thống phân quyền dựa trên nhóm người dùng(GroupUser) chứ không dựa trên từng người dùng cụ thể. Người dùng thuộc nhóm nào thì kế thừa tất cả các quyền trong nhóm đó, mỗi nhóm người dùng sẽ có những quyền khác nhau. Đơn vị phân quyền là từng chức năng cụ thể( Function), ví du: Thêm danh mục, Xóa danh mục...Mỗi màn hình (Screen) sẽ có nhiều chức năng (function), mỗi module có chứa nhiều màn hình khác nhau.
4.5.3 Luồng xử lý
Hình 4-36 Flowchart cho đối tượng SaaSAdmin
Hình 4-37 Flowchart cho đối tượng SaaSCustomer
Hình 4-38 Flowchart cho đói tượng ClientCustomer