Và cũng với lý do có hàng tỉ ứng dụng cùng các thiết bị cùng tham gia sử dụng dịch vụ nên công nghệ này còn rất nhiều vấn đề cần giải quyết như khả năng đáp ứng cho các ứng dụng, khả
Trang 1ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
Trang 2ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN
NGƯỜI HƯỚNG DẪN KHOA HỌC: PGS.TS NGUYỄN VIỆT HÀ
Hà Nội – 2015
Trang 3LỜI CAM ĐOAN
Tôi xin cam đoan: Luận văn “Nghiên cứu mô hình kiến trúc và phối hợp agent
cho các dịch vụ web” là công trình nghiên cứu của riêng chúng tôi
Các kết quả nêu trong bản luận văn này là trung thực và chưa từng được ai công
bố trong bất cứ công trình nào khác
Hà Nội, tháng 10 năm 2015
Phạm Bá Binh
Trang 4MỤC LỤC
LỜI CAM ĐOAN1{ RD "E:\\Luan van 2015\\Writting\\Nghien cuu mo hinh phoi hop cac agent cho dich vu web\\8-Loi cam on, cam doan.doc" }{ RD "E:\\Luan van 2015\\Writting\\Nghien cuu mo hinh phoi hop cac agent cho dich vu web\\12-Danh muc tu viet tat.doc" }{ RD
"E:\\Luan van 2015\\Writting\\Nghien cuu mo hinh phoi hop cac agent cho dich
vu web\\11-Danh muc bang bieu.doc" }{ RD "E:\\Luan van
2015\\Writting\\Nghien cuu mo hinh phoi hop cac agent cho dich vu
web\\10-Danh muc bang bieu hinh ve.doc" }
MỤC LỤC 2
DANH MỤC TỪ VIẾT TẮT 4
DANH MỤC BẢNG BIỂU 5
DANH MỤC HÌNH VẼ 6
MỞ ĐẦU 7
1 Đặt vấn đề 7
2 Phạm vi nghiên cứu 8
3 Cấu trúc luận văn 9
Chương 1 10
CÔNG NGHỆ AGENT VÀ DỊCH VỤ WEB 10
1.1 Agent và hệ đa agent 10
1.1.1 Agent 10
1.1.2 Agent di động 11
1.1.3 Hệ đa agent 12
1.1.4 Phối hợp giữa các agent 13
1.2 Nền tảng JADE 14
1.2.1 JADE và Agent 14
1.2.2 Kiến trúc JADE 15
1.3 Công nghệ dịch vụ web 18
1.3.1 Khái niệm 18
1.3.2 Cơ chế hoạt động dịch vụ web 19
1.3.3 Các thành phần của dịch vụ web 19
1.3.4 Đặc điểm của dịch vụ web 20
1.4 Tích hợp agent và dịch vụ web 21
Chương 2 23
MÔ HÌNH KIẾN TRÚC 23
2.1 Kiến trúc 23
2.1.1 Kiến trúc chung 23
2.1.2 Kiến trúc proxy 25
2.1.3 Kiến trúc Server 26
Trang 52.2 Đánh giá hiệu năng mô hình 28
2.3 Mở rộng mô hình 31
Chương 3 34
PHỐI HỢP CÁC AGENT 34
3.1 Agent quảng bá dịch vụ 34
3.1.1 DF agent 34
3.1.2 Công bố dịch vụ 34
3.1.3 Tìm kiếm dịch vụ 35
3.2 Tổ chức và di chuyển agent 35
3.3 Phối hợp các agent 35
3.3.1 Khái niệm 35
3.3.2 Sự cần thiết phải phối hợp 36
3.3.3 Các phương pháp điều khiển phối hợp 38
3.3.3.1 Phối hợp bằng chia sẻ công việc 38
3.3.3.2 Phối hợp bằng chia sẻ kết quả 38
3.3.3.3 Phối hợp bằng lập kế hoạch 39
3.3.3.4 Phối hợp bằng cấu trúc tổ chức 40
3.3.3.5 Phối hợp thông qua ý định chung 41
3.3.3.6 Phối hợp bằng quy tắc và luật 43
3.4 Phối hợp agent trong kiến trúc đề xuất 46
3.4.1 Phân rã yêu cầu và tổng hợp kết quả 47
3.4.2 Mô hình phối hợp 47
3.4.3 Phương pháp phối hợp 48
Chương 4 50
THỰC NGHIỆM 50
4.1 Mô phỏng mô hình 50
4.1.1 Công cụ Network Simulator 2 (NS2) 50
4.1.2 Môi trường mô phỏng 50
4.1.3 Các kết quả và đánh giá 50
4.2 Xây dựng hệ thống 56
4.2.1 Công nghệ và môi trường xây dựng 56
4.2.2 Xây dựng các thành phần hệ thống 56
4.2.2.1 Phía Server 56
4.2.2.2 Phía Proxy 56
4.2.2.3 Phía Client 56
4.2.3 Hoạt động 57
4.3 Kết quả thực nghiệm 58
4.4 Một số hạn chế của mô hình 59
Trang 6KẾT LUẬN 60 TÀI LIỆU THAM KHẢO 62 PHỤ LỤC 64
{ RD "E:\\Luan van 2015\\Writting\\Nghien cuu mo hinh phoi hop cac agent cho dich vu web\\0-Mo dau.doc" }{ RD "E:\\Luan van 2015\\Writting\\Nghien cuu
mo hinh phoi hop cac agent cho dich vu web\\1-Chuong 1_Cong nghe agent va
webservice.doc" }{ RD "E:\\Luan van 2015\\Writting\\Nghien cuu mo hinh phoi hop cac agent cho dich vu web\\2-Chuong 2_Mo hinh kien truc.doc" }{ RD
"E:\\Luan van 2015\\Writting\\Nghien cuu mo hinh phoi hop cac agent cho dich
vu web\\3-Chuong 3_Phoi hop cac agent.doc" }{ RD "E:\\Luan van
2015\\Writting\\Nghien cuu mo hinh phoi hop cac agent cho dich vu
web\\4-Chuong 4_Thuc nghiem.doc" }{ RD "E:\\Luan van 2015\\Writting\\Nghien cuu
mo hinh phoi hop cac agent cho dich vu web\\5-Chuong 5_Ket luan.doc" }{ RD
"E:\\Luan van 2015\\Writting\\Nghien cuu mo hinh phoi hop cac agent cho dich
vu web\\6-Tai lieu tham khao.doc" }
DANH MỤC TỪ VIẾT TẮT
GADT Global Agent Description Table
J2ME Java 2 Micro Edition
SOAP Simple Object Access Protocal
TCP Transmission Control Protocol
UDDI Universal Description, Discovery and Intergration
WSDL Web Service Definition Language
Trang 7DANH MỤC BẢNG BIỂU{ RD "E:\\Luan van
2015\\Writting\\Nghien cuu mo hinh phoi hop cac agent cho dich vu web\\2-Chuong 2_Mo hinh kien truc.doc" }{ RD
"E:\\Luan van 2015\\Writting\\Nghien cuu mo hinh phoi hop cac agent cho dich vu web\\4-Chuong 4_Thuc nghiem.doc" }{ RD "E:\\Luan van 2015\\Writting\\Nghien cuu mo hinh phoi hop cac agent cho dich vu web\\4-Chuong 4_Thuc nghiem.doc" }{ RD "E:\\Luan van 2015\\Writting\\Nghien cuu mo hinh phoi hop cac agent cho dich vu web\\2- Chuong 2_Mo hinh kien truc.doc" }{ RD "E:\\Luan van 2015\\Writting\\Nghien cuu mo hinh phoi hop cac agent cho
dich vu web\\4-Chuong 4_Thuc nghiem.doc" }
Bảng 2.1 Thời gian đáp ứng của 2 mô hình 53 Bảng 4.1 Số lượng yêu cầu và dung lượng đến Proxy và Server trong mô hình Client-Proxy-Server 58
Trang 8DANH MỤC HÌNH VẼHinh
Hình 1.1 Cấu trúc cơ bản của một agent di động [6] 11
Hình 1.2 Mối liên hệ giữa các thành phần trong một Platform [6] 15
Hình 1.3 Biểu đồ mối quan hệ giữa các phần tử trong kiến trúc [6] 16
Hình 1.4 Mối quan hệ giữa các agent trong một platform [6] 17
Hình 1.5 Mô hình truyền thông điệp không đồng bộ trong JADE [6] 18
Hình 1.6 Cơ chế hoạt động của dịch vụ web [15] 19
Hình 1.7 Kiến trúc tích hợp agent và các dịch vụ web [6] 21
Hình 2.1 Mô hình mạng Client – Server 23
Hình 2.2 Mô hình mạng Client – Proxy – Server 23
Hình 2.3 Mô hình hoạt động của agent [12] 24
Hình 2.4 Kiến trúc Proxy 25
Hình 2.5 Kiến trúc Server 27
Hình 2.6 Kiến trúc hệ thống Client – Proxy – Server 28
Hình 2.7 Mô hình thời gian đáp ứng agent [15] 29
Hình 2.8 Đồ thị so sánh thời gian đáp ứng [15] 30
Hình 2.9 Mô hình dịch chuyển agent 31
Hình 2.10 Điều kiện xử lý yêu cầu 32
Hình 3.1 Dịch vụ trang vàng [6] 34
Hình 3.2 Các dạng quan hệ giữa các hành động 37
Hình 3.3 Mô hình Cohen và Levesque 42
Hình 3.4 Ví dụ quy ước xã hội 43
Hình 3.5 Mô hình phối hợp agent đề xuất 47
Hình 3.6 Tiến trình phối hợp agent 48
Hình 4.1 Mô phỏng client-proxy-server trên NS2 51
Hình 4.2 Giao diện kết quả chạy NS2 [15] 52
Hình 4.3 Đồ thị thời gian đáp ứng của mô hình Client – Server 54
Hình 4.4 Đồ thị thời gian đáp ứng của mô hình Client – Proxy – Server 54
Hình 4.5 Đồ thị so sánh thời gian đáp ứng của 2 mô hình [15] 55
Hình 4.6 Biểu đồ tuần tự của hệ thống 57
{ RD "E:\\Luan van 2015\\Writting\\Nghien cuu mo hinh phoi hop cac agent cho dich vu web\\1-Chuong 1_Cong nghe agent va webservice.doc" }
{ RD "E:\\Luan van 2015\\Writting\\Nghien cuu mo hinh phoi hop cac agent cho dich vu
web\\1-Chuong 1_Cong nghe agent va webservice.doc" }{ RD "E:\\Luan van
2015\\Writting\\Nghien cuu mo hinh phoi hop cac agent cho dich vu web\\2-Chuong 2_Mo
Trang 9hinh kien truc.doc" }{ RD "E:\\Luan van 2015\\Writting\\Nghien cuu mo hinh phoi hop cac agent cho dich vu web\\3-Chuong 3_Phoi hop cac agent.doc" }{ RD "E:\\Luan van
2015\\Writting\\Nghien cuu mo hinh phoi hop cac agent cho dich vu web\\4-Chuong 4_Thuc
nghiem.doc" }
Trang 10MỞ ĐẦU
1 Đặt vấn đề
Vài năm trở lại đây, với sự bùng nổ của các loại máy tính cũng như các thiết bị như điện thoại thông minh, xe thông minh, nhà thông minh mạng internet đã thực sự trở thành mạng toàn cầu và kết nối đến những nơi xa xôi nhất Sự cải thiện về cơ sở hạ tầng mạng dường như chưa đáp ứng được nhu cầu khổng lồ của các thiết bị truy cập mạng Do đó, tốc độ truy cập còn hạn chế, nhiều dịch vụ chưa đáp ứng được nhu cầu của người sử dụng Lỗi mạng, trễ mạng, tốc độ chậm không chỉ tiêu tốn thời gian công sức mà đôi khi còn gây những thiệt hại về kinh tế cho người dùng Hệ thống có số lượng truy cập càng lớn thì tỉ lệ lỗi càng tăng, tốc độ càng giảm nhất là khi các truy cập về một dịch vụ được thực hiện tại cùng một thời điểm Điều này là một hạn chế lớn của mô hình mạng Client-Server Hầu hết các tính toán đều được thực hiện bởi Server rồi gửi kết quả về Client nên tiềm ẩn nhiều rủi ro về quá tải Server hay mất mát thông tin Rất nhiều nghiên cứu để cải thiện tốc độ mạng đã được thực hiện Ý tưởng về việc
sử dụng các máy chủ phân tán được đề xuất trong [7, 10] Phương pháp mở rộng miền cung cấp dịch vụ trong [9] Hay một nền tảng cho việc thiết kết và phát triển các ứng dụng phân tán dựa trên agent di động trong [8]
Trong thực tế, rất nhiều Client truy cập đến Server từ một mạng con và cùng có yêu cầu tính toán giống nhau Ví dụ như một hệ thống thi trực tuyến gồm nhiều địa điểm thi khác nhau Tại mỗi điểm thi, yêu cầu về giao diện, tạo bài thi, kiểm tra kết quả của mỗi Client là tương tự nhau Hay một hệ thống cung cấp dịch vụ kế toán cho các công ty, mỗi công ty có nhiều phòng ban, nhân viên sử dụng dịch vụ này Dễ thấy, sẽ có nhiều tính toán được yêu cầu lặp lại bởi các phòng ban, nhân viên Tất cả những tính toán giống nhau này đều phải đưa đến Server để tính toán và trả lại kết quả thì thật là một sự lãng phí về băng thông mạng, chi phí xử
lý và thời gian chờ đợi Giải quyết vấn đề này, một mô hình sử dụng đa agent trong giảng dạy trực tuyến được đề cập trong[3] Một số kỹ thuật và kiến trúc dựa trên phần mềm agent cho thương mại điện tử được giới thiệu trong[4] Cơ sở hạ tầng phục vụ phối hợp agent cho các ứng dụng web được xây dựng trong [11, 15]
Bên cạnh đó, công nghệ dịch vụ web đang được áp dụng rộng rãi để xây dựng các hệ thống thông tin phân tán, cung cấp các tiện ích khả mở và thuận tiện cho các ứng dụng mạng cũng như người sử dụng Và cũng với lý do có hàng tỉ ứng dụng cùng các thiết bị cùng tham gia sử dụng dịch vụ nên công nghệ này còn rất nhiều vấn đề cần giải quyết như khả năng đáp ứng cho các ứng dụng, khả năng phối hợp giữa các dịch vụ, hay hiệu năng của dịch vụ với việc trợ giúp tăng hiệu năng của hệ thống Giải pháp cân bằng tải dựa trên chất lượng dịch vụ
đã được đưa ra trong [10] Hay hướng tiếp cận sử dụng agent di động để chuyển mã nội dung ảnh được giới thiệu trong [13] Với mục tiêu tương tự, chúng tôi đề xuất kiến trúc sử dụng các agent di động trong [17] Kiến trúc dịch vụ web kết hợp với việc phối hợp các agent này giúp giải quyết vấn đề đường truyền và giảm tải hệ thống Đồng thời, cung cấp một số dịch vụ có tính khả mở cao tương thích với các ứng dụng Ý tưởng chính là sử dụng hệ thống các agent
Trang 11phối hợp thực thi ở gần phía người dùng để đáp ứng nhanh nhất các yêu cầu dựa trên kiến trúc mạng gồm ba lớp Client – Proxy – Server Nền tảng này giúp giảm tải cho máy chủ web cũng như giảm lưu lượng trên toàn mạng, giảm lỗi mạng Phần lõi của kiến trúc là một dịch vụ được thực hiện bởi một hoặc một số agent có khả năng di chuyển để mang dịch vụ này tới máy chủ proxy được đặt gần các client Mỗi agent biết khả năng của mình và những dịch vụ mà các agent khác cung cấp do đó nó sẽ chủ động thực thi hoặc phối hợp với các agent khác để thực thi tại proxy Nhờ đó, thời gian đáp ứng yêu cầu dịch vụ giảm đáng kể vì các Client chỉ cần kết nối tới Proxy thay vì kết nối tới Server ở rất xa Các vấn đề nút thắt cổ chai và quá tải Server cũng được ngăn chặn và giảm thiểu Trong luận văn này, tôi xin trình bày những nghiên cứu của chúng tôi về kiến trúc hệ thống, sự phối hợp của các agent, đánh giá hiệu năng của mô hình ba lớp Client-Proxy-Server tập trung vào thời gian đáp ứng yêu cầu dịch vụ Phần
mô phỏng hệ thống trên công cụ mô phỏng mạng và một ứng dụng minh họa cũng sẽ được trình bày
2 Phạm vi nghiên cứu
Trong thời gian thực hiện luận văn, tôi cùng các đồng nghiệp đã tập trung nghiên cứu về mô hình kiến trúc mạng ba lớp Client-Proxy-Server với sự phối hợp của các agent để đáp ứng yêu cầu dịch vụ Những nội dung nghiên cứu này thuộc lĩnh vực mạng máy tính và công nghệ phần mềm Trong lĩnh vực mạng mánh tính, chúng tôi đề xuất một mô hình kiến trúc giúp giảm tải mạng, giảm trễ đường truyền, giảm tải server Các giao thức mạng và phương thức truyền cũng như việc đảm bảo chất lượng dịch vụ cũng được xem xét Phần lõi của kiến trúc thuộc về lĩnh vực công nghệ phần mềm Chúng tôi nghiên cứu về công nghệ agent phần mềm, tập trung vào agent di động và các phương pháp sắp xếp, phối hợp agent Công nghệ dịch vụ web cũng được chúng tôi nghiên cứu và tích hợp cùng agent
3 Cấu trúc luận văn
Phần còn lại của luận văn được tổ chức trong 4 chương và phần kết luận Chương 1 là phần giới thiệu về công nghệ agent, công nghệ dịch vụ web, những khái niệm, đặc điểm và cách thức hoạt động phục vụ cho nghiên cứu này Chương 2 trình bày tổng quan kiến trúc mạng 3 lớp sử dụng hệ thống agent bao gồm mô hình tổng quát, kiến trúc cụ thể của Server, Proxy; cách thức tiếp nhận, xử lý, chuyển tiếp, hồi đáp yêu cầu tại Proxy Server Đánh giá hiệu năng
hệ thống dựa trên mô hình toán học Chương 3 giới thiệu các phương pháp phối hợp agent và phương pháp phối hợp agent để đáp ứng yêu cầu dịch vụ trong kiến trúc đề xuất Những vấn
đề liên quan cũng được đề cập như sự quảng bá tác vụ của một agent, việc chuyển giao yêu cầu dịch vụ nhờ Gateway Agent, sự giao tiếp giữa các agent hay chiến lược thực thi, phối hợp,
di chuyển của các agent Chương 4 trình bày chi tiết về hai thực nghiệm để đánh giá hiệu quả của mô hình đề xuất Đầu tiên là mô phỏng mô hình bằng công cụ mô phỏng mạng Sau đó là triển khai hệ thống và xây dựng một ứng dụng nhỏ trên thực tế Phần kết luận đưa ra các nhận xét và đánh giá tổng quát về hiệu quả của hệ thống, những vấn đề còn tồn tại cũng như hướng nghiên cứu tiếp theo của đề tài
Trang 12Chương 1 CÔNG NGHỆ AGENT VÀ DỊCH VỤ WEB
1.1 Agent và hệ đa agent
1.1.1 Agent
Các ứng dụng tự động thông minh ngày nay đang phát triển mạnh mẽ nhằm thay thế con người trong các công việc nguy hiểm, phức tạp hay cả những công việc thường ngày cũng như giải trí Công nghệ agent phần mềm ra đời và ngày càng khẳng định được hiệu quả cũng như lợi ích mà nó mang lại Có rất nhiều khái niệm về agent phần mềm, nhưng tựu chung lại chúng đều mang ý nghĩa: Agent phần mềm là một chương trình có thể tự thực hiện công việc một cách độc lập khi được giao [5]
Các đặc trưng cơ bản của Agent bao gồm:
Tính tự trị: agent có thể tự kiểm soát các hành động của nó sau khi được giao
việc mà không cần sự can thiệp của người dùng hay các agent khác Mỗi agent chứa một trạng thái nào đó của riêng nó, các agent khác không thể truy cập được vào trạng thái này Agent tự quyết định các hành động của mình dựa trên trạng thái hiện thời mà không cần sự tác động của con người hay các agent khác Có thể nói, tính tự trị là đặc trưng quan trọng nhất của agent
Tính phản ứng: là khả năng agent có thể nhận biết được môi trường và dựa vào
nhận biết đó, agent đáp ứng kịp thời những thay đổi xảy ra trong môi trường Phản ứng của agent với môi trường bên ngoài đều hướng tới việc thực hiện mục tiêu của Agent đó
Tính chủ động: Khi có sự thay đổi của môi trường, agent không chỉ phản ứng
một cách đơn giản mà nó còn xác định chuỗi các hành động cần thực hiện, bản thân agent sẽ chủ động trong việc khởi động và thực hiện chuỗi hành động này
Tính xã hội: các agent không chỉ hướng tới mục đích riêng của nó mà còn có khả
năng tương tác với các agent khác trong hệ thống để hướng tới mục đích chung của hệ thống Các hoạt động tương tác này bao gồm phối hợp, cạnh tranh, thương lượng
Khả năng tự học: Các agent có thể tự học thông qua kinh nghiệm từ các lần thực thi Khả năng này giúp agent thông minh hơn
Khả năng di chuyển: agent có thể di chuyển từ vị trí này đến vị trí khác để thực thi nhiệm vụ Đây cũng là một trong những khả năng quan trọng của agent Với những đặc trưng trên, agent được ứng dụng vào trong rất nhiều lĩnh vực khác nhau Từ các hoạt động quản lý sản xuất đến việc xử lý thông tin, sự xuất hiện của tác tử và các hệ tác
Trang 13tử đã làm cho việc quản lý, xử lý thông tin dễ dàng hơn, và đạt được nhiều kết quả khả quan hơn
1.1.2 Agent di động
Agent di động là agent mang đầy đủ đặc tính của agent thông thường và có thêm khả năng di chuyển trong một nền tảng hay giữa các nền tảng khác nhau Các thành phần cơ bản của một agent di động bao gồm mã nguồn, trạng thái và dữ liệu
Hình 1.1 Cấu trúc cơ bản của một agent di động [6]
Tùy theo yêu cầu của đích đến mà trạng thái và dữ liệu có thể được di chuyển hoặc không, trong các hệ thống agent di động có thể chia thành hai loại di chuyển cơ bản là di chuyển mạnh và di chuyển yếu Di chuyển mạnh là sau khi đến vị trí mới agent tiếp tục công việc vừa tạm dừng ở vị trí cũ Di chuyển yếu đơn giản hơn là agent luôn khởi động lại công việc từ đầu khi đến vị trí mới Agent có thể chỉ di chuyển tới vị trí xác định tại thời điểm khởi tạo hoặc đích đến được xác định trong quá trình hoạt động của agent Tại vị trí mới, agent có thể chỉ cần gửi kết quả về cho agent quản lý mà không cần giữ liên lạc thường xuyên trong quá trình hoạt động Agent di động được ứng dụng nhiều trong các lĩnh vực như:
Thương mại điện tử: Agent di động rất thích hợp với thương mại điện tử Nó đại điện cho chúng ta thực hiện các công việc được giao với các hệ thống thương mại điển tử như các loại dịch vụ mua sắm, đặt vé máy bay, đặt vé xem phim Đặc điểm nổi bật của agent di động trong các ứng dụng thương mại điện tử là đại diện cho người dùng, thực hiện các giao dịch thương mại và đưa ra kết quả
Thu thập thông tin phân tán: trong trường hợp các nguồn dữ liệu cần thiết là những nguồn dữ liệu phân tán, không đồng nhất
Theo dõi và cập nhật thông tin: được phát triển dựa trên tính chất không đồng bộ của các agent di động Agent có thể được gửi đến nơi có nguồn tin, hoạt động theo dõi nguồn tin và cập nhật sự thay đổi
Hỗ trợ các thiết bị di động: do đặc điểm tài nguyên hạn chế và không kết nối thường xuyên, việc xây dựng các ứng dụng dựa trên agent di động với khả năng
di chuyển đến các máy tính có cấu hình mạnh hơn để hoạt động (truy vấn cơ sở
Trang 14dữ liệu, tìm kiếm ) rồi trả kết quả về sẽ là một giả pháp tốt cho người dùng các thiết bị di động
1.1.3 Hệ đa agent
Hệ đa agent là một tập hợp các agent cùng hoạt động trong một hệ thống, mỗi agent có thể có một mục tiêu khác nhau nhưng đều phục vụ cho mục tiêu chung của toàn hệ thống [1]
Quá trình tính toán xử lý thông tin trong hệ đa agent được cho là có khá nhiều ưu điểm
Nó cung cấp khả năng tính toàn hiệu quả hơn nhờ quá trình tính toán được phân chia cho các agent khác nhau Có thể xử lý được những bài toán phức tạp trong điều khiển tự động, thương mại điện tử Hệ thống dễ bảo trì hơn do mỗi agent được thiết kế riêng rẽ và có tính tự chủ cao Theo đó là khả năng tái sử dụng cao vì mỗi agent có khả năng riêng và có thể dùng cho nhiều ứng dụng khác nhau
Các hệ thống đa agent đang ngày càng được sử dụng rộng rãi trong rất nhiều ứng dụng, từ các hệ hống tương đối nhỏ để hỗ trợ cá nhân đến các hệ thống mở, phức tạp, và đặc biệt quan trọng dành cho các ứng dụng công nghiệp Ứng dụng công nghiệp là những ứng dụng rất quan trọng cho các hệ thống đa agent bởi vì chúng là nơi mà công nghệ đa agent đầu tiên được thử nghiệm và chứng minh tiềm năng ban đầu của nó Các ví dụ về việc áp dụng các hệ thống
đa agent trong lĩnh vực công nghiệp bao gồm kiểm soát tiến trình, chẩn đoán hệ thống, dịch vụ vận tải, và quản lý mạng Một trong những lĩnh vực ứng dụng quan trọng nữa của hệ thống đa agent là quản lý thông tin [5]
Internet đã chứng tỏ là một miền lý tưởng cho các hệ thống đa agent nhờ bản chất phân tán tự nhiên của nó và khối lượng thông tin sẵn có đang ngày càng tăng lên mạnh mẽ Ví dụ, các agent có thể được sử dụng để tìm kiếm và lọc thông tin, cung cấp những thông tin hữu ích nhất cho người sử dụng Internet đã thúc đẩy việc sử dụng công nghệ agent trong lĩnh vực quản lý tiến trình nghiệp
vụ và thương mại điện tử Giao thông và vận tải cũng là một lĩnh vực ứng dụng quan trọng của hệ đa agent, nơi mà bản chất phân tán của các tiến trình giao thông và vận tải và sự độc lập mạnh mẽ giữa các thực thể có liên quan trong các tiến trình làm cho các hệ thống đa agent trở thành công cụ có giá trị cho việc thực hiện các giải pháp có hiệu quả Các hệ thống viễn thông là một lĩnh vực ứng dụng đã sử dụng thành công các hệ đa agent Trong thực tế, các hệ thống viễn thông là các mạng lưới lớn và phân tán gồm các thành phần được kết nối với nhau Những thành phần đó cần phải được theo dõi và quản lý trong thời gian thực Các hệ thống viễn thông cũng hình thành nên cơ sở của một thị trường cạnh tranh, nơi các công ty viễn thông và các nhà cung cấp dịch vụ nhắm đến để
Trang 15phân biệt chính họ với đối thủ cạnh tranh của họ bằng cách cung cấp các dịch vụ tốt hơn, nhanh hơn hoặc đáng tin cậy hơn Vì vậy, các hệ đa agent được sử dụng
cả trong việc quản lý các mạng lưới phân tán lẫn cho việc cài đặt các dịch vụ viễn thông tiên tiến
1.1.4 Phối hợp giữa các agent
Phối hợp có thể được xem là một tiến trình mà theo đó các agent tham gia vào một cộng đồng vì một mục đích chung [16] Có nhiều lý do để các agent phối hợp như để nhanh chóng đạt được mục tiêu, để tăng khả năng và tri thức, hoặc mục tiêu của agent có thể phụ thuộc lẫn nhau… Phối hợp trong hệ đa agent chủ yếu dựa vào việc truyền thông giữa các agent Cụ thể, các agent tương tác với agent khác bằng cách sử dụng một vài ngôn ngữ giao tiếp đặc biệt được gọi là ngôn ngữ giao tiếp agent dựa trên lý thuyết lời nói hành động Hiện nay, ngôn ngữ giao tiếp agent được sử dụng nhiều nhất là FIPA ACL Sự phối hợp giữa các agent có thể được điều khiển bởi nhiều phương pháp tiếp cận khác nhau như cơ cấu tổ chức phân cấp, lập hợp đồng, lập kế hoạch đàm phán… Mỗi phương pháp có ưu và nhược điểm riêng, tùy theo đặc điểm ứng dụng mà người thiết kế có thể sử dụng phương pháp phù hợp với
hệ thống
Sự phối hợp giữa các agent có thể mang lại nhiều lợi ích như độ tin cậy cao do có nhiều agent cùng tham gia vào giải quyết bài toán, kiểm tra kết quả; Khả năng mở rộng cao vì đây là một hệ mở có thể thêm hoặc bớt các agent khi hoàn thành nhiệm vụ Khả năng phản ứng môi trường tốt vì khi một agent đơn nhận biết được sự thay đổi của môi trường sẽ thông tin cho cả hệ thống để kịp thời đưa ra hành động tương ứng với sự thay đổi đó
1.2 Nền tảng JADE
1.2.1 JADE và Agent
Với mục tiêu là cung cấp một nền tảng cho việc tạo lập, môi trường cho việc quản lý thực thi các agent, JADE (Java Agent DEvelopment framework) được thiết kế dựa trên những đặc điểm và nguyên lý của agent Các chức năng được cung cấp ở tầng giữa, độc lập với các ứng dụng cụ thể và tạo sự đơn giản cho các ứng dụng sử dụng agent [6] Do đó, JADE đã được thiết kế để cung cấp cho các lập trình viên những chức năng dễ dàng sử dụng và tùy biến, cung cấp cho agent môi trường hoạt động đầy đủ:
Một hệ thống hoàn toàn phân tán mà agent cư trú trên đó
Tuân thủ đầy đủ các đặc tả của FIPA
Phương tiện vận chuyển hiệu quả các thông điệp không đồng bộ thông qua một API trong suốt về vị trí
Thực thi cả dịch vụ trang trắng và trang vàng
Quảng lý vòng đời của agent thông qua một tên định danh duy nhất
Cung cấp tính di động của agent, cả mã và trạng thái
Trang 16 Một cơ chế đặt trước cho mỗi agent
Một tập hợp các công cụ đồ họa hỗ trợ lập trình viên trong quá trình kiểm tra và theo dõi hoạt động của agent
Hỗ trợ các ngôn ngữ hình thức và ngôn ngữ nội dung Việc kiểm tra ngôn ngữ hình thức và mã hóa nội dung được thực hiện tự động
Thư viện các giao thức tương tác, mô hình và mẫu truyền thông đặc trưng
Tích hợp với các công nghệ khác nhau dựa trên web như Jsp, Servlet, Applet, và công nghệ dịch vụ web
Hỗ trợ nền tảng J2ME và môi trường không dây
Giao diện cho việc khởi chạy, điều khiển một Platform và các thành phần
Tính khả mở cho phép lập trình viên mở rộng các chức năng của nền tảng thông qua việc bổ sung các dịch vụ phân tán lõi
1.2.2 Kiến trúc JADE
Với những lựa chọn thiết kế trên, Telecom Italia (website tilab.com) đã phát triển JADE từ năm 1998 và trở thành mã nguồn mở năm 2000 Đây là một khung kiến trúc phần mềm cho hệ thống agent, cho phép tạo lập, sử dụng, kết hợp nhiều agent theo chuẩn FIPA Các thành phần kiến trúc chính của một JADE Platform được thể hiện trong hình 1.2
Hình 1.2 Mối liên hệ giữa các thành phần trong một Platform [6]
Một JADE Platform bao gồm các khung chứa agent (Container), agent sống trong khung chứa Trong các khung chứa có một khung chứa đặc biệt là khung chứa chính (Main-Container) Nó được khởi tạo ngay khi khởi chạy nền tảng và tất cả các khung chứa khác phải đăng kí thuộc
về khung chứa chính Biểu đồ UML trong hình 1.3 mô tả mối quan hệ giữa các thành phần trong kiến trúc này
Trang 17Hình 1.3 Biểu đồ mối quan hệ giữa các phần tử trong kiến trúc [6]
Khung chứa chính có những nhiệm vụ đặc biệt sau:
Quản lý bảng khung chứa (Container Table – CT) nơi đăng kí tham chiếu và địa chỉ của tất cả các khung chứa khác
Quản lý bảng miêu tả cục bộ (Global Agent Description Table – GADT) là nơi đăng kí của tất cả các agent trong platform gồm cả trạng thái và vị trí
Duy trì hai agent đặc biệt là AMS (Agent Managerment System) và DF (Directory Facilitator) cung cấp việc quảng lý agen và dịch vụ trang trắng, dịch vụ trang vàng mặc định của platform Hình 1.4 mô tả mối quan hệ giữa hai agent này trong platform và với các agent khác
Trang 18Hình 1.4 Mối quan hệ giữa các agent trong một platform [6]
AMS là agent quản lý toàn bộ platform Nó là điểm kết nối cho tất
cả các agent khác muốn tương tác để truy cập trang trắng của platform cũng như quản lý chu trình sống của agent Mỗi agent khi sinh ra phải đăng kí với AMS để có một tên định danh duy nhất (AID – Agent Identify)
DF là agent triển khai dịch vụ trang vàng Các agent khi sinh ra phải đăng kí dịch vụ mình cung cấp với DF, hoặc khi muốn tìm kiếm dịch vụ do agent khác cung cấp thì cũng phải tìm qua DF
Mỗi Agent có một tên định danh duy nhất, có những hành vi riêng và giao tiếp với agent khác qua các thông điệp Các hành vi của agent được cung cấp bởi JADE gồm có hành vi thực thi một lần (One-Shot behaviour), hành vi liên tục (Cyclic behaviour), hành vi tùy thuộc trạng thái Mỗi agent có một hàng đợi thông điệp riêng Thông điệp được định dạng theo chuẩn FIPA-ACL gồm các trường cơ bản như người gửi, danh sách người nhận, các hành động giao tiếp, nội dung, ngôn ngữ, các ontology và một số trường bổ sung để kiểm soát các cuộc hội thoại Cơ chế truyền thông điệp được thể hiện trong hình 1.5
Trang 19Hình 1.5 Mô hình truyền thông điệp không đồng bộ trong JADE [6]
1.3 Công nghệ dịch vụ web
1.3.1 Khái niệm
Theo định nghĩa của W3C (World Wide Web Consortium), dịch vụ web là một hệ thống phần mềm được thiết kế để hỗ trợ khả năng tương tác giữa các ứng dụng trên các máy tính khác nhau trong môi trường internet thông qua các giao diện chung và sự gắn kết được mô tả bằng XML [15]
Các dịch vụ web được coi như những tài nguyên phần mềm có thể xác định bằng địa chỉ URL, thực hiện các chức năng và đưa ra các thông tin được yêu cầu Một dịch vụ web được tạo nên bằng cách lấy các chức năng và đóng gói chúng sao cho các ứng dụng khác dễ dàng tìm thấy và truy cập tới dịch vụ mà nó thực hiện, đồng thời có thể tìm kiếm và yêu cầu thông tin từ các dịch vụ khác Thông thường đó là các mô đun hoạt động độc lập trên máy chủ web
Dịch vụ web cho phép ứng dụng và phần cung cấp dịch vụ tương tác với nhau trong mọi môi trường Việc liên lạc với thế giới bên ngoài được thực hiện qua thông điệp XML Các ưu điểm chính của dịch vụ web là:
Có khả năng vượt tường lửa
Hoạt động trong
Có tính linh hoạt cao
Sử dụng các giao thức chuẩn
1.3.2 Cơ chế hoạt động dịch vụ web
Hình 1.6 mô tả cơ chế hoạt động của dịch vụ web
Trang 20Hình 1.6 Cơ chế hoạt động của dịch vụ web [15]
Trong đó có ba thao tác là Tìm kiếm (Find), Công bố (Public), Kết nối (Bind)
Nhà cung cấp dịch vụ (Service Provider) xây dựng và cài đặt đối tượng dịch vụ lên một máy chủ web và cung cấp bản mô tả dịch vụ lên Service Registry (Publish) để hướng dẫn ứng dụng khác cách khai thác sử dụng dịch vụ Ngôn ngữ sử dụng cho việc mô tả dịch vụ là SDL với cấu trúc cú pháp XML
Người sử dụng dịch vụ sẽ tìm kiếm (Find) các bản mô tả dịch vụ của nhà cung cấp trên Service Registry, dựa trên những thông tin này sẽ kết nối (Bind) đến nhà cung cấp dịch vụ để lấy dịch vụ
1.3.3 Các thành phần của dịch vụ web
Có ba thành phần chính đó là:
Web Service Definition Language (WSDL)- Ngôn ngữ mô tả dịch vụ web – là một ngôn ngữ dựa trên XML, được sử dụng để mô tả các dịch vụ web và cách thức truy cập các dịch vụ đó
Universal Description, Discovery and Intergration (UDDI)- là thành phần cho phép các dịch vụ web đăng kí dịch vụ, các ứng dụng tìm và nhận lại những thông tin yêu cầu sử dụng dịch vụ web
Simple Object Access Protocal (SOAP) – Giao thức truyên truy cập đối tượng đơn giản – là một giao thức giao tiếp dùng trong công nghệ dịch vụ web được xây dựng dựa trên XML Nó được sử dụng để đặc tả và trao đổi thông tin về cấu trúc dữ liệu cũng như các kiểu dữ liệu giữa các thành phần trong hệ thống
Trang 211.3.4 Đặc điểm của dịch vụ web
Tính độc lập: Dịch vụ web độc lập vì nó không đòi hỏi các tiến trình ở phía client phải đặt ở bất cứ một thành phần nào ở phía server, yêu cầu để triển khai dịch vụ web chỉ là servlet engine, EJB container hoặc NET runtime Khi dịch vụ web đã được triển khai thì phía client
có thể sử dụng các dịch vụ mà không cần phải cài đặt bất cứ một thành phần nào Trong khi đó với các công nghệ như RMI, phía client phải cài đặt client stub trước khi có thể truy cập dịch
Truy cập thông qua Web: Dịch vụ web sử dụng giao thức chuẩn của web Mô tả dịch
vụ được đưa ra bằng cách sử dụng WSDL, các dịch vụ được xác định với sự giúp đỡ của UDDI registry và triệu gọi thông qua SOAP Tất cả những giao thức này đều dựa trên web
Độc lập về ngôn ngữ, nền tảng, giao thức: Dịch vụ web có cơ sở là tiêu chuẩn mở XML Một client được viết bằng bất cứ ngôn ngữ nào cũng có thể truy cập một trang dịch vụ web được viết bằng bất cứ ngôn ngữ nào khác Dịch vụ web độc lập nền tảng, client và dịch
vụ web có thể chạy trên hai nền tảng độc lập khác nhau
Dựa trên chuẩn mở: Những chuẩn này là XML, SOAP, WSDL, và UDDI Dịch vụ web cho phép client và server tương tác với nhau mặc dù trong những môi trường khác nhau Với UDDI và WSDL thì việc mô tả và phát triển dịch vụ web có thể được tự động hóa Dịch vụ web có dạng modun, được sử dụng bởi dịch vụ khác cũng như công bố và gọi thực hiện dễ dàng qua internet
1.4 Tích hợp agent và dịch vụ web
Từ cơ chế hoạt động của agent và dịch vụ web ta thấy, các agent công bố dịch vụ của mình trên JADE DF Một ứng dụng muốn sử dụng dịch vụ do agent cung cấp cần tham khảo bảng dịch vụ trên DF và gửi thông điệp yêu cầu dịch vụ tới agent để lấy thông tin dịch vụ thông qua ACL/SOAP Còn một dịch vụ web thì công bố dịch vụ của mình trên UDDI, khi ứng dụng muốn sử dụng dịch vụ sẽ tìm kiếm dịch vụ trên UDDI sau đó lấy thông tin dịch vụ thông qua http/SOAP Để các dịch vụ agent cung cấp có thể được sử dụng như các dịch vụ web thông thường cần một cơ chế tích hợp để dịch vụ agent cung cấp có thể được tìm thấy trên UDDI và các dịch vụ web cũng có thể được sử dụng bởi các agent Kiến trúc tích hợp này được thêm vào nền tảng JADE như là một Add on Hình 1.7 mô tả kiến trúc tích hợp agent với các dịch
vụ web
Trang 22Hình 1.7 Kiến trúc tích hợp agent và các dịch vụ web [6]
JADE GATEWAY AGENT như là một phiên dịch viên giữa hai dịch vụ thực hiện:
Nhận và dịch các đăng kí dịch vụ của agent từ JADE DF sang mô tả WSDL tương ứng và đăng kí chúng với UDDI dưới dạng tModel Điều này cũng tương tự với việc sửa đổi và hủy bỏ đăng kí dịch vụ
Nhận và dịch các đăng kí dịch vụ từ UDDI sang mô tả ACL tương ứng và đăng kí chúng với JADE DF Tương tự với việc sửa đổi và hủy dịch vụ
Nhận và xử lý các yêu cầu dịch vụ web từ các agent Việc xử lý bao gồm tìm kiếm và lấy dịch vụ phù hợp từ UDDI, dịch thông điệp của agent sang SOAP và gửi chúng cho dịch vụ web được tìm thấy Tất cả những hồi đáp
từ phía dịch vụ web sẽ được dịch lại sang ngôn ngữ ACL và gửi cho agent
Nhận và xử lý các yêu cầu agent từ các dịch vụ web Việc xử lý bao gồm lấy các yêu cầu thích hợp từ UDDI, dịch chúng sang ACL và gửi cho agent được chọn Tất cả các hồi đáp từ agent sẽ được dịch lại sang SOAP và gửi lại cho dịch vụ web yêu cầu agent
Như vậy, các mô tả dịch vụ sẽ được chuyển đối giữa ACL và WSDL, còn các yêu cầu dịch vụ
sẽ được chuyển đổi giữa ACL và SOAP
Trang 23Hình 2.1 Mô hình mạng Client – Server
Thứ nhất là sự lãng phí về đường truyền và thời gian đáp ứng với những yêu cầu xử lý giống nhau từ các client trong cùng một mạng nội bộ Thứ hai là vấn đề nút thắt cổ chai và quá tải máy chủ khi có quá nhiều yêu cầu xử lý hay yêu cầu dịch vụ tại một thời điểm
Do đó, chúng tôi đề xuất một mô hình kiến trúc mạng có khả năng đáp ứng yêu cầu giảm tải với số lượng lớn truy cập và tăng hiệu năng của hệ thống khi đáp ứng yêu cầu dịch vụ Kiến trúc này gồm 3 lớp là server – proxy – client Mỗi nhóm client sẽ ở cùng một mạng con với một proxy và nhóm này ở xa máy chủ hệ thống Hình 2.2 mô tả kiến trúc tổng quan của hệ thống
Hình 2.2 Mô hình mạng Client – Proxy – Server
Phần lõi của hệ thống là sự sắp xếp, phối hợp các agent giữa máy chủ server và proxy để proxy có thể đáp ứng nhanh nhất các yêu cầu từ các client khi có thể Vì vậy, cả máy chủ web và proxy đều được cài đặt nền tảng của hệ thống đa agent Khi có yêu cầu dịch vụ từ client,
Trang 24proxy tương ứng sẽ tiếp nhận yêu cầu này và xử lý Nếu trong proxy chưa có các agent cung cấp dịch vụ nó sẽ ngay lập tức chuyển tiếp yêu cầu này đến server hoặc yêu cầu server gửi các agent mang dịch vụ xuống thực thi tại proxy Một hoặc nhiều agent sẽ di chuyển xuống proxy, hoạt động riêng lẻ hoặc phối hợp với nhau để đáp ứng yêu cầu từ client Sự hoạt động của agent được mô tả trong hình 2.3
Hình 2.3 Mô hình hoạt động của agent [12]
Agent được thiết kế để mang dịch vụ tương thích với hệ thống dịch vụ web hiện nay và có tính khả mở cao Do vậy, nó được thiết kế với các nguyên lý:
1 Chương trình agent: Máy chủ và máy khách có thể không giới hạn việc gửi nhận, chúng có thể thực thi các điều khiển cơ sở trên dòng dữ liệu cũng như chuyển tiếp hoặc chú thích các dữ liệu với thông tin được sử dụng bởi agent
2 Điều khiển ngoài: Thông tin được mang bởi agent phải được lựa chọn và cập nhật với máy chủ thường xuyên Agent phải cho phép một thực thể tin cậy bên ngoài hoặc đồng ý một giao thức để điều khiển nó theo các luật cài đặt cho việc chọn lọc hoặc chuyển tiếp thông điệp
3 Kế thừa kiến trúc: Những nguyên lý được liệt kê trên có thể áp dụng cho không chỉ một số agent riêng biệt mà cho toàn bộ miền như là giao thức mạng, dữ liệu trung tâm hoặc thực thi mạng Nó cho phép định nghĩa việc
Trang 25thực thi tạo điều kiện kết hợp giữa các tổ chức trong việc duy trì kiến trúc tổng thể
4 Giao thức điều khiển: Các giao thức giao tiếp có thể được biểu diễn như là kích hoạt cuộc gọi trong đó client chấp thuận sự điều khiển mà máy chủ gửi tới
5 Tái sử dụng: Có thể đặc tả một chính sách cho agent để sử dụng lại khi các kết nối tới máy chủ tạm ngưng
Trong kiến trúc đề xuất, một dịch vụ được thực hiện bởi một số agent; Sử dụng agent di động
để mang dịch vụ phân bổ tới proxy và thực hiện tại đó; Proxy tự biết khả năng chứa các agent và cung cấp cơ chế để agent giao tiếp với agent khác
2.1.2 Kiến trúc proxy
Hình 2.4 mô tả kiến trúc proxy
Hình 2.4 Kiến trúc Proxy
Các thành phần của proxy bao gồm:
Proxy server: phần chịu trách nhiệm giao tiếp và phân loại yêu cầu
o Giao tiếp với client: lắng nghe các yêu cầu từ client, giữ kết nối trong quá trình giao tiếp, gửi hồi đáp, đóng kết nối khi kết thúc phiên làm việc với client
Trang 26o Phân loại yêu cầu: Yêu cầu từ client sau khi tiếp nhận sẽ được phân thành 2 loại là yêu cầu agent và yêu cầu không agent Yêu cầu agent nếu được chuyển đến server sẽ được đính thêm phần phân loại vào đầu gói tin
o Giao tiếp với server: Khi cần kết nối tới server phần này sẽ gửi yêu cầu kết nối đến server, giữ kết nối và chờ hồi đáp từ server
o Giao tiếp với agent: thông qua JADE Gateway agent
JADE Gateway Agent:
o Nhận và xử lý các yêu cầu dịch vụ từ các agent Việc xử lý bao gồm: tìm kiếm mô hình dịch vụ tương ứng, chuyển thông điệp của agent sang dạng SOAP và gửi nó tới proxy server Các hồi đáp từ proxy server sẽ được chuyển lại thành thông điệp ACL và gửi tới agent
o Nhận và xử lý các yêu cầu dịch vụ agent từ proxy server Bao gồm việc tìm kiếm mô hình tModel tương ứng, dịch yêu cầu thành thông điệp ACL và gửi tới agent, chờ agent hồi đáp Tất cả các hồi đáp ACL của agent sẽ được chuyển sang dạng SOAP và gửi tới proxy server
o Đăng ký/hủy/sửa đổi các đăng kí dịch vụ của agent
Bộ chứa agent (container) là nơi chứa các agent và làm môi trường thực thi cho các agent Hai agent quan trọng là AMS và DF agent
Agent: là các phần tử thực thi
2.1.3 Kiến trúc Server
Kiến trúc server được thể hiện trong hình 2.5
Trang 27Hình 2.5 Kiến trúc Server
Các thành phần chính của server bao gồm:
Webserver: thực hiện các công việc
o Lắng nghe và thực hiện các kết nối tới proxy hoặc client
o Xử lý yêu cầu của proxy, nếu là yêu cầu agent sẽ chuyển tới JADE Gateway Agent
o Giữ kết nối, trả lại kết quả cho proxy
o Đóng kết nối sau khi kết thúc phiên làm việc
JADE Gateway Agent
o Nhận và dịch các đăng ký dịch vụ từ DF Agent sang mô tả WSDL và đăng ký dịch vụ với webserver Tương tự với việc sửa đổi, hủy các đăng ký dịch vụ
o Nhận và dịch các đăng kí dịch vụ web của webserver sang mô tả ACL và đăng ký chúng với DF Agent Tương tự với việc sửa đổi hoặc hủy các đăng ký dịch vụ
Bộ chứa agent: là nơi chứa các agent Sau khi agent được sinh ra chúng sẽ được nhân bản, một agent sẽ di chuyển về proxy, bản sao còn lại sẽ tồn tại
ở server trong một khoảng thời gian nhất định
Trang 28Tổng quan lại ta có mô hình chi tiết như hình 2.6
Hình 2.6 Kiến trúc hệ thống Client – Proxy – Server
Tốc độ, thời gian hồi đáp, hiệu năng của hệ thống sẽ được đánh giá qua mô hình toán học và được kiểm chứng bằng phần mềm mô phỏng ở phần tiếp theo
2.2 Đánh giá hiệu năng mô hình
Mô hình thời gian đáp ứng trong mô hình đề xuất dựa trên hệ thống Webservice (Dịch vụ web) trong đó nền tảng agent di động được cài đặt ở phía Proxy và Server (Máy chủ web) Toàn bộ hệ thống được mô tả như hình 2.6 Thời gian đáp ứng yêu cầu được tính trong trường hợp tại Proxy có sẵn agent Điều này là quan trọng vì nó ảnh ảnh hưởng đến việc giảm tải và thời gian đáp ứng yêu cầu của Client
Trang 29Hình 2.7 Mô hình thời gian đáp ứng agent [15]
- Các kí hiệu trong mô hình:
+ rreq: là số lượng yêu cầu từ Client
+ rresp: Số lượng đáp ứng yêu cầu từ Client
+ t: Khoảng thời gian từ thời điểm yêu cầu tới thời điểm được đáp ứng + t1: Thời gian từ thời điểm yêu cầu tới Agent (ms-mini giây)
+ t2: Thời gian trả lời của agent tới Client (ms)
+ t0: Thời gian agent đến Server (ms)
+ p: Dung lượng dữ liệu yêu cầu (bit/ms)
+ q: Dung lượng dữ liệu đáp ứng (bit/ms)
Trang 30với [0, 1] là độ trễ quá trình xử lý yêu cầu
Thời gian đáp ứng được mô tả trên đồ thị
Hình 2.8 Đồ thị so sánh thời gian đáp ứng [15]
Trong đó thời gian đáp ứng của Proxy là thời gian tính toán của toàn bộ quá trình chuyển agent từ Server về Proxy- trong trường hợp agent được yêu cầu không có ở Proxy Còn trong trường hợp agent đã có ở Proxy thời gian đáp ứng chỉ còn
tag = tm + ( t1 + t2) Như vậy, so với mô hình Client-Server truyền thống thì thời gian đáp ứng của mô hình đề xuất luôn nhỏ hơn
2.3 Mở rộng mô hình
Với sự tăng lên của số lượng Client, số lượng yêu cầu hệ thống sẽ tăng gấp nhiều lần
Do đó, hệ thống cần có khả năng tự mở rộng cao Với mô hình đề xuất Client – Proxy – Server