Tìm hiểu mô hình BPMN (Phần 2)

Tram Ho

Xin chào các bạn, bài viết trước thì mình cũng giới thiệu đến các bạn những khái niệm về mô hình BPMN rồi, các bạn có thể tham khảo bài viết của mình tại đây. Trong bài viết lần này, mình muốn chia sẻ với các bạn tiếp về những thành phần cơ bản trong BPMN. Nào chúng mình cùng nhau đi tìm hiểu những khái niệm này nhé.

Các thành phần cơ bản trong BPMN


Trong BPMN thật sự có rất nhiều ký hiệu, các bạn sẽ phải mất mốt thời gian để tìm hiểu được hết ý nghĩa của các ký hiệu. Tuy nhiên, chúng ta có thể phân loại các biểu tượng sơ đồ BPMN thành 4 nhóm chinhs: flow objects, connecting objects, swimlanesartifacts.

Actions

Thành phần này dùng để mô tả công việc. Actions được chia làm 2 loại chính

  • Task: đây là loại hoạt động không thể chia nhỏ hơn được nữa
  • Sub-process: đây là hoạt động có thể chia nhỏ thành các hoạt động nhỏ hơn hay các hoạt động thành phần.

Task

Task mô tả hành động trong một xử lý mà không thể chia nhỏ hơn hay chi tiết hơn. Task có thể chia làm 2 loại chính :

  • Loop: tác vụ lặp
  • Compensation: tác vụ cho phép quay lui về trạng thái ban đầu nếu tác vụ xử lý thất bại.
  • Multiple Instance : tác vụ xử lý nhiều công việc cùng một lúc (xử lý song song).
    ==> Cả 3 loại này có thể kết hợp qua lại lẫn nhau

Ngoài ra, Task Type cũng có một số ký hiệu bổ sung cho các tác vụ. Dưới đây là bảng mô tả :

Task TypeMô tả
Task này được thực hiện bằng service của hệ thống hoặc từ một web service khác.
Task gửi và nhận message cho participants bên ngoài có liên quan đến quy trình xử lý.
Task do con người thực hiện có sự trợ giúp của phần mềm ứng dụng.
Task này ý muốn nói cung cấp đầu vào cho Business Rule Engine và sau đó lấy ra kết quả sau một quá trình.
Task này được thực hiện bởi một business process engine, nó định nghĩa ra một script mà engine có thể thông dịch. Khi bắt đầu thì engine sẽ thực thi script, task hoàn thành khi chạy xong script.
Task này được thực thi mà không cần bất cứ một process excecution engine hay application nào hỗ trợ. Hay nói cách khác là task này do con người thực hiện mà không có sự trợ giúp của phần mềm ứng dụng nào.

Đây là một số ví dụ

Loop Task

Là tác vụ mô tả công việc được thực hiện lpawj lại nhiều lần (chúng mình lưu ý điều kiện dừng).


Tác vụ thu thập thông tin sẽ liên tục nhận thông tin từ message trong vòng 2 ngày. Sau 2 ngày kết thúc thì tác vụ này sẽ kết thúc và chuyển sang tác vụ tổng hợp báo cáo do nhân viên thực hiện có sự trợ giúp của phần mềm.

Compensation Task

Compensation Task là các tác vụ mô tả sự khôi phục lại trạng thái trước đó.

Ví dụ trên có ý nghĩa là nếu task đặt vé chuyến bay và đặt phòng khách sạn thành công thì kết thúc đặt chỗ, ngược lại nếu thất bại thì sẽ quay lại trạng thái ban đầu (trả lại số vé và số phòng đã đặt)

Multiple Instance

Multiple Instance là tác vụ mô tả các công việc được thực hiện song song với nhau.

Sub-Processes

Sub processes là loại xử lý bên trong còn có thể chia nhỏ và bao gồm các xử lý hoạt động nhỏ bên trong. Thông thường, chúng ta tạo nhiều BPMN diagram để giao tiếp nhiều quy trình với những cái còn lại. Để tạo điều kiện communicate hiệu quả, chúng ta thực sự không muốn một quy trình business của chúng ta quá phức tạp. Bằng cách sử dụng sub-processes, chúng ta có thể chia quy trình phức tạp này thành nhiều mức độ, ý là khi nói đến sub-process thì bạn có nhìn sang cái này để xem process nó như nào. Hay các nói khác cách này sẽ không làm diagram của chúng ta rối mắt, mang lại hiệu quả cho người nhìn vào diagram.

Nó có thể được chia làm 4 loại chính

  • Loop
  • Compensation
  • Multiple Instance
  • Ad Hoc
    Trong đó 3 loại đầu thì có ý nghĩa giống như mình đã trình bày ở phần Task. Sub process có thể sử dụng cùng với các ký hiệu để bổ sung thêm ngữ nghĩa như mình đã trình bày ở phía trên.

Event

Event (sự kiện) là các loại sự kiện xảy ra trong quá trình thực hiện tiến trình. Những event này sẽ tác động đến luồng thực thi của tiến trình.

Event được mô tả bởi một hình tròn, trống ở giữa, cho phép thêm vào các ký hiệu mô tả các loại sự kiện xảy ra khác nhau.

Có 2 cách sử dụng event:

Normal Flow: Đặt giữa 2 action, là điều kiện để thực hiện action tiếp theo

Attached to Boundary: gắn với phạm vi của 1 action, được sử dụng trong việc quản lý lỗi, exception.

Phân loại event

Chúng ta có thể căn cứ vào thời điểm tác động hay xảy ra sự kiện vào process thì chia làm 3 loại event như sau:

  • Start Event
  • Intermediate Event
  • End Event


Chúng ta có thể hiểu như sau: Event bắt đầu và hầu hết các event trung gian đều có một “trigger” đi kèm, xác định nguyên nhận nào gây ra event đó. Có rất nhiều nguyên nhân có thể kích hoạt event nào đó. Trong khi đó event end được xem như là kết quả của một chuỗi các action.

Event Start

Ký hiệuMô tả
None: bắt đầu process xử lý không cần điều kiện kích hoạt.
Message: process được kích hoạt khi có thông điệp được gửi đến email, fax, phone,…
Timer: process được kích hoạt sau khoảng thời gian xác định.
Rule / Conditional: process được kích hoạt theo điều kiện nào đó (vd như khi có giá 23.3 thì mới khớp lệnh mua.)
Multiple: process có thể được kích hoạt từ ít nhất một hay nhiều event khác nhau.

Intermediate Event

Event này xảy ra giữa start event và end event.

Giúp xác định những điều kiện làm gián đoạn hoặc trì hoãn process xử lý nghiệp vụ.

Ký hiệuMô tả
None: minh họa quá trình chuyển trạng thái xử lý.
Msg ‘catch’: event được kích hoạt khi nhận được thông điệp.
Msg ‘throw’: được kích hoạt khi gửi thông điệp đi.
Timer: event được kích hoạt để hoãn xử lý sau khoảng thời gian, sau đó sẽ thực hiện tiếp action tiếp theo.
Rule: event được kích hoạt khi điều kiện đúng.
Multiple ‘catch’: có thể nhận nhiều trigger kích hoạt xử lý.
Multiple ‘throw’: có thể gửi đi nhiều trigger kích hoạt xử lý.
Link: chuyển sang xử lý khác ‘go-to’
Compensation(catch-throw): event được kích hoạt khi có lỗi mà muốn phục hồi lại trạng thái trước đó.
Error: event được khi hoạt khi gặp lỗi.
Escalation: event được kích hoạt để giải quyết một rằng buộc nào đó không được thỏa mãn trong quá trình xử lý.

End Event

Column 1Column 2
None: kết thúc quy trình xử lý.
Message: Gửi kết quả cho đối tượng tham gia thông điệp và kết thúc process.
Error: thông báo lỗi và kết thúc process.

Gateways

Gateway là đối tượng điều khiển dùng để trộn hoặc phân chia các luồng thực thi. Vì vậy nó sẽ quyết định việc rẽ nhánh, trộn,… các luồng tiến trình với nhau tùy thuộc vào loại hành vi được chỉ định.

Phân loại

Parallel gateway (AND)

Cái này ý muốn làm nhiệm vụ như sau: tất cả các action được xử lý song song, tiến trình được tiếp tục khi tất cả được hoàn tất.

  • Fork: chia action ra làm nhiều nhánh để thực hiện song song.
  • Join: sau khi thực hiện song song các nhánh thì thực hiện join để đi đến kết quả cuối cùng.
    Đây là một ví dụ

Một order để đến tay được người tiêu dùng thì ở đây chúng ta sẽ chia làm 2 luồng chạy song song đó chính là Ship bưu phẩm cho người tiêu dùng và thực hiện thanh toán (có thể là online hoặc giao hàng xong mới thanh toán). Khi người tiêu dùng nhân được hàng và thanh toán xong thì lúc đó mới kết thúc order.

Exclusive gateway (XOR)

Một trong các action sẽ được thực thi. Việc lựa chọn phụ thuộc vào điều kiện logic tại Gateways.

Chia làm 2 loại :

  • Data-based
  • Event-based

Inclusive gateway (OR)

Một vài action sẽ được lựa chọn thực thi, bao hàm chức năng cả parallelexclusive gateways.

In conclusion

Vậy qua đó mình đã giới thiệu với các bạn được Actions, EventsGateways. Mong răng nó giúp ích cho các bạn trong quá trình tìm hiểu về BPMN. Bài tiếp theo mình sẽ chia sẻ tiếp về chủ đề này nhé. Cảm ơn các bạn đã đọc bài viết của mình.

Reference

https://www.visual-paradigm.com/guide/bpmn/

Chia sẻ bài viết ngay

Nguồn bài viết : Viblo