mobile agent va ung dung vao workflow

154
i Li cm ơn Chúng em xin chân thành cm ơn các thy cô hướng dn đã tn tình giúp đỡ và truyn đạt kiến thc để chúng em có thhoàn thành lun văn này. Đặc bit, chúng em xin gi l i cám ơn sâu sc nht đến thy Cao Đă ng Tân - người đã động viên và giúp đỡ cho chúng em nhit tình trong quá trình thc hin lun văn. Chúng em cũng xin gi li cm ơn đến tt ccác thy cô trong khoa Công nghthông tin đã to điu kin tt cho chúng em làm vic, hc tp và nghiên cu trong sut quá trình thc hin lun văn. Cm ơn tt ccác bn hc cùng khóa đã nhit tình chia skinh nghim và nhng kiến thc quý báu, giúp chúng tôi có thlàm tt công vic ca mình. Mc dù đã cgng hoàn thành lun văn vi tt csnlc ca bn thân, nhưng lun văn chc chn không tránh khi nhng thiếu sót, kính mong quý Thy Cô tn tình chbo. Mt ln na xin gi đến tt cmi người li cm ơn chân thành nht.

Upload: vcoi-vit

Post on 26-Jun-2015

151 views

Category:

Documents


5 download

TRANSCRIPT

Page 1: Mobile agent va ung dung vao workflow

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.

Page 2: Mobile agent va ung dung vao workflow

Ứ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

........................................................................................

........................................................................................

........................................................................................

........................................................................................

........................................................................................

........................................................................................

........................................................................................

........................................................................................

........................................................................................

........................................................................................

........................................................................................

........................................................................................

........................................................................................

........................................................................................

........................................................................................

........................................................................................

........................................................................................

.........................................................................

Page 3: Mobile agent va ung dung vao workflow

Ứ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

........................................................................................

........................................................................................

........................................................................................

........................................................................................

........................................................................................

........................................................................................

........................................................................................

........................................................................................

........................................................................................

........................................................................................

........................................................................................

........................................................................................

........................................................................................

........................................................................................

........................................................................................

........................................................................................

........................................................................................

........................................................................

Page 4: Mobile agent va ung dung vao workflow

Ứ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

Page 5: Mobile agent va ung dung vao workflow

Ứ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

Page 6: Mobile agent va ung dung vao workflow

Ứ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

Page 7: Mobile agent va ung dung vao workflow

Ứ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

Page 8: Mobile agent va ung dung vao workflow

Ứ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

Page 9: Mobile agent va ung dung vao workflow

Ứ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

Page 10: Mobile agent va ung dung vao workflow

Ứ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

Page 11: Mobile agent va ung dung vao workflow

Ứ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.

Page 12: Mobile agent va ung dung vao workflow

Ứ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.

Page 13: Mobile agent va ung dung vao workflow

Ứ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.

Page 14: Mobile agent va ung dung vao workflow

Ứ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.

Page 15: Mobile agent va ung dung vao workflow

Ứ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

Page 16: Mobile agent va ung dung vao workflow

Ứ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

Page 17: Mobile agent va ung dung vao workflow

Ứ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

Page 18: Mobile agent va ung dung vao workflow

Ứ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

Coo

pera

tive

Adaptive

autonomous

Intelligent Agents

Page 19: Mobile agent va ung dung vao workflow

Ứ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.

Page 20: Mobile agent va ung dung vao workflow

Ứ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

Page 21: Mobile agent va ung dung vao workflow

Ứ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

Page 22: Mobile agent va ung dung vao workflow

Ứ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

Page 23: Mobile agent va ung dung vao workflow

Ứ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

Page 24: Mobile agent va ung dung vao workflow

Ứ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

Page 25: Mobile agent va ung dung vao workflow

Ứ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 codecode

code execute code

server client

Page 26: Mobile agent va ung dung vao workflow

Ứ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 execcode

Code A execute code

node A node B

node A node B

execute code migrate

code

Page 27: Mobile agent va ung dung vao workflow

Ứ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

Page 28: Mobile agent va ung dung vao workflow

Ứ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

Page 29: Mobile agent va ung dung vao workflow

Ứ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

Page 30: Mobile agent va ung dung vao workflow

Ứ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

Page 31: Mobile agent va ung dung vao workflow

Ứ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ề.

Page 32: Mobile agent va ung dung vao workflow

Ứ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.

Page 33: Mobile agent va ung dung vao workflow

Ứ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

Page 34: Mobile agent va ung dung vao workflow

Ứ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.

Page 35: Mobile agent va ung dung vao workflow

Ứ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.

Page 36: Mobile agent va ung dung vao workflow

Ứ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

Page 37: Mobile agent va ung dung vao workflow

Ứ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

Page 38: Mobile agent va ung dung vao workflow

Ứ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

Page 39: Mobile agent va ung dung vao workflow

Ứ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:

Page 40: Mobile agent va ung dung vao workflow

Ứ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

Page 41: Mobile agent va ung dung vao workflow

Ứ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.

Page 42: Mobile agent va ung dung vao workflow

Ứ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, …

Page 43: Mobile agent va ung dung vao workflow

Ứ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.

Page 44: Mobile agent va ung dung vao workflow

Ứ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

Activate DeactivateCreate

Dispose

Clone

Retract

Proxy Proxy

Aglet Aglet

Class Bộ lưu trữ thứ cấp

Context B Context A

Page 45: Mobile agent va ung dung vao workflow

Ứ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

Aglet Message

Aglet Context

Page 46: Mobile agent va ung dung vao workflow

Ứ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

Page 47: Mobile agent va ung dung vao workflow

Ứ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.

Page 48: Mobile agent va ung dung vao workflow

Ứ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.

Page 49: Mobile agent va ung dung vao workflow

Ứ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

Page 50: Mobile agent va ung dung vao workflow

Ứ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

Page 51: Mobile agent va ung dung vao workflow

Ứ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 C AND

Page 52: Mobile agent va ung dung vao workflow

Ứ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

Page 53: Mobile agent va ung dung vao workflow

Ứ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.

Page 54: Mobile agent va ung dung vao workflow

Ứ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

Page 55: Mobile agent va ung dung vao workflow

Ứ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

50

3.2.4. Discriminator

Mô tả: Mẫu Discriminator là một điểm trong tiến trình làm nhiệm vụ đợi

đến khi một trong các nhánh hoàn tất sau đó mới kích hoạt các hành động tiếp

theo. Từ đó trở đi, nó vẫn cho phép các nhánh vào còn lại hoàn tất nhưng “phớt

lờ” chúng. Trong trường hợp tất cả các nhánh hoàn tất, nó trở về tình trạng ban

đầu để có thể được kích hoạt lại lần nữa.

Các ví dụ: Để làm tăng tốc độ phản hồi, hai yêu cầu tìm kiếm được gửi

đến 2 cơ sở dữ liệu trên Internet. Kết quả nào đến trước sẽ tiếp tục luồng công

việc. Cái còn lại sẽ không được quan tâm.

Mô hình:

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

3.2.5. Các vòng lặp tuỳ ý

Mô tả:Một điểm trong tiến trình là nơi các hành vi được thực hiện lặp lại

nhiều lần. Mẫu này là thể hiện cho cơ chế lặp cấu trúc. Trong mẫu này việc lặp

thường được quyết định bởi các điều kiện hoặc lựa chọn.

Các ví dụ:Tiến trình xem xét sản phẩm : trong tiến trình này vòng lặp các

hoạt động Make,Read, Note, Approve là một vòng lặp cấu trúc.

Mô hình:

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

Công việc A

Công việc B

Công việc C

Page 56: Mobile agent va ung dung vao workflow

Ứ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

51

3.2.6. Kết thúc không tường minh

Mô tả: Một tiến trình phải được chấm dứt khi không còn gì để thực hiện

tiếp. Nói cách khác, không còn hành vi nào đang thực hiện trong workflow và

không có hành vi nào sẽ được kích hoạt (tuy nhiên workflow không ở trong tình

trạng deadlock). Mẫu này thường được thể hiện trong các ngôn ngữ mô hình hóa

không bắt buộc điều kiện : “mọi tiến trình hoặc tiến trình con phải có nút quy

định cuối cùng trong mô hình”. Mẫu này gọi là kết thúc không tường minh, bởi

vì ràng buộc kết thúc của nó không bắt buộc tiến trình công việc phải thực hiện

đến điểm cuối, mà chỉ dựa trên số công việc còn có khả năng được thực hiện.

Các ví dụ: Trong một công việc có nhiều hoạt động thực hiện, giả sử

đang thực hiện đến một công việc kế cuối. Nếu ta áp dụng mẫu 2.4.2.14

(Withdraw) thì trong tiến trình đang làm sẽ không còn hoạt động nào phải làm

tiếp. Khi đó tiến trình công việc sẽ kết thúc mà không cần phải đợi phải thực

hiện hoạt động cuối cùng (đã bị hủy)

3.2.7. Đa thể hiện không đồng bộ

Mô tả: Mẫu này mô tả một hành vi có thể có nhiều thể hiện. Nếu hành vi

có thể kích hoạt các thể hiện của nó, thì mỗi thể hiện của hành vi này sẽ tạo một

tiến trình (một thể hiện luồng) riêng biệt được điều khiển độc lập với các thể

hiện luồng khác phát sinh từ hành vi này. Hơn nữa, không cần thiết phải đồng bộ

các thể hiện luồng này.

Các ví dụ: Một khách hàng đang đặt một cuốn sách từ quầy sách điện tử

như Amazon có thể đặt mua các quyển sách khác ở cùng một thời điểm. Rất

nhiều hành vi (ví dụ: lập hóa đơn, cập nhật thông tin khách hàng, …) được thực

hiện khi khách hàng đặt hàng. Tuy nhiên, cần phải có nhiều thể hiện để điều

khiển các hoạt động thuộc về một cá nhân đặt hàng (ví dụ như cập nhật hàng dự

trữ, giao hàng). Mẫu này có thể dùng trong trường hợp các hoạt động đặt hàng

không cần phải đồng bộ.

Page 57: Mobile agent va ung dung vao workflow

Ứ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

52

3.2.8. Đa thể hiện với thông tin biết trước ở thời điểm thiết kế

Mô tả: Trong một thể hiện của tiến trình, hành vi có thể được kích hoạt

nhiều lần. Số các thể hiện của một hành vi trong một tiến trình cho trước biết

được ở thời điểm thiết kế. Khi các thể hiện hoàn tất thì hành vi khác mới được

bắt đầu.

Ví dụ: Việc cấp giấy phép đối với các chất liệu nguy hiểm yêu cầu phải

có 3 loại giấy phép khác nhau. Điều này có nghĩa là hoạt động cấp giấy phép

được xác định số lần thực hiện trước là 3 lần (ở thời điểm thiết kế).

3.2.9. Đa thể hiện với thông tin biết trước ở thời điểm thực thi

Mô tả: Là trường hợp một hành vi được kích hoạt nhiều lần. Số các thể

hiện của một hành vi có thể biến đổi, tuy nhiên sẽ được xác định ở thời điểm

thực hiện, trước khi các thể hiện của hành vi được tạo ra. Một khi tất cả thể hiện

hoàn tất, hành vi khác sẽ được bắt đầu.

Ví dụ: trong việc kiểm tra tiến độ thực hiện phần mềm, số lần kiểm tra

phụ thuộc vào độ phức tạp của từng đề án cụ thể, nguồn nhân lực, mức độ rủi ro.

Hoạt động kiểm tra hoàn toàn không thể xác định lúc thiết kế quy trình phần

mềm, mà chỉ được quyết định việc kiểm tra bao nhiêu lần khi đã vào giai đoạn

triển khai quy trình nghiệp vụ cho một phần mềm xác định.

3.2.10. Đa thể hiện không biết trước thông tin

Mô tả: Dùng cho trường hợp hành vi được kích hoạt nhiều lần. Số thể

hiện của hành vi cho trước không biết được trong thời điểm thiết kế và trong

thời điểm thực thi - trước khi các thể hiện được tạo ra. Các thể hiện của hành vi

có thể được tạo ra một cách tùy ý. Một khi tất cả các thể hiện hoàn tất, hành vi

kế tiếp mới được bắt đầu. Sự khác biệt của mẫu này so với mẫu 14 là khi có một

vài thể hiện được thực thi hoặc đã hoàn tất, những thể hiện mới vẫn có thể được

tạo ra.

Page 58: Mobile agent va ung dung vao workflow

Ứ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

53

Các ví dụ: Để xử lý một trường hợp bảo hiểm, có thể có hoặc không có

nhiều bản tường trình của các nhân chứng được xử lý. Số lượng bản tường trình

là có thể thay đổi. Thậm chí khi đang xử lý các bản tường trình, nhân chứng mới

lại xuất hiện và số bản tường trình lại tăng lên. Như vậy việc xử lý các bản

tường trình là không thể biết trước được số lần thực hiện dù ở mức thiết kế (mô

hình hóa) hay thực thi. Chỉ khi triển khai nghiệp vụ, bao giờ không còn công

việc xử lý bản tường trình nào thì hoạt động xử lý tường trình mới kết thúc.

3.2.11. Chọn lựa bị trì hoãn

Mô tả: Một điểm trong tiến trình là nơi một trong số các nhánh được

chọn. Không giống như tách – XOR, nhánh được chọn không được thực hiện

ngay (dựa trên dữ liệu hoặc quyết định) mà có nhiều nhánh tương tự được tạo ra.

Tuy nhiên, chỉ có một nhánh được thực thi. Khi môi trường thực hiện kích hoạt

một nhánh, các nhánh khác sẽ bị hủy. Việc chọn nhánh bị hoãn cho đến khi việc

xử lý một trong các nhánh tương tự thực sự bắt đầu. Đó là thời điểm hủy các

nhánh còn lại. Mẫu này tương tự như Discriminator, tuy nhiên có 2 điểm khác

biệt:

Discriminator dùng trong cơ chế trộn.

Discriminator vẫn cho phép thực hiện các công việc của những nhánh

còn lại, nhưng việc thực hiện các nhánh này sẽ không dẫn đến kích hoạt hoạt

động kế tiếp.

Ví dụ: Các chuyến công tác cần được phê chuẩn trước khi thực hiện. Có

hai cách để phê chuẩn một nhiệm vụ : hoặc là trưởng phòng phê chuẩn nhiệm vụ

(hành vi A) hoặc cả quản lý dự án (hành vi B) phê chuẩn nhiệm vụ. Hai hành vi

này được thực thi duy nhất chỉ một, và việc chọn lựa giữa A và B là không

tường minh, nghĩa là ở cùng một thời điểm các hành vi A và B được gửi đến

trưởng phòng và quản lý dự án. Tại thời điểm mà một trong hai hành vi này

được chọn lựa hoàn tất, hành vi còn lại sẽ biến mất.

Page 59: Mobile agent va ung dung vao workflow

Ứ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

54

3.2.12. Đường vào song song

Mô tả: Một tập các hành vi được thực hiện theo thứ tự tùy ý sau : đối

với mỗi hành vi trong tập, việc thực thi được xác định vào thời điểm chạy, và

không có hành vi nào được thực hiện cùng lúc (có nghĩa là không có 2 hành vi

nào được thực hiện trong cùng một thể hiện của workflow ở cùng một thời

điểm).

Các ví dụ:Hải quân đòi hỏi các ứng viên phải thực hiện 2 cuộc kiểm tra:

“kiểm tra thể chất” và “kiểm tra tinh thần”. Các cuộc kiểm tra có thể diễn ra với

bất kỳ thứ tự nào miễn là không có 2 cuộc kiểm tra nào cùng thời điểm.

- Vào cuối mỗi năm, ngân hàng thực hiện 2 hoạt động “cộng lãi tức” và

“tính tiền vay” trên mỗi tài khoản.Các hoạt động có thể thực hiện với bất kỳ thứ

tự nào.Nhưng vì chúng có thể được thực hiện trên cùng một tài khoản, nên

không được thực hiện đồng thời.

3.2.13. Cột mốc

Mô tả: Việc kích hoạt một hành vi dựa vào một trạng thái cụ thể nào đó,

ví dụ như hành vi được kích hoạt chỉ khi đi đến một cột mốc còn hoạt động.

Xem xét các hành vi A, B và C. Hành vi A chỉ được kích hoạt khi hành vi B đã

thực thi còn C thì chưa, nghĩa là A sẽ không được kích hoạt trước khi B thực thi

hoặc sau khi C thực thi. Hình 17 minh hoạ trường hợp này. Trạng thái giữa B và

C được mô hình bằng điểm m. Điểm này là cột mốc cho A.

Các ví dụ:

Trong một công ty du lịch, các chuyến bay, xe cho thuê, và các khách

sạn có thể được đặt trước miễn là hóa đơn chưa in ra.

Khách hàng có thể hủy đơn mua hàng trước 2 ngày khi có kế hoạch

phân phối.

Khách hàng có thể đòi hỏi các chứng nhận bay sáu tháng sau chuyến

bay

Mô hình:

Page 60: Mobile agent va ung dung vao workflow

Ứ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

55

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

3.2.14. Widthdraw

Mô tả: Mẫu này thể hiện việc một hoạt động đợi kích hoạt bị loại khỏi

danh sách hoạt động.

Các ví dụ: Một bản thiết kế phần mềm được kiểm tra bởi nhiều nhóm kĩ

sư với các hoạt động kiểm tra khác nhau. Tuy nhiên, nhiều khi để có kết quả

đúng hạn, chỉ cần một hoạt động kiểm tra được thực hiện. Khi đó, ở thời điểm

có nhiều hoạt động kiểm tra đang sẵn sàng thực hiện, cho phép hủy một số thể

hiện kiểm tra hiện tại (đang trong trạng thái sẵn sàng hoạt động) để kịp tiến độ

hoạt động.

3.2.15. Hủy trường hợp

Mô tả: Một thể hiện của nhánh hoạt động bị loại bỏ hoàn toàn kể cả các

hoạt động được thực hiện nhiều lần trên các nhánh đó.

Các ví dụ: Trong quá trình thuê người làm, các ứng viên tự rút đơn của

mình thì các thể hiện hoạt động cho việc xét ứng viên đó hiện tại sẽ được hủy.

Các thể hiện hoạt động của việc xét ứng viên thường đặt trên một nhánh luồng

công việc. Khi đó tất cả các hoạt động ứng với nhánh xét cho ứng viên này được

hủy.

Page 61: Mobile agent va ung dung vao workflow

Ứ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

56

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

4.1. Ích lợi

Ưu điểm của MA: có thể hoạt động trong khi ngắt mạng, khả năng tự trị cao,

tự xử lý các vấn đề xảy ra trên đường di chuyển, hoạt động tốt trong môi trường

mạng bất đồng bộ, uyển chuyển, linh hoạt.

Ưu điểm workflow: giúp người quản trị tiết kiệm thời gian và công sức quản

lý quy trình nghiệp vụ, dễ dàng thay đổi cơ cấu quản lý trên máy tính khi có sự

thay đổi trong thực tế.

Từ trước đến nay, các phần mềm quản lý workflow vẫn hoạt động theo mô

hình C-S. Khuyết điểm của mô hình là:

Khi có sự cố mạng xảy ra, mọi công việc sẽ bị ngưng lại

Người quản trị hệ thống workflow phải giải quyết tất cả các lỗi xảy ra như

thay đổi đường đi hoặc hủy công việc khi 1 client có sự cố.

Thay mô hình C-S bằng mô hình Mobile Agent, sẽ giải quyết được những

khuyết điểm trên.

Ngoài ra, còn có thêm những ưu điểm khác như: chương trình agent sẽ tự

đốc thúc người thực hiện công việc hoàn thành công việc đúng thời hạn, giảm lưu

lượng đường truyền do không phải liên lạc với server trong khi hoạt động....

4.2. Các hướng nghiên cứu tích hợp hệ thống mobile agent và

workflow

4.2.1. Agent Enhanced Workflow: Với mô hình tích hợp này, 1 engine workflow sẽ làm trung tâm điều

khiển mọi hoạt động, còn agent sẽ hoạt động như những service được cung cấp

bởi hệ thống quản lý workflow. Workflow engine sẽ quản lý việc khởi tạo và

hủy của agent, do đó, trong mô hình này, agent chủ yếu là các interface agent,

không cần phải là 1 agent thông minh. Thực tế, trong những phần mềm được

Page 62: Mobile agent va ung dung vao workflow

Ứ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

57

thương mại dựa trên mô hình này như IBM MQSeries Workflow, InConcert,

chức năng của agent chỉ như một phần của phần mềm bình thường.

4.2.2. Agent Based Workflow Đây là 1 hệ thống phân tán với nhiều agent. Các agent này hoàn tòan độc

lập với nhau, mỗi agent có một công việc riêng và tồn tại cho đến khi nó thực thi

xong phần việc của nó. Trong mô hình này, tiến trình kinh doanh được thể hiện

trên hệ thống mạng theo mô hình mobile agent. Các công việc sẽ được giao cho

agent và agent sẽ di trú trên mạng theo workflow đã định sẵn để hoàn thành

công việc. Mô hình này rất sát với thực tế, đòi hỏi agent phải thông minh, có khả

năng liên lạc và giao tiếp với các agent khác để hoàn thành công việc.

Hiện nay, vẫn chưa có phần mềm nào dựa trên mô hình này được thương

mại hóa. Tuy nhiên, đang có khá nhiều nghiên cứu về mô hình này như ADEPT

(Jennings et al, 1996) hay FireFlow System (Yan, 1999)…

Luận văn sẽ tiến hành xây dựng ứng dụng hệ thống workflow sử dụng

mobile agent theo mô hình Agent Based Workflow, cụ thể ứng dụng sẽ là xây

dựng 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 doanh nghiệp.

Page 63: Mobile agent va ung dung vao workflow

Ứ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

58

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

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

Ứng dụng sẽ là xây dựng 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 công ty. Ứng dụng sẽ là 1 hệ thống khép kín từ khâu

thiết kế, chỉnh sửa workflow cho đến điều khiển thực thi MA theo workflow đã

thiết kế. Hệ thống được đặt tên là Workag.

1.1. Cơ cấu tổ chức trong cơ quan:

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

Trong doanh nghiệp, để bộ máy làm việc vận hành liên tục và hiệu quả,

tồn tại nhu cầu rất lớn đòi hỏi sự liên lạc, trao đổi giữa các phòng ban với nhau

.......

.......

.......

.......

.......

.......

Công ty

Phòng 1 Phòng 2 Phòng 3

Tổ 1 Tổ 2

Nhân viên 1

Nhân viên 2

Role 1 Role 2

Page 64: Mobile agent va ung dung vao workflow

Ứ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

59

bằng những báo cáo, tài liệu theo những quy trình cụ thể. Do các quy trình trao

đổi này thường xuyên thay đổi theo những tình trạng và yêu cầu khác nhau của

doanh nghiệp nên không thể xây dựng phần mềm theo kiểu truyền thống để thỏa

mãn nhu cầu này. Trong khi đó, sử dụng công nghệ workflow lại rất thích hợp.

Điều kiện thực tế trong doanh nghiệp như sau:

Đứng đầu Công ty là Giám đốc.

Đứng đầu mỗi phòng là trưởng phòng

Đứng đầu mỗi tổ là tổ trưởng

Dưới tổ trưởng có thể có các role như tổ phó, thành viên...

Mỗi nhân viên trong cùng 1 phòng có 1 máy tính nối mạng LAN, có IP khác

nhau và duy nhất, có cài AgentOS. Các phòng ban khác nhau có thể thuộc những

mạng LAN khác nhau, nằm ở những quốc gia khác nhau nhưng đều nằm trong 1

mạng WAN chung của công ty.

Xây dựng workflow theo các cấp trong công ty, tại mỗi node, sẽ quy định rõ

chức năng từng node

1 ví dụ cho mô hình workflow: quy trình kiểm lỗi phần mềm: sau khi lập

trình, module sẽ được chuyển từ phòng “Coding” đến phòng “Testing”.

Phòng Testing sẽ không chia thành các tổ mà chỉ gồm trưởng phòng và các

thành viên.

Workflow cấp phòng sẽ là:

NX: Dù phòng “Coding” và phòng “Testing” nằm ở trong cùng 1 mạng LAN

của công ty hay nằm ở 2 nước khác nhau thì hệ thống vẫn hoạt động tốt.

Mô hình workflow cấp role cho phòng Testing: giả sử phòng Testing có 3

nhân viên và 1 trưởng phòng, module sẽ được tách ra thành 3 phần để mỗi nhân

viên kiểm tra. Sau khi kiểm tra, kết quả sẽ được gửi lại cho trưởng phòng

Phòng “Coding

Phòng “Testing”

Page 65: Mobile agent va ung dung vao workflow

Ứ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

60

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

1.2. Các cách giải quyết vấn đề:

1.2.1. Sử dụng nhân công

Để thực hiện chuỗi công việc trong công ty mà không cần nhờ đến hệ

thống máy tính hỗ trợ, cần có các nhân viên chuyên việc đưa các mẫu báo cáo

đánh giá đến từng phòng, giao cho từng nhân viên sau đó đi thu thập lại, tổng

hợp kết quả và đem kết quả qua phòng ban khác giao cho các nhân viên khác để

tiếp tục công việc.

Ưu điểm: không tốn chi phí xây dựng hệ thống hỗ trợ

Khuyết điểm:

Tốn thời gian để nhân viên giao mẫu báo cáo đến các nhân

viên khác và tốn thời gian thu thập, tổng hợp lại báo cáo.

Dễ lẫn lộn giữa các công văn, báo cáo với nhau do số lượng

báo cáo nhiều.

Các nhân viên gặp khó khăn trong việc xem, tham khảo những

báo cáo của các nhân viên khác dù được phép.

Khó khăn trong việc chỉnh sửa nếu báo cáo thực hiện sai

Quy trình cứng nhắc, không linh hoạt

đầu vào

đầu ra

Trưởng phòng

Nhân viên 1

Nhân viên 2

Nhân viên 3

Page 66: Mobile agent va ung dung vao workflow

Ứ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

61

1.2.2. Sử dụng mô hình Client-Server

Server lưu trữ các mẫu báo cáo, các client sẽ truy cập vào server để lấy

báo cáo về máy mình làm. Khi thực hiện xong, client sẽ gửi trả kết quả về server

để client khác tiếp tục tải về máy thực hiện.

Ưu điểm: mọi thao tác đều do server quản lý nên quản lý được tập

trung.

Khuyết điểm:

Lượng gói tin di chuyển trên mạng là rất nhiều sẽ gây thiếu băng

thông

Nếu mẫu báo cáo được thực hiện ở client có lỗi thì server sẽ phải

gửi trả lại client, gây tốn thời gian là lãng phí đường truyền.

Nếu client bị sự cố mạng thì sẽ không thực hiện công việc được.

1.2.3. Sử dụng Mobile Agent

Mobile agent sẽ mang các mẫu báo cáo theo mình đến các máy. Khi nhân

viên đã hoàn thành báo cáo, agent sẽ kiểm lỗi, nếu báo cáo không hoàn chỉnh,

agent sẽ yêu cầu nhân viên thực hiện lại báo cáo. Nếu báo cáo đã hoàn thành,

agent sẽ đóng gói chính nó và di trú đến 1 máy khác để tiếp tục công việc. Khi

hoàn thành, agent sẽ tổng hợp kết quả và gửi về cho máy chủ.

Ưu điểm:

Giảm lưu lượng thông tin di chuyển trên mạng

Có thể hoạt động ngay cả khi mạng gặp sự cố nên đặc biệt thích

hợp với các môi trường mạng bất đồng bộ.

Có tính chủ động cao, có thể kiểm lỗi ngay tại máy nhân viên giúp

tiết kiệm thời gian và chi phí di chuyển.

Vì những lý do trên nên mobile agent được lựa chọn để giải quyết

yêu cầu đặt ra

Page 67: Mobile agent va ung dung vao workflow

Ứ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

62

1.3. Yêu cầu cơ bản của hệ thống:

Thiết kế được 1 workflow hoàn chỉnh. Mô hình workflow phải chứa được

những cấu trúc sau:

Tách 1 công việc ra nhiều công việc nhỏ, thực hiện tuần tự hoặc

song song.

Hợp các việc nhỏ lại theo các mô hình đã trình bày ở phần B.II.5

Ứng với mỗi node trên workflow, cho phép thiết kế 1 form báo cáo

riêng

Xây dựng framework cho hệ thống Workflow trên nền mobile agent

Ứng dụng trong trường hợp cụ thể: định nghĩa hệ thống workflow

cho vấn đề lấy thông tin, đánh giá thông tin từ các chuyên gia

Yêu cầu kĩ thuật:

Triển khai được trên môi trường mạng LAN

Thực thi được trên nhiều hệ điều hành.

Số lượng node trong workflow không giới hạn.

1.4. Các đối tượng sử dụng hệ thống:

Administrator (người quản trị hệ thống): cần có kiến thức tốt về mạng và

máy tính

User (người dùng thông thường, tương ứng với các nhân viên trong công ty):

chỉ cần biết những kiến thức cơ bản về mạng như kết nối, nhận tin và kiến thức về

xử lý văn bản

1.5. Cấu trúc hệ thống

Hệ thống gồm 3 phần chính:

1.5.1. Workflow Document Designer:

Cho phép administrator thiết kế các mẫu báo cáo dành cho user. Chương

trình này sử dụng kĩ thuật drag’ndrop để thiết kế dựa trên các đối tượng đồ họa

Page 68: Mobile agent va ung dung vao workflow

Ứ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

63

có sẵn. Chương trình sẽ chuyển các đối tượng đó và bố trí của chúng thành file

văn bản XML và các file này sẽ được đính kèm vào từng node trên workflow để

được mang đi bởi mobile agent.

1.5.2. Workflow Designer:

Chương trình cho phép administrator thiết kế workflow với các dạng

workflow có sẵn bằng cách kéo thả. Chương trình được xây dựng trên nền

graphic, cho phép người dùng chọn đối tượng và kéo qua phần thiết kế, đính

kèm các văn bản cần thiết vào từng node trên đường đi . Các đối tượng có trong

chương trình gồm:

Node: 1 node trong workflow là đại diện cho 1 máy tính trong

mạng. Khi chọn node, người dùng phải nhập đầy đủ thông tin cho

node như IP của node, tên node.

Đường đi: thể hiện ở dạng 1 mũi tên, thể hiện công việc đi từ node

này sang node khác

Trạm trung chuyển: có nhiều loại trạm trung chuyển, thể hiện các

dạng khác nhau của workflow

Ví dụ:

1.5.3. Agent Manager:

Hoạt động dựa trên nền tảng Aglets của IBM, tạo mới và quản lý các

agent. Người dùng cần đưa vào các thông tin như : WF cần thực hiện, thời gian

sống của agent. Hệ thống sẽ sinh ra các loại agent sau:

Wfagent( Workflow Agent) : agent mang các mẫu văn bản đến các

người dùng trong workflow đã thiết kế. Wfagent sẽ chuyển thông

tin ở định dạng XML thành các đối tượng đồ họa giúp người dùng

dễ thao tác. Sau khi các người dùng đó đã cung cấp đầy đủ thông

tin cho agent, agent sẽ chuyển các đối tượng đồ họa về lại dạng

OR : Lựa chọn giữa 2 node mạng

Page 69: Mobile agent va ung dung vao workflow

Ứ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

64

văn bản XML, tổng hợp lại đi tiếp đến node khác theo workflow

đã định và gửi kết quả về cho Agent manager.

Uagent (Updater agent): Khi có thay đổi đường thông tin sửa lỗi từ

Agent Manager, AM sẽ gửi uagent mang các thông tin mới cần

sửa đổi đến các agent đang chạy trên hệ thống và cập nhật thông

tin mới cho các agent này. Nếu uagent gặp 1 uagent khác có thời

gian cập nhật mới hơn hoặc gặp agent đã tiếp xúc với uagent mới

hơn thì nó sẽ tự huỷ.

Nagent (Notifier agent): cứ mỗi khi wfagent tiếp xúc với 1 người

dùng mới, nó sẽ gửi thông tin cập nhật về cho Agent Manager

thông qua nagent.

1.6. Kiến trúc hệ thống:

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

Agent Manager

CSDL WF

CSDL DOC ( XML)

Workflow Designer

Workflow Document Designer

wfagent uagent

Người dùng A

Agent Host

wfagent

Người dùng B

Agent Host

wfagentAgent Host

wfagent

nagent

nagent

CSDL LT (XML)

Page 70: Mobile agent va ung dung vao workflow

Ứ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

65

: đường di trú của MA

: truy cập cơ sở dữ liệu

wfagent: Workflow agent

uagent: Updater agent

nagent: Notifier agent

CSDL WF: Lưu trữ các workflow đã được thiết kế trước.

CSDL DOC: Lưu trữ các mẫu báo cáo đã được thiết kế trước

CSDL LT: Lưu trữ các mẫu báo cáo được wfagent mang về

Mỗi người dùng cần cài sẵn trên máy chương trình Agent Host là Server

Tahiti, chương trình này giúp các agent đến máy có thể hoạt động được.

Quy trình hoạt động như sau: Sử dụng chương trình Form Designerthiết kế

ra các mẫu báo cáo, chương trình Workflow Designer sử dụng các mẫu báo cáo

này, để thiết kế workflow. Agent Manager sau khi load workflow sẽ tạo ra

wfagent. Wfagent dựa trên workflow được cung cấp sẽ lần lượt hoặc tạo các bản

sao để đi đến các máy và yêu cầu user trên mỗi máy thực hiện mẫu báo cáo ứng

với từng máy theo workflow đã định sẵn. Khi đến được 1 máy, wfagent sẽ tạo ra 1

nagent gửi về cho Agent Manager báo đã đến được máy nào. Khi có lỗi xảy ra

hoặc khi cần cập nhật workflow, Agent Manager sẽ tạo ra uagent mang thông tin

cần cập nhật đến với từng wfagent đang chạy. Wfagent sau khi hoàn thành nhiệm

vụ sẽ trở về Agent Manager mang theo các mẫu báo cáo đã được hoàn thành và

lưu vào thư mục đã định sẵn.

1.7. Quy trình nghiệp vụ của từng đối tượng sử dụng:

1.7.1. Administrator

Mở chương trình thiết kế workflow, chọn tạo mới workflow, thiết kế

workflow theo các template sẵn có, thiết kế form lấy thông tin đánh giá cho từng

node trên workflow, lưu form, lưu workflow.

Page 71: Mobile agent va ung dung vao workflow

Ứ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

66

Mở chương trình tạo MA, chọn workflow cần thực hiện, chạy workflow.

Trường hợp có lỗi trả về: xác định xem node gây lỗi có liên lạc được

không, nếu được thì chạy lại workflow từ node đó, nếu không thì thiết kế lại

workflow từ node gây lỗi rồi chạy lại workflow

1.7.2. User

Nhận MA được gửi đến, mở văn bản lên, điền các thông tin vào văn bản.

Trong 1 số trường hợp, nếu user điền sai, MA sẽ báo lỗi để user sửa lại. Nếu

user chậm trễ thực hiện văn bản, MA sẽ liên tục nhắc nhở.

Sau khi điền xong, user lưu lại văn bản, báo đã kết thúc nhiệm vụ. MA

kiểm tra văn bản đã hoàn thành đúng và đủ chưa. Nếu chưa, MA sẽ đòi hỏi user

điền đủ, nếu rồi, MA sẽ tự đóng gói và di trú đến nơi khác

1.8. Yêu cầu cụ thể các chức năng

1.8.1. Administrator

Thiết kế workflow: tạo mới workflow, mở workflow cũ, chỉnh sửa thuộc

tính node trong workflow, thêm, xóa node mới trong workflow, lưu workflow,

tạo form mới, mở form cũ, chỉnh sửa form, lưu form.

Tạo MA: load workflow đã tạo, chạy workflow, xem chi tiết lỗi trả về,

thiết lập timeout, thiết lập expired date

1.8.2. User:

Mở form, điền thông tin vào form, lưu form tạm, báo hoàn thành form,

sửa những lỗi do MA đưa ra.

1.9. Cách thức xử lý văn bản

Có 2 cách thức xử lý văn bản:

Hệ thống chỉ xử lý 1 loại văn bản duy nhất: có 2 loại:

Page 72: Mobile agent va ung dung vao workflow

Ứ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

67

Chỉ có 1 văn bản duy nhất cho tòan hệ thống, mọi user làm việc với

lọai văn bản này: loại này kém hiệu quả do đơn điệu và chỉ thích

hợp với 1 vài trường hợp đặc biệt.

Chỉ có 1 văn bản duy nhất chạy trên tòan hệ thống, tuy nhiên, mỗi

user chỉ được làm việc trên một phần văn bản nhất định, những phần

khác user có thể có thế có quyền đọc hoặc chỉnh sửa.

Ưu điểm: agent chỉ mang 1 file văn bản duy nhất, di

chuyển nhẹ và nhanh, tiết kiệm đường truyền.

Khuyết điểm: administrator phải thiết lập chế độ thao

tác với văn bản cho từng user, chuyện này rất mất thời

gian và công sức, dễ dẫn đến sai sót. Trong thực tế,

không phải lúc nào 1 văn bản có thể bao quát hết được

công việc của các user. Các mẫu báo cáo rất đa dạng,

đặc biệt trong những công ty lớn với nhiều phòng ban

khác nhau.

Hệ thống xử lý nhiều loại văn bản: mỗi máy tính nhận 1 mẫu báo cáo

riêng, các kết quả sau khi thu thập sẽ được tổng hợp lại.

Ưu điểm: tạo tính linh hoạt cho ứng dụng, thao tác của administrator

và user đơn giản hơn

Khuyết điểm: dung lượng agent lớn do phải mang theo nhiều file,

lãng phí tài nguyên do nhiều file có nội dung trùng nhau.

Hiện nay, tốc độ đường truyền mạng ngày càng cao với băng thông ngày

càng lớn nên vấn đề agent có dung lượng lớn cũng không là vấn đề quan trọng. Vì

vậy, hệ thống Workag sẽ sử dụng cách tiếp cận 2 là xử lý nhiều lọai văn bản khác

nhau, mỗi node sẽ nhận được 1 mẫu báo cáo riêng.

Page 73: Mobile agent va ung dung vao workflow

Ứ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

68

1.10. Vấn đề merge dữ liệu:

1.10.1. Không cần merge

Người dùng ở node sau có thể xem thông tin form đã được điền ở các

node trước nó.

1.10.2. Merge:

Có nhiều phương án merge:

1.10.2.1. Merge đơn giản:

Ví dụ: ta có Workflow như sau

Hình 32: Merge đơn giản Form được merge ở node D sẽ là nội dung được điền của các Node A,

B, C xếp theo tuần tự Form A đến Form B đến Form C.

1.10.2.2. Merge trộn các Form.

Nội dung của các Form A, B, C sẽ được trộn với nhau theo từng

control trên form. Ví dụ: Các Form A, B, C có nội dung như nhau (Bắt buộc

để merge) và gồm 1 TextArea, các radio button và các CheckBox.

Khi đó Form đã được trộn tại D có 1 Text Area là các Text Area

được nối lại tại D. Các Radio Button lựa chọn sẽ là kết quả lựa chọn của A, B,

C: ví dụ:

A

B

C

D

Page 74: Mobile agent va ung dung vao workflow

Ứ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

69

Các check box cũng tương tự:

Như vậy phải quy định rõ phương thức merge tương ứng cho từng

loại control hỗ trợ khi thiết kế form như ListBox, CombBox, ….

1.10.3. Đánh giá:

Có thể có nhiều cách merge, nhưng hai cách merge đưa trên chỉ là 2 ví

dụ.

Phương án không merge:

Ưu: đơn giản dễ lập trình

Khuyết: có thể gây khó khăn cho node sau khi muốn tham

khảo thông tin form của các node trước trong trường hợp node

liền trước quá nhiều.

Phương án merge 1 :

Ưu: đơn giản dễ lập trình

Khuyết: không tự nhiên, cũng có thể gây khó khăn cho người

xem khi có quá nhiều node cần merge, kích thước form sẽ lớn

khó kiểm soát.

Phương án merge 2 :

Ưu : người xem dễ dàng nắm bắt kết quả của những form

trước.

Page 75: Mobile agent va ung dung vao workflow

Ứ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

70

Khuyết: phải quy định các quy tắc trộn form, phức tạp khi lập

trình

1.11. Các xử lý tình huống

Khi một workflow đi vào hoạt động, có hai tình huống phát sinh đòi hỏi

workflow phải thay đổi:

1.11.1. Admin chủ động thay đổi WF

Trong trường hợp này, lại có 2 trường hợp con là:

1.11.1.1. Thay đổi toàn bộ chuỗi công việc

Khi đó workflow cũ không còn giá trị, các agent đang hoạt động cho

workflow cũ sẽ nhận được lệnh tự huỷ, ko cần phải thu hồi lại.

1.11.1.2. Thay đổi 1 phần workflow

Do mỗi khi hoàn thành nhiệm vụ ở 1 node , agent sẽ gửi thông báo về

cho Agent Manager là hoàn thành nhiệm vụ ở node đó. Trong Agent Manager sẽ

hiện lên tình trạng thực hiện workflow

Do đó, nếu phần thay đổi nằm ở những node mà chưa có agent đến, thì

sự thay đổi được chấp thuận. Khi đó, sẽ có 1 agent mới, mang thông tin thay đổi

đi đến những agent đang chạy trong workflow cập nhật đường đi mới cho các

agent đó.

Nếu phần thay đổi có liên quan đến những node đã co agent chạy qua,

thì sự thay đổi đó không được chấp nhận. Nếu admin thực sự muốn thay đổi thì

chỉ còn phương án là huỷ workflow cũ, thiết kế và chạy lại workflow mới từ

đầu.

Các ví dụ:

Ví dụ1:

Workflow ban đầu có tình trạng sau: 1 agent đang ở node B và D.

Page 76: Mobile agent va ung dung vao workflow

Ứ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

71

Ta muốn thay đổi workflow như sau:

Thay đổi này sẽ không được chấp nhận vì có liên quan đến node D, mà

đã có 1 agent đến node D rồi.

Vídụ 2: ta có workflow ban đầu:

Ta muốn thay đổi workflow như sau:

A

B

C

D

E

F

A

B

C

D

E

F

A

B

C

D

E

F

Page 77: Mobile agent va ung dung vao workflow

Ứ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

72

Thay đổi này là hoàn toàn thực thi được do không liên quan đến node

nào đã có agent.

1.11.2. Workflow đang chạy thì xảy ra lỗi ở 1 node

Khi 1 MA đang trên quá trình di trú theo mô hình dưới, có khả năng

xảy ra 3 lỗi sau:

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

MA ở node A trước khi di trú tới B, connect tới B thất bại --> node

B có vấn đề

MA connect được và di trú được tới node B nhưng quá khoảng

timeout, node C không nhận được thông tin từ node B.

MA ở node B sau khi di trú từ node A tự báo lỗi

Ở cả 3 trường hợp lỗi này, thông tin lỗi sẽ được gửi lại về cho người

quản trị hệ thống workflow. Tuỳ tình hình thực tế mà người quản trị sẽ có những

phương pháp giải quyết thích hợp và chạy lại workflow bắt đầu từ node A tương

tự như TH1b

A

B

C

D

E

F

G

Node A Node B Node C MA

Page 78: Mobile agent va ung dung vao workflow

Ứ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

73

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

Ở phần này, ta sẽ tiến hành các bước phân tích thiết kế hệ thống Workag dựa

trên ngôn ngữ thiết kế UML. Hệ thống sẽ được chia làm ba module chính: thứ nhất

là module Form Designer, thứ hai là module Workflow Designer và cuối cùng là

module Manager Agent

2.1. Phân tích module FormDesigner

2.1.1. Sơ đồ trường hợp sử dụng

Hình 34: Use Case Form Designer

Trong bảng sơ đồ các trường hợp sử dụng ở trên là các trường hợp mà người

sử dụng có thể sử dụng chương trình, chi tiết ý nghĩa các trường hợp sử dụng được

liệt kê ở bảng dưới đây:

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

STT Tên Ý nghĩa Ghi chú

1 Tạo mới Người dùng chọn chức năng tạo form mới

2 Mở form Người dùng chọn một form đã tạo trước đó

để chỉnh sửa

3 Lưu Form Người dùng có thể lưu form đang chỉnh

Page 79: Mobile agent va ung dung vao workflow

Ứ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

74

sửa để sau này thiết kế tiếp

4 Thêm Control Người dùng có thể kéo thả các control vào

form đang thiết kế.

5 Xóa Control Người dùng có thể xóa các control trên

form đang thiết kế

6 Sửa Control Người dùng có thể chỉnh sửa các thuộc

tính của một control như vị trí, màu sắc,

font chữ, border...

2.1.2. Sơ đồ luồng dữ liệu

Sơ đồ các luồng dữ liệu(data) giữa người sử dụng, chương trình và bộ

nhớ.

Chú thích các kí hiệu:

Người sử dụng Đại diện cho người sử dụng chương trình Form Designer (FD)

UseCase Một trường hợp sử dụng nào đó của chương trình FD

Luồng dữ liệu và chiều của nó

Bộ nhớ trong

File Bộ nhớ ngoài như HDD, FDD, …

Page 80: Mobile agent va ung dung vao workflow

Ứ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

75

2.1.2.1. Tạo mới một Form

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

D4: ID của Form vừa được tạo mới sẽ tự động phát sinh và lưu vào bộ

nhớ chính.

Xử lý: ID này của form được tạo dựa vào ID của form trước nó, nếu

trước đó chưa tạo ra form nào thì ID này bắt đầu từ 0.

2.1.2.2. Mở một Form

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

D1: Đường dẫn đầy đủ của tập tin xml mà người dùng chọn

D2: Các control của form tương ứng được thể hiện ra màn hình cho

người dùng tiếp tục thiết kế

Page 81: Mobile agent va ung dung vao workflow

Ứ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

76

D4: Bao gồm

-ID được phát sinh cho Form vừa được mở

-Nội dung XML của form vừa được mở.

D5: Tập tin từ bộ nhớ ngoài ứng với D1.

Xử lý: ID này của form được tạo dựa vào ID của form trước nó, nếu

trước đó chưa tạo ra form nào thì ID này bắt đầu từ 0.

2.1.2.3. Lưu một Form

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

D1: Tên file xml cho Form mà người dùng muốn lưu

D3: Nội dung XML biểu diễn các control mà người dùng thiết kế.

D5: D3

Xử lý: Khi người dùng chọn lưư form, sẽ xuất hiện một dialog yêu

cầu người dùng chọn nơi lưu file và tên file tương ứng. Sau khi người dùng

nhập xong, chương trình sẽ phát sinh ra file xml tương ứng dựa vào các

control được thiết kế trên màn hình.

Page 82: Mobile agent va ung dung vao workflow

Ứ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

77

2.1.2.4. Thêm một control vào màn hình thiết kế Form

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

D1: Gồm có:

ID của đối tượng control được người dùng lựa chọn

Loại control

Toạ độ (x,y) : vị trí ban đầu của control

Kích thướng (width, height) : kích thước ban đầu của control

D4: như D1

Xử lý: Người sử dụng chọn control muốn thêm vào và kéo vào form

đang thiết kế, khi đó chương trình sẽ tự động nhận biết vị trí của control này

trên form, đồng thời tính toán kích thước ban đầu của control trên màn hình và

lưu thông tin của control mới này vào bộ nhớ chính

Page 83: Mobile agent va ung dung vao workflow

Ứ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

78

2.1.2.5. Chỉnh sửa một control trên màn hình thiết kế Form

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

D1: ID của control cần chỉnh sửa và một trong các thuộc tính tương

ứng của nó, các thuộc tính có thể là:

- Tọa độ (x,y)

- Kích thước (width, height)

- Màu sắc, màu nền.

- Font chữ, cỡ chữ, màu chữ

- Caption,….

D4: D1

Xử lý: Người sử dụng chọn control muốn chỉnh sửa trên form đang

thiết kế và chỉnh sửa các thuộc tính của nó, khi đó chương trình sẽ tự động

nhận biết vị trí mới nếu có của control này và các thuộc tính mới của nó trên

form và lưu thông tin của control mới này vào bộ nhớ chính.

Page 84: Mobile agent va ung dung vao workflow

Ứ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

79

2.1.2.6. Xóa một control trên màn hình thiết kế Form

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

D1: ID của control cần xóa

D4: D1

Xử lý: Người sử dụng chọn control muốn xóa bỏ trên form đang thiết kế

và chọn xóa, khi đó thông tin về control này sẽ được xóa khỏi bộ nhớ chính.

Page 85: Mobile agent va ung dung vao workflow

Ứ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

80

2.1.3. Sơ đồ lớp mức phân tích

Quan hệ giữa các lớp:

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

FORM

Có/Chứa MYCONTROL

Sharp fdsfds Group fdsfds List fdsfds Checkbox fdsfds RadioButto fdsfds Combo Box

fdsfds Caption fdsfds Text Field fdsfds Text Area fdsfds RichText fdsfds Image

Page 86: Mobile agent va ung dung vao workflow

Ứ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

81

Chi tiết về thuộc tính và phương thức của từng lớp trong sơ đồ lớp mức phân tích ở

trên:

MYFORM

Tên file lưu form (bao gồm path)Trạng thái (Focus) Tọa độ Thêm control Xóa control Vẽ Form Save Form Mở Form

MYCONTROL ID của control Tọa độ Màu Chiều cao Chiều rộng Trạng thái Vẽ control Cập nhật chiều cao Cập nhật chiều rộng Cập nhật border Cập nhật backcolor Cập nhật caption Cập nhật font Lấy kiểu control Lấy tọa độ Lấy chiều cao Lấy chiều rộng Cập nhật border Cập nhật backcolor Cập nhật caption Cập nhật font

Page 87: Mobile agent va ung dung vao workflow

Ứ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

82

2.2. Thiết kế module Form Designer

2.2.1. Sơ đồ các màn hình trong chương trình Form Designer

2.2.1.1. Các màn hình giao diện được sử dụng trong chương trình

Màn hình design chính

Màn hình save form(s)

Màn hình About

Màn hình chọn font

Màn hình chọn border

Màn hinh chọn image

Màn hình preview

Page 88: Mobile agent va ung dung vao workflow

Ứ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

83

2.2.1.2. Danh sách các lớp đối tượng màn hình.

Ý nghĩa của các màn hình có trong chương trình được giải thích

trong bảng dưới đây:

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

STT TÊN Ý NGHĨA GHI

CHÚ

1 MH_MAIN Màn hình chính dùng để design

form

2 MH_ABOUT Màn hình giới thiệu về module

3 MH_SAVE Màn hình save các form khi

người dùng chấm dứt

4 MH_FONT Người dùng sử dụng màn hình

này để chọn font cho các đối

tượng lúc thiết kế.

5 MH_COLOR Người dùng sử dụng màn hình

này để chọn màu cho các đối

tượng lúc thiết kế.

6 MH_BORDER Người dùng sử dụng màn hình

này để chọn kiểu border cho các

đối tượng lúc thiết kế.

7 MH_IMAGE Người dùng sử dụng màn hình

này để chọn image cho control

image box

8 MH_PREVIEW Màn hình này dùng để xem kết

quả thiết kế form.

Page 89: Mobile agent va ung dung vao workflow

Ứ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

84

2.2.2. Chi tiết các lớp đối tượng xử lý thể hiện.

2.2.2.1. Màn hình design MH_MAIN (Màn hình chính)

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

2.2.2.1.1. Bảng mô tả các đối tượng thể hiện màn hình design MH_MAIN

(Màn hình chính)

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

STT Tên Loại Ý nghĩa Kích

hoạt

Ghi chú

1 MenuFile Menu Mở menu File Click

2 MenuEdit Menu Mở menu Edit Click

3 MenuView Menu Mở menu View Click

4 MenuHelp Mở menu Help Click

5 Tabbar Tab Tab Control dùng để

chuyển qua lại các form

đang thiết kế

Click JtabPane

Form Designer

Control List

Property Windows

Form1

Design Area

File Edit View Help

Page 90: Mobile agent va ung dung vao workflow

Ứ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

85

2.2.2.1.2. Bảng mô tả các đối tượng màn hình con

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

STT Tên Loại Ý nghĩa Kích

hoạt

Ghi chú

1 DesignArea Vùng thiết kế form, cho

phép kéo thả các control

Không Lớp Form

Designer

2 ControlList Màn hình chứa các

control dùng để thiết kế

form

Click Lớp Control

Panel

3 PropertyList Ứng với một control

được chọn sẽ có một

bảng thuộc tính riêng.

Bảng này dùng để chỉnh

sửa các thuộc tính của

control tương ứng

Click Lớp

Property

Panel

2.2.2.1.2.1. DesignArea:

Là thể hiện của lớp FormDesigner, người dùng có thể kéo thả

các control được chọn lên form trong lúc thiết kế.

2.2.2.1.2.2. Control List:

• Màn hình giao diện ControlList:

Page 91: Mobile agent va ung dung vao workflow

Ứ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

86

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

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

STT Tên Loại Ý nghĩa Kích

hoạt

Ghi chú

1 Selection Button Đổi chế độ lựa chọn Click

2 Label Button Chọn chế độ vẽ Label lên

form

Click

3 Group Button Chọn chế độ vẽ Group

Control

Click

4 Text Area Button Chọn chế độ vẽ TextArea Click

5 CheckBox Button Chọn chế độ vẽ CheckBox Click

6 RadioButton Button Chọn chế độ vẽ Radio

Button

Click

7 ComboBox Button Chọn chế độ vẽ ComboBox Click

8 PictureBox Button Chọn chế độ vẽ Picture Click

SelectionLabel

Group

Text Area

Check Box

Radio Button

Combo Box

Image

abc

abc

V

Page 92: Mobile agent va ung dung vao workflow

Ứ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

87

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

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

STT THỂ HIỆN LOẠI BIẾN

CỐ

XỬ LÝ GHI

CHÚ

1 Selection Click Cập nhật lựa chọn hiện tại là

Selection

2 Label Click Cập nhật lựa chọn hiện tại là

Label

3 Label MouseDown Cập nhật Control đang được drag

là Label

4 Group Click Cập nhật lựa chọn hiện tại là

Group

5 Group MouseDown Cập nhật Control đang được drag

là Group

6 Text Area Click Cập nhật lựa chọn hiện tại là

Text Area

7 Text Area MouseDown Cập nhật Control đang được drag

là Text Area

8 CheckBox Click Cập nhật lựa chọn hiện tại là

CheckBox

9 CheckBox MouseDown Cập nhật Control đang được drag

là CheckBox

10 RadioButton Click Cập nhật lựa chọn hiện tại là

RadioButton

11 RadioButton MouseDown Cập nhật Control đang được drag

là RadioButton

12 ComboBox Click Cập nhật lựa chọn hiện tại là

ComboBox

Page 93: Mobile agent va ung dung vao workflow

Ứ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

88

13 ComboBox MouseDown Cập nhật Control đang được drag

là ComboBox

14 PictureBox Click Cập nhật lựa chọn hiện tại là

PictureBox

15 PictureBox MouseDown Cập nhật Control đang được drag

là PictureBox

16 All MouseUp Cập nhật trạng thái draging là

null

2.2.2.1.2.3. Property List:

• Màn hình giao diện Property List:

Caption

BackColor

Name

Left

Top

Height

Width

Color

Font

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

Page 94: Mobile agent va ung dung vao workflow

Ứ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

89

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

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

STT Tên Loại Ý nghĩa Kích

hoạt

Ghi chú

1 PropertyBảng Bảng Bảng thuộc tính

của một đối

tượng được chọn

Không Mỗi đối tượng

bảng thuộc tính

sẽ khác nhau

2.1.2 Bảng mô tả các biến cố của màn hình design MH_MAIN (Màn hình chính)

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

STT THỂ HIỆN LOẠI BIẾN

CỐ

XỬ LÝ GHI

CHÚ

1 MenuFile Click Khi click vào menu File sẽ hiện ra các

menu con để người dùng lựa chọn

2 MenuView Click Khi click vào menu View sẽ hiện ra

các menu con để người dùng lựa chọn

3 MenuEdit Click Khi click vào menu Edit sẽ hiện ra các

menu con để người dùng lựa chọn

4 MenuHelp Click Khi click vào menu Help sẽ hiện ra

các menu con để người dùng lựa chọn

5 DesignArea KeyPressed Khi người dùng nhấn các phím như

Delete, các phím mũi tên thì Control

được chọn tương ứng sẽ bị xóa hoặc

di chuyển tới vị trí mới …

6 DesignArea MouseUp CT sẽ kiểm tra xem có control nào

vừa được drag hay không nếu có sẽ

Page 95: Mobile agent va ung dung vao workflow

Ứ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

90

cập nhật vị trí mới cho control đó

7 DesignArea MouseDown CT sẽ kiểm tra xem có control nào

vừa được drop hay không nếu có sẽ

cập nhật vị trí mới cho control đó

8 DesignArea MouseMove CT sẽ kiểm tra xem có control nào

đang được drag hay không nếu có sẽ

cập nhật vị trí mới cho control đó, nếu

không sẽ kiểm tra xem có phải đang

điều chỉnh kích thước của control hay

không, nếu có thì điều chỉnh kích

thước cho control đó.

9 ControlList Click Cập nhật ID của Control đang được

chọn

10 Property

List

KeyPressed Nếu phím là Enter thì sẽ cập nhật và

điều chỉnh theo giá trị mới cho

Control trên Form

2.2.2.2. Màn hình MH_ABOUT

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

ABOUT

Sinh viên thực hiện: Nguyễn Hoàng Linh Phương Nguyễn Văn Thoại

Giáo viên hướng dẫn: Thầy Cao Đăng Tân

Icon

Page 96: Mobile agent va ung dung vao workflow

Ứ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

91

Bảng mô tả màn hình MH_ABOUT

Bảng 9: Bảng mô tả màn hình About

STT Thành phần Diễn giải Kích

hoạt

Ghi chú

1 Lable 1 Giáo viên hướng dẫn

2 Lable 2 Sinh viên thực hiện

3 Image Icon của chương trình

2.2.2.3. Màn hình MH_SAVE

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

2.2.2.3.1. Bảng mô tả màn hình MH_SAVE

Bảng 10: Bảng mô tả màn hình MH_SAVE

STT Thành phần Diễn giải Kích

hoạt

Ghi chú

1 Check box 1 Chọn Form 1 để save Click

2 Check box 2 Chọn Form 2 để save Click

SAVE FORMS

Form 1

Form 2

Form 3

ALL RESET SAVE CANCEL

Page 97: Mobile agent va ung dung vao workflow

Ứ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

92

3 Check box 3 Chọn Form 3 để save Click

4 Lable 1 Tên của Form 1 đang thiết kế Không

5 Lable 2 Tên của Form 2 đang thiết kế Không

6 Lable 3 Tên của Form đang thiết kế Không

7 Button ALL Click để check tất cả các form Click

8 Button Reset Click để uncheck tất cả các form Click

9 Button Save Click để save form(s) Click

10 Button

Cancel

Cancel không save form Click

2.2.2.3.2. Bảng mô tả các biến cố của màn hình MH_SAVE

Bảng 11: Bảng mô tả các biến cố của màn hình MH_SAVE

STT THỂ HIỆN LOẠI

BIẾN CỐ

XỬ LÝ GHI

CHÚ

1 ButtonALL Click Tất cả các check box được check

2 Button

Reset

Click Tất cả các check box được

uncheck

3 Button

Save

Click Chương trình sẽ thực hiện việc lưu

các form được chọn

4 Button

Cancel

Click Đóng màn hình này

Page 98: Mobile agent va ung dung vao workflow

Ứ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

93

2.2.2.4. Màn hình MH_BORDER

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

2.2.2.4.1. Bảng mô tả màn hình MH_BORDER

Bảng 12: Bảng mô tả màn hình MH_BORDER

STT Thành phần Diễn giải Kích

hoạt

Ghi chú

1 Radio Empty Chọn Style Empty Click

2 Radio Etched Chọn Style Etched Click

3 Radio Matte Chọn Style Matte Click

4 Radio Line Chọn Style Line Click

5 Radio Bevel Chọn Style Bevel Click

6 Radio Chọn Style Chìm Click

BORDER STYLE

Empty

Etched

Matte

Bevel

Line Lowerred

Raised

OK CANCEL

Option

Title

Preview

Page 99: Mobile agent va ung dung vao workflow

Ứ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

94

Lowerred

7 Radio Raised Chọn Style Nổi Click

8 Bảng Option Bảng để chỉnh một số property

khác đối với một số loại Style

9 Text input

Title

Áp dụng để đặt title trong trừong

hợp là TitleBorder

10 Panel Preview Panel để preview kết quả chỉnh

border

Click

11 Button OK Cập nhật style border cho đối

tượng

Click

12 Button Cancel Đóng màn hình chọn border

style

Click

2.2.2.4.2. Bảng mô tả các biến cố của màn hình MH_BORDER

(Màn hình chọn Border Style)

Bảng 13: Bảng mô tả các biến cố của màn hình chọn Border Style

STT THỂ HIỆN LOẠI

BIẾN

CỐ

XỬ LÝ GHI

CHÚ

1 Radio Empty Click Cập nhật style được chọn và điều

chỉnh bản option tương ứng

2 Radio Etched Click Như trên

3 Radio Matte Click Như trên

4 Radio Line Click Như trên

5 Radio Bevel Click Như trên

6 Radio

Lowerred

Click Như trên

7 Radio Raised Click Như trên

Page 100: Mobile agent va ung dung vao workflow

Ứ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

95

8 Panel

Preview

Click Lấy các trạng thái style được chọn

và các thuộc tính liên quan và hiển

thị lên màn hình

9 Button OK Click Cập nhật giá trị trên cho control

10 Button

Cancel

Click Đóng màn hình này

2.2.2.5. Màn hình MH_FONT

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

2.2.2.5.1. Bảng mô tả màn hình MH_FONT

Bảng 14: Bảng mô tả màn hình chọn Font

STT Thành phần Diễn giải Kích hoạt Ghi chú

1 List Font Chọn Loại Font Click

2 List Font

Style

Chọn Kiểu Font Click

FONT

OK

CANCEL

Preview

Font Font style Size

Page 101: Mobile agent va ung dung vao workflow

Ứ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

96

3 List Font Size Chọn Size Font Click

4 Panel Preview Panel để preview kết quả chỉnh

border

Click

5 Button OK Cập nhật style font cho đối

tượng

Click

6 Button Cancel Đóng màn hình chọn font style Click

2.2.2.5.2. Bảng mô tả các biến cố của màn hình MH_FONT

(Màn hình chọn Font)

Bảng 15: Bảng mô tả các biến cố của màn hình chọn Font

STT THỂ HIỆN LOẠI

BIẾN

CỐ

XỬ LÝ GHI

CHÚ

1 Panel

Preview

Click Lấy các trạng thái style được chọn

và các thuộc tính liên quan và hiển

thị lên màn hình

2 Button OK Click Cập nhật giá trị trên cho control

3 Button

Cancel

Click Đóng màn hình này

Page 102: Mobile agent va ung dung vao workflow

Ứ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

97

2.2.2.6. Màn hình MH_IMAGE

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

2.2.2.6.1. Bảng mô tả màn hình MH_IMAGE

Bảng 16: Bảng mô tả màn hình chọn hình ảnh

STT Thành phần Diễn giải Kích hoạt Ghi chú

1 File Chooser Chọn file image Click

2 Panel Panel để preview iamge

2.2.2.6.2. Bảng mô tả các biến cố của màn hình MH_IMAGE

(Màn hình chọn image)

Bảng 17: Bảng mô tả các biến cố của màn hình chọn hình

Stt Thể hiện Loại biến cố Xứ lý Ghi chú

1 File Chooser Click Lấy hình tương ứng và thể hiện

kết quả lên preview panel

IMAGE CHOOSER

Preview

File Chooser

Page 103: Mobile agent va ung dung vao workflow

Ứ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

98

2.2.2.7. Màn hình MH_PREVIEW

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

Bảng mô tả màn hình MH_PREVIEW

Bảng 18: Bảng mô tả màn hình xem trước

STT Thành phần Diễn giải Kích

hoạt

Ghi chú

1 Panel Panel để preview iamge

PREVIEW

Preview panel

Page 104: Mobile agent va ung dung vao workflow

Ứ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

99

2.3. Phân tích module WorkFlow Designer

2.3.1. Sơ đồ trường hợp sử dụng

Sơ đồ sử dụng:

Hình 49: Use Case WorkFlow Designer

Trong bảng sơ đồ các trường hợp sử dụng ở trên là các trường hợp mà người

sử dụng có thể sử dụng chương trình, chi tiết ý nghĩa các trường hợp sử dụng được

liệt kê ở bảng dưới đây:

Danh sách nghiệp vụ cho chương trình thiết kế workflow

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

Page 105: Mobile agent va ung dung vao workflow

Ứ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

100

STT Tên Ý nghĩa Ghi chú

1 Tạo 1 workflow mới Khởi tạo 1 luồng công việc mới

2 Mở workflow Mở lên 1 luồng công việc đã có sẵn

3 Lưu workflow Lưu lại workflow với tất cả các thiết

kế và thay đổi trên nó

4 Thêm 1 node mới trên

workflow

Vẽ thêm 1 điểm vào workflow.

Điểm này là 1 node trong mạng nên

phải có IP, tên

5 Sửa thông tin 1 node

trong workflow

Chỉnh sửa thông tin về các thuộc

tính như IP, tên, độ ưu tiên… của

node trong workflow

6 Xoá 1 node trong

workflow

Khi đảm bảo được không có đường

đi đến node này trong workflow thì

mới có thể xoá đi node này được

7 Thêm đường đi cho

workflow

Vẽ 1 đường đi mới cho công việc

trong workflow

8 Xoá 1 đường đi trong

workflow

Xoá hẳn 1 đường đi trong workflow

9 Chọn 1 form có sẵn cho

node( normal node)

Hai hay nhiều node có thể sử dụng

chung 1 form nên form có sẵn này sẽ

được thiết kế trước và được chọn

cho node.

Page 106: Mobile agent va ung dung vao workflow

Ứ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

101

2.3.2. Sơ đồ luồng dữ liệu

Sơ đồ các luồng dữ liệu(data) giữa người sử dụng, chương trình và bộ

nhớ.

2.3.2.1. Tạo một workflow mới

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

D4: ID của Form vừa được tạo mới sẽ tự động phát sinh và lưu vào bộ

nhớ chính.

Xử lý: ID này của form được tạo dựa vào ID của WF trước nó, nếu

trước đó chưa tạo ra form nào thì ID này bắt đầu từ 0.

2.3.2.2. Mở một WorkFlow

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

Page 107: Mobile agent va ung dung vao workflow

Ứ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

102

D1: Đường dẫn đầy đủ của tập tin xml mà người dùng chọn

D2: Các control của form tương ứng được thể hiện ra màn hình cho

người dùng tiếp tục thiết kế

D4: Bao gồm

-ID được phát sinh cho Form vừa được mở

-Nội dung XML của form vừa được mở.

D5: Tập tin từ bộ nhớ ngoài ứng với D1.

Xử lý: ID này của form được tạo dựa vào ID của form trước nó, nếu

trước đó chưa tạo ra form nào thì ID này bắt đầu từ 0.

2.3.2.3. Lưu một WorkFlow

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

D1: Tên file xml cho WF mà người dùng muốn lưu

D3: Nội dung XML biểu diễn các control mà người dùng thiết kế.

D6: D3

Xử lý: Khi người dùng chọn lưu WF, sẽ xuất hiện một dialog yêu cầu

người dùng chọn nơi lưu file và tên file tương ứng. Sau khi người dùng nhập

xong, chương trình sẽ phát sinh ra file xml tương ứng dựa vào các đối tượng

được thiết kế trên màn hình.

Page 108: Mobile agent va ung dung vao workflow

Ứ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

103

2.3.2.4. Thêm một node mới vào form WorkFlow

Node trong module WorkFlow designer có hai loại, một loại gọi là

node bình thường, tượng trưng cho các host trong một workflow.

Node bình thường này sẽ có các thuộc tính của một host trong

workflow như IP, port, danh sách các node kế tiếp cũng như trước đó.

Loại node thứ hai được sử dụng gọi là node logic, node logic có hai

loại là node AND và node OR. Các loại node logic này được sử dụng để thiết

kế những ràng buộc trong workflow về đường đi của các agent. Sau đây là

luồng dữ liệu cho nghiệp vụ thêm một node mới vào WorkFlow.

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

Designer

D1: Gồm có:

-ID của đối tượng node được người dùng lựa chọn

-Loại node bình thường hay logic.

-Toạ độ (x,y) : vị trí ban đầu của node

D4: D1

Xử lý: Người sử dụng chọn node muốn thêm vào và kéo vào form

đang thiết kế, khi đó chương trình sẽ tự động nhận biết vị trí của node này trên

form, đồng thời cập nhật các thụôc tính này cho đối tượng mới, lưu thông tin

của control mới này vào bộ nhớ chính.

Page 109: Mobile agent va ung dung vao workflow

Ứ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

104

2.3.2.5. Chỉnh sửa thuộc tính 1 node trên màn hình thiết kế WF

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

D1: ID của control cần chỉnh sửa và một trong các thuộc tính tương

ứng của nó, các thuộc tính có thể là:

- Tọa độ (x,y)

- Port, IP nếu là node bình thường.

- Những node kế tiếp và những node trước đó.

D4: D1

Xử lý: Người sử dụng chọn node muốn chỉnh sửa trên form đang thiết

kế và chỉnh sửa các thuộc tính của nó, khi đó chương trình sẽ tự động nhận biết

vị trí mới nếu có của node này và các thuộc tính mới của nó trên form WF và

lưu thông tin của node mới này vào bộ nhớ chính.

2.3.2.6. Xóa một node khỏi màn hình thiết kế WF

Page 110: Mobile agent va ung dung vao workflow

Ứ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

105

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

D1: ID của control cần xóa

D4: D1

Xử lý: Người sử dụng chọn node muốn xóa bỏ trên form đang thiết kế và

chọn xóa, khi đó thông tin về node này sẽ được xóa khỏi bộ nhớ chính.

2.3.2.7. Thêm đường đi trong WorkFlow

Đường đi trong WF được tượng trưng bằng mũi tên nối từ node này

đến node khác, và không cần lưu trữ một đối tượng hình vẽ nào cho đường đi

này. Đường đi được lưu trong workFlow dưới dạng các attribute nextnode và

prenode của các node. Nhờ vào các attribute này, chương trình sẽ nhận dạng

được đường đi nếu có của các node.

Page 111: Mobile agent va ung dung vao workflow

Ứ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

106

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

Designer

D1: Gồm có:

-ID của đối tượng đường đi được người dùng lựa chọn nối giữa 2

node tương ứng.

-ID của 2 node được nối với nhau và chiều của đường đi.

D4: D1

Xử lý: Người sử dụng chọn node muốn thêm đường đi giữa hai node,

chỉ cần chọn đối tượng mũi tên trong panel các đối tượng dùng để thiết kế và

nói 2 node lại theo chiều tương ứng. Khi nối xong, 2 node liên quan sẽ tự cập

nhật thuộc tính nextnode và prenode tương ứng

2.3.2.8. Xóa một đường đi trong WorkFlow

Page 112: Mobile agent va ung dung vao workflow

Ứ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

107

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

D1: ID của control cần xóa

D4: D1

Xử lý: Người sử dụng chọn đối tựơng đường đi muốn xóa bỏ trên form

đang thiết kế và chọn xóa, khi đó chương trình sẽ xác đjnh 2 node liên quan và

cập nhật thuộc tính của 2 node đồng thời hủy đối tượng hình vẽ trên màn hình

và trong bộ nhớ chính.

2.3.2.9. Chọn form cho node WorkFlow

Form cho các node được thiết kế trước bằng module FormDesigner và

được chọn cho các node trong WorkFlow trong lúc thiết kế WorkFlow.

Page 113: Mobile agent va ung dung vao workflow

Ứ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

108

Hình 58: Luồng dữ liệu cho chọn form cho node trong Workflow Designer D1: Đường dẫn đầy đủ của tập tin form xml mà người dùng lựa chọn

D4: Thông tin form đó được nạp và cập nhật vào node tương ứng.

D5: Nội dung file XML được chương trình đọc lên từ file ứng với

đường dẫn D1.

Xử Lý: Người dùng sẽ click vào button AddForm trên bản điều khiển

và cửa sổ chọn file sẽ cho người dùng chọn trực tiếp form cần thiết. Khi form

được chọn, chương trình sẽ đọc nội dung file xml, xây dựng thành một đối

tượng DOM và thêm vào node như một node con của node đang làm việc.

Page 114: Mobile agent va ung dung vao workflow

Ứ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

109

2.3.3. Sơ đồ lớp mức phân tích

Quan hệ giữa các lớp:

Chi tiết về thuộc tính và phương thức của từng lớp trong sơ đồ lớp mức

phân tích ở trên:

Hai lớp NOMARLNODE và LOGICNODE sẽ overide các hàm vẽ của

lớp cha và bổ sung một số thuộc tính.

WORKFLOW

Tên file lưu wf (bao gồm path) Trạng thái (Focus) Tọa độ Thêm node Xóa node Vẽ WF Save WF Mở WF

NODE ID của node Tọa độ Loại Trạng thái Vẽ node

Có/ChứaWORKFLOW NODE

NORMAL NODE LOGIC NODE

Page 115: Mobile agent va ung dung vao workflow

Ứ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

110

2.4. Thiết kế chương trình WorkFlow Designer

2.4.1. Sơ đồ các màn hình trong chương trình WorkFlow Designer

2.4.1.1. Các màn hình giao diện được sử dụng trong chương trình

Màn hình design chính

Màn hình save workflow (s)

Màn hình

About

Màn hình Control

Màn hình Property

NORMALNODE Danh sách các node kế tiếp Danh sách các node trước Host Port Danh sách các form Cập nhật host Cập nhật port Thêm node kế tiếp Thêm node trước đó Thêm form Xóa form Xóa node kế tiếp Xóa node trước đó

LOGICNODE Danh sách các node kế tiếp Danh sách các node trước Loại logic(AND / OR) Thêm node kế tiếp Thêm node trước đó Xóa node kế tiếp Xóa node trước đó

Page 116: Mobile agent va ung dung vao workflow

Ứ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

111

2.4.1.2. Danh sách các lớp đối tượng màn hình chính

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

STT TÊN Ý NGHĨA GHI

CHÚ

1 MH_MAIN Màn hình chính dùng để design

form

2 MH_ABOUT Màn hình giới thiệu về module

3 MH_SAVE Màn hình save các form khi

người dùng chấm dứt

4 MH_CONTROL Người dùng sử dụng màn hình

này để chọn font cho các đối

tượng lúc thiết kế.

5 MH_PROPERTY Người dùng sử dụng màn hình

này để chọn màu cho các đối

tượng lúc thiết kế.

Page 117: Mobile agent va ung dung vao workflow

Ứ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

112

2.4.2. Chi tiết các lớp đối tượng xử lý thể hiện

2.4.2.1. Màn hình design MH_MAIN (Màn hình chính)

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

2.4.2.1.1. Bảng mô tả các đối tượng thể hiện màn hình design

MH_MAIN (Màn hình chính)

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

STT Tên Loại Ý nghĩa Kích

hoạt

Ghi chú

1 MenuFile Menu Mở menu File Click

2 MenuEdit Menu Mở menu Edit Click

3 MenuView Menu Mở menu View Click

4 MenuHelp Mở menu Help Click

5 Tabbar Tab Tab Control dùng để

chuyển qua lại các form

đang thiết kế

Click JtabPane

Workflow Designer

Control List

Property Windows

Form1

Design Area

File Edit View Help

Page 118: Mobile agent va ung dung vao workflow

Ứ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

113

2.4.2.1.2. Bảng mô tả các biến cố của màn hình MH_MAIN

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

STT THỂ HIỆN LOẠI BIẾN

CỐ

XỬ LÝ GHI

CHÚ

1 MenuFile Click Khi click vào menu File sẽ hiện

ra các menu con để người dùng

lựa chọn

2 MenuView Click Khi click vào menu View sẽ hiện

ra các menu con để người dùng

lựa chọn

3 MenuEdit Click Khi click vào menu Edit sẽ hiện

ra các menu con để người dùng

lựa chọn

4 MenuHelp Click Khi click vào menu Help sẽ hiện

ra các menu con để người dùng

lựa chọn

5 DesignArea KeyPressed Khi người dùng nhấn các phím

như Delete, các phím mũi tên thì

Control được chọn tương ứng sẽ

bị xóa hoặc di chuyển tới vị trí

mới …

6 DesignArea MouseUp CT sẽ kiểm tra xem có control

nào vừa được drag hay không

nếu có sẽ cập nhật vị trí mới cho

control đó

7 DesignArea MouseDown CT sẽ kiểm tra xem có control

nào vừa được drop hay không

nếu có sẽ cập nhật vị trí mới cho

Page 119: Mobile agent va ung dung vao workflow

Ứ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

114

control đó

8 DesignArea MouseMove CT sẽ kiểm tra xem có control

nào đang được drag hay không

nếu có sẽ cập nhật vị trí mới cho

control đó, nếu không sẽ kiểm

tra xem có phải đang điều chỉnh

kích thước của control hay

không, nếu có thì điều chỉnh

kích thước cho control đó.

9 ControlList Click Cập nhật ID của Control đang

được chọn

10 Property

List

KeyPressed Nếu phím là Enter thì sẽ cập

nhật và điều chỉnh theo giá trị

mới cho Control trên Form

2.4.2.1.2.1. Design Area

Vùng thiết kế workflow, người thiết kế có thể kéo thả các đối

tượng thiết kế vào màn hình này trong lúc thiết kế form.

2.4.2.1.2.2. Control List (Màn hình MH_CONTROL)

Màn hình giao diện Control List:

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

SelectionNormal Node

Connector

Logic NodeLogic

Page 120: Mobile agent va ung dung vao workflow

Ứ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

115

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

STT Tên Loại Ý nghĩa Kích

hoạt

Ghi chú

1 Selection Button Đổi chế độ lựa chọn Click

2 Normal

Node

Button Chọn chế độ vẽ Normal

node lên WF

Click

3 Logic Node Button Chọn chế độ vẽ Logic node

lên WF

Click

4 Connector Button Vẽ đường nối giữa các

node

Click

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

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

STT THỂ HIỆN LOẠI BIẾN

CỐ

XỬ LÝ GHI

CHÚ

1 Selection Click Cập nhật lựa chọn hiện tại là

Selection

2 Connector Click Cập nhật lựa chọn hiện tại là

Connector

3 Connector MouseDown Cập nhật Control đang được

drag là Connector

4 NormalNode Click Cập nhật lựa chọn hiện tại là

NormalNode

5 NormalNode MouseDown Cập nhật Control đang được

drag là NormalNode

6 LogicNode Click Cập nhật lựa chọn hiện tại là

LogicNode

7 LogicNode MouseDown Cập nhật Control đang được

drag là LogicNode

Page 121: Mobile agent va ung dung vao workflow

Ứ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

116

2.4.2.1.2.3. Property Bảng ( Màn hình MH_ PROPERTY)

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

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

STT Tên Loại Ý nghĩa Kích

hoạt

Ghi chú

1 PropertyBảng Bảng Bảng thuộc tính

của một đối

tượng được chọn

Không Mỗi đối tượng

bảng thuộc tính

sẽ khác nhau

2.4.2.2. Màn hình About MH_ABOUT

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

ABOUT

Sinh viên thực hiện: Nguyễn Hoàng Linh Phương Nguyễn Văn Thoại

Giáo viên hướng dẫn: Thầy Cao Đăng Tân

Icon

Name

Host

Port

NextNode

PreNode

Page 122: Mobile agent va ung dung vao workflow

Ứ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

117

Bảng mô tả màn hình MH_ABOUT

Bảng 26: Bảng mô tả màn hình About

STT Thành phần Diễn giải Kích

hoạt

Ghi chú

1 Lable 1 Giáo viên hướng dẫn

2 Lable 2 Sinh viên thực hiện

3 Image Icon của chương trình

2.4.2.3. Màn hình Save MH_SAVE

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

2.4.2.3.1. Bảng mô tả màn hình MH_SAVE

Bảng 27: Bảng mô tả màn hình Save

STT Thành phần Diễn giải Kích

hoạt

Ghi chú

1 Check box 1 Chọn WF 1 để save Click

2 Check box 2 Chọn WF 2 để save Click

SAVE FORMS

WorkFlow 1

WorkFlow 2

WorkFlow 3

ALL RESET SAVE CANCEL

Page 123: Mobile agent va ung dung vao workflow

Ứ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

118

3 Check box 3 Chọn WF 3 để save Click

4 Lable 1 Tên của WF 1 đang thiết kế Không

5 Lable 2 Tên của WF 2 đang thiết kế Không

6 Lable 3 Tên của WF đang thiết kế Không

7 Button ALL Click để check tất cả các WF Click

8 Button Reset Click để uncheck tất cả các WF Click

9 Button Save Click để save WF (s) Click

10 Button

Cancel

Cancel không save WF Click

2.4.2.3.2. Bảng mô tả các biến cố của màn hình MH_SAVE

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

STT THỂ HIỆN LOẠI

BIẾN CỐ

XỬ LÝ GHI

CHÚ

1 ButtonALL Click Tất cả các check box được check

2 Button

Reset

Click Tất cả các check box được

uncheck

3 Button

Save

Click Chương trình sẽ thực hiện việc lưu

các form được chọn

4 Button

Cancel

Click Đóng màn hình này

Page 124: Mobile agent va ung dung vao workflow

Ứ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

119

2.5. Phân tích chương trình Manager Agent

2.5.1. Sơ đồ sử dụng

Hình 62: Use Case Manager Agent

Trong bảng sơ đồ các trường hợp sử dụng ở trên là các trường hợp mà người sử

dụng giao tiếp với chương trình, chi tiết ý nghĩa các trường hợp sử dụng được liệt

kê ở bảng dưới đây

Danh sách các nghịệp vụ cho chương trình ManagerAgent

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

STT Tên Ý nghĩa Ghi

chú

1 Chọn WorkFlow Chọn Workflow đã thiết kế để MA thực

hiện

2 Nhập host list Người dùng có thể nhập list các host theo

file hoặc nhập trực tiếp.

3 Sửa các tùy chọn Người dùng có thể chỉnh sửa các tùy chọn

di trú

4 Di trú Khi người dùng click vào nút OK thì MA

sẽ bắt đầu thực hiện theo WORKFLOW

đã chọn

Page 125: Mobile agent va ung dung vao workflow

Ứ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

120

5 Hiển thị tình trạng

WORKFLOW

Hiển thị node nào đã có agent chạy qua,

tức tình trạng active của WORKFLOW

2.5.2. Sơ đồ luồng dữ liệu

2.5.2.1. Các sơ đồ luồng dữ liệu cho chương trình tạo và thực thi agent

2.5.2.1.1. Chọn workflow

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

D1: Tên và đường dẫn của tập tin workflow tương ứng

Xử Lý: Người dùng có thể nhập trực tiếp tên của tập tin workflow

được phát sinh từ chương trình thiết kế workflow hoặc có thể chọn bằng cách

bấm vào nút Browse.

Khi chọn xong chương trình MA sẽ đọc nội dung workflow và tạo

ra agent với phần DATA sẽ là thông tin MA.

2.5.2.1.2. Thực thi workflow

Page 126: Mobile agent va ung dung vao workflow

Ứ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

121

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

D1: Các thông tin về workflow do người dùng nhập vào ( thời gian tái kết nối, thời gian sống, thời gian tái kích hoạt, mô hình workflow)

D4: D1 D3: Agent đựoc phát sinh từ chương trình quản lý MA

Xử Lý: Khi người dùng chọn Di trú thì chương trình sẽ phát sinh phần

data cho Agent và sẽ bắt đầu thực hiện công việc đã thiết kế trong workflow

2.5.2.2. Các sơ đồ luồng dữ liệu cho User

2.5.2.2.1. Đăng nhập

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

D1: Username và Password của người dùng.

Page 127: Mobile agent va ung dung vao workflow

Ứ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

122

D3: Username và Password của người dùng ứng với username nhập

vào ở D1

D2: Thông báo đăng nhập thành công hay thất bại.

2.5.2.2.2. Chọn văn bản XML

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

D2: Các form đính kèm MA

D3: D2

2.5.2.2.3. Lưu tạm

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

D1: Các thông tin người dùng nhập vào form theo thiết kế.

Page 128: Mobile agent va ung dung vao workflow

Ứ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

123

D4: lưu lại form với các thông tin người dùng đã nhập.

2.5.2.2.4. Báo hoàn thành báo cáo

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

D1: Các thông tin người dùng nhập vào form theo thiết kế.

D4: lưu lại form với các thông tin người dùng đã nhập.

D2: thông báo lỗi (nếu có)

Xử lý: lưu lại form người dùng đã hoàn thành, kiểm tra xem form có

lỗi chỗ nào hay thiếu thông tin gì không. Nếu có, xuất thông báo lỗi cho người

dùng và để người dùng nhập lại

Nếu không, lưu lại form và đóng gói agent, chuẩn bị di trú

2.6. Thiết kế chương trình Agent Manager

2.6.1. Sơ đồ các màn hình:

2.6.1.1. Màn hình Agent Manager

Page 129: Mobile agent va ung dung vao workflow

Ứ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

124

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

2.6.1.1.1. Danh sách các đối tượng thể hiện

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

STT Tên Loại/Kiểu Ý nghĩa Ghi chú

1 txtChooseWorkflow textbox Nhập vào đường

dẫn chỉ đến file

workflow đã được

thiết kế dưới dạng

.xml

2 btnBrowseWorkflow button Chọn file

workflow đã thiết

kế dưới dạng .xml

3 txtMigFreq Textbox Thời gian tự di trú

lại nếu vẫn chưa

Khi node chứa agent

gặp trục trặc về

6

5

4

3

Agent Manager

Choose Workflow:

Time to reconnect:

Date Expire:

Reactivation:

Save result at Directory: Browse

Browse

Run WF Cancel

(s)

(s)

1 2

78

Page 130: Mobile agent va ung dung vao workflow

Ứ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

125

di trú được đường truyền làm

agent ko di trú được

thì sau khoảng thời

gian này, agent sẽ tự

di trú laị.

4 txtDateExpire Textbox Thời gian cho

phép tồn tại của

agent

Quá thời gian này,

nếu agent ko được di

trú hoạc hoàn thành

nhiệm vụ, agent sẽ tự

huỷ

5 txtReactive Textbox Thời gian từ khi

agent ngủ cho đến

khi agent tự khởi

động lại

Khi người dùng lưu

tạm kết quả làm việc,

agent ngưng hoạt

động, nhưng đến thời

gian này, nó sẽ tự

kích hoạt lại

6 txtDir Textbox Đường dẫn đến

thư mục lưu lại

các báo cáo agent

thu thập được

trong quá trình di

trú của mình

7 btnBrowseDir Button Chọn đường dẫn

đến thư mục

8 btnRun Button Chaỵ workflow

đã chọn

9 btnCancel Button Huỷ phiên làm

việc

Bao gồm việc huỷ

luôn workflow đang

chạy

Page 131: Mobile agent va ung dung vao workflow

Ứ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

126

2.6.1.1.2. Danh sách các biến cố

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

STT Thể hiện Loại

biến

cố

Xử lý Ghi

chú

1 btnBrowseWORKFLOW Click Mở hộp thoại chọn workflow

2 chkDateExpire Check Enable hoặc disable ô nhập số

Date Expire

3 btnBrowseDir Click Mở hộp thoại chọn thư mục lưu

các tài liệu thu thập được

4 btnRun Click Kiểm tra các điều kiện đã đầy đủ

chưa, nếu rồi thì phát sinh

Workflowagent để chạy

WORKFLOW và bắt đầu tiến

trình quản lý WORKFLOW

5 btnCancel Click Đưa ra cảnh báo nếu có

WORKFLOW đang chaỵ, nếu ok

thì ra lệnh xoá các agent đang

chạy đồng thời huỷ

WORKFLOW, kết thúc chương

trình

Page 132: Mobile agent va ung dung vao workflow

Ứ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

127

2.6.1.1.3. Danh sách các hàm xử lý

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

STT Tên hàm Tham

số

Kết

quả

Xử lý Ghi

chú

1 OnClickbtnBrowseWorkflow Không Không Cập nhật tên file

Workflow mới mở và

đường dẫn vào

txtWorkflowName

2 OnCheckChkDateExpire Không Không Enable hoặc disable

chkDateExpire

3 OnClickBtnBrowseDir Không Không Cập nhật đường dẫn

đến thư mục đã chọn

vào txtWorkflowDir

4 OnClickBtnRun Không Không Phát sinh các agent,

chạy Workflow, quản

lý lỗi

5 OnClickBtnCancel Không không Đưa ra cảnh báo nếu có

Workflow đang chaỵ,

nếu ok thì ra lệnh xoá

các agent đang chạy

đồng thời huỷ

Workflow, kết thúc

chương trình

Page 133: Mobile agent va ung dung vao workflow

Ứ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

128

2.6.1.2. Màn hình Running Workflow

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

2.6.1.2.1. Danh sách các đối tượng thể hiện

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

Running Workflow

STT Tên Loại/Kiểu Ý nghĩa Ghi

chú

1 paneWF Panel Thể hiện mô hình workflow đang chạy

2 txtNodeStatus textbox Hiển thị trạng thái node được chọn của

workflow

3 btnRunAgain button Chạy lại workflow từ node được chọn

4 btnCancelWF Button Hủy workflow đang chay

1

Node Status:

Run WF From Node Again Cancel WF

Running Workflow

2

3 4

Page 134: Mobile agent va ung dung vao workflow

Ứ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

129

2.6.1.2.2. Danh sách các biến cố

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

STT Thể hiện Loại biến

cố

Xử lý Ghi

chú

1 Node Click Thông báo tình trạng node cho

administrator

2 btnRunAgain Click Chạy lại workflow nếu thỏa các điều

kiện

3 btnCancelWF Click Hủy WF đang thực hiện

2.6.1.2.3. Danh sách các hàm xử lý

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

STT Tên hàm Tham số Kết

quả

Xử lý Ghi

chú

1 OnClickNode Tọa độ

chuột

trên màn

hình

Không Thông báo tình trạng

node cho administrator.

Nếu không phải đang

chọn node thì sẽ báo lỗi

2 OnClickbtnRunAgain Node

được

chọn

Không Chạy lại workflow nếu

thỏa các điều kiện

3 OnClickbtnCancelWF Không Không Hủy WF đang thực hiện

Page 135: Mobile agent va ung dung vao workflow

Ứ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

130

2.6.1.3. Màn hình Workflow Agent dành cho User

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

2.6.1.3.1. Danh sách các đối tượng thể hiện

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

STT Tên Loại/Kiểu Ý nghĩa Ghi chú

1 pnlXML Panel Thể hiện văn bản

XML được chọn

2 cbbXML Combobox Chọn file XML

muốn xem

3 cbbViewMyFile ComboBox Xem file XML mình

cần phải làm

Mở lên file XML mà

user phải điền vào

2

Workflow Agent

XML Document

View XML File: My Files:

Hafl Finish Hafl Finish

3 4 5

2

Page 136: Mobile agent va ung dung vao workflow

Ứ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

131

4 btnHalfFinish Button Lưu tạm lại kết quả

file đang làm việc

và tắt agent

5 btnFinish Button Báo đã hoàn thành

xong báo cáo và gửi

agent đi

Nếu chưa hoàn thành

báo cáo mà nhấn nút

thì sẽ báo lỗi

2.6.1.3.2. Danh sách các biến cố

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

STT Thể hiện Loại

biến

cố

Xử lý Ghi chú

1 btnView Click Thể hiện file XML được

chọn từ cbbFileChoose lên

panelXML

2 btnViewMyFile click Thể hiện file XML mà người

dùng phải thực hiện lên

panelXML

3 btnHalfFinish Click Lưu tạm kết quả đang thực

hiện của người dùng và ẩn đi

agent

Sau 1 thời gian đã

định sẵn, agent sẽ

lại hiện lên, yêu

cầu người dùng

thực hiện công việc

4 btnFinish Click Kiểm tra các điều kiện đã

đầy đủ chưa, nếu rồi lưu lại

kết quả, đóng gói agent, di

trú qua host tiếp theo

Page 137: Mobile agent va ung dung vao workflow

Ứ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

132

2.6.1.3.3. Danh sách các hàm xử lý

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

STT Tên hàm Tham

số

Kết

quả

Xử lý Ghi chú

1 OnClickBtnView Không Không Thể hiện file XML

được chọn từ

cbbFileChoose lên

panelXML

2 OnClickBtnViewMyFile Không Không Thể hiện file XML

mà người dùng phải

thực hiện lên

panelXML

3 OnClickBtnHalfFinish Không Không Lưu tạm kết quả

đang thực hiện của

người dùng và ẩn đi

agent

Sau 1 thời

gian đã

định sẵn,

agent sẽ

lại hiện

lên, yêu

cầu người

dùng thực

hiện công

việc

4 OnClickBtnFinish Không Không Kiểm tra các điều

kiện đã đầy đủ

chưa, nếu rồi lưu lại

kết quả, đóng gói

agent, di trú qua

host tiếp theo

Page 138: Mobile agent va ung dung vao workflow

Ứ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

133

2.6.2. Sơ đồ lớp cơ bản

2.6.2.1. Lớp ManagerAgent

*

**ManagerAgent

Wfagent

NAgent

AgentManagerWindow

Wfagent Window

Uagent

ManagerAgent

window: AgentManagerWindow

onCreation(Object) onDisposing() handleMessage(Message) createUagent(Object)

Page 139: Mobile agent va ung dung vao workflow

Ứ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

134

2.6.2.1.1. Danh sách các biến thành phần

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

STT Tên Kiểu/Lớp Ý nghĩa Ghi

chú

1 Window AgentManagerWindow Hộp thoại giao tiếp giữa agent

và administrator

2.6.2.1.2. Danh sách hàm thành phần

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

STT Tên Tham số Kết quả Xử lý Ghi chú

1 OnCreation Oject Không Tạo ra hộp thoại giao

tiếp giữa agent và

admin

2 onDisposing Không Không Xét xem có

WORKFLOW đang

chaỵ không, nếu có thì

đưa ra cảnh báo, nếu

không thì tắt agent

3 handleMessage Message Boolean Nhận các thông tin do

các Uagent hoặc

Nagent gửi về

4 createUagent Object Không Tạo ra agent mang

thông tin cập nhật đến

các agent khác

Page 140: Mobile agent va ung dung vao workflow

Ứ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

135

2.6.2.2. Lớp Workflowagent

2.6.2.2.1. Danh sách các biến thành phần

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

STT Tên Kiểu/Lớp Ý nghĩa Ghi

chú

1 Window WorkflowagentWindow Hộp thoại giao tiếp giữa

Workflowagent và User

2 serverURL URL Domain name của máy chủ

chứa ManagerAgent

3 serverID AgletID ID của chương trình

ManagerAgent đang quản lý

Workflowagent này

2.6.2.2.2. Danh sách hàm thành phần

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

STT Tên Tham số Kết quả Xử lý Ghi chú

1 OnCreation Oject Không Tạo ra hộp thoại giao

tiếp giữa agent và User,

gửi Nagent về cho

WfAgent

window: WfagentWindow serverURL: URL serverID: AgletID

onCreation(Object) onDisposing() handleMessage(Message) createNagent(Object)

Page 141: Mobile agent va ung dung vao workflow

Ứ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

136

ManagerAgent thông

báo đến host naò

2 onDisposing Không Không Đưa ra cảnh báo không

thể tắt Workflowagent

3 handleMessage Message Boolean Nhận các thông tin do

Uagent mang lại

4 createNagent Object Tạo ra Nagent để gửi

thông báo tình trạng

Workflowagent về cho

ManagerAgent

2.6.2.3. Lớp Nagent

2.6.2.3.1. Danh sách các biến thành phần

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

STT Tên Kiểu/Lớp Ý nghĩa Ghi chú

1 IP String IP của máy gửi đi NAgent

2 ServerUrl URL URL của host chạy AM

3 ServerID AgletID ID của Agent Manager

NAgent

IP : String serverUrl : URL serverID :AgletID

NAgent(); onCreation(Object); onDisposing(); onArrival(MobilityEvent event); GetIP(); handleMessage(Message);

Page 142: Mobile agent va ung dung vao workflow

Ứ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

137

2.6.2.3.2. Danh sách hàm thành phần

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

STT Tên Tham số Kết quả Xử lý Ghi

chú

1 onCreation Object Không

2 onArrival MobilityEvent Không Gửi thông điệp đến

cho ManagerAgent

khi đã đến máy chủ

3 Nagent String ip,URL

url,AgletID id

constructor Khởi tạo Nagent

4 handleMessage Message Không Nhận message gửi

đến

Page 143: Mobile agent va ung dung vao workflow

Ứ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

138

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

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

1.1. Cài đặt và sử dụng Form Designer

Chương trình Form Designer không cần cài đặt, chỉ gồm 1 file exe có biểu

tượng sau:

Click vào icon để chạy chương trình, giao diện chương trình như sau:

Page 144: Mobile agent va ung dung vao workflow

Ứ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

139

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

Kéo các control bên vùng control vào phần thiết kế để thiết kế mẫu báo cáo.

Chọn từng control và chỉnh sửa các thuộc tính cho nó bằng cách thay đổi các

thuộc tính bên phần Properties.

Sau khi đã thiết kế mẫu báo cáo hoàn chỉnh, lưu lại mẫu báo cáo bằng cách

vào Menu File, chọn Save hoặc có thể click trực tiếp vào shortcut trên thanh

toolbar, hộp thọai Save File sẽ hiện ra, chọn thư mục và tên file cho mẫu báo cáo

mới tạo, nhấn Ok, mẫu báo cáo sẽ được chuyển sang lưu dưới dạng 1 file XML.

Nếu muốn chỉnh sửa 1 file báo cáo đã có sẵn, chọn File Open hoặc click

vào shortcut Open trên tool bar, chọn file báo cáo ở dạng XML, chương trình sẽ

chuyển mẫu báo cáo từ dạng XML sang dạng đồ họa để người dùng dễ dàng chỉnh

sửa.

Các controlVùng

thiết kế

Các thuộc tính của control

Page 145: Mobile agent va ung dung vao workflow

Ứ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

140

1.2. Cài đặt và sử dụng Workflow Designer

Chương trình Workflow Designer tương tự như chương trình Form Designer,

không cần cài đặt, chỉ gồm 1 file exe có biểu tượng sau:

Click vào icon để chạy chương trình, giao diện chương trình như sau:

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

Vùng thiết kế

Các thuộc tính của control

Các control

Page 146: Mobile agent va ung dung vao workflow

Ứ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

141

Kéo các control bên vùng control vào phần thiết kế để thiết kế workflow.

Chọn từng control và chỉnh sửa các thuộc tính cho nó bằng cách thay đổi các

thuộc tính bên phần Properties. Có các control cơ bản sau:

Node And

Node Or

Mũi tên, dùng để vẽ đường đi giữa các node

Tượng trưng cho node

Sau khi đã thiết kế workflow hoàn chỉnh, lưu lại workflow bằng cách vào

Menu File, chọn Save hoặc có thể click trực tiếp vào shortcut trên thanh toolbar,

hộp thọai Save File sẽ hiện ra, chọn thư mục và tên file cho workflow mới tạo,

nhấn Ok, workflow sẽ được chuyển sang lưu dưới dạng 1 file XML.

Nếu muốn chỉnh sửa 1 workflow đã có sẵn, chọn File Open hoặc click

vào shortcut Open trên tool bar, chọn file workflow ở dạng XML, chương trình sẽ

chuyển workflow từ dạng XML sang dạng đồ họa để người dùng dễ dàng chỉnh

sửa.

1.3. Cài đặt và sử dụng Agent Manager

Như đã mô tả ở trên, chương trình AgentManager chính là 1 agent, vì vậy,

muốn thi hành chương trình, trước tiên phải cài và khởi động Server Tahiti. Thực

hiện các bước cài đặt server Tahiti như hướng dẫn ở phần 3.3 chương 2 (Cách cài

đặt và sử dụng Aglet trên môi trường Window ).

Đối với đối tượng sử dụng là administrator, sau khi đã cài đặt và thiết lập các

chế độ cần thiết như hướng dẫn, khởi động server Tahiti và tiến hành lần lượt các

bước sau:

Page 147: Mobile agent va ung dung vao workflow

Ứ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

142

Bước 1: chép tòan bộ thư mục class của chương trình AgentManager vào thư

mục public của thư mục cài aglet (server Tahiti)

Bước 2: Nhấn nút Create trên Server Tahiti

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

Bước 3: 1 hộp thọai tạo aglet sẽ hiện ra:

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

Nhấn vào Create

Page 148: Mobile agent va ung dung vao workflow

Ứ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

143

Nhập vào ô Aglet name: ManagerAgent( đây chính là class chính trong

chương trình ), nhấn vào nút Add to List để thêm class ManagerAgent vào danh

sách. Chọn ManagerAgent trong danh sách, nhấn nút Create để tạo aglet

ManagerAgent.

Bước 4: 1 hộp thọai Agent Manager sẽ hiện ra:

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

Nhấn Browse để chọn file XML chứa workflow cần thực thi

Nhập thời gian tái kết nối để di trú Wfagent khi mạng bị mất kết nối tạm thời

vào ô Time to reconnect, đơn vị tính là giây

Nhập ngày hết hạn cho agent vào ô Date Expire, nếu quá ngày này mà agent

vẫn chưa thực thi xong công việc của nó thì agent sẽ tự hủy chính nó.

Nếu người dùng tạm thời ngưng công việc báo cáo thì sau 1 khoảng thời gian

được nhập vào ô Reactivate, agent sẽ tự động hiển thị, nhắc nhở người dùng tiếp

tục thực hiện công việc của mình. Đơn vị tính là giây.

Nhấn nút Browse để chọn thư mục lưu các văn bản XML sau khi đã được

thu thập do Wfagent mang về server. Có thể gõ thẳng tên thư mục vvào ô Save

result at Directory.

Page 149: Mobile agent va ung dung vao workflow

Ứ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

144

Sau khi đã điền đầy đủ các thông số cần thiết, nhấn nút Run để bắt đầu thực

thi workflow đã chọn.

Khi đó, ở các máy của user sẽ lần lượt nhận được các wfagent với điều kiện

server Tahiti đã được cài và khởi động ở mỗi máy. Wfagent mà user nhận được sẽ

như sau:

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

Trong danh sách XML List là các file XML mà user được xem, các file

XML này do các người dùng trước user theo thứ tự trong workflow hoàn thành.

User có thể tham khảo những file XML này để hoàn thành báo cáo của mình. User

chỉ có quyền xem, không có quyền sửa các báo cáo trong danh sách này.

Trong danh sách My Files là các báo cáo mà User phải hoàn thành.

Page 150: Mobile agent va ung dung vao workflow

Ứ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

145

Khi User chọn 1 file báo cáo, nó sẽ đựơc hiển thị lên phần XML Document.

Khi User muốn tạm ngưng phần báo cáo của mình, User có thể nhấn vào nút

Half Finish, Wfagent sẽ lưu lại báo cáo tạm của User, ngưng hoạt động và tự tái

kích hoạt sau khoảng thời gian Reactivate đã được Administrator quy định.

Nếu User đã hoàn thành báo cáo, User có thể nhấn nút Finsh đế báo cho

Wfagent biết đã hoàn thành công việc. Nếu Wfagent kiểm tra trong báo cáo còn

chỗ sai hoặc thiếu sót, nó sẽ báo lỗi cho User và chờ đợi User sửa lại nội dung báo

cáo. Nếu Wfagent kiểm tra thấy báo cáo không có lỗi, nó sẽ tự đóng gói và di trú

hoặc tạo các bản sao để di trú đến các host khác.

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

2.1. Nhận xét chương trình Manager Agent

Do đặc điểm chưa hoàn hảo của Server Tahiti, chương trình không thể đóng

gói thành 1 file chạy riêng biệt mà vẫn phải để ở dạng các class để server Tahiti

chọn class chính và chạy. Đây là điểm vô cùng bất lợi cho vấn đề bảo mật cũng

như sự tiện lợi của chương trình.

Một điểm chưa tốt của aglet là bộ thư viện hàm API vẫn còn lỗi và thiếu sót.

Điều này tạo nên lỗi gửi thông điệp giữa các agent không cùng host. Nếu 2 agent

nằm trên cùng 1 host liên lạc với nhau bằng thông điệp, hàm SendMessage hoạt

động tốt, nhưng nếu 2 agent nằm khác host, khi gửi thông điệp chắc chắn sẽ có lỗi

hệ thống xảy ra. Bản thân IBM ( nơi xuất bản aglet 2.0.2 ) cũng đã thừa nhận

khuyết điểm này.

2.2. Nhận xét hệ thống

Hệ thống được thử nghiệm trên mạng Lan và hoạt động tốt, trên lý thuyết

cũng sẽ hoạt động tốt với Internet. Tuy nhiên hệ thống vẫn gặp lỗi khi hoạt động

với Internet do một số lỗi của chính Aglets Platform.

Page 151: Mobile agent va ung dung vao workflow

Ứ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

146

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

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

Báo cáo lý thuyết:

Đã nêu được đầy đủ cơ sở, nền tảng lý thuyết cho việc xây dựng ứng dụng, nêu

lên được khái niệm, tính năng hoạt động cũng như phân loại Agent, ích lợi và

nguyên lý hoạt động của Mobile Agent,

Luận văn đưa ra các môi trường có thể áp dụng công nghệ Mobile Agent như

Quản lý và theo dõi dữ liệu phân tán, Xử lý song song, Thương mại điện tử, …

Luận văn cũng nêu ra khái niệm WorkFlow, các dạng WorkFlow và khả năng

cũng như nhu cầu đòi hỏi sự kết hợp giữa kĩ thuật WorkFlow và công nghệ Mobile

Agent.

Luận văn cũng đã làm rõ vấn đề áp dụng kĩ thuật WorkFlow và công nghệ

Mobile Agent vào ứng dụng, đưa ra những tình huống tổ chức cũng như giải quyết

các vấn đề trong chương trình. Luận văn cũng phân tích các cấu trúc của hệ thống

Workag, phân tích các quy trình nghiệp vụ của từng đối tượng sử dụng

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

2.1. Kết quả đạt được

Chương trình đựơc cài đặt tương đối hoàn chỉnh với các tính năng sau:

Chương trình Form Designer và WorkFlow Designer được viết bằng

ngôn ngữ Java tuy nhiên có giao diện thân thiện như những ứng dụng Winform

thông thường nên không gây khó khăn bỡ ngỡ cho người mới sử dụng lần đầu khi

thiết kế.

Chương trình FormDesigner giúp người thiết kế có thể tạo ra các mẫu

thăm dò lấy ý kiến chuyên gia một cách nhanh chóng, chính xác và với nhiều nội

dung khác nhau.

Page 152: Mobile agent va ung dung vao workflow

Ứ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

147

Chương trình Agent Manager giúp người quản trị (administrator)

chọn lựa và thực hịên workflow đã được sọan thảo bằng hai chương trình trên,

theo dõi quán lý tiến trình hoạt động của workflow thông qua việc quản lý các

agent được phát sinh để thực thi công việc theo workflow đã được chọn. Chương

trình có khả năng yêu cầu các nhân viên hay đề nghị các chuyên gia hoàn thành

các mẫu báo cáo hoặc đóng góp ý kiến do agent của hệ thống mang đến. Hoạt

động của các agent chiếm ít băng thông mạng, quá trình mang chuyển thông tin

diễn ra nhanh chóng, khả năng tự xử lý lỗi cao. Trong trường hợp phát sinh lỗi

trên đường di chuyển của agent mà agent không tự giải quyết được, hệ thống sẽ

được cảnh báo đế có các biện pháp giải quyết thích hợp

Hệ thống bảo đảm chạy tốt trên hệ thống mạng Lan cũng như Internet, và do

viết bằng Java nên có thể chạy trên nhiều hệ thống máy với các hệ điều hành khác

nhau.

Khi cung cấp thông tin cho mẫu thăm dò,lấy ý kiến, các chuyên gia hay các

nhân viên có thể tạm dừng bất cứ lúc nào. Các thông tin đã cung cấp sẽ được tự

động lưu trữ lại để khi trở lại công việc, họ không phải cung cấp thông tin lại từ

đầu.

2.2. Một vài hạn chế của hệ thống

Hiện nay hệ thống chưa thể cho phép workflow được thực hiện tiếp nếu xảy

ra một lỗi tại một host nào đó và bắt buộc workflow phải chạy lại từ đầu.

Hệ thống chưa có khả năng phân quyền rõ ràng cho từng loại người dùng

trong workflow, phân quyền trên từng loại tài liệu, ….

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

Hiện nay hệ thống chưa thể cho phép workflow được thực hiện tiếp nếu xảy ra

một lỗi tại một host nào đó. Trong tương lai sẽ khắc phục và cho phép hệ thống

chạy tiếp workflow kể từ máy bị lỗi.

Page 153: Mobile agent va ung dung vao workflow

Ứ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

148

Tính bảo mật của hệ thống hiện nay dự trên nền tảng bảo mật của công nghệ

mobile agent, trong tương lai sẽ ap dụng PKI để tăng bảo mật cho hệ thống

Hệ thống chưa có khả năng phân quyền rõ ràng cho từng loại người dùng trong

workflow, phân quyền trên từng loại tài liệu, … Trong tương lai sẽ tổ chức và phân

quyền rõ ràng hơn.

Khả năng theo dõi quá trình thực hiện workflow của hệ thống vẫn chưa trực

quan, trong tương lai có thể sẽ xây dựng một giao diện trực quan cho biết tình hình

thực hiện trên sơ đồ workflow, từ đó giúp người quản lý workflow có thể quan sát

nhận biết tình trạng lỗi và đưa ra biện pháp khắc phục kịp thời.

Hệ thống hịên nay bao gồm 2 module là FormDesigner và WorkFlow Designer,

điều này một phần nhỏ gây không tiện lợi cho người thiết kế, trong tương lai sẽ kết

hợp hai module này lại làm một.

4. Kết luận

Đã xây dựng thành công hệ thống Workag để xây dựng 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 công ty.

Ứng dụng sẽ là 1 hệ thống khép kín từ khâu thiết kế, chỉnh sửa workflow cho đến

điều khiển thực thi MA theo workflow đã thiết kế.

Xét trên góc độ lý thuyết, hệ thống được phân tích đầy đủ, đảm bảo lưu trữ

và xử lý thông tin chính xác.

Hệ thống được thử nghiệm thành công trên hệ điều hành Windows, trong

môi trường mạng LAN, trên lý thuyết vẫn sẽ hoạt động tốt ở các hệ điều hành

khác.

Page 154: Mobile agent va ung dung vao workflow

Ứ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

149

TÀI LIỆU THAM KHẢO 1. Jonathan Dale, A Mobile Agent Architecture for Distributed Information

Management, University of Southampton, 1997

2. Jerry Smith, Distributed Combuting with Aglets, copyright, 1999

3. Danny B.Lange / Mitsuru Oshima, Programming and Deploying JavaTM

Mobile Agents with AgletsTM

4. Aglets Specification 1.1 Draft

5. XML Tutorial, www.W3School.com

6. Đào Văn Thanh, Lê Thị Kim Nga, hướng dẫn: giảng viên chính Cao Đăng

Tân, Xây dựng thử nghiệm một hệ thống trao đổi văn bản, tài liệu dựa

trên công nghệ XML và Mobile Agent, 2004

7. Lê Công Đức, Nguyễn Ngọc Thạnh, hướng dẫn: giảng viên chính Cao Đăng

Tân, Luận văn: Tìm hiểu Mobile Agent và xây dựng ứng dụng thử nghiệm,

2003.

8. Hồ Nhật Tân, Phạm Hoàng Thái Dương, hướng dẫn: giảng viên chính Cao

Đăng Tân, Nghiên cứu ứng dụng Mobile Agent, 2003

9. Trần Đăng Khoa, Phạm Minh Tuấn, hướng dẫn: Thạc sĩ Lâm Quang Vũ, Thạc

sĩ Trần Hạnh Nhi, Luận văn: Tìm hiểu XPDL và xây dựng ứng dụng minh

họa, 2004

10. Trần Hạnh Nhi, Lê Đình Duy, Nguyễn Đông Hà,Thái Trí Hùng, Văn Trọng

Nam, Huỳnh Tấn Năng, Nguyễn Huy Thẩm, Nguyễn Thái Huy, Phan Đình

Thế Huân, Hồ Thị Mỹ Hiền, Lê Văn Triều, Tổng quan về mobile agents, ĐH

Khoa học tự nhiên, 2004.