Chương 1 GIỚI THIỆU VỀ WORKFLOW VÀ WORKFLOW SYSTEM
2.5. Ngôn ngữ định nghĩa Workflow – XPDL
2.5.5. Hành động của tiến trình Workflow
Định nghĩa hành động Workflow được sử dụng đểđịnh nghĩa cho mỗi hành động thành phần cấu tạo nên một tiến trình Workflow. Các thuộc tính có thể được định nghĩa để chỉ định thông tin điều khiển hành động, các cài đặt có thể lựa chọn, gán nhiệm vụ, thông tin liên quan đến thời điểm thực thi như quyền ưu tiên, dữ liệu sử
dụng một cách cụ thể trong BPR và các trạng thái mô phỏng (và không sử dụng trong Workflow enacment). Thêm vào đó các hạn chế trong viêc truy cập dữ liệu và giá trị
chuyển đổi (ví dụ: Split và Join) có thể được mô tả. Các thuộc tính bắt buộc được sử
dụng để định nghĩa định danh và loại hành động. Một số các thuộc tính khác là tuỳ
chọn nhưng chúng có cách dùng chung đối với tất cả các loại hành động.
Đối với mỗi hành động pham vi của tên và định danh là bao phủ toàn bộ tiến trình. Tức là tên và định danh đó phải là duy nhất.
Bảng 2-16 Hành động của tiến trình Workflow – Các thuộc tính
Thuộc tính Mô tả
BlockActivity Một hành động để thực hiện tập hành động bên trong.
Deadline Đặc tả của deadline và hành động sẽ thực hiện nếu nó xảy ra. Description Mô tả của hành động.
Documentation Địa chỉ (đường dẫn và tên file) của một file trợ giúp hoặc file mô tả của hành động.
Extended Attributes Phần thuộc tính mở rộng do nhà cung cấp thêm vào. Finish Mode Mô tả hệ thống kết thúc các hành động như thế nào. Icon Địa chỉ (một phần-và tên file) cho một biểu tượng để mô tả
hành động.
Id Định danh của hành động tiến trình Workflow.
Implementation Bắt buộc cho mọi kiểu hành động trừ hành động đị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 động.
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 động 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 động định tuyến( hành động ảo). Simulation
Information
Những đánh giá cho sự mô phỏng của một hành động. Start Mode Mô tả việc thực hiện một hành động đượ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
a.Hành động định tuyến
Hành động định tuyến là một hành động “ả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
động-1 ELSE IF Điều kiện-2 THEN TO Hành động-2 ELSE Hành động-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 động 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 động
đầ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 động đầu ra, hoặc danh sách đầu vào đơn đến một hành động. Trong trường hợp này phải yêu cầu sử dụng một hoặc nhiều hành
động ảo( hành động đị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 động.
• 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 động.
Một hành động đị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 động đị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.
b. Hành động kiểu khối
Một khối hành động thi hành một tập hành động hoặc ánh xạ các chuyển tiếp/hành động của bản thân nó. Hành động kiểu khối sẽ thực hiện từ một hành động
đầu tiên trong tập và cứ tiếp diễn đến hành động cuối cùng (Hành động 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 động khối đó.
c. Thuộc tính điều khiển thực thi
Có nhiều thuộc tính của một hành động 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 động .
Chếđộ (mode) định nghĩa mức độ tựđộng khi bắt đầu hoặc kết thúc hành động. 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 động bắt
đầu hoặc kết thúc. Trong những hệ thống như thế này hành động 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.
Bảng 2-17 Thuộc tính điều khiển thi hành – Các thuộc tính
Thuộc tính Mô tả
Start Mode Mô tả cách thi hành của một hành động được bắt đầu.
Automatic Hành động được bắt đầu ngay lập tức bởi hệ thống. Mặc định. Manual Hành động đượ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 động 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 động được kết thúc bởi người sử dụng cuối.
d.Các lựa chọn cài đặt
Một hành động có thểđược cài đặt theo một trong các cách được mô tảở dưới:
Bảng 2-18 Các lựa chọn cài đặt - Các thuộc tính
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.
d.1. Không cài đặt (No Implementation)
Không cài đặt nghĩa là việc thi hành của hành động không được hỗ trợ bởi Workflow engine (được thực thi thủ công).
d.2. Công cụ (tool)
Hành động đượ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).
Bảng 2-19 Công cụ - Các thuộc tính
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
e.Luồng con (Subflow)
Hành động 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ủ.
Bảng 2-20 Luồng con—Các thuộc tính
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ộ
f.Deadline
Bảng 2-21 Deadline – Các thuộc tính
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 động 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 động, bởi vì hành động tiếp tục được chạy.
SYNCHR : Hành động đượ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 động. 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
g.Thông tin mô phỏng
Bảng 2-22 Thông tin mô phỏng – Các thuộc tính
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 động được kích hoạt: Một hoặc nhiều lần
ONCE Chỉđược tạo ra một lần (mặc định) MULTIPLE 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.
h.Các giới hạn chuyển tiếp
Bảng 2-23 Giới hạn chuyển tiếp – Các thuộc tính
Thuộc tính Mô tả
Join Chỉ ra rằng các chuyển tiếp đầu vào của hành động là JOIN-ed Split Chỉ ra rằng các chuyển tiếp đầu ra của hành động là SPLIT-ed
h.1. Kết hợp (Join)
Một join mô tả các ngữ nghĩa của hành động với nhiều chuyển tiếp đầu vào.
Bảng 2-24 Join – các thuộc tính
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 động đó. Ở đâ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ộ.
h.2. Chia tách (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
động tồn tại.
Bảng 2-25 Split – Các thuộc tính
Thuộc tính Mô tả
Transition Refs Một danh sách các chuyển tiếp đầu ra từ hành động đó. 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.
2.5.6.Thông tin chuyển tiếp giữa các hành động
Thông tin chuyển tiếp mô tả các chuyển tiếp có thể giữa các hành động 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 động.
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 động. 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 động, 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.
Bảng 2-26 Thông tin chuyển tiếp – các thuộc tính
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 động 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.
a.1. Điều kiện
Bảng 2-27 Điều kiện-các thuộc tính
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. DEFAULTEXCEP TION 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
a.2. 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 EXCEPTION 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.
2.5.7.Mô hình tổ chức (Thành phần tham gia Worflow)
Mô hình tổ chức (Organisation Model) cho phép định nghĩa cấu trúc phân cấp của tổ chức bằng các thành phần tham gia và các mối quan hệ của chúng với nhau. Thành phần tham gia không chỉ là một người cụ thể, mà còn có thể là các chức năng nghiệp vụ hoặc bất kỳ một thực thể tổ chức khác. Thành phần tham gia có thể được gán để thực hiện một hành động cụ thể, được chỉ ra như một thuộc tính của một hành
động.
Siêu mô hình cho một mô hình tổ chức xác định các kiểu cơ sở của các thành phần tham gia và các quan hệ của chúng. 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 (human) và hệ thống (system). 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 động 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ể
(quá trình giải phân vai workflow).
Hình 2-12 Siêu mô hình định nghĩa mô hình tổ chức
Ngôn ngữ WPDL mô tả thành phần tham gia như sau: <Workflow Participant List> ::=
PARTICIPANT <participant id>
[NAME <name>]
[DESCRIPTION <description>]
[<extended attribute list>] // for participant specific a.
<participant type description>
END_PARTICIPANT
[<Workflow Participant List>] <participant id> ::= <identifier>
<capacity> ::= <integer> // số lượng hành động có thể thực // hiện song song
<prepare time> ::= <integer> // thời gian cần để chuẩn bị trước
// khi thực hiện hành động,
// tính theo giây, mặc đinh: 0
<strategy> ::= FIFO // vào trước, ra trước
| LIFO // vào sau, ra trước
| SJF // việc ngắn nhất trước
| LJF // việc dài nhất trước
| RD // bất kỳ chiến lược nào
<participant type description>
::= <declaration Ptype description>
| <definition Ptype description>
<Workflow Participant Declaration>
::= <Workflow Participant List>
// sử dụng <declaration Ptype description> <declaration Ptype description>
::= [TYPE <Ptype key>]
<Workflow Participant Definition>
::= <optional simulation data>
<Workflow Participant List>
// sử dụng <definition Ptype description> <optional simulation data> ::=
[CAPACITY <capacity>]
[COST<cost estimation>]
[PREPARETIME <prepare time> ]
[STRATEGY <strategy> ]
<definition Ptype description>
::= TYPE <Ptype related information>
<Ptype key> ::= <ou key> | <hu key> | <ro key> | <resource key> <ou key> ::= ORGANISATIONAL_UNIT // là một tổ chức
<hu key> ::= HUMAN // là một con người <ro key> ::= ROLE // là một vai trò
<resource key> ::= RESOURCE // là một tài nguyên
<Ptype related information> ::= <ou key> <ou attributes>
<pteal>] <ou relationships>
| <hu key> <hu attributes> [<pteal>]
<hu relationships>
| <ro key> <ro attributes> [<pteal>]
<ro relationships>
| <resource key> [<pteal>]
<pteal> ::= <extended attribute list>
// dùng cho các thuộc tính cụ thể // của kiểu thành phần tham gia
<ou attributes> ::= [MANAGER <manager>] // người quản lý <manager> ::= <participant id> // là một người <ou relationships> ::= [<superior description list>]
[<person description list>]
<hu attributes> ::= [USERID <string>]
[SURNAME <string>] [FORENAME <string>] [ADDRESS <string>] [PHONENUMBER <string>] [FAXNUMBER <string>] [EMAIL <string>] [X400 <string>] <hu relationships>
::= [<roles description list>]
[<organisational units description list>]
<ro attributes> ::= [FUNCTION <function>]
[COORDINATOR <coordinator>] // người phối hợp
<function> ::= <string> // mô tả nhiệm vụ hoặc thẩm quyền <coordinator> ::= <participant id>
// môt người hoặc một đơn vị tổ chức
<ro relationships> ::= [<person description list>]
Các danh sách liên kết đến kiểu thành phần tham gia (các phần tử sinh kết thúc với “relationships>”) cho phép xác định ngữ cảnh của một (kiểu) thực thể tổ chức như
là con người, vai trò, đơn vị tổ chức, … Một ký hiệu đơn giản hơn để mô tả các danh sách đó là
<Prelationship list> ::= <Prelation key>
<Prelation description list>
<Prelation description list>
::= <Prelation description>
[<Prelation description list>]
// tất cả các quan hệ cùng loại
<Prelation key> ::= PERSONDESCR | SUPERIOR | ORGUNITDESCR
| ROLEDESCR | ALTERNATE
<Prelation description>::= <participant id>
<person description list> ::= <PRelationship list>
// dùng cho một người
<superior description list> ::= <Prelationship list>
// dùng cho một cấp trên