1. Trang chủ
  2. » Luận Văn - Báo Cáo

NGHIÊN CỨU MÔ HÌNH PHÂN TẢI SERVER SỬ DỤNG PROXY ĐỘNG

50 474 1
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 50
Dung lượng 1,16 MB

Nội dung

NGHIÊN CỨU MÔ HÌNH PHÂN TẢI SERVER SỬ DỤNG PROXY ĐỘNG

Trang 1

Nguyễn Minh Hoàng

NGHIÊN CỨU MÔ HÌNH PHÂN TẢI SERVER

SỬ DỤNG PROXY ĐỘNG

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 - 2009

Trang 2

Nguyễn Minh Hoàng

NGHIÊN CỨU MÔ HÌNH PHÂN TẢI SERVER

SỬ DỤNG PROXY ĐỘNG

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: TS Nguyễn Việt Hà

Cán bộ đồng hướng dẫn: ThS Vũ Quang Dũng

HÀ NỘI – 2009

Trang 3

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

Trang 4

i

Lời cảm ơn

Lời đầu tiên em xin bày tỏ lòng biết ơn sâu sắc tới hai thầy giáo TS Nguyễn Việt Hà

và ThS Vũ Quang Dũng Các thầy đã hướng dẫn em tận tình trong suốt năm học vừa qua

Em xin bày tỏ lòng biết ơn tới các thầy, cô giáo trong Khoa Công nghệ thông tin, Trường Đại học Công nghệ, ĐHQGHN Các thầy cô đã dạy bảo, chỉ dẫn chúng em và luôn tạo điều kiện tốt nhất cho chúng em học tập trong suốt quá trình học đại học đặc biệt

là trong thời gian làm khoá luận tốt nghiệp

Tôi xin cảm ơn các bạn sinh viên khoá K50 trường Đại học Công nghệ, đã cho tôi những ý kiến đóng góp giá trị khi thực hiện đề tài này

Cuối cùng con xin gửi tới bố mẹ và toàn thể gia đình lòng biết ơn và tình cảm yêu thương sâu sắc

Hà Nội, ngày 20/5/2009

Nguyễn Minh Hoàng

Trang 6

iii

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

Trang 7

iv

Mục lục

Lời cảm ơn i

Tóm tắt ii

Abstract iii

Mục lục iv

Danh mục hình vẽ vi

Chương 1 Đặt vấn đề 1

1.1 Thực trạng 1

1.2 Phạm vi nghiên cứu 3

1.3 Sơ lược về cách tiếp cận 3

1.4 Cấu trúc của khóa luận 4

Chương 2 Agent phần mềm 6

2.1 Tìm hiểu về Agent 6

2.1.1 Agent 6

2.1.1.1 Agent là gì 6

2.1.1.2 Kiến trúc tổng thế 7

2.1.2 FIPA (Foundation for Intelligent, Physical Agents) 8

2.1.2.1 Lịch sử phát triển 8

2.1.2.2 Các khái niệm cốt lõi 9

2.1.2.2.1 Truyền thông Agent (agent communication) 9

2.1.2.2.2 Quản lý Agent (Agent management) 9

2.2 Nền tảng JADE 10

2.2.1 Lịch sử phát triển 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 dịch và chạy nền tảng Jade 13

2.2.5 Agent di động (Mobile Agent) 16

Chương 3 Mô hình Proxy động 19

3.1 Mô tả bài toán 19

3.2 Mô hình đề xuất 20

Trang 8

v

3.2.1 Ý tưởng 20

3.2.2 Giải pháp 21

3.2.2.1 Giải pháp cho Server 21

3.2.2.2 Giải 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 của Server 23

3.2.3.3 Mô hình của Proxy 25

Chương 4 Thực nghiệm 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 cầu kỹ thuật 30

4.1.2.1 Yêu cầu kỹ thuật cho Server 30

4.1.2.2 Yêu cầu kỹ thuật cho Proxy 30

4.1.3 Các giai đoạn phát triển 31

4.1.4 Thiết kế chương trình 32

4.2 Cài đặt và thực nghiệm 33

4.2.1 Cài đặt Server 34

4.2.2 Cài đặt Proxy 34

4.2.3 Thực nghiệm 34

Chương 5 Kết luận 37

5.1 Kết quả thu được 37

5.2 Hướng phát triển tiếp theo 38

Tài liệu tham khảo 40

Trang 9

vi

Danh mục hình vẽ

`

Hình 2.1: Quản lý Agent 10

Hình 2.2: Mối quan hệ giữa các thành phần trong kiến trúc chính 12

Hình 2.3: UML mối quan hệ giữa các thành phần trong kiến trúc chính 12

Hình 2.4: Cấu trúc thư mục JADE 14

Hình 2.5: Kết quả khi khời động thành công 15

Hình 2.6: Giao diện nền tảng JADE 15

Hình 2.7: Cấu trúc đơn giản của Agent di dộng 17

Hình 3.1: Mô hình Client – Proxy – Server 19

Hình 3.2: Mô hình hệ thống 23

Hình 3.3: Cấu trúc Server 24

Hình 3.4: Mẫu yêu cầu gửi cho Server 25

Hình 3.5: Cấu trúc Proxy Server 26

Hình 3.6: Mẫu yêu cầu gửi cho Proxy 28

Hình 4.1: Biểu đồ tuần tự của hệ thống 32

Trang 10

lồ trê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 diễn tả mối

quan hệ giữa hai chương trình máy tính mà ở đó chương trình Client tạo ra các yêu cầu về dịch 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 của các ý tưởng về mạng tính toán Đa số các ứng dụng kinh doanh được viết ra đều sử dụng mô hình Client – Server Mỗi phiên bản của phần mềm Client có thể gửi các dữ liệu yêu cầu đến một hoặc nhiều Server Sau đó, Server sẽ chấp nhận các yêu cầu này, xử lý chúng và trả thông tin đã được yêu cầu cho Client Mặc dù khái niệm này có thể được sử dụng cho rất nhiều ứng dụng khác nhau theo các cách khác nhau nhưng kiến trúc cơ bản thì vẫn được giữ nguyên

Trang 11

2

Kiểu kiến trúc cơ bản nhất áp dụng mô hình Client – Server là chỉ sử dụng hai máy, một Client và một Server Kiểu kiến trúc này đôi khi được hiểu là hai lớp Nó cho phép các thiết bị có thể chia sẻ các tài nguyên Kiến trúc hai lớp có nghĩa là các hành động của Client là một lớp và ứng dụng tổng hợp các hành động của Server là một lớp Ngày nay, các Client phổ biến nhất là trình duyệt web trên các máy tính Các Server thông dụng bao gồm Web Server, Server dữ liệu (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, hầu hết tất cả các tính toán đều được thực hiện trên Server Cũng trong mô hình này, yêu cầu sử dụng đường truyền Internet là rất lớn, nó sẽ gây ra vấn đề không nhỏ với cơ sở hạ tầng mạng hiện nay, đặc biệt là với các nước có hệ thống cơ sở hạ tầng mạng còn kém như Việt Nam Những chậm trễ về tốc độ truyền trên mạng khi có một lượng lớn người sử dụng tham gia có thể làm ảnh hưởng lớn đến công việc kinh doanh của cá nhân hay doanh nghiệp, gây hậu quả nghiêm trọng về kinh tế Vì vậy, việc thiết kế hệ thống mạng và sử dụng nó một cách hợp lý để giảm thiểu rủi ro do việc chậm chễ trong việc truyền tin gây ra là một yêu cầu quan trọng của thực tế

Có thể nhận thấy rằng khi sử dụng Server để thực hiện các yêu cầu, rất nhiều các yêu cầu về tính toán giống nhau được lặp lại trong cùng một vùng Chẳng hạn như với các công ty có yêu cầu về sử dụng dịch vụ kế toán được đặt trên một Server ngoài Internet, rất nhiều các máy tính trong công ty đó sẽ có các yêu cầu về các tính toán giống nhau, các tính toán này nhiều khi còn được yêu cầu lặp đi lặp lại, tất cả sẽ đều được gửi lên cho Server xử lý Nếu bây giờ chúng ta có thể chọn lọc các tính toán được yêu cầu này, đưa

nó về xử lý ở một máy chủ trong cùng vùng với các máy tính có yêu cầu, thì lượng thông tin truyền đi trên đường truyền Intenet sẽ được giảm đáng kể, đồng thời thông tin trả về cho các máy tinh sẽ nhanh hơn, giảm được các rủi ro do việc chậm trễ trong truyền tin gây ra Thêm vào đó, việc đưa các tính toán này về vùng yêu cầu còn góp phần giảm thiểu đáng kể yêu cầu tính toán trực tiếp trên máy chủ Điều này góp phần trực tiếp làm giảm chi phí cho việc bảo trì và nâng cấp hệ thống máy chủ

Như vậy chúng ta đã thấy được tầm ảnh hưởng của Internet và các vấn đề cần giải quyết khi sử dụng mô hình Client – Server truyền thống Để đáp ứng đượng nhu cầu sử dụng và ứng dụng công nghệ mới, chúng ta cần giản giải quyết các vấn đề về khả năng phân tải cho các máy chủ và giảm lượng thông tin được truyền trên Internet Vì vậy, cần

Trang 12

Trong phần thực nghiệm của đề tài, mô hình đưa ra sẽ được ứng dụng thực tế vào một trương hợp cụ thể Thực nghiệm này sẽ chứng minh rằng mô hình đã đưa ra hoàn toàn có thể triển khai và ứng dụng vào thực tế

Tuy nhiên do phạm vi nghiên cứu của đề tài có hạn nên thực nghiệm đưa ra không thể hiện hết những ưu điểm của mô hình đã được đưa ra Những nghiên cứu tiếp theo về

mô hình này sẽ được thực hiện và đưa ra những thực nghiệm khác thể hiện rõ hơn những

ưu thế của mô hình khi được ứng dụng vào thực tế

1.3 Sơ lược về cách tiếp cận

Để có thể đưa ra một mô hình phù hợp với yêu cầu đặt ra là phân tải cho các máy chủ và giảm lượng thông tin truyền trên Internet, nghiên cứu các mô hình đã có trước đây

là việc làm cần thiết Trong các mô hình truyền thống, việc sử dụng máy chủ Proxy [13]

là việc làm quen thuộc

Proxy Server là một giải pháp đã được dùng trước đây trong các mô hình mạng truyền thống Proxy được bố trí như một cổng ra Internet của một mạng phía sau nó Ngoài chức năng làm nhiệm vụ lưu chuyển thông tin giữa các máy trong mạng và ngoài Internet, Proxy còn được tích hợp thêm một số tính năng như lọc thông tin, bảo đảm an ninh cho mạng cục bộ v.v Một trong những tính năng đã được tích hợp vào Proxy Server

là Cache Với chức năng này, tần suất sử dụng đường truyền trên Internet đã được giảm đáng kể nhờ việc lưu lại các kết quả truy vấn trước đó Khi có các yêu cầu được lặp lại, kết quả của lần trước sẽ được lưu lại và sử dụng để trả lời cho các lần truy vấn sau Tuy nhiên đây chỉ là lưu giữ kết quả của các yêu cầu giống nhau, khi có các yêu cầu tính toán giống nhau, nhưng kết quả khác nhau, yêu cầu kết nối ra Internet vẫn phải được thực hiện

Trang 13

4

Sử dụng Cache Proxy Server không phải là một lựa tốt cho mô hình cần đưa ra, tuy nhiên việc áp dụng mô hình Client – Proxy – Server là một giải pháp Trong mô hình này, máy chủ Proxy ngoài chức năng cổng ra vào Internet thông thường, nó còn được bổ sung thêm khả năng nhận các tính toán và thực hiện nó rồi trả kết quả cho phía yêu cầu

Để các tính toán trên các máy chủ Internet có thể được chuyển sang cho các máy chủ Proxy, cần phải đóng gói các tính toán đó Agent [14] được lựa chọn như là một phương pháp để thực hiện việc đóng gói và vận chuyển 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 chuyển từ máy chủ này sang máy chủ khác khi có yêu cầu Khái niệm về Agent sẽ được nói kỹ hơn ở trong Chương 3: Agent phần mềm

Trong phần thực nghiệm, cần phải lựa chọn một nền tảng để phát triển Agent trên các máy chủ và Proxy Nền tảng được lựa chọn ở đây là JADE [1], được phát triển trên nền java Nền tảng Jade cho phép người lập trình dễ dàng tạo ra các Agent theo ý muốn đồng thời cung cấp các phương thức đơn giản để có thể chuyển các Agent từ máy chủ này sang máy chủ khác Các khái niệm và cách sử dụng JADE sẽ được đề cập chi tiếp hơn trong Chương 3

1.4 Cấu trúc của khóa luận

Các phần còn lại của khóa luận có cấu trúc như sau:

Chương 2 giới thiệu về một số khái niệm lý thuyết và nền tảng được sử dụng trong nghiên cứu và là cơ sở để xây dựng mô hình Chương này sẽ trình bày về hai khái niệm chính là Agent và JADE Agent được sử dụng như là nền tảng để đưa ra ý tưởng thiết kế

mô hình Proxy động với mục đích phân tải cho Server JADE là một nền tảng được dùng

để phát triển các hệ thống Agent, trong nghiên cứu này, phần thực nghiệm được triển khai dựa trên nền tảng JADE

Chương 3 mô tả cụ thể về bài toán phân tải cho Server sử dụng Proxy động và mô hình để giải quyết bài toán dựa trên lý thuyết về Agent Mô hình Proxy động sẽ được miêu tả cụ thể từ ý tưởng ban đầu, giải pháp cụ thể cho đến mô hình chi tiết để giải quyết bài toán

Chương 4 trình bày về thực nghiệm dựa trên mô hình đã đưa ra ở chương 3 Thực nghiệm này là một ứng dụng cụ thể của mô hình đã đưa ra trong thực tế Thực nghiệm

Trang 14

5

xây dựng mô hình kiểm chứng người dùng có phải người hay không bằng cách sử dụng hình ảnh để kiểm chứng Trong thực nghiệm này, việc sinh ra ảnh để kiểm chứng và việc kiểm chứng thông tin trả về từ phía người dùng sẽ được chuyển từ Server về cho Proxy thực hiện

Chương 5 tổng kết những gì đã đạt được sau quá trình nghiên cứu, đồng thời đưa ra những hạn chế cần phải cải thiện, từ đó đưa ra hướng nghiên cứu tiếp theo

Trang 15

Phần này sẽ giới thiệu tổng quát về kỹ công nghệ Agent, bao gồm khái niệm chung,

và kiến trúc tổng thể Sau đó sẽ giới thiệu về đặc tả của FIPA [18], đây là chuẩn được chấp nhận rộng rãi nhất cho các nền tảng và ứng dụng đa Agent Jade cũng phục vụ theo chuẩn này và nó có mở rộng thêm một số mẫu trong một vài khu vực, nhưng nhìn một cách tổng 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 những mô hình quan trọng nhất trong việc một mặt phát triển các phương thức hiện có về khái niệm hoá, thiết kế và tích hợp các hệ thống phần mềm, mặt khác có thể là giải pháp cho việc giải quyết các vấn đề tích hợp các phần mềm thừa kế

2.1.1.1 Agent là gì

Mặc dù không có một định nghĩa duy nhất về Agent (các định nghĩa về Agent [5,

phần mềm đặc biệt có khả năng tự quyết định, cung cấp một giao diện tương thích cho một hệ thông tuỳ ý và/ hoặc hành động giống như một tác nhân con người, làm việc cho một số khách hàng theo một số yêu cầu cụ thể Mặc dù một số hệ thống Agent có thể dựa trên một Agent duy nhất làm việc trong một môi trường và khi cần có thể tương tác với người sử dụng, nhưng trong đa số trường hợp, hệ thống Agent bao gồm nhiều Agent Hệ thống đa Agent (MAS - Multi-agent System) này có thể là một hệ thống rất phức tạp với các Agent có cùng mục tiêu chung hoặc đôi khi xung đột với nhau Các Agent này có thể tương tác với nhau một cách gián tiếp (thông qua các hành động trên môi trường) hoặc trực tiếp (thông qua các giao tiếp và thương lượng) Các Agent có thể quyết định hợp tác cho mục tiêu chung hoặc cạnh tranh lẫn nhau để phục vụ mục tiêu riêng của nó

Trang 16

7

Như vậy, một Agent có tính tự trị, bởi vì nó hoạt động mà không có sự can thiệp trực tiếp của con người hoặc các Agent khác, và nó tự điều khiển các hành động và trạng thái bên trong nó Một Agent có tính xã hội, vì nó hợp tác với con người hoặc các Agent khác để hoàn thành các nhiệm vụ của nó Một Agent có tính phản ứng vì nó nhận biết được môi trường của nó và trả lời một cách kịp thời để thay đổi những thứ xẩy ra trong môi trường Một Agent có tính tích cực vì nó không chỉ đơn giản hồi đáp đến môi trường của nó mà còn có khả năng đưa ra các hành động hướng tới mục tiêu bằng cách đưa ra sự khởi tạo

Thêm vào đó, một tính chất quan trọng nữa của Agent là nó có tính di động, với khả năng di chuyển giữa các nút trong mạng máy tính Nó có thể tin tưởng, bảo đảm chắc chắn là nó sẽ không cố tình giao tiếp với thông tin sai Nó có thể rộng lượng, luôn luôn cố gắng tìm hiểu câu hỏi dành cho nó Nó cũng có thể có lý trí, luôn luôn hành động để đạt được mục tiêu và không bao giờ ngăn chặn các mục tiêu có thể đạt được Và nó có thể học, tự thích nghi bản thân để phù hợp với môi trường và ham muốn của những người sử dụng

2.1.1.2 Kiến trúc tổng thế

Kiến trúc của 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 của 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 (reactive) đ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 [3], 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) [7] Kiến trúc phân lớp, tổng hợp giữa hai kiểu kiến trúc trên, cố gắng bao gồm cả phản ứng hành động và cân nhắc để trộn lẫn được điểm mạnh nhất của cả hai phương pháp trên Như vậy, kiến trúc của Agent

có thể được chia thành bốn nhóm chính: Nền tảng Lôgic, phản ứng hành động (reactive), BDI và kiến trúc phân lớp (layered achitectures)

Trang 17

8

2.1.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ác đặc tả FIPA Tập hợp đầy đủ các đặc tả của FIPA có thể được tìm thấy trên trang web chính thức của FIPA [17]

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 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 thể hiện hoàn toàn ở trong Jade vì Jade có mở rộng thêm ở một số khu vực so với các đặc tả

2.1.2.1 Lịch sử phát triển

FIPA được thành lập năm 1996 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 hợ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ủa các tổ thức nghiên cứu và công nghiệp, đưa ra một tập hợp các

quy chế hướng dẫn sản xuất cho một tập hợp các đặc tả chuẩn de jure [2] dành cho công nghệ phần mềm Agent Ở thời điểm này, các phần mềm Agent đã được biết đến rộng rãi trong giới khoa học nhưng nhận được rất ít 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 của FIPA sẽ theo tập hợp các nguyên lý:

- Các Công nghệ Agent cho phép một mô hình mới để giải quyết các vấn đề cũ và mới

- Các công nghệ Agent sẽ tiến đến cấp độ trưởng thành lớn

- Để sử dụng được, các công nghệ Agent cần phải có đặc tả

- Đặc tả của công nghệ tiến hoá được đưa ra để hỗ cung cấp các kết quả thu được bởi đặc tả fora

- Đặc tả của cơ chế bên trong các Agent không phải 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ở

Trang 18

9

2.1.2.2 Các khái niệm cốt lõi

Trong suốt quá trình phát triển của FIPA, rát nhiều các ý tưởng liên quan đến Agent

đã được đưa ra Nhiều ý tưởng đã tiến tới việc thực hiện sau khi được đưa ra thành các chuẩn, một vài ý tưởng vẫn đang được phát triển nhưng chưa hoàn thành, và có những cái khác đã thật bại vì một hoặc nhiều lý do Trong tất cả các ý tưởng đó, những phần quan trọng nhất là truyền thông Agent, quản lý Agent và kiến trúc Agent Phần này sẽ giới thiệu về hai trong số ba phần quan trọng nhất đó

2.1.2.2.1 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ủa các thông điệp truyền thông thông qua các 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 các giao thức được phân lớp dựa phần lớn trên truyền 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 tận dụng thông qua giao tiếp giữa các phần mềm ứng dụng giao thức

2.1.2.2.2 Quản lý Agent (Agent management)

Để bổ sung cho truyền thông, khía cạnh cơ bản thứ hai của các hệ thống Agent được tạo ra bởi các đặc tả ban đầu của FIPA là quản lý Agent: một nền tảng chuẩn trong đó các chuẩn FIPA cho Agent có thể tồn tại, tổ chức và quản lý Nó thành lập cá mô hình lôgíc 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 bao gồm các thành phần được miêu tả như hình 2.1

Trang 19

JADE được trở thành mã nguồn mở trong năm 2000 và được phân phối bới Telecom Italia dưới giấy phép LGPL ( Library Gnu Public Licence) Giấy phép này đảm bảo tất cả các quyền cơ bản để thuận tiện cho việc sử dụng phần mềm bao gồm trong các sản phẩm thương mại: quyền được sao chép phần mềm và phân phối bản sao chép, quyền được sử dụng mã nguồn của phần mềm, và quyền thay đổi mã nguồn và cải tiến nó Không giống như giấy phép GPL, giấy phép LPGL không đưa bất kỳ sự hạn chế nào và phần mềm sử dụng JADE, và nó cho phép các phần mềm độc quyền được trộn vẫn với phần mềm đăng

ký giấy phép LGPL Mặt khác, giấy phép này yêu cầu mọi công việc bắt nguồn từ JADE,

Trang 20

11

hoặc bất kỳ công việc nào dựa trên nó đều phải được đưa ra cộng đồng với cùng giấy phép

Website chính thức của JADE [16] cung cấp tất cả các phần mềm, tài liệu, mã nguồn

ví dụ và các thông tin về sử dụng JADE

2.2.2 Jade và mô hình các Agent

JADE là một phần mềm nền tảng cung cấp các chức năng phần mềm lớp giữa cơ bản, nó không phụ thuộc vào ứng dụng riêng biệt nào và làm đơn giản hoá việc phân phối các ứng dụng khai thác phần mềm ảo hoá Agent [10] Một trong những giá trị đầy ý nghĩa của JADE là nó thực hiện trừu tượng hóa dựa trên sự hiểu biết về hướng đối tượng, Java, cung cấp API đơn giản và thân thiện Các lựa chọn thiết kế đơn giản về sau chịu ảnh hưởng từ việc trừu tượng hoá Agent

2.2.3 Kiến trúc Jade

Hình 2.2 miêu tả các nhân tố kiến trúc chính của nền tảng JADE Một nền tảng JADE bao gồm các vùng chứa Agent (container) có thể được phân phối qua mạng Các Agent sống trong các vùng chứa là các quá trình Java, nó cung cấp quá trình thực thi của JADE và tất cả các dịch vụ cần thiết cho lưu trữ và thực thi Agent Một 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 của nền tảng: nó là vùng chưa đầu tiên được thực thi và tất 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 tả mối quan hệ giữa các thành phần kiến trúc chính của JADE

Trang 21

12

Hình 2.2: Mối quan hệ giữa các thành phần trong kiến trúc chính

Hình 2.3: UML mối quan hệ giữa các thành phần trong kiến trúc chính

Trang 22

13

2.2.4 Biên dịch và chạy nền tảng Jade

Tất cả các phần mềm liên quan đến JADE đều có thể tải về từ trang web chính thức của JADE Các phần mềm liên quan đến JADE có thể chia thành hai loại: bản phân phối chính và các bản phụ trợ Các bản phụ trợ trong mỗi bản riêng biệt đều có chứa các đơn vị (module) thực thi các phần mở rộng riêng biệt như các mã hoá cho ngôn ngữ Trong nhiều trường hợp, các bản này không được phát triển trực tiếp bởi đội ngũ phát triển của JADE

mà là các thành viên của cộng đồng nguồn mở, những người quyết định đưa các thành quả nghiên cứu của mình lên cho cộng đồng cùng xem

Bản phân phối chính bao gồm năm file đã được nén là:

- jadeBin.zip chứa một file jar là nền tảng JADE đã được biên dịch và sử dụng được ngay

- jadeDoc.zip chứa các tài liệu bao gồm: Hướng dẫn cho người quản trị (Administrator Guide), Hướng dẫn cho người lập trình (Programmer Guide) Các tài liệu này cũng có thể tải về từ trang web chính thức của JADE

- jadeExamples.zip chứa các mã nguồn của rất nhiều ví dụ

- jadeSrc.zip chứa tất cả các mã nguồn của JADE

- jadeAll.zip chứa tất cả 4 file nói trên

Nếu tất cả các file trên được tải xuống và giải nén thì cấu trúc thư mục sẽ giống như miêu tả ở hình 2.4

Thư mục jade/lib chứa tất cả các file jar cần phải được khai báo vào java CLASSPATH để chạy JADE

Trang 23

14

Hình 2.4: Cấu trúc thư mục JADE

Ví dụ, khi đã tải về ổ C trong hệ điều hành Windows, để chạy được JADE, trước hết cần 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;

1.3.jar;%JADE_HOME%\classes

%JADE_HOME%\lib\commons-codec\commons-codec-Sau đó có thể khởi động JADE với đồ hoạ bằng cách sử dụng lệnh:

prompt> java jade.Boot –gui

Sau khi khởi động thành công, màn hình dòng lệnh sẽ hiển thị thông báo giống như hình 2.5 và đồ hoạ của JADE sẽ hiện ra giống như hình 2.6

Trang 24

15

Hình 2.5: Kết quả khi khời động thành công

Hình 2.6: Giao diện nền tảng JADE

Trang 25

16

2.2.5 Agent di động (Mobile Agent)

Agent di động [9] là mô hình được xuất phát từ hai quy tắc khác nhau [4], đầu tiên

là trí thông tinh nhân tạo, thứ tạo ra khái niệm agent, thứ hai là hệ thống phân tán, thứ định nghĩa khái niệm về dịch chuyển mã [6]

Dựa theo định nghĩa chuẩn, Agent di động là một một agent giống như tất cả các agent không di động khác (tự quản, phản ứng hành động, thực hiện 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 nền tảng theo yêu cầu để thực hiện các công việc được giao

Theo cách nhìn từ hệ thống phân tán, một Agent di dộng là một chương trình với định danh duy nhất có thể dịch chuyển mã, dữ liệu và trạng thái giữa các máy được nối mạng Để thực hiện được điều đó, một Agent phải có khả năng dừng công việc của nó ở bất kỳ thời điểm nào, và tiếp tục hoạt động khi đã cư trú ở nơi khác

Chúng ta có thể đặt Agent di động trong mối quan hệ với các mô hình truyền thống như sau:

- Client –Server: Mô hình phổ biến nhất, ở đó các dịch vụ được Server đưa ra và được sử dụng bởi một hoặc nhiều Client

- Thực thi từ xa: Một thành phần gửi mã đến thành phần khác để thực thi từ xa, kết quả đưa ra hoặc từ quyết định của chính nó, hoặc một yêu cầu từ phía thành phần ở xa, hoặc có thể như một phần của giao kèo trước đó Sau khi thực thi, thành phần thực thi sẽ gửi trả kết quả về cho thành phần gốc

- Agent di động: Một thành phần gửi bản thân nó ( hoặc đối tượng khác nếu được phép) đến một nơi lưu trữ ở xa để thực thi Thành phần chuyển đi với mã, dữ liệu và có thể cả trạng thái Sự dịch chuyển có thể tương tự như trường hợp trước, nhưng thông thường nhất kết quả từ thành phần đó ( ví dụ là Agent di động) quyết định cho bản thân

nó có nhu cầu di chuyển địa điểm xem kẽ

Một Agent di động như miêu tả trong hình 2.7 gồm có 3 phần: mã, trạng thái và dữ liệu Mã là dạng của Agent sẽ được thực thi khi di trú đến một nền tảng Trong trường hợp đơn giản nhất thì nó là mã đơn 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ỉ tìm thấy trong Agent sử

Ngày đăng: 26/04/2013, 17:19

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[5] Genesereth and Ketchpel, SP. Software Agents. Communications of the ACM, 1994, trang 48-53 Sách, tạp chí
Tiêu đề: Communications of the ACM
[1] Bellifemine, F and Caire, G and Greenwood, PA. Developing Multi-Agent Systems with JADE. John Wiley & Sons Ltd, 2007 Khác
[3] Brooks R. Intelligence without Representation. Artificial Intelligence, 1991, trang 139–159 Khác
[4] Brown, P. and Rossak, W. Mobile Agents. Morgan Kaufmann Publishers and dpunkt.verlag, 2005 Khác
[6] Picco, GP. Understanding Code Mobility (Tutorial Session). In ICSE ’00: Proceedings of the 22nd International Conference on Software Engineering, 2000, trang 834 Khác
[7] Rao AS and Georgeff M. BDI Agents: from Theory to Practice. In Proceedings of the 1st International Conference on Multi-Agent Systems, 1995, trang 312–319 Khác
[8] Russell, SJ and Norvig, P. Artificial Intelligence: a Modern Approach, 2nd edn. Prentice Hall, 2003 Khác
[9] White, JE. Telescript Technology: Mobile Agents. In Bradshaw Jeffrey, (ed), Software Agents, AAAI Press/MIT Press, 1996 Khác
[10] Wooldridge, MJ and Jennings, NR. Intelligent Agents: Theory and Practice. Knowledge Engineering Review, 1995, trang. 115–152 Khác

HÌNH ẢNH LIÊN QUAN

NGHIÊN CỨU MÔ HÌNH PHÂN TẢI SERVER SỬ DỤNG PROXY ĐỘNG  - NGHIÊN CỨU MÔ HÌNH PHÂN TẢI SERVER  SỬ DỤNG PROXY ĐỘNG
NGHIÊN CỨU MÔ HÌNH PHÂN TẢI SERVER SỬ DỤNG PROXY ĐỘNG (Trang 1)
NGHIÊN CỨU MÔ HÌNH PHÂN TẢI SERVER SỬ DỤNG PROXY ĐỘNG  - NGHIÊN CỨU MÔ HÌNH PHÂN TẢI SERVER  SỬ DỤNG PROXY ĐỘNG
NGHIÊN CỨU MÔ HÌNH PHÂN TẢI SERVER SỬ DỤNG PROXY ĐỘNG (Trang 2)
Hình 2.1: Quản lý Agent - NGHIÊN CỨU MÔ HÌNH PHÂN TẢI SERVER  SỬ DỤNG PROXY ĐỘNG
Hình 2.1 Quản lý Agent (Trang 19)
Hình 2.1: Quản lý Agent - NGHIÊN CỨU MÔ HÌNH PHÂN TẢI SERVER  SỬ DỤNG PROXY ĐỘNG
Hình 2.1 Quản lý Agent (Trang 19)
Hình 2.2: Mối quan hệ giữa các thành phần trong kiến trúc chính - NGHIÊN CỨU MÔ HÌNH PHÂN TẢI SERVER  SỬ DỤNG PROXY ĐỘNG
Hình 2.2 Mối quan hệ giữa các thành phần trong kiến trúc chính (Trang 21)
Hình 2.3: UML mối quan hệ giữa các thành phần trong kiến trúc chính - NGHIÊN CỨU MÔ HÌNH PHÂN TẢI SERVER  SỬ DỤNG PROXY ĐỘNG
Hình 2.3 UML mối quan hệ giữa các thành phần trong kiến trúc chính (Trang 21)
Hình 2.2: Mối quan hệ giữa các thành phần trong kiến trúc chính - NGHIÊN CỨU MÔ HÌNH PHÂN TẢI SERVER  SỬ DỤNG PROXY ĐỘNG
Hình 2.2 Mối quan hệ giữa các thành phần trong kiến trúc chính (Trang 21)
Hình 2.4: Cấu trúc thư mục JADE - NGHIÊN CỨU MÔ HÌNH PHÂN TẢI SERVER  SỬ DỤNG PROXY ĐỘNG
Hình 2.4 Cấu trúc thư mục JADE (Trang 23)
Hình 2.4: Cấu trúc thư mục JADE - NGHIÊN CỨU MÔ HÌNH PHÂN TẢI SERVER  SỬ DỤNG PROXY ĐỘNG
Hình 2.4 Cấu trúc thư mục JADE (Trang 23)
Hình 2.5: Kết quả khi khời động thành công - NGHIÊN CỨU MÔ HÌNH PHÂN TẢI SERVER  SỬ DỤNG PROXY ĐỘNG
Hình 2.5 Kết quả khi khời động thành công (Trang 24)
Hình 2.6: Giao diện nền tảng JADE - NGHIÊN CỨU MÔ HÌNH PHÂN TẢI SERVER  SỬ DỤNG PROXY ĐỘNG
Hình 2.6 Giao diện nền tảng JADE (Trang 24)
Hình 2.7: Cấu trúc đơn giản của Agent di dộng - NGHIÊN CỨU MÔ HÌNH PHÂN TẢI SERVER  SỬ DỤNG PROXY ĐỘNG
Hình 2.7 Cấu trúc đơn giản của Agent di dộng (Trang 26)
Hình 2.7: Cấu trúc đơn giản của Agent di dộng - NGHIÊN CỨU MÔ HÌNH PHÂN TẢI SERVER  SỬ DỤNG PROXY ĐỘNG
Hình 2.7 Cấu trúc đơn giản của Agent di dộng (Trang 26)
Chương 3 Mô hình Proxy động - NGHIÊN CỨU MÔ HÌNH PHÂN TẢI SERVER  SỬ DỤNG PROXY ĐỘNG
h ương 3 Mô hình Proxy động (Trang 28)
Hình 3.1: Mô hình Client – Proxy – Server - NGHIÊN CỨU MÔ HÌNH PHÂN TẢI SERVER  SỬ DỤNG PROXY ĐỘNG
Hình 3.1 Mô hình Client – Proxy – Server (Trang 28)
Hình 3.2: Mô hình hệ thống - NGHIÊN CỨU MÔ HÌNH PHÂN TẢI SERVER  SỬ DỤNG PROXY ĐỘNG
Hình 3.2 Mô hình hệ thống (Trang 32)
Hình 3.2: Mô hình hệ thống - NGHIÊN CỨU MÔ HÌNH PHÂN TẢI SERVER  SỬ DỤNG PROXY ĐỘNG
Hình 3.2 Mô hình hệ thống (Trang 32)
Hình 3.3: Cấu trúc Server - NGHIÊN CỨU MÔ HÌNH PHÂN TẢI SERVER  SỬ DỤNG PROXY ĐỘNG
Hình 3.3 Cấu trúc Server (Trang 33)
Hình 3.3: Cấu trúc Server - NGHIÊN CỨU MÔ HÌNH PHÂN TẢI SERVER  SỬ DỤNG PROXY ĐỘNG
Hình 3.3 Cấu trúc Server (Trang 33)
Hình3.4: Mẫuyêu cầugửi choServer - NGHIÊN CỨU MÔ HÌNH PHÂN TẢI SERVER  SỬ DỤNG PROXY ĐỘNG
Hình 3.4 Mẫuyêu cầugửi choServer (Trang 34)
Hình 3.5: Cấu trúc ProxyServer - NGHIÊN CỨU MÔ HÌNH PHÂN TẢI SERVER  SỬ DỤNG PROXY ĐỘNG
Hình 3.5 Cấu trúc ProxyServer (Trang 35)
Hình 3.5: Cấu trúc Proxy Server - NGHIÊN CỨU MÔ HÌNH PHÂN TẢI SERVER  SỬ DỤNG PROXY ĐỘNG
Hình 3.5 Cấu trúc Proxy Server (Trang 35)
Hình 3.6: Mẫuyêu cầugửi cho Proxy - NGHIÊN CỨU MÔ HÌNH PHÂN TẢI SERVER  SỬ DỤNG PROXY ĐỘNG
Hình 3.6 Mẫuyêu cầugửi cho Proxy (Trang 37)
Hình 3.6: Mẫu yêu cầu gửi cho Proxy - NGHIÊN CỨU MÔ HÌNH PHÂN TẢI SERVER  SỬ DỤNG PROXY ĐỘNG
Hình 3.6 Mẫu yêu cầu gửi cho Proxy (Trang 37)
Chương trình kiểm chứng người dùng bằng hình ảnh sẽ hoạt động theo luồng tiến trình như hình 4.1  - NGHIÊN CỨU MÔ HÌNH PHÂN TẢI SERVER  SỬ DỤNG PROXY ĐỘNG
h ương trình kiểm chứng người dùng bằng hình ảnh sẽ hoạt động theo luồng tiến trình như hình 4.1 (Trang 41)
Hình 4.1: Biểu đồ tuần tự của hệ thống - NGHIÊN CỨU MÔ HÌNH PHÂN TẢI SERVER  SỬ DỤNG PROXY ĐỘNG
Hình 4.1 Biểu đồ tuần tự của hệ thống (Trang 41)
Bảng số liệu thực nghiệm - NGHIÊN CỨU MÔ HÌNH PHÂN TẢI SERVER  SỬ DỤNG PROXY ĐỘNG
Bảng s ố liệu thực nghiệm (Trang 44)

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w