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

ứng dụng thử nghiệm Mobile Agent vào xây dựng Workflow

154 545 3
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

Tiêu đề Ứng dụng thử nghiệm mobile agent vào xây dựng workflow
Tác giả Nguyễn Hoàng Linh Phương, Nguyễn Văn Thoại
Người hướng dẫn GVC Cao Đăng Tân
Trường học Công Nghệ Thông Tin
Thể loại Luận văn
Định dạng
Số trang 154
Dung lượng 1,8 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

tài liệu ứng dụng thử nghiệm Mobile Agent vào xây dựng Workflow

Trang 1

Cảm ơn tất cả các bạn học cùng khóa đã nhiệt tình chia sẻ kinh nghiệm và những kiến thức quý báu, giúp chúng tôi có thể làm tốt công việc của mình

Mặc dù đã cố gắng hoàn thành luận văn với tất cả sự nỗ lực của bản thân, nhưng luận văn chắc chắn không tránh khỏi những thiếu sót, kính mong quý Thầy

Cô tận tình chỉ bảo Một lần nữa xin gửi đến tất cả mọi người lời cảm ơn chân thành nhất

Trang 2

NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN

Trang 3

NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN

Trang 4

Mục lục

Mục lục hình 1 Mục lục bảng 3 Bảng chú giải _ 5 Tóm tắt luận văn _ 6 Chương 1: Giới thiệu đề tài 7 Chương 2: Khái niệm và nguyên lý hoạt động của Mobile Agent 9

1 Tổng quát về software agent _9

1.1 Nguồn gốc _ 9 1.2 Khái niệm 10 1.3 Các tính năng của agent: _ 11 1.4 Phân loại agent 12

2 Mobile Agent và nguyên lý hoạt động _14

2.1 Khái niệm Mobile Agent _ 14 2.2 Tính chất mobile agent: 15 2.3 Một số hệ thống MA: _ 15 2.4 Nguyên lý hoạt động 19 2.5 Agent Host : 25 2.6 Ích lợi của mobile agent _ 26 2.7 Môi trường ứng dụng mobile agent _ 27 2.8 Bảo mật 29

3 Tổng quát về Aglet 30

3.1 Khái niệm 30 3.2 Tính chất _ 31 3.3 Cách cài đặt và sử dụng Aglet trên môi trường Window 31 3.4 Aglet LifeCycle 38 3.5 Aglet API 40

Chương 3: Khái niệm và các mô hình WorkFlow _ 43

1 Khái niệm _44

2 Ích lợi áp dụng workflow: 44

3 Các dạng workflow 45

3.1 Các dạng đơn giản: _ 45 3.2 Các dạng nâng cao: _ 48

4 Kết hợp kĩ thuật MA và workflow _56

4.1 Ích lợi _ 56 4.2 Các hướng nghiên cứu tích hợp hệ thống mobile agent và workflow _ 56

Chương 4: Xây dựng ứng dụng 58

1 Giới thiệu ứng dụng _58

1.1 Cơ cấu tổ chức trong cơ quan: _ 58 1.2 Các cách giải quyết vấn đề: _ 60 1.3 Yêu cầu cơ bản của hệ thống: _ 62 1.4 Các đối tượng sử dụng hệ thống: _ 62 1.5 Cấu trúc hệ thống 62

Trang 5

1.6 Kiến trúc hệ thống: _ 64 1.7 Quy trình nghiệp vụ của từng đối tượng sử dụng: 65 1.8 Yêu cầu cụ thể các chức năng _ 66 1.9 Cách thức xử lý văn bản _ 66 1.10 Vấn đề merge dữ liệu: 68 1.11 Các xử lý tình huống _ 70

2 Phân tích, thiết kế ứng dụng 73

2.1 Phân tích module FormDesigner _ 73 2.2 Thiết kế module Form Designer _ 82 2.3 Phân tích module WorkFlow Designer 99 2.4 Thiết kế chương trình WorkFlow Designer _110 2.5 Phân tích chương trình Manager Agent 119 2.6 Thiết kế chương trình Agent Manager 123

Chương 5: Cài đặt và thử nghiệm _ 138

1 Cài đặt hệ thống _138

1.1 Cài đặt và sử dụng Form Designer _138 1.2 Cài đặt và sử dụng Workflow Designer _140 1.3 Cài đặt và sử dụng Agent Manager _141

2 Thử nghiệm hệ thống _145

2.1 Nhận xét chương trình Manager Agent 145 2.2 Nhận xét hệ thống 145

Chương 6: Đánh giá kết quả _ 146

1 Đánh giá luận văn 146

2 Đánh giá ứng dụng _146

2.1 Kết quả đạt được _146 2.2 Một vài hạn chế của hệ thống _147

3 Hướng phát triển 147

4 Kết luận 148

Trang 6

Mục lục hình

Hình 1: Agent – Phương pháp lập trình mới 10

Hình 2: Phân loại agent theo mục đích 13

Hình 3: Kĩ thuật Pull code – Bước 1 19

Hình 4: Kĩ thuật Pull code – Bước 2 20

Hình 5: Kĩ thuật Pull code – Bước 3 20

Hình 6: Kĩ thuật Push code – Bước 1 21

Hình 7: Kĩ thuật Push code – Bước 2 21

Hình 8: Kĩ thuật Autonomous code – Bước 1 21

Hình 9: Kĩ thuật Autonomous code – Bước 2 22

Hình 10: Vòng đời agent 23

Hình 11: Giải nén aglets-2.0.2.jar 33

Hình 12: Cài đặt platform 35

Hình 13: Cài đặt chính sách bảo mật 36

Hình 14: Đăng nhập server Tahiti 37

Hình 15: Màn hình Server Tahiti 38

Hình 16: Vòng đời Aglet 39

Hình 17: Aglet API 40

Hình 18: Mô hình Workflow Tuần tự 45

Hình 19: Mô hình Workflow song song 46

Hình 20: Mô hình workflow Đồng bộ hóa 46

Hình 21: Mô hình workflow Chọn lọai trừ 47

Hình 22: Mô hình workflow Trộn đơn giản 47

Hình 23: Mô hình workflow Chọn đa nhánh 48

Hình 24: Mô hình workflow Trộn đồng bộ hóa 49

Hình 25: Mô hình workflow Trộn đa nhánh 49

Hình 26: Mô hình workflow Discrimator 50

Hình 27: Mô hình workflow Các vòng lặp tùy ý 50

Hình 28: Mô hình workflow Cột mốc 55

Hình 29: Cơ cấu tổ chức trong cơ quan 58

Hình 30: Ví dụ 1 workflow đơn giản 60

Hình 31: Kiến trúc hệ thống 64

Hình 32: Merge đơn giản 68

Hình 33: Mô tả lỗi trong quá trình vận hành workflow 72

Hình 34: Use Case Form Designer 73

Hình 35: Luồng dữ liệu tạo mới form trong Form Designer 75

Hình 36: Luồng dữ liệu mở form trong Form Designer 75

Hình 37: Luồng dữ liệu lưu form trong Form Designer 76

Hình 38: Luồng dữ liệu thêm control trong Form Designer 77

Hình 39: Luồng dữ liệu chỉnh sửa control trong Form Designer 78

Hình 40: Luồng dữ liệu chỉnh sửa control trong Form Designer 79

Hình 41: Sơ đồ quan hệ giữa các lớp cơ bản trong chương trình 80

Hình 42: Thiết kế màn hình chính module Form Designer 84

Hình 43: Thiết kế màn hình About 90

Trang 7

Hình 44: Thiết kế màn hình Save 91

Hình 45: Thiết kế màn hình chọn Border 93

Hình 46: Thiết kế màn hình chọn Font 95

Hình 47: Thiết kế màn hình chọn hình ảnh 97

Hình 48: Thiết kế màn hình Preview 98

Hình 49: Use Case WorkFlow Designer 99

Hình 50: Luồng dữ liệu cho tạo mới workflow trong Workflow Designer 101

Hình 51: Luồng dữ liệu cho mở workflow trong Workflow Designer 101

Hình 52: Luồng dữ liệu cho lưu workflow trong Workflow Designer 102

Hình 53: : Luồng dữ liệu cho thêm 1 node vào workflow trong Workflow Designer 103

Hình 54: Luồng dữ liệu cho chỉnh sửa node trong Workflow Designer 104

Hình 55: Luồng dữ liệu cho xóa node trong Workflow Designer 105

Hình 56: Luồng dữ liệu cho thêm đường đi vào workflow trong Workflow Designer 106

Hình 57: : Luồng dữ liệu cho xóa đường đi trong Workflow Designer 107

Hình 58: Luồng dữ liệu cho chọn form cho node trong Workflow Designer 108

Hình 59: Thiết kế màn hình Workflow Designer 112

Hình 60: Thiết kế màn hình About cho module Workflow Designer 116

Hình 61: Thiết kế màn hình Save cho module Workflow Designer 117

Hình 62: Use Case Manager Agent 119

Hình 63: Luồng dữ liệu cho chọn workflow trong Agent Manager 120

Hình 64: Luồng dữ liệu cho thực thi workflow trong Agent Manager 121

Hình 65: Luồng dữ liệu cho đăng nhập trong Workflow Agent 121

Hình 66: Luồng dữ liệu cho chọn văn bản XML trong Workflow Agent 122

Hình 67: Luồng dữ liệu cho lưu tạm trong Workflow Agent 122

Hình 68: Luồng dữ liệu cho hoàn thành báo cáo trong Workflow Agent 123

Hình 69: Thiết kế màn hình Agent Manager 124

Hình 70: Thiết kế màn hình Running Window 128

Hình 71: Thiết kế màn hình Workflow Agent 130

Hình 72: Màn hình Form Designer 139

Hình 73: màn hình Workflow Designer 140

Hình 74: Màn hình server Tahiti 142

Hình 75: Màn hình tạo Aglet 142

Hình 76: Màn hình Agent Manger 143

Hình 77: Màn hình Workflow Agent 144

Trang 8

Mục lục bảng

Bảng 1: Danh sách nghiệp vụ cho chương trình thiết kế form 73

Bảng 2: Danh sách các lớp đối tượng màn hình 83

Bảng 3: Các đối tượng thể hiện màn hình design 84

Bảng 4: Bảng mô tả các đối tượng màn hình con 85

Bảng 5: Bảng mô tả chi tiết các đối tượng thể hiện ControlList 86

Bảng 6: Bảng mô tả các biến cố của Control List 87

Bảng 7: Bảng mô tả chi tiết các đối tượng thể hiện PropertyList 89

Bảng 8: Bảng mô tả các biến cố của màn hình design MH_MAIN 89

Bảng 18: Bảng mô tả màn hình xem trước 98 Bảng 19: Danh sách nghiệp vụ cho chương trình thiết kế workflow 99

Bảng 20: Danh sách các lớp đối tượng màn hình chính 111

Bảng 21: Bảng mô tả các đối tượng thể hiện màn hình Workflow Designer 112

Bảng 22: Bảng mô tả các biến cố của màn hình Workflow Designer 113

Bảng 23: Bảng mô tả các đối tượng thể hiện màn hình control 115

Bảng 24: Bảng mô tả các biến cố của màn hình Control 115

Bảng 25: Bảng mô tả chi tiết các đối tượng thể hiện 116

Bảng 28: Bảng mô tả các biến cố của màn hình Save 118

Bảng 29: Danh sách các nghịệp vụ cho chương trình ManagerAgent 119

Bảng 30: Danh sách các đối tượng thể hiện trong màn hình Agent Manager 124

Bảng 31: Danh sách các biến cố trong màn hình Agent Manager 126

Bảng 32: Danh sách các hàm xử lý trong màn hình Agent Manager 127

Bảng 33: Danh sách các đối tượng thể hiện trong màn hình 128

Bảng 34: Danh sách các biến cố trong màn hình Running Workflow 129

Bảng 35: Danh sách các hàm xử lý trong màn hình Running Workflow 129

Bảng 36: Danh sách các đối tượng thể hiện trong màn hình Workflow Agent 130

Bảng 37: Danh sách các biến cố trong màn hình Workflow Agent 131

Bảng 38: Danh sách các hàm xử lý trong màn hình Workflow Agent 132

Bảng 39: Danh sách các biến thành phần của Lớp ManagerAgent 134

Bảng 40: Danh sách hàm thành phần Lớp ManagerAgent 134

Bảng 41: Danh sách các biến thành phần của lớp Workflowagent 135

Bảng 42: Danh sách hàm thành phần của lớp Workflowagent 135

Bảng 43: Danh sách các biến thành phần của lớp Nagent 136

Trang 9

Bảng 44: Danh sách hàm thành phần của lớp Nagent 137

Trang 10

Bảng chú giải

Client-Server Mô hình mạng, trong đó có 1 máy trung tâm, chịu trách nhiệm xử lý các

yêu cầu do các máy con đưa tới Peer-to-peer Mạng ngang hàng, các máy tính có chức năng như nhau trong mạng ARPANET Mạng máy tính đầu tiên, thuộc bộ quốc phòng Mĩ

UML Một ngôn ngữ phân tích thiết kế

ASDK bộ thư viện cho Aglet

bandwidth Băng thông đường truyền mạng

Editor trình soạn thảo

sandbox mô hình bảo mật của Java

TCP/IP Giao thức Internet

Trang 11

Tóm tắt luận văn

Luận văn gồm các chương sau đây:

Chương 1: Giới thiệu đề tài

Chương 2: Khái niệm và nguyên lý hoạt động của Mobile Agent – Giới thiệu về nguồn gốc, khái niệm, phương thức hoạt động, các ích lợi khi sử dụng và các môi trường áp dụng mobile agent Ngoài ra, phần này còn giới thiệu về Aglet – mobile agent trong môi trường Java do IBM cung cấp

Chương 3: Khái niệm và các mô hình WorkFlow – Giới thiệu các cách hiểu về workflow và các mô hình thể hiện của nó Qua đó, có thể thấy được những ích lợi khi kết hợp workflow và mobile agent

Chương 4: Xây dựng ứng dụng – Phân tích các trường hợp thực tế xảy ra, các mô hình giải quyết cùng các chọn lựa tối ưu cho hệ thống được xây dựng, từ đó đưa ra bản phân tích và thiết kế hệ thống Workag

Chương 5: Cài đặt và thử nghiệm – Đưa ra hướng dẫn cài đặt và sử dụng 3 module trong hệ thống đồng thời đưa ra các nhận xét, đánh giá về hệ thống

Chương 6: Đánh giá kết quả - Tổng kết những kết quả đạt được và chưa đạt được của luận văn cũng như của ứng dụng Nêu ra những hạn chế của chương trình cùng hướng phát triển cho hệ thống về sau

Trang 12

Chương 1: Giới thiệu đề tài

Đặt vấn đề:

Từ khi Bộ Quốc Phòng Mĩ tạo ra mạng máy tính đầu tiên-mạng ARPANET năm 1967 cho đến nay, với sự phát triển của mạng Internet, mạng máy tính đã, đang và sẽ phát triển vô cùng mạnh mẽ Theo đó, cùng với sự phát triển của các công ty theo xu hướng hiện đại hóa, vi tính hóa dẫn đến việc nhu cầu thiết kế các ứng dụng phân tán ngày càng cao

Hiện nay, các giải pháp mạng như client-server, peer-to-peer đã đáp ứng hầu hết những nhu cầu của các công ty Tuy nhiên mô hình client-server hoặc peer-to-peer lại đòi hỏi sự kết hợp chặt chẽ, tồn tại song song đồng thời giữa các máy trong cùng 1 hệ thống với nhau Trong 1 vài lãnh vực, tính đồng bộ này không phải lúc nào cũng được duy trì và người ta cần đến 1 mô hình mới uyển chuyển hơn, linh hoạt hơn, có thể hoạt động ngay cả trong tình trạng mất kết nối tạm thời Vì vậy, mobile agent ra đời

Lại xét đến một vấn đề khác trong bối cảnh kinh tế, công nghệ phát triển nhanh chóng như hiện nay, đó là việc các phần mềm quản lý truyền thống không thể đáp ứng kịp thời nhu cầu thay đổi cơ cấu làm việc, thay đổi quy trình quản lý để phù hợp với môi trường làm việc cạnh tranh, năng động

Để đáp ứng nhu cầu thị trường biến động không ngừng, các bộ máy quản

lý phải liên tục thay đổi phương pháp, quy trình làm việc sao cho chi phí tiết kiệm được là tối đa Với tốc độ thay đổi đó, việc thực hiện hay phát triển 1 phần mềm mới phù hợp với quy trình mới là không thể do việc xây dựng phần mềm quản lý tốn chi phí cao và thời gian dài, đặc biệt là những phần mềm chuyên dụng cho các công ty lớn với nhiều phòng ban, nhiều quy trình phức tạp Có nhiều khi phần mềm viết chưa xong mà quy trình làm việc lại thay đổi rồi Với cách quản lý công việc bằng workflow, mọi việc trở nên dễ dàng và linh hoạt hơn nhiều Mỗi khi quy trình làm việc thay đổi, chỉ cần thay đổi, thiết kế lại workflow, không cần phải lập trình lại

Trang 13

Từ trước đến giờ, workflow được xây dựng theo mô hình Client-Server, quản lý tập trung chuỗi công việc, mọi biến cố xảy ra đều do server xử lý Ưu điểm của mô hình này là tính đồng bộ và thống nhất cao Tuy nhiên, nó cũng có điểm yếu

vì mô hình này bắt buộc mọi máy tính phải liên kết với nhau, mọi máy phụ thuộc vào server Khi server quản lý workflow có sự cố thì toàn bộ hệ thống ngưng hoạt động Trong thực tế, có những hệ thống trong đó các thành viên có tính độc lập khá cao, không bắt buộc sự kết nối trong thời gian thực, chúng độc lập hoặc cách xa nhau, nhưng nối kết với nhau thông qua mạng máy tính Từ đó xuất hiện nhu cầu thoả mãn tính bất đồng bộ nhưng vẫn duy trì sự liên hệ giữa các bên dưới hình thức workflow Và do đó, đề tài: “Ứng dụng thử nghiệm Mobile Agent trong việc xây dựng Workflow” được thực hiện

Mục đích luận văn

Luận văn đi sâu tìm hiểu về kĩ thuật mobile agent và các dạng thức, mô hình workflow để từ đó, xây dựng một ứng dụng thử nghiệm xây dựng và thực thi workflow bằng kĩ thuật mobile agent Ứng dụng được chọn ở đây là xây dựng hệ thống thiết kế và điều kiển workflow nhằm mục đích trao đổi, thực thi các văn bản, tài liệu trong tổ chức, đoàn thể hay doanh nghiệp Hệ thống này sẽ thể hiện rõ nét những ưu điểm của workflow và mobile agent khi áp dụng vào việc giải quyết những yêu cầu đặt ra Hệ thống được xây dựng dựa trên hệ nền (platform) Aglet của IBM với ngôn ngữ Java, một ngôn ngữ phổ biến với tính năng nổi trội là chạy được trên nhiều môi trường khác nhau, rất thích hợp với yêu cầu hoạt động tốt trong môi trường bất đồng bộ của luận văn

Trang 14

Chương 2: Khái niệm và nguyên lý hoạt động của Mobile Agent

Mobile agent là 1 loại software agent Để hiểu rõ về nền tảng của mobile agent, ta tìm hiểu khái quát về software agent

1 Tổng quát về software agent

1.1 Nguồn gốc

Tin học ngày càng phát triển dẫn đến việc hình thành nhu cầu tạo ra những tiểu chương trình nhỏ gọn, thông minh, có khả năng hoạt động 1 mình và kết hợp với những tiểu chương trình khác

Năm 1994, khái niệm software agent được đưa ra bởi Mark Sidell và Chuck Knuff và đến năm 1995 thì phiên bản đầu tiên của agent xuất hiện

Năm 1975 kĩ thuật lập trình phổ biến là lập trình có cấu trúc, đến năm 1982,

kĩ thuật lập trình phổ biến là phương pháp lập trình hướng đối tượng và đến khi gent ra đời đã tạo ra một phương pháp lập trình mới

Trang 15

1.2 Khái niệm

Agent là sự kết hợp của nhiều kĩ thuật tin học hiện đại:

Hình 1: Agent – Phương pháp lập trình mới

Không có định nghĩa chính xác cho software agent, tuy nhiên, ta có thể tham khảo định nghĩa sau:

Một agent là một thành phần phần mềm và/hoặc phần cứng mà có khả năng hoat động chính xác để hoàn thành nhiệm vụ thay mặt chủ nhân của agent (Nwana,1996)

Trên mạng Internet, 1 agent ( có khi được gọi là 1 intelligent agent ) là 1 chương trình thu thập thông tin hoặc thực thi 1 số dịch vụ khác mà không cần người điều khiển và hoạt động theo thời gian đã được lên lịch sẵn

1 agent đôi khi được gọi là 1 bot ( viết tắt của robot )

Một ví dụ về agent là chương trình Infogate Chương trình này có chức năng thu thập các tin tức mới về lãnh vực người dùng quan tâm và tự động gửi thông báo đến người dùng khi có tin mới

Máy học

Agent

Trang 16

1.3 Các tính năng của agent:

1.3.1 Tính tự trị (autonomous):

Agent có khả năng tự kiểm soát những hoạt động của chính nó và làm việc, thi hành các tác vụ độc lập với người dùng cũng như các tác nhân khác Nói một cách đơn giản, những agent là những chương trình có thể tự hoạt động

mà không cần có người dùng thao tác Có nhiều hướng đánh giá về sự tự trị của agent 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 agent Khả năng tự trị của agent chủ yếu được quyết định bởi tri thức trang bị cho agent

1.3.2 Tính thích nghi và tự học hỏi (adaptive/learning)

Agent biết cách học và tự thay đổi các hành vi của nó theo các kinh nghiệm thu được

1.3.3 Bền vững trong quá trình hoạt động (persistent)

1.3.4 Hoạt động hướng đích (goal driven)

Mỗi agent được tạo ra đều có 1 mục đích và nó hành động theo mục đích này cho đến khi mục đích được thỏa mãn

1.3.5 Giao tiếp và cộng tác ( communicative/collaborative):

Agent có khả năng liên lạc, giao tiếp phối hợp hoạt động với các agent của cùng môi trườg khác hay các loại đối tượng khác trong các loại môi trường khác

1.3.6 Linh hoạt (flexible)

Agent có thể hoạt động trong nhiều môi trường, hệ điều hành khác nhau

Trang 17

1.3.7 Tính di động (mobility):

Là khả năng di chuyển từ môi trường thi hành này sang môi trường khác của một agent Khả năng di động của một agent được phân thành hai loại Di động mạnh (strong mobility) là khả năng mà hệ thống có thể di chuyển cả mã chương trình và trạng thái thi hành của agent đến một môi trường khác Di động yếu (weak mobility) là khả năng của hệ thống chỉ có thể di chuyển mã chương trình giữa các môi trường thi hành với nhau, mã nguồn có thể mang kèm theo một số dữ liệu khởi tạo nhưng trạng thái thi hành thì không thể di chuyển

Các agent thường có kích thước nhỏ, bản thân agent không phải là một ứng dụng hoàn chỉnh, khi hoạt động trên 1 máy, agent cần phải kết hợp với 1 chương trình chạy nền sẵn trên máy mà ta gọi là AgentHost mới có thể hoạt động được Ngoài ra có 1 số agent sẽ kết hợp với 1 số chương trình khác để hoạt động

1.4 Phân loại agent

1.4.1 Phân loại theo tính năng

1.4.1.1 Agent tĩnh (Stationary agent) :

9 Đặc tính: Chỉ làm việc trên 1 hệ thống, nơi mà agent bắt đầu vòng đời

9 Nếu stationary agent cần thông tin ở 1 hệ thống khác hoặc muốn tương tác với agent nằm ở hệ thống khác thì chúng phải sử dụng 1 trong các cơ chế truyền thông khác như RPC, RMI, DCOM…

1.4.1.2 Mobile Agent:

9 Không lệ thuộc vào hệ thống nơi chúng bắt đầu làm việc

9 Có khả năng di chuyển từ nơi này sang nơi khác trong hệ thống mạng máy tính tại những thời điểm và vị trí do agent lựa chọn

Trang 18

9 Khi mobile agent di chuyển, nó có thể mang theo mình trạng thái

và mã chương trình

1.4.2 Phân loại theo mục đích:

Hình 2: Phân loại agent theo mục đích

1.4.2.1 Collaborative agents

Collaborative agent là 1 chương trình giúp người dùng giải quyết vấn

đề, đặc biệt trong những trường hợp phức tạp hoặc không quen thuộc, bằng cách sửa lỗi, đề nghị nên làm gì tiếp theo và chú ý đến những vấn đề ở cấp thấp Một collaborative agent có thể được thêm vào 1 giao diện người dùng có sẵn, ví dụ như các chương trình giả lập hoặc tích hợp vào thiết kế của 1 dụng

cụ phần cứng mới, ví dụ như đồ gia dụng

1.4.2.2 Interface agents

Collaborative Agents

Interface Agents

Collaborative Learning Agents

Adaptive

autonomous

Intelligent Agents

Trang 19

Interface agent là 1 chương trình có thể ảnh hưởng đến giao diện thao tác trược tiếp, nhưng không có sự hướng dẫn trực tiếp từ người dùng Interface agent đọc các dữ liệu người dùng nhập vào giao diện và nó có thể tạo ra sự thay đổi tới đối tượng người dùng thấy trên màn hình, mặc dù có thể là sự thay đổi đó không phải diễn ra ngay ứng với hành động của người dùng Interface agent có thể quan sát nhiều tham số nhập vào của người dùng trong 1 khỏang thời gian nào đó trước khi quyết định thực hiện 1 hành động

1.4.2.3 Smart/Intelligent agents

Có đầy đủ cả 3 mục đích: giao tác, tự động và dễ thích nghi và đây chính là tên gọi khác của software agent

2 Mobile Agent và nguyên lý hoạt động

Những hệ thống phân tán truyền thống được xây dựng trên những chương trình tĩnh, chuyển dữ liệu đi về trên mạng Còn mobile agent (gọi tắt là MA) thì ngược lại

2.1 Khái niệm Mobile Agent

Định nghĩa: Mobile agent là những thành phần phần mềm, bao gồm mã chương trình, dữ liệu và trạng thái hoạt động và có thể tự mình di chuyển từ nơi này sang nơi khác

Mobile agent chính là 1 dạng của mobile code (Mobile code là những chương trình chuyển mã đến client và thực thi ở đó

Ví dụ cho mobile code: chương trình appletcó thể gây nguy hiểm cho máy tính do trong applet có thể chứa những đoạn code ko đáng tin cậy, gây hại.)

Mobile agent ngoài những tính năng cơ bản của mobile code còn có thể : mang theo mình dữ liệu và trạng thái thực thi, di trú trong mạng dưới sự kiểm soát của chính nó Vì vậy, có thể nói mobile agent an toàn hơn mobile code nhiều

Trang 20

2.2 Tính chất mobile agent:

9 Có khả năng di trú từ nơi này sang nơi khác

9 Liên lạc được với nhau, nhân bản, nhập lại, tổng hợp tính toán

9 1 số agent có khả năng cung cấp dịch vụ hoặc interface cho các ứng dụng kế thừa

Voyager sử dụng ngôn ngữ lập trình Java với cú pháp chuẩn để tạo dựng các đối tượng ở xa một cách rất 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

Trang 21

trường Voyager Voyager hỗ trợ mạnh 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 Trạng thái hoạt động của agent cũng sẽ được bảo toàn và tiếp tục thực thi tại nơi agent đến

Một trong những đặc điểm nổi trội khác của Voyager là tính phổ quát 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 và 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 Voyager có thể được xem là một cửa ngõ, một cầu nối làm cho các chương trình theo chuẩn khác trở nên liên thông với nhau 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, nhờ vậy việc liên lạc sẽ trở thành một–nhiều một cách tự động

Phiên bản 4.5 của Voyager đã được bổ sung thêm các tính năng rất quan trọng hỗ trợ cho các chuẩn dịch vụ Web SOAP và WSDL cũng đã được phát triển trong phiên bản này 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 Voyager có thể truy cập nhau thông qua các dịch vụ Web

Thế mạnh thật sự của Voyager nằm ở sự đơn giản và dễ dùng Sự “trong suốt” hay cách mà Voyager che dấu các kỹ thuật lập trình phân tán phức tạp đã làm cho việc xây dựng các ứng dụng mobile agent trở nên dễ dàng hơn rất nhiều Việc tích hợp các công nghệ mới và các chuẩn mới vào cùng một sản phẩm tạo cho Voyager sự hấp dẫn rất riêng biệt

2.3.3 Mole

Mole là hệ thống Mobile Agent được xây dựng với ngôn ngữ Java tại đại học Stuttgart (CHLB Đức) Phiên bản đầu tiên (Release 1.0) đã hoàn thành vào năm 1995, năm 1997 phiên bản Release 2.0 được hoàn thành, bản Release 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ôi trường ổn định để xây dựng ứng dụng theo mô hình agent trên các hệ phân tán Được xây

Trang 22

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ợ JDK1.1.x (Jdk1.1.7 và Jdk1.1.8), sử dụng giao thức TCP/IP trong quá trình giao tiếp Mole hỗ trợ di chuyển yếu- weak migration

Để thực hiện giao tiếp giữa các agent 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 agent được Mole hỗ trợ là KQML Việc trao đổi dữ liệu giữa các agent được thực hiện theo nghi thức TCP/IP Mole cho phép

đa tiểu trình/agent và quản lí tài nguyên và lập lịch các tiểu trình trong hệ thống thông qua bộ lập lịch trung tâm MCP Khả năng bảo mật của Mole được đánh giá khá tốt trong các hệ thống agent Mole tuân theo mô hình bảo mật sandbox của java Agent trong hệ thông Mole được chia làm hai loại: user agent và system agent User agent là những agent 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 Ngược lại, system agent (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, ứng dụng thuộc lĩnh vực hệ thống thông tin điện tử Một số ứng dụng dược phát triển trên môi trường Mole: AIDA - Infrastructure for Mobile Agents, ASAP, ATOMAS, FESTIVAL (Mole office, Mole shopping), HAWK

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 agent để Mole trở thành hệ thống agent 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 agent

2.3.4 ZEUS

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 agents 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 agent, Zeus đặc biệt chú trọng việc hỗ trợ một phương

Trang 23

pháp luận và một bộ công cụ mạnh để phát triển ứng dụng đa agent 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ế, triển khai

hệ thống và còn kèm theo các công cụ cho phép người phát triển có thể bắt lỗi

hệ thống cũng như phân tích sự thực hiện của mình Hai giai đoạn phân tích và thiết kế được miêu tả chi tiết trong 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ì Zeus toolkit qua các công cụ Zeus Agent Generator và Zeus Agent Visualiser Zeus cung cấp nhiều Editor để định nghĩa agent và các thuộc tính của agent Code Generator sẽ tự động phát sinh mã nguồn cho agent từ những thuộc tính đã đặc tả

Hai đặc tính quan trọng của các Zeus agents là tính tự trị và cộng tác Bộ phận Planner trong mỗi agent sẽ hỗ trợ agent thể hiện tính tự trị Khả năng thương lượng và cộng tác giữa các agent 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 agent truyền thông theo point-to-point socket TCP/IP với mỗi message là một chuỗi các kí tự mã ASCII Ngôn ngữ truỵền thông Zeus sử dụng

là FIPA ACL (http://www.fipa.org) Nhằm cung cấp khả năng “hiểu” lẫn nhau cho các agent, 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 cộng đồng agent

Các agent của Zeus được phân tán qua mạng và có thể thực hiện các tác

vụ đồng thời Chính vì thế, việc quản lí các agent cũng là một vấn đề mà môi trường đặt ra 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 agent, trạng thái tác vụ những agent đang thực hiện và trạng thái bên trong của agent Đồ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 agent, chẳng hạn những loại thông điệp nào agent đã gửi và tỉ lệ là bao nhiêu, một cách trực quan dưới những dạng

đồ thị khác nhau Cũng nhằm quản lí agent, Zeus cung cấp những agent tiện ích

Trang 24

như Agent Name Server hoạt động như một Yellow Page, Facilitator như một White Page, Visualiser và Database Proxy

Một hạn chế của Zeus là tuy được liệt kê vào một trong những môi trường mobile agent nhưng hiện hướng nghiên cứu về tính di động của Zeus chỉ mới ở bước đầu, chưa được cài đặt Do đó mà tính bảo mật của Zeus cho các agent hầu như không có Điều này có thể sẽ được khắc phục trong các phiên bản sau

Zeus đã và đang được triển khai trong một số ứng dụng như Agent Based Work-flow Management, PTA: Personal Travel Assistance, Personal Computer Manufacture, Agent-based Electronic Commerce, Network Management (VPNP), Home Shopping

2.4 Nguyên lý hoạt động

2.4.1 So sánh với các kĩ thuật khác

Để hiểu rõ về nguyên lý hoạt động trong môi trường mạng của Mobile Agent, ta sẽ so sánh nó với nguyên lý hoạt động của các kĩ thuật khác:

Có 3 cách thực thi code trong môi trường mạng :

2.4.1.1 Kĩ thuật pull code

Áp dụng trong mô hình client-server, bắt đầu khi client gửi yêu cầu đến server, server sẽ gửi code về client và code thực thi, cho ra kết quả ở client Thao tác gồm 3 bước :

Bước 1 : máy client gửi yêu cầu đến server

Hình 3: Kĩ thuật Pull code – Bước 1

server

code

client

request code

Trang 25

Bước 2 : server gửi code cho client

Hình 4: Kĩ thuật Pull code – Bước 2

Bước 3 : code được thực thi ở client

Hình 5: Kĩ thuật Pull code – Bước 3

Ví dụ : Các Java applet được thực thi theo phương pháp này Chú ý : trong mô hình này, 1 bản sao của code sẽ được server gửi tới client và thực thi ở client Server vẫn lưu trữ code

2.4.1.2 Kĩ thuật push code

Khi có yêu cầu từ người dùng, 1 máy (1 node) trong mạng sẽ gửi code tới 1 máy (1 node) khác trong cùng môi trường mạng và thực thi ở máy đó Thao tác này gồm 2 bước :

Bước 1 : tự bản thân máy A gửi code đến máy B mà không có yêu cầu

từ phía B Trong mô hình này, A chỉ là 1 máy có nối mạng với B chứ không cần điều kiện A phải là server

Trang 26

Hình 6: Kĩ thuật Push code – Bước 1

Bước 2 : code được thực thi ở máy B

Hình 7: Kĩ thuật Push code – Bước 2

Chú ý : ở A vẫn lưu trữ 1 bản sao của code

Như vậy, trong 2 mô hình trên, nơi gửi code đi vẫn giữ lại 1 bản sao của code

2.4.1.3 Kĩ thuật autonomous code

Code tự quyết định sẽ đi và thực thi ở đâu Bước 1 : code sau khi thực thi ở máy A sẽ tự đóng gói và di trú tới máy B

Hình 8: Kĩ thuật Autonomous code – Bước 1

code

remote execcode

Trang 27

Bước 2 : code thực thi ở máy B, lúc này code hoàn toàn không còn ở

A nữa

Hình 9: Kĩ thuật Autonomous code – Bước 2

Ví dụ : mobile agent hoạt động theo phương pháp này

Tự quyết định đóng gói, không để lại bản sao và di trú đến đâu là điểm khác biệt của mobile agent với 2 kĩ thuật trên

Trang 28

2.4.2 Đời sống 1 agent :

Hình 10: Vòng đời agent

9 Creation : Khởi tạo agent, phát sinh ID cho agent, tuỳ biến cấu hình cho agent

9 Serialize: Lưu lại trạng thái agent trước khi di trú đến AgentOS khác

9 Migrate: Di trú agent kèm tình trạng của nó đến 1 nơi khác

9 Deserialize: Tái tạo lại trạng thái trước khi di trú của agent

9 Execute: Truy cập vào các dịch vụ của host, liên lạc với các agent khác, hoàn thành nhiệm vụ của agent

9 Migrate Request: Yêu cầu được di trú đến 1 host khác

Creation

Migrate

Host

Yêu cầu di trú từ nguồn

Serialize Migrate Deserialize Execute Migrate Request Serialize

Destroy or sleep

Trang 29

9 Destroy or sleep: Khi nhiệm vụ đã hoàn thành hoặc gặp 1 trở ngại gì đó không thể tiếp tục hoạt động thì agent sẽ tự hủy hoặc tự đưa nó vào trạng thái ngủ đông (sleep)

Mọi agent đều thực hiện các công việc của nó tuần tự theo logic : đầu tiên, agent được tạo ra, di trú từ host này sang host khác và cuối cùng bị huỷ sau khi hoàn thành nhiệm vụ

* Chi tiết vòng đời agent

Vòng đời agent bắt đầu khi agent được tạo ra trên 1 host Khi đó, agent sẽ được cấp 1 định danh duy nhất Tình trạng ban đầu cũng có thể được khởi tạo theo

Khi đã sẵn sàng hoặc nhận được lệnh để di trú đến 1 host khác nằm trong đường đi của agent, agent sẽ lưu lại trạng thái hiện hành của mình và tiến hành quá trình di trú Nếu quá trình di trú thất bại, agent sẽ tự ngừng hoạt động (deactivate) để rồi nó sẽ tự kích hoạt lại chính mình sau một khỏang thời gian định trước hay được kích hoạt và sẽ tiến hành lại quá trình di trú đến host khác

Khi đã di trú đến host mới thành công, agent sẽ phục hồi lại trạng thái Lúc này, agent bắt đầu thực thi nhiệm vụ của nó, sử dụng các dịch vụ trên host, liên lạc với agent khác…

Sau khi agent đã hoàn tất nhiệm vụ, nó có thể bị huỷ hoặc chuyển sang trạng thái ngủ đông cho đến khi có yêu cầu từ bộ đếm trong chính bản thân agent Khi đó, agent sẽ lưu lại trạng thái của nó và di trú đến 1 host khác.Vòng đời agent lại lặp lại theo trình tự như trên cho đến khi nó hoàn thành nhiệm vụ hoặc hết thời gian hoạt động thì agent sẽ bị hủy

2.4.3 Các điều kiện agent phải thỏa mãn

9 Có 1 mã xác nhận duy nhất

9 Xác định được những agent khác đang thực thi trong cùng host

9 Có khả năng nhận và gửi thông điệp cho những agent khác

Trang 30

2.5 Agent Host :

2.5.1 Khái niệm

Agent không thể tồn tại một mình mà nó phải dựa trên một phần mềm khác được gọi là host hay AgentOS để sống và hoạt động Chính host sẽ tạo ra agent từ đọan code đã có, thực thi agent, chuyển nó đến host khác hay hủy đi agent Khi host bị hủy thì agent đang hoạt động dựa trên host đó cũng bị hủy theo

2.5.2 Các yêu cầu cho AgentOS :

9 Độc lập flatform : AgentOS phải có khả năng hỗ trợ agent trong môi trường mạng không đồng nhất

9 Multithreaded: AgentOS phải có khả năng cho phép nhiều agent hoạt động đồng thời ( có thể có độ ưu tiên khác nhau)

9 Di trú được agent và trạng thái của nó : Agent có thể yêu cầu host di trú agent tới host khác và thực thi

9 Có cơ chế cho các agent trong host giao tiếp được: AgentOS phải cung cấp khả năng liên lạc thông qua sự kiện giữa các agent trong cùng 1 node cũng như giữa các agent ở các node khác nhau

9 Tái sử dụng agent: AgentOS phải cung cấp cho người dùng khả năng phân loại, lưu trữ agent để có thể lấy ra sử dụng lại về sau

9 Bảo mật: AgentOS phải có cơ chế chống lại những agent được tạo ra với ý đồ xấu nhằm ngăn chặn việc bị đánh cắp thông tin hoặc bị tấn công từ chối dịch vụ…

9 Có thể mở rộng được

Trang 31

2.6 Ích lợi của mobile agent

2.6.1 Giảm bandwidth

Kĩ thuật mobile agent cho phép người dùng đóng gói thông tin, gửi nó đến máy đích và thực hiện xử lý dữ liệu, trao đổi cục bộ tại đó Như vậy sẽ góp phần làm giảm dữ liệu thô trên mạng, góp phần làm giảm tải mạng đáng kể Phương châm thực hiện của kĩ thuật mobile agent là : mang xử lý đến nơi chứa

dữ liệu hơn là mang dữ liệu về nơi xử lý

2.6.2 Giảm độ trễ

Việc điều khiển các hệ thống quy mô lớn sẽ phải chấp nhận một sự trễ mạng nhất định Nhưng điều đó không được phép xảy ra trong các hệ thống thời gian thực như điều khiển đèn giao thông, dây chuyền sản xuất Khi đó, giải pháp mobile agent rất hữu ích trong việc khắc phục độ trễ nhờ vào việc agent có thể được gửi đi từ trung tâm điều khiển và hành động cục bộ, tự trị, trực tiếp thi hành các chỉ dẫn của người điều khiển

2.6.3 Có thể thực thi khi ngắt kết nối mạng

Khi gặp sự cố mạng và không thể di chuyển tiếp, agent sẽ tự đưa mình vào trạng thái chờ cho đến khi mạng được thiết lập lại thì agent sẽ khởi động lại

và di chuyển tiếp để hoàn thành nhiệm vụ được giao

2.6.4 Thực thi bất đồng bộ và tự động

Thông thường, các thiết bị di động thường phụ thuộc vào các kết nối mạng đắt tiền nhưng rất yếu ớt Vì thế, những tác vụ cần có kết nối liên tục giữa thiết bị di động và mạng có thể sẽ không có tính kinh tế hoặc không khả thi về mặt kĩ thuật Giải pháp mobile agent giải quyết vấn đề này bằng cách nhúng những tác vụ cần thực hiện vào mobile agent rồi gửi lên mạng Sau khi được gửi

đi, agent trở nên độc lập thi hành không đồng bộ và có khả năng tự trị Các thiết

bị di động sau đó có thể kết nối lại để đón agent trở về

Trang 32

2.6.5 Nhanh và giảm thiểu lỗi

Với khả năng phản ứng năng động với các sự kiện và những thay đổi bất lợi, mobile agent giúp việc xây dựng hệ thống mạnh mẽ và chịu lỗi cao được dễ dàng hơn

2.6.6 Khắc phục tình trạng không đồng nhất

Việc xử lý tính toán trên mạng cơ bản là không đồng nhất vì sự đa dạng

về phần cứng và phần mềm được sử dụng Do mobile agent độc lập với máy tính ( độc lập với phần cứng và hệ điều hành ) và tầng vận chuyển, nó chỉ phụ thuộc vào môi trường thi hành nên mobile agent cung cấp một điều kiện tối ưu cho việc liên kết các hệ thống không liên quan lại với nhau

2.6.7 Đóng gói các giao thức

Khi dữ liệu được trao đổi trong hệ thống phân tán, việc truyền và nhận dữ liệu phải được mã hóa bằng các giao thức cần thiết Các giao thức này được sở hữa bởi mỗi máy trong hệ thống Tuy nhiên, 1 khi các giao thức phải tiến hóa để phù hợp với những yêu cầu mới về sự bảo mật hoặc tính hiệu quả, chúng 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 mobile agent, các agent 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

2.7 Môi trường ứng dụng mobile agent

Mobile agent hích hợp với những loại ứng dụng sau:

2.7.1 Thu thập dữ liệu phân tán:

Trong trường hợp có nhu cầu truy vấn phức tạp, chuyên biệt và liên quan đến nhiều nguồn dữ liệu không đồng nhất, việc cử các mobile agent đến các nguồn tin và khai thác tại chỗ, rồi quay về với những thông tin cần thiết sẽ làm giảm tải mạng và giải quyết tốt bài tóan tương thích

Trang 33

2.7.2 Theo dõi và thông báo tin cập nhật

Ứng dụng cổ điển này làm nổi bật bản chất không đồng bộ của các mobile agent Các agent có thể được gởi đi, đến nơi có nguồn tin và hoạt động theo dõi nguồn tin ngay cả khi người dùng ngắt kết nối Sau đó, khi nguồn tin có

sự thay đổi , agent sẽ quay về báo cho chủ nhân Các agent có thể được gửi đi để chờ một dạng thông tin nào đó xuất hiện, rồi sau đó báo cho người dùng biết hoặc tự nó có những hành động thích hợp đối với thông tin đó

2.7.3 Giám sát và phân tán thông tin

Các mobile agent là minh họa cho mô hình Internet Push, các agent có thể phổ biến tin tức và cập nhật phần mềm cho các nhà sản xuất Các agent mang các software component và các thủ tục cần thiết đến các máy cá nhân của khách hàng và tự cập nhật phần mềm trên máy đó Mô hình này giúp nhà sản xuất chủ động hơn trong việc phục vụ khách hàng để đảm bảo dịch vụ của mình Mặt khác, các ứng dụng lọai này cũng tỏ ra hiệu quả đối với các mạng cục bộ hay các chương trình quản lý quy trình tự động, sản xuất… để giúp người quản trị giám sát các hệ thống con

2.7.4 Xử lí song song

Do các agent có thể tạo ra các bản sao của nó trên mạng, tạo ra 1 ứng dụng đầy tiềm năng của agent là quản trị các tác vụ song song.Một ứng dụng đòi hỏi nhiều tài nguyên bộ xử lý có thể được phân bố cho các agent mang đi thực hiện trên nhiều máy tính khác nhau để tận dụng các tài nguyên trống và cân bằng tải

2.7.5 Thương mại điện tử

Các ứng dụng thương mại điện tử cho phép người dùng thực hiện các giao dịch trong kinh doanh trên mạng Một giao dịch có thể bao gồm sự thương lượng với các thực thể ở xa và có thể đòi hỏi truy cập nguồn thông tin liên tục thay đổi Từ thực tế đó nảy sinh nhu cầu thay đổi hành vi của các thực thể để đạt

Trang 34

được một nghi thức chung trong việc thương lượng Hơn nữa, việc di chuyển các thành phần của ứng dụng tiến gần đến nguồn thông tin thích hợp cho giao dịch cũng được quan tâm Vì thế công nghệ mobile agents là một giải pháp rất hấp dẫn cho lĩnh vực này

2.7.6 Quản trị hệ thống mạng

Đối với những hệ thống mạng lớn, việc chẩn đoán lỗi, duy trì sự ổn định của hệ thống là các công việc rất khó khăn Việc ứng dụng mobile agent vào việc quản trị mạng sẽ giúp cho các công việc chẩn đoán lỗi và duy trì từ xa sự ổn định của hệ thống được dễ dàng hơn

2.7.7 Hỗ trợ các thiết bị di động

Do đặc điểm tài nguyên hạn chế và không kết nối thường xuyên, việc xây dựng các ứng dụng dựa trên mobile agent với khả năng di chuyển đến các máy tính có cấu hình mạnh hơn để hoạt động (truy vấn cơ sở dữ liệu, tìm tin…) rồi trả kết quả về sẽ là một giải pháp tốt cho người dùng các thiết bị di động

2.8 Bảo mật

Để đảm bảo agent đáng tin cậy, AgentOS sẽ tiến hành 1 số kiểm tra với agent

9 Authentication: kiểm tra xuất xứ agent

9 Vertification: kiểm tra mã agent

9 Authorisation: cho phép agent có quyền nhận và truy cập 1 số tài nguyên Trên quá trình di trú của agent, để đảm bảo thông tin được bảo vệ, có thể áp dụng phương pháp mã hoá PKI

Trang 35

3 Tổng quát về Aglet

Aglets được xây dựng và phát triển bởi D B Lange và 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 Beta3 trên nền JDK1.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 JDK1.3

3.1 Khái niệm

Aglet là những đối tượng Java có thể di chuyển từ host này sang host khác trên môi trường mạng Khi 1 aglet di chuyển, nó mang theo mình cả mã chương trình lẫn dữ liệu

Trong mô hình đối tượng aglets, một mobile agent 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 agent 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 dựa trên URL Aglets hỗ trợ cơ chế di động yếu (weak- mobility) 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 (clone, mobility, persistence) phát sinh trong môi trường để có phản ứng thích hợp Agent 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 Aglets sử dụng ATP (Agent Transfer Protocol) cho việc di chuyển và giao tiếp Aglets sử dụng 2 loại mẫu thiết kế chính là chủ-tớ (Master-Slave) và hành trình (Itinerary) cho việc di chuyển của các agent

Aglets là một trong những platform được sử dụng nhiều nhất để phát triển các hệ thống mobile agent Một số đề án thực hiện với Aglet có thể kể đến là TabiCan (http://www.tabican.ne.jp) - chợ điện tử chuyên bán vé máy bay và tour

du lịch trọn gói -, Cps720 (Artificial Intelligence Topics with Agent) tại đại học Ryerson University, Mỹ , Acme – Hệ thống hỗ trợ Sales Order Processing trong việc mua bán chứng khoán, của Đại học Loughborough, Anh

Trang 36

Aglets là một hệ thống Java mobile agent 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ể xem aglets như 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 aglet hoạt động Ngoài ra, Aglet server cũng sử dụng một trình quản lý để tiếp nhận và kiểm soát aglet một cách an toàn

3.2 Tính chất

Một chương trình aglet có những tính chất sau đây:

9 Là một đối tượng khả chuyển Nó là một đối tượng ứng dụng với các phương thức và dữ liệu trạng thái, và khả năng di chuyển, nó có thể gửi đi những aglets hoặc tự chuyển đến một địa điểm khác trong mạng như một thực thể độc lập

9 Tính tự trị Một aglet có khả năng tự quyết định xem sẽ làm gì hoặc sẽ di chuyển về đâu và khi nào

9 Khả năng tương tác với những đối tượng khác Nó có khả năng tương tác với những aglets khác hoặc những đối tượng stationary Khi cần thiết, nó sẽ tự gửi

nó hoặc các aglets khác đến một địa điểm ở xa để tương tác với các đối tượng ở

đó

9 Không kết nối Nếu một máy tính đang ngắt kết nối với 1 mạng, aglet vẫn

có thể tự động chờ và sẽ di chuyển khi máy tính này kết nối lại

9 Xử lý song song Nhiều aglets có thể di chuyển và thực thi độc lập trong cùng một hệ thống

3.3 Cách cài đặt và sử dụng Aglet trên môi trường Window

Thể hiện của Aglet trên môi trường Window chính là server Tahiti

Trong file nén aglets-2.0.2.jar bao gồm ASDK( Aglets Source Development Kit) và môi trường thực thi ứng dụng ( run-time environment) Phần chính trong gói là Aglets library, phần này cho phép những người viết phần mềm có thể dịch

Trang 37

và chạy những ứng dụng Aglets, phần còn lại là những agents được biên dịch trước và những chương trình dùng để thực thi aglets platform

Để thực thi Aglets platform bạn cần phải cài tối thiểu là Java 2 Run-time Enviroment (JRE), tuy nhiên bạn nên cài đặt đầy đủ Java 2 Source Development Kit (J2SDK) để biên dịch các agents, tham khảo ở trang chủ của SUN: http://java.sun.com Aglets có thể đưọc cài đặt trên một máy chạy UNIX/LINUX, Microsoft Windows hoặc Mac OS X Nói chung, mọi kiến trúc máy tính có thể chạy được Java 2 Platform đều có thể cài đặt và thực thi được Aglets

Quá trình cài đặt được thực hiện trên nền Window ( các bước cài đặt giống như trong Windows đối với các hệ điều hành khác) Mặc định là bạn đã cài đặt và

có thể thực thi mọi lệnh Java

Có 3 cách cài đặt aglet, ở đây chúng ta chỉ tìm hiểu 1 cách cài đặt là cài đặt

từ gói đã được biên dịch sẵn:

Đây là cách được khuyên nên sử dụng bởi vì gói được biên dịch sẵn bao gồm những thành phần mới nhất của Platform và thư viện ASDK Nếu bạn không phải

là một nguời viết ứng dụng bạn nên dùng cách này để cài đặt Cả platform và thư viện ASDK được đặt trong một file jar mà bạn download về Tên của file jar này cho biết version Aglets mà bạn đang sử dụng Version của file jar được đề cập đến trong tài liệu này là 2.0.2 ứng với tập tin

aglets-2.0.2.jar

Những bước chi tiết sau đây sẽ hưóng dẫn cách cài đặt Aglets từ file jar nói trên

3.3.1 Giải nén file jar

Bởi vì aglets được nén trong một file jar nên việc đầu tiên bạn phải giải nén nó Hãy chú ý là khi giải nén thì các tập tin được giải nén sẽ nằm trong thư mục hiện hành, do đó tốt hơn hết là bạn nên tạo một thư mục riêng của bạn dùng

để sử dụng trong quá trình cài đặt Aglets, ví dụ là E:\MAgent Khi bạn đã tạo

Trang 38

xong thư mục, bạn copy file jar nói trên vào thư mục đó và đánh lệnh sau đây trong console:

jar xvf aglets-2.0.2.jar Trong suốt quá trình cài đặt bạn sẽ thấy những dòng sau đây xuất hiện trên màn hình, những dòng này sẽ liệt kê những tập tin đang được giải nén:

Hình 11: Giải nén aglets-2.0.2.jar

Trang 39

Nếu các bước cài đặt thành công bạn sẽ thấy các thư mục con bên trong thư mục cài dặt của bạn, các thư mục con bao gồm:

9 bin: sẽ chứa những chương trình thực thi được cho Aglets 2 platform, ngoài ra nó còn chứa những file cần thiết dùng cho các bướccài đặt tiếp theo

9 cnf: chứa những file cấu hình cho Aglets platform

9 public: chứa vài ví dụ agent mẫu , và đây là thư mục root cho các ứng dụng agent sau này của bạn

9 lib: đây là thư mục thư viện của Aglets 2 library( bao gồm những tập tin jar) và vài tập tin thư viện cần thiết khác đối với Aglets

Nếu có thể, bạn hãy đọc tập tin README và INSTALL bao gồm trong gói cài đặt và tùy thuộc vào version mà bạn download

3.3.2 Cài đặt platform

Để cài đặt platform, bạn cần phải chạy Apache Ant, tool này dùng để chạy và biên dịch những ứng dụng java Aglets 2 được đóng gói chung với một version của Ant để cài đặt platform, ngòai ra bạn có thể sử dụng bất kì version nào mới hơn 1.5 cũng được

Để cài đặt Aglets với Ant, bạn cần phải vào thư mục bin ở trên và đánh lệnh ant.bat như sau:

Ngày đăng: 12/04/2013, 14:30

HÌNH ẢNH LIÊN QUAN

Hình 10: Vòng đời agent - ứng dụng thử nghiệm Mobile Agent vào xây dựng Workflow
Hình 10 Vòng đời agent (Trang 28)
Hình 12: Cài đặt platform - ứng dụng thử nghiệm Mobile Agent vào xây dựng Workflow
Hình 12 Cài đặt platform (Trang 40)
Hình 31: Kiến trúc hệ thống - ứng dụng thử nghiệm Mobile Agent vào xây dựng Workflow
Hình 31 Kiến trúc hệ thống (Trang 69)
Hình 41: Sơ đồ quan hệ giữa các lớp cơ bản trong chương trình - ứng dụng thử nghiệm Mobile Agent vào xây dựng Workflow
Hình 41 Sơ đồ quan hệ giữa các lớp cơ bản trong chương trình (Trang 85)
Hình 43: Thiết kế màn hình About - ứng dụng thử nghiệm Mobile Agent vào xây dựng Workflow
Hình 43 Thiết kế màn hình About (Trang 95)
Bảng mô tả màn hình MH_ABOUT - ứng dụng thử nghiệm Mobile Agent vào xây dựng Workflow
Bảng m ô tả màn hình MH_ABOUT (Trang 96)
Hình 46: Thiết kế màn hình chọn Font - ứng dụng thử nghiệm Mobile Agent vào xây dựng Workflow
Hình 46 Thiết kế màn hình chọn Font (Trang 100)
2.3.1. Sơ đồ trường hợp sử dụng - ứng dụng thử nghiệm Mobile Agent vào xây dựng Workflow
2.3.1. Sơ đồ trường hợp sử dụng (Trang 104)
Hình 58:  Luồng dữ liệu cho chọn form cho node trong Workflow Designer - ứng dụng thử nghiệm Mobile Agent vào xây dựng Workflow
Hình 58 Luồng dữ liệu cho chọn form cho node trong Workflow Designer (Trang 113)
2.3.3. Sơ đồ lớp mức phân tích - ứng dụng thử nghiệm Mobile Agent vào xây dựng Workflow
2.3.3. Sơ đồ lớp mức phân tích (Trang 114)
Bảng 26: Bảng mô tả màn hình About - ứng dụng thử nghiệm Mobile Agent vào xây dựng Workflow
Bảng 26 Bảng mô tả màn hình About (Trang 122)
Hình 64: Luồng dữ liệu cho thực thi workflow trong Agent Manager - ứng dụng thử nghiệm Mobile Agent vào xây dựng Workflow
Hình 64 Luồng dữ liệu cho thực thi workflow trong Agent Manager (Trang 126)
2.6.2. Sơ đồ lớp cơ bản - ứng dụng thử nghiệm Mobile Agent vào xây dựng Workflow
2.6.2. Sơ đồ lớp cơ bản (Trang 138)
Bảng 43: Danh sách các biến thành phần của lớp Nagent - ứng dụng thử nghiệm Mobile Agent vào xây dựng Workflow
Bảng 43 Danh sách các biến thành phần của lớp Nagent (Trang 141)
Hình 72: Màn hình Form Designer - ứng dụng thử nghiệm Mobile Agent vào xây dựng Workflow
Hình 72 Màn hình Form Designer (Trang 144)

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

TÀI LIỆU LIÊN QUAN

w