Hành vi của tiến trình Workflow

Một phần của tài liệu Nghiên cứu và thử nghiệm hệ thống workflow (Trang 95 - 111)

Định nghĩa hành vi Workflow được sử dụng để định nghĩa cho mỗi hành vi 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 vi, 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 vi. 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 vi.

Đối với mỗi hành vi 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.

<xsd:element name="Activity"> <xsd:complexType>

<xsd:element ref=“xpdl:Description" minOccurs="0"/> <xsd:element ref=“xpdl:Limit" minOccurs="0"/> <xsd:choice>

<xsd:element ref=“xpdl:Route"/>

<xsd:element ref=“xpdl:Implementation"/> <xsd:element ref="xpdl:BlockActivity"/> </xsd:choice>

<xsd:element ref=“xpdl:Performer" minOccurs="0"/> <xsd:element ref=“xpdl:StartMode" minOccurs="0"/> <xsd:element ref=“xpdl:FinishMode" minOccurs="0"/> <xsd:element ref=“xpdl:Priority" minOccurs="0"/> <xsd:element ref="xpdl:Deadline" minOccurs="0" maxOccurs="unbounded"/>

<xsd:element ref=“xpdl:SimulationInformation" minOccurs="0"/> <xsd:element ref=“xpdl:Icon" minOccurs="0"/>

<xsd:element ref=“xpdl:Documentation" minOccurs="0"/> <xsd:element ref=“xpdl:TransitionRestrictions" minOccurs="0"/> <xsd:element ref=“xpdl:ExtendedAttributes" minOccurs="0"/> </xsd:sequence>

<xsd:attribute name="Id" type="xsd:NMTOKEN" use="required"/> <xsd:attribute name="Name" type="xsd:string"/>

</xsd:complexType> </xsd:element>

<xsd:element name="Performer" type="xsd:string"/> <xsd:element name="Icon" type="xsd:string"/>

Thuộc tính Mô tả

BlockActivity Một hành vi để thực hiện tập hành vi 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 vi.

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

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

Id Định danh của hành vi tiến trình Workflow.

Implementation Bắt buộc cho mọi kiểu hành vi 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).

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 3-17 Hành vi của tiến trình Workflow – Các thuộc tính

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

<xsd: element name=”Route”> <xsd: complexType/> <xsd: elemet>

3.1.1.22. 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 đó.

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

<xsd:element name="StartMode"> <xsd:complexType> <xsd:choice> <xsd:element ref=“xpdl:Automatic"/> <xsd:element ref=“xpdl:Manual"/> </xsd:choice> </xsd:complexType> </xsd:element> <xsd:element name="FinishMode"> <xsd:complexType> <xsd:choice>

<xsd:element ref=“xpdl:Automatic"/> <xsd:element ref=“xpdl:Manual"/> </xsd:choice> </xsd:complexType> </xsd:element> <xsd:element name="Automatic"> <xsd:complexType/> </xsd:element> <xsd:element name="Manual"> <xsd:complexType/> </xsd:element> 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 3-18 Thuộc tính điều khiển thi hành – Các thuộc tính

3.1.1.24. Các lựa chọn cài đặt

<xsd:element name="Implementation"> <xsd:complexType>

<xsd:choice>

<xsd:element ref=“xpdl:No"/>

<xsd:element ref=“xpdl:Tool" maxOccurs="unbounded"/> <xsd:element ref=“xpdl:SubFlow"/>

</xsd:choice> </xsd:complexType> </xsd:element>

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 3-19 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:

<xsd:element name="No"> <xsd:complexType/> </xsd:element>

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

<xsd:element name="Tool"> <xsd:complexType>

<xsd:sequence>

<xsd:element ref=“xpdl:ActualParameters" minOccurs="0"/> <xsd:element ref=“xpdl:Description" minOccurs="0"/> <xsd:element ref=“xpdl:ExtendedAttributes" minOccurs="0"/> </xsd:sequence>

<xsd:attribute name="Id" type="xsd:NMTOKEN" use="required"/> <xsd:attribute name="Type"> <xsd:simpleType> <xsd:restriction base="xsd:NMTOKEN"> <xsd:enumeration value="APPLICATION"/> <xsd:enumeration value="PROCEDURE"/> </xsd:restriction> </xsd:simpleType> </xsd:attribute> </xsd:complexType> </xsd:element> 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.

Type APPLICATION Một công cụ ứng dụng PROCEDURE Một thủ tục

Bảng 3-20 Công cụ - Các thuộc tính

3.1.1.25. 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ủ.

<xsd:element name="SubFlow"> <xsd:complexType>

<xsd:sequence>

<xsd:element ref=“xpdl:ActualParameters" minOccurs="0"/> </xsd:sequence>

<xsd:attribute name="Id" type="xsd:string" use="required"/> <xsd:attribute name="Execution"> <xsd:simpleType> <xsd:restriction base="xsd:NMTOKEN"> <xsd:enumeration value="ASYNCHR"/> <xsd:enumeration value="SYNCHR"/> </xsd:restriction> </xsd:simpleType> </xsd:attribute> </xsd:complexType> </xsd:element>

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 3-21 Luồng con—Các thuộc tính

3.1.1.26. Deadline

<xsd:element name="Deadline"> <xsd:complexType>

<xsd:sequence>

<xsd:element name="DeadlineCondition" minOccurs="1" maxOccurs="1"/> <xsd:element name="ExceptionName" minOccurs="1" maxOccurs="1"/> </xsd:sequence> <xsd:attribute name="Execution"> <xsd:simpleType> <xsd:restriction base="xsd:NMTOKEN"> <xsd:enumeration value="ASYNCHR"/> <xsd:enumeration value="SYNCHR"/> </xsd:restriction> </xsd:simpleType> </xsd:attribute> </xsd:complexType>

</xsd:element>

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 3-22 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 :

<Deadline Execution="ASYNCHR">

<DeadlineCondition>3 days</DeadlineCondition> <ExceptionName>notifyException</ExceptionName>

</Deadline>

<Deadline Execution="SYNCHR">

<DeadlineCondition>5 days</DeadlineCondition> <ExceptionName>timeoutException</ExceptionName> </Deadline>

3.1.1.27. Thông tin mô phỏng

<xsd:element name="SimulationInformation"> <xsd:complexType> <xsd:sequence> <xsd:element ref=“xpdl:Cost"/> <xsd:element ref=“xpdl:TimeEstimation"/> </xsd:sequence> <xsd:attribute name="Instantiation"> <xsd:simpleType> <xsd:restriction base="xsd:NMTOKEN"> <xsd:enumeration value="ONCE"/> <xsd:enumeration value="MULTIPLE"/> </xsd:restriction> </xsd:simpleType> </xsd:attribute> </xsd:complexType> </xsd:element> <xsd:element name="TimeEstimation">

<xsd:complexType> <xsd:sequence> <xsd:element ref=“xpdl:WaitingTime" minOccurs="0"/> <xsd:element ref=“xpdl:WorkingTime" minOccurs="0"/>

<xsd:element ref=“xpdl:Duration" minOccurs="0"/> </xsd:sequence>

</xsd:complexType> </xsd:element>

<xsd:element name="WaitingTime" type="xsd:string"/> <xsd:element name="WorkingTime" type="xsd:string"/> <xsd:element name="Duration" type="xsd:string"/> <xsd:element name="Cost" type="xsd:string"/>

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.

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 3-23 Thông tin mô phỏng – Các thuộc tính

3.1.1.28. Các giới hạn chuyển tiếp

<xsd:element name="TransitionRestriction"> <xsd:complexType>

<xsd:sequence>

<xsd:element ref=“xpdl:Join" minOccurs="0"/> <xsd:element ref=“xpdl:Split" minOccurs="0"/> </xsd:sequence>

</xsd:complexType> </xsd:element>

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 3-24 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 .

<xsd:element name="Join"> <xsd:complexType>

<xsd:simpleType> <xsd:restriction base="xsd:NMTOKEN"> <xsd:enumeration value="AND"/> <xsd:enumeration value="XOR"/> </xsd:restriction> </xsd:simpleType> </xsd:attribute> </xsd:complexType> </xsd:element> 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 3-25 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.

<xsd:element name="Split"> <xsd:complexType>

<xsd:element ref=“xpdl:TransitionRefs" minOccurs="0"/> </xsd:sequence> <xsd:attribute name="Type"> <xsd:simpleType> <xsd:restriction base="xsd:NMTOKEN"> <xsd:enumeration value="AND"/> <xsd:enumeration value="XOR"/> </xsd:restriction> </xsd:simpleType> </xsd:attribute> </xsd:complexType> </xsd:element> <xsd:element name="TransitionRef"> <xsd:complexType>

<xsd:attribute name="Id" type="xsd:NMTOKEN" use="required"/>

</xsd:complexType> </xsd:element>

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.

XOR Các chuyển tiếp đầu ra là không phải đồng thời.

Bảng 3-26 Split – Các thuộc tính

Một phần của tài liệu Nghiên cứu và thử nghiệm hệ thống workflow (Trang 95 - 111)