9098_4.1.13. Ứng dụng thử nghiệm MOBILE AGENT vào xây dựng WORKFLOW

luận văn tốt nghiệp

i
Lời cảm ơn
Chúng em xin chân thành cảm ơn các thầy cô hướng dẫn đã tận tình
giúp đỡ và truyền đạt kiến thức để chúng em có thể hoàn thành luận văn này.
Đặc biệt, chúng em xin gửi lời cám ơn sâu sắc nhất đến thầy Cao Đăng
Tân – người đã động viên và giúp đỡ cho chúng em nhiệt tình trong quá trình
thực hiện luận văn. Chúng em cũng xin gửi lời cảm ơn đến tất cả các thầy cô
trong khoa Công nghệ thông tin đã tạo điều kiện tốt cho chúng em làm việc, học
tập và nghiên cứu trong suốt quá trình thực hiện luận văn.
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.

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

Nguyễn Hoàng Linh Phương

GVHD: GVC Cao Đăng Tân
Nguyễn Văn Thoại
ii
NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN

…………………………………………………………………………….
…………………………………………………………………………….
…………………………………………………………………………….
…………………………………………………………………………….
…………………………………………………………………………….
…………………………………………………………………………….
…………………………………………………………………………….
…………………………………………………………………………….
…………………………………………………………………………….
…………………………………………………………………………….
…………………………………………………………………………….
…………………………………………………………………………….
…………………………………………………………………………….
…………………………………………………………………………….
…………………………………………………………………………….
…………………………………………………………………………….
…………………………………………………………………………….
……………………………………………………………….

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

Nguyễn Hoàng Linh Phương

GVHD: GVC Cao Đăng Tân
Nguyễn Văn Thoại
iii
NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN

…………………………………………………………………………….
…………………………………………………………………………….
…………………………………………………………………………….
…………………………………………………………………………….
…………………………………………………………………………….
…………………………………………………………………………….
…………………………………………………………………………….
…………………………………………………………………………….
…………………………………………………………………………….
…………………………………………………………………………….
…………………………………………………………………………….
…………………………………………………………………………….
…………………………………………………………………………….
…………………………………………………………………………….
…………………………………………………………………………….
…………………………………………………………………………….
…………………………………………………………………………….
………………………………………………………………

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

Nguyễn Hoàng Linh Phương

GVHD: GVC Cao Đăng Tân
Nguyễn Văn Thoại
iv
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

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

Nguyễn Hoàng Linh Phương

GVHD: GVC Cao Đăng Tân
Nguyễn Văn Thoại
v
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

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

Nguyễn Hoàng Linh Phương

GVHD: GVC Cao Đăng Tân
Nguyễn Văn Thoại
1
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

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

Nguyễn Hoàng Linh Phương

GVHD: GVC Cao Đăng Tân
Nguyễn Văn Thoại
2
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

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

Nguyễn Hoàng Linh Phương

GVHD: GVC Cao Đăng Tân
Nguyễn Văn Thoại
3
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 9: Bảng mô tả màn hình About
91
Bảng 10: Bảng mô tả màn hình MH_SAVE
91
Bảng 11: Bảng mô tả các biến cố của màn hình MH_SAVE
92
Bảng 12: Bảng mô tả màn hình MH_BORDER
93
Bảng 13: Bảng mô tả các biến cố của màn hình chọn Border Style
94
Bảng 14: Bảng mô tả màn hình chọn Font
95
Bảng 15: Bảng mô tả các biến cố của màn hình chọn Font
96
Bảng 16: Bảng mô tả màn hình chọn hình ảnh
97
Bảng 17: Bảng mô tả các biến cố của màn hình chọn hình
97
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 26: Bảng mô tả màn hình About
117
Bảng 27: Bảng mô tả màn hình Save
117
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

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

Nguyễn Hoàng Linh Phương

GVHD: GVC Cao Đăng Tân
Nguyễn Văn Thoại
4
Bảng 44: Danh sách hàm thành phần của lớp Nagent
137

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

Nguyễn Hoàng Linh Phương

GVHD: GVC Cao Đăng Tân
Nguyễn Văn Thoại
5
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ế
Merge
Trộn
XML
Ngôn ngữ đánh dấu mở rộng
module
Những phần mềm được phát triển riêng để tích hợp vào 1 hệ thống lớn
IP
Địa chỉ
LAN
Mạng nội bộ có phạm vi hẹp
Platform
Nền tảng cho ứng dụng
ASDK
bộ thư viện cho Aglet
bandwidth
Băng thông đường truyền mạng
code
Mã nguồn
Editor
trình soạn thảo
sandbox
mô hình bảo mật của Java
TCP/IP
Giao thức Internet
Release
Phiên bản
JDK
Bộ thư viện lập trình cho Java
Freeware
Phần mềm miễn phí
Internet
Mạng máy tính lớn nhất hiện nay, nối kết máy tính trên tòan thế giới

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

Nguyễn Hoàng Linh Phương

GVHD: GVC Cao Đăng Tân
Nguyễn Văn Thoại
6
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.

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

Nguyễn Hoàng Linh Phương

GVHD: GVC Cao Đăng Tân
Nguyễn Văn Thoại
7
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.

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

Nguyễn Hoàng Linh Phương

GVHD: GVC Cao Đăng Tân
Nguyễn Văn Thoại
8
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.

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

Nguyễn Hoàng Linh Phương

GVHD: GVC Cao Đăng Tân
Nguyễn Văn Thoại
9
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.

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

Nguyễn Hoàng Linh Phương

GVHD: GVC Cao Đăng Tân
Nguyễn Văn Thoại
10
1.2. Khái niệm
Agent

sự
kết
hợp
của
nhiều

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

Các hệ thống
phân tán
Phục hồi
thông tin
Mobile Code
AI & Khoa học
nhận dạng
Kĩ thuật cơ sở
dữ liệu và cơ sở
tri thức
Máy học
Agent

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

Nguyễn Hoàng Linh Phương

GVHD: GVC Cao Đăng Tân
Nguyễn Văn Thoại
11
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

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

Nguyễn Hoàng Linh Phương

GVHD: GVC Cao Đăng Tân
Nguyễn Văn Thoại
12
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

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

Nguyễn Hoàng Linh Phương

GVHD: GVC Cao Đăng Tân
Nguyễn Văn Thoại
13
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
Cooperative

Adaptive

autonomous
Intelligent
Agents

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

Nguyễn Hoàng Linh Phương

GVHD: GVC Cao Đăng Tân
Nguyễn Văn Thoại
14
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.

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

Nguyễn Hoàng Linh Phương

GVHD: GVC Cao Đăng Tân
Nguyễn Văn Thoại
15
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
9
Có kích thước nhỏ
9
Có khả năng xác định và dùng những tài nguyên trên các máy tính đang
chứa nó.
2.3. Một số hệ thống MA:
2.3.1. Aglets
Aglets được xây dựng và phát triển bởi D. B. Lange và IBM Tokyo
Research Laboratory.
Xem thêm ở phần 1.3
2.3.2. Voyager
Voyager là một môi trường thương mại hỗ trợ phát triển các ứng dụng
agent được hãng Object Space phát triển từ giữa năm 1996. Voyager đã trải qua
nhiều lần nâng cấp và thay đổi từ phiên bản 1.0 cho đến bây giờ là phiên bản
4.5. Tháng 03.2002 sản phẩm Voyager được nhượng lại cho Recursion
Software, một công ty chuyên về các sản phẩm viết trên C++ và Java để đm bo
cho việc phát triển Voyager sau này. Các phiên bản từ 1.0 đến 3.3 Voyager được
phân phối cho các nhà phát triển như một freeware. Hiện tại Voyager đã có
phiên bản 4.5 Evaluation hoàn toàn tương thích với JDK1.3, JDK1.2 và JDK1.1.
Phiên bản này bao gồm 6 sản phẩm, trong đó sản phẩm chính yếu dùng cho các
ứng dụng mobile agent là Voyager ORB Professional.
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

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

Nguyễn Hoàng Linh Phương

GVHD: GVC Cao Đăng Tân
Nguyễn Văn Thoại
16
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

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

Nguyễn Hoàng Linh Phương

GVHD: GVC Cao Đăng Tân
Nguyễn Văn Thoại
17
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

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

Nguyễn Hoàng Linh Phương

GVHD: GVC Cao Đăng Tân
Nguyễn Văn Thoại
18
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

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

Nguyễn Hoàng Linh Phương

GVHD: GVC Cao Đăng Tân
Nguyễn Văn Thoại
19
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

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

Nguyễn Hoàng Linh Phương

GVHD: GVC Cao Đăng Tân
Nguyễn Văn Thoại
20
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

server
code
client
request code
code
code
execute
code
server
client

Đánh giá post

Để lại một bình luận

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *