Mục lục bảng Bảng 1: Danh sách nghiệp vụ cho chương trình thiết kế form Bảng 2: Danh sách các lớp đối tượng màn hình Bảng 3: Các đối tượng thể hiện màn hình design Bảng 4: Bảng mô tả các[r]
(1)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 đến thầy Cao Đăng Tân - người đã động viên và giúp đỡ cho chúng em nhiệt tình quá trình thực luận văn Chúng em xin gửi lời cảm ơn đến tất các thầy cô 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 suốt quá trình thực luận văn Cảm ơn tất các bạn học cùng khóa đã nhiệt tình chia sẻ kinh nghiệm và kiến thức quý báu, giúp chúng tôi có thể làm tốt công việc mình Mặc dù đã cố gắng hoàn thành luận văn với tất nỗ lực thân, luận văn chắn không tránh khỏi thiếu sót, kính mong quý Thầy Cô tận tình bảo Một lần xin gửi đến tất người lời cảm ơn chân thành i (2) Ứng dụng thử nghiệm Mobile Agent vào xây dựng Workflow NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN Nguyễn Hoàng Linh Phương Nguyễn Văn Thoại ii GVHD: GVC Cao Đăng Tân (3) Ứng dụng thử nghiệm Mobile Agent vào xây dựng Workflow NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN Nguyễn Hoàng Linh Phương Nguyễn Văn Thoại iii GVHD: GVC Cao Đăng Tân (4) Ứng dụng thử nghiệm Mobile Agent vào xây dựng Workflow Mục lục Mục lục hình Mục lục bảng Bảng chú giải _ Tóm tắt luận văn _ Chương 1: Giới thiệu đề tài Chương 2: Khái niệm và nguyên lý hoạt động Mobile Agent Tổng quát software agent _9 1.1 Nguồn gốc _ 1.2 Khái niệm 10 1.3 Các tính agent: _ 11 1.4 Phân loại agent 12 Mobile Agent và nguyên lý hoạt động _14 2.1 Khái niệm Mobile Agent _ 2.2 Tính chất mobile agent: 2.3 Một số hệ thống MA: _ 2.4 Nguyên lý hoạt động 2.5 Agent Host : 2.6 Ích lợi mobile agent _ 2.7 Môi trường ứng dụng mobile agent _ 2.8 Bảo mật 14 15 15 19 25 26 27 29 Tổng quát Aglet 30 3.1 Khái niệm 3.2 Tính chất _ 3.3 Cách cài đặt và sử dụng Aglet trên môi trường Window 3.4 Aglet LifeCycle 3.5 Aglet API 30 31 31 38 40 Chương 3: Khái niệm và các mô hình WorkFlow _ 43 Khái niệm _44 Ích lợi áp dụng workflow: 44 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 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 Giới thiệu ứng dụng _58 1.1 Cơ cấu tổ chức quan: _ 1.2 Các cách giải vấn đề: _ 1.3 Yêu cầu hệ thống: _ 1.4 Các đối tượng sử dụng hệ thống: _ 1.5 Cấu trúc hệ thống Nguyễn Hoàng Linh Phương Nguyễn Văn Thoại iv 58 60 62 62 62 GVHD: GVC Cao Đăng Tân (5) Ứng dụng thử nghiệm Mobile Agent vào xây dựng Workflow 1.6 Kiến trúc hệ thống: _ 1.7 Quy trình nghiệp vụ đối tượng sử dụng: 1.8 Yêu cầu cụ thể các chức _ 1.9 Cách thức xử lý văn _ 1.10 Vấn đề merge liệu: 1.11 Các xử lý tình _ 64 65 66 66 68 70 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 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 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 _ 146 Đánh giá luận văn 146 Đánh giá ứng dụng _146 2.1 Kết đạt _146 2.2 Một vài hạn chế hệ thống _147 Hướng phát triển 147 Kết luận 148 Nguyễn Hoàng Linh Phương Nguyễn Văn Thoại v GVHD: GVC Cao Đăng Tân (6) Ứng dụng thử nghiệm Mobile Agent vào xây dựng Workflow Mục lục hình Hình 1: Agent – Phương pháp lập trình .10 Hình 2: Phân loại agent theo mục đích 13 Hình 3: Kĩ thuật Pull code – Bước 19 Hình 4: Kĩ thuật Pull code – Bước 20 Hình 5: Kĩ thuật Pull code – Bước 20 Hình 6: Kĩ thuật Push code – Bước 21 Hình 7: Kĩ thuật Push code – Bước 21 Hình 8: Kĩ thuật Autonomous code – Bước .21 Hình 9: Kĩ thuật Autonomous code – Bước .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 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 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 quan .58 Hình 30: Ví dụ 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 quá trình vận hành workflow .72 Hình 34: Use Case Form Designer 73 Hình 35: Luồng liệu tạo form Form Designer .75 Hình 36: Luồng liệu mở form Form Designer 75 Hình 37: Luồng liệu lưu form Form Designer 76 Hình 38: Luồng liệu thêm control Form Designer 77 Hình 39: Luồng liệu chỉnh sửa control Form Designer 78 Hình 40: Luồng liệu chỉnh sửa control Form Designer 79 Hình 41: Sơ đồ quan hệ các lớp 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 Nguyễn Hoàng Linh Phương Nguyễn Văn Thoại GVHD: GVC Cao Đăng Tân (7) Ứng dụng thử nghiệm Mobile Agent vào xây dựng Workflow 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 liệu cho tạo workflow Workflow Designer .101 Hình 51: Luồng liệu cho mở workflow Workflow Designer 101 Hình 52: Luồng liệu cho lưu workflow Workflow Designer 102 Hình 53: : Luồng liệu cho thêm node vào workflow Workflow Designer 103 Hình 54: Luồng liệu cho chỉnh sửa node Workflow Designer 104 Hình 55: Luồng liệu cho xóa node Workflow Designer .105 Hình 56: Luồng liệu cho thêm đường vào workflow Workflow Designer 106 Hình 57: : Luồng liệu cho xóa đường Workflow Designer 107 Hình 58: Luồng liệu cho chọn form cho node 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 liệu cho chọn workflow Agent Manager 120 Hình 64: Luồng liệu cho thực thi workflow Agent Manager 121 Hình 65: Luồng liệu cho đăng nhập Workflow Agent 121 Hình 66: Luồng liệu cho chọn văn XML Workflow Agent 122 Hình 67: Luồng liệu cho lưu tạm Workflow Agent 122 Hình 68: Luồng liệu cho hoàn thành báo cáo 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 Nguyễn Hoàng Linh Phương Nguyễn Văn Thoại GVHD: GVC Cao Đăng Tân (8) Ứng dụng thử nghiệm Mobile Agent vào xây dựng Workflow Mục lục bảng Bảng 1: Danh sách nghiệp vụ cho chương trình thiết kế form Bảng 2: Danh sách các lớp đối tượng màn hình Bảng 3: Các đối tượng thể màn hình design Bảng 4: Bảng mô tả các đối tượng màn hình Bảng 5: Bảng mô tả chi tiết các đối tượng thể ControlList Bảng 6: Bảng mô tả các biến cố Control List Bảng 7: Bảng mô tả chi tiết các đối tượng thể PropertyList Bảng 8: Bảng mô tả các biến cố màn hình design MH_MAIN Bảng 9: Bảng mô tả màn hình About Bảng 10: Bảng mô tả màn hình MH_SAVE Bảng 11: Bảng mô tả các biến cố màn hình MH_SAVE Bảng 12: Bảng mô tả màn hình MH_BORDER Bảng 13: Bảng mô tả các biến cố màn hình chọn Border Style Bảng 14: Bảng mô tả màn hình chọn Font Bảng 15: Bảng mô tả các biến cố màn hình chọn Font Bảng 16: Bảng mô tả màn hình chọn hình ảnh Bảng 17: Bảng mô tả các biến cố màn hình chọn hình Bảng 18: Bảng mô tả màn hình xem trước Bảng 19: Danh sách nghiệp vụ cho chương trình thiết kế workflow Bảng 20: Danh sách các lớp đối tượng màn hình chính Bảng 21: Bảng mô tả các đối tượng thể màn hình Workflow Designer Bảng 22: Bảng mô tả các biến cố màn hình Workflow Designer Bảng 23: Bảng mô tả các đối tượng thể màn hình control Bảng 24: Bảng mô tả các biến cố màn hình Control Bảng 25: Bảng mô tả chi tiết các đối tượng thể Bảng 26: Bảng mô tả màn hình About Bảng 27: Bảng mô tả màn hình Save Bảng 28: Bảng mô tả các biến cố màn hình Save Bảng 29: Danh sách các nghịệp vụ cho chương trình ManagerAgent Bảng 30: Danh sách các đối tượng thể màn hình Agent Manager Bảng 31: Danh sách các biến cố màn hình Agent Manager Bảng 32: Danh sách các hàm xử lý màn hình Agent Manager Bảng 33: Danh sách các đối tượng thể màn hình Bảng 34: Danh sách các biến cố màn hình Running Workflow Bảng 35: Danh sách các hàm xử lý màn hình Running Workflow Bảng 36: Danh sách các đối tượng thể màn hình Workflow Agent Bảng 37: Danh sách các biến cố màn hình Workflow Agent Bảng 38: Danh sách các hàm xử lý màn hình Workflow Agent Bảng 39: Danh sách các biến thành phần Lớp ManagerAgent Bảng 40: Danh sách hàm thành phần Lớp ManagerAgent Bảng 41: Danh sách các biến thành phần lớp Workflowagent Bảng 42: Danh sách hàm thành phần lớp Workflowagent Bảng 43: Danh sách các biến thành phần lớp Nagent Nguyễn Hoàng Linh Phương Nguyễn Văn Thoại 73 83 84 85 86 87 89 89 91 91 92 93 94 95 96 97 97 98 99 111 112 113 115 115 116 117 117 118 119 124 126 127 128 129 129 130 131 132 134 134 135 135 136 GVHD: GVC Cao Đăng Tân (9) Ứng dụng thử nghiệm Mobile Agent vào xây dựng Workflow Bảng 44: Danh sách hàm thành phần lớp Nagent Nguyễn Hoàng Linh Phương Nguyễn Văn Thoại 137 GVHD: GVC Cao Đăng Tân (10) Ứng dụng thử nghiệm Mobile Agent vào xây dựng Workflow Bảng chú giải Client-Server Peer-to-peer ARPANET UML Merge XML module IP LAN Platform ASDK bandwidth code Editor sandbox TCP/IP Release JDK Freeware Internet Mô hình mạng, đó có máy trung tâm, chịu trách nhiệm xử lý các yêu cầu các máy đưa tới Mạng ngang hàng, các máy tính có chức mạng Mạng máy tính đầu tiên, thuộc quốc phòng Mĩ Một ngôn ngữ phân tích thiết kế Trộn Ngôn ngữ đánh dấu mở rộng Những phần mềm phát triển riêng để tích hợp vào hệ thống lớn Địa Mạng nội có phạm vi hẹp Nền tảng cho ứng dụng thư viện cho Aglet Băng thông đường truyền mạng Mã nguồn trình soạn thảo mô hình bảo mật Java Giao thức Internet Phiên Bộ thư viện lập trình cho Java Phần mềm miễn phí Mạng máy tính lớn nay, nối kết máy tính trên tòan giới Nguyễn Hoàng Linh Phương Nguyễn Văn Thoại GVHD: GVC Cao Đăng Tân (11) Ứng dụng thử nghiệm Mobile Agent vào xây dựng Workflow 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 Mobile Agent – Giới thiệu nguồn gốc, khái niệm, phương thức hoạt động, các ích lợi 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 Aglet – mobile agent môi trường Java 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 workflow và các mô hình thể nó Qua đó, có thể thấy ích lợi 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 cùng các chọn lựa tối ưu cho hệ thống xây dựng, từ đó đưa phân tích và thiết kế hệ thống Workag Chương 5: Cài đặt và thử nghiệm – Đưa hướng dẫn cài đặt và sử dụng module hệ thống đồng thời đưa các nhận xét, đánh giá hệ thống Chương 6: Đánh giá kết - Tổng kết kết đạt và chưa đạt luận văn ứng dụng Nêu hạn chế chương trình cùng hướng phát triển cho hệ thống sau Nguyễn Hoàng Linh Phương Nguyễn Văn Thoại GVHD: GVC Cao Đăng Tân (12) Ứng dụng thử nghiệm Mobile Agent vào xây dựng Workflow Chương 1: Giới thiệu đề tài Đặt vấn đề: Từ Bộ Quốc Phòng Mĩ tạo mạng máy tính đầu tiên-mạng ARPANET năm 1967 nay, với phát triển mạng Internet, mạng máy tính đã, và phát triển vô cùng mạnh mẽ Theo đó, cùng với phát triển các công ty theo xu hướng đạ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 client-server, peer-to-peer đã đáp ứng hầu hết nhu cầu các công ty Tuy nhiên mô hình client-server peerto-peer lại đòi hỏi kết hợp chặt chẽ, tồn song song đồng thời các máy cùng hệ thống với Trong vài lãnh vực, tính đồng này không phải lúc nào trì và người ta cần đến mô hình uyển chuyển hơn, linh hoạt hơn, có thể hoạt động tình trạng kết nối tạm thời Vì vậy, mobile agent đời Lại xét đến vấn đề khác bối cảnh kinh tế, công nghệ phát triển nhanh chóng 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ấ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, động Để đáp ứng nhu cầu thị trường biến động không ngừng, các máy quản lý phải liên tục thay đổi phương pháp, quy trình làm việc cho chi phí tiết kiệm là tối đa Với tốc độ thay đổi đó, việc thực hay phát triển phần mềm phù hợp với quy trình là không thể 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à 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 phần mềm viết chưa xong mà quy trình làm việc lại thay đổi Với cách quản lý công việc workflow, việc trở nên dễ dàng và linh hoạt nhiều Mỗi quy trình làm việc thay đổi, cần thay đổi, thiết kế lại workflow, không cần phải lập trình lại Nguyễn Hoàng Linh Phương Nguyễn Văn Thoại GVHD: GVC Cao Đăng Tân (13) Ứng dụng thử nghiệm Mobile Agent vào xây dựng Workflow Từ trước đến giờ, workflow xây dựng theo mô hình Client-Server, quản lý tập trung chuỗi công việc, biến cố xảy server xử lý Ưu điểm mô hình này là tính đồng và thống cao Tuy nhiên, nó có điểm yếu vì mô hình này bắt buộc máy tính phải liên kết với nhau, máy phụ thuộc vào server Khi server quản lý workflow có cố thì toàn hệ thống ngưng hoạt động Trong thực tế, có hệ thống đó các thành viên có tính độc lập khá cao, không bắt buộc kết nối thời gian thực, chúng độc lập cách xa nhau, nối kết với thông qua mạng máy tính Từ đó xuất nhu cầu thoả mãn tính bất đồng trì liên hệ các bên hình thức workflow Và đó, đề tài: “Ứng dụng thử nghiệm Mobile Agent việc xây dựng Workflow” thực Mục đích luận văn Luận văn sâu tìm hiểu kĩ thuật mobile agent và các dạng thức, mô hình workflow để từ đó, xây dựng ứng dụng thử nghiệm xây dựng và thực thi workflow kĩ thuật mobile agent Ứng dụng 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 tổ chức, đoàn thể hay doanh nghiệp Hệ thống này thể rõ nét ưu điểm workflow và mobile agent áp dụng vào việc giải yêu cầu đặt Hệ thống xây dựng dựa trên hệ (platform) Aglet IBM với ngôn ngữ Java, ngôn ngữ phổ biến với tính trội là chạy trên nhiều môi trường khác nhau, thích hợp với yêu cầu hoạt động tốt môi trường bất đồng luận văn Nguyễn Hoàng Linh Phương Nguyễn Văn Thoại GVHD: GVC Cao Đăng Tân (14) Ứng dụng thử nghiệm Mobile Agent vào xây dựng Workflow Chương 2: Khái niệm và nguyên lý hoạt động Mobile Agent Mobile agent là loại software agent Để hiểu rõ tảng mobile agent, ta tìm hiểu khái quát software agent Tổng quát 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 tiểu chương trình nhỏ gọn, thông minh, có khả hoạt động mình và kết hợp với tiểu chương trình khác Năm 1994, khái niệm software agent đưa Mark Sidell và Chuck Knuff và đến năm 1995 thì phiên đầu tiên agent xuất 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 gent đời đã tạo phương pháp lập trình Nguyễn Hoàng Linh Phương Nguyễn Văn Thoại GVHD: GVC Cao Đăng Tân (15) Ứng dụng thử nghiệm Mobile Agent vào xây dựng Workflow 1.2 Khái niệm Agent là kết hợp nhiều kĩ thuật tin học đại: Các hệ thống phân tán Phục hồi thông tin AI & Khoa học nhận dạng Agent Mobile Code Kĩ thuật sở liệu và sở tri thức Máy học Hình 1: Agent – Phương pháp lập trình Không có định nghĩa chính xác cho software agent, nhiên, ta có thể tham khảo định nghĩa sau: Một agent là thành phần phần mềm và/hoặc phần cứng mà có khả hoat động chính xác để hoàn thành nhiệm vụ thay mặt chủ nhân agent (Nwana,1996) Trên mạng Internet, agent ( có gọi là intelligent agent ) là chương trình thu thập thông tin thực thi 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 đã lên lịch sẵn agent đôi gọi là bot ( viết tắt robot ) Một ví dụ agent là chương trình Infogate Chương trình này có chức thu thập các tin tức 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 có tin Nguyễn Hoàng Linh Phương Nguyễn Văn Thoại 10 GVHD: GVC Cao Đăng Tân (16) Ứng dụng thử nghiệm Mobile Agent vào xây dựng Workflow 1.3 Các tính agent: 1.3.1 Tính tự trị (autonomous): Agent có khả tự kiểm soát hoạt động 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ác tác nhân khác Nói cách đơn giản, agent là 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á tự trị agent Hai đặc tính hướng đích (goal-oriented) và tính chủ động (pro-activeness) thường dùng để đánh giá mức độ tự trị agent Khả tự trị agent chủ yếu định 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 nó theo các kinh nghiệm thu 1.3.3 Bền vững quá trình hoạt động (persistent) 1.3.4 Hoạt động hướng đích (goal driven) Mỗi agent tạo có mục đích và nó hành động theo mục đích này mục đích thỏa mãn 1.3.5 Giao tiếp và cộng tác ( communicative/collaborative): Agent có khả liên lạc, giao tiếp phối hợp hoạt động với các agent cùng môi trườg khác hay các loại đối tượng khác các loại môi trường khác 1.3.6 Linh hoạt (flexible) Agent có thể hoạt động nhiều môi trường, hệ điều hành khác Nguyễn Hoàng Linh Phương Nguyễn Văn Thoại 11 GVHD: GVC Cao Đăng Tân (17) Ứng dụng thử nghiệm Mobile Agent vào xây dựng Workflow 1.3.7 Tính di động (mobility): Là khả di chuyển từ môi trường thi hành này sang môi trường khác agent Khả di động agent phân thành hai loại Di động mạnh (strong mobility) là khả mà hệ thống có thể di chuyển mã chương trình và trạng thái thi hành agent đến môi trường khác Di động yếu (weak mobility) là khả hệ thống có thể di chuyển mã chương trình các môi trường thi hành với nhau, mã nguồn có thể mang kèm theo số liệu khởi tạo 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ỏ, thân agent không phải là ứng dụng hoàn chỉnh, hoạt động trên máy, agent cần phải kết hợp với chương trình chạy sẵn trên máy mà ta gọi là AgentHost có thể hoạt động Ngoài có số agent kết hợp với 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 1.4.1.1 Agent tĩnh (Stationary agent) : Đặc tính: Chỉ làm việc trên hệ thống, nơi mà agent bắt đầu vòng đời Nếu stationary agent cần thông tin hệ thống khá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 các chế truyền thông khác 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ả di chuyển từ nơi này sang nơi khác hệ thống mạng máy tính thời điểm và vị trí agent lựa chọn Nguyễn Hoàng Linh Phương Nguyễn Văn Thoại 12 GVHD: GVC Cao Đăng Tân (18) Ứng dụng thử nghiệm Mobile Agent vào xây dựng Workflow 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: Collaborative Learning Agents Cooperative Intelligent Agents Adaptive autonomous Collaborative Agents Interface Agents Hình 2: Phân loại agent theo mục đích 1.4.2.1 Collaborative agents Collaborative agent là chương trình giúp người dùng giải vấn đề, đặc biệt trường hợp phức tạp không quen thuộc, cách sửa lỗi, đề nghị nên làm gì và chú ý đến vấn đề cấp thấp Một collaborative agent có thể thêm vào giao diện người dùng có sẵn, ví dụ các chương trình giả lập tích hợp vào thiết kế dụng cụ phần cứng mới, ví dụ đồ gia dụng 1.4.2.2 Interface agents Nguyễn Hoàng Linh Phương Nguyễn Văn Thoại 13 GVHD: GVC Cao Đăng Tân (19) Ứng dụng thử nghiệm Mobile Agent vào xây dựng Workflow Interface agent là chương trình có thể ảnh hưởng đến giao diện thao tác trược tiếp, không có hướng dẫn trực tiếp từ người dùng Interface agent đọc các liệu người dùng nhập vào giao diện và nó có thể tạo 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à thay đổi đó không phải diễn ứng với hành động người dùng Interface agent có thể quan sát nhiều tham số nhập vào người dùng khỏang thời gian nào đó trước định thực hành động 1.4.2.3 Smart/Intelligent agents Có đầy đủ mục đích: giao tác, tự động và dễ thích nghi và đây chính là tên gọi khác software agent Mobile Agent và nguyên lý hoạt động Những hệ thống phân tán truyền thống xây dựng trên chương trình tĩnh, chuyển liệu 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à thành phần phần mềm, bao gồm mã chương trình, 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à dạng mobile code (Mobile code là 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 applet có thể chứa đoạn code ko đáng tin cậy, gây hại.) Mobile agent ngoài tính mobile code còn có thể : mang theo mình liệu và trạng thái thực thi, di trú mạng kiểm soát chính nó Vì vậy, có thể nói mobile agent an toàn mobile code nhiều Nguyễn Hoàng Linh Phương Nguyễn Văn Thoại 14 GVHD: GVC Cao Đăng Tân (20) Ứng dụng thử nghiệm Mobile Agent vào xây dựng Workflow 2.2 Tính chất mobile agent: Có khả di trú từ nơi này sang nơi khác Liên lạc với nhau, nhân bản, nhập lại, tổng hợp tính toán số agent có khả cung cấp dịch vụ interface cho các ứng dụng kế thừa Có kích thước nhỏ Có khả xác định và dùng tài nguyên trên các máy tính chứa nó 2.3 Một số hệ thống MA: 2.3.1 Aglets Aglets xây dựng và phát triển D B Lange và IBM Tokyo Research Laboratory Xem thêm phần 1.3 2.3.2 Voyager Voyager là môi trường thương mại hỗ trợ phát triển các ứng dụng agent hãng Object Space phát triển từ năm 1996 Voyager đã trải qua nhiều lần nâng cấp và thay đổi từ phiên 1.0 bây là phiên 4.5 Tháng 03.2002 sản phẩm Voyager nhượng lại cho Recursion Software, công ty chuyên 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 từ 1.0 đến 3.3 Voyager phân phối cho các nhà phát triển freeware Hiện Voyager đã có phiên 4.5 Evaluation hoàn toàn tương thích với JDK1.3, JDK1.2 và JDK1.1 Phiên này bao gồm sản phẩm, đó 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 cách dễ dàng, cho phép các đối tượng này trao đổi thông điệp với nhau, và di chuyển các đối tượng các máy tính có hỗ trợ môi Nguyễn Hoàng Linh Phương Nguyễn Văn Thoại 15 GVHD: GVC Cao Đăng Tân (21) Ứng dụng thử nghiệm Mobile Agent vào xây dựng Workflow trường Voyager Voyager hỗ trợ mạnh tính di động với khả mang toàn mã chương trình và liệu di chuyển từ máy ảo Java này sang máy ảo Java khác các máy ảo có hỗ trợ Voyager Trạng thái hoạt động agent bảo toàn và tiếp tục thực thi nơi agent đến Một đặc điểm trội khác Voyager là tính phổ quát Các chương trình viết Voyager có thể trao đổi thông tin hai chiều với các chương trình viết SOAP, CORBA, RMI và DCOM Các dạng thông tin 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ể xem là cửa ngõ, 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 Hơn nữa, tất các chương trình và đối tượng có thể tổ chức thành không gian chung, nhờ việc liên lạc trở thành một–nhiều cách tự động Phiên 4.5 Voyager đã bổ sung thêm các tính quan trọng hỗ trợ cho các chuẩn dịch vụ Web SOAP và WSDL đã phát triển phiên này giúp cho các nhà phát triển có khả 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 thông qua các dịch vụ Web Thế mạnh thật Voyager nằm đơ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 nhiều Việc tích hợp các công nghệ và các chuẩn vào cùng sản phẩm tạo cho Voyager hấp dẫn riêng biệt 2.3.3 Mole Mole là hệ thống Mobile Agent xây dựng với ngôn ngữ Java đại học Stuttgart (CHLB Đức) Phiên đầu tiên (Release 1.0) đã hoàn thành vào năm 1995, năm 1997 phiên Release 2.0 hoàn thành, Release 3.0 hoàn tất vào năm 1998 và đề án đã kết thúc với kết 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 Nguyễn Hoàng Linh Phương Nguyễn Văn Thoại 16 GVHD: GVC Cao Đăng Tân (22) Ứng dụng thử nghiệm Mobile Agent vào xây dựng Workflow dựng trên Java, Mole có khả thực thi trên tất 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 quá trình giao tiếp Mole hỗ trợ di chuyển yếu- weak migration Để thực giao tiếp các agent Mole sử dụng các chế truyền thông điệp, gọi hàm từ xa RPCs, và chế đặc trưng Mole là session , badge Ngôn ngữ giao tiếp các agent Mole hỗ trợ là KQML Việc trao đổi liệu các agent thực 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 hệ thống thông qua lập lịch trung tâm MCP Khả bảo mật Mole đánh giá khá tốt các hệ thống agent Mole tuân theo mô hình bảo mật sandbox java Agent hệ thông Mole chia làm hai loại: user agent và system agent User agent là agent di động kích hoạt 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) - khởi động người quản trị - không có tính di động và 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 ứng dụng 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ở Mole, ta có thể tiến hành cải tiến, nâng cấp chức có, và bổ sung chức các chức công cụ hổ trợ lập trình agent để Mole trở thành hệ thống agent đạ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 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 thông thường việc tạo lập và quản lý các agent, Zeus đặc biệt chú trọng việc hỗ trợ phương Nguyễn Hoàng Linh Phương Nguyễn Văn Thoại 17 GVHD: GVC Cao Đăng Tân (23) Ứng dụng thử nghiệm Mobile Agent vào xây dựng Workflow pháp luận và 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 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 phân tích thực mình Hai giai đoạn phân tích và thiết kế miêu tả chi tiết chưa hỗ trợ 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 agent Code Generator tự động phát sinh mã nguồn cho agent từ thuộc tính đã đặc tả Hai đặc tính quan trọng các Zeus agents là tính tự trị và cộng tác Bộ phận Planner agent hỗ trợ agent thể tính tự trị Khả thương lượng và cộng tác các agent Zeus tích hợp vào toolkit thông qua 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 mình Các Zeus agent truyền thông theo point-to-point socket TCP/IP với message là 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ả “hiểu” lẫn 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 Zeus phân tán qua mạng và có thể thực các tác vụ đồng thời Chính vì thế, việc quản lí các agent là vấn đề mà môi trường đặt Visualiser Zeus cung cấp các công cụ để kiểm tra các quan hệ giao tiếp các agent, trạng thái tác vụ agent thực và trạng thái bên agent Đồng thời, Zeus Statistic Tool cho phép người dùng so sánh các thống kê khác cộng đồng agent, chẳng hạn loại thông điệp nào agent đã gửi và tỉ lệ là bao nhiêu, cách trực quan dạng đồ thị khác Cũng nhằm quản lí agent, Zeus cung cấp agent tiện ích Nguyễn Hoàng Linh Phương Nguyễn Văn Thoại 18 GVHD: GVC Cao Đăng Tân (24) Ứng dụng thử nghiệm Mobile Agent vào xây dựng Workflow Agent Name Server hoạt động Yellow Page, Facilitator White Page, Visualiser và Database Proxy Một hạn chế Zeus là liệt kê vào môi trường mobile agent hướng nghiên cứu tính di động Zeus bước đầu, chưa cài đặt Do đó mà tính bảo mật Zeus cho các agent không có Điều này có thể khắc phục các phiên sau Zeus đã và triển khai số ứng dụng 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õ nguyên lý hoạt động môi trường mạng Mobile Agent, ta so sánh nó với nguyên lý hoạt động các kĩ thuật khác: Có cách thực thi code môi trường mạng : 2.4.1.1 Kĩ thuật pull code Áp dụng mô hình client-server, bắt đầu client gửi yêu cầu đến server, server gửi code client và code thực thi, cho kết client Thao tác gồm bước : Bước : máy client gửi yêu cầu đến server request code code server client Hình 3: Kĩ thuật Pull code – Bước Nguyễn Hoàng Linh Phương Nguyễn Văn Thoại 19 GVHD: GVC Cao Đăng Tân (25) Ứng dụng thử nghiệm Mobile Agent vào xây dựng Workflow Bước : server gửi code cho client request code code code server client Hình 4: Kĩ thuật Pull code – Bước Bước : code thực thi client code execute server code client Hình 5: Kĩ thuật Pull code – Bước Ví dụ : Các Java applet thực thi theo phương pháp này Chú ý : mô hình này, code server gửi tới client và thực thi client Server lưu trữ code 2.4.1.2 Kĩ thuật push code Khi có yêu cầu từ người dùng, máy (1 node) mạng gửi code tới máy (1 node) khác cùng môi trường mạng và thực thi máy đó Thao tác này gồm bước : Bước : tự 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 là máy có nối mạng với B không cần điều kiện A phải là server Nguyễn Hoàng Linh Phương Nguyễn Văn Thoại 20 GVHD: GVC Cao Đăng Tân (26) Ứng dụng thử nghiệm Mobile Agent vào xây dựng Workflow remote exec code code node A node B Hình 6: Kĩ thuật Push code – Bước Bước : code thực thi máy B Code A code execute node A node B Hình 7: Kĩ thuật Push code – Bước Chú ý : A lưu trữ code Như vậy, mô hình trên, nơi gửi code giữ lại code 2.4.1.3 Kĩ thuật autonomous code Code tự định và thực thi đâu Bước : code sau thực thi máy A tự đóng gói và di trú tới máy execute B migrate code code node A node B Hình 8: Kĩ thuật Autonomous code – Bước Nguyễn Hoàng Linh Phương Nguyễn Văn Thoại 21 GVHD: GVC Cao Đăng Tân (27) Ứng dụng thử nghiệm Mobile Agent vào xây dựng Workflow Bước : code thực thi máy B, lúc này code hoàn toàn không còn A execute node A code node B Hình 9: Kĩ thuật Autonomous code – Bước Ví dụ : mobile agent hoạt động theo phương pháp này Tự định đóng gói, không để lại và di trú đến đâu là điểm khác biệt mobile agent với kĩ thuật trên Nguyễn Hoàng Linh Phương Nguyễn Văn Thoại 22 GVHD: GVC Cao Đăng Tân (28) Ứng dụng thử nghiệm Mobile Agent vào xây dựng Workflow 2.4.2 Đời sống agent : Creation Serialize Migrate Host Deserialize Execute Destroy or sleep Migrate Request Yêu cầu di trú từ nguồn Serialize Migrate 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 di trú đến AgentOS khác Migrate: Di trú agent kèm tình trạng nó đến nơi khác Deserialize: Tái tạo lại trạng thái trước di trú agent Execute: Truy cập vào các dịch vụ host, liên lạc với các agent khác, hoàn thành nhiệm vụ agent Migrate Request: Yêu cầu di trú đến host khác Nguyễn Hoàng Linh Phương Nguyễn Văn Thoại 23 GVHD: GVC Cao Đăng Tân (29) Ứng dụng thử nghiệm Mobile Agent vào xây dựng Workflow Destroy or sleep: Khi nhiệm vụ đã hoàn thành gặp trở ngại gì đó không thể tiếp tục hoạt động thì agent tự hủy tự đưa nó vào trạng thái ngủ đông (sleep) Mọi agent thực các công việc nó theo logic : đầu tiên, agent tạo ra, di trú từ host này sang host khác và cuối cùng bị huỷ sau hoàn thành nhiệm vụ * Chi tiết vòng đời agent Vòng đời agent bắt đầu agent tạo trên host Khi đó, agent cấp định danh Tình trạng ban đầu có thể khởi tạo theo Khi đã sẵn sàng nhận lệnh để di trú đến host khác nằm đường agent, agent lưu lại trạng thái hành mình và tiến hành quá trình di trú Nếu quá trình di trú thất bại, agent tự ngừng hoạt động (deactivate) để nó tự kích hoạt lại chính mình sau khỏang thời gian định trước hay kích hoạt và tiến hành lại quá trình di trú đến host khác Khi đã di trú đến host thành công, agent phục hồi lại trạng thái Lúc này, agent bắt đầu thực thi nhiệm vụ nó, sử dụng các dịch vụ trên host, liên lạc với agent khác… Sau agent đã hoàn tất nhiệm vụ, nó có thể bị huỷ chuyển sang trạng thái ngủ đông có yêu cầu từ đếm chính thân agent Khi đó, agent lưu lại trạng thái nó và di trú đến host khác.Vòng đời agent lại lặp lại theo trình tự trên nó hoàn thành nhiệm vụ hết thời gian hoạt động thì agent bị hủy 2.4.3 Các điều kiện agent phải thỏa mãn Có mã xác nhận Xác định agent khác thực thi cùng host Có khả nhận và gửi thông điệp cho agent khác Nguyễn Hoàng Linh Phương Nguyễn Văn Thoại 24 GVHD: GVC Cao Đăng Tân (30) Ứng dụng thử nghiệm Mobile Agent vào xây dựng Workflow 2.5 Agent Host : 2.5.1 Khái niệm Agent không thể tồn mình mà nó phải dựa trên phần mềm khác gọi là host hay AgentOS để sống và hoạt động Chính host tạo agent từ đọan code đã có, thực thi agent, chuyển nó đến host khác hay hủy agent Khi host bị hủy thì agent hoạt động dựa trên host đó bị hủy theo 2.5.2 Các yêu cầu cho AgentOS : Độc lập flatform : AgentOS phải có khả hỗ trợ agent môi trường mạng không đồng Multithreaded: AgentOS phải có khả cho phép nhiều agent hoạt động đồng thời ( có thể có độ ưu tiên khác nhau) Di trú agent và trạng thái nó : Agent có thể yêu cầu host di trú agent tới host khác và thực thi Có chế cho các agent host giao tiếp được: AgentOS phải cung cấp khả liên lạc thông qua kiện các agent cùng node các agent các node khác Tái sử dụng agent: AgentOS phải cung cấp cho người dùng khả phân loại, lưu trữ agent để có thể lấy sử dụng lại sau Bảo mật: AgentOS phải có chế chống lại agent tạo với ý đồ xấu nhằm ngăn chặn việc bị đánh cắp thông tin bị công từ chối dịch vụ… Có thể mở rộng Nguyễn Hoàng Linh Phương Nguyễn Văn Thoại 25 GVHD: GVC Cao Đăng Tân (31) Ứng dụng thử nghiệm Mobile Agent vào xây dựng Workflow 2.6 Ích lợi 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 xử lý liệu, trao đổi cục đó Như góp phần làm giảm 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 kĩ thuật mobile agent là : mang xử lý đến nơi chứa liệu là mang liệu 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 phải chấp nhận trễ mạng định Nhưng điều đó không phép xảy các hệ thống thời gian thực điều khiển đèn giao thông, dây chuyền sản xuất Khi đó, giải pháp mobile agent hữu ích việc khắc phục độ trễ nhờ vào việc agent có thể gử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 dẫn người điều khiển 2.6.3 Có thể thực thi ngắt kết nối mạng Khi gặp cố mạng và không thể di chuyển tiếp, agent tự đưa mình vào trạng thái chờ mạng thiết lập lại thì agent khởi động lại và di chuyển tiếp để hoàn thành nhiệm vụ giao 2.6.4 Thực thi bất đồng 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 yếu ớt Vì thế, tác vụ cần có kết nối liên tục thiết bị di động và mạng có thể không có tính kinh tế không khả thi mặt kĩ thuật Giải pháp mobile agent giải vấn đề này cách nhúng tác vụ cần thực vào mobile agent gửi lên mạng Sau gửi đi, agent trở nên độc lập thi hành không đồng và có khả tự trị Các thiết bị di động sau đó có thể kết nối lại để đón agent trở Nguyễn Hoàng Linh Phương Nguyễn Văn Thoại 26 GVHD: GVC Cao Đăng Tân (32) Ứng dụng thử nghiệm Mobile Agent vào xây dựng Workflow 2.6.5 Nhanh và giảm thiểu lỗi Với khả phản ứng động với các kiện và 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 dễ dàng 2.6.6 Khắc phục tình trạng không đồng Việc xử lý tính toán trên mạng là không đồng vì đa dạng phần cứng và phần mềm 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ó phụ thuộc vào môi trường thi hành nên mobile agent cung cấp đ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 2.6.7 Đóng gói các giao thức Khi liệu trao đổi hệ thống phân tán, việc truyền và nhận liệu phải mã hóa các giao thức cần thiết Các giao thức này sở hữa máy hệ thống Tuy nhiên, các giao thức phải tiến hóa để phù hợp với yêu cầu bảo mật 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 loại ứng dụng sau: 2.7.1 Thu thập 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 liệu không đồng nhất, việc cử các mobile agent đến các nguồn tin và khai thác chỗ, quay với thông tin cần thiết làm giảm tải mạng và giải tốt bài tóan tương thích Nguyễn Hoàng Linh Phương Nguyễn Văn Thoại 27 GVHD: GVC Cao Đăng Tân (33) Ứng dụng thử nghiệm Mobile Agent vào xây dựng Workflow 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 bật chất không đồng các mobile agent Các agent có thể gởi đi, đến nơi có nguồn tin và hoạt động theo dõi nguồn tin người dùng ngắt kết nối Sau đó, nguồn tin có thay đổi , agent quay báo cho chủ nhân Các agent có thể gửi để chờ dạng thông tin nào đó xuất hiện, sau đó báo cho người dùng biết tự nó có hành động thích hợp 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 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 việc phục vụ khách hàng để đảm bảo dịch vụ mình Mặt khác, các ứng dụng lọai này tỏ hiệu các mạng cục 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 2.7.4 Xử lí song song Do các agent có thể tạo các nó trên mạng, tạo ứng dụng đầy tiềm 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 xử lý có thể phân bố cho các agent mang thực trên nhiều máy tính khác để tận dụng các tài nguyên trống và cân 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 các giao dịch kinh doanh trên mạng Một giao dịch có thể bao gồm 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ác thực thể để đạt Nguyễn Hoàng Linh Phương Nguyễn Văn Thoại 28 GVHD: GVC Cao Đăng Tân (34) Ứng dụng thử nghiệm Mobile Agent vào xây dựng Workflow nghi thức chung việc thương lượng Hơn nữa, việc di chuyển các thành phần ứng dụng tiến gần đến nguồn thông tin thích hợp cho giao dịch quan tâm Vì công nghệ mobile agents là giải pháp 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 hệ thống mạng lớn, việc chẩn đoán lỗi, trì ổn định hệ thống là các công việc khó khăn Việc ứng dụng mobile agent vào việc quản trị mạng giúp cho các công việc chẩn đoán lỗi và trì từ xa ổn định hệ thống dễ dàng 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ả di chuyển đến các máy tính có cấu hình mạnh để hoạt động (truy vấn sở liệu, tìm tin…) trả kết là 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 tiến hành 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 số tài nguyên Trên quá trình di trú agent, để đảm bảo thông tin bảo vệ, có thể áp dụng phương pháp mã hoá PKI Nguyễn Hoàng Linh Phương Nguyễn Văn Thoại 29 GVHD: GVC Cao Đăng Tân (35) Ứng dụng thử nghiệm Mobile Agent vào xây dựng Workflow Tổng quát Aglet Aglets xây dựng và phát triển D B Lange và IBM Tokyo Research Laboratory Hiện nay, Aglets Software Development Kit (ASDK) IBM phát triển đã dừng lại phiên 1.1 Beta3 trên JDK1.1 Phiên ASDK là 2.0.2 SourceForge phát triển trên JDK1.3 3.1 Khái niệm Aglet là đố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 aglet di chuyển, nó mang theo mình mã chương trình lẫn liệu Trong mô hình đối tượng aglets, mobile agent là đối tượng di động có luồng kiểm soát riêng nó, làm việc theo kiện và liên lạc với các agent khác cách truyền thông điệp Aglets có chế định danh và toàn cục dựa trên URL Aglets hỗ trợ chế di động yếu (weak- mobility) Các aglets giao tiếp với 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 kiện (clone, mobility, persistence) phát sinh môi trường để có phản ứng thích hợp Agent có thể giao tiếp đồng không đồng 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 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ác agent Aglets là platform sử dụng nhiều để phát triển các hệ thống mobile agent Một số đề án thực 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) đại học Ryerson University, Mỹ , Acme – Hệ thống hỗ trợ Sales Order Processing việc mua bán chứng khoán, Đại học Loughborough, Anh Nguyễn Hoàng Linh Phương Nguyễn Văn Thoại 30 GVHD: GVC Cao Đăng Tân (36) Ứng dụng thử nghiệm Mobile Agent vào xây dựng Workflow Aglets là 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 nó Có thể xem aglets là khái quát hóa và mở rộng applet và servlet Aglet server là chương trình cung cấp môi trường thi hành và máy ảo Java cho aglet hoạt động Ngoài ra, Aglet server sử dụng trình quản lý để tiếp nhận và kiểm soát aglet cách an toàn 3.2 Tính chất Một chương trình aglet có tính chất sau đây: Là đối tượng khả chuyển Nó là đối tượng ứng dụng với các phương thức và liệu trạng thái, và khả di chuyển, nó có thể gửi aglets tự chuyển đến địa điểm khác mạng thực thể độc lập Tính tự trị Một aglet có khả tự định xem làm gì di chuyển đâu và nào Khả tương tác với đối tượng khác Nó có khả tương tác với aglets khác đối tượng stationary Khi cần thiết, nó tự gửi nó các aglets khác đến địa điểm xa để tương tác với các đối tượng đó Không kết nối Nếu máy tính ngắt kết nối với mạng, aglet có thể tự động chờ và di chuyển 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 cùng hệ thống 3.3 Cách cài đặt và sử dụng Aglet trên môi trường Window Thể 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 gói là Aglets library, phần này cho phép người viết phần mềm có thể dịch Nguyễn Hoàng Linh Phương Nguyễn Văn Thoại 31 GVHD: GVC Cao Đăng Tân (37) Ứng dụng thử nghiệm Mobile Agent vào xây dựng Workflow và chạy ứng dụng Aglets, phần còn lại là agents biên dịch trước và 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 Run-time Enviroment (JRE), nhiên bạn nên cài đặt đầy đủ Java Source Development Kit (J2SDK) để biên dịch các agents, tham khảo trang chủ SUN: http://java.sun.com Aglets có thể đưọc cài đặt trên máy chạy UNIX/LINUX, Microsoft Windows Mac OS X Nói chung, kiến trúc máy tính có thể chạy Java Platform có thể cài đặt và thực thi Aglets Quá trình cài đặt thực trên Window ( các bước cài đặt giống Windows các hệ điều hành khác) Mặc định là bạn đã cài đặt và có thể thực thi lệnh Java Có cách cài đặt aglet, đây chúng ta tìm hiểu cách cài đặt là cài đặt từ gói đã biên dịch sẵn: Đây là cách khuyên nên sử dụng vì gói biên dịch sẵn bao gồm thành phần Platform và thư viện ASDK Nếu bạn không phải là 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 đặt file jar mà bạn download Tên file jar này cho biết version Aglets mà bạn sử dụng Version file jar đề cập đến 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 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 nén file jar nên việc đầu tiên bạn phải giải nén nó Hãy chú ý là giải nén thì các tập tin giải nén nằm thư mục hành, đó tốt hết là bạn nên tạo thư mục riêng bạn dùng để sử dụng quá trình cài đặt Aglets, ví dụ là E:\MAgent Khi bạn đã tạo Nguyễn Hoàng Linh Phương Nguyễn Văn Thoại 32 GVHD: GVC Cao Đăng Tân (38) Ứng dụng thử nghiệm Mobile Agent vào xây dựng Workflow xong thư mục, bạn copy file jar nói trên vào thư mục đó và đánh lệnh sau đây console: jar xvf aglets-2.0.2.jar Trong suốt quá trình cài đặt bạn thấy dòng sau đây xuất trên màn hình, dòng này liệt kê tập tin giải nén: Hình 11: Giải nén aglets-2.0.2.jar Nguyễn Hoàng Linh Phương Nguyễn Văn Thoại 33 GVHD: GVC Cao Đăng Tân (39) Ứng dụng thử nghiệm Mobile Agent vào xây dựng Workflow Nếu các bước cài đặt thành công bạn thấy các thư mục bên thư mục cài dặt bạn, các thư mục bao gồm: bin: chứa chương trình thực thi cho Aglets platform, ngoài nó còn chứa file cần thiết dùng cho các bướccài đặt cnf: chứa 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 bạn lib: đây là thư mục thư viện Aglets library( bao gồm tập tin jar) và vài tập tin thư viện cần thiết khác Aglets Nếu có thể, bạn hãy đọc tập tin README và INSTALL bao gồm 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 ứng dụng java Aglets đóng gói chung với version Ant để cài đặt platform, ngòai bạn có thể sử dụng bất kì version nào 1.5 Để 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 sau: Nguyễn Hoàng Linh Phương Nguyễn Văn Thoại 34 GVHD: GVC Cao Đăng Tân (40) Ứng dụng thử nghiệm Mobile Agent vào xây dựng Workflow Hình 12: Cài đặt platform Trong quá trình dịch và cài đặt thư viện, bạn thấy message thông báo version Aglets 3.3.3 Cài đặt chính sách bảo mật Như chương trình Java khác, Aglets platform cần quyền chính sách bảo mật java để thực thi các tác vụ mở socket, chạy các ứng dụng agent khác, mở tập tin máy client, … Bạn có thể copy các Nguyễn Hoàng Linh Phương Nguyễn Văn Thoại 35 GVHD: GVC Cao Đăng Tân (41) Ứng dụng thử nghiệm Mobile Agent vào xây dựng Workflow tập tin bin/.aglets.policy chương trình Ant có thể làm điều này giúp bạn Ngoài Ant cài đặt keystore cho bạn Aglets cần keystore để chứa khóa bảo mật dùng di trú; thông thường các keystore đưọc lưu file /.keystore Để cài đặt các chính sách bảo mật và keystore trên 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 cách tiện lợi hơn, bạn phải khai báo thư mục bin aglets vào biến môi trường PATH Bạn đánh các lệnh sau đây console windows: set AGLETS_HOME=E:\Magent set AGLETS_PATH=%AGLETS_HOME% set PATH=%PATH%;\%AGLETS_HOME%\bin có thể khai báo các biến môi trường trên control panel Nguyễn Hoàng Linh Phương Nguyễn Văn Thoại 36 GVHD: GVC Cao Đăng Tân (42) Ứng dụng thử nghiệm Mobile Agent vào xây dựng Workflow 3.3.5 Chạy Aglets server Sau cài đặt Aglets platform và keystore, bạn có thể chạy Aglets server, tên gọi là Tahiti Tahiti có thể chạy 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 yêu cầu người dùng đăng nhập, người dùng 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 đăng nhập thành công thì cửa sổ chính server Tahiti Bên 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, … Nguyễn Hoàng Linh Phương Nguyễn Văn Thoại 37 GVHD: GVC Cao Đăng Tân (43) Ứng dụng thử nghiệm Mobile Agent vào xây dựng Workflow Hình 15: Màn hình Server Tahiti Để đóng server, bạn có thể click vào button close chọn Exit Aglet menu Trong hai cách Aglets hỏi bạn có thoát hay không, đó bạn click OK để thoát, Cancel đóng cửa sổ đó lại và Reboot làm server restart 3.4 Aglet LifeCycle Lớp ibm.com.aglet.Aglet cung cấp các chức cho đối tượng mobile và aglet phải là thể họăc subclass nó Để dùng aglet, trước hết ta phải instantiated (tạo thể hiển) nó Có cách để làm điều này Cách 1: tạo aglet hoàn tòan từ định nghĩa lớp cách gọi hàm AgletContext.createAglet(URL codebase, String name, Object init) Hàm này tạo thể context và khởi động nó cần thiết Cách 2: tạo aglet đã tồn cách dùng hàm Aglet.clone() Aglet có cùng trạng thái aglet gốc có AgletID khác Nguyễn Hoàng Linh Phương Nguyễn Văn Thoại 38 GVHD: GVC Cao Đăng Tân (44) Ứng dụng thử nghiệm Mobile Agent vào xây dựng Workflow Context A Clone Context B Proxy Dispatch Proxy Aglet Aglet Dispose Retract Create Deactivate Activate Bộ lưu trữ thứ cấp Class Hình 16: Vòng đời Aglet Khi tạo ra, đối tượng aglet có thể gửi đến và/hoặc nhận từ server khác, ngưng hoạt động và lưu trữ nơi nào đó để lại tái kích hoạt aglet có thể tự gửi chính nó đến server khách cách gọi hàm nguyên gốc Aglet.dispatch (URL dest) Để chính xác hơn, aglet cư ngụ aglet context và có thể di chuyển từ context này đến context khác suốt quá trình hoạt động Bởi vì server có thể phục vụ nhiều context cùng máy ảo Java (JVM), và host có thể phục vụ nhiều server nên context đặt tên với thụôc tính sau: Địa host, thường là địa IP Port mà server dùng để nghe Số context server Ví dụ: atp://aglets.ibm.com:1434/context_name Khi di trú, aglet phải ngưng hoạt động, đưa trạng thái hoạt động và bytecode nó vào form chuẩn và chuyển đến đích Bên phía nhận, đối tượng Java tái xây dựng dựa theo liệu nhận từ gốc và thread đăng kí và thực thi Aglets có thể bền vững Do mobile aglet cần phần mảnh thành bit-stream, mobile aglet có thể bền vững tự nhiên Hàm Nguyễn Hoàng Linh Phương Nguyễn Văn Thoại 39 GVHD: GVC Cao Đăng Tân (45) Ứng dụng thử nghiệm Mobile Agent vào xây dựng Workflow Aglet.deactivete(long timeout) giúp aglet lưu trữ lại nhớ và đưa aglet vào trạng thái ngủ đông khỏang thời gian định Sau hết thời gian chương trình khác yêu cầu nó tái kích hoạt, aglet tái kích hoạt cùng context mà nó bị hoạt động Không giống các đối tượng Java thông thường bị tự động hủy chế độ thu thập rác Java ( garbage collector ), đối tượng aglet tự định có hủy chính nó hay không Nếu bạn gọi phương thức dipose() để hủy aglet, hàm onDisposing() gọi để hoàn tất công việc tùy vào trạng thái hành aglet Tuy nhiên, aglet bị hủy, tài nguyên sử dụng sở liệu hay file không tự động hủy aglet, bạn phải có lệnh riêng hủy chúng 3.5 Aglet API Aglet Aglet Proxy Message Aglet Proxy Aglet Aglet Context Hình 17: Aglet API Aglet API là 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ả tiếng Java là “viết lần, thi hành đâu” viết lại là “viết lần, lưu hành đâu” Một aglets tạo ra, nó chạy trên 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 hay nguồn gốc cụ thể Aglet API cài trên máy chạy Aglet : chính là lớp ảo com.ibm.aglet.Aglet : định nghĩa các phương thức tảng đẻ kiểm sóat di chuyển và vòng đời mobile agent Mọi mobile agent phải kế thừa từ lớp ảo này Vài hàm quan trọng lớp này là : Nguyễn Hoàng Linh Phương Nguyễn Văn Thoại 40 GVHD: GVC Cao Đăng Tân (46) Ứng dụng thử nghiệm Mobile Agent vào xây dựng Workflow ¾ Aglet.dispatch(URL) : di chuyển aglet từ máy nó 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 thể aglet có cùng trạng thái aglet gốc là đối tượng kiểu AgletProxy không phải kiểu Aglet ¾ Aglet Proxy : com.ibm.aglet.AgletProxy: là lớp interface hoạt động đại diện aglet và cung cấp cách chung để truy cập aglet đứng sau nó Lớp aglet có nhiều phương thức public mà vài số này lẽ không gọi trực tiếp từ các aglet khác vì lý bảo mật Vì aglet muốn liên lạc với aglet khác thì đầu tiên là phải tạo đố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 đối tượng che chắn, bảo vệ agent khỏi các agent nguy hiểm Khi gọi, aglet proxy truy cập đến SecurityManager để xác định xem đối tượng gọi có quyền thực thi phương thức hay không Một chức quan trọng khác aglet proxy là cung cấp location transparency Nếu aglet thực cư trú host khác, aglet proxy chuyển tiếp yêu cầu đến host đó và trả kết cho host cục Message : com.ibm.aglet.Message : đối tượng aglet giao tiếp cách trao đổi đối tượng thuộc lớp Message Một đối tượng Message có đối tượng kiểu String đế xác định kiểu thông điệp Một thông điệp có thể gửi đến aglet 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 chứa tham chiếu đến đối tượng AgletContext hành nó thông qua hàm Aglet.getAgletContext(), và dùng nó để chứa thông tin địa host, bảng liệt kê Aglet Proxy tạo Nguyễn Hoàng Linh Phương Nguyễn Văn Thoại 41 GVHD: GVC Cao Đăng Tân (47) Ứng dụng thử nghiệm Mobile Agent vào xây dựng Workflow aglet Khi di trú đến host mới, đối tượng context bị hủy và thay nó là đối tượng aglet host agent di trú đến Nguyễn Hoàng Linh Phương Nguyễn Văn Thoại 42 GVHD: GVC Cao Đăng Tân (48) Ứng dụng thử nghiệm Mobile Agent vào xây dựng Workflow 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ừ công việc đòi hỏi tính tự động văn phòng doanh nghiệp, đó tài liệu cần phải số hóa và lưu chuyển các nhóm làm việc Ngày nay, công việc quản lý workflow thu hút nhiều quan tâm dựa vào khả nó 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 là tiến trình kinh doanh mà còn là bất kì tiến trình nào cần điều khiển và quản lý Nhưng điểm chính việc quản lý workflow là hứa hẹn 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ý 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 thành viên đúng lúc, có cái nhìn tổng quan tiến triển công việc Có cách hiểu workflow Cách 1: workflow theo nghĩa rộng, là mô hình nghiệp vụ, đó các công việc phân công rõ ràng, thực theo thứ tự đặt sẵn Khái niệm workflow theo cách hiểu này đã có từ lâu và ứng dụng rộng rãi các ngành công nghiệp Cách 2: Khái niệm workflow 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 đây) Khái niệm workflow nói chung phức tạp và đa dạng, phạm vi luận văn này, xin trình bày khái niệm workflow quản lý tiến trình kinh doanh Nguyễn Hoàng Linh Phương Nguyễn Văn Thoại 43 GVHD: GVC Cao Đăng Tân (49) Ứng dụng thử nghiệm Mobile Agent vào xây dựng Workflow Khái niệm Workflow là quá trình điện toán hoá hay tự động hóa phần toàn tiến trình kinh doanh Ý nghĩa workflow này đơn giản 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 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ả Ích lợi áp dụng workflow: Lợi ích việc sử dụng worflow quản lý tiến trình kinh doanh liệt kê sau: Tiến trình kinh doanh đưọc vạch rõ ràng, vì trách nhiệm và mối quan hệ cộng tác định rõ Dễ dàng để tối ưu hóa công việc kinh doanh vì định nghĩa chính xác trên Tiến trình kinh doanh chia nhỏ thành module và 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ì dễ dàng thích nghi nhanh chóng với thay đổi không đoán trước yêu cầu và điều kiện kinh doanh Workflow có thể theo dõi ngày Workflow tích hợp với ứng dụng hay 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 công việc nó tạo phần công việc riêng Theo dự đoán, workflow tạo nên phương pháp, kĩ thuật từ nhiều nguồn khoa học máy tính quản trị học Ví dụ, kĩ thuật workflow liên quan đến quản trị sở liệu, tính toán client-server, giao diện Nguyễn Hoàng Linh Phương Nguyễn Văn Thoại 44 GVHD: GVC Cao Đăng Tân (50) Ứng dụng thử nghiệm Mobile Agent vào xây dựng Workflow 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 Các dạng workflow Có nhiều dạng workflow từ đơn giản đến nâng cao Ở góc độ thử nghiệm luận văn, ứng dụng á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ả: hoạt động luồng công việc kích hoạt sau hoạt động khác kết thúc cùng tiến trình Ví dụ: hành vi gửi hóa đơn thực sau hành vi gửi hàng hóa Cài đặt: dạng sử dụng để mô hình các bước liên tiếp cùng tiến trình luồng công việc Mô hình: Công việc A Công việc B Hình 18: Mô hình Workflow Tuần tự Chú thích: Công việc B thực sau công việc A đã hoàn thành 3.1.2 Phân luồng song song (Parallel Split) Mô tả: điểm tiến trình luồng công việc là nơi công việc tách thành nhiều công việc Các công việc có thể tiến hành đồng thời cùng lúc với (song song nhau) Ví dụ: Sau 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 kích hoạt và tiến hành đồng thời Mô hình: Nguyễn Hoàng Linh Phương Nguyễn Văn Thoại 45 GVHD: GVC Cao Đăng Tân (51) Ứng dụng thử nghiệm Mobile Agent vào xây dựng Workflow Công việc B Công việc A Công việc C Hình 19: Mô hình Workflow song song 3.1.3 Đồng hoá Mô tả: điểm luồng công việc là nơi các tiến trình hay các công việc nhập lại làm tiến trình hay công việc đơn Trong dạng mô hình này, tất các luồng vào phải chờ điểm đồng hóa Ví dụ: Sau hành vi gửi hàng và xuất hóa đơn thực hiện, hành vi lưu trữ kích hoạt Mô hình: Công việc A Công việc C AND Công việc B Hình 20: Mô hình workflow Đồng hóa Chú thích: A và B phải hoàn thành thì C kích hoạt 3.1.4 Phép chọn loại trừ (Exclusive Choice) Mô tả: điểm luồng công việc diễn lựa chọn công việc nào kích hoạt loạt các công việc Ví dụ: Sau công việc kiểm thử phần mềm thực hiện, dựa vào kết kiểm thử định công việc là lập trình hay đóng gói phần mềm Nguyễn Hoàng Linh Phương Nguyễn Văn Thoại 46 GVHD: GVC Cao Đăng Tân (52) Ứng dụng thử nghiệm Mobile Agent vào xây dựng Workflow Mô hình: Công việc B Công việc A Lựa chọn B hay C Công việc C Hình 21: Mô hình workflow Chọn lọai trừ Chú thích: Chỉ có B C thực hiện, không thể tiến hành đồng thời hai 3.1.5 Trộn đơn giản (Simple Merge) Mô tả: điểm luồng công việc là nơi hay nhiều nhánh gặp nhau, không có đồng hóa các nhánh Ví dụ: Công việc lưu trữ thực sau công việc gửi hóa đơn công việc nhận hóa đơn thực Mô hình: Công việc A Công việc C Công việc B Hình 22: Mô hình workflow Trộn đơn giản Chú thích: cần công việc A B hoàn thành thì công việc C kích hoạt Nguyễn Hoàng Linh Phương Nguyễn Văn Thoại 47 GVHD: GVC Cao Đăng Tân (53) Ứng dụng thử nghiệm Mobile Agent vào xây dựng Workflow 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 tiến trình là nơi mà nhiều nhánh chọn theo định dựa trên liệu 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 nhiều nhánh chọn và thực thi, tương tự phép XOR Các ví dụ:Sau thực hành vi đánh-giá-thiệt-hại, hành vi “liên hệ phòng cứu hỏa” hành vi “liên hệ công ty bảo hiểm” thực Ít hai hành vi này thực Tuy nhiên, có thể là hai cần thực Mô hình: Hình 23: Mô hình workflow Chọn đa nhánh 3.2.2 Trộn đồng hoá Mô tả: Một điểm tiến trình là nơi nhiều nhánh hội tụ lại thành tiến trình Nếu có nhiều nhánh thực thi, việc đồng hóa (việc đợi các nhánh ) thực Nếu có nhánh thực thi, các nhánh khác có thể hội tụ mà không cần đồng hóa Trong mẫu này có nhánh đã kích hoạt, thì nó không thể kích hoạt lại lần còn đợi các nhánh khác hoàn tất Mẫu này khác với mẫu Đồng hóa chỗ nó đồng dựa trên số nhánh thực kích hoạt lúc thực thi Còn mẫu Đồng hóa bắt buộc tất các nhánh khỏi nút AND phân luồng (AND-Split) phải thực Nguyễn Hoàng Linh Phương Nguyễn Văn Thoại 48 GVHD: GVC Cao Đăng Tân (54) Ứng dụng thử nghiệm Mobile Agent vào xây dựng Workflow Các ví dụ: Mở rộng ví dụ mẫu (chọn đa nhánh), sau 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ó thực thi hay không), hành vi trình-báo-cáo phải thực (chỉ hành vi) Mô hình: Công việc A Công việc C Công việc B Hình 24: Mô hình workflow Trộn đồng hóa 3.2.3 Trộn đa nhánh Mô tả: Một điểm tiến trình là nơi hai nhiều nhánh hội tụ lại và không đồng hóa Nếu nhiều nhánh kích hoạt, hành vi sau điểm trộn bắt đầu kích hoạt nhánh vào Mẫu này chính là thể cho chế trộn phục vụ cho mục đích dùng chung cho các thành phần 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 nhánh (có thể phức tạp), ta dùng mẫu trộn đa nhánh Ví dụ đơn giản trường hợp này là hành vi “kiểm tra đơn xin việc” và “xử lý đơn xin việc” cùng thực song song và thực trước hành vi “đóng trường hợp” Mô hình: Công việc A Công việc C Công việc B Hình 25: Mô hình workflow Trộn đa nhánh Nguyễn Hoàng Linh Phương Nguyễn Văn Thoại 49 GVHD: GVC Cao Đăng Tân (55) Ứng dụng thử nghiệm Mobile Agent vào xây dựng Workflow 3.2.4 Discriminator Mô tả: Mẫu Discriminator là điểm tiến trình làm nhiệm vụ đợi đến các nhánh hoàn tất sau đó kích hoạt các hành động Từ đó trở đi, nó cho phép các nhánh vào còn lại hoàn tất “phớt lờ” chúng Trong trường hợp tất các nhánh hoàn tất, nó trở tình trạng ban đầu để có thể kích hoạt lại lần Các ví dụ: Để làm tăng tốc độ phản hồi, hai yêu cầu tìm kiếm gửi đến sở liệu trên Internet Kết nào đến trước tiếp tục luồng công việc Cái còn lại không quan tâm Mô hình: Công việc A Công việc C Công việc B Hình 26: Mô hình workflow Discrimator 3.2.5 Các vòng lặp tuỳ ý Mô tả:Một điểm tiến trình là nơi các hành vi thực lặp lại nhiều lần Mẫu này là thể cho chế lặp cấu trúc Trong mẫu này việc lặp thường định các điều kiện lựa chọn Các ví dụ:Tiến trình xem xét sản phẩm : tiến trình này vòng lặp các hoạt động Make,Read, Note, Approve là 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 ý Nguyễn Hoàng Linh Phương Nguyễn Văn Thoại 50 GVHD: GVC Cao Đăng Tân (56) Ứng dụng thử nghiệm Mobile Agent vào xây dựng Workflow 3.2.6 Kết thúc không tường minh Mô tả: Một tiến trình phải chấm dứt không còn gì để thực tiếp Nói cách khác, không còn hành vi nào thực workflow và không có hành vi nào kích hoạt (tuy nhiên workflow không tình trạng deadlock) Mẫu này thường thể 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 tiến trình phải có nút quy định cuối cùng mô hình” Mẫu này gọi là kết thúc không tường minh, vì ràng buộc kết thúc nó không bắt buộc tiến trình công việc phải thực đến điểm cuối, mà dựa trên số công việc còn có khả thực Các ví dụ: Trong công việc có nhiều hoạt động thực hiện, giả sử thực đến công việc kế cuối Nếu ta áp dụng mẫu 2.4.2.14 (Withdraw) thì tiến trình làm không còn hoạt động nào phải làm tiếp Khi đó tiến trình công việc kết thúc mà không cần phải đợi phải thực hoạt động cuối cùng (đã bị hủy) 3.2.7 Đa thể không đồng Mô tả: Mẫu này mô tả hành vi có thể có nhiều thể Nếu hành vi có thể kích hoạt các thể nó, thì thể hành vi này tạo tiến trình (một thể luồng) riêng biệt điều khiển độc lập với các thể 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 các thể luồng này Các ví dụ: Một khách hàng đặt sách từ quầy sách điện tử Amazon có thể đặt mua các sách khác cùng 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, …) thực khách hàng đặt hàng Tuy nhiên, cần phải có nhiều thể để điều khiển các hoạt động thuộc cá nhân đặt hàng (ví dụ cập nhật hàng dự trữ, giao hàng) Mẫu này có thể dùng trường hợp các hoạt động đặt hàng không cần phải đồng Nguyễn Hoàng Linh Phương Nguyễn Văn Thoại 51 GVHD: GVC Cao Đăng Tân (57) Ứng dụng thử nghiệm Mobile Agent vào xây dựng Workflow 3.2.8 Đa thể với thông tin biết trước thời điểm thiết kế Mô tả: Trong thể tiến trình, hành vi có thể kích hoạt nhiều lần Số các thể hành vi tiến trình cho trước biết thời điểm thiết kế Khi các thể hoàn tất thì hành vi khác bắt đầu Ví dụ: Việc cấp giấy phép các chất liệu nguy hiểm yêu cầu phải có loại giấy phép khác Điều này có nghĩa là hoạt động cấp giấy phép xác định số lần thực trước là lần (ở thời điểm thiết kế) 3.2.9 Đa thể với thông tin biết trước thời điểm thực thi Mô tả: Là trường hợp hành vi kích hoạt nhiều lần Số các thể hành vi có thể biến đổi, nhiên xác định thời điểm thực hiện, trước các thể hành vi tạo Một tất thể hoàn tất, hành vi khác bắt đầu Ví dụ: việc kiểm tra tiến độ thực phần mềm, số lần kiểm tra phụ thuộc vào độ phức tạp đề á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à định việc kiểm tra bao nhiêu lần đã vào giai đoạn triển khai quy trình nghiệp vụ cho phần mềm xác định 3.2.10 Đa thể không biết trước thông tin Mô tả: Dùng cho trường hợp hành vi kích hoạt nhiều lần Số thể hành vi cho trước không biết thời điểm thiết kế và thời điểm thực thi - trước các thể tạo Các thể hành vi có thể tạo cách tùy ý Một tất các thể hoàn tất, hành vi bắt đầu Sự khác biệt mẫu này so với mẫu 14 là có vài thể thực thi đã hoàn tất, thể có thể tạo Nguyễn Hoàng Linh Phương Nguyễn Văn Thoại 52 GVHD: GVC Cao Đăng Tân (58) Ứng dụng thử nghiệm Mobile Agent vào xây dựng Workflow Các ví dụ: Để xử lý trường hợp bảo hiểm, có thể có không có nhiều tường trình các nhân chứng xử lý Số lượng tường trình là có thể thay đổi Thậm chí xử lý các tường trình, nhân chứng lại xuất và số tường trình lại tăng lên Như việc xử lý các tường trình là không thể biết trước số lần thực dù mức thiết kế (mô hình hóa) hay thực thi Chỉ triển khai nghiệp vụ, không còn công việc xử lý tường trình nào thì hoạt động xử lý tường trình kết thúc 3.2.11 Chọn lựa bị trì hoãn Mô tả: Một điểm tiến trình là nơi số các nhánh chọn Không giống tách – XOR, nhánh chọn không thực (dựa trên liệu định) mà có nhiều nhánh tương tự tạo Tuy nhiên, có nhánh thực thi Khi môi trường thực kích hoạt nhánh, các nhánh khác bị hủy Việc chọn nhánh bị hoãn việc xử lý các nhánh tương tự thực 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ự Discriminator, nhiên có điểm khác biệt: Discriminator dùng chế trộn Discriminator cho phép thực các công việc nhánh còn lại, việc thực các nhánh này không dẫn đến kích hoạt hoạt động Ví dụ: Các chuyến công tác cần phê chuẩn trước thực Có hai cách để phê chuẩn nhiệm vụ : là trưởng phòng phê chuẩn nhiệm vụ (hành vi A) quản lý dự án (hành vi B) phê chuẩn nhiệm vụ Hai hành vi này thực thi một, và việc chọn lựa A và B là không tường minh, nghĩa là cùng thời điểm các hành vi A và B gửi đến trưởng phòng và quản lý dự án Tại thời điểm mà hai hành vi này chọn lựa hoàn tất, hành vi còn lại biến Nguyễn Hoàng Linh Phương Nguyễn Văn Thoại 53 GVHD: GVC Cao Đăng Tân (59) Ứng dụng thử nghiệm Mobile Agent vào xây dựng Workflow 3.2.12 Đường vào song song Mô tả: Một tập các hành vi thực theo thứ tự tùy ý sau : hành vi tập, việc thực thi xác định vào thời điểm chạy, và không có hành vi nào thực cùng lúc (có nghĩa là không có hành vi nào thực cùng thể workflow cùng thời điểm) Các ví dụ:Hải quân đòi hỏi các ứng viên phải thực kiểm tra: “kiểm tra thể chất” và “kiểm tra tinh thần” Các kiểm tra có thể diễn với thứ tự nào miễn là không có kiểm tra nào cùng thời điểm - Vào cuối năm, ngân hàng thực hoạt động “cộng lãi tức” và “tính tiền vay” trên tài khoản.Các hoạt động có thể thực với thứ tự nào.Nhưng vì chúng có thể thực trên cùng tài khoản, nên không thực đồng thời 3.2.13 Cột mốc Mô tả: Việc kích hoạt hành vi dựa vào trạng thái cụ thể nào đó, ví dụ hành vi kích hoạt đến 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 kích hoạt hành vi B đã thực thi còn C thì chưa, nghĩa là A không kích hoạt trước B thực thi sau C thực thi Hình 17 minh hoạ trường hợp này Trạng thái B và C mô hình điểm m Điểm này là cột mốc cho A Các ví dụ: Trong công ty du lịch, các chuyến bay, xe cho thuê, và các khách sạn có thể đặt trước miễn là hóa đơn chưa in Khách hàng có thể hủy đơn mua hàng trước ngày 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: Nguyễn Hoàng Linh Phương Nguyễn Văn Thoại 54 GVHD: GVC Cao Đăng Tân (60) Ứng dụng thử nghiệm Mobile Agent vào xây dựng Workflow Hình 28: Mô hình workflow Cột mốc 3.2.14 Widthdraw Mô tả: Mẫu này thể việc 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 thiết kế phần mềm kiểm tra nhiều nhóm kĩ sư với các hoạt động kiểm tra khác Tuy nhiên, nhiều để có kết đúng hạn, cần hoạt động kiểm tra thực Khi đó, thời điểm có nhiều hoạt động kiểm tra sẵn sàng thực hiện, cho phép hủy số thể kiểm tra (đang 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ể nhánh hoạt động bị loại bỏ hoàn toàn kể các hoạt động thực 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 mình thì các thể hoạt động cho việc xét ứng viên đó hủy Các thể hoạt động việc xét ứng viên thường đặt trên nhánh luồng công việc Khi đó tất các hoạt động ứng với nhánh xét cho ứng viên này hủy Nguyễn Hoàng Linh Phương Nguyễn Văn Thoại 55 GVHD: GVC Cao Đăng Tân (61) Ứng dụng thử nghiệm Mobile Agent vào xây dựng Workflow Kết hợp kĩ thuật MA và workflow 4.1 Ích lợi Ưu điểm MA: có thể hoạt động ngắt mạng, khả tự trị cao, tự xử lý các vấn đề xảy trên đường di chuyển, hoạt động tốt 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ấu quản lý trên máy tính có thay đổi thực tế Từ trước đến nay, các phần mềm quản lý workflow hoạt động theo mô hình C-S Khuyết điểm mô hình là: Khi có cố mạng xảy ra, công việc bị ngưng lại Người quản trị hệ thống workflow phải giải tất các lỗi xảy thay đổi đường hủy công việc client có cố Thay mô hình C-S mô hình Mobile Agent, giải khuyết điểm trên Ngoài ra, còn có thêm ưu điểm khác như: chương trình agent tự đốc thúc người thực 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 không phải liên lạc với server 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, engine workflow làm trung tâm điều khiển hoạt động, còn agent hoạt động service cung cấp hệ thống quản lý workflow Workflow engine quản lý việc khởi tạo và hủy agent, đó, mô hình này, agent chủ yếu là các interface agent, không cần phải là agent thông minh Thực tế, phần mềm Nguyễn Hoàng Linh Phương Nguyễn Văn Thoại 56 GVHD: GVC Cao Đăng Tân (62) Ứng dụng thử nghiệm Mobile Agent vào xây dựng Workflow thương mại dựa trên mô hình này IBM MQSeries Workflow, InConcert, chức agent phần phần mềm bình thường 4.2.2 Agent Based Workflow Đây là 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, agent có công việc riêng và tồn nó thực thi xong phần việc nó Trong mô hình này, tiến trình kinh doanh thể trên hệ thống mạng theo mô hình mobile agent Các công việc giao cho agent và agent di trú trên mạng theo workflow đã định sẵn để hoàn thành công việc Mô hình này sát với thực tế, đòi hỏi agent phải thông minh, có khả 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, chưa có phần mềm nào dựa trên mô hình này thương mại hóa Tuy nhiên, có khá nhiều nghiên cứu mô hình này ADEPT (Jennings et al, 1996) hay FireFlow System (Yan, 1999)… Luận văn 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 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 doanh nghiệp Nguyễn Hoàng Linh Phương Nguyễn Văn Thoại 57 GVHD: GVC Cao Đăng Tân (63) Ứng dụng thử nghiệm Mobile Agent vào xây dựng Workflow Chương 4: Xây dựng ứng dụng Giới thiệu ứng dụng Ứng dụng 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 công ty Ứng dụng là hệ thống khép kín từ khâu thiết kế, chỉnh sửa workflow điều khiển thực thi MA theo workflow đã thiết kế Hệ thống đặt tên là Workag 1.1 Cơ cấu tổ chức quan: Công ty Phòng Phòng Tổ Nhân viên Tổ Role Phòng Role Nhân viên Hình 29: Cơ cấu tổ chức quan Trong doanh nghiệp, để máy làm việc vận hành liên tục và hiệu quả, tồn nhu cầu lớn đòi hỏi liên lạc, trao đổi các phòng ban với Nguyễn Hoàng Linh Phương Nguyễn Văn Thoại 58 GVHD: GVC Cao Đăng Tân (64) Ứng dụng thử nghiệm Mobile Agent vào xây dựng Workflow báo cáo, tài liệu theo quy trình cụ thể Do các quy trình trao đổi này thường xuyên thay đổi theo tình trạng và yêu cầu khác 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 đó, sử dụng công nghệ workflow lại thích hợp Điều kiện thực tế doanh nghiệp sau: Đứng đầu Công ty là Giám đốc Đứng đầu phòng là trưởng phòng Đứng đầu tổ là tổ trưởng Dưới tổ trưởng có thể có các role tổ phó, thành viên Mỗi nhân viên cùng phòng có máy tính nối mạng LAN, có IP khác và nhất, có cài AgentOS Các phòng ban khác có thể thuộc mạng LAN khác nhau, nằm quốc gia khác nằm mạng WAN chung công ty Xây dựng workflow theo các cấp công ty, node, quy định rõ chức node ví dụ cho mô hình workflow: quy trình kiểm lỗi phần mềm: sau lập trình, module chuyển từ phòng “Coding” đến phòng “Testing” Phòng Testing không chia thành các tổ mà gồm trưởng phòng và các thành viên Workflow cấp phòng là: Phòng “Coding Phòng “Testing” NX: Dù phòng “Coding” và phòng “Testing” nằm cùng mạng LAN công ty hay nằm nước khác thì hệ thống hoạt động tốt Mô hình workflow cấp role cho phòng Testing: giả sử phòng Testing có nhân viên và trưởng phòng, module tách thành phần để nhân viên kiểm tra Sau kiểm tra, kết gửi lại cho trưởng phòng Nguyễn Hoàng Linh Phương Nguyễn Văn Thoại 59 GVHD: GVC Cao Đăng Tân (65) Ứng dụng thử nghiệm Mobile Agent vào xây dựng Workflow đầu vào đầu Trưởng phòng Nhân viên Nhân viên Nhân viên Hình 30: Ví dụ workflow đơn giản 1.2 Các cách giải vấn đề: 1.2.1 Sử dụng nhân công Để thực chuỗi công việc 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 phòng, giao cho nhân viên sau đó thu thập lại, tổng hợp kết và đem kết 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 các công văn, báo cáo với số lượng báo cáo nhiều ¾ Các nhân viên gặp khó khăn việc xem, tham khảo báo cáo các nhân viên khác dù phép ¾ Khó khăn việc chỉnh sửa báo cáo thực sai ¾ Quy trình cứng nhắc, không linh hoạt Nguyễn Hoàng Linh Phương Nguyễn Văn Thoại 60 GVHD: GVC Cao Đăng Tân (66) Ứng dụng thử nghiệm Mobile Agent vào xây dựng Workflow 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 truy cập vào server để lấy báo cáo máy mình làm Khi thực xong, client gửi trả kết server để client khác tiếp tục tải máy thực Ưu điểm: thao tác server quản lý nên quản lý tập trung Khuyết điểm: ¾ Lượng gói tin di chuyển trên mạng là nhiều gây thiếu băng thông ¾ Nếu mẫu báo cáo thực client có lỗi thì server 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ị cố mạng thì không thực công việc 1.2.3 Sử dụng Mobile Agent Mobile agent 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 kiểm lỗi, báo cáo không hoàn chỉnh, agent yêu cầu nhân viên thực lại báo cáo Nếu báo cáo đã hoàn thành, agent đóng gói chính nó và di trú đến máy khác để tiếp tục công việc Khi hoàn thành, agent tổng hợp kết và gửi 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 mạng gặp cố nên đặc biệt thích hợp với các môi trường mạng bất đồng ¾ Có tính chủ động cao, có thể kiểm lỗi máy nhân viên giúp tiết kiệm thời gian và chi phí di chuyển ¾ Vì lý trên nên mobile agent lựa chọn để giải yêu cầu đặt Nguyễn Hoàng Linh Phương Nguyễn Văn Thoại 61 GVHD: GVC Cao Đăng Tân (67) Ứng dụng thử nghiệm Mobile Agent vào xây dựng Workflow 1.3 Yêu cầu hệ thống: Thiết kế workflow hoàn chỉnh Mô hình workflow phải chứa cấu trúc sau: ¾ Tách công việc nhiều công việc nhỏ, thự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 node trên workflow, cho phép thiết kế form báo cáo riêng ¾ Xây dựng framework cho hệ thống Workflow trên mobile agent ¾ Ứng dụng 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 trên môi trường mạng LAN ¾ Thực thi trên nhiều hệ điều hành ¾ Số lượng node 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 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 công ty): cần biết kiến thức mạng kết nối, nhận tin và kiến thức xử lý văn 1.5 Cấu trúc hệ thống Hệ thống gồm 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 Nguyễn Hoàng Linh Phương Nguyễn Văn Thoại 62 GVHD: GVC Cao Đăng Tân (68) Ứng dụng thử nghiệm Mobile Agent vào xây dựng Workflow có sẵn Chương trình chuyển các đối tượng đó và bố trí chúng thành file văn XML và các file này đính kèm vào node trên workflow để mang 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 cách kéo thả Chương trình xây dựng trê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 cần thiết vào node trên đường Các đối tượng có chương trình gồm: ¾ Node: node workflow là đại diện cho máy tính mạng Khi chọn node, người dùng phải nhập đầy đủ thông tin cho node IP node, tên node ¾ Đường đi: thể dạng mũi tên, thể công việc từ node này sang node khác ¾ Trạm trung chuyển: có nhiều loại trạm trung chuyển, thể các dạng khác workflow Ví dụ: OR : Lựa chọn node mạng 1.5.3 Agent Manager: Hoạt động dựa trên tảng Aglets IBM, tạo và quản lý các agent Người dùng cần đưa vào các thông tin : WF cần thực hiện, thời gian sống agent Hệ thống sinh các loại agent sau: ¾ Wfagent( Workflow Agent) : agent mang các mẫu văn đến các người dùng workflow đã thiết kế Wfagent 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 các người dùng đó đã cung cấp đầy đủ thông tin cho agent, agent chuyển các đối tượng đồ họa lại dạng Nguyễn Hoàng Linh Phương Nguyễn Văn Thoại 63 GVHD: GVC Cao Đăng Tân (69) Ứng dụng thử nghiệm Mobile Agent vào xây dựng Workflow văn XML, tổng hợp lại tiếp đến node khác theo workflow đã định và gửi kết cho Agent manager ¾ Uagent (Updater agent): Khi có thay đổi đường thông tin sửa lỗi từ Agent Manager, AM gửi uagent mang các thông tin cần sửa đổi đến các agent chạy trên hệ thống và cập nhật thông tin cho các agent này Nếu uagent gặp uagent khác có thời gian cập nhật gặp agent đã tiếp xúc với uagent thì nó tự huỷ ¾ Nagent (Notifier agent): wfagent tiếp xúc với người dùng mới, nó gửi thông tin cập nhật cho Agent Manager thông qua nagent 1.6 Kiến trúc hệ thống: Người dùng A Người dùng B Agent Host wfagent Agent Host nagent Agent Host wfagent wfagent Workflow Designer CSDL WF wfagent nagent uagent Agent Manager Workflow Document Designer CSDL DOC ( XML) CSDL LT (XML) Hình 31: Kiến trúc hệ thống Nguyễn Hoàng Linh Phương Nguyễn Văn Thoại 64 GVHD: GVC Cao Đăng Tân (70) Ứng dụng thử nghiệm Mobile Agent vào xây dựng Workflow : đường di trú MA : truy cập sở liệu wfagent: Workflow agent uagent: Updater agent nagent: Notifier agent CSDL WF: Lưu trữ các workflow đã thiết kế trước CSDL DOC: Lưu trữ các mẫu báo cáo đã thiết kế trước CSDL LT: Lưu trữ các mẫu báo cáo wfagent mang 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 Quy trình hoạt động sau: Sử dụng chương trình Form Designerthiết kế 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 load workflow tạo wfagent Wfagent dựa trên workflow cung cấp tạo các để đến các máy và yêu cầu user trên máy thực mẫu báo cáo ứng với máy theo workflow đã định sẵn Khi đến máy, wfagent tạo nagent gửi cho Agent Manager báo đã đến máy nào Khi có lỗi xảy cần cập nhật workflow, Agent Manager tạo uagent mang thông tin cần cập nhật đến với wfagent chạy Wfagent sau hoàn thành nhiệm vụ trở Agent Manager mang theo các mẫu báo cáo đã hoàn thành và lưu vào thư mục đã định sẵn 1.7 Quy trình nghiệp vụ đối tượng sử dụng: 1.7.1 Administrator Mở chương trình thiết kế workflow, chọn tạo workflow, thiết kế workflow theo các template sẵn có, thiết kế form lấy thông tin đánh giá cho node trên workflow, lưu form, lưu workflow Nguyễn Hoàng Linh Phương Nguyễn Văn Thoại 65 GVHD: GVC Cao Đăng Tân (71) Ứng dụng thử nghiệm Mobile Agent vào xây dựng Workflow 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 không, thì chạy lại workflow từ node đó, không thì thiết kế lại workflow từ node gây lỗi chạy lại workflow 1.7.2 User Nhận MA gửi đến, mở văn lên, điền các thông tin vào văn Trong số trường hợp, user điền sai, MA báo lỗi để user sửa lại Nếu user chậm trễ thực văn bản, MA liên tục nhắc nhở Sau đ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 đã hoàn thành đúng và đủ chưa Nếu chưa, MA đòi hỏi user điền đủ, rồi, MA tự đóng gói và di trú đến nơi khác 1.8 Yêu cầu cụ thể các chức 1.8.1 Administrator Thiết kế workflow: tạo workflow, mở workflow cũ, chỉnh sửa thuộc tính node workflow, thêm, xóa node 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 lỗi MA đưa 1.9 Cách thức xử lý văn Có cách thức xử lý văn bản: Hệ thống xử lý loại văn nhất: có loại: Nguyễn Hoàng Linh Phương Nguyễn Văn Thoại 66 GVHD: GVC Cao Đăng Tân (72) Ứng dụng thử nghiệm Mobile Agent vào xây dựng Workflow ¾ Chỉ có văn cho tòan hệ thống, user làm việc với lọai văn này: loại này kém hiệu đơn điệu và thích hợp với vài trường hợp đặc biệt ¾ Chỉ có văn chạy trên tòan hệ thống, nhiên, user làm việc trên phần văn định, phần khác user có thể có có quyền đọc chỉnh sửa Ưu điểm: agent mang file văn 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 cho user, chuyện này 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 văn có thể bao quát hết công việc các user Các mẫu báo cáo đa dạng, đặc biệt công ty lớn với nhiều phòng ban khác Hệ thống xử lý nhiều loại văn bản: máy tính nhận mẫu báo cáo riêng, các kết sau thu thập tổng hợp lại ¾ Ưu điểm: tạo tính linh hoạt cho ứng dụng, thao tác administrator và user đơn giản ¾ Khuyết điểm: dung lượng agent lớn phải mang theo nhiều file, lãng phí tài nguyên nhiều file có nội dung trùng 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 không là vấn đề quan trọng Vì vậy, hệ thống Workag sử dụng cách tiếp cận là xử lý nhiều lọai văn khác nhau, node nhận mẫu báo cáo riêng Nguyễn Hoàng Linh Phương Nguyễn Văn Thoại 67 GVHD: GVC Cao Đăng Tân (73) Ứng dụng thử nghiệm Mobile Agent vào xây dựng Workflow 1.10 Vấn đề merge liệu: 1.10.1 Không cần merge Người dùng node sau có thể xem thông tin form đã đ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 sau A B D C Hình 32: Merge đơn giản Form merge node D là nội dung điền các Node A, B, C xếp theo Form A đến Form B đến Form C 1.10.2.2 Merge trộn các Form Nội dung các Form A, B, C trộn với theo control trên form Ví dụ: Các Form A, B, C có nội dung (Bắt buộc để merge) và gồm TextArea, các radio button và các CheckBox Khi đó Form đã trộn D có Text Area là các Text Area nối lại D Các Radio Button lựa chọn là kết lựa chọn A, B, C: ví dụ: Nguyễn Hoàng Linh Phương Nguyễn Văn Thoại 68 GVHD: GVC Cao Đăng Tân (74) Ứng dụng thử nghiệm Mobile Agent vào xây dựng Workflow Các check box tương tự: Như phải quy định rõ phương thức merge tương ứng cho loại control hỗ trợ thiết kế form ListBox, CombBox, … 1.10.3 Đánh giá: Có thể có nhiều cách merge, hai cách merge đưa trên là 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 muốn tham khảo thông tin form các node trước trường hợp node liền trước quá nhiều Phương án merge : ¾ Ưu: đơn giản dễ lập trình ¾ Khuyết: không tự nhiên, có thể gây khó khăn cho người xem có quá nhiều node cần merge, kích thước form lớn khó kiểm soát Phương án merge : ¾ Ưu : người xem dễ dàng nắm bắt kết form trước Nguyễn Hoàng Linh Phương Nguyễn Văn Thoại 69 GVHD: GVC Cao Đăng Tân (75) Ứng dụng thử nghiệm Mobile Agent vào xây dựng Workflow ¾ Khuyết: phải quy định các quy tắc trộn form, phức tạp lập trình 1.11 Các xử lý tình Khi workflow vào hoạt động, có hai tình 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ó trường hợp là: 1.11.1.1 Thay đổi toàn chuỗi công việc Khi đó workflow cũ không còn giá trị, các agent hoạt động cho workflow cũ nhận lệnh tự huỷ, ko cần phải thu hồi lại 1.11.1.2 Thay đổi phần workflow Do hoàn thành nhiệm vụ node , agent gửi thông báo cho Agent Manager là hoàn thành nhiệm vụ node đó Trong Agent Manager lên tình trạng thực workflow Do đó, phần thay đổi nằm node mà chưa có agent đến, thì thay đổi chấp thuận Khi đó, có agent mới, mang thông tin thay đổi đến agent chạy workflow cập nhật đường cho các agent đó Nếu phần thay đổi có liên quan đến node đã co agent chạy qua, thì thay đổi đó không chấp nhận Nếu admin thực muốn thay đổi thì còn phương án là huỷ workflow cũ, thiết kế và chạy lại workflow từ đầu Các ví dụ: Ví dụ1: Workflow ban đầu có tình trạng sau: agent node B và D Nguyễn Hoàng Linh Phương Nguyễn Văn Thoại 70 GVHD: GVC Cao Đăng Tân (76) Ứng dụng thử nghiệm Mobile Agent vào xây dựng Workflow B E A D F C Ta muốn thay đổi workflow sau: B E A D F C Thay đổi này không chấp nhận vì có liên quan đến node D, mà đã có agent đến node D Vídụ 2: ta có workflow ban đầu: B E A D F C Ta muốn thay đổi workflow sau: Nguyễn Hoàng Linh Phương Nguyễn Văn Thoại 71 GVHD: GVC Cao Đăng Tân (77) Ứng dụng thử nghiệm Mobile Agent vào xây dựng Workflow G B E A D F C Thay đổi này là hoàn toàn thực thi không liên quan đến node nào đã có agent 1.11.2 Workflow chạy thì xảy lỗi node Khi MA trên quá trình di trú theo mô hình dưới, có khả xảy lỗi sau: Node A Node B Node C MA Hình 33: Mô tả lỗi quá trình vận hành workflow MA node A trước di trú tới B, connect tới B thất bại > node B có vấn đề MA connect và di trú tới node B quá khoảng timeout, node C không nhận thông tin từ node B MA node B sau di trú từ node A tự báo lỗi Ở trường hợp lỗi này, thông tin lỗi gửi lại cho người quản trị hệ thống workflow Tuỳ tình hình thực tế mà người quản trị có phương pháp giải thích hợp và chạy lại workflow node A tương tự TH1b Nguyễn Hoàng Linh Phương Nguyễn Văn Thoại 72 GVHD: GVC Cao Đăng Tân (78) Ứng dụng thử nghiệm Mobile Agent vào xây dựng Workflow Phân tích, thiết kế ứng dụng Ở phần này, ta 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 chia làm ba module chính: thứ 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 liệt kê bảng đâ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ú Tạo Người dùng chọn chức tạo form Mở form Người dùng chọn form đã tạo trước đó để chỉnh sửa Lưu Form Người dùng có thể lưu form chỉnh Nguyễn Hoàng Linh Phương Nguyễn Văn Thoại 73 GVHD: GVC Cao Đăng Tân (79) Ứng dụng thử nghiệm Mobile Agent vào xây dựng Workflow sửa để sau này thiết Thêm Control Người dùng có thể kéo thả các control vào form thiết kế Xóa Control Người dùng có thể xóa các control trên form thiết kế Sửa Control Người dùng có thể chỉnh sửa các thuộc tính control vị trí, màu sắc, font chữ, border 2.1.2 Sơ đồ luồng liệu Sơ đồ các luồng liệu(data) người sử dụng, chương trình và nhớ Chú thích các kí hiệu: Người sử dụng UseCase Đại diện cho người sử dụng chương trình Form Designer (FD) Một trường hợp sử dụng nào đó chương trình FD Luồng liệu và chiều nó Bộ nhớ File Bộ nhớ ngoài HDD, FDD, … Nguyễn Hoàng Linh Phương Nguyễn Văn Thoại 74 GVHD: GVC Cao Đăng Tân (80) Ứng dụng thử nghiệm Mobile Agent vào xây dựng Workflow 2.1.2.1 Tạo Form Hình 35: Luồng liệu tạo form Form Designer D4: ID Form vừa tạo tự động phát sinh và lưu vào nhớ chính Xử lý: ID này form tạo dựa vào ID form trước nó, trước đó chưa tạo form nào thì ID này 2.1.2.2 Mở Form Hình 36: Luồng liệu mở form Form Designer D1: Đường dẫn đầy đủ tập tin xml mà người dùng chọn D2: Các control form tương ứng thể màn hình cho người dùng tiếp tục thiết kế Nguyễn Hoàng Linh Phương Nguyễn Văn Thoại 75 GVHD: GVC Cao Đăng Tân (81) Ứng dụng thử nghiệm Mobile Agent vào xây dựng Workflow D4: Bao gồm -ID phát sinh cho Form vừa mở -Nội dung XML form vừa mở D5: Tập tin từ nhớ ngoài ứng với D1 Xử lý: ID này form tạo dựa vào ID form trước nó, trước đó chưa tạo form nào thì ID này 2.1.2.3 Lưu Form Hình 37: Luồng liệu lưu form 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, xuấ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 người dùng nhập xong, chương trình phát sinh file xml tương ứng dựa vào các control thiết kế trên màn hình Nguyễn Hoàng Linh Phương Nguyễn Văn Thoại 76 GVHD: GVC Cao Đăng Tân (82) Ứng dụng thử nghiệm Mobile Agent vào xây dựng Workflow 2.1.2.4 Thêm control vào màn hình thiết kế Form Hình 38: Luồng liệu thêm control Form Designer D1: Gồm có: ¾ ID đối tượng control người dùng lựa chọn ¾ Loại control ¾ Toạ độ (x,y) : vị trí ban đầu control ¾ Kích thướng (width, height) : kích thước ban đầu control D4: D1 Xử lý: Người sử dụng chọn control muốn thêm vào và kéo vào form thiết kế, đó chương trình tự động nhận biết vị trí control này trên form, đồng thời tính toán kích thước ban đầu control trên màn hình và lưu thông tin control này vào nhớ chính Nguyễn Hoàng Linh Phương Nguyễn Văn Thoại 77 GVHD: GVC Cao Đăng Tân (83) Ứng dụng thử nghiệm Mobile Agent vào xây dựng Workflow 2.1.2.5 Chỉnh sửa control trên màn hình thiết kế Form Hình 39: Luồng liệu chỉnh sửa control Form Designer D1: ID control cần chỉnh sửa và các thuộc tính tương ứng 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 - 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 thiết kế và chỉnh sửa các thuộc tính nó, đó chương trình tự động nhận biết vị trí có control này và các thuộc tính nó trên form và lưu thông tin control này vào nhớ chính Nguyễn Hoàng Linh Phương Nguyễn Văn Thoại 78 GVHD: GVC Cao Đăng Tân (84) Ứng dụng thử nghiệm Mobile Agent vào xây dựng Workflow 2.1.2.6 Xóa control trên màn hình thiết kế Form Hình 40: Luồng liệu chỉnh sửa control Form Designer D1: ID 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 thiết kế và chọn xóa, đó thông tin control này xóa khỏi nhớ chính Nguyễn Hoàng Linh Phương Nguyễn Văn Thoại 79 GVHD: GVC Cao Đăng Tân (85) Ứng dụng thử nghiệm Mobile Agent vào xây dựng Workflow 2.1.3 Sơ đồ lớp mức phân tích Quan hệ các lớp: FORM Có/Chứa MYCONTROL fdsfds List fdsfds Checkbox fdsfds Group Sharp fdsfds Caption fdsfds Text Field fdsfds Text Area fdsfds RadioButto fdsfds RichText fdsfds Combo Box fdsfds Image Hình 41: Sơ đồ quan hệ các lớp chương trình Nguyễn Hoàng Linh Phương Nguyễn Văn Thoại 80 GVHD: GVC Cao Đăng Tân (86) Ứng dụng thử nghiệm Mobile Agent vào xây dựng Workflow Chi tiết thuộc tính và phương thức lớp sơ đồ lớp mức phân tích trên: MYFORM MYCONTROL Tên file lưu form (bao gồm path) Trạng thái (Focus) Tọa độ ID control Tọa độ Màu Chiều cao Chiều rộng Trạng thái Thêm control Xóa control Vẽ Form Save Form Mở Form Nguyễn Hoàng Linh Phương Nguyễn Văn Thoạ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 81 GVHD: GVC Cao Đăng Tân (87) Ứng dụng thử nghiệm Mobile Agent vào xây dựng Workflow 2.2 Thiết kế module Form Designer 2.2.1 Sơ đồ các màn hình chương trình Form Designer 2.2.1.1 Các màn hình giao diện sử dụng chương trình Màn hình design chính Màn hình save form(s) Màn hình chọn font Màn hình preview Nguyễn Hoàng Linh Phương Nguyễn Văn Thoại Màn hình About Màn hình chọn border 82 Màn hinh chọn image GVHD: GVC Cao Đăng Tân (88) Ứng dụng thử nghiệm Mobile Agent vào xây dựng Workflow 2.2.1.2 Danh sách các lớp đối tượng màn hình Ý nghĩa các màn hình có chương trình giải thích bảng đâ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Ú MH_MAIN Màn hình chính dùng để design form MH_ABOUT Màn hình giới thiệu module MH_SAVE Màn hình save các form người dùng chấm dứt 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ế 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ế 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ế MH_IMAGE Người dùng sử dụng màn hình này để chọn image cho control image box MH_PREVIEW Màn hình này dùng để xem kết thiết kế form Nguyễn Hoàng Linh Phương Nguyễn Văn Thoại 83 GVHD: GVC Cao Đăng Tân (89) Ứng dụng thử nghiệm Mobile Agent vào xây dựng Workflow 2.2.2 Chi tiết các lớp đối tượng xử lý thể 2.2.2.1 Màn hình design MH_MAIN (Màn hình chính) Form Designer File Edit View Help Form1 Control List Design Area Property Windows 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ể màn hình design MH_MAIN (Màn hình chính) Bảng 3: Các đối tượng thể màn hình design STT Tên Loại Ý nghĩa Kích Ghi chú hoạt MenuFile Menu Mở menu File Click MenuEdit Menu Mở menu Edit Click MenuView Menu Mở menu View Click MenuHelp Mở menu Help Click Tabbar Tab Control dùng để Click Tab JtabPane chuyển qua lại các form thiết kế Nguyễn Hoàng Linh Phương Nguyễn Văn Thoại 84 GVHD: GVC Cao Đăng Tân (90) Ứng dụng thử nghiệm Mobile Agent vào xây dựng Workflow 2.2.2.1.2 Bảng mô tả các đối tượng màn hình Bảng 4: Bảng mô tả các đối tượng màn hình STT Tên Loại Ý nghĩa Kích Ghi chú hoạt DesignArea Vùng thiết kế form, cho Không phép kéo thả các control ControlList Lớp Form Designer Màn hình chứa các Click control dùng để thiết kế Lớp Control Panel form PropertyList Ứng với control Click Lớp chọn có Property bảng thuộc tính riêng Panel Bảng này dùng để chỉnh sửa các thuộc tính control tương ứng 2.2.2.1.2.1 DesignArea: Là thể lớp FormDesigner, người dùng có thể kéo thả các control chọn lên form lúc thiết kế 2.2.2.1.2.2 Control List: • Màn hình giao diện ControlList: Nguyễn Hoàng Linh Phương Nguyễn Văn Thoại 85 GVHD: GVC Cao Đăng Tân (91) Ứng dụng thử nghiệm Mobile Agent vào xây dựng Workflow Selection abc Label Group Text Area abc Check Box Radio Button V Combo Box Image • Bảng mô tả chi tiết các đối tượng thể ControlList Bảng 5: Bảng mô tả chi tiết các đối tượng thể ControlList STT Tên Loại Ý nghĩa Kích Ghi chú hoạt Selection Button Đổi chế độ lựa chọn Click Label Button Chọn chế độ vẽ Label lên Click form Group Button Chọn chế độ vẽ Group Click Control Text Area Button Chọn chế độ vẽ TextArea Click CheckBox Button Chọn chế độ vẽ CheckBox Click RadioButton Button Chọn chế độ vẽ Radio Click Button ComboBox Button Chọn chế độ vẽ ComboBox Click PictureBox Button Chọn chế độ vẽ Picture Click Nguyễn Hoàng Linh Phương Nguyễn Văn Thoại 86 GVHD: GVC Cao Đăng Tân (92) Ứng dụng thử nghiệm Mobile Agent vào xây dựng Workflow • Bảng mô tả các biến cố Control List Bảng 6: Bảng mô tả các biến cố Control List STT THỂ HIỆN LOẠI BIẾN XỬ LÝ CỐ Selection Click GHI CHÚ Cập nhật lựa chọn là Selection Label Click Cập nhật lựa chọn là Label Label MouseDown Cập nhật Control drag là Label Group Click Cập nhật lựa chọn là Group Group MouseDown Cập nhật Control drag là Group Text Area Click Cập nhật lựa chọn là Text Area Text Area MouseDown Cập nhật Control drag là Text Area CheckBox Click Cập nhật lựa chọn là CheckBox CheckBox MouseDown Cập nhật Control drag là CheckBox 10 RadioButton Click Cập nhật lựa chọn là RadioButton 11 RadioButton MouseDown Cập nhật Control drag là RadioButton 12 ComboBox Click Cập nhật lựa chọn là ComboBox Nguyễn Hoàng Linh Phương Nguyễn Văn Thoại 87 GVHD: GVC Cao Đăng Tân (93) Ứng dụng thử nghiệm Mobile Agent vào xây dựng Workflow 13 ComboBox MouseDown Cập nhật Control drag là ComboBox 14 PictureBox Click Cập nhật lựa chọn là PictureBox 15 PictureBox MouseDown Cập nhật Control 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 ……………………………… Nguyễn Hoàng Linh Phương Nguyễn Văn Thoại 88 GVHD: GVC Cao Đăng Tân (94) Ứng dụng thử nghiệm Mobile Agent vào xây dựng Workflow • Bảng mô tả chi tiết các đối tượng thể PropertyList Bảng 7: Bảng mô tả chi tiết các đối tượng thể PropertyList STT Tên Loại Ý nghĩa Kích Ghi chú hoạt PropertyBảng Bảng Bảng thuộc tính Không Mỗi đối tượng đối bảng thuộc tính tượng chọn khác 2.1.2 Bảng mô tả các biến cố 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ố màn hình design MH_MAIN STT THỂ HIỆN LOẠI BIẾN XỬ LÝ CỐ MenuFile Click GHI CHÚ Khi click vào menu File các menu để người dùng lựa chọn MenuView Click Khi click vào menu View các menu để người dùng lựa chọn MenuEdit Click Khi click vào menu Edit các menu để người dùng lựa chọn MenuHelp Click Khi click vào menu Help các menu để người dùng lựa chọn DesignArea KeyPressed Khi người dùng nhấn các phím Delete, các phím mũi tên thì Control chọn tương ứng bị xóa di chuyển tới vị trí … DesignArea MouseUp CT kiểm tra xem có control nào vừa drag hay không có Nguyễn Hoàng Linh Phương Nguyễn Văn Thoại 89 GVHD: GVC Cao Đăng Tân (95) Ứng dụng thử nghiệm Mobile Agent vào xây dựng Workflow cập nhật vị trí cho control đó DesignArea MouseDown CT kiểm tra xem có control nào vừa drop hay không có cập nhật vị trí cho control đó DesignArea MouseMove CT kiểm tra xem có control nào drag hay không có cập nhật vị trí cho control đó, không kiểm tra xem có phải điều chỉnh kích thước control hay không, có thì điều chỉnh kích thước cho control đó ControlList Click Cập nhật ID Control chọn 10 Property KeyPressed Nếu phím là Enter thì cập nhật và List điều chỉnh theo giá trị cho Control trên Form 2.2.2.2 Màn hình MH_ABOUT ABOUT Icon Giáo viên hướng dẫn: Thầy Cao Đăng Tân Sinh viên thực hiện: Nguyễn Hoàng Linh Phương Nguyễn Văn Thoại Hình 43: Thiết kế màn hình About Nguyễn Hoàng Linh Phương Nguyễn Văn Thoại 90 GVHD: GVC Cao Đăng Tân (96) Ứng dụng thử nghiệm Mobile Agent vào xây dựng Workflow Bảng mô tả màn hình MH_ABOUT Bảng 9: Bảng mô tả màn hình About STT Thành phần Diễn giải Kích Ghi chú hoạt Lable Giáo viên hướng dẫn Lable Sinh viên thực Image Icon chương trình 2.2.2.3 Màn hình MH_SAVE SAVE FORMS Form Form Form ALL RESET SAVE CANCEL 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 Ghi chú hoạt Check box Chọn Form để save Click Check box Chọn Form để save Click Nguyễn Hoàng Linh Phương Nguyễn Văn Thoại 91 GVHD: GVC Cao Đăng Tân (97) Ứng dụng thử nghiệm Mobile Agent vào xây dựng Workflow Check box Chọn Form để save Click Lable Tên Form thiết kế Không Lable Tên Form thiết kế Không Lable Tên Form thiết kế Không Button ALL Click để check tất các form Click Button Reset Click để uncheck tất các form Click Button Save Click để save form(s) Click 10 Button Cancel không save form Click Cancel 2.2.2.3.2 Bảng mô tả các biến cố màn hình MH_SAVE Bảng 11: Bảng mô tả các biến cố màn hình MH_SAVE STT THỂ HIỆN LOẠI XỬ LÝ GHI BIẾN CỐ ButtonALL Click Button Click CHÚ Tất các check box check Tất các check box Reset Button uncheck Click Save Button Chương trình thực việc lưu các form chọn Click Đóng màn hình này Cancel Nguyễn Hoàng Linh Phương Nguyễn Văn Thoại 92 GVHD: GVC Cao Đăng Tân (98) Ứng dụng thử nghiệm Mobile Agent vào xây dựng Workflow 2.2.2.4 Màn hình MH_BORDER BORDER STYLE Empty Line Etched Bevel Lowerred Raised Matte Option Title Preview OK CANCEL 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 Ghi chú hoạt Radio Empty Chọn Style Empty Click Radio Etched Chọn Style Etched Click Radio Matte Chọn Style Matte Click Radio Line Chọn Style Line Click Radio Bevel Chọn Style Bevel Click Radio Chọn Style Chìm Click Nguyễn Hoàng Linh Phương Nguyễn Văn Thoại 93 GVHD: GVC Cao Đăng Tân (99) Ứng dụng thử nghiệm Mobile Agent vào xây dựng Workflow Lowerred Radio Raised Chọn Style Nổi Click Bảng Option Bảng để chỉnh số property khác số loại Style Text input Áp dụng để đặt title trừong Title 10 Panel Preview hợp là TitleBorder Panel để preview kết chỉnh Click border 11 Button OK Cập nhật style border cho đối Click tượng 12 Button Cancel Đóng màn hình chọn border Click style 2.2.2.4.2 Bảng mô tả các biến cố 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ố màn hình chọn Border Style STT THỂ HIỆN LOẠI XỬ LÝ GHI BIẾN CHÚ CỐ Radio Empty Click Cập nhật style chọn và điều chỉnh option tương ứng Radio Etched Click Như trên Radio Matte Click Như trên Radio Line Click Như trên Radio Bevel Click Như trên Radio Click Như trên Click Như trên Lowerred Radio Raised Nguyễn Hoàng Linh Phương Nguyễn Văn Thoại 94 GVHD: GVC Cao Đăng Tân (100) Ứng dụng thử nghiệm Mobile Agent vào xây dựng Workflow Panel Click Preview Lấy các trạng thái style chọn và các thuộc tính liên quan và hiển thị lên màn hình Button OK Click Cập nhật giá trị trên cho control 10 Button Click Đóng màn hình này Cancel 2.2.2.5 Màn hình MH_FONT FONT OK Font Font style Size CANCEL Preview 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 List Font Chọn Loại Font Click List Font Chọn Kiểu Font Click Ghi chú Style Nguyễn Hoàng Linh Phương Nguyễn Văn Thoại 95 GVHD: GVC Cao Đăng Tân (101) Ứng dụng thử nghiệm Mobile Agent vào xây dựng Workflow List Font Size Chọn Size Font Click Panel Preview Panel để preview kết chỉnh Click border Button OK Cập nhật style font cho đối Click tượng 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ố 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ố màn hình chọn Font STT THỂ HIỆN LOẠI XỬ LÝ GHI BIẾN CHÚ CỐ Panel Click Preview Lấy các trạng thái style chọn và các thuộc tính liên quan và hiển thị lên màn hình Button OK Click Cập nhật giá trị trên cho control Button Click Đóng màn hình này Cancel Nguyễn Hoàng Linh Phương Nguyễn Văn Thoại 96 GVHD: GVC Cao Đăng Tân (102) Ứng dụng thử nghiệm Mobile Agent vào xây dựng Workflow 2.2.2.6 Màn hình MH_IMAGE IMAGE CHOOSER Preview File Chooser 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 File Chooser Panel Diễn giải Kích hoạt Chọn file image Click Ghi chú Panel để preview iamge 2.2.2.6.2 Bảng mô tả các biến cố 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ố màn hình chọn hình Stt Thể Loại biến cố Xứ lý File Chooser Click Lấy hình tương ứng và thể Ghi chú kết lên preview panel Nguyễn Hoàng Linh Phương Nguyễn Văn Thoại 97 GVHD: GVC Cao Đăng Tân (103) Ứng dụng thử nghiệm Mobile Agent vào xây dựng Workflow 2.2.2.7 Màn hình MH_PREVIEW PREVIEW Preview panel 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 Ghi chú hoạt Panel Nguyễn Hoàng Linh Phương Nguyễn Văn Thoại Panel để preview iamge 98 GVHD: GVC Cao Đăng Tân (104) Ứng dụng thử nghiệm Mobile Agent vào xây dựng Workflow 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 liệt kê bảng đâ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 Nguyễn Hoàng Linh Phương Nguyễn Văn Thoại 99 GVHD: GVC Cao Đăng Tân (105) Ứng dụng thử nghiệm Mobile Agent vào xây dựng Workflow STT Tên Ý nghĩa Ghi chú Tạo workflow Khởi tạo luồng công việc Mở workflow Mở lên luồng công việc đã có sẵn Lưu workflow Lưu lại workflow với tất các thiết kế và thay đổi trên nó Thêm node trên Vẽ thêm điểm vào workflow workflow Điểm này là node mạng nên phải có IP, tên Sửa thông tin node Chỉnh sửa thông tin các thuộc workflow tính IP, tên, độ ưu tiên… node workflow Xoá node Khi đảm bảo không có đường workflow đến node này workflow thì có thể xoá node này Thêm đường cho Vẽ đường cho công việc workflow workflow Xoá đường Xoá hẳn đường workflow workflow Chọn form có sẵn cho Hai hay nhiều node có thể sử dụng node( normal node) chung form nên form có sẵn này thiết kế trước và chọn cho node Nguyễn Hoàng Linh Phương Nguyễn Văn Thoại 100 GVHD: GVC Cao Đăng Tân (106) Ứng dụng thử nghiệm Mobile Agent vào xây dựng Workflow 2.3.2 Sơ đồ luồng liệu Sơ đồ các luồng liệu(data) người sử dụng, chương trình và nhớ 2.3.2.1 Tạo workflow Hình 50: Luồng liệu cho tạo workflow Workflow Designer D4: ID Form vừa tạo tự động phát sinh và lưu vào nhớ chính Xử lý: ID này form tạo dựa vào ID WF trước nó, trước đó chưa tạo form nào thì ID này 2.3.2.2 Mở WorkFlow Hình 51: Luồng liệu cho mở workflow Workflow Designer Nguyễn Hoàng Linh Phương Nguyễn Văn Thoại 101 GVHD: GVC Cao Đăng Tân (107) Ứng dụng thử nghiệm Mobile Agent vào xây dựng Workflow D1: Đường dẫn đầy đủ tập tin xml mà người dùng chọn D2: Các control form tương ứng thể màn hình cho người dùng tiếp tục thiết kế D4: Bao gồm -ID phát sinh cho Form vừa mở -Nội dung XML form vừa mở D5: Tập tin từ nhớ ngoài ứng với D1 Xử lý: ID này form tạo dựa vào ID form trước nó, trước đó chưa tạo form nào thì ID này 2.3.2.3 Lưu WorkFlow Hình 52: Luồng liệu cho lưu workflow 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, xuấ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 người dùng nhập xong, chương trình phát sinh file xml tương ứng dựa vào các đối tượng thiết kế trên màn hình Nguyễn Hoàng Linh Phương Nguyễn Văn Thoại 102 GVHD: GVC Cao Đăng Tân (108) Ứng dụng thử nghiệm Mobile Agent vào xây dựng Workflow 2.3.2.4 Thêm node vào form WorkFlow Node module WorkFlow designer có hai loại, loại gọi là node bình thường, tượng trưng cho các host workflow Node bình thường này có các thuộc tính host workflow IP, port, danh sách các node trước đó Loại node thứ hai 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 sử dụng để thiết kế ràng buộc workflow đường các agent Sau đây là luồng liệu cho nghiệp vụ thêm node vào WorkFlow Hình 53: : Luồng liệu cho thêm node vào workflow Workflow Designer D1: Gồm có: -ID đối tượng node người dùng lựa chọn -Loại node bình thường hay logic -Toạ độ (x,y) : vị trí ban đầu 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 thiết kế, đó chương trình tự động nhận biết vị trí 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 control này vào nhớ chính Nguyễn Hoàng Linh Phương Nguyễn Văn Thoại 103 GVHD: GVC Cao Đăng Tân (109) Ứng dụng thử nghiệm Mobile Agent vào xây dựng Workflow 2.3.2.5 Chỉnh sửa thuộc tính node trên màn hình thiết kế WF Hình 54: Luồng liệu cho chỉnh sửa node Workflow Designer D1: ID control cần chỉnh sửa và các thuộc tính tương ứng nó, các thuộc tính có thể là: - Tọa độ (x,y) - Port, IP là node bình thường - Những node và node trước đó D4: D1 Xử lý: Người sử dụng chọn node muốn chỉnh sửa trên form thiết kế và chỉnh sửa các thuộc tính nó, đó chương trình tự động nhận biết vị trí có node này và các thuộc tính nó trên form WF và lưu thông tin node này vào nhớ chính 2.3.2.6 Xóa node khỏi màn hình thiết kế WF Nguyễn Hoàng Linh Phương Nguyễn Văn Thoại 104 GVHD: GVC Cao Đăng Tân (110) Ứng dụng thử nghiệm Mobile Agent vào xây dựng Workflow Hình 55: Luồng liệu cho xóa node Workflow Designer D1: ID 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 thiết kế và chọn xóa, đó thông tin node này xóa khỏi nhớ chính 2.3.2.7 Thêm đường WorkFlow Đường WF tượng trưng mũi tên nối từ node này đến node khác, và không cần lưu trữ đối tượng hình vẽ nào cho đường này Đường lưu workFlow dạng các attribute nextnode và prenode các node Nhờ vào các attribute này, chương trình nhận dạng đường có các node Nguyễn Hoàng Linh Phương Nguyễn Văn Thoại 105 GVHD: GVC Cao Đăng Tân (111) Ứng dụng thử nghiệm Mobile Agent vào xây dựng Workflow Hình 56: Luồng liệu cho thêm đường vào workflow Workflow Designer D1: Gồm có: -ID đối tượng đường người dùng lựa chọn nối node tương ứng -ID node nối với và chiều đường D4: D1 Xử lý: Người sử dụng chọn node muốn thêm đường hai node, cần chọn đối tượng mũi tên panel các đối tượng dùng để thiết kế và nói node lại theo chiều tương ứng Khi nối xong, node liên quan tự cập nhật thuộc tính nextnode và prenode tương ứng 2.3.2.8 Xóa đường WorkFlow Nguyễn Hoàng Linh Phương Nguyễn Văn Thoại 106 GVHD: GVC Cao Đăng Tân (112) Ứng dụng thử nghiệm Mobile Agent vào xây dựng Workflow Hình 57: : Luồng liệu cho xóa đường Workflow Designer D1: ID control cần xóa D4: D1 Xử lý: Người sử dụng chọn đối tựơng đường muốn xóa bỏ trên form thiết kế và chọn xóa, đó chương trình xác đjnh node liên quan và cập nhật thuộc tính node đồng thời hủy đối tượng hình vẽ trên màn hình và nhớ chính 2.3.2.9 Chọn form cho node WorkFlow Form cho các node thiết kế trước module FormDesigner và chọn cho các node WorkFlow lúc thiết kế WorkFlow Nguyễn Hoàng Linh Phương Nguyễn Văn Thoại 107 GVHD: GVC Cao Đăng Tân (113) Ứng dụng thử nghiệm Mobile Agent vào xây dựng Workflow Hình 58: Luồng liệu cho chọn form cho node Workflow Designer D1: Đường dẫn đầy đủ tập tin form xml mà người dùng lựa chọn D4: Thông tin form đó nạp và cập nhật vào node tương ứng D5: Nội dung file XML chương trình đọc lên từ file ứng với đường dẫn D1 Xử Lý: Người dùng click vào button AddForm trên điều khiển và cửa sổ chọn file cho người dùng chọn trực tiếp form cần thiết Khi form chọn, chương trình đọc nội dung file xml, xây dựng thành đối tượng DOM và thêm vào node node node làm việc Nguyễn Hoàng Linh Phương Nguyễn Văn Thoại 108 GVHD: GVC Cao Đăng Tân (114) Ứng dụng thử nghiệm Mobile Agent vào xây dựng Workflow 2.3.3 Sơ đồ lớp mức phân tích Quan hệ các lớp: WORKFLOW Có/Chứa NODE NORMAL NODE LOGIC NODE Chi tiết thuộc tính và phương thức lớp sơ đồ lớp mức phân tích trên: WORKFLOW NODE 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 ID node Tọa độ Loại Trạng thái Vẽ node Hai lớp NOMARLNODE và LOGICNODE overide các hàm vẽ lớp cha và bổ sung số thuộc tính Nguyễn Hoàng Linh Phương Nguyễn Văn Thoại 109 GVHD: GVC Cao Đăng Tân (115) Ứng dụng thử nghiệm Mobile Agent vào xây dựng Workflow NORMALNODE LOGICNODE Danh sách các node Danh sách các node trước Host Port Danh sách các form Danh sách các node Danh sách các node trước Loại logic(AND / OR) Cập nhật host Cập nhật port Thêm node Thêm node trước đó Thêm form Xóa form Xóa node Xóa node trước đó Thêm node Thêm node trước đó Xóa node Xóa node trước đó 2.4 Thiết kế chương trình WorkFlow Designer 2.4.1 Sơ đồ các màn hình chương trình WorkFlow Designer 2.4.1.1 Các màn hình giao diện sử dụng chương trình Màn hình design chính Màn hình save workflow (s) Màn hình About Nguyễn Hoàng Linh Phương Nguyễn Văn Thoại Màn hình Control 110 Màn hình Property GVHD: GVC Cao Đăng Tân (116) Ứng dụng thử nghiệm Mobile Agent vào xây dựng Workflow 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Ú MH_MAIN Màn hình chính dùng để design form MH_ABOUT Màn hình giới thiệu module MH_SAVE Màn hình save các form người dùng chấm dứt 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ế 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ế Nguyễn Hoàng Linh Phương Nguyễn Văn Thoại 111 GVHD: GVC Cao Đăng Tân (117) Ứng dụng thử nghiệm Mobile Agent vào xây dựng Workflow 2.4.2 Chi tiết các lớp đối tượng xử lý thể 2.4.2.1 Màn hình design MH_MAIN (Màn hình chính) Workflow Designer File Edit View Help Form1 Control List Design Area Property Windows 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ể 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ể màn hình Workflow Designer STT Tên Loại Ý nghĩa Kích Ghi chú hoạt MenuFile Menu Mở menu File Click MenuEdit Menu Mở menu Edit Click MenuView Menu Mở menu View Click MenuHelp Mở menu Help Click Tabbar Tab Control dùng để Click Tab JtabPane chuyển qua lại các form thiết kế Nguyễn Hoàng Linh Phương Nguyễn Văn Thoại 112 GVHD: GVC Cao Đăng Tân (118) Ứng dụng thử nghiệm Mobile Agent vào xây dựng Workflow 2.4.2.1.2 Bảng mô tả các biến cố màn hình MH_MAIN Bảng 22: Bảng mô tả các biến cố màn hình Workflow Designer STT THỂ HIỆN LOẠI BIẾN XỬ LÝ CỐ MenuFile Click GHI CHÚ Khi click vào menu File các menu để người dùng lựa chọn MenuView Click Khi click vào menu View các menu để người dùng lựa chọn MenuEdit Click Khi click vào menu Edit các menu để người dùng lựa chọn MenuHelp Click Khi click vào menu Help các menu để người dùng lựa chọn DesignArea KeyPressed Khi người dùng nhấn các phím Delete, các phím mũi tên thì Control chọn tương ứng bị xóa di chuyển tới vị trí … DesignArea MouseUp CT kiểm tra xem có control nào vừa drag hay không có cập nhật vị trí cho control đó DesignArea MouseDown CT kiểm tra xem có control nào vừa drop hay không có cập nhật vị trí cho Nguyễn Hoàng Linh Phương Nguyễn Văn Thoại 113 GVHD: GVC Cao Đăng Tân (119) Ứng dụng thử nghiệm Mobile Agent vào xây dựng Workflow control đó DesignArea MouseMove CT kiểm tra xem có control nào drag hay không có cập nhật vị trí cho control đó, không kiểm tra xem có phải điều chỉnh kích thước control hay không, có thì điều chỉnh kích thước cho control đó ControlList Click Cập nhật ID Control chọn 10 Property KeyPressed List Nếu phím là Enter thì cập nhật và điều chỉnh theo giá trị 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 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: Selection Normal Node Connector Logic Logic Node Bảng mô tả các đối tượng thể màn hình control Nguyễn Hoàng Linh Phương Nguyễn Văn Thoại 114 GVHD: GVC Cao Đăng Tân (120) Ứng dụng thử nghiệm Mobile Agent vào xây dựng Workflow Bảng 23: Bảng mô tả các đối tượng thể màn hình control STT Tên Loại Ý nghĩa Kích Ghi chú hoạt Selection Button Đổi chế độ lựa chọn Click Normal Button Chọn chế độ vẽ Normal Click Node node lên WF Logic Node Button Chọn chế độ vẽ Logic node Click lên WF Connector Button Vẽ đường nối các Click node Bảng mô tả các biến cố màn hình Control Bảng 24: Bảng mô tả các biến cố màn hình Control STT THỂ HIỆN LOẠI BIẾN XỬ LÝ CỐ Selection Click GHI CHÚ Cập nhật lựa chọn là Selection Connector Click Cập nhật lựa chọn là Connector Connector MouseDown Cập nhật Control drag là Connector NormalNode Click Cập nhật lựa chọn là NormalNode NormalNode MouseDown Cập nhật Control drag là NormalNode LogicNode Click Cập nhật lựa chọn là LogicNode LogicNode MouseDown Cập nhật Control drag là LogicNode Nguyễn Hoàng Linh Phương Nguyễn Văn Thoại 115 GVHD: GVC Cao Đăng Tân (121) Ứng dụng thử nghiệm Mobile Agent vào xây dựng Workflow 2.4.2.1.2.3 Property Bảng ( Màn hình MH_ PROPERTY) Name Host Port NextNode PreNode Bảng mô tả chi tiết các đối tượng thể Bảng 25: Bảng mô tả chi tiết các đối tượng thể STT Tên Loại Ý nghĩa Kích Ghi chú hoạt PropertyBảng Bảng Bảng thuộc tính Không Mỗi đối tượng đối bảng thuộc tính tượng chọn khác 2.4.2.2 Màn hình About MH_ABOUT ABOUT Icon Giáo viên hướng dẫn: Thầy Cao Đăng Tân Sinh viên thực hiện: Nguyễn Hoàng Linh Phương Nguyễn Văn Thoại Hình 60: Thiết kế màn hình About cho module Workflow Designer Nguyễn Hoàng Linh Phương Nguyễn Văn Thoại 116 GVHD: GVC Cao Đăng Tân (122) Ứng dụng thử nghiệm Mobile Agent vào xây dựng Workflow Bảng mô tả màn hình MH_ABOUT Bảng 26: Bảng mô tả màn hình About STT Thành phần Diễn giải Kích Ghi chú hoạt Lable Giáo viên hướng dẫn Lable Sinh viên thực Image Icon chương trình 2.4.2.3 Màn hình Save MH_SAVE SAVE FORMS WorkFlow WorkFlow WorkFlow ALL RESET SAVE CANCEL 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 Ghi chú hoạt Check box Chọn WF để save Click Check box Chọn WF để save Click Nguyễn Hoàng Linh Phương Nguyễn Văn Thoại 117 GVHD: GVC Cao Đăng Tân (123) Ứng dụng thử nghiệm Mobile Agent vào xây dựng Workflow Check box Chọn WF để save Click Lable Tên WF thiết kế Không Lable Tên WF thiết kế Không Lable Tên WF thiết kế Không Button ALL Click để check tất các WF Click Button Reset Click để uncheck tất các WF Click Button Save Click để save WF (s) Click 10 Button Cancel không save WF Click Cancel 2.4.2.3.2 Bảng mô tả các biến cố màn hình MH_SAVE Bảng 28: Bảng mô tả các biến cố màn hình Save STT THỂ HIỆN LOẠI XỬ LÝ GHI BIẾN CỐ ButtonALL Click Button Click CHÚ Tất các check box check Tất các check box Reset Button uncheck Click Save Button Chương trình thực việc lưu các form chọn Click Đóng màn hình này Cancel Nguyễn Hoàng Linh Phương Nguyễn Văn Thoại 118 GVHD: GVC Cao Đăng Tân (124) Ứng dụng thử nghiệm Mobile Agent vào xây dựng Workflow 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 liệt kê bảng đâ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ú Chọn WorkFlow Chọn Workflow đã thiết kế để MA thực Nhập host list Người dùng có thể nhập list các host theo file nhập trực tiếp 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ú Di trú Khi người dùng click vào nút OK thì MA bắt đầu thực theo WORKFLOW đã chọn Nguyễn Hoàng Linh Phương Nguyễn Văn Thoại 119 GVHD: GVC Cao Đăng Tân (125) Ứng dụng thử nghiệm Mobile Agent vào xây dựng Workflow Hiển thị tình trạng Hiển thị node nào đã có agent chạy qua, WORKFLOW tức tình trạng active WORKFLOW 2.5.2 Sơ đồ luồng liệu 2.5.2.1 Các sơ đồ luồng 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 liệu cho chọn workflow Agent Manager D1: Tên và đường dẫn tập tin workflow tương ứng Xử Lý: Người dùng có thể nhập trực tiếp tên tập tin workflow phát sinh từ chương trình thiết kế workflow có thể chọn cách bấm vào nút Browse Khi chọn xong chương trình MA đọc nội dung workflow và tạo agent với phần DATA là thông tin MA 2.5.2.1.2 Thực thi workflow Nguyễn Hoàng Linh Phương Nguyễn Văn Thoại 120 GVHD: GVC Cao Đăng Tân (126) Ứng dụng thử nghiệm Mobile Agent vào xây dựng Workflow Hình 64: Luồng liệu cho thực thi workflow Agent Manager D1: Các thông tin workflow 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 phát sinh phần data cho Agent và bắt đầu thực công việc đã thiết kế workflow 2.5.2.2 Các sơ đồ luồng liệu cho User 2.5.2.2.1 Đăng nhập Hình 65: Luồng liệu cho đăng nhập Workflow Agent D1: Username và Password người dùng Nguyễn Hoàng Linh Phương Nguyễn Văn Thoại 121 GVHD: GVC Cao Đăng Tân (127) Ứng dụng thử nghiệm Mobile Agent vào xây dựng Workflow D3: Username và Password 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 XML Hình 66: Luồng liệu cho chọn văn XML 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 liệu cho lưu tạm Workflow Agent D1: Các thông tin người dùng nhập vào form theo thiết kế Nguyễn Hoàng Linh Phương Nguyễn Văn Thoại 122 GVHD: GVC Cao Đăng Tân (128) Ứng dụng thử nghiệm Mobile Agent vào xây dựng Workflow 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 liệu cho hoàn thành báo cáo 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 Nguyễn Hoàng Linh Phương Nguyễn Văn Thoại 123 GVHD: GVC Cao Đăng Tân (129) Ứng dụng thử nghiệm Mobile Agent vào xây dựng Workflow Agent Manager Choose Workflow: Browse Time to reconnect: (s) Date Expire: Reactivation: (s) Save result at Directory: Browse Run WF Cancel 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ể Bảng 30: Danh sách các đối tượng thể màn hình Agent Manager STT Tên Loại/Kiểu Ý nghĩa textbox txtChooseWorkflow Ghi chú Nhập vào đường dẫn đến file workflow đã thiết kế dạng xml btnBrowseWorkflow button Chọn file workflow đã thiết kế dạng xml txtMigFreq Textbox Thời gian tự di trú Khi node chứa agent lại chưa gặp Nguyễn Hoàng Linh Phương Nguyễn Văn Thoại 124 trục trặc GVHD: GVC Cao Đăng Tân (130) Ứng dụng thử nghiệm Mobile Agent vào xây dựng Workflow di trú đường truyền làm agent ko di trú thì sau khoảng thời gian này, agent tự di trú laị txtDateExpire Textbox Thời gian cho Quá thời gian này, phép tồn agent ko di agent trú hoạc hoàn thành nhiệm vụ, agent tự huỷ txtReactive Textbox Thời gian từ Khi người dùng lưu agent ngủ tạm kết làm việc, agent tự khởi agent động lại ngưng hoạt động, đến thời gian này, nó tự kích hoạt lại txtDir Textbox Đường dẫn đến thư mục lưu lại các báo cáo agent thu thập quá trình di trú mình btnBrowseDir Button Chọn đường dẫn đến thư mục btnRun Button Chaỵ workflow đã chọn btnCancel Button Huỷ phiên làm Bao gồm việc huỷ việc luôn workflow chạy Nguyễn Hoàng Linh Phương Nguyễn Văn Thoại 125 GVHD: GVC Cao Đăng Tân (131) Ứng dụng thử nghiệm Mobile Agent vào xây dựng Workflow 2.6.1.1.2 Danh sách các biến cố Bảng 31: Danh sách các biến cố màn hình Agent Manager STT Thể Loại Xử lý Ghi biến chú cố btnBrowseWORKFLOW Click Mở hộp thoại chọn workflow chkDateExpire Enable disable ô nhập số Check Date Expire btnBrowseDir Click Mở hộp thoại chọn thư mục lưu các tài liệu thu thập btnRun Click Kiểm tra các điều kiện đã đầy đủ chưa, thì phát sinh Workflowagent để chạy WORKFLOW và bắt đầu tiến trình quản lý WORKFLOW btnCancel Click Đưa cảnh báo có WORKFLOW chaỵ, ok thì lệnh xoá các agent chạy đồng thời huỷ WORKFLOW, kết thúc chương trình Nguyễn Hoàng Linh Phương Nguyễn Văn Thoại 126 GVHD: GVC Cao Đăng Tân (132) Ứng dụng thử nghiệm Mobile Agent vào xây dựng Workflow 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ý màn hình Agent Manager STT Tên hàm Tham Kết số Xử lý Ghi chú OnClickbtnBrowseWorkflow Không Không Cập nhật tên file Workflow mở và đường dẫn vào txtWorkflowName OnCheckChkDateExpire Không Không Enable disable chkDateExpire OnClickBtnBrowseDir Không Không Cập nhật đường dẫn đến thư mục đã chọn vào txtWorkflowDir OnClickBtnRun Không Không Phát sinh các agent, chạy Workflow, quản lý lỗi OnClickBtnCancel Không không Đưa cảnh báo có Workflow chaỵ, ok thì lệnh xoá các agent chạy đồng thời Workflow, kết huỷ thúc chương trình Nguyễn Hoàng Linh Phương Nguyễn Văn Thoại 127 GVHD: GVC Cao Đăng Tân (133) Ứng dụng thử nghiệm Mobile Agent vào xây dựng Workflow 2.6.1.2 Màn hình Running Workflow Running Workflow Node Status: Run WF From Node Again Cancel WF 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ể Bảng 33: Danh sách các đối tượng thể màn hình Running Workflow STT Tên Loại/Kiểu Ý nghĩa Ghi chú paneWF Panel txtNodeStatus textbox Thể mô hình workflow chạy Hiển thị trạng thái node chọn workflow btnRunAgain button btnCancelWF Button Nguyễn Hoàng Linh Phương Nguyễn Văn Thoại Chạy lại workflow từ node chọn Hủy workflow chay 128 GVHD: GVC Cao Đăng Tân (134) Ứng dụng thử nghiệm Mobile Agent vào xây dựng Workflow 2.6.1.2.2 Danh sách các biến cố Bảng 34: Danh sách các biến cố màn hình Running Workflow STT Thể Node Loại biến Xử lý Ghi cố chú Click Thông báo tình trạng node cho administrator btnRunAgain Click Chạy lại workflow thỏa các điều kiện btnCancelWF Click Hủy WF thực 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ý màn hình Running Workflow STT Tên hàm Tham số Kết Xử lý OnClickNode Tọa chú độ Không Thông báo tình trạng chuột node cho administrator trên màn Nếu không phải hình chọn node thì báo lỗi OnClickbtnRunAgain Node Ghi Không Chạy lại workflow thỏa các điều kiện chọn OnClickbtnCancelWF Không Nguyễn Hoàng Linh Phương Nguyễn Văn Thoại Không Hủy WF thực 129 GVHD: GVC Cao Đăng Tân (135) Ứng dụng thử nghiệm Mobile Agent vào xây dựng Workflow 2.6.1.3 Màn hình Workflow Agent dành cho User Workflow Agent XML Document View XML File: My Files: Hafl Finish Hafl Finish 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ể Bảng 36: Danh sách các đối tượng thể màn hình Workflow Agent STT Tên Loại/Kiểu Ý nghĩa Panel Thể văn pnlXML Ghi chú XML chọn cbbXML Combobox Chọn file XML muốn xem cbbViewMyFile ComboBox Xem file XML mình Mở lên file XML mà cần phải làm Nguyễn Hoàng Linh Phương Nguyễn Văn Thoại 130 user phải điền vào GVHD: GVC Cao Đăng Tân (136) Ứng dụng thử nghiệm Mobile Agent vào xây dựng Workflow btnHalfFinish Button Lưu tạm lại kết file làm việc và tắt agent btnFinish Button Báo đã hoàn thành Nếu chưa hoàn thành xong báo cáo và gửi báo cáo mà nhấn nút agent thì 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ố màn hình Workflow Agent STT Thể Loại Xử lý Ghi chú biến cố btnView Click Thể file XML chọn từ cbbFileChoose lên panelXML btnViewMyFile click Thể file XML mà người dùng phải thực lên panelXML btnHalfFinish Click Lưu tạm kết thực Sau thời gian đã người dùng và ẩn định sẵn, agent agent lại lên, yêu cầu người dùng thực công việc btnFinish Click Kiểm tra các điều kiện đã đầy đủ chưa, lưu lại kết quả, đóng gói agent, di trú qua host Nguyễn Hoàng Linh Phương Nguyễn Văn Thoại 131 GVHD: GVC Cao Đăng Tân (137) Ứng dụng thử nghiệm Mobile Agent vào xây dựng Workflow 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ý màn hình Workflow Agent STT Tên hàm OnClickBtnView Tham Kết số Xử lý Ghi chú Không Không Thể file XML chọn từ cbbFileChoose lên panelXML OnClickBtnViewMyFile Không Không Thể file XML mà người dùng phải thực lên panelXML OnClickBtnHalfFinish Không Không Lưu tạm kết Sau thời thực gian đã người dùng và ẩn định sẵn, agent agent lại lên, yêu cầu người dùng thực công việc OnClickBtnFinish Không Không Kiểm tra các điều kiện đã đầy đủ chưa, lưu lại kết quả, đóng gói agent, di trú qua host Nguyễn Hoàng Linh Phương Nguyễn Văn Thoại 132 GVHD: GVC Cao Đăng Tân (138) Ứng dụng thử nghiệm Mobile Agent vào xây dựng Workflow 2.6.2 Sơ đồ lớp * ManagerAgent * AgentManager Window Uagent Wfagent * NAgent Wfagent Window 2.6.2.1 Lớp ManagerAgent ManagerAgent window: AgentManagerWindow onCreation(Object) onDisposing() handleMessage(Message) createUagent(Object) Nguyễn Hoàng Linh Phương Nguyễn Văn Thoại 133 GVHD: GVC Cao Đăng Tân (139) Ứng dụng thử nghiệm Mobile Agent vào xây dựng Workflow 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 Lớp ManagerAgent STT Tên Kiểu/Lớp Ý nghĩa Ghi chú Window AgentManagerWindow Hộp thoại giao tiếp 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 Xử lý Oject Tạo hộp thoại giao OnCreation Không tiếp Ghi chú agent và admin onDisposing Không Không Xét xem có WORKFLOW chaỵ không, có thì đưa cảnh báo, không thì tắt agent handleMessage Message Boolean Nhận các thông tin các Uagent Nagent gửi createUagent Object Không Tạo agent mang thông tin cập nhật đến các agent khác Nguyễn Hoàng Linh Phương Nguyễn Văn Thoại 134 GVHD: GVC Cao Đăng Tân (140) Ứng dụng thử nghiệm Mobile Agent vào xây dựng Workflow 2.6.2.2 Lớp Workflowagent WfAgent window: WfagentWindow serverURL: URL serverID: AgletID onCreation(Object) onDisposing() handleMessage(Message) createNagent(Object) 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 lớp Workflowagent STT Tên Kiểu/Lớp Ý nghĩa Ghi chú Window WorkflowagentWindow Hộp thoại giao tiếp Workflowagent và User serverURL URL Domain name máy chủ chứa ManagerAgent serverID AgletID ID chương trình ManagerAgent 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 lớp Workflowagent STT Tên Tham số Kết Xử lý Oject Tạo hộp thoại giao OnCreation Không Ghi chú tiếp agent và User, gửi Nguyễn Hoàng Linh Phương Nguyễn Văn Thoại 135 Nagent cho GVHD: GVC Cao Đăng Tân (141) Ứng dụng thử nghiệm Mobile Agent vào xây dựng Workflow ManagerAgent thông báo đến host naò onDisposing Không Không Đưa cảnh báo không thể tắt Workflowagent handleMessage Message Boolean Nhận các thông tin Uagent mang lại createNagent Object Tạo Nagent để gửi thông báo tình trạng Workflowagent cho ManagerAgent 2.6.2.3 Lớp Nagent NAgent IP : String serverUrl : URL serverID :AgletID NAgent(); onCreation(Object); onDisposing(); onArrival(MobilityEvent event); GetIP(); handleMessage(Message); 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 lớp Nagent STT Tên Kiểu/Lớp Ý nghĩa IP String ServerUrl URL URL host chạy AM ServerID ID Agent Manager AgletID Nguyễn Hoàng Linh Phương Nguyễn Văn Thoại Ghi chú IP máy gửi NAgent 136 GVHD: GVC Cao Đăng Tân (142) Ứng dụng thử nghiệm Mobile Agent vào xây dựng Workflow 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 lớp Nagent STT Tên Tham số Kết Xử lý Ghi chú onCreation Object Không onArrival MobilityEvent Không Gửi thông điệp đến cho ManagerAgent đã đến máy chủ Nagent String ip,URL constructor Khởi tạo Nagent url,AgletID id handleMessage Message Không Nhận message gửi đến Nguyễn Hoàng Linh Phương Nguyễn Văn Thoại 137 GVHD: GVC Cao Đăng Tân (143) Ứng dụng thử nghiệm Mobile Agent vào xây dựng Workflow Chương 5: Cài đặt và thử nghiệm 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, gồm 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 sau: Nguyễn Hoàng Linh Phương Nguyễn Văn Thoại 138 GVHD: GVC Cao Đăng Tân (144) Ứng dụng thử nghiệm Mobile Agent vào xây dựng Workflow Các control Vùng thiết kế Các thuộc tính control 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 control và chỉnh sửa các thuộc tính cho nó cách thay đổi các thuộc tính bên phần Properties Sau đã thiết kế mẫu báo cáo hoàn chỉnh, lưu lại mẫu báo cáo cách vào Menu File, chọn Save có thể click trực tiếp vào shortcut trên toolbar, hộp thọai Save File ra, chọn thư mục và tên file cho mẫu báo cáo tạo, nhấn Ok, mẫu báo cáo chuyển sang lưu dạng file XML Nếu muốn chỉnh sửa file báo cáo đã có sẵn, chọn File Æ Open click vào shortcut Open trên tool bar, chọn file báo cáo dạng XML, chương trình 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 Nguyễn Hoàng Linh Phương Nguyễn Văn Thoại 139 GVHD: GVC Cao Đăng Tân (145) Ứng dụng thử nghiệm Mobile Agent vào xây dựng Workflow 1.2 Cài đặt và sử dụng Workflow Designer Chương trình Workflow Designer tương tự chương trình Form Designer, không cần cài đặt, gồm 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 sau: Vùng thiết kế Các control Các thuộc tính control Hình 73: màn hình Workflow Designer Nguyễn Hoàng Linh Phương Nguyễn Văn Thoại 140 GVHD: GVC Cao Đăng Tân (146) Ứng dụng thử nghiệm Mobile Agent vào xây dựng Workflow Kéo các control bên vùng control vào phần thiết kế để thiết kế workflow Chọn control và chỉnh sửa các thuộc tính cho nó cách thay đổi các thuộc tính bên phần Properties Có các control sau: Node And Node Or Mũi tên, dùng để vẽ đường các node Tượng trưng cho node Sau đã thiết kế workflow hoàn chỉnh, lưu lại workflow cách vào Menu File, chọn Save có thể click trực tiếp vào shortcut trên toolbar, hộp thọai Save File ra, chọn thư mục và tên file cho workflow tạo, nhấn Ok, workflow chuyển sang lưu dạng file XML Nếu muốn chỉnh sửa workflow đã có sẵn, chọn File Æ Open click vào shortcut Open trên tool bar, chọn file workflow dạng XML, chương trình 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à 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 các bước cài đặt server Tahiti hướng dẫn phần 3.3 chương (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 đã cài đặt và thiết lập các chế độ cần thiết hướng dẫn, khởi động server Tahiti và tiến hành các bước sau: Nguyễn Hoàng Linh Phương Nguyễn Văn Thoại 141 GVHD: GVC Cao Đăng Tân (147) Ứng dụng thử nghiệm Mobile Agent vào xây dựng Workflow Bước 1: chép tòan thư mục class chương trình AgentManager vào thư mục public thư mục cài aglet (server Tahiti) Bước 2: Nhấn nút Create trên Server Tahiti Nhấn vào Create Hình 74: Màn hình server Tahiti Bước 3: hộp thọai tạo aglet ra: Hình 75: Màn hình tạo Aglet Nguyễn Hoàng Linh Phương Nguyễn Văn Thoại 142 GVHD: GVC Cao Đăng Tân (148) Ứng dụng thử nghiệm Mobile Agent vào xây dựng Workflow Nhập vào ô Aglet name: ManagerAgent( đây chính là class chính 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 danh sách, nhấn nút Create để tạo aglet ManagerAgent Bước 4: hộp thọai Agent Manager 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 mạng bị 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, quá ngày này mà agent chưa thực thi xong công việc nó thì agent 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 khoảng thời gian nhập vào ô Reactivate, agent tự động hiển thị, nhắc nhở người dùng tiếp tục thực công việc 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 XML sau đã thu thập Wfagent mang server Có thể gõ thẳng tên thư mục vvào ô Save result at Directory Nguyễn Hoàng Linh Phương Nguyễn Văn Thoại 143 GVHD: GVC Cao Đăng Tân (149) Ứng dụng thử nghiệm Mobile Agent vào xây dựng Workflow Sau đã đ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 user nhận các wfagent với điều kiện server Tahiti đã cài và khởi động máy Wfagent mà user nhận sau: Hình 77: Màn hình Workflow Agent Trong danh sách XML List là các file XML mà user xem, các file XML này các người dùng trước user theo thứ tự workflow hoàn thành User có thể tham khảo file XML này để hoàn thành báo cáo mình User có quyền xem, không có quyền sửa các báo cáo 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 Nguyễn Hoàng Linh Phương Nguyễn Văn Thoại 144 GVHD: GVC Cao Đăng Tân (150) Ứng dụng thử nghiệm Mobile Agent vào xây dựng Workflow Khi User chọn file báo cáo, nó đựơc hiển thị lên phần XML Document Khi User muốn tạm ngưng phần báo cáo mình, User có thể nhấn vào nút Half Finish, Wfagent lưu lại báo cáo tạm User, ngưng hoạt động và tự tái kích hoạt sau khoảng thời gian Reactivate đã 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 báo cáo còn chỗ sai thiếu sót, nó 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ó tự đóng gói và di trú tạo các để di trú đến các host khác 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 Server Tahiti, chương trình không thể đóng gói thành file chạy riêng biệt mà 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 tiện lợi chương trình Một điểm chưa tốt aglet là thư viện hàm API 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 các agent không cùng host Nếu agent nằm trên cùng host liên lạc với thông điệp, hàm SendMessage hoạt động tốt, agent nằm khác host, gửi thông điệp chắn có lỗi hệ thống xảy Bản thân IBM ( nơi xuất aglet 2.0.2 ) đã thừa nhận khuyết điểm này 2.2 Nhận xét hệ thống Hệ thống thử nghiệm trên mạng Lan và hoạt động tốt, trên lý thuyết hoạt động tốt với Internet Tuy nhiên hệ thống gặp lỗi hoạt động với Internet số lỗi chính Aglets Platform Nguyễn Hoàng Linh Phương Nguyễn Văn Thoại 145 GVHD: GVC Cao Đăng Tân (151) Ứng dụng thử nghiệm Mobile Agent vào xây dựng Workflow Chương 6: Đánh giá kết Đánh giá luận văn Báo cáo lý thuyết: Đã nêu đầy đủ sở, tảng lý thuyết cho việc xây dựng ứng dụng, nêu lên khái niệm, tính hoạt động phân loại Agent, ích lợi và nguyên lý hoạt động Mobile Agent, Luận văn đưa các môi trường có thể áp dụng công nghệ Mobile Agent Quản lý và theo dõi liệu phân tán, Xử lý song song, Thương mại điện tử, … Luận văn nêu khái niệm WorkFlow, các dạng WorkFlow và khả nhu cầu đòi hỏi kết hợp kĩ thuật WorkFlow và công nghệ Mobile Agent Luận văn đã làm rõ vấn đề áp dụng kĩ thuật WorkFlow và công nghệ Mobile Agent vào ứng dụng, đưa tình tổ chức giải các vấn đề chương trình Luận văn phân tích các cấu trúc hệ thống Workag, phân tích các quy trình nghiệp vụ đối tượng sử dụng Đánh giá ứng dụng 2.1 Kết đạt Chương trình đựơc cài đặt tương đối hoàn chỉnh với các tính sau: Chương trình Form Designer và WorkFlow Designer viết ngôn ngữ Java nhiên có giao diện thân thiện ứng dụng Winform thông thường nên không gây khó khăn bỡ ngỡ cho người sử dụng lần đầu thiết kế Chương trình FormDesigner giúp người thiết kế có thể tạo các mẫu thăm dò lấy ý kiến chuyên gia cách nhanh chóng, chính xác và với nhiều nội dung khác Nguyễn Hoàng Linh Phương Nguyễn Văn Thoại 146 GVHD: GVC Cao Đăng Tân (152) Ứng dụng thử nghiệm Mobile Agent vào xây dựng Workflow Chương trình Agent Manager giúp người quản trị (administrator) chọn lựa và thực hịên workflow đã sọan thảo hai chương trình trên, theo dõi quán lý tiến trình hoạt động workflow thông qua việc quản lý các agent phát sinh để thực thi công việc theo workflow đã chọn Chương trình có khả 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 đóng góp ý kiến agent hệ thống mang đến Hoạt động các agent chiếm ít băng thông mạng, quá trình mang chuyển thông tin diễn nhanh chóng, khả tự xử lý lỗi cao Trong trường hợp phát sinh lỗi trên đường di chuyển agent mà agent không tự giải được, hệ thống cảnh báo đế có các biện pháp giải thích hợp Hệ thống bảo đảm chạy tốt trên hệ thống mạng Lan Internet, và viết 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 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 lúc nào Các thông tin đã cung cấp tự động lưu trữ lại để 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ế hệ thống Hiện hệ thống chưa thể cho phép workflow thực tiếp xảy lỗi host nào đó và bắt buộc workflow phải chạy lại từ đầu Hệ thống chưa có khả phân quyền rõ ràng cho loại người dùng workflow, phân quyền trên loại tài liệu, … Hướng phát triển Hiện hệ thống chưa thể cho phép workflow thực tiếp xảy lỗi host nào đó Trong tương lai khắc phục và cho phép hệ thống chạy tiếp workflow kể từ máy bị lỗi Nguyễn Hoàng Linh Phương Nguyễn Văn Thoại 147 GVHD: GVC Cao Đăng Tân (153) Ứng dụng thử nghiệm Mobile Agent vào xây dựng Workflow Tính bảo mật hệ thống dự trên tảng bảo mật công nghệ mobile agent, tương lai ap dụng PKI để tăng bảo mật cho hệ thống Hệ thống chưa có khả phân quyền rõ ràng cho loại người dùng workflow, phân quyền trên loại tài liệu, … Trong tương lai tổ chức và phân quyền rõ ràng Khả theo dõi quá trình thực workflow hệ thống chưa trực quan, tương lai có thể xây dựng giao diện trực quan cho biết tình hình thực 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 biện pháp khắc phục kịp thời Hệ thống hịên bao gồm module là FormDesigner và WorkFlow Designer, điều này phần nhỏ gây không tiện lợi cho người thiết kế, tương lai kết hợp hai module này lại làm 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 công ty Ứng dụng là hệ thống khép kín từ khâu thiết kế, chỉnh sửa workflow đ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 phân tích đầy đủ, đảm bảo lưu trữ và xử lý thông tin chính xác Hệ thống thử nghiệm thành công trên hệ điều hành Windows, môi trường mạng LAN, trên lý thuyết hoạt động tốt các hệ điều hành khác Nguyễn Hoàng Linh Phương Nguyễn Văn Thoại 148 GVHD: GVC Cao Đăng Tân (154) Ứng dụng thử nghiệm Mobile Agent vào xây dựng Workflow TÀI LIỆU THAM KHẢO Jonathan Dale, A Mobile Agent Architecture for Distributed Information Management, University of Southampton, 1997 Jerry Smith, Distributed Combuting with Aglets, copyright, 1999 Danny B.Lange / Mitsuru Oshima, Programming and Deploying JavaTM Mobile Agents with AgletsTM Aglets Specification 1.1 Draft XML Tutorial, www.W3School.com Đà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 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 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 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 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 mobile agents, ĐH Khoa học tự nhiên, 2004 Nguyễn Hoàng Linh Phương Nguyễn Văn Thoại 149 GVHD: GVC Cao Đăng Tân (155)