Khóa luận Nghiên cứu và thử nghiệm hệ thống workflow

Tóm tắt nội dung Ngày nay, việc ứng dụng các thành tựu phát triển của công nghệ thông tin vào các lĩnh vực của cuộc sống đang ngày càng trở nên phổ biến và đem lại nhiều hiệu quả to lớn. Quản lý Workflow là một công nghệ đang phát triển nhanh và ngày càng được khai thác bởi các hoạt động nghiệp vụ trong nhiều ngành công nghiệp khác nhau. Đặc điểm cơ bản của nó là tự động hoá tiến trình bao gồm việc kết hợp các hoạt động của người và máy, đặc biệt là các tương tác liên quan tới các công cụ và ứng dụng công nghệ thông tin. Mặc dù nó được sử dụng phổ biến nhất ở trong lĩnh vực như bảo hiểm, ngân hàng, luật pháp và quản lý chung, song nó cũng có thể áp dụng cho một vài lớp công việc của các ứng dụng công nghiệp và sản xuất Mục tiêu của đồ án đồ án này đó là nghiên cứu và thử nghiệm hệ thống quản lý Workflow tuân theo chuẩn do hiệp hội quản lý Workflow WFMC đưa ra. Nội dung bao gồm -Giới thiệu tổng quan về Workflow, định nghĩa Workflow là gì, sự phát triển của các ứng dụng Workflow hiện nay, các yêu cầu cho việc chuẩn hoá. -Giới thiệu tổng quan về mô hình tham chiếu do WFMC đề xuất và các thành phần của nó (5 giao diện) - Giới thiệu về siêu mô hình, ngôn ngữ biểu diễn Workflow và định dạng XPDL - Giới thiệu các hàm API phục vụ cho việc triệu gọi ứng dụng của workflow. MỤC LỤC MỞ ĐẦU1 CHƯƠNG 1.TỔNG QUAN VỀ WORKFLOW . 3 1.1.KHÁI NIỆM WORKFLOW . 3 1.1.1.Các chức năng ở thời điểm xây dựng. 5 1.1.2.Các điều khiển tiến trình ở thời điểm thực thi6 1.1.3.Các hoạt động tương tác ở thời điểm thực thi6 1.1.4.Sự phân phối công việc và các giao diện hệ thống. 7 1.2.MỘT SỐ LĨNH VỰC ỨNG DỤNG CỦA WORKFLOW . 8 1.2.1.Xử lý ảnh. 8 1.2.2.Quản lý tài liệu. 8 1.2.3.Thư điện tử và thư mục điện tử. 9 1.2.4.Workflow với các ứng dụng phần mềm nhóm9 1.2.5.Workflow với các ứng dụng hướng giao dịch. 9 1.2.6.Phần mềm hỗ trợ dự án. 10 1.2.7.BPR và các công cụ thiết kế hệ thống có cấu trúc. 10 1.3.CÁC MÔ HÌNH TRIỂN KHAI SẢN PHẨM . 10 1.3.1.Công cụ định nghĩa tiến trình. 11 1.3.2.Định nghĩa tiến trình. 11 1.3.3.Dịch vụ Workflow enactment12 1.3.4.Dữ liệu gắn kết và dữ liệu ứng dụng của Workflow13 1.3.5.Danh sách công việc - Worklist13 1.3.6.Bộ quản lý danh sách công việc & giao diện người dùng. 14 1.3.7.Các hoạt động giám sát15 1.3.8.Các giao diện chuẩn và giao diện nhúng. 15 1.4.CÁC TRƯỜNG HỢP TRIỂN KHAI KHÁC15 1.5.CÁC YÊU CẦU CHUẨN HÓA19 CHƯƠNG 2.MÔ HÌNH THAM CHIẾU WORKFLOW . 21 2.1.TỔNG QUAN VỀ MÔ HÌNH THAM CHIẾU21 2.1.1.Tổng quan về mô hình tham chiếu. 21 2.1.2.Mô hình tham chiếu Workflow21 2.2.DỊCH VỤ WORKFLOW ENACTMENT22 2.2.1.Dịch vụ Workflow Enactment là gì ?. 22 2.2.2.Workflow Engine. 24 2.2.3.Dịch vụ Enactment thuần nhất và không thuần nhất25 2.2.4.Các kiểu dữ liệu Workflow27 2.2.5.Sự trao đổi dữ liệu. 29 2.3.ĐỊNH NGHĨA TIẾN TRÌNH30 2.3.1.Các công cụ định nghĩa tiến trình. 30 2.3.2.Giao diện 1 - Trao đổi định nghĩa Workflow31 2.3.3.Siêu mô hình cơ bản:. 32 2.4.CÁC CHỨC NĂNG CỦA WORKFLOW PHÍA KHÁCH35 2.4.1.Các ứng dụng workflow phía khách. 35 2.4.2.Giao diện ứng dụng workflow phía khách. 36 2.5.CÁC CHỨC NĂNG TRIỆU GỌI ỨNG DỤNG40 2.5.1.Triệu gọi ứng dụng trong hệ thống Workflow40 2.6.CHỨC NĂNG GIAO TIẾP MỞ45 2.6.1.Scenario 1–Liên kết riêng rẽ (dạng chuỗi). 45 2.6.2.Scenario 2–Liên kết theo trật tự (các tiến trình con lồng vào nhau). 46 2.6.3.Scenario 3–Liên kết thành một khối (Peer to Peer). 46 2.6.4.Scenario 4–Liên kết đồng bộ hóa song song. 47 2.6.5.Các hàm WAPI giao tiếp. 48 2.7.CÁC CHỨC NĂNG QUẢN TRỊ VÀ GIÁM SÁT51 2.7.1.Giao diện quản trị và giám sát51 CHƯƠNG 3.GIAO DIỆN ĐỊNH NGHĨA TIẾN TRÌNH53 3.1.SIÊU MÔ HÌNH53 3.1.1.Các thực thể trong siêu mô hình. 54 3.1.2.Tiến trình và gói57 3.1.3.Siêu mô hình tiến trình. 57 3.1.4.Siêu mô hình gói58 3.1.5.Giới thiệu về các thành phần trong siêu mô hình. 59 3.2.BIỂU DIỄN ĐỊNH NGHĨA WORKFLOW – ĐỊNH DẠNG XPDL62 3.2.1.Các thành phần chung. 63 3.2.2.Định nghĩa gói68 3.2.3.Khai báo ứng dụng Workflow77 3.2.4.Định nghĩa tiến trình Workflow78 3.2.5.Hành vi của tiến trình Workflow87 3.2.6.Thông tin chuyển tiếp giữa các hành vi103 3.2.7.Thành phần tham gia Worflow107 3.2.8.Dữ liệu liên quan đến Workflow110 3.2.9.Các kiểu dữ liệu. 113 CHƯƠNG 4.Giao diỆn lẬP TRình ỨNG dỤng Workflow – WAPI 123 4.1.Các kiỂu dỮ liỆu WAPI. 124 4.2.Mã lỖi trẢ vỀ cỦa các hàm WAPI. 132 4.3.WAPI cho các kẾt nỐi136 4.4.WAPI cho các điỀu khiỂn tiẾn trình137 4.5.WAPI cho các điỀu khiỂn hành vi146 4.6.WAPI truy vẤn các bẢn sao tiẾn trình150 4.7.WAPI truy vẤn các bẢn sao hành vi152 KẾT LUẬN154 TÀI LIỆU THAM KHẢO155

doc163 trang | Chia sẻ: lvcdongnoi | Lượt xem: 2432 | Lượt tải: 0download
Bạn đang xem trước 20 trang tài liệu Khóa luận Nghiên cứu và thử nghiệm hệ thống workflow, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
i trừ hành vi định tuyến. Limit Thời hạn hiệu lưc mong đợi cho mục đích quản lý thời gian trong các đơn vị của DurationUnit. Name Tên của hành vi. Performer Kết nối đến các thành phần tham gia thực thể Workflow. Có thể là một biểu thức. Priority Một giá trị dùng để mô tả ưu tiên ban đầu của hành vi khi nó bắt đầu thực hiên. Có thể thuộc tính này không được định nghĩa nhưng một mức ưu tiên phải được định nghĩa trong định nghĩa tiến trình và sau đó sẽ được sử dụng. Route Là một hành vi định tuyến( hành vi ảo). Simulation Information Những đánh giá cho sự mô phỏng của một hành vi. Start Mode Mô tả việc thực hiện một hành vi được bắt đầu như thế nào. Transition Restrictions Cung cấp các giới hạn xa hơn và mô tả ngữ nghĩa liên quan đến ngữ cảnh của việc chuyển trạng thái. Bảng 316 Hành vi của tiến trình Workflow – Các thuộc tính Hành vi định tuyến Hành vi định tuyến là một hành vi “ảo” (dummy) cho phép hoặc cấm biểu thức của các điều kiện chuyển tiếp xếp tầng (ví dụ : IF Điều kiên-1 THEN TO Hành vi-1 ELSE IF Điều kiện-2 THEN TO Hành vi-2 ELSE Hành vi-3 ENDIF). Một vài nhà cung cấp có thể cài đặt các điều kiện chuyển tiếp xếp tầng một cách trực tiếp mà không cần một bản sao hành vi cho việc định tuyến, một vài nhà cung cấp khác thì lại yêu cầu. Tuy nhiên tại bất cứ đâu các nhà cung cấp và các nhà thiết kế tiến trình đều mong muốn cấu trúc các điều kiện xếp tầng như một XOR Split từ hành vi đầu ra. Chắc chắn rằng việc phối hợp chuyển tiếp không thể được biểu diễn trong một danh sách các chuyển tiếp đơn từ hành vi đầu ra, hoặc danh sách đầu vào đơn đến một hành vi. Trong trường hợp này phải yêu cầu sử dụng một hoặc nhiều hành vi ảo( hành vi định tuyến).Ví dụ : Sự phối hợp của các điều kiện phân tách XOR và AND trên các chuyển tiếp đầu ra từ một hành vi. Sự phối hợp của các điều kiện gia nhập XOR và AND trên các chuyển tiếp đầu vào đến một hành vi. Một hành vi định tuyến sẽ không có người thực hiện và không có các ứng dụng cho nó. Hành vi định tuyến không ảnh hưởng đến dữ liệu liên quan đến Workflow hoặc dữ liệu ứng dụng. Hành vi kiểu khối Một khối hành vi thi hành một tập hành vi hoặc ánh xạ các chuyển tiếp/hành vi của bản thân nó. Hành vi kiểu khối sẽ thực hiện từ một hành vi đầu tiên trong tập và cứ tiếp diễn đến hành vi cuối cùng (Hành vi mà không có chuyển tiếp đầu ra). Sự thực thi đó sẽ trả về các chuyển tiếp đầu ra theo sau hành vi khối đó. Thuộc tính điều khiển thực thi Có nhiều thuộc tính của một hành vi cho phép định nghĩa các đặc trưng của các hànhh vi khác nhau trong việc điều khiển sự thực thi của các hành vi . Chế độ (mode) định nghĩa mức độ tự động khi bắt đầu hoặc kết thúc hành vi. Có hai kiểu chế độ : Chế độ tự động: Được điều khiển hoàn toàn bởi các Workflow engine. Chế độ thủ công:Yêu cầu người sử dụng phải tương tác để cho hành vi bắt đầu hoặc kết thúc. Trong những hệ thống như thế này hành vi bắt đầu và/hoặc hoàn thành là kết quả của những hành động của người sử dụng. Thuộc tính Mô tả Start Mode Mô tả cách thi hành của một hành vi được bắt đầu. Automatic Hành vi được bắt đầu ngay lập tức bởi hệ thống. Mặc định. Manual Hành vi được bắt đầu bởi người sử dụng cuối. Finish Mode Mô tả hệ thống thực hiện việc kết thúc hành vi như thế nào. Automatic Tự động trả về khi ứng dụng triệu gọi kết thúc điều khiển. Mặc định. Manual Hành vi được kết thúc bởi người sử dụng cuối. Bảng 317 Thuộc tính điều khiển thi hành – Các thuộc tính Các lựa chọn cài đặt Một hành vi có thể được cài đặt theo một trong các cách được mô tả ở dưới : Thuộc tính Mô tả No implementation Được thực thi bởi các thủ tục thủ công (Không được hỗ trợ bởi Workflow engine). Tool Được thực thi bởi các công cụ ứng dụng. Subflow Được thực thi bởi tiến trình khác. Bảng 318 Các lựa chọn cài đặt - Các thuộc tính Không Cài đặt Không cài đặt nghĩa là việc thi hành của hành vi không được trợ giúp bởi Workflow engine: Công cụ Hành vi được thực thi bởi một hay nhiều công cụ. Một công cụ có thể là một chương trình ứng dụng, ứng dụng đó có thể được triệu gọi thông qua giao diện ứng dụng khách(giao diện 2). Thuộc tính Mô tả Actual Parameters Danh sách các tham số được truyền Description Phần mô tả. Extended Attributes Phần mở rộng do nhà cung cấp thêm vào. Id Định danh để xác định ứng dụng Type APPLICATION Một công cụ ứng dụng PROCEDURE Một thủ tục Bảng 319 Công cụ - Các thuộc tính Luồng con Hành vi có thể là luồng con. Các luồng con có thể được thi hành đồng bộ hoặc không đồng bộ. Những luồng con được sử dụng được kế thừa từ những gói bao phủ. Thuộc tính Mô tả Actual Parameters Danh sách các tham số được truyền. Execution KHÔNG ĐỒNG BỘ Thi hành không đồng bộ ĐỒNG BỘ Thi hành đồng bộ Id Sử dụng để nhận dạng tiến trình Workflow được triệu gọi Bảng 320 Luồng con—Các thuộc tính Deadline Thuộc tính Mô tả Execution Định nghĩa phản ứng của hệ thống khi xuất hiện deadline. ASYNCHR: Deadline được tạo ra không đồng bộ. Đó là một thao tác AND SPLIT ẩn, khi đó hành vi tiếp tục và luồng khác được bắt đầu theo chuyển tiếp ngoại lệ đã được gán tên. Các Deadline khác có thể xảy ra với cùng một hành vi, bởi vì hành vi tiếp tục được chạy. SYNCHR : Hành vi được hoàn thành không bình thường và luồng tiếp tục chạy trên tên chuyển tiếp ngoại lệ. DeadlineCondition Biểu thức chỉ ra thời gian deadline xảy ra. Biểu thức này được cài đặt phụ thuộc vào các yếu tố: Thời gian liên quan tới sự bắt đầu của hành vi. Thời gian cố định. Thời gian tính toán sử dụng dữ liệu liên quan Worklow ExceptionName Tên của ngoại lệ dẫn tới deadline Bảng 321 Deadline – Các thuộc tính Một ví dụ về deadline bên dưới. Trong ví dụ này, một “ngoại lệ thông báo” không đồng bộ sẽ được đưa ra sau 3 ngày. Hành vi sẽ được tiếp tục bình thường vào lúc này. Nếu hành vi vẫn được thực thi thì sau 5 ngày hành vi sẽ kết thúc và một “Ngoại lệ thời gian kết thúc” sẽ được đưa ra. Ví dụ về deadline: 3 days notifyException 5 days timeoutException Thông tin mô phỏng Thuộc tính Mô tả Cost Giá thành trung bình Duration Khoảng thời gian lý tưởng để thực hiện một tác vụ trong các đơn vị của DurationUnit. Instantiation Định nghĩa khả năng của một hành vi được kích hoạt: Một hoặc nhiều lần ONCE Hành vi có thể chỉ được tạo ra một lần (mặc định) MULTIPLE Hành vi có thể được tạo ra nhiều lần. Time Estimation Khoảng thời gian mong đợi (thời gian tổng cộng của working time, waiting time, và duration) trong các đơn vị của DurationUnit. Waiting Time Thời gian đợi trung bình trong các đơn vị của DurationUnit. Working Time Thời gian làm việc trung bình trong các đơn vị của DurationUnit. Bảng 322 Thông tin mô phỏng – Các thuộc tính Các giới hạn chuyển tiếp Thuộc tính Mô tả Join Chỉ ra rằng các chuyển tiếp đầu vào của hành vi là JOIN-ed Split Chỉ ra rằng các chuyển tiếp đầu ra của hành vi là SPLIT-ed Bảng 323 Giới hạn chuyển tiếp – Các thuộc tính Join Một join mô tả các ngữ nghĩa của hành vi với nhiều chuyển tiếp đầu vào . Thuộc tính Mô tả Type AND Kết nối các luồng đồng thời trong bản sao tiến trình với các chuyển tiếp đầu vào để đến hành vi đó. Ở đây phải có sự đồng bộ. Số lượng của các luồng được đồng bộ có thể phụ thuộc vào kết quả các điều kiện của các phép AND split trước đó. XOR Kết nối một trong các luồng được lựa chon, không cần phải có sự đồng bộ. Bảng 324 Join – các thuộc tính Split Một split mô tả các ngữ nghĩa nơi có nhiều phép chuyển đầu ra cho một hành vi tồn tại. Thuộc tính Mô tả Transition Refs Một danh sách các chuyển tiếp đầu ra từ hành vi đó. Mỗi chuyển tiếp được xác định bởi định danh của chúng. Type AND Các chuyển tiếp đầu ra là đồng thời. XOR Các chuyển tiếp đầu ra là không phải đồng thời. Bảng 325 Split – Các thuộc tính Thông tin chuyển tiếp giữa các hành vi Thông tin chuyển tiếp mô tả các chuyển tiếp có thể giữa các hành vi và với các điều kiện trong quá trình thực thi workfllow. Hơn nữa các giới hạn điều khiển hoặc cấu trúc có thể được diễn tả trong định nghĩa hành vi. Một định nghĩa tiến trình giống như một mạng các đường nối nút hành vi. Tất cả các đường được xác đình bởi cặp: (nút xuất phát, nút đích). Các đường này có thể được gán nhãn bởi các điều kiện chuyển tiếp. Một điều kiện chuyển tiếp của mỗi đường sẽ cho phép chuyển tiếp tương ứng thực hiện nếu điều kiện của nó có giá trị là TRUE. Nếu có nhiều chuyển tiếp đầu vào hoặc đầu ra của một hành vi, khi đó để mà thực hiện các chuyển tiếp thì phải sử dụng đến các khái niệm AND/XOR của SPLIT/JOIN. Thuộc tính Mô tả Condition Một biểu thức điều kiện chuyển đổi dựa trên dữ liệu liên quan Workflow. (ví dụ. 'Contract' = 'SMALL' OR 'Contract' <$20,000). Mặc định: TRUE Description Phần mô tả của chuyển tiếp. Extended Attributes Phần mở rộng do nhà cung cấp thêm vào. From Xác định hành vi xuất phát của chuyển tiếp. Id Định danh của chuyển tiếp. Name Tên của chuyển tiếp. To Xác định hành vi đích của chuyển tiếp. Bảng 326 Thông tin chuyển tiếp – các thuộc tính Điều kiện Thuộc tính Mô tả Type Định nghĩa kiểu của điều kiện chuyển tiếp. Chúng nhận các giá trị sau: CONDITION Chỉ ra rằng chuyển tiếp được thực hiện nếu điều kiện đó được thỏa mãn. OTHERWISE Chỉ ra rằng chuyển tiếp đó là chuyển tiếp mặc định (là chuyển tiếp được thực hiện nếu không có điều kiện nào đạt được). EXCEPTION Chỉ ra rằng chuyển tiếp đó được thực hiện nếu có một ngoại lệ và điều kiện của nó được thỏa mãn. DEFAULTEXCEPTION Chỉ ra rằng chuyển tiếp đó là chuyển tiếp mặc định( là chuyển tiếp được thực hiện nếu có một ngoại lệ và không có điều kiện ngoại lệ nào đạt được) Xpression Một biểu thức điều kiện được biểu diễn bằng XML Bảng 327 Điều kiện-các thuộc tính Các điều kiện ngoại lệ: Ngoại lệ và kiểu DEFAULTEXCEPTION cho phép đặc tả các nhánh được tạo ra chỉ khi một ngoại lệ xảy ra. Kiểu EXCPTION tương đương với kiểu CONDITION và kiểu DEFAULTEXCEPTION phù hợp với kiểu OTHERWISE. Điều kiện có thể chứa hoặc là tên của một ngoại lệ hoặc là một biểu thức phức tạp hơn.. Ví dụ dưới đây mô tả một tập hợp các chuyển tiếp từ một hành vi bao gồm các ngoại lệ: nhánh 1 và 2 được xử lý dưới các điều kiện bình thường, nhánh 3 và nhánh 4 được xử lý nếu có một ngoại lệ xảy ra. Balance > 1000 ATMDownException Thành phần tham gia Worflow Thành phần tham gia có các kiểu sau: tập tài nguyên (resource set), tài nguyên (resource), đơn vị tổ chức (organization unit), vai (role), con người và hệ thống. Một vai và một tài nguyên được sử dụng theo nghĩa là các tác nhân trừu tượng. Điều này đưa ra một mức trừu tượng giữa người thực hiện và hành vi phải được thực hiện. Tại thời điểm thực thi những định nghĩa trừu tượng trên sẽ được đánh giá và gán cho những con người/ máy móc cụ thể. Phạm vi của một thực thể thành phần tham gia Workflow khi khai báo ở mức gói là toàn cục, tức là có thể được truy cập bởi bất kỳ định nghĩa tiến trình nào trong gói đó. Thuộc tính Mô tả Description Mô tả sơ lược của thành phần tham gia. ExternalReference Tham chiếu đến một đặc tả bên ngoài của một thành phần tham gia. Extended Attributes Phần mở rộng do nhà cung cấp thêm vào. Id Được sử dụng làm định danh cho một thành phần tham gia Name Tên được sử dụng để chỉ ra thành phần tham gia.. Participant Type Định nghĩa kiểu của thành phần tham gia Bảng 328 Thành phần tham gia—Các thuộc tính Các kiểu của thành phần tham gia Thuộc tính kiểu của thành phần tham gia mô tả thành phần tham gia là một đơn vị tổ chức, một đơn vị riêng lẻ hay một tài nguyên máy móc. Thuộc tính Mô tả Type RESOURCE_SET Một tập hợp các tài nguyên RESOURCE Một tác nhân tài nguyên cụ thể ROLE Đây là một kiểu trừu tượng có thể có nhiều cách để xác định các Role ORGANIZATIONAL_UNIT Một đơn vi phòng ban hoặc bất kỳ một đơn vị nào trong mô hinhg tổ chức HUMAN Một con người tương tác với hệ thống theo một ứng dụng SYSTEM Một tác nhân tự động Bảng 329 Kiểu thành phần tham gia—Các thuộc tính Dữ liệu liên quan đến Workflow Dữ liệu liên quan Workflow diễn tả các sự thay đổi của một định nghĩa tiến trình Workflow hoặc một định nghĩa gói. Chúng được sử dụng để đặc trưng cho dữ liệu quyết định (sử dụng trong các điều kiện) hoặc tham chiếu đến các giá trị dữ liệu (các tham số), là dữ liệu được chuyển qua giữa các hành vi hoặc các tiến trình con. Điều này có thể là khác so với dữ liệu ứng dụng Workflow, là dữ liệu được quản lý hoặc được truy cập toàn bộ bởi các ứng dụng được triệu gọi và không được truy nhập tới hệ thống quản lý Workflow. Danh sách dữ liệu liên quan Workflow định nghĩa tất cả các đối tượng dữ liệu được yêu cầu bởi tiến trình Workflow. Thuộc tính DataType chỉ rõ tất cả các thông tin cần thiết cho một hệ thống quản lý Workflow để định nghĩa một đối tượng dữ liệu phù hợp cho việc lưu trữ dữ liệu, là quá trình được xử lý bởi một bản sao kích hoạt của tiến trình Workflow. Dữ liệu liên quan Workflow có thể được định nghĩa trong một tiến trình Workflow và trong một gói. Tuy nhiên phạm vi của hai cách định nghĩa này là khác nhau. Thuộc tính Mô tả Data Type Kiểu dữ liệu của biến xử lý. Description Mô tả ngắn ngọn dữ liệu được dịnh nghĩa. Extended Attributes Phần mở rộng do nhà cung cấp thêm vào. Id Được sử dụng để xác định dữ liệu liên quan Workflow. Initial Value Giá trị dữ liệu được gán trước thời điểm thực thi. Is Array Chỉ ra dữ liệu có kiểu là mảng. Length Chiều dài của dữ liệu. Name Tên của dữ liệu liên quan đến Workflow. Bảng 330 Dữ liệu liên quan đến Workflow—Các thuộc tính Các kiểu dữ liệu Các kiểu dữ liệu bao gồm một tập các kiểu chuẩn có thể được sử dụng như là một phần của đặc tả dữ liệu liên quan Workflow, các tham số hình thức, và các tiến trình Workflow. Ta có thể khai báo một kiểu dữ liệu mới trong một TypeDeclaration và sử dụng nó ở bất cứ đâu mà các kiểu dữ liệu chuẩn được sử dụng. Một kiểu dữ liệu có thể được chọn từ một tập hơp các kiểu được chỉ ra ở phía dưới: Thuộc tính Mô tả Array Type Một mảng các phần tử có kiểu giống nhau. Basic Type Có thể là một trong các kiểu: STRING, INTEGER, FLOAT, DATETIME, REFERENCE, BOOLEAN, or PERFORMER. Declared Type Tham chiếu đến một kiểu dữ liệu được khai báo trong một thành phần TypeDeclaration. Enumeration Type Một tập hợp các giá trị phù hợp của các biến hoặc các tham số. ExternalReference Tham chiếu đến một kiểu dữ liệu được định nghĩa ở một tài liệu bên ngoài. List Type Một danh sách vô hạn các dữ liệu có cùng kiểu giống nhau Record Type Một tập hợp các phần tử có kiểu khác nhau. SchemaType Một kiểu dữ liệu được định nghĩa bằng cách sử dụng một lược đồ XML. Union Type Một tập hợp các phần tử trong đó chỉ có một phần tử được sử dụng cho mỗi bản sao của dữ liệu đó Bảng 331 Các kiểu dữ liệu chuẩn Các kiểu dữ liệu cơ bản Thuộc tính Mô tả Type STRING Kiểu chuỗi FLOAT Kiểu số thực INTEGER Kiểu số nguyên REFERENCE Tham chiếu tới một kiểu dữ liệu bên ngoài, tuy nhiên bây giờ không sử dụng kiểu này nữa .Thành phần ExternalReference là cách tốt nhất để tham chiếu đến một kiểu dữ liệu bên ngoài. DATETIME Kiểu thời gian. BOOLEAN Kiểu Boolean. PERFORMER Là một bản sao dữ liệu của một kiểu người thực hiện có giá trị là một thành phần tham gia Workflow đã được khai báo Bảng 332 Các kiểu dữ liệu – Các thuộc tính Các kiểu dữ liệu phức tạp XPDL cho phép định nghĩa các kiểu dữ liệu phức tạp như là kiểu mảng, kiểu bản nghi, kiểu hợp, kiểu liệt kê, và kiểu danh sách. Các kiểu dữ liệu được định nghĩa bằng cách sử dụng SchemaType. Kiểu lược đồ (Schema Type) SchemaType cho phép định nghĩa một kiểu dữ liệu sử dụng cú pháp của lược đồ XML. Nó cũng có thể được sử dụng để đinh nghĩa một chuỗi XML để thích ứng với lược đồ đó: Ví dụ dưới đây có thể mô tả môt lớp C++, Java, một cấu trúc C, hoặc một chuỗi XML. Kiểu bản nghi (Record Type) Thuộc tính Mô tả Member Một trường trong bản nghi. DataTypes Kiểu dữ liệu của một thành phần. Bảng 333 Kiểu bản ghi – Các thuộc tính Kiểu hợp (Union Type) Thuộc tính Mô tả Member Một thành phần trong kiểu hợp. DataTypes Kiểu dữ liệu của một thành phần. Bảng 334 Kiểu hợp- thuộc tính Kiểu liệt kê (Enumeration Type) Thuộc tính Mô tả Enumeration Value Một phần tử biểu diễn một trong các giá trị trong một bảng liệt kê. Bảng 335 Kiểu liệt kê – Các thuộc tính Kiểu mảng (Array Type) Thuộc tính Mô tả DataTypes Kiểu dữ liệu của các khoản mục Lower Index Phạm vi dưới của kiểu mảng Upper Index Phạm vi trên của kiểu mảng Bảng 336 Kiểu mảng – Các thuộc tính Kiểu danh sách (List Type) Thuộc tính Mô tả DataTypes Dữ liệu của danh sách các thực thể. Bảng 337 Kiểu mảng – Các thuộc tính Các kiểu dữ liệu được khai báo Là những kiểu có khả năng sử dụng lại một định nghĩa dữ liệu phúc tạp tại bất cứ đâu mà ta có thể sử dụng một kiểu xpdl chuẩn. Định nghĩa kiểu dữ liệu dưới một thành phần TypeDeclaration và sau đó tham chiếu tới nó bằng cách sử dụng kiểu dữ liệu DeclaredType Khai báo kiểu (Type Declaration) Thuộc tính Mô tả DataTypes Kiểu dữ liệu. Description Mô tả cho kiểu dữ liệu khai báo. ExtendedAttributes Thuộc tính mở rộng do nhà cung cấp thêm vào. Id Định danh cho TypeDeclaration. Name Tên của TypeDeclaration. Bảng 338 Khai báo kiểu – Các thuộc tính Kiểu được khai báo (Declared Type) Thuộc tính Mô tả Id Tham chiếu tới kiểu dữ liệu được khai báo trong TypeDeclaration. Bảng 339 Kiểu dữ liệu được khai báo – Các thuộc tính Giao diện lập trình ứng dụng Workflow - WAPI WAPI có thể được xem như một tập hợp các lời gọi API và các chức năng trao đổi được hỗ trợ bởi dịch vụ Workflow enactment ở ranh giới để tương tác với các nguồn tài nguyên hay ứng dụng khác. Mặc dù kiến trúc này tham chiếu đến 5 giao diện bên trong WAPI nhưng một số các chức năng bên trong mỗi giao diện này là chung (ví dụ lời gọi trạng thái tiến trình có thể xuất phát từ giao diện ứng dụng khách hoặc từ giao diện quản trị). Vì vậy WAPI thực sự được xem như phần cốt lõi chung của các định dạng trao đổi hoặc của các lời gọi API với những mở rộng xác định khi cần thiết bảo đảm tính riêng biệt cho từng miền chức năng trong năm miền kể trên. Hầu hết các chức năng của WAPI bao gồm các lời gọi API với một tập tham số được xác định trước hoặc các mã kết quả. Như đã giới thiệu, một hệ thống quản trị Workflow luôn giả sử rằng tối thiểu có một môi trường IT được tích hợp vào hệ thống, hay đúng hơn là một môi trường cho phép Workflow hoạt động, đó là giao diện ứng dụng khách Workflow. Ngoài ý nghĩa đó, giao diện này còn cung cấp một số cấp độ bảo vệ cho các hệ thống phần mềm đã thực sự cài đặt, bởi nó cho phép sự phân cách giữa hệ thống engine và các ứng dụng phía khách. Ngày nay, có rất nhiều các công cụ quản trị Workflow hỗ trợ cơ chế đặc biệt để tích hợp các ứng dụng và trao đổi thông tin. Hiện tại, hầu hết các cơ chế hỗ trợ này đều cài đặt theo các yêu cầu riêng của khách hàng. Do đó, khi các công ty tích hợp hệ thống hay các nhà cung cấp thứ 3 cần sử dụng các công cụ quản trị Workflow khác nhau cùng lúc, họ lại phải cài đặt lại các cơ chế này. Do đó, các nhà cung cấp rất quan tâm tới việc hỗ trợ một giao diện tổng quan, bởi nó sẽ hỗ trợ hiệu quả công việc hằng ngày của họ. Giao diện này có thể đơn giản là các ứng dụng thông dụng cho phép Workflow. Nhưng thực tế, các môi trường Workflow thông thường bao gồm một loạt các ứng dụng Workflow đặc biệt khác nhau và chúng chạy trên các môi trường không đồng nhất với nhau. Hệ thống quản trị Workflow chính là một nền tích hợp theo yêu cầu của thị trường và các yêu cầu về một giao diện ứng dụng tổng quan và chuẩn. Bởi các yêu cầu về việc chuẩn hóa giao diện ứng dụng khách và giao diện lập trình, triệu gọi ứng dụng, các hàm WAPI- Workflow Application Programming Interface đã được xây dựng. Dựa vào các API này, các ứng dụng có thể giao tiếp với dịch vụ Workflow enactment một cách dễ dàng hơn. Phần này sẽ đưa ra các định nghĩa và các kiểu dữ liệu WAPI theo chuẩn đã thống nhất. Các kiểu dữ liệu WAPI Các kiểu dữ liệu WAPI được sử dụng trong việc gọi các hàm WAPI trong các đối số input và output. Các kiểu dữ liệu WAPI cơ bản Các kiểu dữ liệu WAPI cơ bản chứa định nghĩa các kiểu dữ liệu quản lý Workflow cơ bản, đó là các kiểu của hệ điều hành hoặc độc lập với nền. typedef char WMTInt8; typedef short WMTInt16; typedef long WMTInt32; typedef unsigned char WMTUInt8; typedef unsigned short WMTUInt16; typedef unsigned long WMTUInt32; typedef WMTInt8 WMTText; typedef WMTText *WMTPText; typedef WMTInt8 *WMTPInt8; typedef WMTInt16 *WMTPInt16; typedef WMTInt32 *WMTPInt32; typedef WMTInt8 WMTBoolean; typedef WMTUInt8 *WMTPointer; typedef WMTText *WMTPPrivate; #define WMNULL ((WMTPointer)0) #define WMFalse 0 #define WMTrue (!WMFalse) Các kiểu dữ liệu WAPI khác Đây là định nghĩa các kiểu dữ liệu quản lý Workflow là các cấu trúc hoặc các đối tượng. Kiểu dữ liệu String : Khi được khởi tạo sẽ được gán là 0. Độ dài xâu tối đa đối với tên, từ khóa và các từ nhận dạng bao gồm 63 ký tự và được chứa trong một mảng text 64 byte. Marco định nghĩa kích thước cho String như sau : #define NAME_STRING_SIZE 64 Tất cả các xâu đều được định nghĩa dạng mảng text. Ví dụ : WMTText user_identification [NAME_STRING_SIZE] Theo trên, thì một xâu có thể chứa tối đa 63 ký tự thực sự. Tất cả các hàm gọi WAPI có chung một kiểu dữ liệu lỗi trả về cùng dạng nhau là : typedef struct { WMTInt16 main_code; WMTInt16 sub_code; } WMTErrRetType; Kiểu dữ liệu này được chia sẻ giữa tất cả các lời gọi API. Tất cả các kiểu dữ liệu khác được biểu diễn cùng với các miêu tả WAPI đối với các lời gọi riêng khác. Kiểu dữ liệu trả về lỗi là một từ Int32, trong đó gồm 2 thành phần Int16 cho các lỗi trả về. Thành phần main_code chứa mã lỗi trả về chính, còn thành phần sub_code chứa mã để miêu tả thêm cho bản chất của lỗi. Ví dụ thành phần mã lỗi main_code WM_INVALID_PROCESS_INSTANCE (xem ở danh sách các mã lỗi trả về ở sau), sẽ bao gồm trong sub_code của nó các miêu tả nhiều hơn và chi tiết hơn lý do tại sao thực thể tiến trình là không hợp lệ. Kiểu cấu trúc thông tin kết nối : typedef struct { WMTText user_identification[NAME_STRING_SIZE]; // Nhận dạng của thành phần tham gia Workflow dựa trên bản thân ứng dụng Workflow sẽ được thao tác. Giá trị miêu tả ở đây có thể dưới dạng một người, một thiết bị vv.. Nhận dạng này thường được sử dụng cho việc kiểm tra tính bảo mật, tài khoản, vv.. WMTText password[NAME_STRING_SIZE]; WMTText engine_name[NAME_STRING_SIZE]; // Nhận dạng của Engine WFM để từ đó các lời gọi hàm API thực hiện một cách trực tiếp. Thông tin này không cần bắt buộc yêu cầu với một số sản phẩm WFM thông thường. Tuy nhiên, nó được yêu cầu cho các ứng dụng Workflow cần tương tác với nhiều Engine WFM. Đây có thể là một tên biểu trưng để giải quyết việc uyển chuyển trong lời gọi. WMTText scope[NAME_STRING_SIZE]; // Nhận dạng phạm vi cho ứng dụng. Nếu phạm vi của nó không thích hợp, vùng này sẽ được để trống và không được chấp nhận. }WMTConnectInfo; typedef WMTConnectInfo *WMTPConnectInfo; Kiểu cấu trúc điều khiển phiên làm việc: typedef struct { WMTUInt32 session_id; // ID nhận dạng phiên làm việc. Đơn nhất. WMTPPrivate pprivate; // Trỏ tới một cấu trúc riêng chứa các thông tin miêu tả nhà cung cấp. }WMTSessionHandle; typedef WMTSessionHandle *WMTPSessionHandle; Kiểu cấu trúc lọc: typedef struct { WMTInt32 filter_type; // Bao gồm các kiểu cơ bản và kiểu String SQL WMTInt32 filter_length; // Độ dài (bằng byte) của giá trị. WMTText attribute_name [NAME_STRING_SIZE] WMTUInt32 comparison; // Là một trong: , =, !=, <=, <= WMTPText filter_string; }WMTFilter; typedef WMTFilter *WMTPFilter; // Trong phần miêu tả này sẽ có hai kiểu bộ lọc. Một kiểu được sử dụng cho việc so sánh với (và giữa các thuộc tính giá trị). Trong trường hợp này, thành phần string_filter bao gồm thuộc tính giá trị là giá trị sẽ được đem ra so sánh. Kiểu thứ hai là một cơ chế tổng quan hơn trong đó thành phần filter_string trình bày toàn bộ đối số (thông thường là một đối số SQL). Nếu thành phần filter_type là một xâu SQL, thì thành phần filter_string sẽ trỏ tới một mệnh đề với ngữ cảnh của mệnh đề WHERE trong chuẩn 92 của đặc tả ngôn ngữ SQL. Kiểu cấu trúc điều khiển hàng đợi: typedef struct{ WMTUInt32 query_handle; }WMTQueryHandle; typedef WMTQueryHandle *WMTPQueryHandle; Kiểu cấu trúc thành phần tham gia Workflow: typedef struct { WMTText wf_participant[NAME_STRING_SIZE]; }WMTWflParticipant; typedef WMTWflParticipant *WMTPWflParticipant; Kiểu cấu trúc nhận dạng định nghĩa tiến trình: typedef struct{ WMTText proc_def_id[UNIQUE_ID_SIZE]; }WMTProcDefID; typedef WMTProcDefID *WMTPProcDefID; Kiểu cấu trúc nhận dạng hành vi: typedef struct{ WMTText activity_id[NAME_STRING_SIZE]; }WMTActivityID; typedef WMTActivityID *WMTPActivityID; Kiểu cấu trúc trạng thái của định nghĩa tiến trình: typedef struct{ WMTText proc_def_state[NAME_STRING_SIZE]; } WMTProcDefState; typedef WMTProcDefState *WMTPProcDefState; // Trỏ tới một xâu 63 byte Kiểu cấu trúc định nghĩa tiến trình: typedef struct{ // Đây là danh sách tối thiểu của các thành phần vào thời điểm hiện tại. Trong các phiên bản WAPI tiếp theo sẽ cung cấp thêm các mở rộng. WMTText process_name[NAME_STRING_SIZE]; WMTProcDefID proc_def_id; WMTProcDefState state; } WMTProcDef; typedef WMTProcDef *WMTPProcDef; Kiểu nhận dạng thực thể tiến trình: typedef struct{ WMTText proc_inst_id[UNIQUE_ID_SIZE]; }WMTProcInstID; typedef WMTProcInstID *WMTPProcInstID; Kiểu cấu trúc trạng thái thực thể tiến trình: typedef struct{ WMTText proc_inst_state[NAME_STRING_SIZE]; } WMTProcInstState; typedef WMTProcInstState *WMTPProcInstState; // trỏ tới một xâu 63 byte typedef struct{ // Đây là danh sách tối thiểu của càng thành phần vào hiện tại. Các phiên bản tương lai sẽ mở rộng thêm cấu trúc này. WMTText process_name[NAME_STRING_SIZE]; WMTProcInstID proc_inst_id; WMTProcDefID proc_def_id; WMTProcInstState state; WMTInt32 priority; WMTWflParticipant proc_participants[20]; //Tăng lên tới 20 63 ký tự cho nhận dạng thành phần tham gia } WMTProcInst; typedef WMTProcInst *WMTPProcInst; Kiểu cấu trúc nhận dạng thực thể hành vi: typedef struct { WMTText activity_inst_id[UNIQUE_ID_SIZE]; }WMTActivityInstID; typedef WMTActivityInstID *WMTPActivityInstID; Kiểu cấu trúc trạng thái thực thể hành vi: typedef struct{ WMTText activity_inst_state[NAME_STRING_SIZE]; } WMTActivityInstState; typedef WMTActivityInstState *WMTPActivityInstState; Kiểu cấu trúc thực thể hành vi: typedef struct{ // Đây là danh sách tối thiểu của càng thành phần vào hiện tại. Các phiên bản tương lai sẽ mở rộng thêm cấu trúc này. WMTText activity_name[NAME_STRING_SIZE]; WMTActivityInstID activity_inst_id; WMTProcInstID proc_inst_id; WMTActivityInstState state; WMTInt32 priority; WMTWflParticipant activity_participants[10]; //Tăng lên tới 20 63 ký tự cho nhận dạng thành phần tham gia } WMTActivityInst; typedef WMTActivityInst *WMTPActivityInst; Kiểu cấu trúc nhận dạng nhãn công việc: typedef struct{ WMTText work_item_id[UNIQUE_ID_SIZE]; }WMTWorkItemID; typedef WMTWorkItemID *WMTPWorkItemID; Kiểu cấu trúc nhãn công việc: typedef struct{ // Đây là danh sách tối thiểu của càng thành phần vào hiện tại. Các phiên bản tương lai sẽ mở rộng thêm cấu trúc này. WMTText workitem_name[NAME_STRING_SIZE]; WMTWorkItemID workitem_id; WMTActivityInstID activity_inst_id; WMTProcInstID proc_inst_id; WMTInt32 priority; WMTWflParticipant participant; } WMTWorkItem; typedef WMTWorkItem *WMTPWorkItem; Kiểu cấu trúc thuộc tính: typedef struct{ WMTText attribute_name[NAME_STRING_SIZE]; WMTInt32 attribute_type; // Kiểu thuộc tính WMTInt32 attribute_length; // Độ dài của giá trị thuộc tính WMTPText pattribute_value; // Con trỏ tới giá trị thuộc tính } WMTAttribute; typedef WMTAttribute *WMTPAttribute; Kiểu cấu trúc danh sách thuộc tính: typedef struct{ WMTInt32 attribute_number; WMTPAttribute pattribute; WMTNextAttr *WMTAttributeList } WMTAttributeList; typedef WMTAttributeList *WMTPAttributeList; Các thuộc tính Các thuộc tính quản lý API là một tập gồm 4 thành phần : WMTText attribute_name[NAME_STRING_SIZE]; WMTInt32 attribute_type; // Kiểu của thuộc tính WMTInt32 attribute_length; // Độ dài của giá trị thuộc tính WMTPText pattribute_value; // Con trỏ tới giá trị thuộc tính Tất cả các lời gọi API đều gắn với các thuộc tính, đưa ra các thành phần riêng như là các đối số riêng cho các lời gọi. Các kiểu định nghĩa sau đây được sử dụng cho các thuộc tính tên: typedef WMTText WMTAttrName[NAME_STRING_SIZE]; typedef WMTAttrName *WMTPAttrName; Các thuộc tính này thuộc về các kiểu được gọi là dữ liệu điều khiển tiến trình và dữ liệu liên quan tiến trình. Một số các thuộc tính của thực thể tiến trình, thực thể hành vi và nhãn công việc có thể là: Độ ưu tiên, trạng thái, thời gian bắt đầu, miêu tả, tên thực thể, thành phần tham gia Workflow. Mã lỗi trả về của các hàm WAPI Phần này miêu tả tập tối thiểu các mã lỗi trả về của WAPI. Các mã lỗi tương ứng với thành phần main_code trong kiểu dữ liệu lỗi trả về WMTErrRetType đã được định nghĩa ở phần trước. Tập tối thiểu của các mã lỗi trả về của main_code là: WM_SUCCESS Chỉ ra rằng lời gọi API hoàn thành thành công WM_CONNECT_FAILED Chỉ ra rằng lời gọi hàm WMConnect bị lỗi WM_INVALID_PROCESS_DEFINITION Chỉ ra rằng ID định nghĩa tiến trình đã được chuyển qua như đối số tới một lời gọi API là không hợp lệ, hoặc nó đã không được thừa nhận bởi các dịch vụ Workflow engine. WM_INVALID_ACTIVITY_NAME Chỉ ra rằng tên hành vi đã được chuyển qua như một đối số tới một lời gọi API không hợp lệ, hoặc nó đã không được thừa nhận bởi dịch vụ Workflow engine. M_INVALID_PROCESS_INSTANCE Chỉ ra rằng ID thực thể tiến trình đã được chuyển qua như một đối số tới một lời gọi API không hợp lệ, hoặc nó đã không được thừa nhận bởi dịch vụ Workflow engine. WM_INVALID_ACTIVITY_INSTANCE Chỉ ra rằng ID thực thể hành vi đã được chuyển qua như một đối số tới một lời gọi API không hợp lệ, hoặc nó đã không được thừa nhận bởi dịch vụ Workflow engine. WM_INVALID_WORKITEM Chỉ ra rằng ID nhãn công việc đã được chuyển qua như một đối số tới một lời gọi API không hợp lệ, hoặc nó đã không được thừa nhận bởi dịch vụ Workflow engine. WM_INVALID_ATTRIBUTE Chỉ ra rằng thuộc tính đã được chuyển qua như một đối số tới một lời gọi API không hợp lệ, hoặc nó đã không được thừa nhận bởi dịch vụ Workflow engine. WM_ATTRIBUTE_ASSIGNMENT_FAILED Chỉ ra rằng Workflow engine đã không thể hoàn thành yêu cầu gán thuộc tính. WM_INVALID_STATE Chỉ ra rằng một trạng thái đã không hợp lệ, hoặc nó đã không được thừa nhận bởi dịch vụ Workflow engine. WM_TRANSITION_NOT_ALLOWED Chỉ ra rằng sự chuyển tiếp trạng thái đã yêu cầu là không hợp lệ, hoặc nó đã không được thừa nhận bởi một workfow engine. WM_INVALID_SESSION_HANDLE Chỉ ra rằng ID phiên làm việc đã được chuyển qua như một đối số tới một lời gọi API là không hợp lệ, hoặc nó đã không được thừa nhận bởi một workfow engine. WM_INVALID_QUERY_HANDLE Chỉ ra rằng ID điều khiển hàng đợi đã được chuyển qua như một đối số tới một lời gọi API là không hợp lệ, hoặc nó đã không được thừa nhận bởi một workfow engine. WM_INVALID_SOURCE_USER Chỉ ra rằng thành phần tham gia “người sử dụng nguồn” đã được chuyển qua như một đố số tới một lời gọi API là không hợp lệ, hoặc nó đã không được thừa nhận bởi một workfow engine. WM_INVALID_TARGET_USER Chỉ ra rằng thành phần tham gia “người sử dụng đích” đã được chuyển qua như một đố số tới một lời gọi API là không hợp lệ, hoặc nó đã không được thừa nhận bởi một workfow engine. WM_INVALID_FILTER Chỉ ra rằng cấu trúc lọc hoặc các giá trị đã được chuyển qua như một đố số tới một lời gọi API là không hợp lệ, hoặc nó đã không được thừa nhận bởi một workfow engine. WM_LOCKED Phục vụ cho tình huống mà ở đó, dịch vụ Workflow engine cài đặt việc khóa- locking của các thực thể Workflow (Các định nghĩa tiến trình, các thực thể tiến trình, các hành vi, các nhãn công việc..vv..) để chỉ ra rằng thực thể đó là bị khóa vào thời điểm mà sự truy cập của nó được yêu cầu. WM_NOT_LOCKED Phục vụ cho tình huống mà ở đó dịch vụ Workflow engine cài đặt việc khóa của các thực thể worklfow (Các định nghĩa tiến trình, các thực thể tiến trình, các hành vi, các nhãn công việc..vv..) để chỉ ra rằng thực thể đó là bị khóa vào thời điểm mà sự truy cập của nó được yêu cầu. WM_NO_MORE_DATA Chỉ ra rằng một hàng đợi hàng đợi đến lượt gọi đã đạt tới giới hạn cuối của danh sách các thực thể hợp lệ sẽ được trả về. Mã lỗi trả về này được sử dụng để cài đặt hàng đợi của danh sách các thực thể Workflow, nó chỉ ra rằng tất cả các thực thể của danh sách phù hợp với sự lựa chọn ban đầu đều đã thực sự sẵn sàng để trả về. WM_INSUFFICIENT_BUFFER_SIZE Chỉ ra rằng kích thước bộ đệm đã được chuyển qua một lời gọi API là bị thiếu để giữ dữ liệu để được hỗ trợ trong việc nhận WM_APPLICATION_BUSY Chỉ ra rằng ứng dụng tương ứng hiện thời đang bận và không thể trả về một trạng thái của tiến trình công việc. WM_INVALID_APPLICATION Chỉ ra rằng một ứng dụng không hợp lệ đã được yêu cầu bởi giao diện gọi. WM_INVALID_WORK_ITEM Chỉ ra rằng một nhãn công việc không hợp lệ đã được tham chiếu bởi một giao diện gọi. WM_APPLICATION_NOT_STARTED Chỉ ra rằng một ứng dụng được yêu cầu đã không được khởi động thành công. WM_APPLICATION_NOT_DEFINED Chỉ ra rằng ứng dụng không được cài đặt hoặc cấu hình WM_APPLICATION_NOT STOPPED Chỉ ra rằng một ứng dụng tương ứng không được ngừng đúng cách. WAPI cho các kết nối pconnect_info: Con trỏ chỉ tới cấu trúc chứa thông tin được yêu cầu một kết nối psession_handle: Con trỏ chỉ tới cấu trúc chứa thông tin được chuyển tới WFM Engine tất cả các API tiếp theo sẽ được xác định ảnh hưởng trong phạm vi giới hạn WMConnect/WMDisconnect, xác định phiên làm việc của thành phần tham gia tương tác với Engine. Các thẻ này là không xác định trong môi trường không kết nối chúng chứa id thành phần tham gia, các password xác định phiên.Sẽ có các giá trị đặc biệt để chỉ ra lỗi. WMConnect() WMConnect – Kết nối tới WFM Engine cho các tương tác . WMTErrRetType WMConnect ( in WMTPConnectInfo pconnect_info, out WMTPSessionHandle psession_handle) GIÁ TRỊ LỖI TRẢ VỀ WM_SUCCESS WM_CONNECT_FAILED WMDisconnect() WMDisconnect –Ngắt kết nối tới từ WFM Engine cho các tương tác. WMTErrRetType WMDisconnect ( in WMTPConnectInfo pconnect_info) GIÁ TRỊ LỖI TRẢ VỀ WM_SUCCESS WM_INVALID_SESSION_HANDLE WAPI cho các điều khiển tiến trình Mô tả các đối số pconnect_info: trỏ tới một cấu trúc chứa các thông tin về ngữ cảnh cho hành vi pquery_handle : trỏ tới một cấu trúc chứa thông tin truy vấn duy nhất pfilter: trỏ tới một cấu trúc chứa các thông tin lọc pprocdefID: trỏ tới ID của định nghĩa tiến trình pprocinstID: trỏ tới ID của bản sao tiến trình pinstName: trỏ tới tên bản sao tiến trình pattrName: trỏ tới tên của thuộc tính pattrType: trỏ tới kiểu của thuộc tính pattrLength: trỏ tới độ dài của thuộc tính pattrValue: trỏ tới vùng đệm cung cấp bởi ứng dụng khách lưu các giá trị của thuộc tính pcount : tổng số đối tưởng trong kết quả trả về pbuffer : trỏ tới vùng đệm được cung cấp bởi ứng dụng khách để lưu các đối tượng truy vấn pprocdefState: trỏ tới một trạng thái của định nghĩa tiến trình count_flag : trỏ boolean chỉ ra việc có hay không trả về tổng số đối tượng trong kết quả buffer_size : kích thước của vùng đệm WMOpenProcesssDefinitionsList Xác định và mở truy vấn danh sách các định nghĩa tiến trình WMTErrRetType WMOpenProcessDefinitionsList ( in WMTPSessionHandle psession_handle in WMTPFilter pfilter in WMTBoolean count_flag out WMTPQueryHandle pquery out WMTPInt32 pcount) Các giá trị trả về WM_SUCCESS WM_INVALID_SESSION_HANDLE WM_INVALID_FILTER WMFetchProcessDefinition Trả về kết quả tiếp theo định nghĩa tiến trình tiếp theo trong danh sách truy vấn WMTErrRetType WMFetchProcessDefinition ( in WMTPSessionHandle psession_handle in WMTPQueryHandle pquery out WMTPProcDef pbuffer) Các giá trị trả về WM_SUCCESS WM_INVALID_SESSION_HANDLE WM_INVALID_PROCESS_DEFINITION WM_INVALID_QUERY_HANDLE WM_NO_MORE_DATA WMCloseProcesssDefinitionsList Đóng danh sách truy vấn định nghĩa tiến trình WMTErrRetType WMCloseProcessDefinitionsList ( in WMTPSessionHandle psession_handle in WMTPQueryHandle pquery) Các giá trị trả về WM_SUCCESS WM_INVALID_SESSION_HANDLE WM_INVALID_QUERY_HANDLE WMOpenProcesssDefinitionStatesList Xác định và mở truy vấn các trạng thái định nghĩa tiến trình WMTErrRetType WMOpenProcessDefinitionStatesList ( in WMTPSessionHandle psession_handle in WMTPProcDefID pprocdefID in WMTPFilter pfilter in WMTBoolean count_flag out WMTPQueryHandle pquery out WMTPInt32 pcount) Các giá trị trả về WM_SUCCESS WM_INVALID_SESSION_HANDLE WM_INVALID_FILTER WM_INVALID_PROCESS_DEFINITION WMFetchProcessDefinitionState Trả về kết quả tiếp theo của trạng thái định nghĩa tiến trình trong danh sách truy vấn WMTErrRetType WMFetchProcessDefinitionState ( in WMTPSessionHandle psession_handle in WMTPQueryHandle pquery out WMTPProcDefState pbuffer) Các giá trị trả về WM_SUCCESS WM_INVALID_SESSION_HANDLE WM_INVALID_QUERY_HANDLE WM_NO_MORE_DATA WMCloseProcesssDefinitionStatesList Đóng danh sách truy vấn trạng thái của định nghĩa tiến trình WMTErrRetType WMCloseProcessDefinitionStatesList ( in WMTPSessionHandle psession_handle in WMTPQueryHandle pquery) Các giá trị trả về WM_SUCCESS WM_INVALID_SESSION_HANDLE WM_INVALID_QUERY_HANDLE WMChangeProcesssDefinitionState Thay đổi trạng thái của một định nghĩa tiến trình WMTErrRetType WMChangeProcessDefinition ( in WMTPSessionHandle psession_handle in WMTPProcDefID pprocdefID in WMTPProcInstState pprocinstState) Các giá trị trả về WM_SUCCESS WM_INVALID_SESSION_HANDLE WM_INVALID_PROCESS_DEFINITION WM_INVALID_STATE WM_TRANSITION_NOT_ALLOWED WMCreateProcessInstance Tạo một bản sao tiến trình WMTErrRetType WMCreateProcessInstance ( in WMTPSessionHandle psession_handle in WMTPProcDefID pprocdefID in WMTPText pinstName out WMTPProcInstID pprocinstID) Các giá trị trả về WM_SUCCESS WM_INVALID_SESSION_HANDLE WM_INVALID_PROCESS_DEFINITION WMStartProcess Bắt đầu một tiến trình WMTErrRetType WMStartProcess ( in WMTPSessionHandle psession_handle in WMTPProcDefID pprocdefID out WMTPProcInstID pprocinstID) Các giá trị trả về WM_SUCCESS WM_INVALID_SESSION_HANDLE WM_INVALID_PROCESS_INSTANCE WM_INVALID_ATTRIBUTE WMTerminateProcessInstance Bắt đầu một tiến trình WMTErrRetType WMTeminateProcessInstance ( in WMTPSessionHandle psession_handle in WMTPProcInstID pprocinstID) Các giá trị trả về WM_SUCCESS WM_INVALID_SESSION_HANDLE WM_INVALID_PROCESS_INSTANCE WMOpenProcesssInstanceStatesList Xác định và mở truy vấn các trạng thái bản sao tiến trình WMTErrRetType WMOpenProcessInstanceStatesList ( in WMTPSessionHandle psession_handle in WMTPProcInstID pprocinstID in WMTPFilter pfilter in WMTBoolean count_flag out WMTPQueryHandle pquery out WMTPInt32 pcount) Các giá trị trả về WM_SUCCESS WM_INVALID_SESSION_HANDLE WM_INVALID_PROCESS_INSTANCE WMFetchProcessInstanceState Trả về kết trạng thái tiếp theo của bản sao tiến trình trong danh sách truy vấn WMTErrRetType WMFetchProcessInstanceState ( in WMTPSessionHandle psession_handle in WMTPQueryHandle pquery out WMTPProcInstState pbuffer) Các giá trị trả về WM_SUCCESS WM_INVALID_SESSION_HANDLE WM_INVALID_QUERY_HANDLE WM_NO_MORE_DATA WMCloseProcesssInstantStatesList Đóng danh sách truy vấn trạng thái của bản sao tiến trình WMTErrRetType WMCloseProcessInstanceStatesList ( in WMTPSessionHandle psession_handle in WMTPQueryHandle pquery) Các giá trị trả về WM_SUCCESS WM_INVALID_SESSION_HANDLE WM_INVALID_QUERY_HANDLE WMChangeProcesssInstanceState Thay đổi trạng thái của một bản sao tiến trình WMTErrRetType WMChangeProcessDefinition ( in WMTPSessionHandle psession_handle in WMTPProcInstID pprocinstID in WMTPProcInstState pprocinstState) Các giá trị trả về WM_SUCCESS WM_INVALID_SESSION_HANDLE WM_INVALID_PROCESS_DEFINITION WM_INVALID_STATE WM_TRANSITION_NOT_ALLOWED WMOpenProcessInstanceAttributesList Thay đổi trạng thái của một bản sao tiến trình WMTErrRetType WMOpenProcessAttributesList ( in WMTPSessionHandle psession_handle in WMTPProcInstID pprocinstID in WMTPFilter pfilter in WMTBoolean count_flag out WMTPQuery pquery_handle out WMTPInt32 pcount) Các giá trị trả về WM_SUCCESS WM_INVALID_SESSION_HANDLE WM_INVALID_PROCESS_INSTANCE WMFetchProcessInstanceAttribute Trả về thuộc tính tiếp theo của bản sao tiến trình trong danh sách truy vấn WMTErrRetType WMFetchProcessInstanceAttribute ( in WMTPSessionHandle psession_handle in WMTPQueryHandle pquery out WMTPAttrName pattrName out WMTPInt32 pattrType out WMTPInt32 pattrLength out WMTPText pattrValue in WMTInt32 buffer_size) Các giá trị trả về WM_SUCCESS WM_INVALID_SESSION_HANDLE WM_INVALID_QUERY_HANDLE WM_NO_MORE_DATA WMCloseProcessInstanceAttributesList Đóng danh sách truy vấn các thuộc tính của bản sao tiến trình WMTErrRetType WMCloseProcessInstanceAttributesList ( in WMTPSessionHandle psession_handle in WMTPQueryHandle pquery) Các giá trị trả về WM_SUCCESS WM_INVALID_SESSION_HANDLE WM_INVALID_QUERY_HANDLE WMGetProcessInstanceAttributeValue Trả về giá trị, kiểu, độ dài của thuộc tính bản sao tiến trình WMTErrRetType WMFetchProcessInstanceAttribute ( in WMTPSessionHandle psession_handle, in WMTPProcInstID pprocinstID, in WMTPAttrName pattrName, out WMTPInt32 pattrType, out WMTPInt32 pattrLength, out WMTPText pattrValue, in WMTInt32 buffer_size) Các giá trị trả về WM_SUCCESS WM_INVALID_SESSION_HANDLE WM_INVALID_ATTRIBUTE WM_INSUFFICIENT_BUFFER_SIZE WMAssignProcessInstanceAttribute Gán một thuộc tính cho bản sao tiến trình WMTErrRetType WMAssignProcessInstanceAttribute ( in WMTPSessionHandle psession_handle, in WMTPProcInstID pprocinstID, in WMTPAttrName pattrName, in WMTInt32 attrType, in WMTInt32 attrLength, in WMTPText pattrValue) Các giá trị trả về WM_SUCCESS WM_INVALID_SESSION_HANDLE WM_INVALID_PROCESS_INSTANCE WM_INVALID_ATTRIBUTE WM_ATTRIBUTE_ASSIGNMENT_FAILED WAPI cho các điều khiển hành vi WMOpenActivityInstanceStatesList Xác định và mở truy vấn tới các trạng thái của bản sao hành vi WMTErrRetType WMOpenActivityInstanceStatesList ( in WMTPSessionHandle psession_handle, in WMTPProcInstID pproc_inst_id, in WMTPActivityInstID pactivity_inst_id, in WMTPFilter pact_inst_state_filter, in WMTBoolean count_flag, out WMTPQueryHandle pquery_handle, out WMTPInt32 pcount) Các giá trị trả về WM_SUCCESS WM_INVALID_SESSION_HANDLE WM_INVALID_PROCESS_INSTANCE WM_INVALID_ACTIVITY_INSTANCE WMFetchActivityInstanceState Trả về trạng thái bản sao hành vi tiếp theo trong danh sách truy vấn WMTErrRetType WMFetchActivityInstanceState ( in WMTPSessionHandle psession_handle, in WMTPQueryHandle pquery_handle, out WMTPActivityInstState pactivity_inst_state) Các giá trị trả về WM_SUCCESS WM_INVALID_SESSION_HANDLE WM_INVALID_QUERY_HANDLE WM_NO_MORE_DATA WMCloseActivityInstanceStatesList Đóng danh sách truy vấn các trạng thái của bản sao hành vi WMTErrRetType WMCloseActivityInstanceStatesList ( in WMTPSessionHandle psession_handle, in WMTPQueryHandle pquery_handle) Các giá trị trả về WM_SUCCESS WM_INVALID_SESSION_HANDLE WM_INVALID_QUERY_HANDLE WMChangeActivityInstanceState Thay đổi trạng thái một bản sao tiến trình WMTErrRetType WMChangeActivityInstanceState ( in WMTPSessionHandle psession_handle, in WMTPProcInstID pproc_inst_id, in WMTPActivityInstID pactivity_inst_id, in WMTPActivityInstState pactivity_inst_state) Các giá trị trả về WM_SUCCESS WM_INVALID_SESSION_HANDLE WM_INVALID_PROCESS_INSTANCE WM_INVALID_ACTIVITY_INSTANCE WM_INVALID_STATE WM_TRANSITION_NOT_ALLOWED WMOpenActivityInstanceAttributesList Xác định và mở truy vấn tới các thuộc tính của bản sao hành vi WMTErrRetType WMOpenActivityInstanceAttributesList ( in WMTPSessionHandle psession_handle, in WMTPProcInstID pproc_inst_id, in WMTPActivityInstID pactivity_inst_id, in WMTPFilter pact_inst_attr_filter, in WMTBoolean count_flag, out WMTPQueryHandle pquery_handle, out WMTPInt32 pcount) Các giá trị trả về WM_SUCCESS WM_INVALID_SESSION_HANDLE WM_INVALID_PROCESS_INSTANCE WM_INVALID_ACTIVITY_INSTANCE WMFetchActivityInstanceAttribute Trả về thuộc tính tiếp theo của bản sao tiến trình WMTErrRetType WMFetchActivityInstanceAttribute ( in WMTPSessionHandle psession_handle, in WMTPQueryHandle pquery_handle, out WMTPAttrName pattribute_name, out WMTPInt32 pattribute_type, out WMTPInt32 pattribute_length, out WMTPText pattribute_value, in WMTInt32 buffer_size) Các giá trị trả về WM_SUCCESS WM_INVALID_SESSION_HANDLE WM_INVALID_QUERY_HANDLE WM_NO_MORE_DATA WMCloseActivityInstanceAttributesList Đóng truy vấn các thuộc tính của bản sao hành vi WMTErrRetType WMCloseActivityInstanceAttributesList ( in WMTPSessionHandle psession_handle, in WMTPQueryHandle pquery_handle) Các giá trị trả về WM_SUCCESS WM_INVALID_SESSION_HANDLE WM_INVALID_QUERY_HANDLE WMGetActivityInstanceAttributeValue Lấy các giá trị thuộc tính của bản sao hành vi WMTErrRetType WMGetActivityInstanceAttributeValue ( in WMTPSessionHandle psession_handle, in WMTPProcInstID pproc_inst_id, in WMTPActivityInstID pactivity_inst_id, in WMTPAttrName pattribute_name, out WMTPInt32 pattribute_type, out WMTPInt32 pattribute_length, out WMTPText pattribute_value, in WMTInt32 buffer_size) Các giá trị trả về WM_SUCCESS WM_INVALID_SESSION_HANDLE WM_INVALID_ATTRIBUTE WM_INSUFFICIENT_BUFFER_SIZE WMAssignActivityInstanceAttribute Gán thuộc tính cho một bản sao hành vi WMTErrRetType WMAssignActivityInstanceAttribute ( in WMTPSessionHandle psession_handle, in WMTPProcDefID pproc_def_id, in WMTPActivityInstID pactivity_inst_id, in WMTPAttrName pattribute_name, in WMTInt32 attribute_type, in WMTInt32 attribute_length, in WMTPText pattribute_value) Các giá trị trả về WM_SUCCESS WM_INVALID_SESSION_HANDLE WM_INVALID_PROCESS_INSTANCE WM_INVALID_ACTIVITY_INSTANCE WM_INVALID_ATTRIBUTE WM_ATTRIBUTE_ASSIGNMENT_FAILED WAPI truy vấn các bản sao tiến trình WMOpenProcessInstancesList Xác định và mở truy vấn các bản sao tiến trình WMTErrRetType WMOpenProcessInstancesList ( in WMTPSessionHandle psession_handle, in WMTPFilter pproc_inst_filter, in WMTBoolean count_flag, out WMTPQueryHandle pquery_handle, out WMTPInt32 pcount) Các giá trị trả về WM_SUCCESS WM_INVALID_SESSION_HANDLE WM_INVALID_FILTER WMFetchProcessInstance Trả về bản sao tiến trình tiếp theo trong truy vấn WMTErrRetType WMFetchProcessInstance ( in WMTPSessionHandle psession_handle, in WMTPQueryHandle pquery_handle, out WMTPProcInst pproc_inst_buf_ptr) Các giá trị trả về WM_SUCCESS WM_INVALID_SESSION_HANDLE WM_INVALID_QUERY_HANDLE WM_NO_MORE_DATA WMCloseProcessInstancesList Đóng truy vấn bản sao tiến trình WMTErrRetType WMCloseProcessInstancesList ( in WMTPSessionHandle psession_handle, in WMTPQueryHandle pquery_handle) Các giá trị trả về WM_SUCCESS WM_INVALID_SESSION_HANDLE WM_INVALID_QUERY_HANDLE WMGetProcessInstance Trả về một bản sao tiến trình theo ID WMTErrRetType WMGetProcessInstance ( in WMTPSessionHandle psession_handle, in WMTPProcInstID pproc_inst_id, out WMTPProcInst pproc_inst) Các giá trị trả về WM_SUCCESS WM_INVALID_SESSION_HANDLE WM_INVALID_PROCESS_INSTANCE WAPI truy vấn các bản sao hành vi WMOpenProcessInstancesList Xác định và mở truy vấn các bản sao tiến trình WMTErrRetType WMOpenProcessInstancesList ( in WMTPSessionHandle psession_handle, in WMTPFilter pproc_inst_filter, in WMTBoolean count_flag, out WMTPQueryHandle pquery_handle, out WMTPInt32 pcount) Các giá trị trả về WM_SUCCESS WM_INVALID_SESSION_HANDLE WM_INVALID_FILTER WMFetchProcessInstance Trả về bản sao tiến trình tiếp theo trong truy vấn WMTErrRetType WMFetchProcessInstance ( in WMTPSessionHandle psession_handle, in WMTPQueryHandle pquery_handle, out WMTPProcInst pproc_inst_buf_ptr) Các giá trị trả về WM_SUCCESS WM_INVALID_SESSION_HANDLE WM_INVALID_QUERY_HANDLE WM_NO_MORE_DATA WMCloseProcessInstancesList Đóng truy vấn bản sao tiến trình WMTErrRetType WMCloseProcessInstancesList ( in WMTPSessionHandle psession_handle, in WMTPQueryHandle pquery_handle) Các giá trị trả về WM_SUCCESS WM_INVALID_SESSION_HANDLE WM_INVALID_QUERY_HANDLE WMGetProcessInstance Trả về một bản sao tiến trình theo ID WMTErrRetType WMGetProcessInstance ( in WMTPSessionHandle psession_handle, in WMTPProcInstID pproc_inst_id, out WMTPProcInst pproc_inst) Các giá trị trả về WM_SUCCESS WM_INVALID_SESSION_HANDLE WM_INVALID_PROCESS_INS KẾT LUẬN Có thể nói workflow đã, đang và sẽ tiếp tục phát triển và sẽ mang lại nhiều lợi ích cho con người trên nhiều phương diện. Trong tương lai, việc nghiên cứu và phát triển hệ thống quản lý workflow có thể sẽ tiếp tục để có thể áp dụng được cho nhiều lĩnh vực khác nhau. Thời gian vừa qua, nhóm đã tìm hiểu và đưa ra những khái niệm chung về workflow, các ứng dụng đã áp dụng workflow cũng như các mô hình liên quan để làm rõ hơn về hệ quản trị workflow. Đồng thời nhóm đã thử nghiệm hệ thống quản trị tiến trình công việc trong đó bao gồm công cụ định nghĩa tiến trình và chạy thử nghiệm thành công trên Workflow Engine. Một lần nữa chúng em xin được bày tỏ sự biết ơn chân thành tới thày giáo TSKH. Nguyễn Minh Hải và thầy Nguyễn Quốc Hưng – Học viện Công nghệ Bưu chính vễn thông vì sự giúp đỡ và chỉ bảo tận tình của thầy trong quá trình chúng em thực hiện đề tài này. Hà Nội, 24/5/2006 TÀI LIỆU THAM KHẢO David Hollingsworth (1995), The Workflow Reference Model 19-Jan-95, Workflow Management Coalition, 2 Crown Walk Winchester hampshire UK SO22 5XE. Jinmin Hu - Paul Grefen , Conceptual Framework and Architecture for Service Mediating Workflow Management, Computer Science Department, Unversity of Twente P.O. BOX 217, 7500 AE Enschede, The Netherlands. Karl R.P.H Leung Lojo M.L. Chung (1999), The Liaision Workflow Engine Architecture, Department of Computing, Hong Kong Polytechnic university, Hong Kong. Work Group 1 (1-1999), Interface 1: Process Definition Interchange Q&A and Examples, (WfMC TC-1016-X), Workflow Management Coalition, 2 Crown Walk Winchester hampshire UK SO22.

Các file đính kèm theo tài liệu này:

  • docNghiên cứu và thử nghiệm hệ thống WORKFLOW.doc
Luận văn liên quan