Class DatabaseUpdate

Một phần của tài liệu LUẬN VĂN THẠC SĨ CHUYÊN NGÀNH HỆ THỐNG THÔNG TIN CÂN BẰNG TẢI TRONG TRUYỀN DỮ LIỆU NHIỀU KẾT NỐI (Trang 60 - 66)

Class này thuộc về một thread riêng biệt với thread Loadbalancer. Nhiệm vụ của nó là liên tục kiểm tra nội dung trong file database. Nếu phát hiện thông tin nào không còn chính xác với hiện tại thì nó lập tức cập nhật ngay. Mỗi dòng trong file database có định dạng sau:

<Địa chỉ IP đích> <Interface có QoS tốt nhất> <Interface có QoS tốt nhì> …

Ví dụ:

8.8.8.8 eth0 eth2 8.8.4.4 eth2 eth0

Dưới đây là các phương thức của class DatabaseUpdate:

 readFile()  writeFile()  parseIPFromDatabaseLine()  parseQoSFromDatabaseLine()  lookupDatabase()  compareQoSInDatabaseAndBest QoS()  deleteLineInDatabaseFile()  addInfoToGuessDabase()  run()

Nội dung và chức năng của từng phương thức như sau:

a) Phương thức readFile(): Dùng để xuất nội dung file ra màn hình

 Tham số: Đường dẫn file (String)

Hình 3.19: Phương thức readFile() của class DatabaseUpdate

b) Phương thức writeFile(): Dùng để ghi nội dung bất kỳ lên file

 Tham số: Đường dẫn file (String), nội dung cần ghi (String)

 Giá trị trả về: void

Hình 3.20: Phương thức writeFile() của class DatabaseUpdate

c) Phương thức parseIPFromDatabaseLine(): Dùng để lấy thông tin IP tại dòng

bất kỳ trong file database

 Tham số: Dòng bất kỳ trong file database (String)

 Giá trị trả về: địa chỉ IP tương ứng (Vector). Nếu không tìm thấy thì giá trị trả về là null.

d) Phương thức parseQoSFromDatabaseLine(): Dùng để tìm thông số QoS của

một dòng ghi trên file database

 Tham số: Dòng dữ liệu trên file database (String)

 Giá trị trả về: Thông số QoS trong dòng chỉ định (Vector). Nếu không tìm thấy thì giá trị trả về là null.

Hình 3.22: Phương thức parseQoSFromDatabaseLine() của class DatabaseUpdate

e) Phương thức lookupDatabase(): Dùng để tìm thông số QoS của một địa chỉ IP

ghi trên file

 Tham số: Đường dẫn file (String), địa chỉ IP (String)

 Giá trị trả về: Thông số QoS tương ứng (Vector). Nếu không tìm thấy thì giá trị trả về là null.

Hình 3.23: Phương thức lookupDatabase() của class DatabaseUpdate

f) Phương thức compareQoSInDatabaseAndBest QoS(): Dùng để so sánh giá trị

QoS ghi trên file và QoS hiện tại tới một IP.

 Tham số: giá trị QoS hiện tại (Vector), giá trị QoS ghi trên file (Vector)

 Giá trị trả về: boolean

o “true”: nếu thông tin QoS ghi trên file vẫn còn đúng so với hiện tại o “false”: ngược lại.

Hình 3.24: Phương thức compareQoSInDatabaseAndBest QoS() của class DatabaseUpdate

g) Phương thức deleteLineInDatabaseFile(): Dùng để xóa dòng có chứa IP chỉ

định trên file database:

 Tham số: Đường dẫn file (String), dòng cần xóa (String)

 Giá trị trả về: void

Hình 3.25: Phương thức deleteLineInDatabaseFile() của class DatabaseUpdate

h) Phương thức addInfoToGuessDabase(): Dùng để thêm thông tin vào file

database

 Tham số: Đường dẫn file (String), IP đích cần thêm (String), Giá trị QoS tương ứng với IP cần thêm (Vector)

Hình 3.26: Phương thức addInfoToGuessDabase() của class DatabaseUpdate

i) Phương thức run()

Đây là phương thức sẽ kết hợp các phương thức vừa trình bày ở trên để tạo ra một thread cập nhật liên tục file database. Nhiệm vụ của nó là đọc từng dòng của file database để phát hiện các thông tin QoS “lỗi thời” và sau đó cập nhật lại các giá trị QoS mới. Ngay khi kiểm tra xong dòng cuối cùng, thread này sẽ bắt đầu đọc lại từ dòng đầu tiên trong file. Cứ như thế, quá trình đọc, kiểm tra, cập nhật được thực hiện liên tục, không mệt mỏi bởi thread DatabaseUpdate này.

Hình 3. 27: Phương thức run() của class DatabaseUpdate

Một phần của tài liệu LUẬN VĂN THẠC SĨ CHUYÊN NGÀNH HỆ THỐNG THÔNG TIN CÂN BẰNG TẢI TRONG TRUYỀN DỮ LIỆU NHIỀU KẾT NỐI (Trang 60 - 66)