Tải bản đầy đủ
CHƯƠNG 1. TỔNG QUAN VỀ WORKFLOW VÀ WINDOWS WORKFLOW FOUNDATION

CHƯƠNG 1. TỔNG QUAN VỀ WORKFLOW VÀ WINDOWS WORKFLOW FOUNDATION

Tải bản đầy đủ

Hệ thống quản lý Workflow cung cấp sự tự động hóa mang tính thủ tục của
một tiến trình nghiệp vụ bằng cách quản lý chuỗi các hoạt động và lời triệu gọi
những những người tương ứng và/hoặc những tài nguyên IT liên quan tới những
bước hoạt động khác nhau.
Hình 1.1. mô tả các đặc trưng cơ bản của các hệ thống WFM và các mối quan
hệ giữa các chức năng chính:

Hình 1.1: Các đặc trưng của hệ thống Workflow

1.1.3. Mô hình tham chiếu workflow
a. Tổng quan
Mô hình tham chiếu được khai thác từ cấu trúc chung của ứng dụng Workflow
bằng cách phân biệt các giao diện trong cấu trúc này. Cấu trúc đó cho phép các sản
phẩm có thể vận hành lẫn nhau tại nhiều mức khác nhau, các sản phẩm khác nhau

12

thể hiện các mức khả năng khác nhau bên trong mỗi thành phần trong những thành
phần chung này.
b.Mô hình tham chiếu workflow

Hình 1.2: Mô hình tham chiếu Workflow - Các thành phần và các giao diện
Giao diện xung quanh dịch vụ sắc lệnh Workflow được chỉ rõ là WAPI Workflow APIs và các định dạng trao đổi và được xem như tập hợp các cấu trúc về
các dịch vụ của hệ thống Workflow được cho phép truy cập và điều chỉnh các giao
tác giữa các phần mềm điều khiển Workflow và các thành phần hệ thống khác.

1.1.4. Dịch vụ sắc lệnh workflow
a. Dịch vụ Sắc lệnh là gì?
Định nghĩa Dịch vụ sắc lệnh Workflow - Workflow Enactment Service
Là phần mềm dịch vụ bao gồm một hay nhiều Workflow Engine để tạo ra,
quản lý và thực thi Workflow. Các ứng dụng có thể giao tiếp với các dịch vụ này
thông qua giao diện lập trình ứng dụng Workflow - Định nghĩa theo WfMC.
Sự tương tác với nguồn tài nguyên bên ngoài có thể sử dụng được bởi dịch vụ
enactment nào đó thông qua một trong hai giao diện sau:

13

 Giao diện ứng dụng phía khách: Thông qua giao diện này, Workflow
Engine tương tác với một bộ quản lý danh sách công việc (worklist handler), có
trách nhiệm tổ chức công việc với tư cách là tài nguyên người dùng. Worklist
handler có trách nhiệm lựa chọn và thực hiện worklist item từ worklist. Sự kích hoạt
các công cụ ứng dụng được kiểm soát bởi worklist handler hoặc người dùng cuối.
 Giao diện triệu gọi ứng dụng: Giao diện này cho phép Workflow
Engine kích hoạt trực tiếp một công cụ nào đó để đảm nhận một họat động cụ thể.
Đây là điển hình của ứng dụng dựa trên máy chủ mà không có giao diện người
dùng. Tại đây một hoạt động cụ thể sử dụng một công cụ cần có sự tương tác của
người dùng cuối, thông thường sẽ được triệu gọi thông qua giao diện worklist để
cung cấp tính mềm dẻo nhiều hơn cho nhiệm vụ lập lịch cho người dùng. Bằng việc
sử dụng một giao diện chuẩn cho sự triệu gọi công cụ, các công cụ ứng dụng trong
tương lai có thể thực hiện Workflow theo cách chuẩn hóa.
b. Workflow Engine
Định nghĩa Workflow Engine:
Là một phần mềm dịch vụ hay "Engine" cung cấp môi trường tại thời điểm
thực thi cho một Workflow - Định nghĩa theo WfMC.
Một Workflow Engine có thể điều khiển sự thực thi của một tập các tiến trình,
hay một tập các tiến trình con, các thể hiện của tiến trình với một phạm vi xác định.
Phạm vi đó được quyết định bởi phạm vi của các loại đối tượng, và các thuộc tính
của chúng. Workflow Engine có thể thông dịch các loại đối tượng và các thuộc tính
đó bên trong các định nghĩa tiến trình.
c. Dịch vụ sắc lệnh Workflow đồng nhất và không đồng nhất
Một dịch vụ sắc lệnh Workflow đồng nhất bao gồm một hoặc nhiều Workflow
Engine tương thích cung cấp môi trường thực thi thời gian chạy cho các tiến trình
Workflow với một tập định trước các thuộc tính định nghĩa tiến trình.

14

Tiến trình và hoạt động chuyển trạng thái:
Dịch vụ sắc lệnh Workflow có thể được xem xét như một máy chuyển trạng
thái. Nơi các tiến trình riêng lẻ hay các hoạt động thay đổi trạng thái trong sự phản
ứng với các tình huống bên hay để đưa ra quyết định điều khiển cụ thể bởi một
Workflow.
Một ví dụ minh họa cơ bản cho biểu đồ chuyển đổi trạng thái của tiến trình
được chỉ ra dưới đây:

Hình 1.3: Ví dụ về các chuyển tiếp trạng thái cho các thể hiện một tiến trình
Xét một ví dụ đơn giản minh họa trạng thái cơ bản và sự chuyển đổi cho một
hoạt động như sau:

Hình 1.4: Ví dụ về chuyển trạng thái cho các thể hiện hoạt động

15

d. Dữ liệu điều khiển Workflow, dữ liệu liên quan Workflow và dữ liệu ứng dụng
Workflow
Định nghĩa "Dữ liệu điều khiển Workflow"
Là dữ liệu bên trong được quản lý bởi hệ thống quản lý Workflow và/hoặc
Workflow Engine - Định nghĩa theo WfMC.
Dữ liệu liên quan đến Workflow được dùng bởi một hệ thống quản lý
Workflow để xác định các điều kiện chuyển đổi đặc biệt và có thể tác động đến sự
lựa chọn các hành động tiếp theo được thực thi. Dữ liệu như vậy có khả năng sử
dụng trong các ứng dụng Workflow để ứng dụng đó hoạt động trên dữ liệu đó và do
vậy cần phải được truyền giữa các hoạt động bởi phần mềm Workflow enactment.
Định nghĩa Dữ liệu liên quan đến Workflow
Là dữ liệu được dùng bởi hệ thống quản lý Workflow để xác định trạng thái
chuyển đổi của một tiến trình Workflow - Định nghĩa theo WfMC.
Sự trao đổi của dữ liệu ứng dụng có thể được yêu cầu trong mỗi hoạt động của
một định nghĩa tiến trình, ví dụ bằng một công cụ hay ứng dụng đặc biệt, hoặc được
điều khiển trực tiếp từ ứng dụng hoặc trong mối liên kết với một vài khuôn dạng của
tương tác người dùng.
Định nghĩa Dữ liệu ứng dụng Workflow
Là dữ liệu chỉ dành cho một ứng dụng xác định và không thể truy nhập bởi hệ
thống quản lý Workflow - Định nghĩa theo WfMC.
Dữ liệu ứng dụng Workflow không được sử dụng bởi phần mềm sắc lệnh
Workflow và chỉ có liên hệ tới các ứng dụng hoặc nhiệm vụ của người dùng thực thi
trong Workflow. Như với dữ liệu có liên quan với Workflow, nó có thể cần được
trao đổi giữa các Workflow Engine trong dịch vụ enactment không đồng nhất để tạo
sự sẵn có cho các hoạt động phù hợp thực thi trên các Engine riêng lẻ.

16

e. Sự trao đổi dữ liệu
Khi có một yêu cầu cung cấp sự chuyển đổi khuôn dạng dữ liệu giữa các hoạt
động, mô hình xác định ứng dụng đặc biệt có thể định nghĩa, như thuộc tính, loại dữ
liệu (hay nhiều loại) với sự kết hợp của chúng (thông tin thuộc tính này có thể được
lưu trữ cục bộ cho môi trường phần mềm đặc biệt hay tổng thể để cho toàn bộ dịch
vụ Workflow). Điều này cho phép các hệ thống được cấu trúc nhằm mục đích sử
dụng các ứng dụng Workflow không đồng nhất để cung cấp sự chuyển đổi dữ liệu
(nếu cần) trên nền tảng của các loại thuộc tính được định nghĩa cho riêng từng ứng
dụng.

 Các ứng dụng khách (Client Applications): Dữ liệu có liên quan tới
Workflow có thể được đưa vào trong mục công việc và trích ra từ danh sách công
việc cho việc biểu diễn để người dùng hợac cho sự liên kết tới một công cụ ứng
dụng riêng biệt.

 Các ứng dụng được triệu gọi (Invoked Applications): Sự trao đổi dữ liệu
sẽ phụ thuộc vào bản chất của giao diện ứng dụng được triệu gọi và có thể yêu cầu
dịch vụ dẫn xuất để gắn dữ liệu vào một giao thức ứng dụng cụ thể. APIs cho việc
đọc/viết dữ liệu liên quan đến Workflow là khả thi cho các ứng dụng Workflow
được phép.

 Khả năng tương tác của Workflow Engine: Sự xem xét tương tự như giao
diện ứng dụng khách, mặc dù ở cá hệ thống khác nhau hỗ trợ các cách tiếp cận trao
đổi dữ liệu ứng dụng khác nhau, việc sử dụng một chức năng cổng sẽ là cần thiết để
ánh xạ giữa hai biểu đồ và có thể xử lý sự chuyển đổi tên.

17

Hình 1.5 Giao diện ứng dụng khách

Hình 1.6: Mô hình đồng bộ hóa song song
Do vậy, những cặp công việc phù hợp có thể được đồng bộ hóa tại các điểm
đặc biệt trong mỗi tiến trình. Điều này yêu cầu một cơ chế phối hợp và theo dõi,
thêm vào đó cả 2 dịch vụ có thể thấy được các nhiệm vụ từ 2 định nghĩa tiến
trình.1.4.7.6. Các chức năng tác động lẫn nhau WAPI (Giao diện 4)

18

Hình 1.7: Giao diện tác động lẫn nhau Workflow

1.2. Giới thiệu Windows Workflow Foundation (WWF)
1.2.1. Giới thiệu Windows Workflow Foundation (WWF)
Windows Workflow Foundation (WWF) là thành phần chủ yếu trong .net
framework 3.0, còn được gọi là WinFX. WWF có thể được sử dụng rộng rãi với tất
cả người dùng sử dụng các hệ điều hành Windows (XP, Server 2003, Windows
Vista, …). Một số mục tiêu chủ yếu của WWF là:
 Xây dựng một công cụ nổi bật cho việc ứng dụng công nghệ workflow cho
tất cả các ứng dụng được xây dựng trên nền Windows
 Cho phép ứng dụng workflow một cách bao quát trong nhiều lĩnh vực, hỗ trợ
con người xây dựng các ứng dụng với kiến trúc rõ ràng trong đa số các trường hợp.
 Mang đến một mô hình mới cho những người phát triển workflow, .Net
framework, giúp họ có thể ngay lập tức đưa vào sử dụng, xây dựng các workflow
ứng dụng trong xây dựng sản phẩm.
 Cho phép sử dụng lại những thành phần workflow đã phát triển, đảm bảo các
developer cũng như các doanh nghiệp sản xuất phần mềm có thể nhúng workflow
sâu vào các sản phẩm của họ.
19

Trên đây là những mục tiêu rất táo bạo và Microsofts đang cố gắng đạt được
bằng cách tập trung giải quyết các yêu cầu đề ra đối với workflow nảy sinh trong
nhiều hoàn cảnh. WWF là một công cụ, một framework, nó không phải là một sản
phẩm có đầy đủ các đặc tính để phục vụ cho một hoàn cảnh cụ thể nào đó. Mặc dù
WWF được xây dựng để hỗ trợ xây dựng ứng dụng trong hầu hết mọi trường hợp,
xong lại không hoàn toàn đầy đủ khi sử dụng trong một trường hợp cụ thể nào đó.
WWF mang đến một hướng tiếp cận mới đối với việc sử dụng workflow trong xây
dựng phần mềm với nhiều sự mở rộng. Nói tóm lại, WWF cho phép ứng dụng trong
sản xuất phần mềm trong nhiều hoàn cảnh, lĩnh vực. Nó mang lại một cơ hội mới,
một công cụ mới, tiện dụng, dễ học cho các developer và các doanh nghiệp sản xuất
phần mềm.

1.2.2. Mô hình kiến trúc của Windows workflow
Để có thể hỗ trợ developer trong nhiều tình huống và đạt được các mục tiêu đề ra
như đã nói ở trên, công nghệ workflow phải được xây dựng dưới dạng một
framework hạt nhân mà có thể thêm bớt các interfacecũng như các thành phần mở
rộng tùy theo hoàn cảnh. Dưới đây là mô hình kiến trúc của Windows Workflow
Foundation.

20

Hình 1.8 :Mô hình kiến trúc của Windows Workflow
WWF không có một quá trình thực hiện cố hữu nào. Hơn thế, nó là một công cụ
tiến trình hoạt động bên trong, nghĩa là hoạt động bên trong tiến trình chủ (host
process). Host process có nhiệm vụ cung cấp một tập các service cho WWF. Có thể
thấy được một số lượng rất lớn và đa dạng các host process tham gia hoạt động trên
môi trường Windows, chẳng hạn: console application, winform application, web
application, web service, các ứng dụng dạng dịch vụ trên WinNT, … . Nói ngắn gọn
hơn, mọi tiến trình thực thi trên môi trường Windows đều có thể là host process cho
workflow.
Việc mọi loại process trên Windows đều có thể sử dụng workflow như một
process bên trong dẫn đến một số thách thức rất đáng quan tâm bởi mỗi loại process,
mỗi process có các đặc điểm và thông số khác nhau. Chính vì nguyên nhân này, tầng

21

hosting (hosting layer) cung cấp một tập các interface có thể thêm, bớt từ WWF đến
host process.
Tầng mô hình ( model layer) là tầng mà các developer sẽ tương tác trực tiếp với
WWF và trong một trường hợp cụ thể nào đó. Nó bao gồm các workflow model,
programming API, các activity. Sau đây chúng ta sẽ nói chi tiết hơn về các tầng
hosting, runtime, model.
a. Hosting layer
Đây cũng là nơi mà các developer thực hiện việc triển khai các service chủ chốt
của workflow: communication, persistence, tracking, timer, threading, transaction.
Việc triển khai thực hiện 3 service đầu tiên gắn với WWF là có tính bền lâu, trong
khi đó 2 service sau có tính trạng thái, tạm thời.
• Persistence: mặc dù một số workflow chạy trong một thời gian ngắn, thuộc
tính không đồng bộ là thuộc tính cố hữu của workflow, một số workflow có thể phải
chạy trong một khoảng thời gian rất dài, vài giờ, vài ngày, thậm chí vài tháng hoặc
hơn thế nữa. Một công cụ của workflow giúp lưu giữ các state của nó trong bộ nhớ
trong những khoảng thời gian workflow ngừng hoạt động sẽ giúp tiết kiệm bộ nhớ
hơn là việc lưu trữ toàn bộ các workflow instance.
• Timer: workflow thường phải chờ đợi một sự kiện nào đó để có thể tiếp tục
hoạt động. Timer cung cấp một đồng hồ để giúp quản lý những khoảng thời gian trì
hoãn đó. Ví dụ, một workflow chờ đợi sự xác nhận từ một người quản lý có thẩm
quyền, nó phải chờ đến khi người đó đến và hoàn thành công việc phê duyệt. Timer
vẫn hoạt động trong trường hợp hệ thống restart.
• Tracking: một trong những nguyên nhân chủ yếu để sử dụng workflow là
workflow đưa ra một mô hình phần mềm mà có độ trong suốt cao hơn về hệ thống,
các workflow hoạt động một cách độc lập, tự cung, tự cấp. Tracking tự động theo
dõi các sự kiện, lấy nội dung, đưa vào xử lý thông qua các tracking interface.

22