Dựa trên yêu cầu thiết kế cơ bản ở trên, nhóm đưa ra phương pháp thiết kế và môi trường phát triển như sau:
4.2.1 Mô hình 3 lớp
Hệ thống được phát triển theo mô hình 3 lớp (3-layers). Mô hình 3 lớp là mô hình phát triển phần mềm được áp dụng phổ biến hiện nay. Kiến trúc của mô hình 3 lớp như sau:
Hình 4-17 Tổng quan mô hình 3 lớp
Mô hình 3 lớp sẽ được chia thành 3 lớp (lớp ở đây được hiểu theo nghĩa là layer chứ không phải là class) xử lí tương ứng như sau:
(1): Lớp giao diện ( Presentation Layer): đây chính là lớp nằm ở trên cùng, nhiệm vụ
của lớp này chỉ là xử lí về giao diện, hiển thị giao diện cho người dùng, nhận các thông tin từ giao diện và chuyển giao cho lớp xử lí nghiệp vụ. Lớp này chỉ được phép giao tiếp với lớp xử lí nghiệp vụ (2), không được phép giao tiếp với lớp xử lí cơ sở dữ liệu (3)
(2): Lớp xử lí nghiệp vụ (Business Layer): làm nhiệm vụ xử lí logic cho các đối
tượng do lớp giao diện gửi xuống, hoặc chuyển đổi dữ liệu thô lấy từ lớp xử lí cơ sở dữ liệu (3) thành dữ liệu có đầy đủ ý nghĩa. Ví dụ: trong cơ sở dữ liệu có trường [Sex] kiểu chuỗi là [0-Male], [1- Female]. Lúc này dữ liệu thô lấy từ lớp xử lí dữ liệu sẽ là
giá trị 0 hoặc 1. Nhưng phải quan niệm rằng các đối tượng được xử lí ở lớp giao diện không biết được [Sex] là 0 hoặc 1 mà giá trị đúng phải là [Male] hoặc [Female]. Khi đó dữ liệu thô từ lớp xử lí dữ liệu sẽ được tầng logic chuyển thành [Male] hoặc
[Female].Đây chính là dữ liệu mang đầy đủ ý nghĩa của đối tượng.Có thể xem lớp xử lí nghiệp vụ là cầu nối giữa lớp xử lí dữ liệu và lớp xử lí giao diện.
(3) Lớp xử lí dữ liệu (Data Access Layer): đây là lớp làm nhiệm vụ giao tiếp trực tiếp
với cơ sở dữ liệu như thực hiện các câu truy vấn: thêm, xóa, sửa, lấy dữ liệu trả về. Mã nguồn của chương trình được tổ chức như hình minh họa sau đây:
Nếu ánh xạ sang mô hình 3 lớp thì ta có tương ứng: - Dự án BussinessLogic thuộc lớp xử lí nghiệp vụ. - Dự án Database thuộc tầng xử lí dữ liệu.
- Dự án SaasService và SaasSystem thuộc tầng xử lí giao diện.
Mỗi đối tượng quản lí trong hệ thống sẽ được ánh xạ trong dự án BussinessObject thành 3 đối tượng theo quy tắc sau: ObjectName, ObjectNameCondition,
ObjectNameResult.
Ví dụ: đối tượng danh mục sản phẩm (Category) sẽ được ánh xạ tương ứng thành 3 đối tượng là: Category, CategoryCondition, CategoryResult. Các đối tượng này lần lượt được định nghĩa trong 3 tập tin tương ứng là Category.cs, CategoryCondition.cs, CategoryResult.cs. Tương tự sẽ có các đối tượng User, UserConditon, UserResult … Trong đó:
• ObjectName: đối tượng chuyển nhận thông tin. Các thuộc tính của đối tượng
này này sẽ được ánh xạ theo quy tắc 1-1 từ bảng dữ liệu trong cơ sở dữ liệu ra. Đối tượng này chỉ dùng cho việc thêm, cập nhật dữ liệu vào cơ sở dữ liệu.
• ObjectCondition: đối tượng tìm kiếm. Thông thường đối tượng
ObjectCondition sẽ có ít thuộc tính hơn so với đối tượng ObjectName (vì không phải thuộc tính nào của đối tượng cũng dùng làm tiêu chí tìm kiếm).
• ObjectResult: đối tượng trả về. Thông thường đối tượng ObjectResult sẽ có
nhiều thuộc tính hơn so với đối tượng ObjectName. (vì khi trả về thì có thể có nhiều thuộc tính khác như thuộc tính tính toán, thuộc tính suy ra, thuộc tính liên hệ, tham chiếu …)
4.2.2 Ích lợi của mô hình 3 lớp
Việc áp dụng mô hình 3 lớp có những ích lợi sau:
- Mã nguồn sáng sủa, mạch lạc, rõ ràng. Điều này tạo thuận lợi cho việc tiếp cận và kiểm soát mã nguồn chương trình.
- Dễ bảo trì, nâng cấp, mở rộng về sau.
- Sử dụng lại mã nguồn đối với các dự án có cùng mục đích. - Dễ kiểm lỗi chương trình.
4.2.3 Môi trường phát triển
Phần mềm hướng dịch vụ hoạt động qua mạng internet và sẽ tập trung tất cả dữ liệu khách hàng trên server của nhà cung cấp, do đó vấn đề tốc độ xử lí và an toản, bảo mật dữ liệu phải được đặt lên hàng đầu. Lựa chọn môi trường phát triển thích hợp để bảo đảm giải quyết tốt nhất vấn đề trên đồng thời giúp nhà phát triển dễ dàng trong việc phát triển mở rộng ứng dụng sau này cũng là một vấn đề quan trọng.
Môi trường được nhóm lựa chọn là:
- Hệ điều hành Window Server 2003/XP
- Ngôn ngữ lập trình ASP.NET(C#) – là ngôn ngữ lập trình hướng đối tượng phổ biến trên nền .NET hiện nay.
- Cơ sở dữ liệu: SQL Server 2000 – là cơ sở dữ liệu ổn định, tốc độ xử lý nhanh, hỗ trợ giao tác, stored procedure, function và trigger giúp tăng tốc độ xử lý và an toàn dữ liệu hơn.
- Môi trường phát triển: Visual Studio 2005 – với các công cụ lập trình giao diện kéo thả - cho phép phát triển ứng dụng nhanh chóng hơn.