SlideShare a Scribd company logo
1 of 154
Download to read offline
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 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
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) :
Đặc tính: Chỉ làm việc trên 1 hệ thống, nơi mà agent bắt đầu vòng
đời.
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:
Không lệ thuộc vào hệ thống nơi chúng bắt đầu làm việc
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
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:
Có khả năng di trú từ nơi này sang nơi khác
Liên lạc được với nhau, nhân bản, nhập lại, tổng hợp tính toán
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
Có kích thước nhỏ
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
Ứ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
21
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
node A node B
remote exec
code
Code A
execute
code
node A node B
node A node B
execute
code migrate
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
22
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.
execute code
node A node B
Ứ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
23
2.4.2. Đời sống 1 agent :
Hình 10: Vòng đời agent
Creation : Khởi tạo agent, phát sinh ID cho agent, tuỳ biến cấu hình cho
agent
Serialize: Lưu lại trạng thái agent trước khi di trú đến AgentOS khác
Migrate: Di trú agent kèm tình trạng của nó đến 1 nơi khác
Deserialize: Tái tạo lại trạng thái trước khi di trú của agent
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
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
Ứ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
24
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
Có 1 mã xác nhận duy nhất
Xác định được những agent khác đang thực thi trong cùng host
Có khả năng nhận và gửi thông điệp cho những agent khác
Ứ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
25
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 :
Độ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.
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)
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.
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.
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.
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ụ….
Có thể mở rộng được
Ứ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
26
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ề.
Ứ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
27
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.
Ứ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
28
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
Ứ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
29
đượ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
Authentication: kiểm tra xuất xứ agent
Vertification: kiểm tra mã agent
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.
Ứ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
30
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.
Ứ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
31
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:
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.
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.
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 ở
đó.
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.
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
Ứ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
32
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
Ứ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
33
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
Ứ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
34
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:
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.
cnf: chứa những file cấu hình cho Aglets platform
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.
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 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
35
Hình 12: Cài đặt platform
Trong quá trình dịch và cài đặt thư viện, bạn sẽ thấy những message
thông báo về version của Aglets.
3.3.3. Cài đặt chính sách bảo mật
Như những chương trình Java khác, Aglets platform cần những quyền
trong chính sách bảo mật của java để thực thi các tác vụ như mở socket, chạy
các ứng dụng agent khác, mở tập tin trong máy client, … Bạn có thể copy các
Ứ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
36
tập tin bin/.aglets.policy hoặc chương trình Ant có thể làm điều này giúp bạn.
Ngoài ra Ant sẽ cài đặt keystore cho bạn. Aglets cần một keystore để chứa
những khóa bảo mật dùng khi di trú; thông thường các keystore đưọc lưu trong
file /.keystore.
Để cài đặt các chính sách bảo mật và keystore như trên trong thư mục
home, bạn chạy file install-home:
Hình 13: Cài đặt chính sách bảo mật
3.3.4. Khai báo các biến môi trường
Để Aglets platform có thể hoạt động được, bạn cần phải khai báo các
biến môi trường sau đây bao gồm AGLETS_HOME và AGLETS_PATH. Ngoài
ra, để chạy Aglets platform một cách tiện lợi hơn, bạn phải khai báo thư mục bin
của aglets vào biến môi trường PATH.
Bạn đánh các lệnh sau đây trong console của windows:
set AGLETS_HOME=E:Magent
set AGLETS_PATH=%AGLETS_HOME%
set PATH=%PATH%;%AGLETS_HOME%bin
hoặc có thể khai báo các biến môi trường trên trong control panel.
Ứ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
37
3.3.5. Chạy Aglets server
Sau khi cài đặt Aglets platform và keystore, bạn có thể chạy được Aglets
server, tên gọi là Tahiti. Tahiti có thể chạy bằng cách chuyển vào thư mục bin
và đánh dòng lệnh agletsd.
Hình 14: Đăng nhập server Tahiti
Tahiti sẽ yêu cầu người dùng đăng nhập, người dùng sẽ phải điền
username và password. Nếu bạn đã cài đặt keystore thành công thì bạn cso thể
đăng nhập với username là anonymous và password là aglets. Sau khi đăng nhập
thành công thì cửa sổ chính của server Tahiti sẽ hiện ra. Bên trong màn hình
chính này, người dùng có thể quản lý server, tạo và huỷ các 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
38
Hình 15: Màn hình Server Tahiti
Để đóng server, bạn có thể click vào button close hoặc chọn Exit trong
Aglet menu. Trong cả hai cách Aglets sẽ hỏi bạn có chắc sẽ thoát hay không, khi
đó bạn click OK để thoát, Cancel sẽ đóng cửa sổ đó lại và Reboot sẽ làm server
restart
3.4. Aglet LifeCycle
Lớp ibm.com.aglet.Aglet cung cấp các chức năng cơ bản cho 1 đối tượng
mobile và mọi aglet phải là thể hiện họăc subclass của nó. Để dùng 1 aglet, trước
hết ta phải instantiated (tạo ra thể hiển) của nó. Có 2 cách để làm điều này.
Cách 1: tạo 1 aglet hoàn tòan mới từ định nghĩa lớp bằng cách gọi
hàm AgletContext.createAglet(URL codebase, String name, Object init). Hàm này
tạo ra 1 thể hiện mới trong context và khởi động nó nếu cần thiết.
Cách 2: tạo ra 1 bản sao của 1 aglet đã tồn tại bằng cách dùng hàm
Aglet.clone(). Aglet được sao ra sẽ có cùng trạng thái như aglet gốc nhưng có
AgletID khác.
Ứ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
39
Hình 16: Vòng đời Aglet
Khi được tạo ra, 1 đối tượng aglet có thể được gửi đi đến và/hoặc nhận về
từ 1 server khác, ngưng hoạt động và được lưu trữ ở 1 nơi nào đó để rồi lại được
tái kích hoạt.
1 aglet có thể tự gửi chính nó đến 1 server khách bằng cách gọi hàm
nguyên gốc Aglet.dispatch (URL dest). Để chính xác hơn, aglet cư ngụ trong 1
aglet context và có thể di chuyển từ context này đến context khác trong suốt quá
trình hoạt động. Bởi vì server có thể phục vụ nhiều context trong cùng 1 máy ảo
Java (JVM), và 1 host có thể phục vụ nhiều server nên context được đặt tên với
những thụôc tính sau:
Địa chỉ của host, thường là địa chỉ IP
Port mà server dùng để nghe
Số context trong server.
Ví dụ: atp://aglets.ibm.com:1434/context_name
Khi di trú, 1 aglet phải ngưng hoạt động, lần lượt đưa trạng thái hoạt
động và bytecode của nó vào 1 form chuẩn và rồi được chuyển đến đích. Bên phía
nhận, đối tượng Java được tái xây dựng dựa theo dữ liệu nhận được từ gốc và 1
thread được đăng kí và thực thi.
Aglets có thể bền vững. Do 1 mobile aglet cần được phần mảnh thành
bit-stream, mọi mobile aglet có thể bền vững trong tự nhiên. Hàm
Dispatch
ActivateDeactivate
Create
Dispose
Clone
Retract
ProxyProxy
Aglet Aglet
Class Bộ lưu trữ
thứ cấp
Context BContext A
Ứ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
40
Aglet.deactivete(long timeout) giúp 1 aglet được lưu trữ lại trong bộ nhớ và đưa
aglet vào trạng thái ngủ đông trong 1 khỏang thời gian nhất định. Sau khi hết thời
gian hoặc khi 1 chương trình khác yêu cầu nó tái kích hoạt, aglet sẽ được tái kích
hoạt trong cùng context mà nó bị nhưng hoạt động.
Không giống như các đối tượng Java thông thường sẽ bị tự động hủy bởi
chế độ thu thập rác của Java ( garbage collector ), 1 đối tượng aglet sẽ tự quyết
định có hủy chính nó hay không. Nếu bạn gọi phương thức dipose() để hủy 1
aglet, hàm onDisposing() được gọi để hoàn tất công việc tùy vào trạng thái hiện
hành của aglet. Tuy nhiên, khi aglet bị hủy, những tài nguyên đang được sử dụng
như cơ sở dữ liệu hay file sẽ không được tự động hủy như aglet, bạn phải có
những lệnh riêng hủy chúng.
3.5. Aglet API
Hình 17: Aglet API
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 agent. Nhờ vào Aglet API, khả năng nổi tiếng của Java là “viết một lần, thi
hành bất cứ đâu” được viết lại là “viết một lần, lưu hành bất cứ đâu”. Một khi
aglets được tạo ra, nó sẽ chạy trên mọi máy có hỗ trợ Aglet API mà 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.
Aglet : chính là lớp ảo com.ibm.aglet.Aglet : định nghĩa các phương thức
nền tảng đẻ kiểm sóat sự di chuyển và vòng đời của mobile agent. Mọi mobile
agent đều phải kế thừa từ lớp ảo này. Vài hàm quan trọng của lớp này là :
Aglet
Proxy
Aglet Aglet
Proxy
AgletMessage
Aglet Context
Ứ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
41
Aglet.dispatch(URL) : di chuyển aglet từ máy nó đang cư trú đến
máy đích theo thông số nhập vào.
Aglet.deactivate(long time) : lưu trữ aglet và đưa aglet vào trạng
thái ngủ đông.
Aglet.clone() : sinh ra 1 thể hiện của aglet mới có cùng trạng thái
như aglet gốc nhưng là đối tượng kiểu AgletProxy chứ không phải
ở kiểu Aglet.
Aglet Proxy : com.ibm.aglet.AgletProxy: là 1 lớp interface hoạt
động như 1 đại diện của aglet và cung cấp cách chung nhất để truy
cập aglet đứng sau nó. Lớp aglet có nhiều phương thức public mà
1 vài trong số này lẽ ra không được gọi trực tiếp từ các aglet khác
vì lý do bảo mật. Vì vậy mọi aglet nếu muốn liên lạc với những
aglet khác thì đầu tiên là phải tạo ra đối tượng proxy và giao tiếp
thông qua interface này. Nói cách khác, aglet proxy hoạt động như
1 đối tượng che chắn, bảo vệ agent khỏi các agent nguy hiểm. Khi
được gọi, aglet proxy sẽ truy cập đến SecurityManager để xác định
xem đối tượng gọi có được quyền thực thi phương thức hay
không. Một chức năng quan trọng khác của aglet proxy là cung
cấp location transparency. Nếu 1 aglet thực sự đang cư trú ở 1 host
khác, aglet proxy sẽ chuyển tiếp yêu cầu đến host đó và trả về kết
quả cho host cục bộ hiện tại.
Message : com.ibm.aglet.Message : đối tượng aglet giao tiếp bằng cách
trao đổi những đối tượng thuộc lớp Message. Một đối tượng Message có 1 đối
tượng kiểu String đế xác định kiểu của thông điệp. Một thông điệp có thể được
gửi đến aglet bằng cách gọi hàm AgletProxy.sendMessage(Message msg)
Aglet Context : com.ibm.aglet.AgletContext : cung cấp interface cho môi
trường runtime chạy aglet. Mọi aglet đều chứa 1 tham chiếu đến đối tượng
AgletContext hiện hành của nó thông qua hàm Aglet.getAgletContext(), và dùng
nó để chứa thông tin như địa chỉ của host, bảng liệt kê Aglet Proxy hoặc tạo 1
Ứ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
42
aglet mới. Khi di trú đến host mới, đối tượng context sẽ bị hủy đi và thay thế nó là
đối tượng aglet của host mới khi agent di trú đế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
43
Chương 3: Khái niệm và các mô hình
WorkFlow
Công việc quản lý workflow xuất phát từ những công việc đòi hỏi tính
tự động trong những văn phòng doanh nghiệp, trong đó mọi tài liệu cần phải được
số hóa và được lưu chuyển giữa các nhóm làm việc. Ngày nay, công việc quản lý
workflow thu hút rất nhiều những quan tâm dựa vào khả năng của nó trong mô hình
hóa, thực thi và quản lý tiến trình. Tiến trình công việc không chỉ là tiến trình trong
kinh doanh mà còn là bất kì một tiến trình nào cần được điều khiển và quản lý.
Nhưng điểm chính của việc quản lý workflow là những hứa hẹn trong sử dụng nó
để quản lý tiến trình kinh doanh
Workflow giúp nhà quản trị lên kế hoạch, quản lý 1 cách tự động các
nhiệm vụ, giám sát tình trạng công việc, đưa thông tin đến từng thành viên đúng
lúc, có được cái nhìn tổng quan về tiến triển công việc.
Có 2 cách hiểu về workflow.
Cách 1: workflow theo nghĩa rộng, là 1 mô hình nghiệp vụ, trong đó
các công việc được phân công rõ ràng, thực hiện theo thứ tự đặt sẵn. Khái niệm
workflow theo cách hiểu này đã có từ lâu và được ứng dụng rộng rãi trong các
ngành công nghiệp.
Cách 2: Khái niệm workflow trong khoa học máy tính ứng dụng vào
quản lý tiến trình kinh doanh (tìm hiểu dưới đây).
Khái niệm về workflow nói chung rất phức tạp và đa dạng, trong phạm
vi luận văn này, xin được trình bày về khái niệm workflow trong quản lý tiến trình
kinh doanh.
Ứ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
44
1. Khái niệm
Workflow là quá trình điện toán hoá hay tự động hóa một phần hoặc toàn bộ
một tiến trình kinh doanh. Ý nghĩa của workflow khi này đơn giản chỉ là các luồng
công việc.
Hệ thống quản trị luồng công việc: quản lý và thực thi các mô hình luồng công
việc thông qua việc thực thi các phần mềm. Gồm 2 thành tố:
Bộ phận hỗ trợ đặc tả mô hình luồng công việc
Bộ phận vận hành mô hình đã đặc tả
2. Ích lợi áp dụng workflow:
Lợi ích của việc sử dụng worflow trong quản lý tiến trình kinh doanh được liệt
kê như sau:
Tiến trình kinh doanh đưọc vạch ra rõ ràng, vì thế trách nhiệm và những mối
quan hệ cộng tác được định rõ.
Dễ dàng để tối ưu hóa công việc kinh doanh vì những định nghĩa chính xác
trên.
Tiến trình kinh doanh được chia nhỏ thành những module và những module
này có thể tổ chức lại theo mô hình workflow để thích ứng với tiến trình kinh doanh
chung, vì thế dễ dàng thích nghi nhanh chóng với những thay đổi không đoán trước
được trong những yêu cầu và điều kiện kinh doanh.
Workflow có thể theo dõi hằng ngày.
Workflow tích hợp với những ứng dụng hay những hệ thống khác vào tiến
trình kinh doanh.
Workflow phân định rõ quan hệ và trách nhiệm trong công việc do nó tạo ra
những phần công việc riêng.
Theo dự đoán, workflow sẽ tạo nên những phương pháp, những kĩ thuật từ
nhiều nguồn trong khoa học máy tính cũng như quản trị học. Ví dụ, kĩ thuật
workflow liên quan đến quản trị cơ sở dữ liệu, tính toán client-server, giao diệ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
45
người dùng, ứng dụng và kết hợp các hệ thống phụ, quản lý tài liệu, giả lập, tái cấu
trúc và thực tập kinh doanh
3. Các dạng workflow
Có rất nhiều dạng workflow từ đơn giản đến nâng cao. Ở góc độ thử nghiệm của
luận văn, ứng dụng sẽ chỉ áp dụng các dạng workflow đơn giản.
3.1. Các dạng đơn giản:
3.1.1. Tuần tự (Sequence):
Mô tả: một hoạt động trong luồng công việc được kích hoạt ngay sau khi
1 hoạt động khác kết thúc trong cùng 1 tiến trình.
Ví dụ: hành vi gửi hóa đơn được thực hiện ngay sau hành vi gửi hàng
hóa
Cài đặt: dạng tuần tự được sử dụng để mô hình các bước liên tiếp trong
cùng 1 tiến trình của luồng công việc.
Mô hình:
Hình 18: Mô hình Workflow Tuần tự
Chú thích: Công việc B được thực hiện sau khi công việc A đã được hoàn
thành.
3.1.2. Phân luồng song song (Parallel Split)
Mô tả: 1 điểm trong 1 tiến trình của luồng công việc là nơi 1 công việc
được tách thành nhiều công việc con. Các công việc con có thể được tiến hành
đồng thời cùng lúc với nhau (song song nhau).
Ví dụ: Sau khi hành vi nhận tiền hoàn thành, hành vi gửi hàng và hành vi
xuất hóa đơn sẽ được kích hoạt và tiến hành đồng thời
Mô hình:
Công việc A Công việc B
Ứ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
46
Hình 19: Mô hình Workflow song song
3.1.3. Đồng bộ hoá
Mô tả: 1 điểm trong luồng công việc là nơi các tiến trình hay các công
việc con nhập lại làm 1 tiến trình hay công việc đơn. Trong dạng mô hình này,
tất cả các luồng đi vào phải chờ nhau tại điểm đồng bộ hóa.
Ví dụ: Sau khi hành vi gửi hàng và xuất hóa đơn được thực hiện, hành vi
lưu trữ mới được kích hoạt.
Mô hình:
Hình 20: Mô hình workflow Đồng bộ hóa
Chú thích: A và B phải hoàn thành thì C mới được kích hoạt
3.1.4. Phép chọn loại trừ (Exclusive Choice)
Mô tả: tại 1 điểm trong luồng công việc sẽ diễn ra sự lựa chọn công việc
nào sẽ được kích hoạt tiếp theo trong 1 loạt các công việc kế tiếp
Ví dụ: Sau khi công việc kiểm thử phần mềm được thực hiện, dựa vào kết
quả kiểm thử sẽ quyết định công việc tiếp theo là lập trình hay đóng gói phần
mềm.
Công việc A
Công việc B
Công việc C
Công việc A
Công việc B
Công việc CAND
Ứ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
47
Mô hình:
Hình 21: Mô hình workflow Chọn lọai trừ
Chú thích: Chỉ có hoặc B hoặc C được thực hiện, không thể tiến hành
đồng thời cả hai.
3.1.5. Trộn đơn giản (Simple Merge)
Mô tả: 1 điểm trong luồng công việc là nơi 2 hay nhiều nhánh gặp nhau,
không có sự đồng bộ hóa giữa các nhánh.
Ví dụ: Công việc lưu trữ được thực hiện sau khi công việc gửi hóa đơn
hoặc công việc nhận hóa đơn được thực hiện.
Mô hình:
Hình 22: Mô hình workflow Trộn đơn giản
Chú thích: chỉ cần 1 trong 2 công việc A hoặc B được hoàn thành thì
công việc C sẽ được kích hoạt
Công việc A
Công việc C
Công việc B
Lựa chọn
B hay C
Công việc A
Công việc B
Công việc C
Ứ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
48
3.2. Các dạng nâng cao:
3.2.1. Chọn đa nhánh (Multi-Choice)
Mô tả: Một điểm trong tiến trình là nơi mà một hoặc nhiều nhánh được
chọn theo một quyết định hoặc dựa trên dữ liệu của nghiệp vụ.Mẫu này khác với
mẫu 2.4.1.4 (chọn loại trừ) có thể chọn một hoặc nhiều nhánh được chọn ra và
thực thi, tương tự như phép XOR.
Các ví dụ:Sau khi thực hiện hành vi đánh-giá-thiệt-hại, hành vi “liên hệ
phòng cứu hỏa” hoặc hành vi “liên hệ công ty bảo hiểm” được thực hiện. Ít nhất
một trong hai hành vi này được thực hiện. Tuy nhiên, cũng có thể là cả hai cần
được thực hiện.
Mô hình:
Hình 23: Mô hình workflow Chọn đa nhánh
3.2.2. Trộn đồng bộ hoá
Mô tả: Một điểm trong tiến trình là nơi nhiều nhánh hội tụ lại thành một
tiến trình duy nhất. Nếu có nhiều hơn một nhánh thực thi, việc đồng bộ hóa
(việc đợi nhau giữa các nhánh ) được thực hiện. Nếu chỉ có một nhánh được
thực thi, các nhánh khác có thể hội tụ mà không cần đồng bộ hóa. Trong mẫu
này nếu có một nhánh đã được kích hoạt, thì nó không thể kích hoạt lại lần nữa
trong khi còn đang đợi các nhánh khác hoàn tất. Mẫu này khác với mẫu Đồng bộ
hóa ở chỗ nó đồng bộ dựa trên số nhánh thực sự được kích hoạt lúc thực thi.
Còn mẫu Đồng bộ hóa bắt buộc tất cả các nhánh đi ra khỏi nút AND phân luồng
(AND-Split) phải đều được thực hiệ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
49
Các ví dụ: Mở rộng ví dụ trong mẫu 6 (chọn đa nhánh), sau khi một hoặc
cả hai hành vi liên-hệ-phòng-chữa-cháy và liên-hệ-công-ty-bảo-hiểm đã hoàn tất
(dựa trên việc nó có được thực thi hay không), hành vi trình-báo-cáo phải được
thực hiện (chỉ duy nhất một hành vi)
Mô hình:
Hình 24: Mô hình workflow Trộn đồng bộ hóa
3.2.3. Trộn đa nhánh
Mô tả: Một điểm trong tiến trình là nơi hai hoặc nhiều nhánh hội tụ lại và
không được đồng bộ hóa. Nếu nhiều hơn một nhánh được kích hoạt, ngay lập
tức hành vi sau điểm trộn sẽ bắt đầu đối với mỗi kích hoạt của mỗi nhánh vào.
Mẫu này chính là thể hiện cho cơ chế trộn phục vụ cho mục đích dùng chung
cho các thành phần trong quy trình.
Các ví dụ: Thỉnh thoảng hai hay nhiều nhánh có cùng điểm kết thúc.
Thay vì lặp lại tiến trình này cho mỗi nhánh (có thể phức tạp), ta dùng mẫu trộn
đa nhánh. Ví dụ đơn giản của trường hợp này là 2 hành vi “kiểm tra đơn xin
việc” và “xử lý đơn xin việc” cùng thực hiện song song và thực hiện trước hành
vi “đóng trường hợp”.
Mô hình:
Hình 25: Mô hình workflow Trộn đa nhánh
Công việc A
Công việc B
Công
việc C
Công việc A
Công việc B
Công
việc C
Mobile agent va ung dung vao workflow
Mobile agent va ung dung vao workflow
Mobile agent va ung dung vao workflow
Mobile agent va ung dung vao workflow
Mobile agent va ung dung vao workflow
Mobile agent va ung dung vao workflow
Mobile agent va ung dung vao workflow
Mobile agent va ung dung vao workflow
Mobile agent va ung dung vao workflow
Mobile agent va ung dung vao workflow
Mobile agent va ung dung vao workflow
Mobile agent va ung dung vao workflow
Mobile agent va ung dung vao workflow
Mobile agent va ung dung vao workflow
Mobile agent va ung dung vao workflow
Mobile agent va ung dung vao workflow
Mobile agent va ung dung vao workflow
Mobile agent va ung dung vao workflow
Mobile agent va ung dung vao workflow
Mobile agent va ung dung vao workflow
Mobile agent va ung dung vao workflow
Mobile agent va ung dung vao workflow
Mobile agent va ung dung vao workflow
Mobile agent va ung dung vao workflow
Mobile agent va ung dung vao workflow
Mobile agent va ung dung vao workflow
Mobile agent va ung dung vao workflow
Mobile agent va ung dung vao workflow
Mobile agent va ung dung vao workflow
Mobile agent va ung dung vao workflow
Mobile agent va ung dung vao workflow
Mobile agent va ung dung vao workflow
Mobile agent va ung dung vao workflow
Mobile agent va ung dung vao workflow
Mobile agent va ung dung vao workflow
Mobile agent va ung dung vao workflow
Mobile agent va ung dung vao workflow
Mobile agent va ung dung vao workflow
Mobile agent va ung dung vao workflow
Mobile agent va ung dung vao workflow
Mobile agent va ung dung vao workflow
Mobile agent va ung dung vao workflow
Mobile agent va ung dung vao workflow
Mobile agent va ung dung vao workflow
Mobile agent va ung dung vao workflow
Mobile agent va ung dung vao workflow
Mobile agent va ung dung vao workflow
Mobile agent va ung dung vao workflow
Mobile agent va ung dung vao workflow
Mobile agent va ung dung vao workflow
Mobile agent va ung dung vao workflow
Mobile agent va ung dung vao workflow
Mobile agent va ung dung vao workflow
Mobile agent va ung dung vao workflow
Mobile agent va ung dung vao workflow
Mobile agent va ung dung vao workflow
Mobile agent va ung dung vao workflow
Mobile agent va ung dung vao workflow
Mobile agent va ung dung vao workflow
Mobile agent va ung dung vao workflow
Mobile agent va ung dung vao workflow
Mobile agent va ung dung vao workflow
Mobile agent va ung dung vao workflow
Mobile agent va ung dung vao workflow
Mobile agent va ung dung vao workflow
Mobile agent va ung dung vao workflow
Mobile agent va ung dung vao workflow
Mobile agent va ung dung vao workflow
Mobile agent va ung dung vao workflow
Mobile agent va ung dung vao workflow
Mobile agent va ung dung vao workflow
Mobile agent va ung dung vao workflow
Mobile agent va ung dung vao workflow
Mobile agent va ung dung vao workflow
Mobile agent va ung dung vao workflow
Mobile agent va ung dung vao workflow
Mobile agent va ung dung vao workflow
Mobile agent va ung dung vao workflow
Mobile agent va ung dung vao workflow
Mobile agent va ung dung vao workflow
Mobile agent va ung dung vao workflow
Mobile agent va ung dung vao workflow
Mobile agent va ung dung vao workflow
Mobile agent va ung dung vao workflow
Mobile agent va ung dung vao workflow
Mobile agent va ung dung vao workflow
Mobile agent va ung dung vao workflow
Mobile agent va ung dung vao workflow
Mobile agent va ung dung vao workflow
Mobile agent va ung dung vao workflow
Mobile agent va ung dung vao workflow
Mobile agent va ung dung vao workflow
Mobile agent va ung dung vao workflow
Mobile agent va ung dung vao workflow
Mobile agent va ung dung vao workflow
Mobile agent va ung dung vao workflow
Mobile agent va ung dung vao workflow
Mobile agent va ung dung vao workflow
Mobile agent va ung dung vao workflow
Mobile agent va ung dung vao workflow

More Related Content

What's hot

生成系AIで変わるソフトウェア開発の現在と未来(修正版).pdf
生成系AIで変わるソフトウェア開発の現在と未来(修正版).pdf生成系AIで変わるソフトウェア開発の現在と未来(修正版).pdf
生成系AIで変わるソフトウェア開発の現在と未来(修正版).pdfKunihiroSugiyama1
 
第34回Office 365勉強会 : Microsoftサポート活用術 ~ Microsoft Azureを中心に ~
第34回Office 365勉強会 : Microsoftサポート活用術 ~ Microsoft Azureを中心に ~第34回Office 365勉強会 : Microsoftサポート活用術 ~ Microsoft Azureを中心に ~
第34回Office 365勉強会 : Microsoftサポート活用術 ~ Microsoft Azureを中心に ~Genki WATANABE
 
アプリ開発ことはじめ! アイデア出しで躓かない Power Apps での閃き方.pdf
アプリ開発ことはじめ! アイデア出しで躓かない Power Apps での閃き方.pdfアプリ開発ことはじめ! アイデア出しで躓かない Power Apps での閃き方.pdf
アプリ開発ことはじめ! アイデア出しで躓かない Power Apps での閃き方.pdfMasahiroMishima1
 
V H I N D O N E S I A
V H  I N D O N E S I AV H  I N D O N E S I A
V H I N D O N E S I Ashimyti
 
SharePoint Online 「アクセス権」を理解する
SharePoint Online 「アクセス権」を理解するSharePoint Online 「アクセス権」を理解する
SharePoint Online 「アクセス権」を理解するKazuhiko Nakamura
 
Nghiên cứu thành ngữ tiếng Việt từ bình diện ngôn ngữ học nhân chủng : Luận á...
Nghiên cứu thành ngữ tiếng Việt từ bình diện ngôn ngữ học nhân chủng : Luận á...Nghiên cứu thành ngữ tiếng Việt từ bình diện ngôn ngữ học nhân chủng : Luận á...
Nghiên cứu thành ngữ tiếng Việt từ bình diện ngôn ngữ học nhân chủng : Luận á...nataliej4
 
kintoneのデータをSQLで操作!? ~Drivers/Gateway/Sync 徹底比較~
kintoneのデータをSQLで操作!? ~Drivers/Gateway/Sync 徹底比較~kintoneのデータをSQLで操作!? ~Drivers/Gateway/Sync 徹底比較~
kintoneのデータをSQLで操作!? ~Drivers/Gateway/Sync 徹底比較~CData Software Japan
 
Data × AI でどんな業務が改善できる? ​製造業様向け Data × AI 活用ユースケース & 製造MVPソリューションのご紹介
Data × AI でどんな業務が改善できる? ​製造業様向け Data × AI 活用ユースケース & 製造MVPソリューションのご紹介Data × AI でどんな業務が改善できる? ​製造業様向け Data × AI 活用ユースケース & 製造MVPソリューションのご紹介
Data × AI でどんな業務が改善できる? ​製造業様向け Data × AI 活用ユースケース & 製造MVPソリューションのご紹介IoTビジネス共創ラボ
 
S03_まずはここから!Microsoft 365 E3 でセキュリティの第一歩を踏み出す [Microsoft Japan Digital Days]
S03_まずはここから!Microsoft 365 E3 でセキュリティの第一歩を踏み出す [Microsoft Japan Digital Days]S03_まずはここから!Microsoft 365 E3 でセキュリティの第一歩を踏み出す [Microsoft Japan Digital Days]
S03_まずはここから!Microsoft 365 E3 でセキュリティの第一歩を踏み出す [Microsoft Japan Digital Days]日本マイクロソフト株式会社
 
DBP-009_クラウドで実現するスケーラブルなデータ ウェアハウス Azure SQL Data Warehouse 解説
DBP-009_クラウドで実現するスケーラブルなデータ ウェアハウス Azure SQL Data Warehouse 解説DBP-009_クラウドで実現するスケーラブルなデータ ウェアハウス Azure SQL Data Warehouse 解説
DBP-009_クラウドで実現するスケーラブルなデータ ウェアハウス Azure SQL Data Warehouse 解説decode2016
 
POWA50 - Power Apps と Power Automate の大規模な管理とサポート
POWA50 - Power Apps と Power Automate の大規模な管理とサポートPOWA50 - Power Apps と Power Automate の大規模な管理とサポート
POWA50 - Power Apps と Power Automate の大規模な管理とサポートTaiki Yoshida
 
Windows × ネットワーク! 更新プログラムの展開に使える ネットワークの最適化機能をマスターしよう
Windows × ネットワーク!  更新プログラムの展開に使える ネットワークの最適化機能をマスターしようWindows × ネットワーク!  更新プログラムの展開に使える ネットワークの最適化機能をマスターしよう
Windows × ネットワーク! 更新プログラムの展開に使える ネットワークの最適化機能をマスターしようTAKUYA OHTA
 
【de:code 2020】 今すぐはじめたい SQL Database のかしこい使い分け術 前編
【de:code 2020】 今すぐはじめたい SQL Database のかしこい使い分け術 前編【de:code 2020】 今すぐはじめたい SQL Database のかしこい使い分け術 前編
【de:code 2020】 今すぐはじめたい SQL Database のかしこい使い分け術 前編日本マイクロソフト株式会社
 
Niềm bi cảm (aware) trong Truyện Genji của Murasaki Shikibu
Niềm bi cảm (aware) trong Truyện Genji của Murasaki Shikibu Niềm bi cảm (aware) trong Truyện Genji của Murasaki Shikibu
Niềm bi cảm (aware) trong Truyện Genji của Murasaki Shikibu nataliej4
 
Luận văn: Dạy học các trích đoạn Truyện Kiều theo đặc trưng thi pháp thể loại...
Luận văn: Dạy học các trích đoạn Truyện Kiều theo đặc trưng thi pháp thể loại...Luận văn: Dạy học các trích đoạn Truyện Kiều theo đặc trưng thi pháp thể loại...
Luận văn: Dạy học các trích đoạn Truyện Kiều theo đặc trưng thi pháp thể loại...Dịch vụ viết thuê Khóa Luận - ZALO 0932091562
 
[SCCM 友の会] System Center Configuration Manager この秋おさえておきたい最新機能!
[SCCM 友の会]  System Center Configuration Manager  この秋おさえておきたい最新機能![SCCM 友の会]  System Center Configuration Manager  この秋おさえておきたい最新機能!
[SCCM 友の会] System Center Configuration Manager この秋おさえておきたい最新機能!TAKUYA OHTA
 
Nguyễn khuyến
Nguyễn khuyếnNguyễn khuyến
Nguyễn khuyếnchi28ht
 

What's hot (20)

生成系AIで変わるソフトウェア開発の現在と未来(修正版).pdf
生成系AIで変わるソフトウェア開発の現在と未来(修正版).pdf生成系AIで変わるソフトウェア開発の現在と未来(修正版).pdf
生成系AIで変わるソフトウェア開発の現在と未来(修正版).pdf
 
第34回Office 365勉強会 : Microsoftサポート活用術 ~ Microsoft Azureを中心に ~
第34回Office 365勉強会 : Microsoftサポート活用術 ~ Microsoft Azureを中心に ~第34回Office 365勉強会 : Microsoftサポート活用術 ~ Microsoft Azureを中心に ~
第34回Office 365勉強会 : Microsoftサポート活用術 ~ Microsoft Azureを中心に ~
 
アプリ開発ことはじめ! アイデア出しで躓かない Power Apps での閃き方.pdf
アプリ開発ことはじめ! アイデア出しで躓かない Power Apps での閃き方.pdfアプリ開発ことはじめ! アイデア出しで躓かない Power Apps での閃き方.pdf
アプリ開発ことはじめ! アイデア出しで躓かない Power Apps での閃き方.pdf
 
V H I N D O N E S I A
V H  I N D O N E S I AV H  I N D O N E S I A
V H I N D O N E S I A
 
SharePoint Online 「アクセス権」を理解する
SharePoint Online 「アクセス権」を理解するSharePoint Online 「アクセス権」を理解する
SharePoint Online 「アクセス権」を理解する
 
Nghiên cứu thành ngữ tiếng Việt từ bình diện ngôn ngữ học nhân chủng : Luận á...
Nghiên cứu thành ngữ tiếng Việt từ bình diện ngôn ngữ học nhân chủng : Luận á...Nghiên cứu thành ngữ tiếng Việt từ bình diện ngôn ngữ học nhân chủng : Luận á...
Nghiên cứu thành ngữ tiếng Việt từ bình diện ngôn ngữ học nhân chủng : Luận á...
 
kintoneのデータをSQLで操作!? ~Drivers/Gateway/Sync 徹底比較~
kintoneのデータをSQLで操作!? ~Drivers/Gateway/Sync 徹底比較~kintoneのデータをSQLで操作!? ~Drivers/Gateway/Sync 徹底比較~
kintoneのデータをSQLで操作!? ~Drivers/Gateway/Sync 徹底比較~
 
Bút pháp tả cảnh ngụ tình từ Chinh phụ ngâm khúc đến Truyện Kiều
Bút pháp tả cảnh ngụ tình từ Chinh phụ ngâm khúc đến Truyện KiềuBút pháp tả cảnh ngụ tình từ Chinh phụ ngâm khúc đến Truyện Kiều
Bút pháp tả cảnh ngụ tình từ Chinh phụ ngâm khúc đến Truyện Kiều
 
Data × AI でどんな業務が改善できる? ​製造業様向け Data × AI 活用ユースケース & 製造MVPソリューションのご紹介
Data × AI でどんな業務が改善できる? ​製造業様向け Data × AI 活用ユースケース & 製造MVPソリューションのご紹介Data × AI でどんな業務が改善できる? ​製造業様向け Data × AI 活用ユースケース & 製造MVPソリューションのご紹介
Data × AI でどんな業務が改善できる? ​製造業様向け Data × AI 活用ユースケース & 製造MVPソリューションのご紹介
 
S03_まずはここから!Microsoft 365 E3 でセキュリティの第一歩を踏み出す [Microsoft Japan Digital Days]
S03_まずはここから!Microsoft 365 E3 でセキュリティの第一歩を踏み出す [Microsoft Japan Digital Days]S03_まずはここから!Microsoft 365 E3 でセキュリティの第一歩を踏み出す [Microsoft Japan Digital Days]
S03_まずはここから!Microsoft 365 E3 でセキュリティの第一歩を踏み出す [Microsoft Japan Digital Days]
 
DBP-009_クラウドで実現するスケーラブルなデータ ウェアハウス Azure SQL Data Warehouse 解説
DBP-009_クラウドで実現するスケーラブルなデータ ウェアハウス Azure SQL Data Warehouse 解説DBP-009_クラウドで実現するスケーラブルなデータ ウェアハウス Azure SQL Data Warehouse 解説
DBP-009_クラウドで実現するスケーラブルなデータ ウェアハウス Azure SQL Data Warehouse 解説
 
POWA50 - Power Apps と Power Automate の大規模な管理とサポート
POWA50 - Power Apps と Power Automate の大規模な管理とサポートPOWA50 - Power Apps と Power Automate の大規模な管理とサポート
POWA50 - Power Apps と Power Automate の大規模な管理とサポート
 
Windows × ネットワーク! 更新プログラムの展開に使える ネットワークの最適化機能をマスターしよう
Windows × ネットワーク!  更新プログラムの展開に使える ネットワークの最適化機能をマスターしようWindows × ネットワーク!  更新プログラムの展開に使える ネットワークの最適化機能をマスターしよう
Windows × ネットワーク! 更新プログラムの展開に使える ネットワークの最適化機能をマスターしよう
 
【de:code 2020】 今すぐはじめたい SQL Database のかしこい使い分け術 前編
【de:code 2020】 今すぐはじめたい SQL Database のかしこい使い分け術 前編【de:code 2020】 今すぐはじめたい SQL Database のかしこい使い分け術 前編
【de:code 2020】 今すぐはじめたい SQL Database のかしこい使い分け術 前編
 
Apache Sparkの紹介
Apache Sparkの紹介Apache Sparkの紹介
Apache Sparkの紹介
 
Niềm bi cảm (aware) trong Truyện Genji của Murasaki Shikibu
Niềm bi cảm (aware) trong Truyện Genji của Murasaki Shikibu Niềm bi cảm (aware) trong Truyện Genji của Murasaki Shikibu
Niềm bi cảm (aware) trong Truyện Genji của Murasaki Shikibu
 
Luận văn: Dạy học các trích đoạn Truyện Kiều theo đặc trưng thi pháp thể loại...
Luận văn: Dạy học các trích đoạn Truyện Kiều theo đặc trưng thi pháp thể loại...Luận văn: Dạy học các trích đoạn Truyện Kiều theo đặc trưng thi pháp thể loại...
Luận văn: Dạy học các trích đoạn Truyện Kiều theo đặc trưng thi pháp thể loại...
 
[SCCM 友の会] System Center Configuration Manager この秋おさえておきたい最新機能!
[SCCM 友の会]  System Center Configuration Manager  この秋おさえておきたい最新機能![SCCM 友の会]  System Center Configuration Manager  この秋おさえておきたい最新機能!
[SCCM 友の会] System Center Configuration Manager この秋おさえておきたい最新機能!
 
Luận văn: Quá trình tiếp nhận tác phẩm của Tô Hoài, 9đ
Luận văn: Quá trình tiếp nhận tác phẩm của Tô Hoài, 9đLuận văn: Quá trình tiếp nhận tác phẩm của Tô Hoài, 9đ
Luận văn: Quá trình tiếp nhận tác phẩm của Tô Hoài, 9đ
 
Nguyễn khuyến
Nguyễn khuyếnNguyễn khuyến
Nguyễn khuyến
 

Similar to Mobile agent va ung dung vao workflow

Đánh giá công tác đãi ngộ nhân sự từ góc độ người lao động tại nhà máy may
Đánh giá công tác đãi ngộ nhân sự từ góc độ người lao động tại nhà máy mayĐánh giá công tác đãi ngộ nhân sự từ góc độ người lao động tại nhà máy may
Đánh giá công tác đãi ngộ nhân sự từ góc độ người lao động tại nhà máy mayDịch vụ Làm Luận Văn 0936885877
 
Quản trị đào tạo nhân viên chăm sóc khách hàng tại công ty viettel_Nhan lam l...
Quản trị đào tạo nhân viên chăm sóc khách hàng tại công ty viettel_Nhan lam l...Quản trị đào tạo nhân viên chăm sóc khách hàng tại công ty viettel_Nhan lam l...
Quản trị đào tạo nhân viên chăm sóc khách hàng tại công ty viettel_Nhan lam l...Nguyễn Thị Thanh Tươi
 
QUẢN TRỊ ĐÀO TẠO TẠI VIETTEL
QUẢN TRỊ ĐÀO TẠO TẠI VIETTELQUẢN TRỊ ĐÀO TẠO TẠI VIETTEL
QUẢN TRỊ ĐÀO TẠO TẠI VIETTELPhuong Tran
 
Thuc tap tot nghiep
Thuc tap tot  nghiepThuc tap tot  nghiep
Thuc tap tot nghiepthanhhauuit
 
Quản lý tài chính đối với Báo Gia đình và Xã hội thuộc Tổng cục Dân số- Kế ho...
Quản lý tài chính đối với Báo Gia đình và Xã hội thuộc Tổng cục Dân số- Kế ho...Quản lý tài chính đối với Báo Gia đình và Xã hội thuộc Tổng cục Dân số- Kế ho...
Quản lý tài chính đối với Báo Gia đình và Xã hội thuộc Tổng cục Dân số- Kế ho...luanvantrust
 
Quản lý tài chính đối với Báo Gia đình và Xã hội thuộc Tổng cục Dân số- Kế ho...
Quản lý tài chính đối với Báo Gia đình và Xã hội thuộc Tổng cục Dân số- Kế ho...Quản lý tài chính đối với Báo Gia đình và Xã hội thuộc Tổng cục Dân số- Kế ho...
Quản lý tài chính đối với Báo Gia đình và Xã hội thuộc Tổng cục Dân số- Kế ho...luanvantrust
 
Tin học hóa công tác quản lý lịch làm việc cho cán bộ nhân viên tại UBND h...
Tin học hóa công tác quản lý lịch làm việc cho cán  bộ nhân viên  tại UBND  h...Tin học hóa công tác quản lý lịch làm việc cho cán  bộ nhân viên  tại UBND  h...
Tin học hóa công tác quản lý lịch làm việc cho cán bộ nhân viên tại UBND h...anh hieu
 
Thanh xuan, new (repaired)
Thanh xuan, new (repaired)Thanh xuan, new (repaired)
Thanh xuan, new (repaired)Thanhxuan Pham
 
Luận văn: Đào tạo nhân sự tại công ty công nghiệp Thuận Tường - Gửi miễn phí ...
Luận văn: Đào tạo nhân sự tại công ty công nghiệp Thuận Tường - Gửi miễn phí ...Luận văn: Đào tạo nhân sự tại công ty công nghiệp Thuận Tường - Gửi miễn phí ...
Luận văn: Đào tạo nhân sự tại công ty công nghiệp Thuận Tường - Gửi miễn phí ...Dịch vụ viết bài trọn gói ZALO: 0909232620
 
Đào tạo và phát triển nguồn nhân lực tại công ty nội thất Điểm cao - sdt/ ZAL...
Đào tạo và phát triển nguồn nhân lực tại công ty nội thất Điểm cao - sdt/ ZAL...Đào tạo và phát triển nguồn nhân lực tại công ty nội thất Điểm cao - sdt/ ZAL...
Đào tạo và phát triển nguồn nhân lực tại công ty nội thất Điểm cao - sdt/ ZAL...Viết thuê báo cáo thực tập giá rẻ
 
Báo cáo thực tập
Báo cáo thực tậpBáo cáo thực tập
Báo cáo thực tậpthanhhauuit
 

Similar to Mobile agent va ung dung vao workflow (20)

Đánh giá công tác đãi ngộ nhân sự từ góc độ người lao động tại nhà máy may
Đánh giá công tác đãi ngộ nhân sự từ góc độ người lao động tại nhà máy mayĐánh giá công tác đãi ngộ nhân sự từ góc độ người lao động tại nhà máy may
Đánh giá công tác đãi ngộ nhân sự từ góc độ người lao động tại nhà máy may
 
Quy Trình Giao Nhận Hàng Hóa Bằng Đường Hàng Không, 9 ĐIỂM!
Quy Trình Giao Nhận Hàng Hóa Bằng Đường Hàng Không, 9 ĐIỂM!Quy Trình Giao Nhận Hàng Hóa Bằng Đường Hàng Không, 9 ĐIỂM!
Quy Trình Giao Nhận Hàng Hóa Bằng Đường Hàng Không, 9 ĐIỂM!
 
Quản trị đào tạo nhân viên chăm sóc khách hàng tại công ty viettel_Nhan lam l...
Quản trị đào tạo nhân viên chăm sóc khách hàng tại công ty viettel_Nhan lam l...Quản trị đào tạo nhân viên chăm sóc khách hàng tại công ty viettel_Nhan lam l...
Quản trị đào tạo nhân viên chăm sóc khách hàng tại công ty viettel_Nhan lam l...
 
QUẢN TRỊ ĐÀO TẠO TẠI VIETTEL
QUẢN TRỊ ĐÀO TẠO TẠI VIETTELQUẢN TRỊ ĐÀO TẠO TẠI VIETTEL
QUẢN TRỊ ĐÀO TẠO TẠI VIETTEL
 
Quản trị đào tạo tại viettel
Quản trị đào tạo tại viettelQuản trị đào tạo tại viettel
Quản trị đào tạo tại viettel
 
Thuc tap tot nghiep
Thuc tap tot  nghiepThuc tap tot  nghiep
Thuc tap tot nghiep
 
Quản lý tài chính đối với Báo Gia đình và Xã hội thuộc Tổng cục Dân số- Kế ho...
Quản lý tài chính đối với Báo Gia đình và Xã hội thuộc Tổng cục Dân số- Kế ho...Quản lý tài chính đối với Báo Gia đình và Xã hội thuộc Tổng cục Dân số- Kế ho...
Quản lý tài chính đối với Báo Gia đình và Xã hội thuộc Tổng cục Dân số- Kế ho...
 
Quản lý tài chính đối với Báo Gia đình và Xã hội thuộc Tổng cục Dân số- Kế ho...
Quản lý tài chính đối với Báo Gia đình và Xã hội thuộc Tổng cục Dân số- Kế ho...Quản lý tài chính đối với Báo Gia đình và Xã hội thuộc Tổng cục Dân số- Kế ho...
Quản lý tài chính đối với Báo Gia đình và Xã hội thuộc Tổng cục Dân số- Kế ho...
 
Tin học hóa công tác quản lý lịch làm việc cho cán bộ nhân viên tại UBND h...
Tin học hóa công tác quản lý lịch làm việc cho cán  bộ nhân viên  tại UBND  h...Tin học hóa công tác quản lý lịch làm việc cho cán  bộ nhân viên  tại UBND  h...
Tin học hóa công tác quản lý lịch làm việc cho cán bộ nhân viên tại UBND h...
 
Thanh xuan, new (repaired)
Thanh xuan, new (repaired)Thanh xuan, new (repaired)
Thanh xuan, new (repaired)
 
Luận văn: Đào tạo nhân sự tại công ty công nghiệp Thuận Tường - Gửi miễn phí ...
Luận văn: Đào tạo nhân sự tại công ty công nghiệp Thuận Tường - Gửi miễn phí ...Luận văn: Đào tạo nhân sự tại công ty công nghiệp Thuận Tường - Gửi miễn phí ...
Luận văn: Đào tạo nhân sự tại công ty công nghiệp Thuận Tường - Gửi miễn phí ...
 
Đào tạo và phát triển nguồn nhân lực tại công ty nội thất Điểm cao - sdt/ ZAL...
Đào tạo và phát triển nguồn nhân lực tại công ty nội thất Điểm cao - sdt/ ZAL...Đào tạo và phát triển nguồn nhân lực tại công ty nội thất Điểm cao - sdt/ ZAL...
Đào tạo và phát triển nguồn nhân lực tại công ty nội thất Điểm cao - sdt/ ZAL...
 
Báo cáo thực tập
Báo cáo thực tậpBáo cáo thực tập
Báo cáo thực tập
 
Luận văn: Nghiên cứu chất lượng công chức phường TP Việt Trì
Luận văn: Nghiên cứu chất lượng công chức phường TP Việt TrìLuận văn: Nghiên cứu chất lượng công chức phường TP Việt Trì
Luận văn: Nghiên cứu chất lượng công chức phường TP Việt Trì
 
Luận văn: Chất lượng công chức phường TP Việt trì, Phú Thọ
Luận văn: Chất lượng công chức phường TP Việt trì, Phú ThọLuận văn: Chất lượng công chức phường TP Việt trì, Phú Thọ
Luận văn: Chất lượng công chức phường TP Việt trì, Phú Thọ
 
Luận văn: Chất lượng công chức phường TP Việt Trì, Phú Thọ, HOT
Luận văn: Chất lượng công chức phường TP Việt Trì, Phú Thọ, HOTLuận văn: Chất lượng công chức phường TP Việt Trì, Phú Thọ, HOT
Luận văn: Chất lượng công chức phường TP Việt Trì, Phú Thọ, HOT
 
Đề tài: Nghiên cứu chất lượng công chức phường tỉnh Phú Thọ
Đề tài: Nghiên cứu chất lượng công chức phường tỉnh Phú ThọĐề tài: Nghiên cứu chất lượng công chức phường tỉnh Phú Thọ
Đề tài: Nghiên cứu chất lượng công chức phường tỉnh Phú Thọ
 
Đề tài- Hoạt động marketing bất động sản của công ty BĐS, 9 ĐIỂM
Đề tài- Hoạt động marketing bất động sản của công ty BĐS, 9 ĐIỂMĐề tài- Hoạt động marketing bất động sản của công ty BĐS, 9 ĐIỂM
Đề tài- Hoạt động marketing bất động sản của công ty BĐS, 9 ĐIỂM
 
Đề tài nâng cao hiệu quả hoạt động marketing, HAY, ĐIỂM 8
Đề tài  nâng cao hiệu quả hoạt động marketing, HAY, ĐIỂM 8Đề tài  nâng cao hiệu quả hoạt động marketing, HAY, ĐIỂM 8
Đề tài nâng cao hiệu quả hoạt động marketing, HAY, ĐIỂM 8
 
Đề tài: Giải pháp nâng cao hiệu quả cho vay tại Sacombank, HAY
Đề tài: Giải pháp nâng cao hiệu quả cho vay tại Sacombank, HAYĐề tài: Giải pháp nâng cao hiệu quả cho vay tại Sacombank, HAY
Đề tài: Giải pháp nâng cao hiệu quả cho vay tại Sacombank, HAY
 

More from Vcoi Vit

2eae0e86 e7c6-431d-aa08-b8f89ba71921 giaotrinhkinhtechinhtri31
2eae0e86 e7c6-431d-aa08-b8f89ba71921 giaotrinhkinhtechinhtri312eae0e86 e7c6-431d-aa08-b8f89ba71921 giaotrinhkinhtechinhtri31
2eae0e86 e7c6-431d-aa08-b8f89ba71921 giaotrinhkinhtechinhtri31Vcoi Vit
 
2eae0e86 e7c6-431d-aa08-b8f89ba71921 giaotrinhkinhtechinhtri14
2eae0e86 e7c6-431d-aa08-b8f89ba71921 giaotrinhkinhtechinhtri142eae0e86 e7c6-431d-aa08-b8f89ba71921 giaotrinhkinhtechinhtri14
2eae0e86 e7c6-431d-aa08-b8f89ba71921 giaotrinhkinhtechinhtri14Vcoi Vit
 
2eae0e86 e7c6-431d-aa08-b8f89ba71921 giaotrinhkinhtechinhtri13
2eae0e86 e7c6-431d-aa08-b8f89ba71921 giaotrinhkinhtechinhtri132eae0e86 e7c6-431d-aa08-b8f89ba71921 giaotrinhkinhtechinhtri13
2eae0e86 e7c6-431d-aa08-b8f89ba71921 giaotrinhkinhtechinhtri13Vcoi Vit
 
2eae0e86 e7c6-431d-aa08-b8f89ba71921 giaotrinhkinhtechinhtri05
2eae0e86 e7c6-431d-aa08-b8f89ba71921 giaotrinhkinhtechinhtri052eae0e86 e7c6-431d-aa08-b8f89ba71921 giaotrinhkinhtechinhtri05
2eae0e86 e7c6-431d-aa08-b8f89ba71921 giaotrinhkinhtechinhtri05Vcoi Vit
 
Giao trinh nuoi_trong_thuy_san46
Giao trinh nuoi_trong_thuy_san46Giao trinh nuoi_trong_thuy_san46
Giao trinh nuoi_trong_thuy_san46Vcoi Vit
 
Giao trinh nuoi_trong_thuy_san28
Giao trinh nuoi_trong_thuy_san28Giao trinh nuoi_trong_thuy_san28
Giao trinh nuoi_trong_thuy_san28Vcoi Vit
 
Giao trinh nuoi_trong_thuy_san23
Giao trinh nuoi_trong_thuy_san23Giao trinh nuoi_trong_thuy_san23
Giao trinh nuoi_trong_thuy_san23Vcoi Vit
 
Giao trinh nuoi_trong_thuy_san22
Giao trinh nuoi_trong_thuy_san22Giao trinh nuoi_trong_thuy_san22
Giao trinh nuoi_trong_thuy_san22Vcoi Vit
 
Giao trinh nuoi_trong_thuy_san21
Giao trinh nuoi_trong_thuy_san21Giao trinh nuoi_trong_thuy_san21
Giao trinh nuoi_trong_thuy_san21Vcoi Vit
 
Giao trinh nuoi_trong_thuy_san16
Giao trinh nuoi_trong_thuy_san16Giao trinh nuoi_trong_thuy_san16
Giao trinh nuoi_trong_thuy_san16Vcoi Vit
 
Giao trinh nuoi_trong_thuy_san05
Giao trinh nuoi_trong_thuy_san05Giao trinh nuoi_trong_thuy_san05
Giao trinh nuoi_trong_thuy_san05Vcoi Vit
 
Giao trinh nuoi_trong_thuy_san02
Giao trinh nuoi_trong_thuy_san02Giao trinh nuoi_trong_thuy_san02
Giao trinh nuoi_trong_thuy_san02Vcoi Vit
 
Giao trinh tong hop sv50
Giao trinh tong hop sv50Giao trinh tong hop sv50
Giao trinh tong hop sv50Vcoi Vit
 
Giao trinh tong hop sv49
Giao trinh tong hop sv49Giao trinh tong hop sv49
Giao trinh tong hop sv49Vcoi Vit
 
Giao trinh tong hop sv48
Giao trinh tong hop sv48Giao trinh tong hop sv48
Giao trinh tong hop sv48Vcoi Vit
 
Giao trinh tong hop sv47
Giao trinh tong hop sv47Giao trinh tong hop sv47
Giao trinh tong hop sv47Vcoi Vit
 
Giao trinh tong hop sv46
Giao trinh tong hop sv46Giao trinh tong hop sv46
Giao trinh tong hop sv46Vcoi Vit
 
Giao trinh tong hop sv45
Giao trinh tong hop sv45Giao trinh tong hop sv45
Giao trinh tong hop sv45Vcoi Vit
 
Giao trinh tong hop sv43
Giao trinh tong hop sv43Giao trinh tong hop sv43
Giao trinh tong hop sv43Vcoi Vit
 
Giao trinh tong hop sv41
Giao trinh tong hop sv41Giao trinh tong hop sv41
Giao trinh tong hop sv41Vcoi Vit
 

More from Vcoi Vit (20)

2eae0e86 e7c6-431d-aa08-b8f89ba71921 giaotrinhkinhtechinhtri31
2eae0e86 e7c6-431d-aa08-b8f89ba71921 giaotrinhkinhtechinhtri312eae0e86 e7c6-431d-aa08-b8f89ba71921 giaotrinhkinhtechinhtri31
2eae0e86 e7c6-431d-aa08-b8f89ba71921 giaotrinhkinhtechinhtri31
 
2eae0e86 e7c6-431d-aa08-b8f89ba71921 giaotrinhkinhtechinhtri14
2eae0e86 e7c6-431d-aa08-b8f89ba71921 giaotrinhkinhtechinhtri142eae0e86 e7c6-431d-aa08-b8f89ba71921 giaotrinhkinhtechinhtri14
2eae0e86 e7c6-431d-aa08-b8f89ba71921 giaotrinhkinhtechinhtri14
 
2eae0e86 e7c6-431d-aa08-b8f89ba71921 giaotrinhkinhtechinhtri13
2eae0e86 e7c6-431d-aa08-b8f89ba71921 giaotrinhkinhtechinhtri132eae0e86 e7c6-431d-aa08-b8f89ba71921 giaotrinhkinhtechinhtri13
2eae0e86 e7c6-431d-aa08-b8f89ba71921 giaotrinhkinhtechinhtri13
 
2eae0e86 e7c6-431d-aa08-b8f89ba71921 giaotrinhkinhtechinhtri05
2eae0e86 e7c6-431d-aa08-b8f89ba71921 giaotrinhkinhtechinhtri052eae0e86 e7c6-431d-aa08-b8f89ba71921 giaotrinhkinhtechinhtri05
2eae0e86 e7c6-431d-aa08-b8f89ba71921 giaotrinhkinhtechinhtri05
 
Giao trinh nuoi_trong_thuy_san46
Giao trinh nuoi_trong_thuy_san46Giao trinh nuoi_trong_thuy_san46
Giao trinh nuoi_trong_thuy_san46
 
Giao trinh nuoi_trong_thuy_san28
Giao trinh nuoi_trong_thuy_san28Giao trinh nuoi_trong_thuy_san28
Giao trinh nuoi_trong_thuy_san28
 
Giao trinh nuoi_trong_thuy_san23
Giao trinh nuoi_trong_thuy_san23Giao trinh nuoi_trong_thuy_san23
Giao trinh nuoi_trong_thuy_san23
 
Giao trinh nuoi_trong_thuy_san22
Giao trinh nuoi_trong_thuy_san22Giao trinh nuoi_trong_thuy_san22
Giao trinh nuoi_trong_thuy_san22
 
Giao trinh nuoi_trong_thuy_san21
Giao trinh nuoi_trong_thuy_san21Giao trinh nuoi_trong_thuy_san21
Giao trinh nuoi_trong_thuy_san21
 
Giao trinh nuoi_trong_thuy_san16
Giao trinh nuoi_trong_thuy_san16Giao trinh nuoi_trong_thuy_san16
Giao trinh nuoi_trong_thuy_san16
 
Giao trinh nuoi_trong_thuy_san05
Giao trinh nuoi_trong_thuy_san05Giao trinh nuoi_trong_thuy_san05
Giao trinh nuoi_trong_thuy_san05
 
Giao trinh nuoi_trong_thuy_san02
Giao trinh nuoi_trong_thuy_san02Giao trinh nuoi_trong_thuy_san02
Giao trinh nuoi_trong_thuy_san02
 
Giao trinh tong hop sv50
Giao trinh tong hop sv50Giao trinh tong hop sv50
Giao trinh tong hop sv50
 
Giao trinh tong hop sv49
Giao trinh tong hop sv49Giao trinh tong hop sv49
Giao trinh tong hop sv49
 
Giao trinh tong hop sv48
Giao trinh tong hop sv48Giao trinh tong hop sv48
Giao trinh tong hop sv48
 
Giao trinh tong hop sv47
Giao trinh tong hop sv47Giao trinh tong hop sv47
Giao trinh tong hop sv47
 
Giao trinh tong hop sv46
Giao trinh tong hop sv46Giao trinh tong hop sv46
Giao trinh tong hop sv46
 
Giao trinh tong hop sv45
Giao trinh tong hop sv45Giao trinh tong hop sv45
Giao trinh tong hop sv45
 
Giao trinh tong hop sv43
Giao trinh tong hop sv43Giao trinh tong hop sv43
Giao trinh tong hop sv43
 
Giao trinh tong hop sv41
Giao trinh tong hop sv41Giao trinh tong hop sv41
Giao trinh tong hop sv41
 

Mobile agent va ung dung vao workflow

  • 1. 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.
  • 2. Ứ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 ........................................................................................ ........................................................................................ ........................................................................................ ........................................................................................ ........................................................................................ ........................................................................................ ........................................................................................ ........................................................................................ ........................................................................................ ........................................................................................ ........................................................................................ ........................................................................................ ........................................................................................ ........................................................................................ ........................................................................................ ........................................................................................ ........................................................................................ .........................................................................
  • 3. Ứ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 ........................................................................................ ........................................................................................ ........................................................................................ ........................................................................................ ........................................................................................ ........................................................................................ ........................................................................................ ........................................................................................ ........................................................................................ ........................................................................................ ........................................................................................ ........................................................................................ ........................................................................................ ........................................................................................ ........................................................................................ ........................................................................................ ........................................................................................ ........................................................................
  • 4. Ứ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
  • 5. Ứ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
  • 6. Ứ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
  • 7. Ứ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
  • 8. Ứ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
  • 9. Ứ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
  • 10. Ứ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
  • 11. Ứ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.
  • 12. Ứ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.
  • 13. Ứ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.
  • 14. Ứ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.
  • 15. Ứ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 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 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
  • 16. Ứ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
  • 17. Ứ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) : Đặc tính: Chỉ làm việc trên 1 hệ thống, nơi mà agent bắt đầu vòng đời. 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: Không lệ thuộc vào hệ thống nơi chúng bắt đầu làm việc 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
  • 18. Ứ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 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
  • 19. Ứ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.
  • 20. Ứ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: Có khả năng di trú từ nơi này sang nơi khác Liên lạc được với nhau, nhân bản, nhập lại, tổng hợp tính toán 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 Có kích thước nhỏ 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
  • 21. Ứ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
  • 22. Ứ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
  • 23. Ứ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
  • 24. Ứ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
  • 25. Ứ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
  • 26. Ứ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 21 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 node A node B remote exec code Code A execute code node A node B node A node B execute code migrate code
  • 27. Ứ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 22 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. execute code node A node B
  • 28. Ứ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 23 2.4.2. Đời sống 1 agent : Hình 10: Vòng đời agent Creation : Khởi tạo agent, phát sinh ID cho agent, tuỳ biến cấu hình cho agent Serialize: Lưu lại trạng thái agent trước khi di trú đến AgentOS khác Migrate: Di trú agent kèm tình trạng của nó đến 1 nơi khác Deserialize: Tái tạo lại trạng thái trước khi di trú của agent 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 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
  • 29. Ứ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 24 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 Có 1 mã xác nhận duy nhất Xác định được những agent khác đang thực thi trong cùng host Có khả năng nhận và gửi thông điệp cho những agent khác
  • 30. Ứ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 25 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 : Độ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. 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) 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. 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. 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. 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ụ…. Có thể mở rộng được
  • 31. Ứ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 26 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ề.
  • 32. Ứ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 27 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.
  • 33. Ứ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 28 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
  • 34. Ứ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 29 đượ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 Authentication: kiểm tra xuất xứ agent Vertification: kiểm tra mã agent 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.
  • 35. Ứ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 30 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.
  • 36. Ứ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 31 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: 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. 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. 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 ở đó. 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. 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
  • 37. Ứ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 32 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
  • 38. Ứ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 33 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
  • 39. Ứ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 34 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: 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. cnf: chứa những file cấu hình cho Aglets platform 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. 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:
  • 40. Ứ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 35 Hình 12: Cài đặt platform Trong quá trình dịch và cài đặt thư viện, bạn sẽ thấy những message thông báo về version của Aglets. 3.3.3. Cài đặt chính sách bảo mật Như những chương trình Java khác, Aglets platform cần những quyền trong chính sách bảo mật của java để thực thi các tác vụ như mở socket, chạy các ứng dụng agent khác, mở tập tin trong máy client, … Bạn có thể copy các
  • 41. Ứ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 36 tập tin bin/.aglets.policy hoặc chương trình Ant có thể làm điều này giúp bạn. Ngoài ra Ant sẽ cài đặt keystore cho bạn. Aglets cần một keystore để chứa những khóa bảo mật dùng khi di trú; thông thường các keystore đưọc lưu trong file /.keystore. Để cài đặt các chính sách bảo mật và keystore như trên trong thư mục home, bạn chạy file install-home: Hình 13: Cài đặt chính sách bảo mật 3.3.4. Khai báo các biến môi trường Để Aglets platform có thể hoạt động được, bạn cần phải khai báo các biến môi trường sau đây bao gồm AGLETS_HOME và AGLETS_PATH. Ngoài ra, để chạy Aglets platform một cách tiện lợi hơn, bạn phải khai báo thư mục bin của aglets vào biến môi trường PATH. Bạn đánh các lệnh sau đây trong console của windows: set AGLETS_HOME=E:Magent set AGLETS_PATH=%AGLETS_HOME% set PATH=%PATH%;%AGLETS_HOME%bin hoặc có thể khai báo các biến môi trường trên trong control panel.
  • 42. Ứ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 37 3.3.5. Chạy Aglets server Sau khi cài đặt Aglets platform và keystore, bạn có thể chạy được Aglets server, tên gọi là Tahiti. Tahiti có thể chạy bằng cách chuyển vào thư mục bin và đánh dòng lệnh agletsd. Hình 14: Đăng nhập server Tahiti Tahiti sẽ yêu cầu người dùng đăng nhập, người dùng sẽ phải điền username và password. Nếu bạn đã cài đặt keystore thành công thì bạn cso thể đăng nhập với username là anonymous và password là aglets. Sau khi đăng nhập thành công thì cửa sổ chính của server Tahiti sẽ hiện ra. Bên trong màn hình chính này, người dùng có thể quản lý server, tạo và huỷ các agents, …
  • 43. Ứ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 38 Hình 15: Màn hình Server Tahiti Để đóng server, bạn có thể click vào button close hoặc chọn Exit trong Aglet menu. Trong cả hai cách Aglets sẽ hỏi bạn có chắc sẽ thoát hay không, khi đó bạn click OK để thoát, Cancel sẽ đóng cửa sổ đó lại và Reboot sẽ làm server restart 3.4. Aglet LifeCycle Lớp ibm.com.aglet.Aglet cung cấp các chức năng cơ bản cho 1 đối tượng mobile và mọi aglet phải là thể hiện họăc subclass của nó. Để dùng 1 aglet, trước hết ta phải instantiated (tạo ra thể hiển) của nó. Có 2 cách để làm điều này. Cách 1: tạo 1 aglet hoàn tòan mới từ định nghĩa lớp bằng cách gọi hàm AgletContext.createAglet(URL codebase, String name, Object init). Hàm này tạo ra 1 thể hiện mới trong context và khởi động nó nếu cần thiết. Cách 2: tạo ra 1 bản sao của 1 aglet đã tồn tại bằng cách dùng hàm Aglet.clone(). Aglet được sao ra sẽ có cùng trạng thái như aglet gốc nhưng có AgletID khác.
  • 44. Ứ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 39 Hình 16: Vòng đời Aglet Khi được tạo ra, 1 đối tượng aglet có thể được gửi đi đến và/hoặc nhận về từ 1 server khác, ngưng hoạt động và được lưu trữ ở 1 nơi nào đó để rồi lại được tái kích hoạt. 1 aglet có thể tự gửi chính nó đến 1 server khách bằng cách gọi hàm nguyên gốc Aglet.dispatch (URL dest). Để chính xác hơn, aglet cư ngụ trong 1 aglet context và có thể di chuyển từ context này đến context khác trong suốt quá trình hoạt động. Bởi vì server có thể phục vụ nhiều context trong cùng 1 máy ảo Java (JVM), và 1 host có thể phục vụ nhiều server nên context được đặt tên với những thụôc tính sau: Địa chỉ của host, thường là địa chỉ IP Port mà server dùng để nghe Số context trong server. Ví dụ: atp://aglets.ibm.com:1434/context_name Khi di trú, 1 aglet phải ngưng hoạt động, lần lượt đưa trạng thái hoạt động và bytecode của nó vào 1 form chuẩn và rồi được chuyển đến đích. Bên phía nhận, đối tượng Java được tái xây dựng dựa theo dữ liệu nhận được từ gốc và 1 thread được đăng kí và thực thi. Aglets có thể bền vững. Do 1 mobile aglet cần được phần mảnh thành bit-stream, mọi mobile aglet có thể bền vững trong tự nhiên. Hàm Dispatch ActivateDeactivate Create Dispose Clone Retract ProxyProxy Aglet Aglet Class Bộ lưu trữ thứ cấp Context BContext A
  • 45. Ứ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 40 Aglet.deactivete(long timeout) giúp 1 aglet được lưu trữ lại trong bộ nhớ và đưa aglet vào trạng thái ngủ đông trong 1 khỏang thời gian nhất định. Sau khi hết thời gian hoặc khi 1 chương trình khác yêu cầu nó tái kích hoạt, aglet sẽ được tái kích hoạt trong cùng context mà nó bị nhưng hoạt động. Không giống như các đối tượng Java thông thường sẽ bị tự động hủy bởi chế độ thu thập rác của Java ( garbage collector ), 1 đối tượng aglet sẽ tự quyết định có hủy chính nó hay không. Nếu bạn gọi phương thức dipose() để hủy 1 aglet, hàm onDisposing() được gọi để hoàn tất công việc tùy vào trạng thái hiện hành của aglet. Tuy nhiên, khi aglet bị hủy, những tài nguyên đang được sử dụng như cơ sở dữ liệu hay file sẽ không được tự động hủy như aglet, bạn phải có những lệnh riêng hủy chúng. 3.5. Aglet API Hình 17: Aglet API 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 agent. Nhờ vào Aglet API, khả năng nổi tiếng của Java là “viết một lần, thi hành bất cứ đâu” được viết lại là “viết một lần, lưu hành bất cứ đâu”. Một khi aglets được tạo ra, nó sẽ chạy trên mọi máy có hỗ trợ Aglet API mà 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. Aglet : chính là lớp ảo com.ibm.aglet.Aglet : định nghĩa các phương thức nền tảng đẻ kiểm sóat sự di chuyển và vòng đời của mobile agent. Mọi mobile agent đều phải kế thừa từ lớp ảo này. Vài hàm quan trọng của lớp này là : Aglet Proxy Aglet Aglet Proxy AgletMessage Aglet Context
  • 46. Ứ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 41 Aglet.dispatch(URL) : di chuyển aglet từ máy nó đang cư trú đến máy đích theo thông số nhập vào. Aglet.deactivate(long time) : lưu trữ aglet và đưa aglet vào trạng thái ngủ đông. Aglet.clone() : sinh ra 1 thể hiện của aglet mới có cùng trạng thái như aglet gốc nhưng là đối tượng kiểu AgletProxy chứ không phải ở kiểu Aglet. Aglet Proxy : com.ibm.aglet.AgletProxy: là 1 lớp interface hoạt động như 1 đại diện của aglet và cung cấp cách chung nhất để truy cập aglet đứng sau nó. Lớp aglet có nhiều phương thức public mà 1 vài trong số này lẽ ra không được gọi trực tiếp từ các aglet khác vì lý do bảo mật. Vì vậy mọi aglet nếu muốn liên lạc với những aglet khác thì đầu tiên là phải tạo ra đối tượng proxy và giao tiếp thông qua interface này. Nói cách khác, aglet proxy hoạt động như 1 đối tượng che chắn, bảo vệ agent khỏi các agent nguy hiểm. Khi được gọi, aglet proxy sẽ truy cập đến SecurityManager để xác định xem đối tượng gọi có được quyền thực thi phương thức hay không. Một chức năng quan trọng khác của aglet proxy là cung cấp location transparency. Nếu 1 aglet thực sự đang cư trú ở 1 host khác, aglet proxy sẽ chuyển tiếp yêu cầu đến host đó và trả về kết quả cho host cục bộ hiện tại. Message : com.ibm.aglet.Message : đối tượng aglet giao tiếp bằng cách trao đổi những đối tượng thuộc lớp Message. Một đối tượng Message có 1 đối tượng kiểu String đế xác định kiểu của thông điệp. Một thông điệp có thể được gửi đến aglet bằng cách gọi hàm AgletProxy.sendMessage(Message msg) Aglet Context : com.ibm.aglet.AgletContext : cung cấp interface cho môi trường runtime chạy aglet. Mọi aglet đều chứa 1 tham chiếu đến đối tượng AgletContext hiện hành của nó thông qua hàm Aglet.getAgletContext(), và dùng nó để chứa thông tin như địa chỉ của host, bảng liệt kê Aglet Proxy hoặc tạo 1
  • 47. Ứ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 42 aglet mới. Khi di trú đến host mới, đối tượng context sẽ bị hủy đi và thay thế nó là đối tượng aglet của host mới khi agent di trú đến.
  • 48. Ứ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 43 Chương 3: Khái niệm và các mô hình WorkFlow Công việc quản lý workflow xuất phát từ những công việc đòi hỏi tính tự động trong những văn phòng doanh nghiệp, trong đó mọi tài liệu cần phải được số hóa và được lưu chuyển giữa các nhóm làm việc. Ngày nay, công việc quản lý workflow thu hút rất nhiều những quan tâm dựa vào khả năng của nó trong mô hình hóa, thực thi và quản lý tiến trình. Tiến trình công việc không chỉ là tiến trình trong kinh doanh mà còn là bất kì một tiến trình nào cần được điều khiển và quản lý. Nhưng điểm chính của việc quản lý workflow là những hứa hẹn trong sử dụng nó để quản lý tiến trình kinh doanh Workflow giúp nhà quản trị lên kế hoạch, quản lý 1 cách tự động các nhiệm vụ, giám sát tình trạng công việc, đưa thông tin đến từng thành viên đúng lúc, có được cái nhìn tổng quan về tiến triển công việc. Có 2 cách hiểu về workflow. Cách 1: workflow theo nghĩa rộng, là 1 mô hình nghiệp vụ, trong đó các công việc được phân công rõ ràng, thực hiện theo thứ tự đặt sẵn. Khái niệm workflow theo cách hiểu này đã có từ lâu và được ứng dụng rộng rãi trong các ngành công nghiệp. Cách 2: Khái niệm workflow trong khoa học máy tính ứng dụng vào quản lý tiến trình kinh doanh (tìm hiểu dưới đây). Khái niệm về workflow nói chung rất phức tạp và đa dạng, trong phạm vi luận văn này, xin được trình bày về khái niệm workflow trong quản lý tiến trình kinh doanh.
  • 49. Ứ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 44 1. Khái niệm Workflow là quá trình điện toán hoá hay tự động hóa một phần hoặc toàn bộ một tiến trình kinh doanh. Ý nghĩa của workflow khi này đơn giản chỉ là các luồng công việc. Hệ thống quản trị luồng công việc: quản lý và thực thi các mô hình luồng công việc thông qua việc thực thi các phần mềm. Gồm 2 thành tố: Bộ phận hỗ trợ đặc tả mô hình luồng công việc Bộ phận vận hành mô hình đã đặc tả 2. Ích lợi áp dụng workflow: Lợi ích của việc sử dụng worflow trong quản lý tiến trình kinh doanh được liệt kê như sau: Tiến trình kinh doanh đưọc vạch ra rõ ràng, vì thế trách nhiệm và những mối quan hệ cộng tác được định rõ. Dễ dàng để tối ưu hóa công việc kinh doanh vì những định nghĩa chính xác trên. Tiến trình kinh doanh được chia nhỏ thành những module và những module này có thể tổ chức lại theo mô hình workflow để thích ứng với tiến trình kinh doanh chung, vì thế dễ dàng thích nghi nhanh chóng với những thay đổi không đoán trước được trong những yêu cầu và điều kiện kinh doanh. Workflow có thể theo dõi hằng ngày. Workflow tích hợp với những ứng dụng hay những hệ thống khác vào tiến trình kinh doanh. Workflow phân định rõ quan hệ và trách nhiệm trong công việc do nó tạo ra những phần công việc riêng. Theo dự đoán, workflow sẽ tạo nên những phương pháp, những kĩ thuật từ nhiều nguồn trong khoa học máy tính cũng như quản trị học. Ví dụ, kĩ thuật workflow liên quan đến quản trị cơ sở dữ liệu, tính toán client-server, giao diện
  • 50. Ứ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 45 người dùng, ứng dụng và kết hợp các hệ thống phụ, quản lý tài liệu, giả lập, tái cấu trúc và thực tập kinh doanh 3. Các dạng workflow Có rất nhiều dạng workflow từ đơn giản đến nâng cao. Ở góc độ thử nghiệm của luận văn, ứng dụng sẽ chỉ áp dụng các dạng workflow đơn giản. 3.1. Các dạng đơn giản: 3.1.1. Tuần tự (Sequence): Mô tả: một hoạt động trong luồng công việc được kích hoạt ngay sau khi 1 hoạt động khác kết thúc trong cùng 1 tiến trình. Ví dụ: hành vi gửi hóa đơn được thực hiện ngay sau hành vi gửi hàng hóa Cài đặt: dạng tuần tự được sử dụng để mô hình các bước liên tiếp trong cùng 1 tiến trình của luồng công việc. Mô hình: Hình 18: Mô hình Workflow Tuần tự Chú thích: Công việc B được thực hiện sau khi công việc A đã được hoàn thành. 3.1.2. Phân luồng song song (Parallel Split) Mô tả: 1 điểm trong 1 tiến trình của luồng công việc là nơi 1 công việc được tách thành nhiều công việc con. Các công việc con có thể được tiến hành đồng thời cùng lúc với nhau (song song nhau). Ví dụ: Sau khi hành vi nhận tiền hoàn thành, hành vi gửi hàng và hành vi xuất hóa đơn sẽ được kích hoạt và tiến hành đồng thời Mô hình: Công việc A Công việc B
  • 51. Ứ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 46 Hình 19: Mô hình Workflow song song 3.1.3. Đồng bộ hoá Mô tả: 1 điểm trong luồng công việc là nơi các tiến trình hay các công việc con nhập lại làm 1 tiến trình hay công việc đơn. Trong dạng mô hình này, tất cả các luồng đi vào phải chờ nhau tại điểm đồng bộ hóa. Ví dụ: Sau khi hành vi gửi hàng và xuất hóa đơn được thực hiện, hành vi lưu trữ mới được kích hoạt. Mô hình: Hình 20: Mô hình workflow Đồng bộ hóa Chú thích: A và B phải hoàn thành thì C mới được kích hoạt 3.1.4. Phép chọn loại trừ (Exclusive Choice) Mô tả: tại 1 điểm trong luồng công việc sẽ diễn ra sự lựa chọn công việc nào sẽ được kích hoạt tiếp theo trong 1 loạt các công việc kế tiếp Ví dụ: Sau khi công việc kiểm thử phần mềm được thực hiện, dựa vào kết quả kiểm thử sẽ quyết định công việc tiếp theo là lập trình hay đóng gói phần mềm. Công việc A Công việc B Công việc C Công việc A Công việc B Công việc CAND
  • 52. Ứ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 47 Mô hình: Hình 21: Mô hình workflow Chọn lọai trừ Chú thích: Chỉ có hoặc B hoặc C được thực hiện, không thể tiến hành đồng thời cả hai. 3.1.5. Trộn đơn giản (Simple Merge) Mô tả: 1 điểm trong luồng công việc là nơi 2 hay nhiều nhánh gặp nhau, không có sự đồng bộ hóa giữa các nhánh. Ví dụ: Công việc lưu trữ được thực hiện sau khi công việc gửi hóa đơn hoặc công việc nhận hóa đơn được thực hiện. Mô hình: Hình 22: Mô hình workflow Trộn đơn giản Chú thích: chỉ cần 1 trong 2 công việc A hoặc B được hoàn thành thì công việc C sẽ được kích hoạt Công việc A Công việc C Công việc B Lựa chọn B hay C Công việc A Công việc B Công việc C
  • 53. Ứ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 48 3.2. Các dạng nâng cao: 3.2.1. Chọn đa nhánh (Multi-Choice) Mô tả: Một điểm trong tiến trình là nơi mà một hoặc nhiều nhánh được chọn theo một quyết định hoặc dựa trên dữ liệu của nghiệp vụ.Mẫu này khác với mẫu 2.4.1.4 (chọn loại trừ) có thể chọn một hoặc nhiều nhánh được chọn ra và thực thi, tương tự như phép XOR. Các ví dụ:Sau khi thực hiện hành vi đánh-giá-thiệt-hại, hành vi “liên hệ phòng cứu hỏa” hoặc hành vi “liên hệ công ty bảo hiểm” được thực hiện. Ít nhất một trong hai hành vi này được thực hiện. Tuy nhiên, cũng có thể là cả hai cần được thực hiện. Mô hình: Hình 23: Mô hình workflow Chọn đa nhánh 3.2.2. Trộn đồng bộ hoá Mô tả: Một điểm trong tiến trình là nơi nhiều nhánh hội tụ lại thành một tiến trình duy nhất. Nếu có nhiều hơn một nhánh thực thi, việc đồng bộ hóa (việc đợi nhau giữa các nhánh ) được thực hiện. Nếu chỉ có một nhánh được thực thi, các nhánh khác có thể hội tụ mà không cần đồng bộ hóa. Trong mẫu này nếu có một nhánh đã được kích hoạt, thì nó không thể kích hoạt lại lần nữa trong khi còn đang đợi các nhánh khác hoàn tất. Mẫu này khác với mẫu Đồng bộ hóa ở chỗ nó đồng bộ dựa trên số nhánh thực sự được kích hoạt lúc thực thi. Còn mẫu Đồng bộ hóa bắt buộc tất cả các nhánh đi ra khỏi nút AND phân luồng (AND-Split) phải đều được thực hiện.
  • 54. Ứ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 49 Các ví dụ: Mở rộng ví dụ trong mẫu 6 (chọn đa nhánh), sau khi một hoặc cả hai hành vi liên-hệ-phòng-chữa-cháy và liên-hệ-công-ty-bảo-hiểm đã hoàn tất (dựa trên việc nó có được thực thi hay không), hành vi trình-báo-cáo phải được thực hiện (chỉ duy nhất một hành vi) Mô hình: Hình 24: Mô hình workflow Trộn đồng bộ hóa 3.2.3. Trộn đa nhánh Mô tả: Một điểm trong tiến trình là nơi hai hoặc nhiều nhánh hội tụ lại và không được đồng bộ hóa. Nếu nhiều hơn một nhánh được kích hoạt, ngay lập tức hành vi sau điểm trộn sẽ bắt đầu đối với mỗi kích hoạt của mỗi nhánh vào. Mẫu này chính là thể hiện cho cơ chế trộn phục vụ cho mục đích dùng chung cho các thành phần trong quy trình. Các ví dụ: Thỉnh thoảng hai hay nhiều nhánh có cùng điểm kết thúc. Thay vì lặp lại tiến trình này cho mỗi nhánh (có thể phức tạp), ta dùng mẫu trộn đa nhánh. Ví dụ đơn giản của trường hợp này là 2 hành vi “kiểm tra đơn xin việc” và “xử lý đơn xin việc” cùng thực hiện song song và thực hiện trước hành vi “đóng trường hợp”. Mô hình: Hình 25: Mô hình workflow Trộn đa nhánh Công việc A Công việc B Công việc C Công việc A Công việc B Công việc C