Công nghệ tác tử di động và ứng dụng trong quản lý giám sát mạng

  • 67 trang
  • file .pdf
ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
VŨ VĂN HUÂN
CÔNG NGHỆ TÁC TỬ DI ĐỘNG VÀ ỨNG DỤNG
TRONG QUẢN LÝ GIÁM SÁT MẠNG
LUẬN VĂN THẠC SĨ
Hà Nội - 2011
ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
VŨ VĂN HUÂN
CÔNG NGHỆ TÁC TỬ DI ĐỘNG VÀ ỨNG DỤNG
TRONG QUẢN LÝ GIÁM SÁT MẠNG
Ngành : Công nghệ Thông tin
Chuyên ngành : Truyền dữ liệu và Mạng máy tính
Mã số : 60.48.15
LUẬN VĂN THẠC SĨ
Người hướng dẫn khoa học: PGS.TS Đoàn Văn Ban
:
Hà Nội - 2011
DANH MỤC CÁC CHỮ TẮT
ACL Agent Communication Language
API Application Programming Interface
ASDK Aglet Software Development kit
ATP Agent Transfer Protocol
ATCI Agent Transfer and Communication Interface
CMIP Common Management Information Protocol
CMOT CMIP Over TCP/IP
CORBA Common Object Request Broker Architechture
DES Data Encryption Standard
FIFA Foundation for Intelligent Physical Agents
GUI Graphical User Interface
HTTP HyperText Transfer Protocol
JDK Java Deverlopment Kit
JVM Java Virtual Machine
ISO International Standards Organization
IETF Internet Engineering Task Force
IIOP Internet Inter – ORB Protocol
MAP Mobile Agent Flatform
MAS Mobile Agent Server
MA Mobile Agent
MIB Management Information Base
MIT Management Information Tree
MO Managed Object
MD5 Message Digest
NE Network Element
EM Element Management
NMS Network Management System
OMG Object Managemet Group
OSI Open Systems Interconnection
RDP Remote Delegation Protocol
REV Remote EValuation
RSA Rivest - Shamir - Adleman
SNMP Simple Network Management Protocol
PDU Protocol Data Unit
UDP User Datagram Protocol
JCE Java Cryptography Extension
DANH MỤC CÁC HÌNH VẼ
 Hình 1.1: Sự tiến hóa của mô hình ứng dụng phân tán ....................... 4
 Hình 1.2: Chức năng của các tác tử di động ........................................ 7
 Hình 1.3: Phân loại tác tử .................................................................... 9
 Hình 2.1: Giao thức SNMP trên cấu trúc TCP/IP ................................ 18
 Hình 2.2: Mô hình quản lý mạng ......................................................... 19
 Hình 2.3: Các tác tử bảo dưỡng duy trì trên mạng .............................. 21
 Hình 2.4: Quá trình phát hiện các thiết bị trên mạng .......................... 21
 Hình 2.5: Duyệt tìm Applet ................................................................. 23
 Hình 2.6: Quản lý cấu hình sử dụng công nghệ tác tử ........................ 24
 Hình 2.7: Các tác tử cung cấp các dịch vụ ........................................... 26
 Hình 2.8: Các tác tử có tác dụng Plug & Play ..................................... 27
 Hình 2.9: Quản lý giám sát mạng truyền thống ................................... 30
 Hình 3.1: Kiến trúc Aglets ................................................................... 42
 Hình 3.2: Aglet API ............................................................................. 42
 Hình 3.3: Các Aglet Agent .................................................................. 43
 Hình 3.4: Truy nhập các Aglets ........................................................... 43
 Hình 3.5: Quá trình di trú của một Aglet ............................................. 44
 Hình 3.6: Vòng đời của một Aglet ....................................................... 45
 Hình 3.7: Các đối tượng trong mẫu Master – Slave ............................ 47
 Hình 3.8: Sự cộng tác trong mẫu Master – Slave ................................ 49
 Hình 3.9: Các đối tượng trong mẫu Itinerary ...................................... 50
 Hình 3.10: Sự cộng tác trong mẫu Itinerary ........................................ 51
 Hình 3.11: Sự kết hợp hai mẫu Master-Slave và Itinerary .................. 52
 Hình 4.1: Cửa sổ đăng nhập Aglets Framework .................................. 56
 Hình 4.2: Màn hình chính hệ thống Aglets Framework ...................... 56
 Hình 4.3: Cửa sổ tạo các Agent Aglets ................................................ 57
 Hình 4.4: Cửa sổ thông tin các Agent Aglets ...................................... 58
 Hình 4.5: Cửa sổ hiển thị kết quả thực nghiệm .................................... 60
MỞ ĐẦU
Sự phát triển không ngừng của các kỹ thuật tiên tiến về máy tính, đặc biệt
là các giải pháp mạng, cùng với sự bùng nổ nhanh chóng các dịch vụ và nguồn
thông tin trên mạng đã làm ngày một gia tăng số người sử dụng mạng Internet.
Các đặc điểm của nguồn thông tin, tổ chức mạng, cũng như việc khai thác, xử lý
thông tin ngày càng trở nên phức tạp và đa dạng hơn.
Các ứng dụng phân tán phát triển theo mô hình Client/Server truyền thống
bộc lộ nhiều khiếm khuyết do chúng đòi hỏi làm việc đồng bộ, đường truyền
băng thông cao, độ trễ thấp, các dịch vụ cung cấp cũng thiếu linh động, khó thay
đổi và bổ sung.
Tác tử di động (Mobile agent) là một mô hình trong đó các tiến trình được
gọi là tác tử, có tính tự trị và khả năng di chuyển từ nút mạng này sang nút mạng
khác để hoàn tất tác vụ, khả năng di chuyển xử lý đến gần nguồn dữ liệu, nhờ đó
có thể giảm tải mạng, khắc phục tình trạng trễ, hỗ trợ xử lý không đồng bộ và
tạo sự tương thích mạnh trên các môi trường không đồng nhất. Với những ưu
điểm này, Công nghệ tác tử di động hứa hẹn một giải pháp mới hiệu quả và dễ
dàng hơn trong việc phát triển ứng dụng phân tán.
Hơn nữa, sự phức tạp của việc giám sát và quản lý các mạng lớn, với
nhiều loại ứng dụng và thiết bị khác nhau cho thấy các hệ thống quản lý giám sát
mạng như SNMP hay CMIP còn nhiều hạn chế. Cách quản lý tập trung dẫn đến
những hạn chế về hiệu năng và sự ổn định, quá trình thu thập và phân tích dữ
liệu thường kéo theo việc truyền nhận số lượng lớn dữ liệu quản lý gây hiện
tượng nghẽn cổ chai tại các máy chủ quản lý. Tính thiếu linh hoạt của hệ thống
cũng là một hạn chế đáng kể,…
Điều đó đòi hỏi xây dựng các hệ thống giám sát có khả năng cấu hình
động, khả năng mở rộng, khả năng giám sát chủ động, hỗ trợ các cơ chế an ninh
cao cấp, có hiệu năng và tính tin cậy cao hơn. Công nghệ tác tử di động là một
lĩnh vực mới mẻ đầy triển vọng, nó đang được nhiều nhà nghiên cứu, chuyên
viên lập trình mạng sử dụng để triển khai và tích hợp vào hệ thống của họ. Điều
đó giúp ích rất nhiều cho việc xây dựng các hệ thống có khả năng thứ lỗi do hạ
tầng truyền thông kém.
Công nghệ tác tử di động đã ảnh hưởng lớn đến lĩnh vực nghiên cứu quản
lý phân tán. Nhiều dự án nghiên cứu đã tập trung vào khai thác tiềm năng của
công nghệ tác tử di động trong phạm vi quản lý như: Định tuyến mạng, giám sát
mạng, quản lý lỗi, quản lý cấu hình, quản lý thực hiện, quản lý an toàn và quản
lý dịch vụ,.... Đặc tính di trú và độc lập với tiến trình tạo ra nó, chức năng quản
1
lý tùy biến, tổng hợp ngữ nghĩa của dữ liệu hoặc phát hiện ra sự thay đổi liên
quan đến thực hiện, lỗi hoặc cấu hình của hệ thống quản lý. Từ những vấn đề
trên, luận văn tốt nghiệp cao học được xác định theo đề tài “Công nghệ tác tử di
động và ứng dụng trong quản lý giám sát mạng”.
Nội dung của Luận văn được bố cục bao gồm bốn chương:
Chương 1: Trình bày tổng quan về công nghệ tác tử di động.
Chương 2: Trình bày công nghệ tác tử trong quản lý giám sát mạng.
Chương 3: Trình bày những tìm hiểu về hệ thống Mobile Aglets
Frammework.
Chương 4: Trình bày về ứng dụng công nghệ tác tử trong quản lý giám sát
mạng và các kết quả đạt được khi tiến hành thực nghiệm tác tử di động dựa trên
Mobile Aglets Framework.
2
CHƯƠNG 1
TỔNG QUAN VỀ CÔNG NGHỆ TÁC TỬ DI ĐỘNG
1.1. Giới thiệu
Tác tử di động là một trong những hướng nghiên cứu thu hút nhiều sự
quan tâm nhất từ những năm 90 đến nay với những đặc điểm rất thích hợp cho
việc phát triển các ứng dụng phân tán. Chương này sẽ điểm lại một số khái niệm
cơ bản về Tác tử di động đồng thời đề cập đến những ứng dụng phù hợp với mô
hình tác tử di động đã và đang được nghiên cứu và phát triển.
1.2. Khái niệm Tác tử di động
Tác tử di động là một đối tượng, có khả năng di chuyển một cách tự trị từ
nút mạng này tới nút mạng khác để thực hiện một số công việc thay mặt người
dùng. Khi di chuyển giữa các nút mạng, các tác tử di động đóng gói mã lệnh, dữ
liệu và trạng thái thi hành. Vì vậy, nó có thể dừng việc thực thi đang thực hiện
tại nút mạng này và khôi phục lại sự thực thi tại nút mạng nó di chuyển đến [5].
1.3. Sự tiến hóa từ các mô hình ứng dụng phân tán
Dựa trên sự phân tán của các tài nguyên, phương pháp xử lý tài nguyên tại
nơi mã lệnh được thực thi, có thể phân lớp các mô hình ứng dụng phân tán như
sau [3]:
- Mô hình Client – Server.
- Mô hình Code – in – Demand
- Mô hình Mobile Agent.
Trong mô hình Client – Server thì tại Server có phương pháp xử lý + khả
năng xử lý + tài nguyên. Các Client phải biết tìm ra các Server cung cấp dịch vụ
mà nó cần.
Việc giao tiếp giữa Client và Server thông qua cơ chế truyền thông điệp
hoặc các lời gọi hàm từ xa, sự liên lạc tương tác giữa Client và Server là liên tục.
Trong mô hình này Client phải tạm ngưng hoạt động của mình trong thời gian
gửi yêu cầu của mình đến Server và đợi cho đến khi nhận được kết quả hồi đáp.
Trong mô hình REV (Remote Evaluation), thay vì yêu cầu thực hiện các
hàm từ xa thì Client chỉ việc gửi mã nguồn các hàm của nó đến Server và yêu
cầu Server thực hiện rồi trả về kết quả. Một số hệ thống gần đây cũng đã giới
thiệu khái niệm thông điệp chủ động có thể di trú giữa các nút mạng, mang theo
mã của chương trình để thực thi tại những nút mạng đó.
3
Trong mô hình Code – in – Demand, Server có phương pháp xử lý, Client
có khả năng xử lý tài nguyên nhưng không biết phương pháp xử lý. Client cần
yêu cầu Server gửi cho phương pháp xử lý để có thể tiến hành xử lý tài nguyên.
Đối với mô hình Mobile Agent, mỗi trạm làm việc trong mạng có khả
năng linh hoạt cao trong việc chấp nhận sự kết hợp cả phương pháp xử lý, khả
năng xử lý và tài nguyên. Các Tác tử di động mang theo phương pháp xử lý và
dữ liệu không bị gắn chặt với một trạm, mà được chuyển đi trong toàn mạng.
Tham số (dữ liệu)
Client Server RPC
Kết quả (dữ liệu)
Thủ tục (mã nguồn)
Client Server REV
Kết quả (dữ liệu)
2. MA di trú
MA: Server-1 Server-2 Mobile Agent
Code+Data+Context
1. MA gửi đi 3. MA di trú
4. MA di trú
Client Server-3
Hình 1.1. Sự tiến hóa của mô hình ứng dụng phân tán [15]
Như vậy, có thể thấy Tác tử di động là mô hình tiến hóa tiên tiến nhất,
trong đó cả phương pháp xử lý, tài nguyên, ngữ cảnh xử lý đều có thể di chuyển
trong mạng cùng với các tác tử và do đó tận dụng được khả năng xử lý của nhiều
nút mạng.
1.4. Các đặc tính của Tác tử di động
Tác tử di động bao gồm một số các đặc tính sau [2]:
1.4.1. Tính tự trị
Tính tự trị (autonomous): Là khả năng tự kiểm soát của tác tử sau khi
được giao nhiệm vụ mà không cần sự can thiệp nào của người dùng hoặc của tác
tử khác. Có nhiều hướng đánh giá về sự tự trị của tác tử, phổ biến là hai đặc tính
hướng đích (goal-oriented) và tính chủ động (pro-activeness) thường được dùng
để đánh giá mức độ tự trị của tác tử. Khả năng tự trị của tác tử chủ yếu được
quyết định bởi tri thức trang bị cho tác tử.
4
1.4.2. Tính di động
Tính di động (mobility): Là khả năng tự di chuyển từ môi trường thi hành
này sang môi trường thi hành khác của một tác tử. Khả năng di động của một tác
tử được phân thành hai loại: Di động yếu (weak - mobility) và di động mạnh; Di
động yếu là khả năng di chuyển của hệ thống có thể mang theo mã lệnh và trạng
thái dữ liệu, tại điểm đến, sự thi hành phải bắt đầu lại từ đầu; Di động mạnh là
khả năng của hệ thống có thể di chuyển cả mã chương trình và trạng thái thi
hành của tác tử đến một môi trường khác, tại điểm đến, sự thi hành có thể tiếp
tục tại điểm mà nó đã dừng trạng thái trước đó.
1.4.3. Tính thích ứng
Tính thích ứng (reactiveness): Là khả năng của tác tử có thể thực thi trên
những môi trường lạ và cảm nhận được sự thay đổi của môi trường.
1.4.4. Khả năng cộng tác
Khả năng cộng tác (Collaboration): Là khả năng liên lạc, phối hợp hoạt
động của các tác tử với các tác tử của cùng môi trường hay với các loại đối
tượng khác trong những môi trường khác.
1.5. Các loại tác tử
1.5.1. Tiêu chí phân loại tác tử
Để phân loại tác tử chúng ta có thể căn cứ theo các tiêu chí sau [9][14]:
- Theo tính di động của tác tử
- Theo khả năng suy luận hay phản xạ của tác tử
- Theo tính chất đặc thù của tác tử
- Theo vai trò của tác tử
- Theo tính lai tạp của tác tử
+ Phân loại tác tử theo tính di động: Theo tiêu chí về khả năng di chuyển
giữa môi trường này sang môi trường khác, giữa nút mạng này sang nút mạng
khác chúng ta có thể phân chia tác tử làm hai loại: tác tử tĩnh và tác tử động.
+ Phân loại theo khả năng suy luận hay phản xạ: Tác tử có thể được phân
lớp theo tính suy luận hoặc theo tính phản xạ của chúng. Theo tiêu chí này, tác
tử được phân làm hai loại: tác tử suy luận và tác tử phản xạ. Các tác tử suy luận
bắt nguồn từ mô hình tư duy suy luận: các tác tử có một tập trạng thái trong, mô
hình tư duy và chúng hoạt động một cách có kế hoạch và có sự hợp tác với các
tác tử khác. Các tác tử phản xạ thì không có tập trạng thái trong, chúng hoạt
động theo hình thức đáp ứng lại trạng thái hiện thời của môi trường.
5
+ Phân loại theo tính chất đặc thù của tác tử: Tác tử có thể được phân
thành bốn loại: tác tử hợp tác, tác tử hợp tác học tập, tác tử giao diện và tác tử
thông minh.
Tác tử có khả năng tự động là các tác tử có khả năng tự thi hành các hành
động mà không cần có sự can thiệp của con người, thậm chí đôi khi điều này là
không thể đánh giá được. Các tác tử loại này có tập trạng thái trong cũng như
tập mục đích riêng và chúng hoạt động thay mặt cho người dùng theo một
phương thức nào đó nhằm đạt được mục đích. Điểm chốt yếu của tính tự động là
khả năng chủ động, như chúng có khả năng tự khởi tạo công việc chứ không chỉ
đơn thuần đáp ứng lại trước các trạng thái hiện thời của môi trường.
Khả năng hợp tác của tác tử là đặc điểm hết sức quan trọng, để có thể hợp
tác được các tác tử cần sở hữu các khả năng xã hội. Ví dụ khả năng tương tác
với các tác tử khác có thể là cả con người thông qua một số ngôn ngữ nào đó.
Cuối cùng, để các tác tử thực sự thông minh thì ngoài khả năng phản xạ
hay tương tác với môi trường thì chúng phải có khả năng học tập. Quá trình học
tập cũng có thể giúp nâng cao hiệu năng hoạt động của tác tử.
+ Phân loại theo vai trò của tác tử: Chúng ta cũng có thể phân loại các tác
tử theo vai trò riêng của nó do người dùng thiết kế. ví dụ các tác tử tìm kiếm
thông tin mạng, tác tử báo cáo, tác tử biểu diễn, tác tử phân tích và thiết kế, tác
tử kiểm tra, tác tử đóng gói và tác tử trợ giúp, vv…
+ Phân loại theo lai tạp của tác tử: Trên thực tế, để nâng cao hiệu năng
của tác tử ta thường kết hợp hai hay nhiều mô hình tác tử khác nhau trong cùng
một tác tử để tạo ra các tác tử lai. Việc phân biệt các tác tử theo tiêu chí trên
cũng mang tính chất tương đối, có những tác tử trong hoàn cảnh này thì coi
chúng là tác tử di động, trong hoàn cảnh khác thì coi chúng là tác tử tính,… vì
vậy, tùy từng trường hợp cụ thể mà ta phân loại tác tử và sử dụng các tiêu chí
phân loại cho phù hợp.
1.5.2. Các loại tác tử
Dựa vào các tiêu chí phân loại trên ta có các loại tác tử sau [13]:
- Tác tử di động: Tác tử di động là các phần mềm tính toán có khả năng di
chuyển trong các mạng diện rộng, tương tác với các máy trạm khác, thay mặt
cho người dùng thu thập thông tin và thực hiện các tập công việc, sau đó quay
trở lại báo cáo các kết quả đã đạt được cho người chủ. Tập công việc có thể ở
mức đơn giản như truy xuất thông tin hoặc phức tạp như việc điều hành một
mạng điện thoại. Tuy nhiên, nếu chỉ có tính chất di động thì cũng chưa đủ thể
hiện của một tác tử. Các tác tử di động là tác tử vì chúng còn có tính tự động và
6
tính hợp tác, mặc dù khác với các tác tử hợp tác. Ví dụ chúng có thể hợp tác
hoặc trao đổi thông tin thông qua một tác tử khác, chúng có các phương pháp
biết được các tác tử khác. Bằng cách này, một tác tử có thể trao đổi thông tin với
các tác tử khác mà không phải truyền đi tất cả các thông tin về mình. Điều này
hết sức quan trọng vì việc nhận biết công cộng về các tác tử cũng đồng nghĩa
với các tác tử di động. Các chức năng của tác tử di động được mô tả như trong
hình vẽ:
User
Observes Communicate
Application Imitates Feedback
User’s Asks Other
Agent Agent
Interacts with
Hình 1.2: Chức năng của các tác tử di động
- Tác tử hợp tác: Các tác tử hợp tác nhấn mạnh vào tính tự động và cộng
tác với các tác tử khác để thực hiện nhiệm vụ được giao. Tác tử loại này cũng có
thể học nhưng khía cạnh này không là đặc điểm nổi bật trong hoạt động của
chúng. Để đảm bảo được tính hợp tác, các tác tử này phải thương lượng và có
được sự chấp nhận của các tác tử khác về một số khía cạnh nào đó trước khi
thực hiện công việc của mình.
Một số tính chất chủ yếu của tác tử hợp tác: tính tự động, khả năng xã hội,
khả năng hồi đáp và chủ động. Do đó, tác tử loại này có thể hoạt động tự động
và nối tiếp trong môi trường đa tác tử. Ngoài ta các tác tử hợp tác thường không
thực hiện những quá trình học tập phức tạp.
- Tác tử giao diện: tác tử giao diện nhấn mạnh vào tính tự động và khả
năng học tập để thực hiện nhiệm vụ. Đặc điểm mấu chốt của tác tử loại này là
chúng đóng vai trò như các trợ lý của người dùng, cùng hợp tác với người dùng
trong một môi trường làm việc. Đây là điểm khác biệt với tác tử hợp tác, các tác
tử hợp tác phải cộng tác với các tác tử khác để thực hiện nhiệm vụ. Việc hợp tác
với người dùng không yêu cầu một ngôn ngữ trao đổi phức tạp như trong việc
7
trao đổi thông tin giữa các tác tử. Để có thể trợ giúp ngày càng tốt hơn cho
người dùng, các tác tử giao diện học tập theo bốn cách:
+ Thông qua quan sát và bắt chước người dùng
+ Thông qua các thông tin hồi đáp tích cực hoặc tiêu cực từ người
dùng
+ Thông qua việc nhận các lệnh thực hiện của người dùng
+ Thông qua việc tham khảo lời khuyên từ các tác tử khác.
Việc hợp tác giữa các tác tử loại này, nếu có chỉ giới hạn ở mức hỏi các
lời khuyên chứ không ở mức thương lượng như trong trường hợp của các tác tử
hợp tác. Các phương thức học cũng chỉ thường là học dựa trên trí nhớ học thông
qua các phương trình tham số.
- Tác tử thông tin: Sự xuất hiện của các tác tử loại này là do nhu cầu các
công cụ trợ giúp trong việc khai thác lượng thông tin ngày càng lớn như hiện
nay. Các tác tử thông tin thực hiện các công việc như quản trị, xử lý hoặc sưu
tập thông tin từ rất nhiều nguồn phân tán.
Tuy nhiên, rất có thể các tác tử loại này có các tính chất trùng lặp với
những loại đã nêu trên. Điều này là không thể tránh khỏi vì khi đưa ra các định
nghĩa trước về tác tử ta dựa trên câu hỏi “chúng là gì”, trong khi đó tác tử thông
tin được định nghĩa với câu hỏi “chúng làm gì”. Mặc dù tác tử thông tin và tác
tử hợp tác có xuất phát điểm rất khác nhau, tuy nhiên với sự xuất hiện của
World Wide Web và các dịch vụ gia tăng trên mạng diện rộng giờ chúng có khá
nhiều điểm trùng lặp với nhau.
- Tác tử phản xạ: Đây là loại tác tử đặc biệt, chúng không có các trạng
thái trong hay các mô hình tượng trưng của môi trường, thay vào đó chúng hoạt
động theo kiểu hồi đáp lại trước trạng thái hiện thời của môi trường. Tác tử phản
xạ có ba đặc điểm nổi bật:
+ Các chức năng được thực hiện độc lập.
+ Nhiệm vụ được phân rã trước khi được giao cho mỗi tác tử.
+ Các tác tử phản xạ có xu hướng hoạt động trực tuyến tương ứng
với dữ liệu mà nó nhận được từ môi trường.
- Tác tử lai: Trong các phần nêu trên đã nhắc đến năm loại tác tử. Mỗi loại
trong số đó, chúng đều có những điểm mạnh cũng như những khó khăn riêng,
các nhà phát triển luôn muốn tạo ra các thực thể có tối đa các lợi thế, đồng thời
giảm thiểu các khó khăn. Để thực hiện điều này người ta thường phải áp dụng
mô hình tiếp cận kiểu kết hợp nhiều mô hình. Vì vậy, các tác tử được tạo ra theo
phương pháp này là sự kết hợp của hai hoặc nhiều hơn mô hình tác tử.
8
- Tác tử thông minh: Tác tử thông minh là các thực thể phần mềm thực
hiện một tập các thao tác nhân danh người sử dụng hoặc một chương trình khác
với mức độ độc lập hoặc tự chủ nhất định, sử dụng một số tri thức và hình dung
về mục đích và yêu cầu của người sử dụng.
Việc phân chia thành các loại tác tử này cũng chỉ mang tính chất tương
đối và được mô tả như trong hình vẽ:
intelligent agent
Collaborative
Learning agent
Cooperate
learn
autonomous
interface agent
collaborative agent
Hình 1.3: Phân loại tác tử
1.6. Ứng dụng của tác tử
1.6.1. Lợi ích của công nghệ tác tử di động
Ứng dụng công nghệ tác tử sẽ có một số lợi ích sau [5]:
- Giúp giảm tải mạng: Các hệ thống phân tán thường dựa trên các giao
thức liên lạc yêu cầu nhiều tương tác để hoàn thành một nhiệm vụ. Kết quả là
lưu lượng mạng tăng cao. Tác tử di động cho phép người dùng đóng gói một
hộp thoại và gửi nó tới một trạm đích, tại đó các chương trình tương tác sẽ được
thực hiện một cách cục bộ. Khi một lượng lớn dữ liệu được lưu trữ tại trạm ở xa,
dữ liệu đó cần được xử lý ngay tại đó, thay vì chuyến chúng qua mạng. Tiêu chí
của việc xử lý dữ liệu dựa trên tác tử di động là chuyển việc tính toán đến nơi có
dữ liệu để xử lý hơn là mang dữ liệu về chỗ xử lý.
- Khắc phục độ trễ mạng: Các hệ thống yêu cầu xử lý thời gian thực, việc
điều khiển các hệ thống này qua môi trường mạng kích thước lớn sẽ dẫn đến độ
9
trễ đáng kể. Tác tử di động có thể khắc phục được điều này nhờ vào việc chúng
có thể được gửi từ trung tâm điều khiển để hoạt động “cục bộ” và thi hành
những chỉ thị của trình điều khiển một cách trực tiếp.
- Đóng gói các giao thức: Khi dữ liệu được trao đổi trong một hệ phân
tán, việc truyền và nhận dữ liệu phải được tuân theo các giao thức nhất định.
Các giao thức này được sở hữu bởi mỗi máy trong hệ thống. Tuy nhiên, khi các
giao thức phải tiến hóa cho phù hợp với những yêu cầu phức tạp của người sử
dụng thì chúng bắt đầu trở nên cồng kềnh, nặng nề và trở thành vấn đề nan giải.
Với giải pháp tác tử di động, các tác tử có thể mang trên mình các giao thức
thích hợp và di chuyển tới các máy ở xa để thiết lập các kênh truyền nhận thông
tin tương ứng.
- Được thi hành không đồng bộ và tự trị: Các thiết bị di dộng thường dựa
vào các kết nối mạng yếu ớt và đắt đỏ. Các công việc yêu cầu một kết nối mở
liên tục giữa thiết bị di động và mạng cố định có thể không kinh tế hay không
khả thi về mặt kỹ thuật. Để giải quyết vấn đề này, các công việc có thể được
nhúng vào các tác tử di động và có thể được gửi đi qua mạng. Sau khi tới đích,
các tác tử trở nên độc lập với tiến trình đã tạo ra nó và có thể hoạt động một
cách tự trị và không đồng bộ. Các thiết bị di động có thể kết nối lại sau đó để thu
thập các tác tử.
- Thích nghi một cách linh hoạt: Các Tác tử di động có thể cảm nhận môi
trường thi hành của chúng và phản ứng lại một cách tự trị với những thay đổi.
Nhiều tác tử có cùng khả năng trong việc phân tán chúng trên các trạm trong
mạng để bảo trì cấu hình tới ưu.
- Khắc phục tình trạng không đồng nhất: Tính toán mạng về cơ bản là
không đồng nhất vì sự đa dạng về phần cứng và phần mềm. Bởi các tác tử di
động là độc lập với máy tính và tầng vận chuyển, chỉ phụ thuộc vào môi trường
thi hành, nên chúng cung cấp các điều kiện tối ưu cho việc liên kết các hệ thống
không đồng nhất.
- Mạnh mẽ và chịu lỗi cao: Các Tác tử di động có khả năng phản ứng
động với các tình huống không thuận lợi và thậm chí làm cho việc xây dựng các
hệ thống phân tán mạnh mẽ và chịu lỗi trở nên dễ dàng hơn. Nếu một trạm bị
ngắt, tất cả các tác tử đang thực thi trên máy đó được báo động và được dành
thời gian để tự gửi đi và tiếp tục công việc của chúng trên một trạm khác trong
mạng.
1.6.2. Một số ứng dụng của tác tử
Công nghệ tác tử có thể được ứng dụng trong một số lĩnh vực sau [1]:
10
- Điều khiển quá trình công nghiệp: Tác tử có thể được ứng dụng để điều
khiển các quá trình công nghiệp như: Quá trình truyền tải điện, các hệ quản lý tự
động, điều khiển tự động hóa, các hệ thống quản lý quá trình sản xuất và công
nghệ. Trong đó từng công việc hoặc từng giai đoạn công nghệ được quản lý bởi
một tác tử, các tác tử này có khả năng liên lạc với nhau để phối hợp, đồng bộ các
khâu.
- Điều khiển giao thông, không lưu: Các nút giao thông được quản lý bởi
các tác tử có khả năng trao đổi thông tin và tự đưa ra quyết định để tối ưu hóa
lưu lượng. Trong hàng không, mỗi máy bay được biểu diễn bằng một tác tử, các
tác tử này có nhiệm vụ liên lạc với trung tâm điều khiển và các máy bay khác để
đưa máy bay hạ cánh an toàn.
- Trong y tế: Trong y tế có thể ứng dụng tác tử để theo dõi tình hình người
bệnh, phối hợp các bộ phận, các bác sỹ và nhân viên trong một chương trình
điều trị chung.
- Trong công nghiệp giải trí: Tác tử được ứng dụng rất nhiều trong ngành
công nghiệp trò chơi điện tử, đặc biệt một số game đối kháng như: bóng đá, cờ
vua, cờ tướng,… trong đó nhân vật được mô phỏng bởi một tác tử.
- Trong quân sự: Tác tử thường được sử dụng để mô phỏng quân số, trang
bị, hệ thống chỉ huy, đồng bộ các đối tượng này theo kế hoạch tác chiến chung.
1.7. Giới thiệu một số hệ thống Tác tử di động
Các hệ thống tác tử di động đã và đang được phát triển, được ứng dụng
vào các hệ thống xử lý phân tán. Các hệ thống này đều sử dụng Java để phát
triển các ứng dụng phân tán, nhưng mỗi hệ thống có những đặc điểm riêng, như
trong tài liệu [15] đã nêu:
1.7.1. Một số hệ thống tác tử di động tiêu biểu
Aglets [8][6]
Aglets được xây dựng và phát triển bởi IBM Tokyo Research Laboratory.
Hiện nay, bộ Aglets Software Development Kit (ASDK) do IBM phát triển đã
dừng lại ở phiên bản 1.1 Beta 3 trên nền JDK 1.1. Phiên bản mới nhất của
ASDK là 2.0.2 do SourceForge phát triển trên nền JDK 1.3.
Aglets là một hệ thống Java Mobible, tác tử hỗ trợ các khái niệm thi hành
tự trị và định tuyến động trên lộ trình của nó. Có thể nói Aglets là một khái quát
hóa và mở rộng của Applet và Servlet. Aglet Server là chương trình cung cấp
một môi trường thi hành và một máy ảo Java cho Aglets hoạt động. Ngoài ra, nó
cũng sử dụng một trình quản lý để tiếp nhận và kiểm soát Aglets một cách an
toàn.
11
Aglet API là bộ thư viện bao gồm các hàm chuyên biệt dành cho việc phát
triển tác tử. Khi Aglet được tạo ra, nó sẽ chạy trên mọi máy có hỗ trợ Aglet API
không quan tâm đến nguồn gốc hệ điều hành và phần cứng bên dưới hay nguồn
gốc cụ thể của Aglet API được cài trên máy đang chạy.
Trong mô hình đối tượng, một tác tử di động là một đối tương di động có
luồng kiểm soát riêng của nó, làm việc theo sự kiện và liên lạc với các tác tử
khác bằng cách truyền thông điệp. Aglets có một cơ chế định danh duy nhất và
toàn cục trên UR, hỗ trợ cơ chế di động yếu.
Các aglets giao tiếp với nhau một cách đồng nhất và độc lập với vị trí lưu
trú thông qua đối tượng Proxy. Suốt chu kỳ sống, các aglets sẵn sàng bắt những
sự kiện (cloning, dispatching,….) phát sinh trong môi trường để có phản ứng
thích hợp. Tác tử có thể giao tiếp đồng bộ hoặc không đồng bộ thông qua các
loại thông điệp Synchronous, One-way hay Future-Reply sử dụng giao thức
ATP (Agent Transfer Protocol) cho việc di chuyển và giao tiếp. Aglets cung cấp
hai loại mẫu thiết kế chính là Master-Slave và Itinerary cho việc di chuyển của
các tác tử. Đồng thời, Aglets là một trong những platform được sử dụng nhiều
để phát triển các hệ thống tác tử di động.
Voyager [16][8]
ObjectSpace’s Voyager là một môi trường thương mại hỗ trợ phát triển
các ứng dụng tác tử từ giữa năm 1996. Hiện tại, phiên bản 4.5 Evaluation hoàn
toàn tương thích với JDK1.3, JDK1.2 và JDK1.1. Sản phẩm chính yếu dùng cho
các ứng dụng tác tử di động là Voyager ORB Professional.
Voyager sử dụng ngôn ngữ lập trình Java để tạo dựng các đối tượng ở xa
một cách dễ dàng, cho phép các đối tượng này trao đổi thông điệp với nhau và di
chuyển các đối tượng giữa các máy tính có hỗ trợ môi trường Voyager. Voyager
hỗ trợ tốt về tính di động với khả năng mang toàn bộ mã chương trình và dữ liệu
di chuyển từ máy ảo Java này sang máy ảo Java khác nếu các máy ảo có hỗ trợ
Voyager. Đồng thời, trạng thái hoạt động của tác tử được bảo toàn và tiếp tục
được thực thi tại nơi tác tử đến.
Tính phổ quát là một trong những đặc điểm nổi trội của Voyager. Các
chương trình viết trong Voyager có thể trao đổi thông tin hai chiều với các
chương trình viết bằng SOAP, CORBA, RMI hay DCOM. Các dạng thông tin
được trao đổi có thể là các lời gọi hàm từ xa, các dịch vụ đặt tên, dịch vụ thư
mục. Hơn nữa, tất cả các chương trình và đối tượng có thể được tổ chức thành
một không gian chung. Do vậy, việc liên lạc sẽ trở thành một - nhiều một cách
tự động.
12
Phiên bản 4.5 của Voyager đã được bổ sung thêm các tính năng hỗ trợ cho
các chuẩn dịch vụ Web, SOAP và WSDL, giúp cho các nhà phát triển có khả
năng triển khai các ứng dụng truy cập tới các dịch vụ Web từ xa và các chương
trình.
Mole [15]
Mole là hệ thống tác tử di động được xây dựng với ngôn ngữ Java tại đại
học Stuttgart CHLB Đức. Phiên bản 3.0 được hoàn tất vào năm 1998 và đề án đã
kết thúc với kết quả là một môi trường ổn định để xây dựng ứng dụng theo mô
hình tác tử trên các hệ phân tán.
Được xây dựng trên Java, Mole có khả năng thực thi trên tất cả các môi
trường có hỗ trợ JDK 1.1.x, sử dụng giao thức TCP/IP trong quá trình giao tiếp
và có hỗ trợ di chuyển yếu.
Để thực hiện giao tiếp giữa các tác tử Mole sử dụng các cơ chế truyền
thồng điệp, gọi hàm từ xa RPCs và cơ chế đặc trưng của Mole là session, badge.
Ngôn ngữ giao tiếp giữa các tác tử được Mole hỗ trợ là KQML, và trong các hệ
thống tác tử, khả năng bảo mật của Mole được đánh giá khá tốt.
Tác tử trong hệ thống Mole được chia làm hai loại: User - tác tử: là những
tác tử di động được kích hoạt bởi người dùng và không thể truy cập trực tiếp tài
nguyên hệ thống. System-tác tử hay Service agent: được khởi động bởi người
quản trị, không có tính di động và được phép truy cập tài nguyên hệ thống.
Môi trường Mole phù hợp cho phát triển những ứng dụng trong các lĩnh
vực truyền thông, hệ thống thông tin điện tử. Với hệ thống mã nguồn mở của
Mole, ta có thể tiến hành cải tiến, nâng cấp những chức năng hiện có và bổ sung
những chức năng mới như các chức năng về công cụ hỗ trợ lập trình tác tử để
Mole trở thành hệ thống tác tử hiện đại hỗ trợ tốt cho việc phát triển các ứng
dụng dựa theo mô hình tác tử.
ZEUS [15]
Zeus là môi trường do British Telecommunication phát triển để hỗ trợ xây
dựng các hệ thống đa tác tử. Ngoài các tính năng thông thường trong việc tạo lập
và quản lý các tác tử, Zeus đặc biệt chú trọng việc hỗ trợ một phương pháp luận
và một bộ công cụ mạnh để phát triển ứng dụng đa tác tử trên môi trường phân
tán.
Zeus định nghĩa một phương pháp luận để phân tích, thiết kế và triển khai
hệ thống. Hai giai đoạn phân tích và thiết kế được đặc tả chi tiết nhưng chưa
được hỗ trợ bởi các công cụ. Zeus Toolkit hỗ trợ hai giai đoạn cài đặt và bảo trì
thông qua Zeus tác tử Generator và Zeus tác tử Visualiser. Zeus cung cấp nhiều
13
trình soạn thảo để định nghĩa tác tử và các thuộc tính của tác tử. Code Generator
sẽ tự động phát sinh mã nguồn cho tác tử từ những thuộc tính đã đặc tả.
Tính tự trị và tính cộng tác. Bộ phận Planner trong mỗi tác tử sẽ hỗ trợ tác
tử thể hiện tính tự trị. Khả năng thương lượng và cộng tác giữa các tác tử cũng
được Zeus tích hợp vào trong Toolkit thông qua một thư viện các giao thức,
cùng các chiến lược thương lượng và công tác. Do có mã nguồn mở, người dùng
có thể thêm vào thư viện này các chiến lược riêng phù hợp với ứng dụng của
mình.
Các Zeus tác tử truyền thông theo point-to-point socket TCP/IP với mỗi
thông báo là một chuỗi các ký tự mã ASCII. Ngôn ngữ truyền thông Zeus sử
dụng là FIPA ACL nhằm cung cấp khả năng “hiểu” lẫn nhau cho các tác tử,
Zeus cung cấp các công cụ cho việc định nghĩa các ontology – cơ sở khái niệm
chung cho một cộng đồng tác tử.
Các tác tử của Zeus được phân tán qua mạng và có thể thực hiện đồng
thời các tác vụ. Visualiser của Zeus cung cấp các công cụ để kiểm tra các quan
hệ giao tiếp giữa các tác tử, trạng thái tác vụ những tác tử đang thực hiện và
trạng thái bên trong của tác tử. Đồng thời, Zeus Statistic Tool cho phép người
dùng so sánh các thống kê khác nhau về cộng đồng tác tử một cách trực quan
dưới những dạng đồ thị khác nhau (chẳng hạn như tác tử đã gửi những loại
thông điệp nào, tỉ lệ là bao nhiêu).
Một hạn chế của Zeus là khả năng bảo mật hầu như không có vì tính di
động của Zeus mới chỉ được nghiên cứu ở bước đầu, chưa được cài đặt.
1.7.2. So sánh các hệ thống
Bảng sau trình bày sự so sánh giữa bốn môi trường tác tử di động Aglets,
Mole, Voyager và Zeus theo các tiêu chí đánh giá, như trong tài liệu [15] đã nêu:
Aglet Mole Voyager Zeus
Tính năng cơ bản của agent
Tính di
Di chuyển yếu Di chuyển yếu Di chuyển yếu Chưa hỗ trợ
động
Hỗ trợ đơn Hỗ trợ đơn Hỗ trợ đơn Hỗ trợ hoạch định kế
Tính tự trị
giản giản giản hoạch
Sanbox của
Sanbox của Sanbox của
Các cơ chế Java, mô hình
Java, có thể Java, Voyager Không có
bảo mật phân loại
bổ sung security
agent
Tính thích
Không hỗ trợ Không hỗ trợ Không hỗ trợ Không hỗ trợ
ứng
14
Khả năng giao tiếp - cộng tác
Thông điệp,
Hình thức Thông điệp,
Thông điệp RPCs, Session Thông điệp
giao tiếp RPCs, ORB
badge
Ngôn ngữ KQML, ACL,
KQML KQML, XML KQML,FIPA,ACL
giao tiếp XML
Giao thức
ATP trên nền
truyền TCP/IP TCP/IP TCP/IP
TCP/IP
thông
Mô hình
Mô hình
Không hỗ trợ Không hỗ trợ Space, Có hỗ trợ
cộng tác
Subspace
Khả năng
kết hợp với CORBA, Giao tiếp với các tác tử
Không hỗ trợ Không hỗ trợ
các đối RMI, DCOM platform của FIPA
tượng khác
Phương pháp luận và công cụ hỗ trợ
Mẫu thiết kế:
Phương Phân tích, thiết kế,
Master-Slave , Không hỗ trợ Không hỗ trợ
pháp luận triển khai, thi hành
Itinerary
Công cụ
Công cụ tác tử
xây dựng Không hỗ trợ Không hỗ trợ Không hỗ trợ
Generator
agent
Công cụ Voyager
Nameserver,
quản trị Tahiti server Mole view Management
Facilitator, Visualiser
agent Console
Mã nguồn mở,
Đang được
đang được Mã nguồn mở đang
Khả năng phát triển bởi
phát triển trên Mã nguồn mở phát triển phiên bản
mở rộng Recursion
các Source 1.3
Software
Forge
15
1.8. Kết luận
Chương này trình bày tổng quan về công nghệ tác tử di động. Giới thiệu các
vấn đề cơ bản của tác tử chẳng hạn như: Khái niệm tác tử, các đặc tính cơ bản
của tác tử, một số các lĩnh vực ứng dụng tiềm năng của công nghệ tác tử di
động. Đồng thời, trình bày ngắn gọn một số hệ thống tác tử di động tiêu biểu
như Aglet, Mole, Voyager, Zeus, so sánh được những tính năng cơ bản, khả
năng giao tiếp, phương pháp luận và công cụ hỗ trợ của các hệ thống.
16