Khóa luận Nghiên cứu mô hình phân tải server sử dụng proxy động

ĐẠI HC QUC GIA HÀ NI  
TRƯỜNG ĐẠI HC CÔNG NGHỆ  
Nguyễn Minh Hoàng  
NGHIÊN CU MÔ HÌNH PHÂN TI SERVER  
SDỤNG PROXY ĐỘNG  
KHOÁ LUN TT NGHIỆP ĐẠI HC HCHÍNH QUY  
Ngành: Công nghthông tin  
NỘI - 2009  
ĐẠI HC QUC GIA HÀ NI  
TRƯỜNG ĐẠI HC CÔNG NGHỆ  
Nguyn Minh Hoàng  
NGHIÊN CU MÔ HÌNH PHÂN TI SERVER  
SDỤNG PROXY ĐỘNG  
KHOÁ LUN TT NGHIỆP ĐẠI HC HCHÍNH QUY  
Ngành: Công nghthông tin  
Cán bộ hưng dn: TS. Nguyn Vit Hà  
Cán bộ đồng hướng dn: ThS. Vũ Quang Dũng  
NI – 2009  
VIETNAM NATIONAL UNIVERSITY, HANOI  
COLLEGE OF TECHNOLOGY  
Nguyen Minh Hoang  
RESEARCH ON SERVER WORKLOAD  
REDUCTION USING DYNAMIC PROXY  
GRADUATION THESIS  
Major field: Information Technology  
Supervisor: Nguyen Viet Ha, Dr. Eng.  
Co-supervisor: Vu Quang Dung, Master  
HANOI – 2009  
Nghiên cu mô hình phân ti Server sdụng Proxy động  
Lời cảm ơn  
Lời đầu tiên em xin bày tlòng biết ơn sâu sắc ti hai thy giáo TS. Nguyn Vit Hà  
và ThS. Vũ Quang Dũng. Các thầy đã hướng dn em tn tình trong suốt năm hc va qua.  
Em xin bày tlòng biết ơn tới các thy, cô giáo trong Khoa Công nghthông tin,  
Trường Đại hc Công ngh, ĐHQGHN. Các thầy cô đã dy bo, chdn chúng em và  
luôn tạo điều kin tt nht cho chúng em hc tp trong sut quá trình học đại học đặc bit  
là trong thi gian làm khoá lun tt nghip.  
Tôi xin cảm ơn các bạn sinh viên khoá K50 trường Đại hc Công nghệ, đã cho tôi  
nhng ý kiến đóng góp giá trkhi thc hiện đề tài này.  
Cui cùng con xin gi ti bmvà toàn thể gia đình lòng biết ơn và tình cm yêu  
thương sâu sc.  
Hà Ni, ngày 20/5/2009  
Nguyn Minh Hoàng  
i
Nghiên cu mô hình phân ti Server sdụng Proxy động  
Tóm tắt  
Xu hướng chuyn mi tính toán lên Server bên ngoài Internet đang dần trnên phổ  
biến, và slà mt trong nhng hình thc hoạt động chyêu của tương lai. Do đó yêu cầu  
vvic phân ti cho Server là thiết yếu. Các mô hình hin có chyếu phân ti cho Server  
bng mt Server khác hoc da trên các Cache Proxy. Khoá lun này sẽ đưa ra một mô  
hình mi cho vic phân ti Server bng vic sdụng Proxy động được xây dng da trên  
lý thuyết vAgent.  
Trong mô hình này, các tính toán sẽ được đóng thành các Agent và được chuên  
xung cho Proxy thc hin. Vi mô hình này, vic tính toán trên Server sẽ được gim bt  
do mt stính toán có thể được thc hin ngay trên Proxy. Cùng với đó là tính hiệu quả  
trong vic sdụng đường truyn Internet cũng được tăng lên khi Proxy được bố trí như  
mt cng ra Internet ca hthng mng phía sau nó. Mt kết quna mà mô hình Proxy  
động có thmang li là tốc độ tính toán sẽ tăng lên do công việc được chia scho Proxy  
trong cùng mng thc hin và tốc độ truyn thông tin gia Client với Proxy nhanh hơn so  
vi vic truyn ti Server.  
ii  
Nghiên cu mô hình phân ti Server sdụng Proxy động  
Abstract  
Tendency to transfer all calculations on the Internet Server is gradually becoming  
popular, and will be one of the main active forms in the future. Therefore the  
requirements for the server workload reduction is essential. Current models have major  
share in a Server by using another Server or Cache Proxy. This thesis will offer a new  
model for the server workload reduction using dynamic Proxy based on the theory of  
Agent.  
In this model, calculations will be packaged into the Agent and moved to Proxy for  
executing. In here, calculation on the Server will be reduced because a number of  
calculations can be done on the Proxy. Along with that, efficiency in the use of internet  
access will also be enhanced when the Proxy is arranged as an Internet gateway for the  
network behind it. Another result that dynamic Proxy model can bring is that calculation  
speed will be increased because Server works will be shared by Proxy and  
communication speed between the Client and the Proxy is faster than that between the  
Client and the Server.  
iii  
Nghiên cu mô hình phân ti Server sdụng Proxy động  
Mục lục  
Li cảm ơn .......................................................................................................................i  
Tóm tt........................................................................................................................... ii  
Abstract......................................................................................................................... iii  
Mc lc...........................................................................................................................iv  
Danh mc hình v..........................................................................................................vi  
Chương 1 Đặt vấn đ......................................................................................................1  
1.1. Thc trng..............................................................................................................1  
1.2. Phm vi nghiên cu................................................................................................3  
1.3. Sơ lược vcách tiếp cn.........................................................................................3  
1.4. Cu trúc ca khóa lun...........................................................................................4  
Chương 2 Agent phần mm............................................................................................6  
2.1. Tìm hiu vAgent..................................................................................................6  
2.1.1. Agent ..............................................................................................................6  
2.1.1.1. Agent là gì................................................................................................6  
2.1.1.2. Kiến trúc tng thế.....................................................................................7  
2.1.2. FIPA (Foundation for Intelligent, Physical Agents) .........................................8  
2.1.2.1. Lch sphát trin......................................................................................8  
2.1.2.2. Các khái nim ct lõi................................................................................9  
2.1.2.2.1. Truyn thông Agent (agent communication)..........................................9  
2.1.2.2.2. Qun lý Agent (Agent management)......................................................9  
2.2. Nn tng JADE ....................................................................................................10  
2.2.1. Lch sphát trin...........................................................................................10  
2.2.2. Jade và mô hình các Agent ............................................................................11  
2.2.3. Kiến trúc Jade................................................................................................11  
2.2.4. Biên dch và chy nn tng Jade....................................................................13  
2.2.5. Agent di động (Mobile Agent).......................................................................16  
Chương 3 Mô hình Proxy động....................................................................................19  
3.1. Mô tbài toán ......................................................................................................19  
3.2. Mô hình đề xut...................................................................................................20  
iv  
Nghiên cu mô hình phân ti Server sdụng Proxy động  
3.2.1. Ý tưởng.........................................................................................................20  
3.2.2. Gii pháp.......................................................................................................21  
3.2.2.1. Gii pháp cho Server ..............................................................................21  
3.2.2.2. Gii pháp cho Proxy ...............................................................................21  
3.2.3. Mô hình.........................................................................................................22  
3.2.3.1. Mô hình chung .......................................................................................22  
3.2.3.2. Mô hình ca Server ................................................................................23  
3.2.3.3. Mô hình ca Proxy .................................................................................25  
Chương 4 Thc nghim................................................................................................29  
4.1. Phân tích thiết kế..................................................................................................29  
4.1.1. Mô tả chương trình........................................................................................29  
4.1.2. Yêu cu kthut............................................................................................30  
4.1.2.1. Yêu cu kthut cho Server ...................................................................30  
4.1.2.2. Yêu cu kthut cho Proxy....................................................................30  
4.1.3. Các giai đoạn phát trin.................................................................................31  
4.1.4. Thiết kế chương trình ....................................................................................32  
4.2. Cài đặt và thc nghim.........................................................................................33  
4.2.1. Cài đặt Server................................................................................................34  
4.2.2. Cài đặt Proxy.................................................................................................34  
4.2.3. Thc nghim .................................................................................................34  
Chương 5 Kết lun........................................................................................................37  
5.1. Kết quả thu được..................................................................................................37  
5.2. Hướng phát trin tiếp theo....................................................................................38  
Tài liu tham kho........................................................................................................40  
v
Nghiên cu mô hình phân ti Server sdụng Proxy động  
Danh mục hình vẽ  
`
Hình 2.1: Qun lý Agent.................................................................................................10  
Hình 2.2: Mi quan hgia các thành phn trong kiến trúc chính...................................12  
Hình 2.3: UML mi quan hgia các thành phn trong kiến trúc chính..........................12  
Hình 2.4: Cu trúc thư mc JADE ..................................................................................14  
Hình 2.5: Kết qukhi khời động thành công...................................................................15  
Hình 2.6: Giao din nn tng JADE................................................................................15  
Hình 2.7: Cấu trúc đơn gin ca Agent di dng...............................................................17  
Hình 3.1: Mô hình Client – Proxy – Server.....................................................................19  
Hình 3.2: Mô hình hthng............................................................................................23  
Hình 3.3: Cu trúc Server ...............................................................................................24  
Hình 3.4: Mu yêu cu gi cho Server ............................................................................25  
Hình 3.5: Cu trúc Proxy Server .....................................................................................26  
Hình 3.6: Mu yêu cu gi cho Proxy.............................................................................28  
Hình 4.1: Biểu đồ tun tca hthng...........................................................................32  
vi  
Nghiên cu mô hình phân ti Server sdụng Proxy động  
Chương 1 Đặt vấn đề  
1.1. Thc trng  
Internet là một hệ thống thông tin toàn cầu có thể được truy nhập công cộng gồm  
các mạng máy tính được liên kết với nhau. Hệ thống máy tính này bao gồm hàng ngàn  
mạng máy tính nhỏ hơn của các doanh nghiệp, các viện nghiên cứu, các trường đại học,  
các chính phủ và người dùng cá nhân. Các máy tính kết nối Internet có thể lấy thông tin từ  
rất nhiều nguồn khác nhau đồng thời cũng có thể chia sẻ thông tin của mình cho những  
người sử dụng khác. Internet mang lại rất nhiều tiện ích hữu dụng cho người dùng, phổ  
biến nhất có thể kể đến hệ thống thư điện tử, trò chuyện trực tuyến, truy tìm dữ liệu, các  
dch vụ thương mại và chuyn ngân, và các dch vvy tế giáo dục như cha bnh txa  
hoc tchc các lp hc o. Chúng cung cp mt khối lượng thông tin và dch vkhng  
ltrên Internet. Nhu cầu sử dụng Internet không chỉ như một nơi cung cấp thông tin mà  
còn là nơi thực hiện trực tiếp các yêu cầu về tính toán ngày một lớn. Các dịch vụ chuẩn  
được sử dụng phổ biến trên Internet hiện nay như trao đổi thư điện tử, truy cập Web và  
truy cập dữ liệu đều dựa trên mô hình Client – Server [11]. Client – Server din tmi  
quan hgiữa hai chương trình máy tính mà ở đó chương trình Client to ra các yêu cu về  
dch vụ cho chương trình Server.  
Mô hình kiến trúc phần mềm Client - Server phân tách các hệ thống Client và các hệ  
thống Server và liên kết chúng dựa trên mạng máy tính. Một ứng Client – Server là một  
hệ thống được phân bố bao gồm cả phần mềm cho Client và phần mềm cho Server. Một  
phần mềm Client khi chạy có thể khởi tạo một tiến trình liên kết trong khi phía Server chờ  
đợi yêu cầu từ bất kỳ Client nào.  
Mô hình Client – Server là trung tâm ca các ý tưởng vmng tính toán. Đa số các  
ng dụng kinh doanh được viết ra đều sdng mô hình Client – Server. Mi phiên bn  
ca phn mm Client có thgi các dliu yêu cầu đến mt hoc nhiu Server. Sau đó,  
Server schp nhn các yêu cu này, xlý chúng và trả thông tin đã được yêu cu cho  
Client. Mc dù khái nim này có thể được sdng cho rt nhiu ng dng khác nhau theo  
các cách khác nhau nhưng kiến trúc cơ bản thì vẫn được ginguyên.  
1
Nghiên cu mô hình phân ti Server sdụng Proxy động  
Kiu kiến trúc cơ bản nht áp dng mô hình Client – Server là chsdng hai máy,  
mt Client và mt Server. Kiu kiến trúc này đôi khi được hiu là hai lp. Nó cho phép  
các thiết bcó thchia scác tài nguyên. Kiến trúc hai lp có nghĩa là các hành động ca  
Client là mt lp và ng dng tng hợp các hành động ca Server là mt lp. Ngày nay,  
các Client phbiến nht là trình duyt web trên các máy tính. Các Server thông dng bao  
gm Web Server, Server dliu (Database Server), Mail Server. Các trò chơi trực tuyến  
thông thường cũng là mô hình Client – Server.  
Trong mô hình Client – Server, hu hết tt cả các tính toán đều được thc hin trên  
Server. Cũng trong mô hình này, yêu cu sdụng đường truyn Internet là rt ln, nó sẽ  
gây ra vấn đề không nhvới cơ sở htng mng hiện nay, đặc bit là với các nước có hệ  
thống cơ sở htng mng còn kém như Việt Nam. Nhng chm trvtốc độ truyn trên  
mng khi có một lượng lớn người sdng tham gia có thlàm ảnh hưởng lớn đến công  
vic kinh doanh ca cá nhân hay doanh nghip, gây hu qunghiêm trng vkinh tế. Vì  
vy, vic thiết kế hthng mng và sdng nó mt cách hợp lý để gim thiu ri ro do  
vic chm chtrong vic truyn tin gây ra là mt yêu cu quan trng ca thc tế.  
Có thnhn thy rng khi sdng Server để thc hin các yêu cu, rt nhiu các  
yêu cu vtính toán giống nhau được lp li trong cùng mt vùng. Chng hạn như với các  
công ty có yêu cu vsdng dch vkế toán được đặt trên mt Server ngoài Internet, rt  
nhiu các máy tính trong công ty đó sẽ có các yêu cu vcác tính toán ging nhau, các  
tính toán này nhiu khi còn được yêu cu lặp đi lặp li, tt csẽ đều được gi lên cho  
Server xlý. Nếu bây gichúng ta có thchn lọc các tính toán được yêu cầu này, đưa  
nó vxmt máy chtrong cùng vùng vi các máy tính có yêu cu, thì lượng thông  
tin truyền đi trên đường truyn Intenet sẽ được giảm đáng kể, đồng thi thông tin trvề  
cho các máy tinh sẽ nhanh hơn, giảm được các ri ro do vic chm trtrong truyn tin  
gây ra. Thêm vào đó, việc đưa các tính toán này về vùng yêu cu còn góp phn gim thiu  
đáng kể yêu cu tính toán trc tiếp trên máy chủ. Điều này góp phn trc tiếp làm gim  
chi phí cho vic bo trì và nâng cp hthng máy ch.  
Như vậy chúng ta đã thy được tm ảnh hưởng ca Internet và các vấn đề cn gii  
quyết khi sdng mô hình Client – Server truyn thng. Để đáp ứng đượng nhu cu sử  
dng và ng dng công nghmi, chúng ta cn gin gii quyết các vấn đề vkhả năng  
phân ti cho các máy chvà gim lượng thông tin được truyn trên Internet. Vì vy, cn  
2
Nghiên cu mô hình phân ti Server sdụng Proxy động  
phi phát trin mt mô hình cho phép đưa các tính toán được yêu cu nhiu ln tmáy  
chtrên Internet vmáy chtrong cùng vùng với các máy đưa ra yêu cầu tính toán.  
1.2. Phm vi nghiên cu  
Trong phm vi nghiên cu ca mình, đề tài schỉ đưa ra mô hình có khả năng thực  
hin vic phân ti cho các máy chvà giảm lượng thông tin được được truyn trên  
Internet dựa theo phương pháp đóng gói và di chuyển các tính toán tcác máy chtrên  
Internet vkhu vc có nhiều máy đưa ra yêu cầu tính toán ging nhau.  
Trong phn thc nghim của đề tài, mô hình đưa ra sẽ được ng dng thc tế vào  
một trương hợp cth. Thc nghim này schng minh rng mô hình đã đưa ra hoàn  
toàn có thtrin khai và ng dng vào thc tế.  
Tuy nhiên do phm vi nghiên cu của đề tài có hn nên thc nghiệm đưa ra không  
thhin hết những ưu điểm ca mô hình đã được đưa ra. Những nghiên cu tiếp theo về  
mô hình này sẽ được thc hiện và đưa ra những thc nghim khác thhin rõ hơn những  
ưu thế ca mô hình khi được ng dng vào thc tế.  
1.3. Sơ lưc vcách tiếp cn  
Để có thể đưa ra một mô hình phù hp vi yêu cầu đặt ra là phân ti cho các máy  
chvà giảm lượng thông tin truyn trên Internet, nghiên cu các mô hình đã có trước đây  
là vic làm cn thiết. Trong các mô hình truyn thng, vic sdng máy chProxy [13]  
là vic làm quen thuc.  
Proxy Server là mt giải pháp đã được dùng trước đây trong các mô hình mng  
truyn thống. Proxy được bố trí như một cng ra Internet ca mt mng phía sau nó.  
Ngoài chức năng làm nhiệm vụ lưu chuyển thông tin gia các máy trong mng và ngoài  
Internet, Proxy còn được tích hp thêm mt số tính năng như lọc thông tin, bảo đảm an  
ninh cho mng cc bv.v. Mt trong những tính năng đã được tích hp vào Proxy Server  
là Cache. Vi chức năng này, tần sut sdụng đường truyền trên Internet đã được gim  
đáng kể nhviệc lưu lại các kết qutruy vấn trước đó. Khi có các yêu cầu được lp li,  
kết quca lần trước sẽ được lưu lại và sdng để trli cho các ln truy vn sau. Tuy  
nhiên đây chỉ là lưu giữ kết quca các yêu cu ging nhau, khi có các yêu cu tính toán  
giống nhau, nhưng kết qukhác nhau, yêu cu kết ni ra Internet vn phải được thc hin  
3
Nghiên cu mô hình phân ti Server sdụng Proxy động  
Sdng Cache Proxy Server không phi là mt la tt cho mô hình cần đưa ra, tuy  
nhiên vic áp dng mô hình Client – Proxy – Server là mt gii pháp. Trong mô hình này,  
máy chProxy ngoài chức năng cổng ra vào Internet thông thường, nó còn được bsung  
thêm khả năng nhận các tính toán và thc hin nó ri trkết qucho phía yêu cu.  
Để các tính toán trên các máy chInternet có thể được chuyn sang cho các máy  
chProxy, cn phải đóng gói các tính toán đó. Agent [14] được la chọn như là một  
phương pháp để thc hin việc đóng gói và vận chuyn này. Các tính toán sẽ được đóng  
gói thành các Agent, và các Agent này có thể được chuyn tmáy chnày sang máy chủ  
khác khi có yêu cu. Khái nim vAgent sẽ được nói kỹ hơn ở trong Chương 3: Agent  
phn mm.  
Trong phn thc nghim, cn phi la chn mt nn tảng để phát trin Agent trên  
các máy chvà Proxy. Nn tảng được la chn ở đây là JADE [1], được phát trin trên  
nn java. Nn tảng Jade cho phép người lp trình ddàng to ra các Agent theo ý mun  
đồng thi cung cấp các phương thức đơn giản để có thchuyn các Agent tmáy chnày  
sang máy chkhác. Các khái nim và cách sdng JADE sẽ được đề cp chi tiếp hơn  
trong Chương 3.  
1.4. Cu trúc ca khóa lun  
Các phn còn li ca khóa lun có cấu trúc như sau:  
Chương 2 gii thiu vmt skhái nim lý thuyết và nn tảng được sdng trong  
nghiên cu và là cơ sở để xây dng mô hình. Chương này sẽ trình bày vhai khái nim  
chính là Agent và JADE. Agent được sdng như là nn tảng để đưa ra ý tưởng thiết kế  
mô hình Proxy động vi mục đích phân tải cho Server. JADE là mt nn tảng được dùng  
để phát trin các hthng Agent, trong nghiên cu này, phn thc nghiệm được trin khai  
da trên nn tng JADE.  
Chương 3 mô tcthvbài toán phân ti cho Server sdụng Proxy động và mô  
hình để gii quyết bài toán da trên lý thuyết vAgent. Mô hình Proxy động sẽ được  
miêu tcthtý tưởng ban đầu, gii pháp cthể cho đến mô hình chi tiết để gii quyết  
bài toán.  
Chương 4 trình bày vthc nghim da trên mô hình đã đưa ra ở chương 3. Thc  
nghim này là mt ng dng cthca mô hình đã đưa ra trong thực tế. Thc nghim  
4
Nghiên cu mô hình phân ti Server sdụng Proxy động  
xây dng mô hình kim chứng người dùng có phải người hay không bng cách sdng  
hình ảnh để kim chng. Trong thc nghim này, vic sinh ra ảnh để kim chng và vic  
kim chng thông tin trvtừ phía người dùng sẽ được chuyn tServer vcho Proxy  
thc hin.  
Chương 5 tng kết nhng gì đã đạt được sau quá trình nghiên cu, đồng thời đưa ra  
nhng hn chế cn phi ci thin, từ đó đưa ra hướng nghiên cu tiếp theo.  
5
Nghiên cu mô hình phân ti Server sdụng Proxy động  
Chương 2 Agent phn mm  
Chương này sẽ đề cập đến mt số cơ sở lý thuyết được dùng trong quá trình nghiên  
cứu và đưa ra mô hình.  
2.1. Tìm hiu vAgent  
Phn này sgii thiu tng quát vkcông nghAgent, bao gm khái nim chung,  
và kiến trúc tng th. Sau đó sẽ gii thiu về đặc tca FIPA [18], đây là chuẩn được  
chp nhn rng rãi nht cho các nn tng và ng dụng đa Agent. Jade cũng phục vtheo  
chun này và nó có mrng thêm mt smu trong mt vài khu vực, nhưng nhìn mt  
cách tng quan, Jade hoàn toàn tuân theo chuẩn FIPA đã đưa ra.  
2.1.1. Agent  
Agent được coi như là một trong nhng mô hình quan trng nht trong vic mt mt  
phát triển các phương thức hin có vkhái nim hoá, thiết kế và tích hp các hthng  
phn mm, mt khác có thlà gii pháp cho vic gii quyết các vấn đề tích hp các phn  
mm tha kế.  
2.1.1.1. Agent là gì  
Mc dù không có một định nghĩa duy nhất vAgent (các định nghĩa về Agent [5,  
10, 8] ) , nhưng tất cả các định nghĩa đều đồng ý rng về cơ bản Agent là mt thành phn  
phn mềm đặc bit có khả năng tự quyết định, cung cp mt giao diện tương thích cho  
mt hthông tuý và/ hoặc hành động giống như một tác nhân con người, làm vic cho  
mt skhách hàng theo mt syêu cu cth. Mc dù mt shthng Agent có thda  
trên mt Agent duy nht làm vic trong một môi trường và khi cn có thể tương tác với  
người sdụng, nhưng trong đa số trường hp, hthng Agent bao gm nhiu Agent. Hệ  
thống đa Agent (MAS - Multi-agent System) này có thlà mt hthng rt phc tp vi  
các Agent có cùng mc tiêu chung hoặc đôi khi xung đột vi nhau. Các Agent này có thể  
tương tác với nhau mt cách gián tiếp (thông qua các hành động trên môi trường) hoc  
trc tiếp (thông qua các giao tiếp và thương lượng). Các Agent có thquyết định hp tác  
cho mc tiêu chung hoc cnh tranh lẫn nhau để phc vmc tiêu riêng ca nó.  
6
Nghiên cu mô hình phân ti Server sdụng Proxy động  
Như vậy, mt Agent có tính ttr, bi vì nó hoạt động mà không có scan thip  
trc tiếp của con người hoc các Agent khác, và nó tự điều khiển các hành động và trng  
thái bên trong nó. Mt Agent có tính xã hi, vì nó hp tác với con người hoc các Agent  
khác để hoàn thành các nhim vca nó. Mt Agent có tính phn ng vì nó nhn biết  
được môi trường ca nó và trli mt cách kp thời để thay đổi nhng thxy ra trong  
môi trường. Mt Agent có tính tích cc vì nó không chỉ đơn giản hồi đáp đến môi trường  
ca nó mà còn có khả năng đưa ra các hành động hướng ti mc tiêu bng cách đưa ra sự  
khi to.  
Thêm vào đó, một tính cht quan trng na ca Agent là nó có tính di động, vi khả  
năng di chuyn gia các nút trong mng máy tính. Nó có thể tin tưởng, bảo đảm chc  
chn là nó skhông ctình giao tiếp vi thông tin sai. Nó có thrộng lưng, luôn luôn cố  
gng tìm hiu câu hi dành cho nó. Nó cũng có thể có lý trí, luôn luôn hành động để đạt  
được mc tiêu và không bao giờ ngăn chặn các mc tiêu có thể đạt được. Và nó có thể  
hc, tthích nghi bn thân để phù hp với môi trường và ham mun ca nhng người sử  
dng.  
2.1.1.2. Kiến trúc tng thế  
Kiến trúc ca Agent là một cơ chế cơ bản da trên các thành phn tch, nó htrợ  
các hành động tác động lên thế gii thực, các môi trường mở và động. Trên thc tế, kết  
quả ban đầu ca Agent tính toán nhm vào vic phát trin ca kiến trúc các Agent thông  
minh, và những năm đầu đã tn ti các kiu thiết kế kiến trúc khác nhau, tcác kiến trúc  
đơn giản vphn ứng hành động (reactive) điều khin trong mt mô hình kích thích – trả  
lời, như là kiến trúc xếp gp [3], cho đến các kiến trúc phc tạp hơn như là kiến trúc da  
trên sự tin tưởng vào mục đích (BDI-belief desire intention) [7]. Kiến trúc phân lp, tng  
hp gia hai kiu kiến trúc trên, cgng bao gm cphn ứng hành động và cân nhắc để  
trn lẫn được điểm mnh nht ca cả hai phương pháp trên. Như vậy, kiến trúc ca Agent  
có thể được chia thành bn nhóm chính: Nn tng Lôgic, phn ứng hành động (reactive),  
BDI và kiến trúc phân lp (layered achitectures).  
7
Nghiên cu mô hình phân ti Server sdụng Proxy động  
2.1.2. FIPA (Foundation for Intelligent, Physical Agents)  
Phn này sgii thiu mt cách tng quát vlch sphát trin và ni dung chính  
ca các đặc tFIPA. Tp hợp đầy đủ các đặc tca FIPA có thể được tìm thy trên trang  
web chính thc ca FIPA [17].  
Jade là sthi hành ca các đặc tFIPA vì thế nó phthuc ln vào các ý tưởng  
được đưa ra trong các đặc tả và được mrng dựa trên chính các văn bản đi kèm. Tuy  
nhiên các đặc tả FIPA không được thhin hoàn toàn trong Jade vì Jade có mrng  
thêm mt skhu vc so với các đặc t.  
2.1.2.1. Lch sphát trin  
FIPA được thành lập năm 1996 như là một tchc phi li nhun quc tế vi mc  
tiêu phát trin tp hp các chuẩn liên quan đến công nghphn mm Agent. Các thành  
viên ban đầu, tp hp ca các tthc nghiên cu và công nghiệp, đưa ra một tp hp các  
quy chế hướng dn sn xut cho mt tp hợp các đặc tchun de jure [2] dành cho công  
nghphn mm Agent. thời điểm này, các phn mềm Agent đã được biết đến rng rãi  
trong gii khoa học nhưng nhận được rt ít squan tâm ca các tchức thương mại.  
Những người đứng đầu đã đồng ý cho sn xut các chun có thto ra mt nn tng cng  
ca mt kthut mi bng cách sdng chéo mt lượng ln các ng dng.  
Ct li ca FIPA stheo tp hp các nguyên lý:  
- Các Công nghAgent cho phép mt mô hình mới để gii quyết các vấn đề cũ và  
mi.  
- Các công nghAgent stiến đến cấp độ trưng thành ln.  
- Để sdụng được, các công nghAgent cn phi có đặc t.  
- Đặc tca công nghtiến hoá được đưa ra để hcung cp các kết quả thu được  
bởi đặc tfora.  
- Đặc tcủa cơ chế bên trong các Agent không phi mối quan tâm chính, mà là cơ  
shtng và ngôn ngyêu cu cho khả năng phối hp m.  
8
Nghiên cu mô hình phân ti Server sdụng Proxy động  
2.1.2.2. Các khái nim ct lõi  
Trong sut quá trình phát trin ca FIPA, rát nhiu các ý tưởng liên quan đến Agent  
đã được đưa ra. Nhiu ý tưởng đã tiến ti vic thc hiện sau khi được đưa ra thành các  
chun, mt vài ý tưởng vẫn đang đưc phát triển nhưng chưa hoàn thành, và có nhng cái  
khác đã tht bi vì mt hoc nhiu lý do. Trong tt ccác ý tưởng đó, những phn quan  
trng nht là truyn thông Agent, qun lý Agent và kiến trúc Agent. Phn này sgii  
thiu vhai trong sba phn quan trng nhất đó.  
2.1.2.2.1. Truyn thông Agent (agent communication)  
Agent về cơ bản là hình thái ca quá trình phân phi mã nguồn và do đó tuân theo  
khái nim cổ điển ca mô hình phân phi tính toán theo hai phn: các thành phn và các  
kết ni. Các thành phn là nhng khách hàng, nhng nhà sn xut và nhng người điều  
hành của các thông điệp truyn thông thông qua các kết ni. Phn thân ca các chuẩn đầu  
tiên như là ISO hay IETF lựa chn mt cách tiếp cn hướng mng trong vic phát trin  
các cm các giao thức đưc phân lp da phn ln trên truyn thông máy tính chúng ta đã  
biết – mô hình OSI và mô hình TCP/IP. Cả hai đều được tn dng thông qua giao tiếp  
gia các phn mm ng dng giao thc.  
2.1.2.2.2. Qun lý Agent (Agent management)  
Để bsung cho truyn thông, khía cạnh cơ bản thhai ca các hthống Agent được  
to ra bởi các đặc tả ban đầu ca FIPA là qun lý Agent: mt nn tng chuẩn trong đó các  
chun FIPA cho Agent có thtn ti, tchc và qun lý. Nó thành lp cá mô hình lôgíc  
tham chiếu cho vic khi tạo, đăng ký, xác định vtrí, di trú và tchc các Agent. Mô  
hình tham chiếu qun lý Agent bao gm các thành phần được miêu tả như hình 2.1.  
9
Nghiên cu mô hình phân ti Server sdụng Proxy động  
Hình 2.1: Qun lý Agent  
2.2. Nn tng JADE  
Phn này sẽ đưa ra cái nhìn tổng quan cơ bản vnn tng JADE (Java Agent  
Development framework) và các thành phn chính trong kiến trúc phân phi ca nó.  
2.2.1. Lch sphát trin  
Phm mm phát triển đầu tiên, vsau strthành nn tng JADE, được bắt đầu bi  
Telecom Italia (được gi tt là CSELT) vào cuối năm 1998, được thúc đẩy bi nhu cu  
cn kim chứng các đặc tả đầu tiên ca FIPA.  
JADE đưc trthành mã ngun mở trong năm 2000 và được phân phi bi Telecom  
Italia dưới giy phép LGPL ( Library Gnu Public Licence). Giấy phép này đảm bo tt cả  
các quyền cơ bản để thun tin cho vic sdng phn mm bao gm trong các sn phm  
thương mại: quyền được sao chép phn mm và phân phi bn sao chép, quyền được sử  
dng mã ngun ca phn mm, và quyền thay đổi mã ngun và ci tiến nó. Không ging  
như giấy phép GPL, giấy phép LPGL không đưa bất kshn chế nào và phn mm sử  
dng JADE, và nó cho phép các phn mềm độc quyền được trn vn vi phn mềm đăng  
ký giy phép LGPL. Mt khác, giy phép này yêu cu mi công vic bt ngun tJADE,  
10  
Nghiên cu mô hình phân ti Server sdụng Proxy động  
hoc bt kcông vic nào dựa trên nó đều phải được đưa ra cộng đồng vi cùng giy  
phép.  
Website chính thc ca JADE [16] cung cp tt ccác phn mm, tài liu, mã ngun  
ví dvà các thông tin vsdng JADE.  
2.2.2. Jade và mô hình các Agent  
JADE là mt phn mm nn tng cung cp các chức năng phần mm lp giữa cơ  
bn, nó không phthuc vào ng dng riêng biệt nào và làm đơn giản hoá vic phân phi  
các ng dng khai thác phn mm o hoá Agent [10]. Mt trong nhng giá trị đầy ý nghĩa  
ca JADE là nó thc hin trừu tượng hóa da trên shiu biết về hướng đối tượng, Java,  
cung cấp API đơn giản và thân thin. Các la chn thiết kế đơn giản vsau chu nh  
hưởng tvic trừu tưng hoá Agent.  
2.2.3. Kiến trúc Jade  
Hình 2.2 miêu tcác nhân tkiến trúc chính ca nn tng JADE. Mt nn tng  
JADE bao gm các vùng cha Agent (container) có thể được phân phi qua mng. Các  
Agent sng trong các vùng cha là các quá trình Java, nó cung cp quá trình thc thi ca  
JADE và tt ccác dch vcn thiết cho lưu trữ và thc thi Agent. Mt vùng chứa đặc  
biệt, được gọi là vùng chưa chính (Main-container), là nơi khởi động ca nn tng: nó là  
vùng chưa đầu tiên được thc thi và tt cả các vùng chưa khác phải được liên kết đến  
vùng chưa chính bằng cách đăng ký với nó. Biểu đồ UML trong hình 2.3 miêu tmi  
quan hgia các thành phn kiến trúc chính ca JADE.  
11  
Nghiên cu mô hình phân ti Server sdụng Proxy động  
Hình 2.2: Mi quan hgia các thành phn trong kiến trúc chính  
Hình 2.3: UML mi quan hgia các thành phn trong kiến trúc chính  
12  
Nghiên cu mô hình phân ti Server sdụng Proxy động  
2.2.4. Biên dch và chy nn tng Jade  
Tt ccác phn mềm liên quan đến JADE đều có thti vttrang web chính thc  
ca JADE. Các phn mềm liên quan đến JADE có thchia thành hai loi: bn phân phi  
chính và các bn phtr. Các bn phtrtrong mi bn riêng biệt đều có cha các đơn vị  
(module) thc thi các phn mrng riêng biệt như các mã hoá cho ngôn ng. Trong nhiu  
trường hp, các bản này không được phát trin trc tiếp bởi đội ngũ phát triển ca JADE  
mà là các thành viên ca cộng đồng ngun m, những người quyết định đưa các thành  
qunghiên cu ca mình lên cho cộng đồng cùng xem.  
Bn phân phi chính bao gồm năm file đã được nén là:  
- jadeBin.zip cha mt file jar là nn tảng JADE đã được biên dch và sdụng đưc  
ngay  
- jadeDoc.zip cha các tài liu bao gồm: Hướng dn cho người qun trị  
(Administrator Guide), Hướng dn cho người lp trình (Programmer Guide). Các tài liu  
này cũng có thể ti vttrang web chính thc ca JADE  
- jadeExamples.zip cha các mã ngun ca rt nhiu ví dụ  
- jadeSrc.zip cha tt ccác mã ngun ca JADE  
- jadeAll.zip cha tt c4 file nói trên  
Nếu tt cả các file trên được ti xung và gii nén thì cấu trúc thư mục sgiống như  
miêu tả ở hình 2.4.  
Thư mục jade/lib cha tt ccác file jar cn phải được khai báo vào java  
CLASSPATH để chy JADE.  
13  
Nghiên cu mô hình phân ti Server sdụng Proxy động  
Hình 2.4: Cấu trúc thư mục JADE  
Ví dụ, khi đã ti về ổ C trong hệ điều hành Windows, để chạy được JADE, trước hết  
cn khai bao CLASSPATH cho java như sau:  
prompt> set JADE_HOME=c:\jade  
prompt> set CLASSPATH=%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-codec-  
1.3.jar;%JADE_HOME%\classes  
Sau đó có thkhởi động JADE với đồ hobng cách sdng lnh:  
prompt> java jade.Boot –gui  
Sau khi khởi động thành công, màn hình dòng lnh shin ththông báo giống như  
hình 2.5 và đồ hoca JADE shin ra giống như hình 2.6.  
14  
Nghiên cu mô hình phân ti Server sdụng Proxy động  
Hình 2.5: Kết qukhi khời động thành công  
Hình 2.6: Giao din nn tng JADE  
15  
Nghiên cu mô hình phân ti Server sdụng Proxy động  
2.2.5. Agent di động (Mobile Agent)  
Agent di động [9] là mô hình được xut phát thai quy tc khác nhau [4], đầu tiên  
là trí thông tinh nhân to, thto ra khái nim agent, thhai là hthng phân tán, thứ  
định nghĩa khái nim vdch chuyn mã [6].  
Dựa theo định nghĩa chuẩn, Agent di động là mt mt agent giống như tất ccác  
agent không di động khác (tqun, phn ứng hành động, thc hin tiên phong, có tính xã  
hội), nhưng thêm vào đó, nó có khả năng di chuyển; nó có khả năng di trú giữa các nn  
tng theo yêu cu để thc hin các công việc được giao.  
Theo cách nhìn ththng phân tán, mt Agent di dng là một chương trình vi  
định danh duy nht có thdch chuyn mã, dliu và trng thái giữa các máy được ni  
mng. Để thc hiện được điều đó, một Agent phi có khả năng dừng công vic ca nó ở  
bt kthời điểm nào, và tiếp tc hoạt động khi đã cư trú ở nơi khác.  
Chúng ta có thể đặt Agent di động trong mi quan hvi các mô hình truyn thng  
như sau:  
- Client –Server: Mô hình phbiến nht, ở đó các dịch vụ được Server đưa ra và  
được sdng bi mt hoc nhiu Client.  
- Thc thi txa: Mt thành phn gi mã đến thành phần khác để thc thi txa, kết  
quả đưa ra hoặc tquyết định ca chính nó, hoc mt yêu cu tphía thành phn xa,  
hoc có thể như một phn ca giao kèo trước đó. Sau khi thc thi, thành phn thc thi sẽ  
gi trkết quvcho thành phn gc.  
- Agent di động: Mt thành phn gi bn thân nó ( hoặc đối tượng khác nếu được  
phép) đến một nơi lưu trữ ở xa để thc thi. Thành phn chuyển đi với mã, dliu và có  
thctrng thái. Sdch chuyn có thể tương tự như trường hợp trước, nhưng thông  
thường nht kết qutthành phần đó ( ví dụ là Agent di động) quyết định cho bn thân  
nó có nhu cu di chuyển địa đim xem k.  
Một Agent di động như miêu tả trong hình 2.7 gm có 3 phn: mã, trng thái và dữ  
liu. Mã là dng ca Agent sẽ được thực thi khi di trú đến mt nn tảng. Trong trường  
hợp đơn giản nht thì nó là mã đơn. Trạng thái là môi trường thc thi dliu ca Agent,  
bao gm chương trình đếm và ngăn xếp thc thi. Phn này chtìm thy trong Agent sử  
16  
Nghiên cu mô hình phân ti Server sdụng Proxy động  
dụng cư trú mạnh. Dliu bao gm các giá trị được sdng bởi Agent, như là tri thức,  
các file xác định v.v.  
Hình 2.7: Cu trúc đơn gin ca Agent di dng  
Có khá nhiu cuc tranh lun về ưu điểm và nhược điểm ca Agent di dộng, thường  
thì nó được so sánh với các Agent không di động. Mt số ưu điểm là:  
- Không đng bvà xlý không phthuc: Một khi nó đã được di trú vào mt nn  
tng mi, các Agent không cn phi liên hvi chcủa nó để thông báo vcông vic. Nó  
có thchcn gi li kết qu. Việc này đặc bit hu dng khi sdng vi các thiết bdi  
động vi gii hn vtài nguyên; mt agent có thể di trú đến một máy khác để thc hin  
các công vic phc tp và trli kết qutheo chu k.  
- Chu li: Nó có thể đánh dấu và sa li với các điều kin li bng vic chuyển đến  
các nn tng chéo khi vấn đề được phát hin. Công bng nếu một điểm di trú bsp, mt  
điểm trung gian có thể được chọn để đóng vai trò dtr. Nó phù hp với môi trường thân  
thin và dễ đổ vỡ  
- Bin các ng dng: Agent di động rt phù hp vi các ng dng cn xlý mt  
lượng ln các dliu txa. Agent di động có thdch chuyn dliu, trong nhiều trường  
hp nó có hiu quả hơn so với cách làm truyn thng.  
Nhưng Agent di đng cũng có những khuyết điểm:  
17  
Nghiên cu mô hình phân ti Server sdụng Proxy động  
- Khả năng mở rng và hiệu năng: Mặc dù Agent di động gim ti cho mạng, nhưng  
nó lại làm tăng tải cho vic thc thi. Điều này là bi vì nó thường được lp trình vi các  
ngôn ngthông dịch và thường cn phải được theo dõi cht chviệc tương kết theo  
chun, nó có thgây ra quá ti vic xlý dliu.  
- Khả năng di chuyển và chun hoá: Agent không thể tương kết nếu nó không tuân  
theo chun truyền thông thông thường. Schp nhn các chun này, như là OMG MASIF  
(Mobile Agent System Interoperability Facility) hoặc FIPA thường rt quan trọng, đặc  
bit trong sdch chuyn trong mt nn tng.  
- An ninh: Sdụng Agent di động smang theo mt svấn đề van ninh. Bt kỳ  
mã di động nào đều có mt mối đe doạ tim tàng và cn phải được chng thc cn thn  
trước khi thc thi.  
18  
Nghiên cu mô hình phân ti Server sdụng Proxy động  
Chương 3 Mô hình Proxy động  
Chương này strình bày chi tiết về bài toán đt ra và ý tưởng để gii quyết bài toán  
đó. Sau đó sẽ đi vào chi tiết vcác gii pháp cho các yêu cầu bài toán đt ra. Cui cùng là  
mô hình chi tiết da trên các giải pháp đưa ra để gii quyết bài toán.  
3.1. Mô tbài toán  
Như đã nói ở chương đầu tiên vthc trng hin nay, mt yêu cầu đặt ra để có thể  
vn dng và trin khai tt nhất xu hướng phát trin tiếp theo ca Internet và công nghệ  
chúng ta cn phải có được mt mô hình đáp ứng được yêu cu gim tải trên đường truyn  
Internet và gim ti cho Server. Mô hình Client – Proxy – Server là mt sla chọn để  
đáp ứng được yêu cu này.  
Hình 3.1: Mô hình Client – Proxy – Server  
Tuy nhiên, khác vi các mô hình đã có trước đây, Proxy ở đưc sdng ở đây sẽ có  
ththc hin mt phn công vic tính toán thay cho Server. Điều này có nghĩa là ngoài  
chức năng truyền thông tin giữa Client và Server như truyền thng, Proxy này còn phi có  
khả năng yêu cầu và nhn các tính toán từ Server, sau đó nó sẽ thay cho Server thc hin  
các phn tính toán này khi có yêu cu tphía Client. Trong mô hình này, Server ngoài  
19  
Nghiên cu mô hình phân ti Server sdụng Proxy động  
công vic tính toán và trkết quả thông thường, nó còn phi có thêm chức năng nhận yêu  
cu và gi các công vic vcho Proxy.  
Như vậy bài toán đặt ra ở đây là phải thiết kế được mt mô hình cho phép các tính  
toán ttrên Server có thể được gi xung cho Proxy và có ththc thi trc tiếp trên  
Proxy. Proxy có khả năng nhận và thực thi tính toán như trên đưc gọi là Proxy động. Nói  
mt cách khác, yêu cu ca bài toán là xây dng mô hình phân ti cho Server sdng  
Proxy đng.  
3.2. Mô hình đề xut  
Phn này strình bày ý tưởng để đưa ra được mô hình phân ti cho Server sdng  
Proxy động. Sau đó sẽ trình bày chi tiết vcác giải pháp đưa ra trong việc xây dng mô  
hình. Cui cùng strình by và gii thich vmô hình đưa ra cho bài toán đã nêu.  
3.2.1. Ý tưởng  
Trong bài toán đã đưa ra ở trên, phần đóng gói tính toán và gửi nó đi giữa các Server  
là phn quan trng nht, phn này quyết định tính chất động ca Proxy. Các tính toán cn  
phải được đóng gói theo một cách nào đó để nó có thể lưu giữ được cách thc thi, các dữ  
liu liên quan và trng thái của nó. Các đóng gói này cũng phải htrcho vic chuyn  
dịch các tính toán đến nơi lưu trữ mi, cho phép các tính toán có ththc thi ngay trên  
nơi trữ mi.  
Ý tưởng đưa ra ở đây là sử dng Agent cho việc đóng và dịch chuyn các tính toán  
tServer vProxy. Mi tính toán riêng biệt và đặc thù sẽ được đóng gói thành mt Agent  
và được lưu trữ trên Server. Thông qua giao tiếp gia Agent với môi trường hoc gia các  
Agent vi nhau, Agent sthc thi các yêu cu ti nó và trkết qucho bên yêu cu. Các  
Agent ngoài vic thc thi và trkết qu, nó còn có thdch chuyển nơi cư trú sang một  
môi trường khác hoc mt Server khác và thc thi ngay tại đó. Đây chính là yếu tto  
nên khả năng tính toán động cho Proxy, thc thi tính toán ngay ti chthay cho vic yêu  
cu Server và nhn kết qutrv. Ở đây, các chức tính toán và thc thi yêu cu ca Proxy  
không được thiết lập trước, nó có thể thay đổi tutheo yêu cu ca Client và khả năng  
thc thi tính toán ca Server.  
Như vậy, ý tưởng chính để đưa ra được mô hình sdụng Proxy động để phân ti cho  
Server là sdụng Agent đóng gói và chuyển các tính toán tServer vProxy.  
20  
Nghiên cu mô hình phân ti Server sdụng Proxy động  
3.2.2. Gii pháp  
Da trên ý tưởng đã đưa ra, chúng ta sẽ đưa ra giải pháp cho Server và Proxy để có  
thể đáp ứng yêu cu ca bài toán.  
3.2.2.1. Gii pháp cho Server  
Gii pháp cho việc đóng gói và dịch chuyn chuyn các tính toán là sdng Agent.  
Các tính toán sẽ được đóng gói thành các Agent, mỗi Agent sphtrách mt công vic  
tính toán nhất định. Sdụng Agent để đóng gói và dịch chuyn các tính toán gia các  
Server vì theo các chun về Agent đã được công bvà chp nhn rng rãi thì các Agent  
có thể đóng gói mã ngun thc thi ca nó, các dliu phc vcho nó và ctrng thái  
hoạt động, tt cả đều được có thể được truyn đi nguyên vẹn sang mt Server khác và có  
ththc thi tại Server đó mà không cần phi sửa đổi hay can thip vào Agent.  
Các yêu cầu khi được chuyển đến sẽ được phân loi thành các yêu cu chuyn  
Agent và các yêu cu khác. Để có ththc hiện được vic phân loi yêu cầu được gi  
đến, lc ra các yêu cầu thông thường và các yêu cu vviệc đưa tính toán về Proxy,  
chúng ta sẽ đưa ra một mu yêu cầu được sdng chung cho tt ccác yêu cầu được gi  
đến cho Server.  
Vi các tính toán yêu cu chuyn Agent, Server stìm Agent tương ứng trong các  
Agent nó đang chứa. Nếu Agent được tìm ra, Server sto ra bn sao ca Agent ri gi  
bn sao này cho phía yêu cu. Nếu Agent không được tìm ra, hay không có Agent tương  
ng vi yêu cầu đưa ra, Server sẽ gửi thông báo đến cho phía yêu cu rng không có  
Agent tương ứng. Vi các yêu cu khác, Server sthc hin tính toán trc tiếp ri gi trả  
kết qucho phía yêu cu. Vic tính toán này hoàn toàn có thbao gm cvic gi Agent  
ra để tính toán và ly kết qudo Agent trv.  
3.2.2.2. Gii pháp cho Proxy  
Proxy nhn yêu cu tClient, phân tích yêu cu da trên khuôn dng chuẩn đã được  
quy định trước để phân loi các yêu cu có sdng Agent và các yêu cu không sdng  
Agent. Khi có nhiu yêu cu vsdng cùng mt Agent, Proxy sgi yêu cầu đến  
Server để ti Agent tính toán về, sau đó mọi tính toán ca phn này sẽ được thc hin  
ngay trên Proxy.  
21  

Tải về để xem bản đầy đủ

pdf 50 trang yennguyen 01/06/2025 60
Bạn đang xem 30 trang mẫu của tài liệu "Khóa luận Nghiên cứu mô hình phân tải server sử dụng proxy động", để tải tài liệu gốc về máy hãy click vào nút Download ở trên.

File đính kèm:

  • pdfkhoa_luan_nghien_cuu_mo_hinh_phan_tai_server_su_dung_proxy_d.pdf