2.2.1. Dịch vụ Workflow Enactment là gì ?
Dịch vụ Workflow enactment cung cấp môi trường thời gian thực hiện cho các bản sao tiến trình và các hoạt động. Dịch vụ Workflow enactment sử dụng một hoặc nhiều Workflow engine, chịu trách nhiệm thông dịch và kích hoạt một (hay tất cả) các thành phần của định nghĩa tiến trình và tương tác với các tài nguyên bên ngoài cần thiết để xử lý các hành động khác nhau.
Định nghĩa - Dịch vụ Workflow Enactment
Là một phầm mềm dịch vụ có thể bao gồm một hay nhiều Workflow engine để tạo ra, quản lý và khai thác các bản sao 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.
Trong mô hình trên có một sự tách biệt logic giữa tiến trình và logic điều khiển hành động và chính sự tách biệt đó tạo ra dịch vụ Workflow enactment. Còn các công cụ ứng dụng và các tác vụ của người dùng cuối tạo nên việc xử lý gắn kết với mỗi hành động. Sự tách biệt này cung cấp cơ hội để tích hợp chuẩn công nghiệp ở lĩnh vực rộng hoặc các công cụ ứng dụng cụ thể của người dùng vào trong một ứng dụng Workflow cụ thể.
Sự tương tác với nguồn tài nguyên bên ngoài mà dịch vụ enactment cụ thể có thể truy nhập được sẽ xuất hiện qua hai giao diện:
• Giao diện ứng dụng phía khách: thông qua giao diện ứng dụng này Workflow engine tương tác với một bộ quản lý danh sách công việc chịu trách nhiệm tổ chức công việc có yêu cầu tài nguyên người dùng. Trách nhiệm của bộ quản lý danh sách công việc là lựa chọn và thúc đẩy từng khoản mục công việc riêng lẻ từ danh sách công việc. Việc kích hoạt các công cụ ứng dụng được đặt dưới sự kiểm soát của bộ quản lý danh sách công việc hay 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ụ cụ thể để đảm nhận một hành động cụ thể. Thông thường những công cụ này là một ứng dụng dựa trên máy chủ mà không có giao diện người dùng. Ở những nơi mà một hoạt động cụ thể có thể sử dụng công cụ đòi hỏi có sự tương tác với người dùng cuối thì thông thường công cụ đó sẽ được triệu gọi thông qua giao diện danh sách công việc để cung cấp tính mềm dẻo hơn cho việc lập lịch công việc của người dùng. Bằng việc sử dụng một giao diện chuẩn để triệu gọi công cụ, các công cụ ứng dụng trong tương lai có thể là Workflow hợp lệ trong một khuôn khổ được chuẩn hóa.
Dịch vụ Workflow enactment có thể hoặc là tập trung hay phân tán theo chức năng. Trong một dịch vụ Workflow enactment phân tán, có một vài Workflow engine mà mỗi engine giám sát một phần của việc triển khai tiến trình và tương tác với tập người dùng và các công cụ ứng dụng liên quan đến hoạt động bên trong tiến trình mà chúng chịu trách nhiệm. Loại dịch vụ enactment như thế được coi là có tên và phạm vi quản lý chung sao cho các định nghĩa tiến trình và tên người dùng/ứng dụng có thể được xử lý trên một nền tảng thống nhất. Các hệ thống Workflow phân tán sẽ sử dụng các giao thức cụ thể và định dạng trao đổi giữa các Workflow engine để đồng bộ hóa các hoạt động của chúng và trao đổi thông tin điều khiển các tiến trình và các hành vi. Các dữ liệu liên quan đến Workflow có thể cũng được truyền giữa các Workflow engine. Trong một dịch vụ Workflow enactment đơn đồng nhất, các thao tác như vậy sẽ phụ thuộc nhà cung cấp.
Khi các sản phẩm không đồng nhất được sử dụng, việc trao đổi được chuẩn hoá giữa các Workflow engine là cần thiết. Khi dùng giao diện 4, dịch vụ enactment có thể truyền các hành vi hay các tiến trình con tới dịch vụ enactment ( không đồng nhất) khác để khai thác. Trong mô hình Workflow tham chiếu, việc trao đổi đó được gọi là Workflow Engine Interchange. Việc quản lý chung và chức năng giám sát cũng được yêu cầu trong môi trường Workflow không thuần nhất.
2.2.2. Workflow Engine
Một Workflow engine đảm bảo một phần hoặc toàn bộ môi trường giám sát thời gian thực hiện trong một dịch vụ enactment.
Định nghĩa Workflow engine
Một dịch vụ phần mềm hay “engine” cung cấp môi trường khai thác thời điểm thực hiện cho một bản sao Workflow.
Thông thường các phần mềm như vậy cung cấp các tiện ích để xử lý: • Thông dịch định nghĩa tiến trình.
• Giám sát các bản sao tiến trình: Khởi tạo, kích hoạt, tạm dừng, kết thúc, … • Điều hướng giữa các hoạt động của tiến trình bao gồm các thao tác tuần tự
hay song song, lập lịch biểu, giải nghĩa các dữ liệu liên quan đến Workflow, …
• Đăng nhập và kết thúc phiên làm việc của người tham gia.
• Xác định các khoản mục công việc mà người dùng cần thực hiện và giao diện hỗ trợ tương tác với người dùng.
• Cập nhật dữ liệu điều khiển Workflow và dữ liệu liên quan Workflow, truyền dữ liệu liên quan đến Workflow từ ứng dụng này tới ứng dụng khác hay tới người dùng.
• Một giao diện để triệu gọi các ứng dụng bên ngoài và kết nối với bất kỳ dữ liệu liên quan đến Workflow nào.
Một Workflow engine có thể giám sát việc khai thác một tập các bản sao tiến tình hay các tiến trình con với một phạm vi được xác định bởi các loại đối tượng, các thuộc tính của chúng. Những kiểu đối tượng và các thuộc tính này được giải thích trong định nghĩa tiến trình.
2.2.3. Dịch vụ Enactment thuần nhất và không thuần nhất
Một dịch vụ Workflow enactment thuần nhất bao gồm một hoặc nhiều Workflow engine tương thích tạo nên môi trường khai thác thời gian thực đối với tiến trình Workflow với một tập xác định trước các thuộc tính định nghĩa tiến trình. Cơ chế khai thác tiến trình mà theo đó sự thi hành tiến trình được tổ chức thông qua nhiều Workflow engine, các giao thức và các định dạng trao đổi được dùng để hỗ trợ cơ chế này của các sản phẩm đặc biệt đó hiện tại chưa được chuẩn hoá.
Một dịch vụ Workflow enactment không thuần nhất bao gồm hai hoặc nhiều hơn các dịch vụ thuần nhất tuân theo các chuẩn chung cho việc tương tác ở một mức nhất định. Người ta có thể mong muốn tạo ra một số mức tương tác bảo đảm nâng cao các mức chức năng chung.
Những mức đó có thể là:
• Một lược đồ đặt tên chung cho toàn bộ miền không thuần nhất.
• Hỗ trợ cho các đối tượng và các thuộc tính dùng để định nghĩa tiến trình chung cho toàn bộ miền ứng dụng.
• Hỗ trợ việc truyền dữ liệu liên quan đến Workflow trong một miền ứng dụng.
• Hỗ trợ việc truyền các hành vi và các tiến trình con giữa các Workflow engine không thuần nhất
• Hỗ trợ các chức năng giám sát và quản trị chung trong toàn miền ứng dụng. Việc hỗ trợ những dữ liệu điều khiển Workflow chung và trao đổi chúng là cần thiết để bảo đảm tính mở toàn bộ giữa các sản phẩm không thuần nhất.
Tiến trình và việc chuyển trạng thái của các hành vi
Dịch vụ Workflow enactment có thể được coi như một máy chuyển trạng thái trong đó các bản sao tiến trình hoặc bản sao hành vi thay đổi trạng thái theo
các sự kiện bên ngoài hoặc theo những quyết định điều khiển do Workflow engine đưa ra.
Môt ví dụ minh hoạ cơ bản biểu đồ chuyển đổi trạng thái của tiến trình được chỉ ra dưới đây.
Hình 2-7Ví dụ về chuyển trạng thái đối với một bản sao tiến trình
Trong biểu đồ trên, việc chuyển trạng thái thái xảy ra theo những hàm WAPIs cụ thể; việc chuyển đổi giữa các trạng thái nào đó cũng sẽ xảy ra như là kết quả của việc thoả mãn các điều kiện chuyển trong định nghĩa tiến trình. Các trạng thái cơ bản là:
- Khởi tạo: Một bản sao tiến trình được tạo ra bao gồm ngày tháng của trạng
thái tiến trình được gắn kết và dữ liệu liên quan Workflow, nhưng các tiến trình chưa thoả mãn các điều kiện để bắt đầu thực hiện.
- Chạy (running): Bản sao tiến trình bắt đầu khai thác và mọi hoạt động của
nó cũng có thể được bắt đầu (tất cả các điều kiện bắt đầu của hoạt động nào được đáp ứng).
- Kích hoạt (active): Một hoặc nhiều trạng thái đã bắt đầu và được gắn cho
một bản sao hành vi tương ứng.
- Đình chỉ (suspended): Một bản sao tiến trình bị ngừng lại và không có
hành vi nào được bắt đầu cho đến khi tiến trình trở lại trạng thái chạy.
- Hoàn thành (Completed): Bản sao tiến trình đã thoả mãn các điều kiện kết
thúc, mọi hoạt động sau khi kết thúc ở bên trong như là dữ liệu kiểm tra nhật kí hoặc các phép thống kê sẽ được thực hiện và tiến trình sẽ bị loại bỏ.
-Kết thúc (terminated): Quá trình thực thi tiến trình bị dừng lại trước khi chúng
được hoàn thành và bất kỳ các hoạt động bên trong như các bản ghi lỗi hay các bản ghi khôi phục dữ liệu có thể được thực hiện và tiến trình bị huỷ bỏ.
Các hành vi có thể không dừng được, ví dụ như một dịch vụ Workflow đã khởi tạo một hành vi cụ thể trong bản sao tiến trình thì không thể tạm ngừng hoặc kết thúc hành vi đó. Điều này có nghĩa là các chức năng đình chỉ/ khởi tạo lại/ kết thúc không thể hoàn thành đến khi tất cả các hành vi được kích hoạt phải hoàn thành và bản sao tiến trình quay trở lại một trạng thái chạy. Thêm vào đó người ta cũng đòi hỏi gộp một tập các hành vi thành một đơn vị nguyên tử mà việc khai thác chúng hoặc được thực hiện một cách nguyên vẹn hoặc bản sao tiến trình sẽ quay ngược về điểm khởi đầu của chúng.
Bỏ qua các điều kiện phức tạp mở rộng, một ví đơn giản minh hoạ trạng thái cơ bản và sự chuyển đổi cho một hoạt động như sau:
Hình 2-8 Ví dụ hoạt động chuyển tiếp trạng thái Các trạng thái của một hoạt động là:
Không kích hoạt (inactive): Hoạt động nằm trong tiến tình được tạo ra nhưng
chưa được kích hoạt (VD, bởi vì các điều kiện hoạt động chưa được đáp ứng) và không có danh mục công việc cho tiến trình.
Kích hoạt (active): Một danh mục công việc được tạo và gán với một hành
động cho tiến trình
Đình chỉ (suspended): Hoạt động được chuyển sang trạng thái ngưng và chờ
đợi (ví dụ như khi hoạt động đó là một kết quả của câu lệnh change_state_of_activity_instance) và sẽ không được cấp phát một mục công việc cho đến khi trở về trạng thái chạy.
2.2.4. Các kiểu dữ liệu Workflow
2.2.4.1. Dữ liệu điều khiển Workflow
Dịch vụ Workflow enactment cập nhật các dữ liệu điều khiển bên trong để xác định trạng thái của một bản sao tiến trình hoặc bản sao hành vi cụ thể và hỗ trợ các thông tin trạng thái bên trong khác. Các dữ liệu này không truy nhập được hoặc trao đổi thông qua các lệnh WAPI, nhưng một vài nội dung thông tin có thể được cung cấp bằng các lệnh đặc biệt (như truy vấn trạng thái tiến trình, đưa các các tiêu chí đánh giá thực thi, v.v..). Dịch vụ Workflow enactment thuần nhất có thể trao đổi thông tin giữa các Workflow engine nhờ cơ chế đối thoại riêng cụ thể. Đị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.
2.2.4.2. Dữ liệu liên quan Workflow
Dữ liệu liên quan đến Workflow được sử dụng bởi hệ thống quản lý Workflow để xác định các điều kiện chuyển tiếp cụ thể và có thể tác động đến sự lựa chọn các hành vi được khai thác tiếp theo. Các dữ liệu này có thể được truy cập bởi các ứng dụng Workflow phục vụ các thao tác trên dữ liệu đó và do vậy có thể được truyền giữa các hành vi nhờ phần mềm dịch vụ Workflow enactment. Khi vận hành ở trong một môi trường không thuần nhất, dữ liệu đó có thể cần được trao đổi giữa các Workflow engine khi trình tự khai thác tiến trình xảy ra trong hai hoặc nhiều Workflow engine, các tiến trình như vậy có thể (có khả năng) yêu cầu ánh xạ tên hay chuyển đổi dữ liệu.
Định nghĩa - Dữ liệu có liên quan đến Workflow
Là dữ liệu được dùng bởi hệ thống quản lý Workflow để xác định việc chuyển trạng thái của một bản sao tiến trình Workflow.
2.2.4.3. Dữ liệu ứng dụng Workflow
Việc xử lý dữ liệu ứng dụng Workflow có thể được yêu cầu trong mỗi hành vi của định nghĩa tiến trình, ví dụ như được yêu cầu trong một công cụ hoặc ứng dụng cụ thể nào đó, dưới sự điều khiển trực tiếp của ứng dụng hoặc kết hợp với
một vài dạng tương tác với người dùng nào đó. Đôi khi việc xử lý dữ liệu cũng đòi hỏi phải biến đổi các dữ liệu giữa các định dạng khác nhau.
Định nghĩa dữ liệu ứng dụng Workflow :
Là dữ liệu đặc trưng của ứng dụng và không truy cập được bởi hệ thống quản lý Workflow.
Dữ liệu ứng dụng Workflow không được sử dụng bởi phần mềm Workflow enactment mà chỉ liên quan tới các ứng dụng hoặc các công việc của người dùng được khai thác trong Workflow. Cũng như đối với dữ liệu liên quan với Workflow, các dữ liệu đó có thể cần được trao đổi giữa các Workflow engine trong dịch vụ enactment không thuần nhất và được chuẩn bị sẵn sàng cho các hành vi phù hợp được khai thác trên các engine riêng lẻ.
Mối liên hệ giữa một ứng dụng và bất cứ dữ liệu liên quan hay dữ liệu ứng dụng Workflow mà ứng dụng cần xử lý được xác định bên trong định nghĩa tiến trình. Trong một số trường hợp mối liên hệ này có thể là một liên hệ ẩn nhưng trong những trường hợp khác mối liên hệ này có thể là một liên hệ hiện xác định đường dẫn ứng dụng và tên đối tượng đặc trưng.
2.2.5. Sự trao đổi dữ liệu
Việc trao đổi dữ liệu của dữ liệu ứng dụng và dữ liệu liên quan tới Workflow cần được thực hiện thông qua WAPI để hỗ trợ cho việc tương tác lẫn nhau trong 3 vùng chức năng thời gian thực hiện.
• Bộ quản lý danh sách công việc (giao diện 2). • Ứng dụng được triệu gọi (giao diện 3).
• Sự trao đổi Workflow engine (giao diện 4).
Phần này sẽ trình bày nguyên lý trao đổi dữ liệu chung. Một tập lệnh API đã được đặt ra bao gồm các lời gọi đặc trưng để tiếp nhận hoặc trả về dữ liệu có liên quan đến Workflow từ một dịch vụ enactment này tới dịch vụ enactment khác thông qua WAPI. Các phương án của các lời gọi này sẽ được xác định cho cả việc trao đổi dữ liệu trực tiếp hoặc gián tiếp.
Việc trao đổi dữ liệu ứng dụng trực tiếp thường được sử dụng trong các hệ thống Workflow hướng email. Khi đó dữ liệu được chuyển một cách vật lý giữa các hành vi hoặc các ứng dụng. Cách trao đổi này cũng có thể được sử dụng trong
các hệ thống Workflow hướng người dùng. Việc trao đổi này không cần xác định mối liên hệ hiện giữa các hành vi và dữ liệu ứng dụng, dữ liệu này được truyền như một phần của quá trình điều hướng hành vi Workflow chuẩn và được kết nối một cách cục bộ tới ứng dụng khi nó được triệu gọi. Khi có yêu cầu chuyển đổi định dạng dữ liệu giữa các hành vi, mô hình sẽ nhận ra ứng dụng đòi hỏi kiểu dữ liệu nào. Điều này cho phép các hệ thống được xây dựng để sử dụng các ứng dụng Workflow không thuần nhất cung cấp việc chuyển đổi dữ liệu khi cần thiết trên cơ sở các kiểu thuộc tính xác định cho những ứng dụng tương ứng.
Một số dạng hệ thống Workflow không truyền dữ liệu ứng dụng giữa các hành vi một cách vật lý. Trong các hệ thống này, các dữ liệu được truy cập bởi