II. Pha thiết kế
1. Lựa chọn công nghệ mạng
- Sử dụng hệ thống mạng 3 tầng:
o Tầng giao diện người dùng (User Interface) hay tầng máy khách thể hiện giao diện mà người sử dụng để nhập yêu cầu, dữ liệu và xem kết
quả. Tầng này chỉ xử lý việc giao tiếp với người dùng, nhập xuất dữ liệu mà không trực tiếp thực hiện những việc tính toán hoặc xử lý dữ liệu.
o Tầng ứng dụng (Application Server, Business Rule) được biết đến như tầng logic nghiệp vụ hay tầng dịch vụ để chạy chương trình đa luồng. Tầng này thực hiện xử lý các chức năng chính, kiểm tra các ràng buộc… Việc thực hiện này độc lập với cách thiết kế cũng như cài đặt giao diện và thông tin để xử lý lấy từ tầng giao diện
o Tầng dữ liệu (Database Server, Data Storage) nhằm lưu trữ dữ liệu và cung cấp cơ chế an toàn cho việc truy nhập đồng thời với sự giúp đỡ của hệ quản trị cơ sở dữ liệu. Tầng này thực hiện các công việc liên quan đến dữ liệu mà phần mềm cần đến như đọc, ghi…
- Lý do chọn hệ thống mạng 3 tầng:
o Tạo điều kiện dễ dàng khi phát triển: Bất kì hệ thống lớn nào cũng đều bao gồm ba phần: logic chương trình, giao diện người dùng và cơ chế quản lý hiệu năng/bảo mật của dữ liệu. Việc phân chia hệ thống thành các phần như trên sẽ tạo điều kiện cho người lập trình thực hiện công việc một cách đơn giản hơn.
o Sử dụng máy tính hiệu quả hơn: Tùy theo từng tầng chúng ta sẽ sử dụng các máy tính cho phù hợp. Ví dụ, giao diện người dùng là một nhiệm vụ đơn giản không đòi hỏi máy tính lớn; việc thực thi logic chương trình yêu cầu sử dụng CPU, bộ nhớ, nhưng không đòi hỏi dung lượng đĩa quá lớn, vì vậy có thể sử dụng máy tính server; quản lý dữ liệu yêu cầu nhiều về khả năng tính toán, và dung lượng đĩa, do đó có thể sử dụng máy server hay mainframe
o Cải tiến hiệu năng: có thể nhân rộng các máy ở lớp dữ liệu và lớp giữa để lan truyền tính toán (cân bằng tải), mỗi tầng được chuyên môn hóa và như vậy sẽ dễ dàng tối ưu hóa.
o Nâng cao tính bảo mật: Thường thì hệ thống ba tầng sẽ được triển khai cho các máy client chạy trên mạng Internet. Vì vậy, chúng ta phải có cơ chế bảo mật nghiêm ngặt để bảo vệ máy chủ, chương trình và dữ liệu.
Với kiến trúc ba tầng, chúng ta có thể đặt cơ chế bảo mật ở tầng giữa nhằm tránh những tấn công vô tình hay cố ý từ bên ngoài. Tầng dữ liệu ở sau tầng giữa, do đó chúng ta không cần phải bảo mật cho phần cứng hay sự giao tiếp của chúng. Điều này giúp tầng dữ liệu chạy với tốc độ cao và dễ thao tác
o Hạn chế đầu tư: Đối với trường hợp chúng ta có một mainframe lưu trữ và xử lý dữ liệu trong nhiều năm, khi có sự cố chúng ta không muốn phải vứt bỏ tất cả và làm lại từ đầu. Kiến trúc ba tầng và mạng là phương án thích hợp nhất để giải quyết vấn đề này. Ta sử dụng tầng giữa làm trung gian khi client kết nối với mainframe, hoặc khi server kết nối tới client.
o Tính linh hoạt: Được thể hiện rõ qua việc chúng ta có thể thêm hoặc bớt các máy tính trong hệ thống nếu hệ thống đó được thiết kế theo kiến trúc ba tầng. Ví dụ, khi phần logic được thiết kế đúng, chúng ta có thể phát triển nó theo kiến trúc một tầng, sau đó phát triển lên thành hai tầng, ba tầng tùy theo yêu cầu.
o Đa dạng kiểu dáng máy client: máy tính ở tầng client chỉ thực hiện nhận đầu vào và hiển thị kết quả trên màn hình, do đó chúng ta có thể sử dụng các thiết bị với các giao diện khác nhau như máy tính cá nhân, PDAs, mobile-phone…. Khi đó, tầng giữa và tầng dữ liệu vẫn làm việc như nhau, không có thay đổi