2.1.7.1. Websocket
WebSockets mới xuất hiện trong HTML5, là một kỹ thuật Reverse Ajax mới hơn Comet (Comet là kỹ thuật cũ được sử dụng trên nền web để phục vụ nhu cầu Web server push dữ liệu về brower).WebSockets cho phép các kênh giao tiếp song song hai chiều và hiện đã được hỗ trợ trong nhiều trình duyệt (Firefox, Google Chrome và Safari, IE 9 trở lên).Kết nối được mở thông qua một HTTP request (yêu cầu HTTP), được gọi là liên kết WebSockets với những header đặc biệt. Kết nối được duy trì để lập trình viên có thể viết và nhận dữ liệu bằng JavaScript như khi đang sử dụng một TCP socket đơn thuần.
Browser có thể nhận thông tin mà không cần phải refresh lại trình duyệt, lưu lượng sử dụng websoket nhỏ hơn hẳn sử dụng http để gửi và nhận dữ liệu nên websocket đã đảm bảo tiêu chí đặt ra là thuận tiện và chiếm ít tài nguyên mạng.
2.1.7.2. Google Protobuf
Để truyền tải thông tin từ máy chủ đến máy trạm, dữ liệu được mã hóa (encrypt) và sử dụng protocol buffers hay protobuf làm công cụ encode. Protocol Buffers là cách thức sắp xếp dữ liệu một cách uyển chuyển, hiệu quả và tự động. Nó cũng có thể như là XML nhưng đơn giản, nhanh và hiệu quả hơn. Để sử dụng cách thức này, trước tiên cần phải định nghĩa cấu trúc dữ liệu cần truyền tải sau đó nó sẽ tự động sinh ra mã nguồn (các class) cho phép lập trình viên có thể ghi, đọc vào cấu trúc đã được chuyển đổi đó một cách dễ dàng. Lý do chúng tôi không sử dụng XML làm cách thức đóng gói dữ liệu là bởi vì với protocol buffer, dữ liệu được mã hóa nhanh hơn, nhỏ hơn, đơn giản hơn và việc sử dụng các class này rất dễ dàng trong lập trình.
2.1.7.3. Cơ chế thực hiện việc phát và nhận thông tin tới đối tƣợng
Với ý tưởng thiết kế quản lý tập trung, chúng tôi đề xuất một mô hình cấp phát và nhận thông tin từ máy chủ đến máy trạm/thiết bị và ngược lại.
Với ý tưởng này, máy chủ sẽ đóng vai trò là một thành phần chủ động trong khi máy trạm sẽ là thành phần bị động.
Hình 2.9 Mô hình hoạt động giữa Máy chủ- Máy trạm/Thiết bị
Máy chủ giám sát (monitoring server)
Máy trạm Scheduler thread Policy process Result process Sensors Agent Thiết bị SNMP device
Monitoring server sẽ làm nhiệm vụ gửi đi những yêu cầu về tập luật được gán cho thiết bị/máy trạm tới thiết bị tương ứng và tiếp nhận những giá trị trả về từ client (thiết bị/máy trạm).Trong thiết kế hệ thống này, các máy trạm được kết nối đến server thông qua websocket. Máy chủ sẽ làm nhiệm vụ kích hoạt các yêu cầu và đợi client phản hồi về. Điều này có thể làm tăng quá trình hoạt động của máy chủ lên, tuy nhiên máy chủ sẽ quản lý được các luồng dữ liệu đến nó tốt hơn. Cụ thể là nó sẽ biết khi nào phải gửi yêu cầu đi và phải gửi những gì cũng như khi nào thì tạm dừng để tránh quá tải hệ thống.
2.1.7.4. Hệ thống tập luật và quản lý tập luật trên web quản trị
* Nhóm tập luật
Trước tiên, các luật được phân nhóm lại vào các nhóm riêng lẻ.Các nhóm tập luật này được thiết kế với mục đích giúp cho quản trị viên có thể dễ dàng lựa chọn tập luật phù hợp với mục đích nhất. Các nhóm tập luật có thể là nhóm liên quan đến CPU, nhóm liên quan đến bang thông hoặc bộ nhớ của thiết bị.
Cấu trúc giải thuật cũng như các mô tả về nhóm tập luật được thực hiện tương tự như của thiết kế nhóm máy trạm/thiết bị (module 1.11. Module quản lý máy trạm theo nhóm)
* Tập luật,
Thông tin về tập luật sẽ bao gồm các trường chính sau: Tên tập luật
Nhóm tập luật: phân chia tập luật về các nhóm khác nhau để quản trị dễ quản lý Tham số: Tham số của tập luật.
Giá trị lỗi: Khoảng giá trị mặc định mà hệ thống sẽ so sánh với giá trị thu về từ thiết bị hoặc máy trạm để từ đó quyết định thiết bị có lỗi hay không
Giá trị cảnh báo: Khoảng giá trị mặc định mà hệ thống sẽ so sánh với giá trị thu về từ thiết bị hoặc máy trạm để từ đó quyết định thiết bị có cảnh báo nào không. Kiểu tập luật: sử dụng SNMP hay cho các máy trạm sử dụng WMI
Kiểu giá trị trả về: Hiện tại hệ thống hỗ trợ 2 loại giá trị trả về là kiểu số hoặc kiểu chuỗi ký tự.
Trạng thái: Dùng hay không dùng tập luật này
Việc tạo một luật mới được chỉ định thực hiện cho cấp cao nhất là quyền Super Administrator.
Hình 2.10 Sơ đồ thuật toán controller xử lý thao tác quản lý tập luật Chi tiết Nhóm + Bắt đầu Tiếp nhận request Phân tích URL
Yêu cầu quản lý tập luật?
GET hay POST
Trả về trang hiển thị giao diện quản lý tập luật
Kết thúc Kết nối đến CSDL
Query danh sách các tập luật
Chuyển đổi resultset sang json structure
Phân tích lệnh (add, update, delete)
Kết nối đến CSDL
Thực hiện câu truy vấn tương ứng
Trả đáp ứng Thành công hoặc thất bại cho giao diện người dùng
Kiểm tra bảo mật biến đầu vào
Kiểm tra bảo mật biến đầu vào
Liệt kê danh sách hay chi tiết tập
luật?
Query thông tin một tập luật
Query danh sách nhóm cha
-
* Gán tập luật có sẵn cho một đối tượng (thiết bị mạng/máy trạm)
Sau khi đã có các tập luật, quản trị viên sẽ phải có nhiệm vụ gán các tập luật này vào với các thiết bị/máy trạm tương ứng.
Hình 2.11 Sơ đồ thuật toán controller xử lý thêm tập luật cho thiết bị/máy trạm
Không Có + Bắt đầu Tiếp nhận request Phân tích URL Yêu cầu gán tập luật? GET hay POST Kết thúc Kết nối đến CSDL Query danh sách các tập luật chưa gán cho ID thiết bị
Chuyển đổi resultset sang json structure
Kết nối đến CSDL
Thực hiện câu truy vấn INSERT CSDL
Trả đáp ứng Thành công hoặc thất bại cho giao diện người dùng
Kiểm tra bảo mật biến đầu vào
Kiểm tra bảo mật biến đầu vào
-
GET POST
ID thiết bị tồn tại?
Hình 2.12 Sơ đồ thuật toán controller xử lý sửa tập luật cho thiết bị/máy trạm Có Không Có + Bắt đầu Tiếp nhận request Phân tích URL Yêu cầu gán tập luật? GET hay POST Kết thúc Kết nối đến CSDL Query danh sách các tập luật tương ứng ID thiết bị
Chuyển đổi resultset sang json structure
Kết nối đến CSDL
Thực hiện câu truy vấn UPDATE và DELETE CSDL
Trả đáp ứng Thành công hoặc thất bại cho giao diện người dùng
Kiểm tra bảo mật biến đầu vào
Kiểm tra bảo mật biến đầu vào
ID thiết bị tồn tại? - GET POST ID thiết bị tồn tại? Không Phân tích lệnh (delete, update)