proxy, máy chủ proxy sẽ hồi đáp lại client ngay lập tức mà không cần chuyển yêu cầu đến server. Điều này làm giảm rất nhiều thời gian nhận kết quả của client. Và trong lần tiếp theo, nếu proxy nhận được yêu cầu tương tự như nó đã xử lý trước đó, nó có thể ngay lập tức hồi đáp lại client. Thời gian đáp ứng của yêu cầu đến sau luôn nhỏ hơn của yêu cầu trước. Như vậy hiệu năng hệ thống đã được tăng lên và lưu lượng mạng giảm. Khi số lượng yêu cầu lên đến 100 thì thời gian đáp ứng chỉ khoảng 0.35 mili giây. Hình 4.5 chỉ ra sự chênh lệch về thời gian đáp ứng của hai mô hình.
Hình 4.5. Đồ thị so sánh thời gian đáp ứng của 2 mô hình [15]
Đường đồ thị của mô hình đề xuất năm phía dưới đường đồ thị của mô hình truyền thống và có khoảng cách khá lớn chứng tỏ chênh lệnh thời gian hồi đáp là tương đối lớn. Điều này chỉ ra rằng mô hình client – proxy – server với sự phối hợp của các agent có khả năng đáp ứng tốt cho một số lượng lớn yêu cầu. Kết quả này đã chứng minh tính hiệu quả của mô hình đề xuất.
4.2. Xây dựng hệ thống
4.2.1. Công nghệ và môi trường xây dựng
Toàn bộ hệ thống được xây dựng bằng ngôn ngữ JAVA với công cụ Eclipse. Máy chủ Server và Proxy được cài đặt Apache Tomcat 7.0. Nền tảng JADE phiên bản 4.3.3 ngày 11/12/2014 được cài đặt tại Server và Proxy. Trình duyệt sử dụng là Google Chrome. Môi trường thực hiện là máy tính cá nhân chạy hệ điều hành Windows 7, vi xử lý Intel® Core™ i3-2330M tốc độ 2.20GHz, RAM 4GB.
4.2.2. Xây dựng các thành phần hệ thống
4.2.2.1. Phía Server
ProcessServlet: là servlet xử lý việc nhận yêu cầu và nhận thông báo kết quả thực hiện chuyển đổi từ agent.
AgentServelet: là Servlet xử lý khi proxy yêu cầu agent. Nhiệm vụ của nó là nhận yêu cầu agent từ proxy, chuyển yêu cầu này cho JADE Gateway Agent.
Runjade: Khởi chạy nền tảng JADE tại Server
Gateway: Mở rộng từ Jade Gateway Agent giúp chuyển tiếp dịch vụ từ bộ quản lý dịch vụ tới agent và ngược lại.
MesageBean: Đối tượng thông điệp.
4.2.2.2. Phía Proxy
RunProxy: Khởi tạo môi trường JADE tại Proxy. Tạo socket chờ kết nối từ Client
ProxyWorker: Nhận yêu cầu từ Client, phân tích phần đầu gói tin nhận được, lấy thông tin về Server, là yêu cầu agent hay không. Nếu là yêu cầu không agent sẽ chuyển tiếp đến Server. Nếu là yêu cầu agent không tồn tại ở Proxy thì gọi AgentRequest. Nhận hồi đáp từ Server và gửi lại Client AgentRequest: Yêu cầu agent từ Server
4.2.2.3. Phía Client
Index.jsp là giao diện ban đầu khi người dùng yêu truy cập hệ thống. Test.jsp là giao diện khi thực hiện kiểm tra (cộng hai số nguyên)
4.2.3. Hoạt động
: CLIENT
PROXY SERVER
1 : Yªu cÇu giao diÖn kiÓm tra()
2 : Yªu cÇu giao diÖn kiÓm tra() 3 : Giao diÖn kiÓm tra() 4 : Giao diÖn kiÓm tra()
5 : NhËp hai sè cÇn tÝnh tæng() 6 : Yªu cÇu tÝnh tæng()
7 : Kh«ng t×m thÊy agent tÝnh tæng() 8 : Yªu cÇu agent tÝnh tæng()
9 : T¹o agent tÝnh tæng() 10 : Agent tÝnh tæng()
11 : Agent thùc hiÖn tÝnh tæng() 12 : KÕt qu¶ tÝnh tæng()