CHƯƠNG 1 TỔNG QUAN VỀ Ô NHIỄM KHÔNG KHÍ
4.5 Ràng buộc thiết kế
Chuẩn dữ liệu giao tiếp:
Hệ thống sử dụng ngôn ngữ thống kê R hỗ trợ cho quá trình xử lý. Mọi dữ liệu được chia sẻ từ hệ thống tới R và ngược lại được áp dụng với kiểu dữ liệu là JSON. Ngoài ra các phương thức giao tiếp dữ liệu giữa Client và Server cũng sử dụng định dạng JSON theo chuẩn RESTful, dịch vụ web RESTful được xây dựng bằng Yii2 – một framework của PHP. Lợi ích của việc thiết kế theo chuẩn giao tiếp này là hệ thống có thể dễ dàng triển khai trên nhiều nền tảng phần cứng như ứng dụng web, ứng dụng mobile, ứng dụng desktop. Các ngôn ngữ nổi bật hiện nay như PHP, C#, JAVA… đề có phương thức hỗ trợ chuyển đổi dễ dàng dữ liệu sang JSON và ngược lại giúp thao tác với dữ liệu dễ dàng hơn.
Tích hợp Apache Server:
Apache là 1 open-source Web server và miễn phí hoàn toàn được hỗ trợ bởi Apache Software Foundation ( http://httpd.apache.org) Mặc dù miễn phí và Open- Source nhưng Apache có sức mạnh và tính ổn định của nó được đánh giá ở tầm cỡ thương mại. Đến nay đây vẫn là lựa chọn tốt nhất cho giải pháp máy chủ Web. Với hệ thống EnvPro, Apache được sử dụng để triển khai ứng dụng trên nền web của hệ bao gồm client, server và các api cung cấp dữ liệu sử dụng ngôn ngữ php.
Xác thực (Authentication):
Với hệ thống EnvPro người dùng muốn sử dụng chức năng tìm kiếm dữ liệu bắt buộc phải Đăng nhập. Việc xác thực danh tính của người dùng được bắt đầu khi người dùng khởi tạo một session bằng việc truy cập vào trang web. Khi người đó muốn sử dụng chức năng tìm kiếm hệ thống sẽ đưa ra yêu cầu đăng nhập. Ta có thể sử dụng
UserApi Service cho phép người dùng truy xuất thông tin chi tiết của họ thông qua web service của hệ thống.
Phân quyền (Authorization):
Hệ thống EnvPro sử dụng phương pháp phân quyền dựa trên vai trò. Vì vậy một người dùng chỉ được phép truy cập các chức năng mà họ được gán. Việc phân quyền có thể được thực hiện tại nhiều phạm vi từ module tới từng hành động xem/sửa/xóa/thêm. Với mỗi phạm vi cơ chế phân quyền sẽ kiểm tra quyền của người dùng và quyết định có cho người dùng kích hoạt hành động hay không.