Tài liệu Khóa luận Kiến trúc phần mềm dựa trên agent - Lê Thị Hồng Hạnh: ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
Lê Thị Hồng Hạnh
KIẾN TRÚC PHẦN MỀM DỰA TRÊN AGENT
KHOÁ LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY
Ngành: Công nghệ thông tin
HÀ NỘI – 2010
ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
Lê Thị Hồng Hạnh
KIẾN TRÚC PHẦN MỀM DỰA TRÊN AGENT
KHOÁ LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY
Ngành: Công nghệ thông tin
Cán bộ hướng dẫn: PGS.TS. Nguyễn Việt Hà
HÀ NỘI – 2010
Trang 1-1
LỜI CẢM ƠN
Lời đầu tiên em muốn gửi cảm ơn chân thành và sâu sắc tới thầy giáo, Phó Giáo
Sư, Tiến sĩ Nguyễn Việt Hà – Phó Hiệu trưởng trường Đại học Công Nghệ, người thầy
đã giúp em định hướng, có những kinh nghiệm quý báu về công nghệ Agent, thầy đã
tận tình giúp đỡ em hoàn thành khóa luận.
Em xin gửi lời cảm ơn đến thầy giáo, Thạc sĩ Đào Kiến Quốc đã giúp em hoàn
thiện và hiểu rõ các khái niệm, cách phân tích chương trình để hoàn thiện khóa luận
này.
Em cũng muốn gửi lời cảm ơn tới các thầy, cô giáo đã chỉ bảo trong suốt quá
...
37 trang |
Chia sẻ: haohao | Lượt xem: 1048 | Lượt tải: 0
Bạn đang xem trước 20 trang mẫu tài liệu Khóa luận Kiến trúc phần mềm dựa trên agent - Lê Thị Hồng Hạnh, để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
Lê Thị Hồng Hạnh
KIẾN TRÚC PHẦN MỀM DỰA TRÊN AGENT
KHOÁ LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY
Ngành: Công nghệ thông tin
HÀ NỘI – 2010
ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
Lê Thị Hồng Hạnh
KIẾN TRÚC PHẦN MỀM DỰA TRÊN AGENT
KHOÁ LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY
Ngành: Công nghệ thông tin
Cán bộ hướng dẫn: PGS.TS. Nguyễn Việt Hà
HÀ NỘI – 2010
Trang 1-1
LỜI CẢM ƠN
Lời đầu tiên em muốn gửi cảm ơn chân thành và sâu sắc tới thầy giáo, Phó Giáo
Sư, Tiến sĩ Nguyễn Việt Hà – Phó Hiệu trưởng trường Đại học Công Nghệ, người thầy
đã giúp em định hướng, có những kinh nghiệm quý báu về công nghệ Agent, thầy đã
tận tình giúp đỡ em hoàn thành khóa luận.
Em xin gửi lời cảm ơn đến thầy giáo, Thạc sĩ Đào Kiến Quốc đã giúp em hoàn
thiện và hiểu rõ các khái niệm, cách phân tích chương trình để hoàn thiện khóa luận
này.
Em cũng muốn gửi lời cảm ơn tới các thầy, cô giáo đã chỉ bảo trong suốt quá
trình học tập tại trường Đại học Công Nghệ - Đại học Quốc Gia Hà Nội. Cảm ơn bạn
Tạ Minh Tú, chị Nguyễn Thị Thu Hiền, những người đã cùng giúp đỡ, hợp tác nghiên
cứu các bài toán, ứng dụng được trình bày trong khóa luận tốt nghiệp này.
Ngoài ra, em muốn gửi lời cảm ơn đến các thầy giáo, cô giáo trong bộ môn Công
nghệ phần mềm, khoa Công nghệ thông tin, Trường Đại học Công nghệ, đã tạo điều
kiện thuận lợi cho em trong quá trình học tập chuyên ngành và thực hiện khóa luận .
Cuối cùng con muốn cảm ơn đến cha mẹ, tới gia đình và bạn bè với tình yêu
thương sâu sắc – những người đã hết sức ủng hộ, giúp đỡ và động viên con trong suốt
quá trình học tập đã qua.
Hà nội, ngày 18/05/2010
Sinh viên:
Lê Thị Hồng Hạnh
ii
TÓM TẮT
Hiện nay, khi Internet trở nên phổ biến và cần thiết, các hệ thống mở, phân tán
đang được phát triển rộng rãi và hữu ích theo cùng. Hướng phát triển các hệ thống này
chủ yếu được sử dụng theo mô hình Client –Server, mọi tính toán, yêu cầu được
chuyển lên và thực hiện ở Server bên ngoài Internet. Điều này đòi hỏi một băng thông
Internet lớn với chi phí cao. Có các hướng giải quyết để phân tải mạng trên Server như
phân tải mạng bằng các Server khác hay sử dụng Proxy Cache để lưu các kết quả tính
toán, yêu cầu đã được thực hiện. Khóa luận này sẽ giới thiệu một hướng phân tải mạng
cho Server bằng cách sử dụng Proxy động được xây dựng dựa trên lý thuyết, các kiến
thức về kiến trúc xây dựng phần mềm dựa trên Agent – một hướng nghiên cứu phát
triển phần mềm mới được xem là tiếp theo của phương pháp hướng đối tượng.
Trong mô hình này, các tính toán, yêu cầu được đóng gói thành các Agent, sau
đó được chuyển xuống Proxy, lưu giữ và thực thiện các tính toán. Các agent này có thể
di chuyển, cập nhật cơ sở dữ liệu từ Server, lưu giữ các tính toán, thực hiện các tính
toán này ngay trên Proxy khi có yêu cầu gửi đến nhằm giảm thiểu việc truy cập lên
Server, cơ sở dữ liệu, và phân tải mạng cho Server. Bên cạnh đó, sử dụng Proxy động
sẽ làm việc thực hiện các tính toán một cách nhanh chóng hơn do các tính toán ở gần
và cơ sở dữ liệu được lưu trữ sẵn trên Proxy, do đó tốc độ truyền dẫn thông tin và các
tính toán đã được lưu trữ sẽ tối ưu hơn so với khi Client yêu cầu tính toán nếu được
gửi và thực hiện trên Server theo mô hình truyền thống.
iii
MỤC LỤC
LỜI CẢM ƠN ...................................................................................................................i
TÓM TẮT ....................................................................................................................... ii
MỤC LỤC...................................................................................................................... iii
Chương 1. GIỚI THIỆU..............................................................................................5
1.1 Tổng quan kiến trúc phần mềm dựa trên Agent ................................................5
1.2 Bài toán xây dựng mô hình phân tải mạng nhờ Proxy động dựa trên Agent......5
1.3 Nội dung và cấu trúc khóa luận ........................................................................6
Chương 2. TỔNG QUAN VỀ AGENT .......................................................................8
2.1 Agent phần mềm ..............................................................................................8
2.1.1 Khái niệm Agent phần mềm .............................................................8
2.1.2 Kiến trúc tổng thể .............................................................................9
2.2 FIPA (Foundation for Intelligent, Physical Agents) ..........................................9
2.2.1 Lịch sử FIPA ..................................................................................10
2.2.2 Truyền thông Agent (Agent Communication) .................................10
2.2.3 Quản lý Agent (Agent Management) ..............................................11
2.3 Nền tảng JADE ..............................................................................................11
2.3.1 Khái niệm về JADE ........................................................................11
2.3.2 Mô hình nền tảng JADE .................................................................12
2.3.3 Biên dịch và chạy trên nền tảng JADE............................................13
2.3.4 Dịch vụ di động liên nền (Inter - Platform) .....................................16
2.3.5 Jade Gateway..................................................................................17
2.4 Tổng quan về Mobile Agent ...........................................................................18
2.4.1 Khái niệm về mobile Agent ............................................................18
2.4.2 Cấu trúc của Mobile Agent .............................................................19
iv
2.4.3 Ứng dụng của Mobile Agent...........................................................19
Chương 3. MÔ HÌNH PROXY ĐỘNG DỰA TRÊN AGENT...................................21
3.1 Giới thiệu chung về bài toán...........................................................................21
3.2 Ý tưởng xây dựng mô hình.............................................................................22
3.3 Giải pháp........................................................................................................22
3.4 Phân tích mô hình ..........................................................................................23
3.4.1 Mô hình chung ...............................................................................23
3.4.2 Mô hình Client ...............................................................................24
3.4.3 Mô hình Server...............................................................................24
3.4.4 Mô hình Proxy................................................................................25
3.5 Tổng kết .........................................................................................................27
Chương 4. THỰC NGHIỆM .....................................................................................28
4.1 Mô tả chương trình.........................................................................................28
4.2 Thiết kế ứng dụng ..........................................................................................29
4.3 Cài đặt và thực nghiệm...................................................................................31
4.3.1 Cài đặt ............................................................................................31
4.3.2 Thực nghiệm ..................................................................................31
Chương 5. KẾT LUẬN .............................................................................................33
TÀI LIỆU THAM KHẢO...............................................................................................34
v
Chương 1. GIỚI THIỆU
1.1 Tổng quan kiến trúc phần mềm dựa trên Agent
Trong những năm gần đây, sự phát triển mạnh mẽ của các công nghệ truyền
thông và Internet đã ảnh hưởng sâu rộng đến nhiều mặt của cuộc sống từ kinh tế, khoa
học đến văn hóa xã hội. Cùng với sự phát triển lớn mạnh, không ngừng của Internet,
đòi hỏi việc chia sẻ và tích hợp thông tin qua đường truyền giữa các máy với nhau, để
sử dụng cơ sở dữ liệu chia sẻ ngày càng nên phổ biến. Điều này dẫn đến nhiều thách
thức với người phát triển phần mềm khi phải đối đầu với những yêu cầu về hệ phần
mềm phức tạp, mở và phân tán.
Chúng ta đã được biết các cách phát triển phần mềm dựa trên cách cách tiếp cận
hướng cấu trúc, cách tiếp cận hướng đối tượng. Phương pháp hướng đối tượng có ưu
điểm so với phương pháp hướng cấu trúc là khả năng sử dụng lại mã nguồn, dễ đọc mã
nguồn và xử lý lỗi. Đối với cách tiếp cận hướng đối tượng, hệ thống phần mềm được
xem như tập các thực thể tương tác gọi là “đối tượng”, trong đó mỗi đối tượng được
xác định bởi 3 yếu tố: Định danh, trạng thái, và hành vi. Với cách tiếp cận hướng đối
tượng, phần mềm được xây dựng dựa trên khái niệm đối tượng, các phương thức, quan
hệ giữa các đối tượng ... hướng giải quyết này có vẻ không đáp ứng được với các hệ
phần mềm mở, phân tán, phức tạp như là quản lý mạng viễn thông, thương mại điện
tử, tìm kiếm trích lọc thông tin ...
Là một hướng phát triển tiếp theo của phương pháp hướng đối tượng, cách tiếp
cận hướng agent được xem là một công nghệ hứa hẹn cho phát triển của các hệ phần
mềm phức tạp này. Ý tưởng cơ bản của hệ Phần mềm Agent là xem hệ phần mềm như
một cấu trúc xã hội bao gồm các agent có tính tự chủ về hành vi, về trạng thái, có khả
năng phản ứng nhận biết được môi trường, chủ động trong hành động và phản ứng, và
chúng có khả năng tương tác với nhau để đạt tới một mục đích chung của hệ thống.
Phần trình bày về lý thuyết Agent sẽ làm rõ hơn các khái niệm và có cái nhìn tổng
quan hơn về agent, cũng như sử dụng agent trong việc xây dựng phần mềm.
1.2 Bài toán xây dựng mô hình phân tải mạng nhờ Proxy động
dựa trên Agent
Hiện nay, các ứng dụng hệ thống phân tán, mở, phúc tạp thường được xây dựng
dựa trên mô hình Client – Server [16]. Trong mô hình này, các dịch vụ trong ứng dụng
6
bao gồm mã cài đặt dịch vụ và các tài nguyên để thực thi dịch vụ. Khi có các yêu cầu
từ Client, các mã dịch vụ sẽ được thực thi trên tài nguyên dịch vụ và kết quả trả về cho
Client. Tuy nhiên với lượng các yêu cầu tính toán gửi lên cho Server lớn thì vấn đề
đường truyền mạng là một là một thách thức. Mô hình Client –Proxy –Server là một
hướng giải quyết của vấn đề này. Bài toán được đưa ra từ ý tưởng giảm tải mạng cho
cho Server nhờ Proxy động dựa trên các kiến thức về Agent, mobile Agent. Ở đây các
tính toán sẽ được đóng gói thành các Agent được chuyển từ Server xuống Proxy khi
được yêu cầu. Proxy sẽ lưu các tính toán này và trả về một cách nhanh chóng khi có
yêu cầu.
Nền tảng được lựa chọn để phát triển hệ thống này là JADE (Java Agent Develop
Framework), nền tảng phát triển trên nền java, cung cấp cho người lập trình một nền
tảng để tạo ra các Agent thực hiện các tính toán, di chuyển, truyền thông với nhau.
1.3 Nội dung và cấu trúc khóa luận
Với nội dung trình bày những lý thuyết cơ bản về công nghệ Agent, xây dựng mô
hình phân tải mạng ở Server nhờ Proxy động dựa trên công nghệ Agent và cách áp
dụng vào bài toán thực tế - phân tải mạng cho chương trình tìm kiếm thông tin sinh
viên ở các trường Đại học. Khóa luận được tổ chức theo cấu trúc như sau:
Chương 1: Giới thiệu
Giới thiệu sơ lược về tổng quan kiến thức về công nghệ Agent, lý thuyết Agent
và các kiến thức xây dựng phần mềm dựa trên Agent. Bài toán xây dựng mô hình phân
tải mạng nhờ Proxy động được phân tích dưới khía cạnh sử dụng Agent đóng gói, đại
diện cho các tính toán là một hướng giải quyết khả thi cho việc giải quyết bài toán
phân tải mạng. Chương này giới thiệu những gì mà khóa luận nghiên cứu, từ đó thông
qua việc trình bày về nội dung và cấu trúc của khóa luận.
Chương 2: Tổng quan về Agent
Chương hai đi vào giới thiệu một cách tổng quan nhất về Agent. Cấu trúc và hoạt
động của Agent, hệ đa Agent, mobile Agent, chuẩn FIPA, nền tảng JADE. Với những
kiến thức cơ bản này, người đọc sẽ hiểu được phần nào cấu trúc, hoạt động cũng như
những ưu nhược điểm của Phần mềm Agent từ đó có thể xây dựng, phân tích thiết kế
được mô hình phù hợp với từng bài toán.
Chương 3: Mô hình phân tải mạng bằng Proxy động dựa trên Agent
7
Chương này giới thiệu hiện trạng của việc phân tải mạng cho Server, nêu ra
hướng giải quyết sử dụng Proxy động được xây dựng dựa trên ý tưởng đóng gói các
tính toán bằng Agent. Xây dựng mô hình Client – Proxy- Server, phân tích các mô
hình Client, mô hình Proxy, mô hình Server. Qua đó xây dựng mô hình xử lý bài toán
và thiết kế chi tiết cho mô hình giảm tải mạng.
Chương 4: Thực nghiệm
Trình bày thực nghiệm được phân tích ở chương 3, mô tả các bước thiết kế, cài
đặt, kết quả thực nghiệm của chương trình quản lý đào tạo của trường đại học trong đó
vấn đề tìm kiếm thông tin sinh viên là các tính toán được thực hiện thường xuyên từ
phía Client lên Server sẽ được đóng gói thành các Agent thực thi có thể di chuyển
xuống Proxy để giúp cho việc phân tải mạng.
Chương 5: Kết luận
Chương này tổng kết lại những gì đã đạt được và chưa đạt được. Từ đó nêu lên
những kết quả hướng tới, hướng nghiên cứu và phát triển tiếp theo.
8
Chương 2. TỔNG QUAN VỀ AGENT
2.1 Agent phần mềm
Chương này sẽ trình bày khái niệm Agent phần mềm [1] [2] [3](Software Agent),
cấu tạo và đặc tính của nó cũng như các khái niệm liên quan như đặc tả FIPA[1] [4]
của Agent, nền tảng thực thi JADE [1][5][6], và tìm hiểu về Agent di động (Mobile
Agent) [7].
2.1.1 Khái niệm Agent phần mềm
Trong những năm gần đây, hướng tìm hiểu, nghiên cứu các ứng dụng của Agent
phần mềm phát triển rất mạnh mẽ, đặc biệt là trong việc thiết kế và xây dựng các ứng
dụng phân tán. Có rất nhiều tranh luận về khái niệm Agent phần mềm, tuy là các cách
diễn đạt khác nhau nhưng ở góc độ người dùng, có thể hiểu Agent phần mềm là:
Agent phần mềm là một chương trình có thể thực hiện công việc thay cho người
dùng một cách độc lập sau khi được giao công việc
Các agent cần có môi trường để thi hành trong suốt thời gian tồn tại của chúng,
chúng tương tác với môi trường thi hành cũng như hoạt động một cách không đồng bộ
và tự trị trong đó.
Một ví dụ về mô hình phát triển phần mềm dựa trên Agent như trong dịch vụ du
lịch, người sử dụng thường có nhiều yêu cầu khác nhau cho các gói du lịch của mình
như vé máy bay, vé tàu, chỗ ở ... Do đó, thành phần phần mềm thay mặt người sử dụng
cần phải tương tác, thương lượng với nhiều dịch vụ khác một cách tự động và sau đó
tích hợp kết quả gửi lại cho người sử dụng. Mỗi thành phần như thế được hình dung là
một Agent.
Các đặc trưng cơ bản của Agent [1]:
Tính tự trị (autonomous): 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.
Tính tự trị là đặc trưng quan trọng nhất của Agent.
9
Khả năng phản ứng (reactivity): Tính phản ứng là khả năng agent có thể
nhận biết được môi trường (qua bộ phận cảm nhận nào đó) 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 (pro-activeness): 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 (Social ability): các agent không chỉ hướng tới mục đích riêng
cuản 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 ...
2.1.2 Kiến trúc tổng thể
Kiến trúc Agent là một cơ chể cơ bản dựa trên các thành phần tự chủ, nó hỗ trợ
các hành động tác động lên thế giới thực, các môi trường mở và động. Trên thực tế,
kết quả ban đầu của Agent tính toán nhằm vào việc phát triển kiến trúc các Agent
thông minh, và những năm đầu tồn tại các kiểu thiết kế kiến trúc khác nhau, từ các
kiến trúc đơn giản về phản ứng hành động, điều khiển trong một mô hình kích thích –
trả lời, như là kiến trúc xếp gộp [8], cho đến các kiến trúc phức tạp hơn như là kiến
trúc dựa trên sự tin tưởng vào mục đích (BDI-Belief Desire Intention) [9]. Kiến trúc
phân lớp, tổng hợp giữa hai kiểu kiến trúc trên, bao gồm cả phản ứng hành động và
các điểm mạnh của cả hai phương pháp trên. Kiến trúc của Agent có thể được chia
thành bốn nhóm chính: Nền tảng Logic, phản ứng hành động, BDI, và kiến trúc phân
lớp.
2.2 FIPA (Foundation for Intelligent, Physical Agents)
Phần này sẽ giới thiệu một cách tổng quát về lịch sử phát triển và nội dung chính
của đặc tả FIPA [2]. Tập hợ đầy đủ các đặc tả FIPA có thể được tìm thấy trên trang
web chính thức của FIPA.
JADE là sự thi hành của các đặc tả FIPA vì thế nó phụ thuộc lớn vào các ý tưởng
được đưa ra trong các đặc tả và được mở rộng theo những tài liệu đặc tả. Tuy nhiên
10
các đặc tả FIPA không được thể hiện hoàn toàn trong JADE do JADE có mở rộng
thêm một số khu vực so với đặc tả.
2.2.1 Lịch sử FIPA
FIPA được thành lập năm 1996, được xem như là một tổ chức phi lợi nhuận quốc
tế với mục tiêu phát triển tập các chuẩn liên quan đến công nghệ phần mềm Agent.
Các thành viên ban đầu, tập hợp các tổ chức nghiên cứu và công nghiệp, đưa ra một
tập các quy tắc hướng dẫn sản xuất của tập đặc tả chuẩn Pháp lý [10] (Chuẩn Pháp lý
được hiểu đối lập với chuẩn Thực tế, nó được tạo ra không phải bởi các cơ quan chuẩn
mà được đặt ra bởi các công ty) cho công nghệ phần mềm Agent. Tại thời điểm đó,
phần mềm Agent được biết đến rộng rãi trong giới khoa học nhưng lại ít được sự quan
tâm của các tổ chức thương mại. Những người đứng đầu đã đồng ý cho sản xuất các
chuẩn có thể tạo ra một nền tảng cứng của một kỹ thuật mới bằng cách sử dụng chéo
một lượng lớn các ứng dụng.
Cốt lõi FIPA tuân theo tập các quy tắc:
1. Công nghệ Agent bao gồm một mô hình mới để giải quyết các vấn đề cũ và
mới
2. Các công nghệ Agent sẽ hướng tới mức độ hoàn thiện lớn hơn.
3. Để sử dụng công nghệ Agent cần có đặc tả
4. Đặc tả của cơ chế bên trong các Agent không phải là mối quan tâm chính, mà
là cơ sở hạ tầng và ngôn ngữ yêu cầu cho khả năng phối hợp mở.
2.2.2 Truyền thông Agent (Agent Communication)
Agent về cơ bản là hình thái của quá trình phân phối mã nguồn và do đó tuân
theo khái niệm cổ điển của mô hình phấn phối tính toán theo hai phần: các thành phần
và các kết nối. Các thành phần là những khách hàng, những nhà sản xuất và những
người điều hành các thông điệp truyền thông thông qua kết nối. Phần thân của các
chuẩn đầu tiên như là ISO hay IETF lựa chọn một cách tiếp cận hướng mạng trong
việc phát triển các cụm giao thức được phân lớp dựa phần lớn trên truyền thông máy
tính mà chúng ta đã biết như mô hình OSI, mô hình TCP/IP. Cả hai đều được tận dụng
thông qua giao tiếp giữa các phần mềm ứng dụng giao thức.
11
2.2.3 Quản lý Agent (Agent Management)
Để bổ sung cho truyền thông, khía cạnh cơ bản thứ hai của hệ thống Agent được
tạo ra bởi đặc tả FIPA là quản lý Agent: một nền tảng chuẩn trong đó có các chuẩn
FIPA cho Agent tồn tại, tổ chức và quản lý. Nó thành lập các mô hình logic tham
chiếu cho việc khởi tạo, đăng ký, xác định vị trí, di trú và tổ chức các Agent. Mô hình
tham chiếu quản lý Agent được mô tả theo hình:
Hình 2.1. Quản lý Agent
Các thành phần của mô hình sẽ được giải thích chi tiết hơn trong phần trình bày
tiếp theo về nền tảng của Agent.
2.3 Nền tảng JADE
Phần này sẽ giới thiệu một cách tổng quan của nền tảng JADE [11][12] (Java
Agent DEvelopment Framework platfom) và các lý thuyết cơ bản về thành phần kiến
trúc của nó.
2.3.1 Khái niệm về JADE
JADE (Java Agent DEvelopment Framework) là một framework phần mềm cho
hệ thống đa agent viết hoàn toàn bằng Java và được phát triển từ cuối năm 2001. Jade
cho phép sự kết hợp giữa nhiều agent tuân thủ theo chuẩn FIPA và sử dụng ngôn ngữ
giao tiếp theo chuẩn FIPA-ACL với cả SL và XML.
Jade là một nền tảng cho hoạt động của các agent, nó hỗ trợ:
12
- Là một nền tảng cho hệ phân tán của agent theo chuẩn FIPA, nó có tính di
động, bảo mật và nhiều các tính năng khác.
- Giao diện người dùng của ứng dụng Java
- Là thư viện của các giao thức tương tác FIPA, được cung cấp sẵn, hỗ trợ giao
tiếp của các agent trên những nền tảng giống hoặc khác nhau
- Có giao diện đồ họa người dùng để quản lý các agent từ cùng
- Có sẵn tại
2.3.2 Mô hình nền tảng JADE
Hình 2.2. Mô hình nền tảng JADE
Hình trên mô tả kiến trúc của nền tảng JADE.
Nó là 1 hệ kiến trúc phân tán bao gồm:
Nhiều máy
Nhiều tiến trình
Nhiều các Agent Container
Các Agent Container được hiểu là tiến trình java cho container, mỗi container sẽ
có 1 tiến trình java, rõ ràng với từng agent, chứa một hay nhiều các agent. JADE tạo ra
13
nhiều container cho các agent, chúng có thể ở trong cùng một hệ thống máy tính hoặc
khác hệ thống. Các tập của các container với nhau được gọi là nền tảng. Mỗi nền tảng
phải có một Main – Container, các container khác đều phải đăng ký với Main-
container khi chúng được đưa vào nền tảng.
Hình 2.3. Mối quan hệ các thành phần trong JADE
Khi Main-container được khởi động, đi kèm theo nó là 2 agent đặc biệt:
AMS Agent: Hệ thống quản lý Agent (Agent Management system), một
agent giám sát toàn bộ platform. Nó là nơi để các agent đăng ký bao gồm
các dịch vụ như đặt tên, xác định tính duy nhất của tên agent, quản lý
vòng đời các agent.
DF Agent: dịch vụ trang vàng trong JADE, nơi các agent đăng ký dịch vụ
của mình, ở đó một agent có thể tìm kiếm các agent khác có các dịch vụ
mà agent đó yêu cầu để thực hiện nhiệm vụ của agent.
2.3.3 Biên dịch và chạy trên nền tảng JADE
Tất cả những phần liên quan đến JADE có thể được download từ website
. Các phần mềm liên quan này được chia thành 2 phần: bản phân
phối chính thức và bản phụ trợ. Bản phụ trợ trong mỗi bản riêng biệt đều chưa các
14
module thực thi các phần mở rộng riêng biệt như các mã hóa cho ngôn ngữ. Các bản
này được phát triển bởi các thành viên công đồng nguồn mở, chia sẻ những kiến thức
về JADE cho cộng đồng.
Bản phân phối chính gồm năm file đã được nén lại với các nội dung sau:
jadeBin.zip bao gồm các file jar là nền tảng của JADE đã được dịch và được
dùng sẵn
jadeDoc.zip chứa các tài liệu, bao gồm cá hướng dẫn cho Adminitrator và
Programmer. Tài liệu này cũng có sẵn trên website.
JadeExamples.zip chứa mã nguồn của nhiều ví dụ
jadeSrc.zip chứa tất cả nguồn của JADE
jadeAll.zip chứa tất cả cả bốn file được liệt kê ở trên
Các file được down, giải nén sẽ được được chứa dưới dạng thư mục theo cấu trúc
sau:
Hình 2.4. Cấu trúc thư mục Jade
Thư mục jade/lib chứa tất cả các file jar cần được khai báo vào java
CLASSPATH để chạy JADE.CLASSPATH được khai báo như sau:
Thiết lập biến môi trường: tạo tham biến mới JADE_HOME với giá trị là
C:\jade – nơi đặt thư mục jade
Tạo tham biến CLASSPATH với giá trị là:
15
.;%JADE_HOME%\add-ons\migration\lib\migration.jar;
%JADE_HOME%\classes;%JADE_HOME%;
%JADE_HOME%\lib\jade.jar;
%JADE_HOME%\lib\jadeTools.jar;
%JADE_HOME%\lib\http.jar;
%JADE_HOME%\lib\iiop.jar;
%JADE_HOME%\lib\commons-codec\commons-codec1.3.jar;
Sau đó có thể khởi động JADE với đồ họa bằng cách sử dụng lệnh:
prompt> java jade.Boot –gui
Màn hình hiện thị sẽ thành công khi hiện ra dòng lệnh thông báo :
Hình 2.5. Thông báo dòng lệnh khởi động Jade thành công
Và màn hình đồ họa:
16
Hình 2.6. Màn hình đồ họa khởi động Jade
2.3.4 Dịch vụ di động liên nền (Inter - Platform)
Gói thư viện migration.jar được cộng đồng phát triển cho môi trường JADE bổ
sung, cung cấp gói thư viện hỗ trợ tính di động của Agent (Tính di động của Agent sẽ
được trình bày tiếp ở phần sau).
Một agent bất kỳ có thể di chuyển từ container này sang container khác thông
trong một platform thông qua dịch vụ di động agent là bên trong nền (Intra - Platform)
được cung cấp bởi JADE. Tuy nhiên muốn di chuyển liên nền (Inter - Platform) tức là
từ platform này sang platform khác, cần phải bổ sung thêm addon cho môi trường jade
là dịch vụ agent di động liên nền.
Hình 2.7. Mô hình truyền thông điệp giữa các agent
17
Dịch vụ liên nền được thiết kế và cài đặt để cung cấp khả năng di động platform
đến platform cho agent.
Ý tưởng cơ bản của dịch vụ này là dựa trên các thông điệp FIPA ACL (Agent
Communication Language) ngôn ngữ truyền thông Agent này định nghĩa khuôn dạng
các thông điệp trao đổi giữa các agent trong hệ thống và thiết lập một giao thức trao
đổi giữa các agent bao gồm: định nghĩa các kiểu thông điệp gửi và nhận, các mô hình
trao đổi trao đổi thông điệp giữa các agent; các thông điệp được gửi đi qua các AMS
agent và agent sẽ di chuyển từ platform sang platform khác
Hình 2.8. Di chuyển liên nền của Agent.
2.3.5 Jade Gateway
Jade Gateway [13] là một lớp được cung cấp sẵn trong JADE, cho thấy cách giao
tiếp giữa các agents và servlet. Đây là lớp sẽ được sử dụng làm cổng giao tiếp giữa
Server, Proxy với các agent ở bài toán nêu ra trong khóa luận này
Browser chạy ở phía client
Servlet chạy trong ứng dụng của server
PongAgent có sẵn trong 1 MAS, đóng vai trò là người nhận và phản hồi
GatewayAgent.
BlackBoard là một đối tượng được tạo ra bởi servlet và được sử dụng như là
một kênh giao tiếp giữa GatewayAgent và Servlet.
GatewayAgent cũng được tạo ra bởi servlet và nó thực hiện vai trò như 1 ngưởi
gửi
18
Hình 2.6. Mô hình JADE Gateway
2.4 Tổng quan về Mobile Agent
2.4.1 Khái niệm về mobile Agent
Mobile Agent [14] là khái niệm được mở rộng từ Agent, nó là các agent có khả
năng di chuyển trong mạng. Ngoài các đặc tính cơ bản của Agent như tính tự trị
(autonomous), tính chủ động (pro-activeness), tính chủ động (reactivity), tính xã hội
(social ability) thì mobile agent còn có khả năng di động (mobility), đây là khả năng di
chuyển từ một môi trường thi hành này sang môi trường thi hành khác của một agent.
Khả năng di động của một agent được chia thành hai loại: di động mạnh và di động
yếu. Di động mạnh (strong mobility) là khả năng mà hệ thống có thể di chuyển cả mã
chương trình và trạng thái thi hành của agent đến môi trường khác. Di động yếu (weak
mobility) là khả năng của hệ thống chỉ có thể di chuyển mã chương trình giữa các môi
trường thi hành với nhau, mã nguồn có thể mang kèm theo một số dữ liệu khởi tạo
nhưng trạng thái thi hành thì không thể di chuyển. Bên cạnh đó nó còn có khả năng
cộng tác, liện lạc phối hợp hoạt động của agent với các agent trong cùng môi trường
hay khác môi trường.
19
2.4.2 Cấu trúc của Mobile Agent
Một Mobile Agent gồm có 3 phần: mã, trạng thái và dữ liệu. Mã là phần sẽ được
thực thi khi nó di chuyển tới một nền tảng. Trạng thái là môi trường thực thi dữ liệu
của agent, bao gồm chương trình đếm và ngăn xếp thực thi. Phần này chỉ được tìm
thấy trong Agent sử dụng di chuyển mạnh. Dữ liệu bao gồm các giá trị sử dụng của
Agent, như là tri thức, các file xác định... Trong di chuyển yếu, phần này thực sự cần
thiết lúc mã agent được xây dựng như một máy trạng thái với các biến yêu cầu duy trì
trạng thái thông tin.
Hình 2.7. Cấu trúc Mobile Agent
2.4.3 Ứng dụng của Mobile Agent
Có rất nhiều tranh cãi về các ưu điểm và hạn chế của mobile agent, thường thì nó
được so sánh với agent không di động. Một vài ưu điểm đặc trưng như là :
Không đồng bộ và xử lý không phụ thuộc: khi agent di chuyển vào một
nền tảng mới, nó không cần phải liên hệ với chủ của nó để thông báo công
việc, mà chỉ cần gửi lại kết quả. Việc này có ích cho các thiết bị di động
với tài nguyện bị hạn chế; một agent có thể di chuyển đến một nền tảng
khác để thực hiện các công việc phức tạp và trả lại kết quả theo chu kỳ.
Chịu lỗi: khả năng phản ứng năng động với các sự kiện và những thay đổi
bất lợi, mobile agent giúp cho việc xây dựng hệ thống mạnh mẽ và chịu
lỗi cao được dễ dàng hơn.
Các ứng dụng với dữ liệu lớn: mobile agent phù hợp với các ứng dụng cần
xử lý một lượng tài nguyên lớn. Mobile Agent có thể dịch chuyển giữ liệu,
trong nhiều trường hợp nó tỏ ra hiểu quả hơn với cách làm truyền thống.
Tuy nhiên, Mobile Agent cũng có những khuyết điểm:
20
Khả năng mở rộng và hiệu năng: mặc dù mobile Agent giảm tải mạng,
nhưng nó lại làm tăng việc thực thi bởi nó thường được lập trình với các
ngôn ngữ thông dịch và thường cần được theo dõi chặt chẽ việc tương kết
theo chuẩn, việc này có thể gây ra quá tải xử lý dữ liệu.
Khả năng di chuyển và chuẩn hóa: agent không thể tương kết nếu nó
không tuân theo chuẩn truyền thông thông thường như FIPA hay OMG
MASIF ( Mobile Agent System Interoperabiltiy Facility).
An ninh: sử dụng Mobile Agent sẽ có thể gây ra một số vấn đề về an ninh,
các vấn đề về xử lý và truy cập dữ liệu. Bất kỳ mã di động nào đều có thể
gây ra những mối đe dọa tiềm tàng.
Các lĩnh vực ứng dụng tiềm năng [15] của Mobile Agent:
Thương mai điện tử: mobile Agent 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 Mobile Agent 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 mobile Agent. Agent có thể được gửi đ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 mobile Agent 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ở dữ 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.
21
Chương 3. MÔ HÌNH PROXY ĐỘNG DỰA TRÊN
AGENT
3.1 Giới thiệu chung về bài toán
Như đã trình bày ở chương 1 về thực trạng vấn đề phát triển mạnh mẽ của
Internet khiến cho việc tương tác trực tiếp lên Server và cơ sở dữ liệu ngày một quá
tải, yêu cầu đặt ra là cần xây dựng một mô hình đáp ứng được việc giảm tải đường
truyền trên Internet, giảm tải việc xử lý cho Server, tránh sự truy xuất quá tải lên cơ sở
dữ liệu. Mô hình Client- Proxy- Server là một trong những giải pháp có thể thực hiện
được điều này.
Hình 3.1. Mô hình Client- Proxy- Server.
Một đặc điểm của Proxy Server có thể làm giảm tải được đường truyền mạng,
giảm chi phí kết nối đó là khả năng lưu các xử lý, giúp tốc độ xử lý của các yêu cầu từ
Client nhanh hơn. Proxy ngoài chức năng là cổng liên lạc giữa Client và Server thì nó
còn có khả năng nhận các yêu cầu và nhận các tính toán từ Server để lưu và trả về
nhanh chóng khi có các yêu cầu từ Client gần nó. Với Server, ngoài khả năng xử lý,
tính toán, trả về kết quả thì còn phải có khả năng nhận các yêu cầu và trả về các tính
toán cho Proxy.
Như vậy, bài toán cần phải giải quyết ở đây là thiết kế một mô hình mà các tính
toán ở Server có thể được gửi cho Proxy, thay vì thực thi trực tiếp trên Server thì các
yêu cầu có thể thực hiện nhanh chóng ở Proxy. Bên cạnh đó, cơ sở dữ liệu từ phía
Server sẽ đươc cập nhật cho các tính toán ở Proxy nếu có sự đổi. Đây sẽ là bài toán
giảm tải đường truyền mạng cho Server sử dụng Proxy luôn có khả năng nhận, gửi,
thực hiện các tính toán – còn được gọi là mô hình Proxy động.
22
3.2 Ý tưởng xây dựng mô hình
Mô hình trên được đưa ra cần phải được thực hiện với mô hình có các chức năng
như: khả năng di chuyển các tính toán từ Server xuống Proxy, khả năng yêu cầu giải
quyết tính toán của Proxy lên Server khi có các yêu cầu từ Client gửi lên, khả năng
giao tiếp giữa các tính toán, khả năng cập nhật cơ sở dữ liệu cho các tính toán.
Như vậy, các tính toán này sẽ cần được đóng gói theo một cách nào đó để có khả
năng lưu giữ cách thức thực thi, dữ liệu liên quan, và trạng thái của nó. Các đóng gói
này cũng cần có khả năng di chuyển tính toán từ nơi này đến nơi khác, có khả năng
thực thi các tính toán đó trên môi trường lưu trữ mới này, ngoài ra chúng cần có khả
năng giao tiếp liên lạc với nhau.
Ý tưởng được đưa ra ở đây là sử dụng Agent cho việc đóng gói và dịch chuyển
các tính toán từ Server xuống Proxy. Mỗi tính toán riêng biệt, thực hiện các chức năng
khác nhau sẽ được đóng gói thành một Agent và lưu trữ trên Server. Các Agent này
được gửi cho Proxy khi có các yêu cầu tính toán, thực thi các tính toán ngay trên môi
trường vừa di chuyển đến là Proxy. Proxy có nhiệm vụ yêu cầu các Agent, thực thi
Agent, và trả về kết quả cho Client.
Như vậy, ý tưởng chính của mô hình giảm tải mạng sử dụng Proxy động dựa trên
Agent là sử dụng các Agent đóng gói, di chuyển chúng về gần nơi yêu cầu tính toán từ
Server về Proxy, nhằm các giảm truy vấn giống nhau trên Server và tránh sự tương tác
lớn lên cơ sở dữ liệu.
3.3 Giải pháp
Giải pháp này được hình thành từ ý tưởng được nêu ra ở trên nhằm đáp ứng được
yêu cầu bài toán có sử dụng Agent:
Đối với các yêu cầu tính toán, các tính toán được đóng gói thành các Agent, mỗi
Agent thực hiện các công việc tính toán nhất định.
Các yêu cầu khi được gửi đến sẽ được phân loại thành có yêu cầu chuyển Agent
hay không yêu cầu Agent. Xét với trường hợp nếu yêu cầu là yêu cầu trả về Agent:
Khi Client gửi yêu cầu, nó sẽ gửi qua Proxy, ở đây Proxy sẽ kiếm tra có các Agent
tương ứng thực hiện các yêu cầu đó không, nếu có nó, Agent ở Proxy sẽ thực hiện tính
toán và trả kết quả về cho Client. Nếu ở Proxy không có Agent thực hiện tính toán
được yêu cầu, yêu cầu này sẽ tiếp tục được gửi lên Server bởi Proxy, Server tìm kiếm
trong các Agent mà nó đang chứa, nếu tìm thấy nó sẽ trả kết quả về cho Client ngoài ra
23
còn sao chép thành một Agent và gửi trả cho Proxy lưu trữ để thực hiện các tính toán
yêu cầu sau này. Với các yêu cầu từ Client không phải là các yêu cầu về Agent, Server
sẽ thực hiện các tính toán và gửi trả về cho Client.
Một điểm cần nói thêm đó là, đối với các tính toán có sử dụng và bị thay đổi theo
sự thay đổi của cơ sở dữ liệu. Sẽ có 1 Agent ở phía Server phụ trách việc cập nhật thay
đổi cơ sở dữ liệu với các Agent tính toán còn lại, và ở phía Proxy cơ sở dữ liệu cũng
được sao chép, lưu trữ dưới dạng Cache bởi các Agent liên quan.
3.4 Phân tích mô hình
3.4.1 Mô hình chung
Như đã trình bày ở trên về giái pháp được đưa ra để giải quyết bài toán xây dựng
mô hình Proxy động dựa trên Agent. Mô hình của các yêu cầu:
Hình 3.2. Mô hình giải pháp Proxy động
Trên đây là mô hình yêu cầu chung từ Client, Proxy lắng nghe và phân loại yêu
cầu có chuyển Agent hay các yêu cầu xử lý không Agent. Trên Proxy và Server đều có
các vùng chứa và môi trường JADE để các Agent có thể di chuyển, trao đổi thông tin,
thực thi các tính toán khi di chuyển.
Dưới đây là mô hình cụ thể hơn về yêu cầu Agent.
24
Hình 3.3. Mô hình giải pháp Proxy động chi tiết
3.4.2 Mô hình Client
Thành phần chính của client là Web server hoặc application server, đại điện cho
người dùng gửi các yêu cầu tính toán.
3.4.3 Mô hình Server
Các thành phần chính của Server trong mô hình được xây dựng là:
Agent: Các agent trên Server bao gồm các agent được sử dụng để thực
hiện các tính toán, cập nhật cơ sở dữ liệu, liên lạc với nhau. Cổng giao
tiếp Agent JadeGateway được dùng xem như cổng giao tiếp giữa các
agent ở Proxy và Server.
Dữ liệu: hệ cơ sở dữ liệu hoặc file; dữ liệu sẽ được truy vấn trả về cho
các yêu cầu từ client.
Mô tả giao tiếp giữa các thành phần của Server:
25
Hình 3.4. Mô hình giao tiếp Server
Giao tiếp với Client/Proxy: phần này làm nhiệm vụ lắng nghe và tạo kết
nối với Client hoặc Proxy. Khi có yêu cầu gửi đến, phần này sẽ gửi cho
phần phân tích phân loại các yêu cầu và duy trì kết nối để đợi kết quả.
Phần xử lý: đây là phần xử lý các yêu cầu gửi đến, nơi đây sẽ phân loại
các yêu cầu gửi tới, xác định yêu cầu gửi đến là yêu cầu về agent hay là
yêu cầu thông thường. Nếu là yêu cầu thông thường nó sẽ truy vấn cơ sở
dữ liệu và trả về thông tin cho bộ phận giao tiếp để trả về cho Client.
Agent Container: Nếu yêu cầu được phân tích là yêu cầu Agent, thường
thì các yêu cầu được gửi sang bởi một agent và giao tiếp với Agent
Container, Agent Container sẽ tìm kiếm Agent phù hợp và trả về Agent
cho Proxy cùng các dữ liệu liên quan để Proxy trả kết quả cho Client.
Cơ sở dữ liệu: sẽ được truy vấn trực tiếp bởi các truy vấn thông thường
hay bị các agent tương tác.
3.4.4 Mô hình Proxy
Các thành phần chính của Proxy được xây dựng trong mô hình trên là:
26
Agent: Agent được tạo ra từ jadeGateway, giao tiếp với quản lý Agent của
Server, khi yêu cầu tới Server của Proxy về các agent thực hiện tính toán
cho Client chưa có sẵn và các agent tính toán được Server gửi tới.
Dữ liệu: hệ cơ sở dữ liệu được lưu dưới dạng Cache, cập nhật từ cơ sở dữ
liệu của Server.
Mô tả giao tiếp giữa các thành phần của Proxy
Hình 3.5. Mô hình giao tiếp Proxy
Giao tiếp với Client/Server: Proxy khởi động sẽ mở một socket chờ yêu
cầu từ Client đồng thời thiết lập môi trường JADE để có thể thực thi các
agent. Yêu cầu được gửi đến từ Client sẽ được xử lý để xác định xem đó
có phải là yêu cầu thực thi agent hay không, kết nối được duy trì cho đến
khi có kết quả trả về.
Xử lý yêu cầu: nếu yêu cầu được gửi đến là yêu cầu thông thường, Proxy
Proxy có thể xử lý bằng cách trả về kết quả được truy vấn từ Cache Proxy,
hoặc gửi các yêu cầu lên Server để chờ Server xử lý.
Nếu yêu cầu gửi đến là yêu cầu Agent, bộ xử lý này sẽ tìm kiếm trong
Agent container xem có agent phù hợp không để đưa ra kết quả, truy vấn
được thực hiện trên Cache DB ( cơ sở dữ liệu dạng cache).
27
Nếu yêu cầu là yêu cầu Agent, mà không có agent trong Agent container
phù hợp thì sẽ có một yêu cầu gửi lên Server yêu cầu Agent phù hợp, kết
quả được xử lý trả về qua Proxy và được gửi đến Client.
Kết nối sẽ được duy trì cho đến khi có kết quả trả về Client.
Agent container: chứa các agent tại Proxy, thực hiện việc tìm kiếm và trả
về các agent theo yêu cầu, sau đó trả kết quả xử lý cho Client. Bên cạnh
đó Agent container quản lý các agent, nếu sau một thời gian nhất định
Agent không được sử dụng, nó sẽ bị xóa ra vùng chứa này.
3.5 Tổng kết
Mục đích của chương này là giới thiệu cách phân tích một mô hình giảm tải
mạng dựa trên Proxy động với các kiến thức về Agent. Phần phân tích đi sâu vào giới
thiệu mô hình, cách thức giao tiếp, các kiến thức về Agent được lựa chọn phù hợp với
bài toán. Trong chương 4, em xin giới thiệu về cách xây dựng mô hình giảm tải mạng
cho Server bằng cách sử dụng Proxy động dựa trên Agent cho bài toán tìm kiếm truy
vấn trên danh sách sinh viên từ Server dựa trên mô hình quản lý đào tạo của các
trường đại học.
28
Chương 4. THỰC NGHIỆM
Để chứng minh tính khả thi của mô hình đề xuất trong chương 3, chúng tôi đã
xây dựng thực nghiệm cho việc phân tải cho Server sử dụng Proxy động dựa trên
Agent.
4.1 Mô tả chương trình
Chương trình thực nghiệm được xây dựng thiết kế dựa trên chương trình quản lý
đào tạo đại học, đây là một hệ thống rất phức tạp với một cơ sở dữ liệu rất lớn và phức
tạp. Hệ thống này có và sẽ phải thực hiện hàng trăm chức năng với một cơ sở dữ liệu
rất phức tạp liên quan đến dữ liệu của Khoa, bộ môn, chương trình đào tạo, ngành đào
tạo, hệ đào tạo, bậc đào tạo, giảng viên, phân công giảng dạy, thời khóa biểu học, thời
khóa biểu thi, trang thiết bị giảng dạy, giảng đường, phòng thí nghiệm phục vụ đào
tạo, lớp môn học, sinh viên, điểm thi, quản lý khen thưởng, nghiên cứu khoa học sinh
viên, vấn đề xét tốt nghiệp...Cùng với hàng trăm chức năng đó sẽ là một cơ sở dữ liệu
khổng lồ với các bảng và mối quan hệ phức tạp. Cơ sở dữ liệu của hệ thống được lưu
dưới dạng các thông tin gốc của nó, ví dụ như điểm một môn học sẽ được lưu dưới
dạng điểm thành phần và trọng số của nó. Hệ thống càng phức tạp hơn khi dữ liệu
được lưu trữ là cơ sở dữ liệu của rất nhiều năm. Hãy thử hình dung các công việc của
Server khi có yêu cầu xem điểm trung bình. Trước tiên hệ thống phải tính điểm trung
bình tích lũy dựa theo việc tra cứu các điểm thành phần, từ đó tính điểm tống hợp của
môn. Căn cứ vào mã môn, hệ thống phải tìm ra số tín chỉ của các môn có điểm từ D
trở lên, rồi mới tính trung bình theo trọng số là số tín chỉ. Vì thế, nếu mỗi sinh viên
muốn xem điểm trung bình khi trực tiếp truy cập vào hệ thống thì tải của hệ thống sẽ
là rất lớn.
Việc để cán bộ và sinh viên truy cập trực tiếp vào cơ sở dữ liệu sẽ có 2 vấn đề
cần phải giải quyết:
Tải hệ thống lớn :Hệ thống tải số lượng lớn người dùng và số lượng truy
cập lên cơ sở dữ liệu rất lớn.
An toàn dữ liệu: việc truy cập lên dữ liêu gốc sẽ xảy ra các nguy cơ mất
an ninh với dữ liệu: dữ liệu bị mất mát, thay đổi ...
Trong khi đó số lượng truy cập thường xuyên chỉ trên một phần cơ sở dữ liệu.
Giải pháp giảm tải cho Server với việc sử dụng Proxy (một hoặc nhiều) dựa trên khái
29
niệm Agent, Mobile Agent là một giải pháp khá hữu ích với việc đóng gói các tính
toán giống nhau thường xuyên truy cập lên một phần cơ sở dữ liệu đào tạo. Với các
tính toán giống nhau, chúng ta sẽ đóng gói chúng thành các Agent với các chức năng
cần thực hiện, các agent này sẽ được gửi xuống Proxy khi có yêu cầu. Với các yêu cầu
tiếp theo, Agent đã chứa sẵn ở Proxy sẽ thực hiện các tính toán đó, đồng thời nó cũng
cập nhật lại cơ sở dữ liệu khi có sự thay đổi của cơ sở dữ liệu gốc. Ví dụ với việc truy
vấn tính điểm trung bình, chúng ta sẽ xây dựng một agent có chức năng tính toán điểm
trung bình của sinh viên dựa vào dữ liệu có sẵn ở cơ sở dữ liệu. Agent này sẽ được gửi
tới proxy khi được yêu cầu, trả về kết quả đồng thời cập nhật tự động điểm khi điểm
trên cơ sở dữ liệu có sự thay đổi, cơ sở dữ liệu được cập nhật này sẽ được lưu ở Proxy
dưới dạng Cache. Với cách làm như vậy, các vấn đề nêu trên sẽ được giải quyết:
Giảm tải cho Server, các tính toán thường xuyên sẽ được đóng gói và lưu
ở Proxy, kết quả sẽ được trả về khi có các yêu cầu từ Client. Với phần cài
đặt là các tính toán dựa trên điểm sinh viên, các khía cạnh khác cũng xây
dựng, phân tích Agent theo cơ chế tương tự.
Dữ liệu được tăng tính an toàn do sinh viên không truy cập, tính toán trực
tiếp lên dữ liệu gốc ở Server mà các dữ liệu thường xuyên được lưu, cập
nhật tại Proxy.
4.2 Thiết kế ứng dụng
Mô hình sẽ được thiết kế với luồng các hành động của các thành phần Client,
Proxy, Server.
30
Hình 4.1. Sơ đồ khối chương trình tìm kiếm thông tin
Khi Client gửi yêu cầu về việc tìm kiếm điểm trên danh sách sinh viên, yêu cầu
đó sẽ được gửi tới Proxy, ở đây Proxy đã khởi động, mở sẵn một socket chờ các yêu
cầu từ Client gửi và nền tảng JADE đã được khởi động để làm môi trường thực thi các
agent. Khi yêu cầu được gửi đến, Proxy sẽ phân tích yêu cầu, kiểm tra xem đó có phải
là yêu cầu về agent hay không. Nếu yêu cầu từ Client là yêu cầu về agent, Proxy sẽ
kiểm tra xem đã có agent thực hiện truy vấn của Client yêu cầu chứa sẵn trong Proxy
hay không, nếu có Proxy sẽ thực hiện truy vấn thông tin đó và trả về kết quả cho
Client. Nếu Proxy không chứa sẵn các agent, nó sẽ gửi yêu cầu lên Server, nơi chứa
các agent trong môi trường JADE và cùng với cơ sở dữ liệu thông tin sinh viên. Khi
Server tìm thấy agent mà Proxy yêu cầu, nó sẽ sao chép agent (clone agent) và gửi trả
về cho Proxy agent sao chép đó cùng cơ sở dữ liệu liên quan. Tại Proxy, agent được
gửi từ Server sẽ thực hiện các truy vấn yêu cầu và trả về kết quả cho Client, hơn thế
31
nữa tại đây sẽ có cơ sở dữ liệu được lưu trữ tạm thời và cập nhật bởi các agent. Agent
thực hiện nhiệm vụ cập nhật cơ sở dữ liệu ở Server sẽ cập nhật thông tin ở cơ sở dữ
liệu sau khi có sự thay đổi, agent này sẽ giao tiếp với các agent ở Server để xác nhận
sự thay đổi thông tin đó, đồng thời các agent ở Server cũng sẽ liên lạc với các agent ở
Proxy để cập nhật sự thay đổi của cơ sở dữ liệu, các agent ở Proxy sẽ cập nhật sự thay
đổi dữ liệu này với cơ sở dữ liệu ở dạng lưu Cache trên Proxy. Đây chính là điểm nổi
bật làm giảm tải sự truy cập trực tiếp lên cơ dữ liệu ở Server từ các yêu cầu, đồng thời
làm phẩn tải mạng. Nếu yêu cầu gửi từ Client không phải là yêu cầu agent, thì yêu cầu
này sẽ được gửi lên Server và thực hiện truy vấn trả kết quả về cho Client.
4.3 Cài đặt và thực nghiệm
Trên cơ sở phân tích thiết kế, chúng tôi đã thực hiện cài đặt chương trình tìm
kiếm thông tin trên danh sách sinh viên dựa trên chương trình quản lý đào tạo đại học.
Một máy làm Server, một máy làm Proxy, và một số máy tính được sử dụng được xem
như các Client kết nối với Proxy để chạy thử chương trình.
4.3.1 Cài đặt
Server: tạo một Server với chức năng nhận yêu cầu, xử lý thông tin và gửi
yêu trả lời. Server được chọn là một webServer được xây dựng bởi ngôn
ngữ Java kết hợp việc thực thi các agent ở Server trên nền tảng JADE. Tất
cả những hành động này được thực hiện và trao đổi với Proxy thông qua
GatewayAgent. Cài đặt hệ cơ sở dữ liệu MySQL cho thông tin danh sách
sinh viên.
Proxy: thực hiện cài đặt 1 proxy sử dụng java và phát triển trên nền tảng
JADE để lưu trữ và thực thi các agent. Proxy được cài đặt khi khởi động
sẽ khởi động cùng nền tảng JADE và đợi các yêu cầu từ Client.
4.3.2 Thực nghiệm
Kết quả thực nghiệm thu được sau khi cài đặt thành công mô hình gồm 1 máy
Server, 1 máy Proxy và sử dụng một số máy tính làm Client như sau:
Cấu hình máy Server: Core 2 dual 2.66GHz, RAM 2G, hệ điều hành
Window XP.
32
Cấu hình máy Proxy: Core 2 dual 2.2GHz, RAM 2G, hệ điều hành
Window XP.
Các Client sử dụng trình duyệt Mozila Firefox 3.6
Bảng số liệu thực nghiệm
Số lượng
Client
Số yêu cầu đến Proxy
(Dung lượng Bytes)
Số yêu cầu đến Server
(Dung lượng Bytes)
Ghi chú
1 5
(2589 B)
4
(1987 B)
1 7
(3767 B)
6
(3070 B)
3 21
(11301 B)
16
(8515 B)
5 35
(18853 B)
26
(13865 B)
5 45
(24313 B)
26
(13865 B)
5 65
(35200 B)
41
(21005 B)
5 65
(73453 B)
42
(21525 B)
5 135
(73453 B)
26
(13865 B)
33
Chương 5. KẾT LUẬN
Qua thời gian nghiên cứu về công nghệ Agent, đặc biệt là trong quá trình thực
hiện khóa luận tốt nghiệp, em đã nắm rõ được cách phân tích, xây dựng mô hình mạng
phân tán dựa trên công nghệ Agent và áp dụng vào mô hình này vào bài toán thực tế:
xây dựng mô hình giảm tải mạng cho Server nhờ Proxy động dựa trên công nghệ
Agent. Những kết quả chính mà khóa luận đã đạt được có thể tổng kết như sau:
Tìm hiểu chung về công nghệ Agent, một hướng phát triển kiến trúc phần
mềm mới và hữu ích; những ứng dụng của Agent, Mobile Agent với với
các hệ thống phân tán, mở, phức tạp phát được phát triển cùng với sự lớn
mạnh của Internet ngày này.
Phân tích, thiết kế mô hình phân tải mạng cho Server nhờ Proxy động dựa
trên công nghệ Agent.
Áp dụng mô hình này vào bài toán giảm tải mạng cho mô hình tìm kiếm
thông tin trên danh sách sinh viên của các trường đại học trong bài toán
quản lý đào tạo đại học.
Bên cạnh những kết quả đạt được, còn có những vấn đề mà tại thời điểm hiện tại
mà khóa luận vẫn chưa đạt được là chưa đưa được Jade Ontology để mô tả các mối
quan hệ giữa các agent, chưa phát triển được hệ thống các cụm Proxy phân tải mạng
cho cụm Server.
Mô hình và thực nghiệm đã chứng minh tính khả thi của mô hình phân tải mạng
cho Server bằng Proxy dựa trên công nghệ Agent trong việc áp dụng vào thực tế, tạo
tiền đề cho việc xây dựng các hệ thống phân tán lớn hơn, các hệ thống phức tạp hơn
khi xây dựng phát triển trên công nghệ Agent là hoàn toàn khả thi và hữu ích. Đây sẽ
là một hướng phát triển đầy triển vọng và mang lại nhiều lợi ích cho hệ phần mềm
trong tương lai.
34
TÀI LIỆU THAM KHẢO
[1] Developing Multi-Agent Systems with JADE (Wiley Series in Agent
Technology) by Fabio Luigi Bellifemine
[2] Multiagent Systems: A Modern Approach to Distributed Artificial
Intelligence by Gerhard Weiss
[3] Agents that Reduce Work and Information Overload by Pattie Maes,
Communication of the ACM July 1994/Vol.37, No.7, 31-40
[4]
[5]
[6]
[7] White, JE. Telescript Technology: Mobile Agents. In Bradshaw Jeffrey, (ed),
Software Agents, AAAI Press/MIT Press, 1996
[8] Rodney A. Brooks - Subsumption Architecture
[9] The Belief-Desire-Intention Model of Agency by Michael Georgeff, Barney
Pell, Martha Pollack, Milind Tambe, MichaelWooldridge
[10] Blatt, R. “De Jure” standards. MIT, 1999
[11]
[12]
[13] Iebeling Kaastra, Milton Boyd
(1995). Designing a neural network for forecasting financial and economic time
series. University of Manitoba – Canada.
[14]
35
[15] Mobile Agents for WWW Distributed Database Access, Proceedings of the 15th
International Conference on Data Engineering, 1999 by S. Papastavrou, G.
Samaras, and E. Pitoura
[16]
Các file đính kèm theo tài liệu này:
- LUẬN VĂN- KIẾN TRÚC PHẦN MỀM DỰA TRÊN AGENT.pdf