Các thành phần chính (như gói, ứng dụng…) trong ngôn ngữ XPDL sử dụng những thành phần chung sau:
• Thuộc tính mở rộng • Tham số hình thức • Tham chiếu bên ngoài
3.1.1.10. Các thuộc tính mở rộng
Các thuộc tính mở rộng có thể được sử dụng trong tất cả các thực thể của định nghĩa tiến trình. Chúng cho phép các nhà cung cấp cấp có thể mở rộng chức năng của đặc tả này để tương thích với các sản phẩm riêng biệt khác. Một nhà cung cấp có thể thêm nội dụng vào phần thuộc tính mở rộng
<xsd:element name="ExtendedAttribute"> <xsd:complexType mixed="true">
<xsd:choice minOccurs="0" maxOccurs="unbounded"> <xsd:any processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
<xsd:attribute name="Name" type="xsd:NMTOKEN" use="required"/>
<xsd:attribute name="Value" type="xsd:string"/> </xsd:complexType>
</xsd:element>
Thuộc tính Mô tả
Name Tên để xác định thuộc tính mở rộng Value Giá trị yêu cầu cho mỗi sản phẩm cụ thể.
Bảng 3-3 Thuộc tính mở rộng – Các thuộc tính
3.1.1.11. Các tham số hình thức
Các tham số hình thức có thể được sử dụng như các thuộc tính trong tiến trình workkflow và trong các ứng dụng Workflow. Chúng được truyền trong quá trình điều khiển việc triệu gọi và trả về (ví dụ như một ứng dụng được triệu gọi). Chúng đóng vai trò như là các tham số triệu gọi:
<xsd:element name="FormalParameter"> <xsd:complexType> <xsd:sequence> <xsd:element ref=“xpdl:DataType"/> <xsd:element ref=“xpdl:Description" minOccurs="0"/> </xsd:sequence>
<xsd:attribute name="Id" type="xsd:NMTOKEN" use="required"/>
<xsd:attribute name="Index" type="xsd:NMTOKEN"/> <xsd:attribute name="Mode" default="IN">
<xsd:simpleType>
<xsd:enumeration value="IN"/> <xsd:enumeration value="OUT"/> <xsd:enumeration value="INOUT"/> </xsd:restriction> </xsd:simpleType> </xsd:attribute> </xsd:complexType> </xsd:element> Thuộc tính Mô tả
Data type Kiểu dữ liệu của tham số hình thức. Description Mô tả của tham số hình thức. Id Định danh cho tham số hình thức.
Index Chỉ số của tham số.
Mode IN Các tham số đầu vào.
OUT Các tham số đầu ra.
INOUT Các tham số được sử dụng cho cả đầu vào và đầu ra.
Bảng 3-4 Các tham số hình thức – Các thuộc tính
Các ngữ nghĩa của truyền tham số
Các ngữ nghĩa của việc truyền tham số được định nghĩa như sau:
(a) Mọi tham số hình thức chỉ đọc( IN) được khởi tạo bởi giá trị tương ứng với tham số thực trong lời gọi. Đây là ngữ nghĩa pass- by-value.
(b) Mọi tham số hình thức đọc/nghi (INOUT) được khởi tạo bởi giá trị tương ứng với tham số thực, là giá trị phải là định danh của một thực thể dữ liệu liên quan Workflow. Sau khi tiến trình hoàn thành, giá trị của tham số hình thức ra (OUT) được copy ngược trở lại tham số thực ban đầu ( là giá trị định danh của một thực thể dữ liệu liên quan Workflow). Đây là ngữ nghĩa copy- khôi phục lại.
(c) Mọi tham số chỉ nghi(OUT) được khởi tạo là 0 (nếu là kiểu String sẽ được thiết lập chuỗi rỗng, nếu là kiểu dữ liệu phức tạp gồm nhiều phần tử thì mổi phần tử sẽ được thiết lập là 0). Sau khi tiến trình hoàn thành, giá trị của tham sổ
hình thức ra (OUT) sẽ được copy trở lại tham số thực ban đầu (là giá trị định danh của một thực thể dữ liệu liên quan Workflow). Đây là ngữ nghĩa zero-khôi phục lại.
Các ngữ nghĩa đồng thời.
Sự copy và khôi phục lại của các tham số được xem như là các toán tử nguyên tử. Đế tránh sự xung đột truy nhập từ các toán tử đồng thời trên dữ liệu liên quan Workflow trong một bản sao tiến trình, các toán tử đó sẽ được thực hiện tuần tự.
Ánh xạ tham số thực-hình thức
Việc ánh xạ các tham số thực sang các tham số hình thức trong quá trình triệu gọi được định nghĩa bởi một danh sách ánh xạ tham số. Các tham số thực sẽ được ánh xạ 1:1 sang các tham số hình thức theo một trình tự. Điều này có nghĩa là tham số thực đầu tiên tương ứng với tham số hình thức đầu tiên, tham số thực thứ hai tương ứng với tham số hình thức thứ hai. Sự tương thích về kiểu tham số được yêu cầu trong các định nghĩa và có thể bị bắt buộc trong thời điểm thực hiện.
Trong trường hợp các tham số thực là một biểu thức, biểu thức đó phải được gán giá trị và làm đệm bởi Workflow engine, và nội dung của bộ đệm được sử dụng cho việc ánh xạ tham số thực sang tham số hình thức.
3.1.1.12. Tham chiếu bên ngoài
Tham chiếu bên ngoài là một sự tham chiếu đến một định nghĩa thực thể bên ngoài. Nó có thể được sử dụng trong các thành phần: kiểu dữ liệu, thành phần tham gia, và ứng dụng.
<xsd:element name="ExternalReference"> <xsd:complexType>
<xsd:attribute name="xref" type="xsd:NMTOKEN" use="optional"/>
<xsd:attribute name="location" type="xsd:anyURI" use="required"/>
<xsd:attribute name="namespace" type="xsd:anyURI" use="optional"/>
</xsd:element>
Thuộc tính Mô tả
Location Dùng để xác định URI của tài liệu định nghĩa kiểu cần tham chiếu.
Namespace Phạm vi của thực thể.
Xref Xác định định danh thực thể trong tài liệu bên ngoài. Bảng 3-5 Tham chiếu bên ngoài- Các thuộc tính
Ví dụ 1: Một tham số hình thức được định nghĩa bởi một lược đồ XML.
<FormalParameter Id="PO"> <DataType>
<ExternalReference
location="http://abc.com/schemas/po.xsd"/> </DataType>
<Description>PO specification for abc.com</Description> </FormalParameter>
Ví dụ 2: Một trường dữ liệu được định nghĩa bởi một lớp java: <DataField Id="PO" Name="PurchaseOrder" IsArray="FALSE">
<DataType>
<ExternalReference location="com.abc.purchases.PO"/> </DataType>
<Description>PO specification for abc.com</Description> </DataField>
Các dịch vụ Web( WEB services)
Một hành vi trong một tiến trình có thể triệu gọi một dịch vụ web. Thành phần tham chiếu mở rộng có thể được sử dụng như một sự tham chiếu đến các ứng dụng và các kiểu dữ liệu, là những thành phần được định nghĩa trong các tài liệu Web service
Ví dụ 3: Một trường dữ liệu có các kiểu dữ liệu được định nghĩa trong một các tài liệu dịch vụ web(WSDL).
<DataField Id="abcPO" Name=”abcPurchaseOrder” IsArray=”False”> <DataType> <ExternalReference xref="PO" location="http://abc.com/services/poService.wsdl" namespace="poService/definitions/types"/> </DataType> </DataField>
Ví dụ 4: Một ứng dụng được định nghĩa như một thao tác trong tài liệu WSDL: <Application Id="placeOrder"> <ExternalReference location="http://abc.com/PO/services/poService.wsdl" xref="PlaceOrder" namespace="http://abc.com/services/poService.wsdl/definitions/portT ype"/> </Application> 1.2.2. Định nghĩa gói
Có thể định nghĩa nhiều tiến trình khác nhau trong một gói, nơi có thể chia sẻ công cụ và các thành phần tham gia. Ta có thể định nghĩa các thành phần chung của tiến trình khác nhau trong một gói. (Ví dụ một danh sách thành phần tham gia hoặc một danh sách các ứng dụng).
<xsd:element name="Package"> <xsd:complexType>
<xsd:sequence>
<xsd:element ref=“xpdl:PackageHeader"/>
<xsd:element ref=“xpdl:RedefinableHeader" minOccurs="0"/> <xsd:element ref=“xpdl:ConformanceClass" minOccurs="0"/>
<xsd:element ref="xpdl:Script" minOccurs="0"/>
<xsd:element ref=“xpdl:ExternalPackages" minOccurs="0"/> <xsd:element ref=“xpdl:TypeDeclarations" minOccurs="0"/> <xsd:element ref=“xpdl:Participants" minOccurs="0"/> <xsd:element ref=“xpdl:Applications" minOccurs="0"/> <xsd:element ref=“xpdl:DataFields" minOccurs="0"/>
<xsd:element ref=“xpdl:WorkflowProcesses" 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>
Thuộc tính Mô tả
Applications Một danh sách các miêu tả ứng dụng Workflow. Conformance
Class
Sự hạn chế về mặt cấu trúc trên định nghĩa tiến trình trong gói này.
Data Fields Danh sách các dữ liệu liên quan đến Worklow định nghĩa trong gói này.
Extended Attributes
Danh sách các định nghĩa mở rộng của nhà cung cấp có thể thêm vào gói.
External Packages
Tham chiếu tới định nghĩa gói được định nghĩa trong một tài liệu khác.
Id Định danh duy nhất của gói.
Name Tên của gói.
Package Header Một tập các thành phần mô tả đặc điểm gói.
Participants Danh sách các thành phần tham gia sử dụng trong quá trình thực thi các tiến trình được định nghĩa trong gói.
Redefinable Header
Một tập các thành phần và thuộc tính được sử dụng bởi cả gói và tiến trình.
Script Nhận dạng ngôn ngữ kịch bản sử dụng trong biểu thức Type
Declarations
Workflow Processes
Danh sách các tiến trình Workflow có trong gói này. Bảng 3-6 Định nghĩa gói—Các thuộc tính
3.1.1.13. Tiêu đề định nghĩa gói
Tiêu đề định nghĩa gói giữ tất cả thông tin chung của một gói, như phiên bản XPDL, nhà cung cấp … <xsd:element name="PackageHeader"> <xsd:complexType> <xsd:sequence> <xsd:element ref=“xpdl:XPDLVersion"/> <xsd:element ref=“xpdl:Vendor"/> <xsd:element ref=“xpdl:Created"/>
<xsd:element ref=“xpdl:Description" minOccurs="0"/> <xsd:element ref=“xpdl:Documentation" minOccurs="0"/> <xsd:element ref=“xpdl:PriorityUnit" minOccurs="0"/> <xsd:element ref=“xpdl:CostUnit" minOccurs="0"/> </xsd:sequence>
</xsd:complexType> </xsd:element>
<xsd:element name="XPDLVersion" type="xsd:string"/> <xsd:element name="Vendor" type="xsd:string"/> <xsd:element name="Created" type="xsd:string"/> <xsd:element name="Description" type="xsd:string"/> <xsd:element name="Documentation" type="xsd:string"/>
<xsd:element name="PriorityUnit" type="xsd:string"/> <xsd:element name="CostUnit" type="xsd:string"/>
Thuộc tính Mô tả
Cost unit Đơn vị sử dụng trong dữ liệu mô phỏng ( Thường nhấn mạnh trong khái niệm tiền tệ).
Created Thời gian tạo của định nghĩa gói.
Description Phần mô tả của gói.
Documentation Đường dẫn cụ thể của tên file trợ giúp hoặc file mô tả.
Priority Unit Một chuỗi văn bản với các ngữ nghĩa được định nghĩa bởi người sử dụng.
Vendor Định nghĩa nguồn gốc của định nghĩa mô hình này và tên của nhà cung cấp, tên sản phẩm của nhà cung cấp.
XPDL Version Phiên bản của đặc tả này.
Bảng 3-7 Tiêu đề định nghĩa gói -Các thuộc tính
3.1.1.14. Tiêu đề có thể định nghĩa lại
Tiêu đề có thể định nghĩa lại bao gồm các thuộc tính có thể định nghĩa trong tiêu đề định nghĩa Workflow và có thể định nghĩa lại trong tiêu đề của bất kì định nghĩa tiến trình nào. Trong trường hợp định nghĩa lại, các quy tắc về phạm vi phải được tuân thủ:
<xsd:element name="RedefinableHeader"> <xsd:complexType>
<xsd:sequence>
<xsd:element ref=“xpdl:Author" minOccurs="0"/> <xsd:element ref=“xpdl:Version" minOccurs="0"/> <xsd:element ref=“xpdl:Codepage" minOccurs="0"/> <xsd:element ref=“xpdl:Countrykey" minOccurs="0"/> <xsd:element ref=“xpdl:Responsibles" minOccurs="0"/>
</xsd:sequence> <xsd:attribute name="PublicationStatus"> <xsd:simpleType> <xsd:restriction base="xsd:NMTOKEN"> <xsd:enumeration value="UNDER_REVISION"/> <xsd:enumeration value="RELEASED"/> <xsd:enumeration value="UNDER_TEST"/> </xsd:restriction> </xsd:simpleType> </xsd:attribute> </xsd:complexType </xsd:element>
<xsd:element name="Author" type="xsd:string"/> <xsd:element name="Version" type="xsd:string"/> <xsd:element name="Codepage" type="xsd:string"/> <xsd:element name="Countrykey" type="xsd:string"/> <xsd:element name="Responsible" type="xsd:string"/> <xsd:element name="Responsibles">
<xsd:complexType> <xsd:sequence>
<xsd:element ref=“xpdl:Responsible" minOccurs="0" maxOccurs="unbounded"/> </xsd:sequence>
</xsd:complexType> </xsd:element>
Thuộc tính Mô tả
Author Tên tác giả định nghĩa gói.
Code page Phần mã trang dùng cho viết văn bản.
Country key Mã quốc gia dựa trên ISO 3166. Nó có thể là mã quốc gia 3 kí tự số, hoặc 2 kí tự alpha.
Publication Status Tình trạng của định nghĩa tiến trình Workflow. UNDER_REVISION
RELEASED UNDER_TEST
Responsible(s) Thành phần tham gia Workflow có thể là người chịu trách nhiệm cho tiến trình Workflow này hoặc người giám sát trong suốt thời gian thực thi.
Version Phiên bản của định nghĩa gói này.
Bảng 3-8 Tiêu đề có thể định nghĩa lại- Các thuộc tính
3.1.1.15. Khai báo lớp thích nghi
Khai báo lớp thích nghi cho phép mô tả lớp thích nghi để các định nghĩa trong định nghĩa mô hình này được giới hạn. Lớp xác định này được áp dụng đối với tất cả các định nghĩa tiến trình chứa nó, trừ phi nó được định nghĩa lại một cách cục bộ tại mức định nghĩa tiến trình.
<xsd:element name="ConformanceClass"> <xsd:complexType> <xsd:attribute name="GraphConformance"> <xsd:simpleType> <xsd:restriction base="xsd:NMTOKEN"> <xsd:enumeration value="FULL_BLOCKED"/> <xsd:enumeration value="LOOP_BLOCKED"/> <xsd:enumeration value="NON_BLOCKED"/>
</xsd:restriction> </xsd:simpleType> </xsd:attribute> </xsd:complexType> </xsd:element>
Thuộc tính Mô tả Conformance
Class
FULL-BLOCKED cấu trúc mạng bị giới cho SPLIT/JOIN lồng nhau và các vòng lặp thích hợp.
LOOP-BLOCKED cấu trúc mạng bị giới hạn cho vòng lặp thích hợp.
NON-BLOCKED không có sự giới hạn trong cấu trúc mạng.Trường hơp này là mặc định
Bảng 3-9 Mô tả lớp thích nghi – Các thuộc tính
3.1.1.16. Kịch bản
Thành phần kịch bản (script) chỉ định ngôn ngữ kịch bản sử dụng trong XPDL. Một đoạn văn bản có thể sử dụng bất cứ đâu có một thành phần là kiểu “xsd:string”. Ví dụ việc sử dụng một biểu thức trong phạm vi của tham biến thực sự hoặc các thành phần giá trị. Một biểu thức bao gồm định dạng XML (vd:MathXML) có thể sử dụng trong phạm vi các thành phần Xpression (sử dụng trong một điều kiện chuyển tiếp).
<xsd:element name="Script"> <xsd:complexType>
<xsd:attribute name="Type" type="xsd:string" use="required"/> <xsd:attribute name="Version" type="xsd:string" use="optional"/> <xsd:attribute name="Grammar" type="xsd:anyURI"
use="optional"/> </xsd:complexType>
</xsd:element>
Thuộc tính Mô tả
Type Chỉ định ngôn ngữ kịch bản được sử dụng trong biểu thức. Một số ngôn ngữ kịch bản đó là: text/javascript, text/vbscript, text/tcl, text/ecmascript, text/xml.
Version Phiên bản của ngôn ngữ kịch bản
Grammar Đây là một tham chiếu đến một tài liệu và tài liệu đó sẽ định rõ ngữ pháp của ngôn ngữ. Nó có thể là một lược XML, một DTD.
Bảng 3-10 Kịch bản- Các thuộc tính
3.1.1.17. Tham chiếu gói mở rộng
Tham chiếu gói mở rộng cho phép tham chiếu tới các định nghĩa trong định nghĩa của gói khác hoặc trong các hệ thống khác mà chúng cung cấp một giao diện cho hệ thống quản lý Workflow.
<xsd:element name="ExternalPackage"> <xsd:complexType>
<xsd:sequence>
<xsd:element ref=“xpdl:ExtendedAttributes" minOccurs="0"/> </xsd:sequence>
<xsd:attribute name="href" type="xsd:string"/> </xsd:complexType>
</xsd:element>
Extended Attributes
Phần mở rộng do nhà cung cấp thêm vào.
HREF Một định danh mô hình. Tham chiếu logic tới một mô hình. Bảng 3-11 Tham chiếu gói mở rộng—Các thuộc tính
1.2.3. Khai báo ứng dụng Workflow
Khai báo ứng dụng Workflow là một danh sách tất cả các ứng dụng hoặc công cụ được yêu cầu và được triệu gọi bởi các tiến trình Workflow. Các công cụ có thể được định nghĩa. Điều này có nghĩa là định nghĩa thực sự của các công cụ đó là không cần thiết và chúng có thể được xử lý bởi một bộ quản lý đối tượng. Lý do cho cách tiếp cận này là sự xử lý trên các môi trường đa nền, nơi mỗi chương trình khác nhau phải được triệu gọi trên mỗi nền khác nhau. Sau đây là cú pháp XPDL để khai báo ứng dụng Workflow:
<xsd:element name="Application"> <xsd:complexType> <xsd:sequence> <xsd:element ref=“xpdl:Description" minOccurs="0"/> <xsd:choice> <xsd:element ref=“xpdl:FormalParameters"/> <xsd:element ref=“xpdl:ExternalReference" minOccurs="0"/> </xsd:choice> <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> Thuộc tính Mô tả Description Mô tả về ứng dụng. Extended Attributes
Phần mở rộng do nhà cung cấp thêm vào. External
Reference
Tham chiếu đến đặc tả bên ngoài
Formal Parameters Danh sách các tham biến sẽ được trao đổi theo ứng dụng thông qua giao diện triệu gọi ứng dụng.
Id Được sử dụng để xác định định nghĩa ứng dụng Workflow. Name Tên của ứng dụng Workflow.
Bảng 3-12 Khai báo ứng dụng Workflow – Các thuộc tính
Các tham biến triệu gọi
Một khai báo ứng dụng Workflow có thể có nhiều định nghĩa tham biến cho các tham biến triệu gọi và cũng có thể sử dụng những tham biến này trong các thực thể khác.
1.2.4. Định nghĩa tiến trình Workflow
Định nghĩa tiến trình Workflow định nghĩa các thành phần cấu tạo nên một Workflow. Nó chứa những định nghĩa hoặc các khai báo cho các thực thể: hành vi, chuyển tiếp, ứng dụng, và các thực thể dữ liệu có liên quan đến tiến trình. Các thuộc tính có thể được định rõ cho dữ liệu liên quan đến việc giám sát như : tác giả, phiên bản; cho dữ liệu liên quan đến thời gian thực thi như : độ ưu tiên (priority), cho BPR và cho dữ liệu liên quan đến mô phỏng. Một tiến trình có thể chạy như một cài đặt của một hành vi có kiểu là luồng con (subflow). Trong trường hợp này các tham số có thể được định nghĩa như là các thuộc tính của tiến trình.
Phạm vi của tên và định danh của định nghĩa tiến trình là bao phủ gói. Tức là trong một gói thì tên và định danh của định nghĩa tiến trình là đơn nhất
<xsd:element name="WorkflowProcess"> <xsd:complexType>
<xsd:sequence>
<xsd:element ref=“xpdl:ProcessHeader"/>
<xsd:element ref=“xpdl:RedefinableHeader" minOccurs="0"/> <xsd:element ref=“xpdl:FormalParameters" minOccurs="0"/> <xsd:group ref="xpdl:DataTypes"/>
<xsd:element ref=“xpdl:DataFields" minOccurs="0"/> <xsd:element ref=“xpdl:Participants" minOccurs="0"/> <xsd:element ref=“xpdl:Applications" minOccurs="0"/> <xsd:element ref="xpdl:ActivitySets" minOccurs="0"/> <xsd:element ref=“xpdl:Activities" minOccurs="0"/> <xsd:element ref=“xpdl:Transitions" 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:attribute name="AccessLevel"> <xsd:simpleType> <xsd:restriction base="xsd:NMTOKEN"> <xsd:enumeration value="PUBLIC"/> <xsd:enumeration value="PRIVATE"/> </xsd:restriction>
</xsd:simpleType> </xsd:attribute> </xsd:complexType> </xsd:element>
Thuộc tính Mô tả
AccessLevel Mức truy nhập của tiến trình có thể là Public hoặc private. Nếu là Public thì tiến trình có thể được triệu gọi từ một hệ thống bên ngoài hoặc ứng dụng. Nếu là Private thì tiến trình chỉ được triệu gọi từ một tiến trình con bên trong nó
Activities Một danh sách các hành vi bao gồm cả tiến trình. ActivitySets Một danh sách các tập hành vi và chuyển tiếp.
Applications Một danh sách các ứng dụng worklow sẽ được sử dụng trong quá trình thực thi.
Data Fields Một danh sách các dữ liệu liên quan đến Workflow được định nghĩa cho tiến trình.
Extended Attributes
Phần thuộc tính mở rộng do nhà cung cấp thêm vào. Formal
Parameters
Một danh sách các tham biến có thể chuyển qua tiến trình. Id Định danh của tiến trình Workflow.
Name Tên của tiến trình Workflow.
Participants Một danh sách các thành phần tham gia.
Process Header Một danh sách các yếu tố để nhận biết đặc điểm của tiến