CHƢƠNG III : QUẢN LÝ CẤU HÌNH
a. Chương trình trên máy trạm (Client application)
Mơ hình phân lớp của Client application và các chức năng cụ thể nhƣ sau:
Chƣơng trình trên các máy trạm gồm 2 phần chính: Khi chạy lần đầu tiên, bộ phận Register đƣợc kích hoạt để thực hiện việc đăng ký license lên máy chủ. Sau đó cập nhật lại tham số FirstRun lên registry. Trong những lần chạy sau, phần này khơng đƣợc kích hoạt mà sẽ kích hoạt ngay phần Agent thực hiện các công việc của hệ thống.
Client Application Application SysInfor Winsock control Machine Components Component Agent Register Register winsock
Lớp Machine thực hiện việc lấy thông tin hệ thống và truy cập registry lấy thông tin về phần cứng và phần mềm đƣợc cài đặt trên máy trạm để lƣu trữ vào trong thành phần Components của mình.
Components là một tập (collection) các đối tƣợng Component, mỗi Component bao gồm nhiều thuộc tính khác nhau.
Lớp SysInfor thực hiện việc theo dõi hệ thống máy trạm, phát hiện các thay đổi về cấu hình máy trạm để thơng báo về máy chủ.
Winsock control thực hiện việc trao đổi thông tin với máy chủ, các thơng tin này có thể là một đối tƣợng Machine chứa đầy đủ thông tin hệ thống, các thông báo sự kiện gửi về máy chủ hay để nhận các lệnh từ máy chủ gửi tới. Một Winsock control khi kết nối đến máy chủ có thể có lỗi trên đƣờng truyền hay từ phía máy chủ, khi đó nó sẽ ở trong trạng thái bận và không thực hiện đƣợc kết nối khác khi đƣờng truyền đã thông. Để khắc phục điều này, ta dùng một đối tƣợng timer sau mỗi khoảng thời gian nhất định sẽ kiểm tra trạng thái của Winsock control, nếu Winsock control ở trạng thái lỗi, khơng kết nối đƣợc thì đóng nó lại và đặt ở chế độ lắng nghe (listern).
Các sơ đồ hoạt động chính của client application:
* Sơ đồ thực hiện đăng ký license lên máy chủ:
Yes No No No Yes Yes Start
Kiểm tra tham số FirstRun trong registry
Lần
đầu?
Nhập License
Gửi license về máy chủ
Chờ máy chủ xác nhận Hợp lệ? Làm lại? Cập nhật lại tham số FirstRun
* Sơ đồ thực hiện lấy thông tin hệ thống gửi về máy chủ
Lớp Machine xác đinh loại hệ điều hành dùng trên máy trạm và thực hiện lấy thông tin về CPU và RAM bằng các hàm API (xem mã nguồn); thực hiện lấy thông tin về các phần cứng, phần mềm cài đặt trên máy trạm trong Registry của Windows. Tuỳ các hệ điều hành khác nhau mà các thông tin này nằm ở các vị trí khác nhau ở HKEY_LOCAL_MACHINE trong Registry, cụ thể nhƣ sau:
- Với Windows 9x
Lấy thông tin CPU
Lấy thông tin RAM Truy nhập Registry
Xác định loại hệ điều hành trên máy trạm
Đọc thông tin phần
cứng trong registry
Đọc thông tin phần
mềm trong registry
Đọc thông tin chi tiết về hệ
điều hành trong registry
Gửi thông tin thu thập
được về Server
+ Các lớp phần cứng lƣu trữ trong
System\CurrentControlSet\ Services\Class + Các thuộc tính cụ thể lƣu trữ trong
Enum
+ Các thông tin về hệ điều hành lƣu trữ trong
SOFTWARE\Microsoft\Windows\CurrentVersion - Với Windows NT, Windows XP
+ Các lớp phần cứng lƣu trữ trong
SYSTEM\CurrentControlSet\Control\Class + Các thuộc tính cụ thể lƣu trữ trong
SYSTEM\CurrentControlSet\Enum + Thông tin về hệ điều hành lƣu trữ trong
SOFTWARE\Microsoft\Windows NT\CurrentVersion - Với Windows 2000
+ Các lớp phần cứng lƣu trữ trong
SYSTEM\CurrentControlSet\Control\Class + Các thuộc tính cụ thể lƣu trữ trong
SYSTEM\CurrentControlSet\Enum + Thông tin về hệ điều hành lƣu trữ trong
SOFTWARE\Microsoft\Windows NT\CurrentVersion
Thông tin về các phần mềm đã đƣợc cài đặt trên máy trạm trên tất cả các hệ điều hành windows có thể lấy ở địa chỉ sau:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Current Version\Uninstall
Đây là các thông tin mà các phần mềm đăng ký trên windows phục vụ việc uninstall, các thơng tin này nói chung là khơng đầy đủ và có thể có nhiều phần mềm khơng đăng ký vào đây, tuy nhiên ta có thể lấy một danh sách cơ bản các phần mềm lớn đã đƣợc cài đặt, trong thời gian có hạn, tơi chƣa tìm đƣợc tài
liệu chi tiết về thông tin của các phần mềm cài đặt trên máy tính, đồng thời qua tham khảo các phần mềm lớn nhƣ SMS (Microsoft), LanDesk (Intel) thì việc lấy thông tin phần mềm trên máy trạm cũng khơng đƣợc đầy đủ.
Việc tìm kiếm trên cấu trúc cây của registry đƣợc tiến hành theo thuật tốn tìm kiếm theo chiều sâu (Deep First Search) một cách đệ quy.