CHƢƠNG 3 : ỨNG DỤNG TÁC TỬ CHO BÀI TOÁN ĐẶT LỊCH HỌP
3.3.1 Giải pháp thứ nhất
a. Mô tả giải pháp
Trong giải pháp này mô hình bài toán đƣợc mô tả nhƣ sau:
Mỗi thành viên sẽ có một lịch biểu cá nhân đƣợc lƣu trữ ngay tại máy tính cá nhân của chính mình. Tại mỗi máy tính sẽ đƣợc cài đặt một con tác tử đại diện cho chủ nhân của nó.
Khi một ngƣời muốn đề xuất một cuộc họp, họ sẽ cung cấp các thông tin ràng buộc của cuộc họp và danh sách các thành viên tham gia cuộc họp cho tác tử của mình và gửi chúng tới các thành viên của cuộc họp.
Tác tử này sẽ có nhiệm vụ di chuyển bản thân nó đến các máy trong danh sách khách mời, tƣơng tác với tác tử của khách để lấy các thông tin cần thiết về lịch biểu của khách, sau đó tính toán và đƣa ra các khoảng thời gian mà ít thành viên bận nhất, kết hợp với điều kiện ràng buộc của cuộc họp để đƣa ra các khoảng thời gian tổ chức cuộc họp cho phù hợp.
Dựa trên các kết quả mà tác tử đƣa ra, ngƣời tổ chức cuộc họp sẽ quyết định thời gian tổ chức cuộc họp, tiến hành soạn thƣ mời họp và cử tác tử của mình đến máy của các thành viên trong danh sách để mời họp.
b. Mô hình hoạt động của các tác tử
Theo giải pháp này chúng ta cần xây dựng các tác tử sau: tác tử tổ chức họp (SchAgent), tác tử đi mời họp (InvAgent) và tác tử khách mời (ServerAgent). Các tác tử này đƣợc bố trí theo mô hình nhƣ hình vẽ 3.3:
Hình 3.3: Mô hình hoạt động của các tác tử
Vai trò của các tác tử:
– Tác tử tổ chức họp (SchAgent)
Tác tử tổ chức cuộc họp sẽ nhận yêu cầu từ ngƣời chủ, sau đó mang các thuật toán của mình di chuyển tới các máy chứa thời gian biểu của các khách mời để lấy các thông tin về thời gian biểu qua các ServerAgent và tính toán để đƣa ra thời gian phù hợp cho cuộc họp sau đó trở lại máy của chủ nhân của nó báo cáo lại tình hình.
Trong quá trình di chuyển đến các máy của các khách mời, tác tử tổ chức cuộc họp chỉ quan tâm đến thời gian mà tác tử của khách cung cấp, không quan tâm đến các thông tin khác.
Mỗi khi nhận đƣợc thông tin mà tác tử khách cung cấp, tác tử tổ chức cuộc họp phải cập nhật vào dữ liệu chung của mình không phân biệt đó là thông tin của khách mời nào.
– Tác tử đi mời họp (InvAgent)
Tác tử đi mời họp sẽ nhận thông tin về thời gian, nội dung, địa điểm tổ chức cuộc họp, sau đó di chuyển tới các máy của khách mời, thông báo các thông tin về cuộc họp qua các ServerAgent, sau đó trở về báo cáo lại tình hình với ngƣời chủ của nó.
Tác tử này hoạt động gần giống với tác tử tổ chức cuộc họp (SchAgent) vì vậy ta không mô tả chi tiết chúng nữa và cũng không mô tả trong hình vẽ hoạt động của các tác tử ở trên. – Tác tử khách mời (ServerAgent) DS khách mời, thông tin cuộc họp Lịch biểu ServerAgent SchAgent Lịch biểu SchAgent ServerAgent Lịch biểu SchAgent ServerAgent … Di chuyển
Giao tiếp Giao tiếp
Giao tiếp
Di chuyển Di chuyển
Tác tử khách mời có nhiệm vụ giao tiếp với các SchAgent để cung cấp các thông tin mà SchAgent yêu cầu nhƣng không tiết lội bí mật cá nhân của khách mời. Chúng còn có nhiệm vụ giao tiếp với tác tử InvAgent để nhận thông báo về cuộc họp mà InvAgent cung cấp rồi cập nhật vào cơ sở dữ liệu của khách mời. Ngoài ra tác tử này còn có nhiệm vụ giao tiếp với chủ nhân của nó để nhận các thông tin mà chủ nhân của nó cung cấp và thông báo với chủ nhân của nó các thông tin mà nó nhận đƣợc.
c. Nhận xét
Dữ liệu về lịch biểu của từng ngƣời đƣợc lƣu ngay trên máy của mình, nên các thông tin trong lịch biểu đƣợc giữ bí mật hơn.
Do tác tử của các khách mời chỉ cung cấp các thông tin về thời gian của chủ nhân của mình cho tác tử tổ chức cuộc họp mà không cung cấp các thông tin về nội dung lịch biểu nên giữ đƣợc bí mật về nội dung lịch biểu.
Do thuật toán của tác tử đi mời họp ghi chung tất cả các thông tin về thời gian mà nó ghi nhận đƣợc từ các tác tử của khách mời vào chung một dữ liệu, không phân biệt là thông tin của ai nên ngƣời mời họp cũng không biết đƣợc ai bận, ai không bận vào thời điểm nào mà chỉ biết đƣợc thời điểm nào ít ngƣời bận, thời điểm nào nhiều ngƣời bận.
Ngƣời dùng không cần phải kết nối mạng thƣờng xuyên mà vẫn có thể xem, theo dõi, cập nhật đƣợc thông tin lịch biểu của mình ngay trên máy tính của mình.
Không cần phải di chuyển dữ liệu lịch biểu của các thành viên tới máy chủ nữa, mà tác tử sẽ di chuyển chính bản thân nó đến máy của các thành viên để tính toán trên các dữ liệu đó và mang kết quả về, nhƣ vậy lƣu lƣợng vận chuyển dữ liệu trên các đƣờng mạng giảm đi rất nhiều.
Mỗi khi cần tổ chức cuộc họp máy của ngƣời mời họp chỉ cần kết nối với mạng bên ngoài 2 lần: một lần gửi tác tử đi, một lần nhận tác tử về.
Khắc phục hiện tƣợng tắc nghẽn đƣờng truyền:
Giả sử đƣờng truyền tại một nút mạng nào đó bị tắc nghẽn, nếu sử dụng theo các mô hình truyền thống thì hệ thống sẽ bị gián đoạn, nhƣng nếu sử dụng giải pháp tác tử di động thì khi gặp tắc nghẽn tại một nút mạng nào đó, tác tử sẽ tìm con đƣờng khác để đi nhƣ vậy sẽ hạn chế đƣợc rất nhiều việc gián đoạn do tắc nghẽn đƣờng truyền gây ra.
Ngoài ra công nghệ tác tử cũng giúp chúng ta xử lý theo kiểu không trực tuyến: nghĩa là chúng ta có thể gửi tác tử của mình đi rồi làm việc khác trong lúc chờ đợi tác tử mang kết quả về.
Trong giải pháp này chúng ta nhận thấy đã khắc phục đƣợc hầu hết tất cả các hạn chế khi triển khai theo mô hình trƣớc, chỉ còn một hạn chế nhỏ đó là khi ngƣời mời họp thay đổi thuật toán đƣợc cài đặt trên tác tử đi mời họp thì vẫn có thể biết đƣợc thành viên nào bận vào khi nào, không bận vào khi nào. Để khắc phục triệt để các hạn chế trên chúng ta sẽ xem xét tiếp giải pháp thứ hai ứng dụng công nghệ tác tử trong phần tiếp theo.
Chúng ta có thể cải tiến giải pháp này để ứng dụng hoạt động nhanh hơn, hiệu quả hơn bằng cách: khi cần tổ chức cuộc họp (hoặc khi tiến hành mời họp) ngƣời tổ chức có thể gửi đi cùng lúc nhiều tác tử để chúng thu thập thông tin (hoặc gửi thông báo mời họp) (nhƣ hình vẽ 3.4) và sau đó kết hợp lại để hoàn thành nhiệm vụ và báo cáo chủ nhân của nó.