TỔNG QUAN VỀ MÔ HÌNH THAM CHIẾU

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

2.1.1. Tổng quan về mô hình tham chiếu

Mô hình tham chiếu của hệ quản trị Workflow đã được xây dựng dựa trên các giao diện bên trong cấu trúc ứng dụng Workflow chung. Cấu trúc đó cho phép các sản phẩm tương tác với nhau tại các mức khác nhau. Mọi hệ thống Workflow đều chứa một số thành phần chung cùng hoạt động theo các cách đã được định nghĩa từ trước. Các sản phẩm khác nhau sẽ đại diện cho các mức khả năng khác nhau của mỗi thành phần trong các thành phần chung đó. Để đạt được khả năng tương tác giữa các sản phẩm Workflow thì việc chuẩn hóa các giao diện và các khuôn dạng trao đổi dữ liệu giữa các thành phần nội tại là cần thiết.

2.1.2. Mô hình tham chiếu Workflow

Hình dưới minh hoạ các thành phần và giao diện chính trong kiến trúc Workflow.

Hình 2-6 Mô hình tham chiếu hệ quản trị Workflow – các thành phần và các giao diện.

Kiến trúc hệ quản trị Workflow mô tả các thành phần và các giao diện chính được trình bày ở phần sau. Việc chi tiết các giao diện riêng (APIs và sự trao đổi các định dạng) sẽ được phát triển như là phần lõi chung với các tham số cần thiết để đáp ứng các yêu cầu riêng của giao diện.

Giao diện bao quanh dịch vụ Workflow enactment được gọi là WAPI – Workflow APIs và các khuôn dạng trao đổi. Chúng được xem như là tập hợp các cấu trúc mà các dịch vụ của hệ thống Workflow được cho phép truy cập và điều hòa sự tương 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. Nhiều chức năng trong năm miền giao diện là thành phần chung của hai hay nhiều giao diện dịch vụ. Vì vậy nó rất thích hợp khi xem WAPI như là một giao diện dịch vụ hợp nhất hỗ trợ các chức năng quản lý Workflow thông qua 5 miền, đúng hơn là 5 giao diện riêng.

2.2.DỊCH VỤ WORKFLOW ENACTMENT2.2.1. Dịch vụ Workflow Enactment là gì ? 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á. (adsbygoogle = window.adsbygoogle || []).push({});

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. (adsbygoogle = window.adsbygoogle || []).push({});

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

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