- Mô hình động: Là các loại mô hình phụ thuộc vào yếu tố thời gian.
2.2.2 Ký hiệu và mô hình hóa tiến trình nghiệp vụ (Business process Modeling & Notation BPMN)
2.2.2 Ký hiệu và mô hình hóa tiến trình nghiệp vụ (Business process Modeling & Notation - BPMN) Modeling & Notation - BPMN)
2.2.2.1 Các khái niệm cơ sở về BPMN
“Mục đích chính của BPMN là cung cấp các ký hiệu dễ hiểu đối với mọi người. Từ những người phân tích nghiệp vụ đến những người làm IT và cuối cùng là những người quản lý và điều khiển trực tiếp những tiến trình đó. Vì vậy, BPMN tạo ra một cầu nối chuẩn cho những lổ hổng giữa những bản thiết kế quy trình nghiệp vụ và việc thực thi những quy trình đó .” [1]
BPMN là một tiêu chuẩn cho việc mô hình hóa quy trình nghiệp vụ. BPMN cung cấp một mô hình ký hiệu cho việc đặc tả quy trình nghiệp vụ trong một biểu đồ quy trình nghiệp vụ (Business process diagram - BPD).
Mô hình BPMN: gần giống như flowchart & activity diagram.
Hình 2.6. Biểu đồ BPMN về việc giao hàng
2.2.2.2. Các thành phần của BPMN
Phần này sẽ trình bày các thành phần cấu tạo nên BPMN.
Sự kiện (An event):
Là thành phần cơ bản nhất của BPMN. Sự kiện là các yếu tố tạo ra một quy trình nghiệp vụ.
Sự kiện được phân loại dựa vào:
+ Phạm vi hoạt động nơi mà chúng xảy ra trong quy trình (bắt đầu, ở giữa và kết thúc)
+ Dựa vào loại (cơ sở, thông báo, đồng hồ đếm giờ, luật, ngoại lệ, sự hủy bỏ, bù, liên kết, phức hợp, kết thúc).
Sựkiện được biểu diễn bằng một hìnhtròn. Sự kiện bắt đầu được ký hiệu bởi
Sự kiện kết thúc ký hiệu bởi
Hình 2.8 Giải thích ý nghĩa những sự kiện trong BPMN
Loại Bắt đầu Trung gian Kết thúc
Cơ sở Giữ chỗ hoặc bắt đầu một quy trình con
Giữ chỗ Giữ chỗ hoặc kết thúc một chu trình con
Thông điệp
Quy trình được bắt đầu khi nhận một thông điệp (ví dụ như yêu cầu của một phương thức web service được thực thi bởi một quy trình )
Quy trình đang đợi một thông điệp(ví dụ: chờ một phản hồi từ người mà thông điệp này gửi đến) Một thông điệp được gửi đến một quy trình(ví dụ: gọi một web service của nó) Đồng hồ đếm giờ
Khi nó được kích hoạt thì một lịch biểu được định lên(ví dụ: mỗi tối thứ 6)
Một thời điểm trong lịch biểu
Luật Một điều kiện, được xác định bởi một quy trình, được thỏa mãn(ví dụ: tiến trình bắt đầu khi giá chứng khoán đạt ngưỡng 52 tuần liền)
Một điều kiện được thỏa mãn. Chỉ được sử dụng cho việc xử lý ngoại lệ Ngoại lệ Ném ra hay bắt một lỗi Sinh ra một lỗi
Hủy bỏ Thực hiện hủy cho
một hoạt động
Loại Bắt đầu Trung gian Kết thúc
Quay lùi
Kích hoạt và thực hiện quay lùi
Thực hiện việc quay lùi
Liên kết
Sự kiện bắt đầu liên kết kết nối đến sự kiện kết thúc liên kết của một quy trình anh em với nó Liên kết đến một hoạt động khác hoặc từ một hoạt động khác Kết nối đến liên kết bắt đầu của một quy trình anh em với nó Đa Hai hoặc nhiều hơn những
sự kích hoạt để có thể bắt đầu tiến trình; nếu một trong số chúng xảy ra thì tiến trình xảy ra. Những sự kích hoạt có thể là thông điệp, đồng hồ đếm giờ, luật hoặc những loại liên kết
Hai hoặc nhiều hơn những sự kích hoạt có thể tiến tục một tiến trình chờ; nếu một trong số chúng xảy ra thì tiến trình lại được tiếp tục
Khi tiến trình kết thúc, một vài kết quả được yêu cầu(ví dụ: một vài thông điệp cần được gửi) Kết thúc Hoàn thành tất cả mọi hoạt động trong tiến trình. Không thực thi xử lý ngoại lệ hoặc sự kiện quay lùi. Hoạt động (activity)
Hoạt động được xem là yếu tố cơ bản thứ hai trong BPMN. Hoạt động là một bước trong một tiến trình và nó thực thi công việc.
Trong BPMN, một hoạt động tồn tại dưới hai dạng :
+ Nguyên tử (atomic) : Một hoạt động nguyên tử được xem như là một tác vụ. Nó thực thi một hoạt động đơn lẻ.
+ Phức hợp (compound): Một hoạt động phức hợp được xem như là một tiến trình, hay là một tập của các hoạt động đơn lẻ. Các tiến trình có thể có tiến trình con (subprocess).
Một hoạt động được ký hiệu hình chữ nhật có các cạnh được vát tròn.
Muốn thể hiện một tiến trình cha có chứa tiến trình con trong ở trong thì ta biểu diễn một hình vuông có dấu + ở trong.Khi chúng ta click vào dấu + đó thì một biểu đồ sẽ hiện ra và thể hiện đầy đủ chi tiết trong tiến trình đó có những gì.
Hình 2.9. Các hoạt động của BPMN
Hình 2.10. Các kiểu tác vụ BPMN
Sử dụng Mô tả
Dịch vụ Gọi một dịch vụ web
Nhận Chờ một thông điệp
Gửi Gửi một thông điệp
Người sử dụng (được thực thi bởi người sử dụng)
Một công việc được thực hiện với sự tham gia của con người(Ví dụ như việc chấp thuận)
Sử dụng Mô tả
Script Thực thi một đoạn mã(ví dụ thực thi một đoạn mã java)
Tham chiếu Sử dụng định nghĩa của một hành động khác trong tiến trình; chia sẽ định nghĩa hơn là sao chép lại
Luồng trình tự (Sequence flow)
- Luồng trình tự là yếu tố cơ bản thứ ba của BPMN. Luồng trình tự là luồng điều khiển trong một tiến trình.
- Nhiệm vụ của luồng trình tự làkết nối những hoạt động nguồn và những hoạt động đích. Nó cũng kết nối được những sự kiện (events) hay các cổng vào (gateways).
- Luồng trình tự được ký hiệu bởi mũi tên. - Hình 2.11 biểu diễn ba loại luồng trình tự.
Hình 2.11. Ký hiệu các loại luồng trình tự
+ Mũi tên thứ hai là luồng mặc định. Tiến trình sẽ đi theo hướng luồng mặc định trong trường hợp luồng chia tách ra nhiều hướng nhưng không có hướng nào thỏa mãn.
+ Mũi tên thứ ba là luồng được thực thi khi thỏa mãn nhiều điều kiện cùng lúc.
Cổng vào (Gateway)
Khái niệm thành phần cơ bản cuối cùng của BPMN là cổng vào (gateway). Cổng vào là một điều khiển đặc biệt thực hiện việc chia tách (split) và hợp nhất (join). Thành phần này sẽ được bàn kỹ hơn tại phần “Chia tách và hợp nhất” sau đây.
Chia tách và hợp nhất
- BPMN sử dụng yếu tố cổng vào (gateway) để điều khiển việc chia và nhập của các luồng tuần tự trong một quy trình. Nó sẽ quyết định rẽ nhánh, chia nhánh hay là hợp nhánh. Cấu trúc chia và nhập này tương tự như if- then, switch.
- Cổng vào trong BPMN có hai kiểu.
+ Một là từ một nhánh vào chia tách thành nhiều nhánh (được hiểu như là chia (Split))
+ Ngược lại là nhập (join).
Hình 2.12. Các ký hiệu cổng vào của BPMN
Cổng loại trừ:
Khi quy trình nghiệp vụ được xử lý. Các điều kiện sẽ được xét tại cổng loại trừ. Điều kiện nào thỏa mãn đầu tiên thì tiến trình sẽ đi theo hướng đó và các
hướng khác sẽ không được xét nữa. Kết quả chỉ có một luồng ra.
Hình 2.13. Minh họa cổng loại trừ
Nếu tất cả các điều kiện ở các luồng không thỏa mãn thì sẽ tự động đi vào luồng mặc định.
Cổng bao hàm:
Không giống như cổng loại trừ. Cổng bao hàm có thể kích hoạt nhiều hơn 1 luồng ra. Vì cổng bao hàm kích hoạt nhiều hơn 1 luồng ra nên việc kiểm tra điều kiện của nó cũng khá với cổng loại trừ. Đối với cổng loại trừ. Khi nào có điều kiện thỏa mãn thì các điều kiện sau không kiểm tra nữa. Nhưng với cổng bao hàm thì khác. Tất cả các điều kiện đều được kiểm tra.
Hình 2.15. Minh họa cổng bao hàm
Có 3 trường hợp có thể xảy ra trong quy trình nghiệp vụ này là : - Chuyển tất cả hàng bằng đường máy bay.
- Chuyển tất cả hàng bằng đường biển.
- Chuyển một số hàng bằng đường máy bay và số còn lại bằng đường biển.
Cổng vào dựa trên sự kiện
Cổng vào dựa trên sự kiện tương tự với cổng vào loại trừ nhưng cổng vào chỉ được kích hoạt dựa trên xảy ra sự kiện hay vì xét điều kiện. Sự kiện thường được kích hoạt dựa trên bên thứ 3 (ví dụ như : khách hàng gửi hóa đơn là một sự kiện).
Ví dụ cổng vào dựa trên sự kiện :
Chúng ta gửi bảng đơn giá cho khách hàng và đợi khách hàng xác nhận đơn đặt hàng. Nếu khách hàng gửi lời xác nhận thì chung ta sẽ chuẩn bị hàng cho khách hàng. Nếu như không nhận được lời xác nhận nào sau 15 ngày thì chúng ta sẽ gửi nhắc nhở tới khách hàng.
Hình 2.16. Minh họa cổng vào dựa trên sự kiện
Cổng vào song song
Khi gặp cổng vào song song thì tiến trình sẽ nhân nhánh ra nhiều luồng khi gặp cổng tách song song. Chúng sẽ nhập lại thành một khi gặp cổng nhập song song