You are on page 1of 77

lOMoARcPSD|25633883

Khóa luận v3 - Luận tốt nghiệp

Khoá luận tốt nghiệp (Trường Đại học Công nghệ, Đại học Quốc gia Hà Nội)

Studocu is not sponsored or endorsed by any college or university


Downloaded by Anh Nguy?n Hoàng (nguyenhoanganhptit@gmail.com)
lOMoARcPSD|25633883

ĐẠI HỌC QUỐC GIA HÀ NỘI

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ

TRƯƠNG ĐÌNH ĐỨC

TÌM HIỂU VÀ MỞ RỘNG TÍNH NĂNG


CÔNG CỤ MÔ HÌNH HÓA
QUY TRÌNH NGHIỆP VỤ ACTIVITI

Ngành: Công nghệ Thông tin

KHÓA LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY

NGƯỜI HƯỚNG DẪN: TS. ĐẶNG ĐỨC HẠNH

Hà Nội – 2019

Downloaded by Anh Nguy?n Hoàng (nguyenhoanganhptit@gmail.com)


lOMoARcPSD|25633883

ĐẠI HỌC QUỐC GIA HÀ NỘI

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ

TRƯƠNG ĐÌNH ĐỨC

TÌM HIỂU VÀ MỞ RỘNG TÍNH NĂNG


CÔNG CỤ MÔ HÌNH HÓA
QUY TRÌNH NGHIỆP VỤ ACTIVITI

Ngành: Công nghệ Thông tin

KHÓA LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY

NGƯỜI HƯỚNG DẪN: TS. ĐẶNG ĐỨC HẠNH

Hà Nội – 2019

Downloaded by Anh Nguy?n Hoàng (nguyenhoanganhptit@gmail.com)


lOMoARcPSD|25633883

VIETNAM NATIONAL UNIVERSITY, HANOI

UNIVERSITY OF ENGINEERING AND TECHNOLOGY

DINH DUC TRUONG

A STUDY ON THE BUSINESS PROCESS


MODELLING ACTIVITI TOOL
AND EXTENDING ITS FEATURES

Department: Information Technology

THESIS PRESENTED FOR BACHELOR DEGREE

SUPERVISOR: DR. DUC HANH DANG

Hanoi - 2019

Downloaded by Anh Nguy?n Hoàng (nguyenhoanganhptit@gmail.com)


lOMoARcPSD|25633883

TÓM TẮT

Ngày nay, đối với mỗi tổ chức hay doanh nghiệp dù lớn hay nhỏ đều chú trọng
rất nhiều đến quy trình nghiệp vụ bởi tầm quan trọng ngày càng cao của nó. Quy trình
nghiệp vụ chuẩn là một trong những thước đo hàng đầu để đánh giá độ chuyên nghiệp
và tính nguyên tắc trong hoạt động của một tổ chức, doanh nghiệp, quy trình nghiệp
vụ tốt sẽ giúp công việc được thực hiện một cách trơn tru, từ đó đẩy nhanh tiến độ
công việc và nâng cao chiến lược phát triển của tổ chức, doanh nghiệp. Cũng vì lẽ đó,
mô hình hóa nghiệp vụ đang là sự lựa chọn hàng đầu của các nhà quản lý, các nhà phân
tích nghiệp vụ trên khắp thế giới. Chuẩn BPMN 2.0 cung cấp một tập các ký hiệu và
ngữ nghĩa ở mức phổ thông giúp không chỉ những nhà quản lý, những nhà phân tích
nghiệp vụ chuyên môn dễ dàng trong việc xây dựng mô hình nghiệp vụ mà còn dễ hiểu
với những người không có chuyên môn về quy trình nghiệp vụ hay không trực tiếp
tham gia vào quá trình xây dựng mô hình quy trình nghiệp vụ. Hiện nay có rất nhiều
công cụ hỗ trợ chuẩn BPMN và ít nhiều đáp ứng được nhu cầu về công việc của các
nhà phân tích nghiệp vụ lẫn các nhà quản lý. Trong số rất nhiều công cụ như vậy, khóa
luận này xin được trình bày về công cụ Activiti và những gì liên quan đến chuẩn BPMN
2.0 được hỗ trợ, đồng thời áp dụng công cụ trong bài toán khen thưởng sinh viên của
trường Đại học Công Nghệ - Đại học Quốc gia Hà Nội và mở rộng tính năng cho công
cụ này bằng việc tích hợp RBAC. Đây là một công cụ mã nguồn mở được viết bằng
ngôn ngữ Java được ra mắt bởi Alfresco và vẫn đang được phát triển hiện nay lên
những phiên bản cao hơn. Phiên bản được đề cập trong khóa luận này là phiên bản
6.0.0.
Từ khóa: tổ chức, doanh nghiệp, quy trình nghiệp vụ, mô hình hóa, BPMN 2.0, công
cụ.

Downloaded by Anh Nguy?n Hoàng (nguyenhoanganhptit@gmail.com)


lOMoARcPSD|25633883

ABSTRACT

Almost enterprises nowadays are focusing on their business processes because of


its importance. The clearer business processes are, the more clear and professional their
works are and their developing strategy will be met in a better way. Therefore, business
process modeling is becoming more and more popular and be one of the best choices for
managers and business process analysts. BPMN 2.0 is a graphical representation
provided with a set of graphical notations for specifying business processes which is easy
to understand by not only managers or business process analysts but also people with no
majored knowledge. We will specify the Activiti tool - one of several tools which support
modeling business processes according to BPMN 2.0 in this thesis. We will also apply
this tool on the remuneration for students problem and extend its features by integrating
RBAC into it. This is an open source tool which is written in Java and released by
Alfresco and it is still being developed at the moment to later versions. We will discuss
the version 6.0.0 of this tool here.
Keywords: enterprises, business processes, modeling, BPMN 2.0, tools.

ii

Downloaded by Anh Nguy?n Hoàng (nguyenhoanganhptit@gmail.com)


lOMoARcPSD|25633883

LỜI CẢM ƠN

Đầu tiên, tôi xin trân trọng cảm ơn Tiến sĩ Đặng Đức Hạnh – cán bộ hướng dẫn trực
tiếp của tôi, đã tận tình hướng dẫn và giúp đỡ tôi nghiên cứu, hoàn thành khóa luận này.

Tôi cũng xin chân thành cảm ơn các quý thầy cô giảng viên trong trường Đại học
Công nghệ - Đại học Quốc gia Hà Nội đã truyền cho tôi một niềm cảm hứng mãnh liệt
trong quá trình học tập tại trường để tôi có được định hướng đúng đắn đi tới khóa luận
ngày hôm nay.

Bên cạnh đó, tôi cũng xin cảm ơn các bạn lớp K60CLC, các anh chị làm việc và
nghiên cứu tại phòng 320-E3 đã động viên và hỗ trợ, giúp đỡ tôi hoàn thành tốt khóa luận
này.

Hà Nội , ngày 14 tháng 05 năm 2019

Ký tên

Trương Đình Đức

iii

Downloaded by Anh Nguy?n Hoàng (nguyenhoanganhptit@gmail.com)


lOMoARcPSD|25633883

LỜI CAM ĐOAN

Tôi xin cam đoan luận văn tốt nghiệp “Tìm hiểu và mở rộng công cụ Activiti”
là công trình nghiên cứu của riêng tôi và được sự hướng dẫn của TS. Đặng Đức Hạnh
và chưa từng được nộp như một báo cáo khóa luận tại trường Đại học Công Nghệ -
Đại học Quốc Gia Hà Nội hoặc bất kỳ trường đại học khác. Những gì tôi viết ra không
sao chép từ các tài liệu, không sử dụng các kết quả của người khác mà không trích
dẫn cụ thể.

Tôi xin cam đoan những nội dung tôi trình bày trong khóa luận là do tôi tự phát
triển, không sao chép mã nguồn của người khác. Nếu sai tôi hoàn toàn chịu trách
nhiệm theo quy định của trường Đại học Công Nghệ - Đại học Quốc Gia Hà Nội.

Sinh viên thực hiện

Trương Đình Đức

iv

Downloaded by Anh Nguy?n Hoàng (nguyenhoanganhptit@gmail.com)


lOMoARcPSD|25633883

MỤC LỤC:

TÓM TẮT ........................................................................................................................... i


ABSTRACT ....................................................................................................................... ii
LỜI CẢM ƠN ................................................................................................................... iii
DANH MỤC HÌNH VẼ .................................................................................................. vii
DANH MỤC BẢNG BIỂU ............................................................................................... x
DANH MỤC CỤM TỪ VIẾT TẮT ................................................................................ xi
LỜI NÓI ĐẦU ................................................................................................................... 1
CHƯƠNG 1: KIẾN THỨC NỀN TẢNG ........................................................................ 3
Quy trình nghiệp vụ và mô hình hóa quy trình nghiệp vụ ..................................... 3
Khái niệm quy trình nghiệp vụ ....................................................................... 3
Các thành phần của quy trình nghiệp vụ ......................................................... 3
Vai trò của quy trình nghiệp vụ ...................................................................... 4
Mô hình hóa quy trình nghiệp vụ .................................................................... 5
Giới thiệu về quy trình nghiệp vụ BPMN 2.0 ....................................................... 8
Tổng quan về BPMN 2.0 ................................................................................ 8
Thiết kế quy trình nghiệp vụ theo chuẩn BPMN 2.0 ...................................... 9
Điều khiển truy cập dựa trên cơ sở vai trò RBAC ............................................... 10
Giới thiệu chung ............................................................................................ 10
Tính chất ....................................................................................................... 10
Vai trò ........................................................................................................... 11
Quy ước và các ký hiệu ................................................................................. 11
Ví dụ .............................................................................................................. 12
Tổng kết chương .................................................................................................. 13
CHƯƠNG 2: MÔ HÌNH HÓA QUY TRÌNH NGHIỆP VỤ VỚI ACTIVITI........... 14
2.1. Giới thiệu chương ................................................................................................ 14
2.2. Giới thiệu về công cụ Activiti.............................................................................. 14
2.2.1. Về công cụ Activiti........................................................................................... 14
2.2.2. Lịch sử .............................................................................................................. 14
2.3. Giới thiệu chung về các yếu tố trong BPMN 2.0 được hỗ trợ trong công cụ ...... 15
2.3.1. Giới thiệu chung ............................................................................................... 15
2.3.2. Các yếu tố trong BPMN 2.0 được Activiti hỗ trợ ............................................ 15
2.2.2.1. Start Event (Sự kiện bắt đầu) ........................................................................ 16

Downloaded by Anh Nguy?n Hoàng (nguyenhoanganhptit@gmail.com)


lOMoARcPSD|25633883

2.2.2.2. End Event (Sự kiện kết thúc) ......................................................................... 18


2.2.2.3. Task (Tác vụ) ................................................................................................. 21
2.2.2.4. Container ...................................................................................................... 24
2.2.2.5. Gateway (Cổng quyết định) .......................................................................... 26
2.2.2.6. Boundary Events (Các sự kiện biên) ............................................................. 28
2.2.2.7. Intermediate event (Sự kiện trung gian) ....................................................... 30
2.2.2.8. Artifact .......................................................................................................... 32
2.2.2.9. Connection (Đối tượng kết nối) .................................................................... 32
2.4. Một số nền tảng Activiti hỗ trợ BPMN 2.0 .......................................................... 34
2.3.1. Activiti Designer trên IDE Eclipse ............................................................... 34
2.3.1.1. Giới thiệu về Eclipse và Activiti Designer trên IDE này .............................. 34
2.3.1.2. Cài đặt và sử dụng ......................................................................................... 35
2.3.2. Activiti App trên nền Web ................................................................................ 40
2.3.2.1. Giới thiệu ...................................................................................................... 40
2.3.2.2. Cài đặt và sử dụng ........................................................................................ 40
2.4. Hướng mở rộng công cụ ...................................................................................... 45
2.5. Tổng kết chương .................................................................................................. 45
CHƯƠNG 3: CÀI ĐẶT VÀ THỰC NGHIỆM: QUY TRÌNH NGHIỆP VỤ KHEN
THƯỞNG SINH VIÊN TẠI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ - ĐẠI HỌC QUỐC
GIA HÀ NỘI .................................................................................................................... 46
3.1. Phát biểu bài toán ................................................................................................. 46
3.2. Giải pháp hiện thời .............................................................................................. 47
3.3. Xây dựng mô hình BPMN 2.0 ............................................................................. 48
3.4. Thiết kế mô hình .................................................................................................. 49
3.4.1. Phân tích bài toán .......................................................................................... 49
3.4.2. Dựng mô hình ............................................................................................... 51
3.5.1. Cài đặt ........................................................................................................... 53
3.5.2. Thực nghiệm ................................................................................................. 56
3.5.2.1. Tìm hiểu công cụ........................................................................................ 56
3.5.2.2. Mở rộng công cụ ........................................................................................ 59
3.6. Tổng kết chương .................................................................................................. 60
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN ..................................................................... 61
TÀI LIỆU THAM KHẢO .............................................................................................. 62

vi

Downloaded by Anh Nguy?n Hoàng (nguyenhoanganhptit@gmail.com)


lOMoARcPSD|25633883

DANH MỤC HÌNH VẼ

Hình 1. 1: Các thành phần của quy trình nghiệp vụ. ................................................ 3
Hình 1. 2: Các bước chính trong thiết kế quy trình nghiệp vụ theo chuẩn BPMN 2.0.
.................................................................................................................................. 9
Hình 1. 3: Quan hệ giữa người dùng, quyền và vai trò trong RBAC. ................... 12
Hình 2. 1: Các loại sự kiện bắt đầu. ....................................................................... 16
Hình 2. 2: Ví dụ về sự kiện bắt đầu không có trigger. ........................................... 16
Hình 2. 3: Ví dụ về sự kiện bắt đầu với trigger dạng thời gian. ............................. 17
Hình 2. 4: Ví dụ về sự kiện bắt đầu với trigger dạng thông điệp. .......................... 17
Hình 2. 5: Ví dụ về sự kiện bắt đầu với trigger dạng tín hiệu. ............................... 18
Hình 2. 6: Các dạng sự kiện kết thúc ..................................................................... 18
Hình 2. 7: Ví dụ về sự kiện kết thúc không quan tâm kết quả cuối cùng. ............. 19
Hình 2. 8: Ví dụ về sự kiện kết thúc bằng một lỗi. ................................................ 19
Hình 2. 9: Ví dụ về sự kiện kết thúc chấm dứt....................................................... 20
Hình 2. 10: Ví dụ về sự kiện kết thúc hủy bỏ. ....................................................... 20
Hình 2. 11: Các loại tác vụ. .................................................................................... 21
Hình 2. 12: Ví dụ về tác vụ kịch bản...................................................................... 22
Hình 2. 13: Ví dụ về tác vụ dịch vụ. ...................................................................... 22
Hình 2. 14: Ví dụ về tác vụ thủ công. .................................................................... 23
Hình 2. 15: Ví dụ về tác vụ nhận. .......................................................................... 23
Hình 2. 16: Ví dụ về tác vụ theo nguyên tắc nghiệp vụ. ........................................ 23
Hình 2. 17: Ví dụ về hoạt động gọi. ....................................................................... 24
Hình 2. 18: Ví dụ về quy trình con bắt đầu bằng sự kiện. ..................................... 24
Hình 2. 19: Ví dụ về giao dịch. .............................................................................. 25
Hình 2. 20: Pool dạng đóng. ................................................................................... 26
Hình 2. 21: Pool dạng mở. ..................................................................................... 26
Hình 2. 22: Các loại cổng quyết định. .................................................................... 27
Hình 2. 23: Ví dụ về cổng quyết định không độc quyền. ...................................... 27
Hình 2. 24: Ví dụ về sự kiện biên thời gian. .......................................................... 28
Hình 2. 25: Ví dụ về sự kiện biên lỗi. .................................................................... 28
Hình 2. 26: Ví dụ về sự kiện biên thông điệp. ....................................................... 29
Hình 2. 27: Ví dụ về sự kiện biên hoàn tác. ........................................................... 29
Hình 2. 28: Ví dụ về sự kiện biên tín hiệu. ............................................................ 30
Hình 2. 29: Các loại sự kiện trung gian. ................................................................ 30
Hình 2. 30: Ví dụ về sự kiện bắt thời gian. ............................................................ 31
Hình 2. 31: Ví dụ về sự kiện bắt thông điệp. ......................................................... 31
Hình 2. 32: Ví dụ về sự kiện ném hoàn tác. ........................................................... 32
Hình 2. 33: Các loại đối tượng kết nối. .................................................................. 33
Hình 2. 34: Ví dụ về sequence flow. ...................................................................... 33

vii

Downloaded by Anh Nguy?n Hoàng (nguyenhoanganhptit@gmail.com)


lOMoARcPSD|25633883

Hình 2. 35: Message Flow kết nối 2 pool. ............................................................. 33


Hình 2. 36: Association liên kết chú thích và tác vụ người dùng. ......................... 34
Hình 2. 37: Cài đặt biến môi trường để sử dụng Plugin. ....................................... 36
Hình 2. 38: Giao diện cài đặt Plugin. ..................................................................... 36
Hình 2. 39: Các thông số cài đặt Plugin. ................................................................ 37
Hình 2. 40: Tạo mô hình Activiti. .......................................................................... 37
Hình 2. 41: Đặt tên và chọn thư mục lưu trữ mô hình. .......................................... 38
Hình 2. 42: Những mẫu mô hình có sẵn được hỗ trợ bởi Activiti Designer. ......... 38
Hình 2. 43: Mẫu mô hình Parallel Group Review And Approve Activiti Process. 39
Hình 2. 44: Cửa sổ làm việc chính với một mô hình rỗng. .................................... 39
Hình 2. 45: Một mô hình được xây dựng bằng Activiti Designer. ........................ 39
Hình 2. 46: File ứng dụng Activiti sau khi đã giải nén. ......................................... 40
Hình 2. 47: Khởi chạy Tomcat Server trên taskbar. .............................................. 41
Hình 2. 48: Thư mục của Tomcat sau khi đã cài đặt.............................................. 41
Hình 2. 49: Thư mục war trong file nén ứng dụng Activiti. .................................. 41
Hình 2. 50: Thư mục webapps của Tomcat. .......................................................... 42
Hình 2. 51: Màn hình đăng nhập Activiti App....................................................... 42
Hình 2. 52: Giao diện ứng dụng Activiti App. ....................................................... 43
Hình 2. 53: Màn hình giao diện Kickstart App của Activiti. ................................. 43
Hình 2. 54: Tạo mô hình mới trong Activiti App. ................................................. 43
Hình 2. 55: Xây dựng mô hình nghiệp vụ với Activiti App. ................................. 44
Hình 2. 56: Một số loại đối tượng được hỗ trợ trong Activiti App. ....................... 44
Hình 2. 57: Một mô hình được xây dựng bằng Kickstart App của Activiti App. .. 45
Hình 2. 58: Các user khác nhau có quyền truy cập bình đẳng với Admin. ........... 45
Hình 3. 1: Giai đoạn BCH Đoàn trường dự kiến chỉ tiêu và ra công văn. ............. 51
Hình 3. 2: Giai đoạn lớp trưởng chi đoàn nhận công văn và khảo sát thành tích chi
đoàn mình. .............................................................................................................. 52
Hình 3. 3: Giai đoạn BCH Đoàn trường nhận và tổng hợp danh sách và phân loại
khen thưởng. ........................................................................................................... 52
Hình 3. 4: Giai đoạn kiểm duyệt thông tin kê khai của phòng CTSV. .................. 52
Hình 3. 5: Giai đoạn kiểm duyệt thông tin kê khai của Phòng Đào tạo................. 53
Hình 3. 6: Giai đoạn xác nhận và phản hồi của các chi đoàn và Liên chi đoàn. ... 53
Hình 3. 7: Giai đoạn chốt danh sách của BCH Đoàn trường và kết thúc. ............. 53
Hình 3. 8: Cấu hình file acitviti-admin.properties ................................................. 54
Hình 3. 9: Cấu hình file acitviti-app.properties...................................................... 54
Hình 3. 10: Cấu hình file db.properties. ................................................................. 55
Hình 3. 11: Các file script tạo bảng cho cơ sở dữ liệu. .......................................... 55
Hình 3. 12: Cơ sở dữ liệu được tạo thành công. .................................................... 56
Hình 3. 13: Tạo người dùng mới trong ứng dụng. ................................................. 56
Hình 3. 14: Tạo app mới trong ứng dụng với quy trình nghiệp vụ cụ thể. ............ 57

viii

Downloaded by Anh Nguy?n Hoàng (nguyenhoanganhptit@gmail.com)


lOMoARcPSD|25633883

Hình 3. 15:App mới đã được tạo. ........................................................................... 57


Hình 3. 16: Bắt đầu quy trình nghiệp vụ với ứng dụng mới. ................................. 58
Hình 3. 17: Các bên liên quan thực hiện tác vụ của mình. .................................... 58
Hình 3. 18: User admin kiểm tra tiến độ thực hiện quy trình nghiệp vụ. .............. 59
Hình 3. 19: Chỉnh sửa mã nguồn cho công cụ. ...................................................... 59
Hình 3. 20: Hàm kiểm tra quyền admin. ................................................................ 60
Hình 3. 21: Kickstart App bị ẩn với những user không phải admin. ..................... 60

ix

Downloaded by Anh Nguy?n Hoàng (nguyenhoanganhptit@gmail.com)


lOMoARcPSD|25633883

DANH MỤC BẢNG BIỂU


Bảng 1. 1: Các quy ước và ký hiệu trong quản lý truy cập dựa trên cơ sở vai trò. 11
Bảng 1. 2: Ví dụ về quản lý truy cập theo vai trò theo nhóm người dùng trong một
dự án. ...................................................................................................................... 13

Downloaded by Anh Nguy?n Hoàng (nguyenhoanganhptit@gmail.com)


lOMoARcPSD|25633883

DANH MỤC CỤM TỪ VIẾT TẮT

Ký hiệu Từ gốc Ý nghĩa


Mô hình & ký hiệu quy trình
BPMN Business Process Model & Notation
nghiệp vụ
Ngôn ngữ mô hình hóa thống
UML Unified Modeling Language
nhất
BPM Business Process Management Quản lý quy trình nghiệp vụ
Quản lý truy cập trên cơ sở vai
RBAC Role-based Access Control
trò
CTSV Công tác sinh viên
BCH Ban chấp hành
PM Project Management Người quản lý dự án
University of Engineering & Đại học Công Nghệ
UET
Technology
VNU Vietnam National University Đại học Quốc gia

xi

Downloaded by Anh Nguy?n Hoàng (nguyenhoanganhptit@gmail.com)


lOMoARcPSD|25633883

LỜI NÓI ĐẦU

Khi nhắc đến quy trình nghiệp vụ, điều đầu tiên ta có thể hình dung được về nó
là cách thức tổ chức và tiến trình thực hiện của một hoạt động nghiệp vụ của một công
ty, tổ chức nào đó. Những quy trình này cần phải tuân theo một nguyên tắc nhất định
tùy vào định nghĩa của từng tổ chức, công ty để đạt được hiệu quả cao nhất. Quy trình
dù lớn hay nhỏ, của bất kỳ công ty, tổ chức nào cũng cần tuân thủ nghiêm ngặt những
nguyên tắc này để thể hiện được đó là một quy trình rõ ràng, mạch lạc của một công
ty, tổ chức có độ chuyên nghiệp cao. Qua đó nâng cao chất lượng hoạt động của công
ty, tổ chức, đồng thời khẳng định chỗ đứng và tạo niềm tin đối với xã hội. Tuy nhiên,
để có được tính thống nhất và chuyên nghiệp cao trong xử lý và vận hành quy trình
nghiệp vụ không phải là điều dễ dàng, cần rất nhiều thời gian và kinh nghiệm tích lũy
dần theo thời gian thông qua những sai lầm và vướng mắc ban đầu để có được một
cách thức vận hành quy trình nghiệp vụ tốt hơn trong những lần sau.

Như vậy, một quy trình nghiệp vụ rõ ràng, mạch lạc, chuyên nghiệp là một trong
những yếu tố cốt lõi nhất để tiến tới hiệu quả trong hoạt động của tổ chức, công ty, từ
đó mở rộng ra tầm nhìn thị trường và chiến lược phát triển, tối ưu hóa quy trình nghiệp
vụ với chi phí thấp và trong thời gian ngắn. Không phủ nhận rằng hầu hết các tổ chức,
công ty, không chỉ về công nghệ mà còn trên rất nhiều những lĩnh vực khác như kinh
tế, công nghiệp,... đang đầu tư và chú trọng nhiều vào nâng cao sự chuyên nghiệp trong
quy trình nghiệp vụ của mình. Tuy nhiên, do thiếu kinh nghiệm ban đầu trong quản lý
và đôi khi do sự lỏng lẻo và không rành mạch trong việc xây dựng các nguyên tắc cho
quy trình nghiệp vụ, nhất là với những công ty, tổ chức start-up còn non trẻ, mà các
quy trình nghiệp vụ của họ bị rời rạc, chắp vá, không có tính kết nối.

BPMN là chương trình mã nguồn mở được xây dựng để đáp ứng được nhu cầu
mong mỏi trên, giúp người làm nghiệp vụ có thể triển khai ý tưởng nghiệp vụ của mình
dưới dạng những biểu đồ, mô hình thực sự dễ hiểu, rành mạch, trực quan, giúp truyền
đạt nhanh chóng và tăng hiệu quả tương tác giữa người thiết kế và người thực hiện
nghiệp vụ.

Với những trình bày ở trên, phần lý thuyết của khóa luận này sẽ tập trung vào
nghiên cứu những gì liên quan tới quy trình nghiệp vụ theo chuẩn BPMN 2.0 với tích
hợp RBAC. Bên cạnh đó, khóa luận này cũng áp dụng những lý thuyết tìm hiểu và
nghiên cứu được vào bài toán khen thưởng sinh viên trong trường Đại học Công Nghệ.

Downloaded by Anh Nguy?n Hoàng (nguyenhoanganhptit@gmail.com)


lOMoARcPSD|25633883

Bố cục của khóa luận này bao gồm phần mở đầu, phần kết thúc và ba chương nội
dung. Chương 1 giới thiệu chi tiết những lý thuyết về mô hình hóa nghiệp vụ, quy trình
nghiệp vụ theo chuẩn BPMN 2.0 và RBAC. Chương 2 giới thiệu về công cụ mã nguồn
mở Activiti trong thao tác với mô hình quy trình nghiệp vụ và diễn giải những yếu tố cấu
thành kèm ví dụ cụ thể. Chương 3 phát biểu bài toán khen thưởng sinh viên, các giải pháp
hiện thời, lý do cần sử dụng BPMN 2.0 và giới thiệu mô hình cho bài toán. Cài đặt và
thực nghiệm. Cuối cùng, phần kết luận sẽ tổng kết lại những gì đã làm được trong khóa
luận này và hướng phát triển trong tương lai.

Downloaded by Anh Nguy?n Hoàng (nguyenhoanganhptit@gmail.com)


lOMoARcPSD|25633883

CHƯƠNG 1: KIẾN THỨC NỀN TẢNG

Quy trình nghiệp vụ và mô hình hóa quy trình nghiệp vụ

Như đã giới thiệu qua ở phần mở đầu, trong phần này xin được nói rõ hơn về những
gì đã đề cập [1].

Khái niệm quy trình nghiệp vụ

Như đã nói tổng quan ở trên với những hình dung ban đầu, phần này xin đưa ra một
định nghĩa chính thống hơn về quy trình nghiệp vụ. Quy trình nghiệp vụ là một tập hợp
các hoạt động, tác vụ có liên quan đến nhau và được tổ chức theo một chuỗi tuần tự ứng
với một quy chuẩn nhất định được thực hiện bởi con người hoặc máy móc để vận hành
một dịch vụ hay cho ra sản phẩm nào đó cho một người hoặc một nhóm đối tượng khách
hàng cụ thể, và họ có thể biết hoặc không biết tới điều này

BPM (Business Process Management) là việc xác định, cải thiện và quản lý quy
trình nghiệp vụ từ đầu tới cuối với mục đích đạt được ba mục tiêu quan trọng tính theo
hiệu suất. Mục tiêu đầu tiên là có định hướng chiến lược rõ ràng. Tiếp theo là liên kết các
nguồn lực của doanh nghiệp sao cho có hoạt động hiệu quả. Cuối cùng là tăng tính kỷ luật
và nguyên tắc trong mọi hoạt động của doanh nghiệp.

Các thành phần của quy trình nghiệp vụ

Quy trình nghiệp vụ gồm ba thành phần như trên Hình 1.1, bao gồm các bước nghiệp
vụ, các mục tiêu nghiệp vụ và các bên liên quan.

Hình 1. 1: Các thành phần của quy trình nghiệp vụ.

Downloaded by Anh Nguy?n Hoàng (nguyenhoanganhptit@gmail.com)


lOMoARcPSD|25633883

- Các bước nghiệp vụ (Business Steps): là các công đoạn, tác vụ nhỏ và có thể coi là
đơn vị nghiệp vụ nhỏ nhất không thể chia nhỏ hơn, tất cả chúng cấu thành nên một
nghiệp vụ lớn được thực hiện từ đầu tới cuối cho ra một kết quả nhất định.

- Những mục tiêu nghiệp vụ (Business Goals): là những gì mà tổ chức, doanh nghiệp
mong muốn đạt đến trong một khuôn khổ thời gian nhất định, mục tiêu có thể có liên
quan tới toàn doanh nghiệp, hay đôi khi chỉ có liên quan tới một vài bộ phận trong
nội bộ doanh nghiệp đó hoặc cũng có thể có liên quan tới một số lĩnh vực, khía cạnh
khác của doanh nghiệp.

- Các bên liên quan (Stakeholders - hay còn gọi là các tác tử): là tất cả các nhóm
đối tượng có liên quan tới quy trình nghiệp vụ, đây là định nghĩa một cách tương đối,
tức là một tác tử đôi khi trong một số nghiệp vụ sẽ được chia nhỏ thành các tác tử
nhỏ hơn, bao gồm doanh nghiệp và các bộ phận bên trong, các doanh nghiệp, công
ty đối tác, liên kết và bao gồm cả khách hàng của doanh nghiệp, công ty đó.

Vai trò của quy trình nghiệp vụ

Từ định nghĩa trên, như vậy, quy trình nghiệp vụ chính là hiện thân của cách thức
vận hành và cốt lõi của một tổ chức, doanh nghiệp và vì thế nó quyết định đến sự sống
còn của tổ chức, doanh nghiệp ấy và năng lực cạnh tranh với các doanh nghiệp, công ty
đối thủ
Thứ nhất, một quy trình nghiệp vụ được xác định đầy đủ, rõ ràng giúp ta xác định
được những công đoạn, tác vụ nào là quan trọng hơn cả phục vụ cho những mục tiêu
kinh doanh lớn.

Tất cả chúng ta đều hiểu và nhận thức được rằng, để đạt được hiệu quả cao nhất
và chất lượng tốt nhất cho một công việc, những công đoạn quan trọng và thiết yếu cần
được ưu tiên xử lý trước nhất và sau đó là những công đoạn, tác vụ khác. Một quy trình
nghiệp vụ không chỉ đơn thuần là một tuần tự các hoạt động của dự án hay công việc mà
nó còn quyết định đến chiến lược và tốc độ phát triển của công ty, doanh nghiệp. Con
đường phát triển của tổ chức, doanh nghiệp ấy thuận lợi hay vất vả, bằng phẳng hay gồ
ghề, đều phụ thuộc vào “chiếc xẻng” ấy xây dựng nên. Quy trình nghiệp vụ càng rành
mạch, rõ ràng, nghiệp vụ được tiến hành càng thuận lợi, đúng kỳ vọng của doanh nghiệp,
tạo uy tín, thắt chặt và giữ lâu bền các mối quan hệ của tổ chức, doanh nghiệp với khách
hàng và các đối tác.

Thứ hai, quy trình nghiệp vụ là một công cụ hữu hiệu để giao tiếp và tương tác
giữa các thành viên/phòng ban trong doanh nghiệp để thực hiện các công việc cụ thể.

Downloaded by Anh Nguy?n Hoàng (nguyenhoanganhptit@gmail.com)


lOMoARcPSD|25633883

Một tổ chức, doanh nghiệp là một khối thống nhất, gồm nhiều phòng ban và bộ
phận hợp thành mà trong đó mỗi bộ phận lại đảm nhận một chức năng hay nhiệm vụ
chuyên biệt. Vì vậy một công việc hay tác vụ thường không do chỉ một phòng ban đảm
nhiệm mà cần đến sự hợp sức và chung tay của nhiều phòng ban để hoàn thành tốt nhất.
Quy trình nghiệp vụ được xây dựng sẽ chỉ rõ nhiệm vụ cụ thể mà mỗi bộ phận sẽ phải
làm ứng với chức năng mà mình đảm nhiệm, tuần tự từ bộ phận này đến bộ phận khác
cho đến khi công việc hoàn thành, giúp họ “hiểu nhau” hơn và phối hợp nhịp nhàng, hiệu
quả hơn để chất lượng công việc cao nhất, với ít nhầm lẫn, rủi ro nhất và trong thời gian
nhanh nhất.

Thứ ba, quy trình nghiệp vụ rõ ràng sẽ ổn định hóa và đưa hoạt động của tổ chức,
doanh nghiệp vào một quỹ đạo xác định.

Như đã phân tích ở trên, quy trình nghiệp vụ đóng một vai trò không nhỏ trong
việc hoạch định chiến lược phát triển của tổ chức, doanh nghiệp. Quy trình nghiệp vụ
càng rõ ràng và cụ thể thì tầm nhìn của tổ chức, doanh nghiệp càng dễ dàng xác định và
đạt đến mục tiêu đề ra càng nhanh, từ đó sẽ có nhiều hơn những cơ sở để xác định những
cơ hội, những tiềm năng phát triển trong tương lai. Việc xác định rõ ràng kế hoạch và có
sự tính toán, chuẩn bị trước sẽ dễ dàng ứng phó hơn với những đổi thay và rủi ro. Việc
thực hiện nghiệp vụ sẽ ổn định hơn với những sự chuẩn bị kỹ càng từ trước và không bị
bất ngờ khi rủi ro ập đến, con thuyền của tổ chức, doanh nghiệp sẽ được chèo lái thuận
lợi và sẽ tới đích trong thời gian nhanh nhất. Và từ đây, khi quỹ đạo đã được xác định
và thống nhất, những tiêu chuẩn và nguyên tắc nhất định sẽ được tạo dựng và có thể tái
sử dụng cho những quy trình nghiệp vụ tương tự hoặc làm cơ sở để phát triển lên với
những nghiệp vụ phức tạp cho những mục tiêu lớn hơn. Cứ như vậy, tinh thần của tổ
chức, doanh nghiệp sẽ không ngừng được nâng cao và kéo theo đó sẽ là hiệu quả cao
trong công việc nội bộ và đối ngoại.

Với những lý do kể trên, ta có thể thấy rằng việc quản lý tốt và nghiêm túc quy
trình nghiệp vụ mang lại rất nhiều những lợi ích đáng quý cho tổ chức, doanh nghiệp,
thúc đẩy tốc độ phát triển và tạo dựng được uy tín với khách hàng, với đối tác.

Mô hình hóa quy trình nghiệp vụ

Với những vai trò của quy trình nghiệp vụ được nói ở phần 1.1.3, ta cần có một
cách tiếp cận cụ thể với chúng. Trong báo cáo này xin được nói đến và phân tích về một
cách tiếp cận khá đơn giản mà hầu hết các tổ chức, doanh nghiệp bây giờ vẫn thường
dùng, đó là mô hình hóa nghiệp vụ.

Downloaded by Anh Nguy?n Hoàng (nguyenhoanganhptit@gmail.com)


lOMoARcPSD|25633883

Nói đến mô hình hóa nghiệp vụ, hiểu một cách nôm na và dễ hình dung nhất khi
nghe nói tới chính là biểu diễn quy trình nghiệp vụ dưới dạng mô hình trực quan với
những quy chuẩn nhất định, nhưng đủ đơn giản để hiểu và đảm bảo tất cả các bên liên
quan cùng hiểu rõ và thống nhất. Cụ thể về vấn đề này sẽ nói rõ ở những phần sau, còn
trong phần này xin được chỉ ra những ưu điểm và chỉ rõ những lý do vì sao mô hình hóa
quy trình nghiệp vụ lại được sử dụng nhiều tại các tổ chức, doanh nghiệp hiện thời.

Việc mô hình hóa quy trình nghiệp vụ thường sẽ được thực hiện bởi bộ phận phân
tích nghiệp vụ hoặc bộ phận quản lý mà nhiệm vụ của họ là cải thiện và tối ưu hóa quy
trình nghiệp vụ, giảm thiểu sự lãng phí mà vẫn đạt được hiệu quả và mục tiêu như mong
đợi.

Thứ nhất, mô hình hóa quy trình nghiệp vụ sẽ cải thiện và tạo dựng tốt hơn sự kết
nối giữa các tác vụ con trong một quy trình nghiệp vụ lớn.

Như đã nói ở phần trên, một nghiệp vụ sẽ bao gồm nhiều những tác vụ con hợp
thành và thông thường sẽ liên quan đến nhiều bộ phận, phòng ban khác nhau trong tổ
chức, doanh nghiệp và đòi hỏi cần sự gắn kết và phối hợp nhịp nhàng giữa các bộ phận,
phòng ban để đi đến hiệu quả cao nhất. Việc mô hình hóa quy trình nghiệp vụ sẽ đưa đến
sự thống nhất giữa các bộ phận tham gia vào nghiệp vụ, tất cả sẽ cùng hiểu rõ cách thức
làm việc, vận hành và sự liên kết với nhau như thế nào, quyền hạn và trách nhiệm của
mình ra sao, hiểu rõ tường tận bản chất công việc và thực hiện theo quy ước định sẵn.
Thứ hai, mô hình hóa quy trình nghiệp vụ là cầu nối giữa nghiệp vụ doanh nghiệp
với chiến lược phát triển.

Bất kể một tổ chức, doanh nghiệp nào, hoạt động và công việc của họ luôn đi đôi
với những mục tiêu nhất định và những mục tiêu đó phục vụ cho một mục đích lớn duy
nhất là sự phát triển, củng cố vị thế và chỗ đứng của mình trên thị trường và đủ sức cạnh
tranh với các doanh nghiệp, tổ chức bên cạnh. Muốn đạt được điều này thì đóng góp một
phần không nhỏ chính là quy trình nghiệp vụ rõ ràng, mạch lạc, và chính mô hình hóa
của quy trình nghiệp vụ là điều phản ánh rõ nhất mong muốn và là con đường tuyệt vời
nhất mà doanh nghiệp có thể đi để tiến tới mục tiêu đã đề ra, củng cố thêm nền móng cho
chiến lược phát triển từ ngắn hạn đến dài hạn của tổ chức, doanh nghiệp. Bên cạnh đó, đi
đôi cùng với quy trình nghiệp vụ cũng là những quy trình truyền thống, và việc mô hình
hóa cải thiện khá tốt những quy trình truyền thống này. Khi triển khai nghiệp vụ mới, vai
trò của các bộ phận hay một số tác vụ trong quy trình cần có những sự thay đổi, và mô
hình hóa quy trình nghiệp vụ là cách thức hữu hiệu nhất để thực hiện những thay đổi này
một cách dễ dàng, nhanh gọn.

Downloaded by Anh Nguy?n Hoàng (nguyenhoanganhptit@gmail.com)


lOMoARcPSD|25633883

Thứ ba, mô hình hóa nghiệp vụ sẽ giúp cho tổ chức, doanh nghiệp có được sự cạnh
tranh tốt hơn với các tổ chức, doanh nghiệp bên cạnh.

Quy trình nghiệp vụ rõ ràng, mạch lạc, đôi khi chỉ cần được nghe nói, được giới
thiệu cũng có thể thấy được sự tiềm năng và chuyên nghiệp của nó, hứa hẹn sẽ có một
kết quả trên cả sự mong đợi. Nhưng có một sự thật không phải ai cũng nhận ra đó là dù
một quy trình nghiệp vụ có chuyên nghiệp, độc đáo đến mấy mà không được mô tả và
phác họa đúng với ý tưởng, không có được sự hiểu đúng và sự đồng thuận của tất cả các
bên liên quan đến quy trình nghiệp vụ, thì cũng không thể đạt được hiệu quả cao như
mong đợi mà sẽ dẫn tới sự hiểu nhầm và bất động thuận trong nội bộ nghiệp vụ và sẽ mất
rất nhiều thời gian để giải quyết xung đột và nhất quán lại mọi thứ, đôi khi nghiêm trọng
thì dẫn tới sự đổ bể.

Việc thực hiện mô hình hóa quy trình nghiệp vụ không chỉ đơn thuần là chuyển
hóa ý tưởng nghiệp vụ thành mô hình, mà nó bao gồm rất nhiều công đoạn, cần đầu tư
một lượng thời gian và nhân lực không nhỏ, từ việc lên kế hoạch bằng tài liệu chữ, từ đó
mô phỏng tài liệu ấy thành mô hình, và sau đó là một quá trình phân tích và ước lượng
dựa trên những điều kiện thực tế của tổ chức, doanh nghiệp để tối ưu hóa mô phỏng đó
đến mức tốt nhất có thể, trên mọi khía cạnh, từ kinh phí đến thời gian, nguồn nhân lực.
Một quy trình nghiệp vụ thành công không phải ở cách lên ý tưởng, ở những điểm đột
phá, khác biệt với các quy trình nghiệp vụ khác phổ biến, mà là ở cách thức vận hành
của nó, cách các bộ phận liên quan phối hợp và thực hiện nghiệp vụ. Khi đã nâng cao
được hiệu quả phối hợp giữa các bộ phận trong tổ chức, doanh nghiệp thì theo đó tính
cạnh tranh của tổ chức, doanh nghiệp ấy cũng sẽ tốt lên rất nhiều.

Tuy nhiên, những yếu tố đó mới chỉ đáp ứng được mục tiêu ngắn hạn và đạt được
hiệu quả mong muốn nhất thời trong một giai đoạn nhất định, còn nếu tính đến những
mục tiêu và kế hoạch dài hạn, cần thêm một yếu tố nữa không kém phần quan trọng, là
mô hình nghiệp vụ cần có tính linh động, có những quy chuẩn dùng được cho nhiều
trường hợp nghiệp vụ khác nhau giúp dễ dàng thừa kế, thay đổi phù hợp với từng tình
hình cụ thể để không mất công định nghĩa và tính toán lại từ đầu, giúp tiết kiệm thời gian
và công sức. Thực tế đã chỉ rõ những tổ chức, doanh nghiệp có được thành công không
nhất thiết là họ có ý tưởng hay, độc đáo so với các tổ chức, doanh nghiệp đại trà truyền
thống, mà là họ đầu tư hiệu quả và liên tục vào việc làm mịn và cải thiện quy trình nghiệp
vụ vốn có của họ.

Thứ tư, mô hình hóa nghiệp vụ giúp làm rõ và diễn giải theo cách dễ hình dung
những nghiệp vụ khó.

Điều mà ta thường thấy ở những tổ chức, doanh nghiệp lớn và vừa, đó là tính đa

Downloaded by Anh Nguy?n Hoàng (nguyenhoanganhptit@gmail.com)


lOMoARcPSD|25633883

dạng trong quy trình nghiệp vụ và có đủ loại từ dễ đến khó, từ đơn giản đến phức tạp, các
tổ chức, doanh nghiệp nhỏ đôi khi cũng cần đến những nghiệp vụ phức tạp ở mức tương
đối nhưng khá hiếm. Và chúng ta đều biết rằng, những nghiệp vụ càng khó thì càng cần
sự kết hợp của nhiều bộ phận và tốn nhiều công sức thực hiện, và độ khó của nghiệp vụ
là yếu tố ta không thể can thiệp hoàn toàn được. Vì vậy, chỉ có một cách là diễn giải trên
một khía cạnh dễ hiểu nhất có thể để tất cả các bộ phận liên quan có được cái nhìn trực
quan nhất và dễ hiểu nhất về nghiệp vụ cần thực hiện. Mô hình hóa nghiệp vụ là một cách
tiếp cận hiệu quả với những nghiệp vụ khó và là một công cụ đắc lực để xóa tan những
rối bời và mơ hồ kể cả đối với những quy trình nghiệp vụ khó nhất.

Thứ năm, mô hình hóa nghiệp vụ giúp nắm rõ và kiểm soát được độ phức tạp của
quy trình nghiệp vụ.

Việc mô hình hóa nghiệp vụ quản lý khá tốt những nghiệp vụ và quy trình có độ
phức tạp cao. Thực hiện mô hình hóa nghiệp vụ với những nghiệp vụ và quy trình phức
tạp sẽ giúp diễn giải chúng theo một tầm nhìn khá rộng và từ đây bộ phận phân tích
nghiệp vụ có thể đào sâu và tiếp cận nhiều khía cạnh của nghiệp vụ, từ đó dự đoán và
phát hiện những ảnh hưởng và rủi ro có thể xảy ra, bên cạnh những cơ hội phát triển tiềm
năng trong vòng đời của nghiệp vụ, quy trình đó hay xa hơn là có cơ sở để xây dựng
những quy ước, tiêu chuẩn cho các quy trình nghiệp vụ tương tự hoặc có độ phức tạp lớn
hơn trong tương lai. Ngoài ra, mô hình hóa quy trình nghiệp vụ còn làm tăng tính trực
quan đối với những nghiệp vụ phức tạp mà người thực hiện có thể không mất nhiều thời
gian để hiểu.

Thứ sáu, mô hình hóa quy trình nghiệp vụ giúp tiết kiệm một lượng lớn thời gian
và kinh phí.

Như đã phân tích ở trên, với trong quá trình thực hiện mô hình hóa với một số
nghiệp vụ cụ thể, ta có thể xây dựng những quy ước và nguyên tắc chuẩn áp dụng cho
một phạm vi hay lĩnh vực nghiệp vụ nhất định, có thể linh động thay đổi với những nghiệp
vụ tương tự mà không mất thời gian và công sức nghiên cứu và định nghĩa mọi thứ lại từ
đầu, giúp tiết kiệm rất nhiều thời gian và tiền bạc.

Giới thiệu về quy trình nghiệp vụ BPMN 2.0

Tổng quan về BPMN 2.0

Đây là một chuẩn mô hình được phát triển bởi nhóm OMG (Object Management
Group) với mục đích chính là cung cấp một tập hợp các ký hiệu đồ họa đại diện cho từng
loại tác vụ trong một quy trình nghiệp vụ, có kết cấu và cách thức hoạt động gần giống
với ngôn ngữ mô hình hóa thống nhất (UML - Unified Modeling Language) với mục đích

Downloaded by Anh Nguy?n Hoàng (nguyenhoanganhptit@gmail.com)


lOMoARcPSD|25633883

là hỗ trợ cho quá trình quản lý nghiệp vụ kinh doanh được dùng cho cả các tổ chức, doanh
nghiệp kỹ thuật hay kinh tế, tập hợp ký hiệu này tương đối trực quan đối với người dùng
doanh nghiệp nhưng cũng có thể đại diện cho những ngữ nghĩa phức tạp của quy trình
nghiệp vụ.

So với các phiên bản trước đó, BPMN 2.0 đã được bổ sung thêm những tiêu chuẩn
hỗ trợ cho việc xây dựng mô hình quản lý trường hợp (Case Management Model) và mô
hình quyết định (Decision Model) [5].

Thiết kế quy trình nghiệp vụ theo chuẩn BPMN 2.0


Có rất nhiều cách để tạo dựng được một quy trình nghiệp vụ theo chuẩn BPMN 2.0
này, tùy theo cách suy nghĩ và tư duy của người tạo dựng và phân tích nghiệp vụ, theo
từng văn hóa và phong cách làm việc của mỗi tổ chức, doanh nghiệp. Bài báo cáo này
xin nói tới quy trình chuẩn nhất, phổ thông nhất và có thể được áp dụng bởi đại đa số các
tổ chức, doanh nghiệp, có tên là BPM life-cycle (Business Process Management life-
cycle). [6]

Hình 1. 2: Các bước chính trong thiết kế quy trình nghiệp vụ theo chuẩn BPMN 2.0.

Pha 1 - Thiết kế (Design): Ở pha này cần xác định được các quy trình cần thực
hiện ở thời điểm hiện tại và cả sau này. Tập trung vào luồng nghiệp vụ, những yếu tố bên
trong, những cảnh báo rủi ro, tiến độ thực hiện, quy trình nghiệp vụ tiêu chuẩn và cơ chế
bàn giao, đảm bảo một thiết kế chính xác và hiệu quả.

Downloaded by Anh Nguy?n Hoàng (nguyenhoanganhptit@gmail.com)


lOMoARcPSD|25633883

Pha 2 - Mô hình hóa (Modeling): Pha này sử dụng tài liệu thiết kế ở pha trước
chuẩn hóa thành mô hình đồng thời có thể phân tích what-if trên quy trình nghiệp vụ. (Sẽ
như thế nào nếu quy trình này…)

Pha 3 - Triển khai (Execution): Ở bước này ta sẽ thực thi quy trình nghiệp vụ sau
khi đã có những phân tích cụ thể và mô hình hóa ở pha trước đó một cách thủ công (do
con người điều hành) hoặc tự động (do phần mềm, máy móc điều hành). Việc tự động
hóa quy trình nghiệp vụ có thể được thực hiện bằng cách phát triển hoặc mua một ứng
dụng thực thi các bước cần thiết của quy trình hoặc kết hợp cả sự can thiệp của con người
cùng với sự vận hành của phần mềm, tuy nhiên cách kết hợp này sẽ khiến việc thực thi
quy trình nghiệp vụ trở nên phức tạp và khó khăn hơn.
Pha 4 - Giám sát (Monitoring): Pha này bao gồm việc theo dõi các quy trình riêng
lẻ, để có thể dễ dàng nhìn thấy thông tin về trạng thái của chúng và có thể cung cấp thông
tin về hiệu suất của một hay nhiều quy trình. Có thể sử dụng thông tin này để làm việc
với khách hàng và nhà cung cấp để cải thiện các quy trình được kết nối của họ. Mức độ
giám sát cao hay thấp phụ thuộc vào những thông tin mà doanh nghiệp muốn chú trọng
và phương pháp giám sát của doanh nghiệp, theo thời gian thực hoặc gần thời gian thực.

Pha 5 - Tối ưu hóa (Optimization): Pha này bao gồm lấy thông tin hiệu suất từ
pha mô hình hóa hoặc giám sát, từ đó xác định những trở ngại đang có hoặc có thể xảy
ra và những cơ hội để giảm thiểu chi phí cũng như cải thiện hiệu suất của thực thi quy
trình nghiệp vụ, áp dụng những điều đó vào việc thay đổi thiết kế quy trình nghiệp vụ.

Điều khiển truy cập dựa trên cơ sở vai trò RBAC

Giới thiệu chung

Trong nội bộ một tổ chức hay doanh nghiệp, mỗi người hay nhóm người đều có một
vai trò và quyền hạn riêng và có những nhiệm vụ nhất định. Mỗi người hay nhóm người
đó được phân phối một vai trò riêng, và thông qua đó họ tiếp thu được những quyền hạn
ứng với vai trò mà họ đảm nhận. RBAC được xây dựng với mục đích chính là đảm bảo
quyền hạn sử dụng của người dùng hay nhóm người dùng trong một hệ thống. Ngoài ra
RBAC giúp đơn giản hóa những công việc thông thường như thêm một người dùng hay
nhóm người dùng vào hệ thống hay chuyển vai trò của người dùng.

Tính chất

Tính chất chính và đặc trưng nhất của RBAC là chỉ định các quyền hạn tới từng
hoạt động cụ thể trong quy trình nghiệp vụ thay vì tới các đối tượng dữ liệu hạ tầng.

10

Downloaded by Anh Nguy?n Hoàng (nguyenhoanganhptit@gmail.com)


lOMoARcPSD|25633883

Ví dụ: Với hệ thống quản lý cán bộ của VNU, một thao tác có thể là việc một cán
bộ nào đó cập nhật thành tích hay công trình nghiên cứu của mình vào danh sách và đây
là thao tác chỉ cán bộ mới có thể thực hiện. Hay một thao tác cũng có thể là việc một nhân
viên quản lý thêm hay xóa một cán bộ khỏi danh sách quản lý của VNU

Vai trò

- Giảm thiểu công việc quản lý và hỗ trợ công nghệ: Với RBAC, chúng ta có thể
giảm thiểu các công việc liên quan đến giấy tờ và thay đổi mật khẩu khi có nhân viên
mới hoặc chức vụ của họ thay đổi mà chỉ đơn giản là thêm hoặc chuyển đổi các vai
trò của nhân viên thông qua các hệ điều hành, các nền tảng công nghệ hay ứng dụng,
ngoài ra RBAC cũng giảm thiểu rủi ro trong việc gán quyền cho người sử dụng .

- Nâng cao hiệu suất hoạt động lên mức tối đa: RBAC cung cấp một cách tiếp cận
rõ ràng và rành mạch, thay vì cố gắng quản lý truy cập cấp thấp, tất cả các vai trò đều
được gắn liền với cấu trúc tổ chức doanh nghiệp và nhân viên có thể thực hiện công
việc của mình một cách chủ động và hiệu quả hơn.

Quy ước và các ký hiệu

Ký hiệu Từ gốc Ý nghĩa

U User Một người hoặc một tác nhân tự động.


Chức năng công việc được cấp cho một cấp bậc
R Role
người dùng hay thao tác.

P Permission Sự phê chuẩn một hình thức truy cập tài nguyên.

Một mối liên hệ giữa một hay nhiều U, R, P cụ


S Session
thể nào đó.
UA User Assignment Chỉ định người dùng.
PA Permission Assignment Cấp phép

Sắp xếp trình tự cấp bậc của vai trò, được ký


RH Role Hierarchy
hiệu bằng dấu > .

Bảng 1. 1: Các quy ước và ký hiệu trong quản lý truy cập dựa trên cơ sở vai trò.

11

Downloaded by Anh Nguy?n Hoàng (nguyenhoanganhptit@gmail.com)


lOMoARcPSD|25633883

Quan hệ giữa U, R, P là quan hệ nhiều - nhiều đôi một (Hình 1.3).

Hình 1. 3: Quan hệ giữa người dùng, quyền và vai trò trong RBAC.

Ví dụ

RBAC được tích hợp trong hệ thống quản lý nhân sự của một công ty công nghệ,
trong một dự án cụ thể nào đó có 10 người: Lan, Nam, Tùng, Trúc, Cúc, Hoàng, Quỳnh,
Uyên, Đức, Nhi. Vai trò của họ được tích hợp trong hệ thống như sau:

- Nam: PM – Quản lý chung của dự án, lên kế hoạch họp và phân công công việc
cho các thành viên trong nhóm.

- Nhi: Thư ký – Chịu trách nhiệm ghi lại biên bản các cuộc họp và lưu lại lịch sử
cuộc họp trên một hệ thống chuyên biệt.

- Lan, Tùng, Trúc, Hoàng: Nhóm 1 – Chịu trách nhiệm thiết kế cơ sở dữ liệu.

- Cúc, Quỳnh: Nhóm 2 – Code frontend.

- Uyên, Đức: Nhóm 3 – Code logic và backend.

Vai trò của từng người được tích hợp trong hệ thống này, họ cùng sử dụng chung
một nhánh của hệ thống dùng cho dự án mà họ đang làm, nhiệm vụ của họ là thực hiện
công việc theo đúng vai trò được phân công, đồng thời đánh dấu và báo cáo tiến độ thực
hiện công việc của mình như Bảng 1.2. Ô ở cột chức năng nào được đánh dấu “x” thì
người dùng/nhóm người dùng tương ứng ở hàng đó được quyền sử dụng chức năng đó.

12

Downloaded by Anh Nguy?n Hoàng (nguyenhoanganhptit@gmail.com)


lOMoARcPSD|25633883

Tạo lịch Báo cáo


Cập nhật
họp và kế Báo cáo tiến vướng mắc Giải đáp
lịch sử
hoạch dự độ công việc trong quá vướng mắc
cuộc họp
án trình làm

PM x x

Thư ký x x x x

Nhóm 1 x x x

Nhóm 2 x x x

Nhóm 3 x x x

Bảng 1. 2: Ví dụ về quản lý truy cập theo vai trò theo nhóm người dùng trong một dự án.

Tổng kết chương

Qua chương này chúng ta đã có những hình dung ban đầu về quy trình nghiệp vụ
cùng các thành phần cấu thành, vai trò quan trọng của quy trình nghiệp vụ với mỗi doanh
nghiệp, tổ chức và cả về cơ chế quản lý truy cập theo vai trò RBAC - cơ chế sẽ được tích
hợp thêm trong công cụ Activiti sẽ được trình bày ở phần sau. Ở chương tiếp theo xin
được diễn giải cụ thể và nói rõ hơn về quy trình nghiệp vụ và giới thiệu về công cụ
Activiti.

13

Downloaded by Anh Nguy?n Hoàng (nguyenhoanganhptit@gmail.com)


lOMoARcPSD|25633883

CHƯƠNG 2: MÔ HÌNH HÓA QUY TRÌNH NGHIỆP VỤ VỚI ACTIVITI

2.1. Giới thiệu chương


Với những định nghĩa và vai trò của quy trình nghiệp vụ đã nói ở chương trước, ở
chương này xin được đề cập tới phần chính và trọng tâm của báo cáo này, đó là công cụ
mô hình huá quy trình nghiệp vụ Activiti.

Chương này sẽ cung cấp chi tiết những tính năng và đồ họa được hỗ trợ trong công
cụ kèm ví dụ cụ thể cùng cách sử dụng và cách thức cài đặt công cụ, đồng thời phân tích
những gì công cụ này đang có và hướng mở rộng công cụ.

2.2. Giới thiệu về công cụ Activiti

2.2.1. Về công cụ Activiti

Activiti là một công cụ mã nguồn mở được viết bằng ngôn ngữ Java hỗ trợ mô hình
hóa quy trình nghiệp vụ theo chuẩn BPMN 2.0 và đây cũng là công cụ nền tảng cho tổ
hợp các dịch vụ của Alfresco về quy trình tác vụ (APS - Alfresco Process Services).

2.2.2. Lịch sử

Năm 2010, Baeyens và Joram Barrez - hai nhà phát triển chính của jBPM sau khi
rời Red Hat và trở thành nhân viên của Alfresco đã bắt đầu xây dựng công cụ Activiti
dựa trên những kinh nghiệm của họ trước đó với jBPM - cũng là một công cụ mã nguồn
mở hỗ trợ mô hình hóa nghiệp vụ viết bằng Java. Tuy nhiên, Activiti được xây dựng với
bộ mã nguồn hoàn toàn mới và độc lập hoàn toàn so với jBPM.

Phiên bản đầu tiên của Activiti được đánh dấu là phiên bản 5.0, mặc dù với mã
nguồn hoàn toàn mới nhưng nó lại không được hai nhà phát triển đánh dấu từ phiên bản
1.x với dụng ý rằng Activiti là sự tiếp nối trên những kinh nghiệm đã có của họ với jBPM
- công cụ đã được phát triển đến phiên bản 4.x trước khi nhường chỗ cho Activiti.

Tại Alfresco thời điểm đó, từ những viên gạch nền móng đầu tiên mà Baeyens và
Barrez đã xây dựng cho Activiti, họ đã cùng nhiều nhà phát triển khác trong công ty cùng
xây dựng và phát triển công cụ này. Đến tháng 10/2016, Barrez và Rademarkers và một
vài thành viên khác trong nhóm phát triển rời Alfresco và từ những gì cả đội đã làm được
trước đó, những thành viên còn lại rẽ sang một hướng mới với dự án mang tên Flowable
(sẽ được trình bày ở phần thực nghiệm của báo cáo này).

14

Downloaded by Anh Nguy?n Hoàng (nguyenhoanganhptit@gmail.com)


lOMoARcPSD|25633883

Trong thời điểm hiện tại, Activiti vẫn đang được phát triển với những phiên bản cao
hơn (Chi tiết xem tại github repository của công cụ1). Báo cáo này sử dụng và trình bày
phiên bản 6.0.0 của công cụ.

2.3. Giới thiệu chung về các yếu tố trong BPMN 2.0 được hỗ trợ trong công cụ

2.3.1. Giới thiệu chung

Những yếu tố được hỗ trợ trong công cụ được chia thành những nhóm chính sau:

- Đối tượng luồng (Flow Object): Là những đối tượng chính của mô hình và là
những đối tượng thể hiện những nội dung chính nhất lẫn mục đích nghiệp vụ của
mô hình đó. Bao gồm sự kiện (event), hoạt động (activity) và cổng quyết định
(gateway)
- Đối tượng kết nối (Connecting Object): Là những đối tượng liên kết các đối
tượng trong mô hình quy trình nghiệp vụ. Bao gồm Sequence flow, Message flow
và Association.
- Đối tượng chú thích (Artifact): Là những đối tượng nhằm giải thích rõ ràng và
cung cấp thêm thông tin cho một đối tượng luồng cụ thể nào đó. Bao gồm
Annotation.

2.3.2. Các yếu tố trong BPMN 2.0 được Activiti hỗ trợ

Trong phần này có một thuật ngữ được sử dụng khá nhiều, đó là tác nhân (trigger).
Tác nhân là những tác động kích thích vào một yếu tố trong mô hình, bên cạnh những
luồng nghiệp vụ vận hành từ đầu tới cuối với một chuỗi các hoạt động và tác vụ được
định sẵn thì cũng có những hành động và tác vụ cần có một điều kiện hay yêu cầu nhất
định để được thực hiện [2].

Các ví dụ ở phần này được lấy từ thế giới sống, không bị quá cứng nhắc trong khuôn
khổ mô hình nghiệp vụ doanh nghiệp, sinh động, dễ hiểu, dễ hình dung với tất cả mọi
người.

Có rất nhiều công cụ mô hình hóa quy trình nghiệp vụ trên nhiều nền tảng, về cơ
bản các công cụ này đều hỗ trợ các đồ họa mô hình giống nhau nhưng lại khác nhau ở
chỗ một số đồ họa mô hình (sự kiện, tác vụ,...) công cụ này có nhưng công cụ kia lại
không có. Phần này của bài báo cáo chỉ giải thích và làm rõ các đồ họa mô hình được hỗ
trợ bởi Activiti Designer.

1
https://github.com/Activiti/Activiti

15

Downloaded by Anh Nguy?n Hoàng (nguyenhoanganhptit@gmail.com)


lOMoARcPSD|25633883

2.2.2.1. Start Event (Sự kiện bắt đầu)

Là sự kiện cho biết dấu hiệu của việc một tiến trình được bắt đầu thực hiện với
những yếu tố đặc trưng cho sự kiện đó được gọi là trigger. Chỉ có mũi tên đi ra chứ không
có mũi tên đi vào.

Hình 2. 1: Các loại sự kiện bắt đầu.

2.2.2.1.1. None start event: (Sự kiện bắt đầu không có trigger)

Đây là sự kiện bắt đầu không xác định trigger, hay nói cách khác là không xác định
được điểm đầu tiên của quy trình hay đôi khi là nó không đáng để quan tâm, ta thường
dùng để đánh dấu điểm bắt đầu của một quy trình con.

Hình 2. 2: Ví dụ về sự kiện bắt đầu không có trigger.

Trong ví dụ tại Hình 2.2, khi biểu diễn quy trình ta chỉ cần quan tâm tới công việc
của quy trình đó chứ không quan tâm đến/không xác định được những gì ở điểm bắt đầu
của quy trình.

2.2.2.1.2. Timer Start Event (Sự kiện bắt đầu với trigger thời gian)

Là sự kiện bắt đầu xác định điểm bắt đầu của một quy trình nghiệp vụ bằng dấu thời
gian, đó có thể là một thời điểm cụ thể (ví dụ: 8h30 Thứ 4 16/02/2019) hoặc một dấu thời
gian xác định lặp lại với một chu kỳ nào đó (ví dụ: thứ 6 hàng tuần).

16

Downloaded by Anh Nguy?n Hoàng (nguyenhoanganhptit@gmail.com)


lOMoARcPSD|25633883

Hình 2. 3: Ví dụ về sự kiện bắt đầu với trigger dạng thời gian.

Trong ví dụ tại Hình 2.3, email nhắc nhở sẽ được tự động gửi đến các tài khoản của
ctmail VNU vào 0h thứ 2 hàng tuần.

2.2.2.1.3. Message start event (Sự kiện bắt đầu với trigger thông điệp)

Xác định điểm bắt đầu của một quy trình nghiệp vụ bằng việc nhận một thông điệp
nào đó từ bên ngoài. Một thông điệp là một phương thức giao tiếp giữa 2 thành phần
nghiệp vụ phân biệt và các thành phần này không thuộc cùng một phạm vi theo một quy
ước tương đối.

Hình 2. 4: Ví dụ về sự kiện bắt đầu với trigger dạng thông điệp.

Trong ví dụ tại Hình 2.4, ta sẽ làm những công việc nấu cơm, quét nhà khi có
thông điệp truyền tới từ mẹ của mình.

2.2.2.1.4. Error start event (Sự kiện bắt đầu với trigger là một lỗi)

Là sự kiện bắt đầu bằng việc có một lỗi nào đó xảy ra trong quy trình nghiệp vụ,
thường dùng ở một sự kiện của quy trình con. Xem ví dụ ở mục 2.2.2.4 - Container.

2.2.2.1.5. Signal start event (Sự kiện bắt đầu với trigger là tín hiệu)

Xác định điểm bắt đầu của một quy trình nghiệp vụ bằng việc bắt tín hiệu từ bên
ngoài, có thể từ một thành phần nghiệp vụ hoặc một quy trình nghiệp vụ khác. Đặc điểm

17

Downloaded by Anh Nguy?n Hoàng (nguyenhoanganhptit@gmail.com)


lOMoARcPSD|25633883

của tín hiệu là không có đích cụ thể và mọi quy trình nghiệp vụ đều có thể tiếp cận với
tín hiệu này và có thể bắt tín hiệu đó hoặc không. Điểm vượt trội của tín hiệu so với thông
điệp là nó có thể hoạt động trong nội bộ một quy trình nghiệp vụ (có thể giữa quy trình
cha và quy trình con) trong khi thông điệp chỉ có thể truyền qua lại giữa các thành phần
nghiệp vụ khác nhau.

Hình 2. 5: Ví dụ về sự kiện bắt đầu với trigger dạng tín hiệu.

Trong ví dụ tại Hình 2.5, sau khi tín hiệu về việc ghi nhận có thay đổi điểm thi
được xác định, việc xác thực và cập nhật điểm thi sẽ được tiến hành.

2.2.2.2. End Event (Sự kiện kết thúc)

Đánh dấu điểm kết thúc của một quy trình nghiệp vụ mà mục đích chính là xác
định loại kết quả mà việc thực hiện quy trình nghiệp vụ đó mang lại.

Hình 2. 6: Các dạng sự kiện kết thúc

2.2.2.2.1. End event (Sự kiện kết thúc đơn thuần)

Hay còn gọi là None end event, sự kiện này không xác định kết quả cuối cùng
của quy trình nghiệp vụ hoặc không đáng để quan tâm tới.

18

Downloaded by Anh Nguy?n Hoàng (nguyenhoanganhptit@gmail.com)


lOMoARcPSD|25633883

Hình 2. 7: Ví dụ về sự kiện kết thúc không quan tâm kết quả cuối cùng.

Trong ví dụ tại Hình 2.7, việc cất quần áo vào tủ là hành động cuối cùng và ta
không xác định trạng thái cuối cùng của quy trình này.

2.2.2.2.2. Error end event (Sự kiện kết thúc bằng một lỗi)

Sự kiện kết thúc mà ở đó cho biết tác nhân làm gián đoạn quy trình nghiệp vụ và
cần sửa lỗi.

Hình 2. 8: Ví dụ về sự kiện kết thúc bằng một lỗi.

Trong ví dụ tại Hình 2.8, nếu quần áo sau khi gập kiểm tra lại thấy có đồ chưa khô
hay bị rách cần có những biện pháp xử lý rồi mới cất vào tủ.

2.2.2.2.3. Terminate end event (Sự kiện kết thúc buộc dừng)

Sự kiện kết thúc với mục đích buộc dừng TẤT CẢ các luồng nghiệp vụ đang hoạt
động kể cả các quy trình nghiệp vụ con song song không ảnh hưởng tới nhau nếu một
trong số các luồng con đó ngưng hoạt động.

Ví dụ trong kho bài thi của kì thi vừa chấm xong, có thông báo rằng trong số đó
có một bài thi bị sửa điểm và ngay lập tức đội thanh tra được tập hợp và công tác được
thực hiện với các quy trình con như Hình 2.9. Quy trình gồm hai quy trình con là lấy ra
các túi bài thi đáng ngờ và xử lý từng bài thi trong mỗi túi bài thi được lấy ra đó. Hai quy
trình này được thực hiện song song.

19

Downloaded by Anh Nguy?n Hoàng (nguyenhoanganhptit@gmail.com)


lOMoARcPSD|25633883

Hình 2. 9: Ví dụ về sự kiện kết thúc chấm dứt.

Có hai quy trình con ở trên, đầu tiên kho bài thi sẽ được mở và tất cả những túi
bài thi đáng ngờ sẽ được phân phối cho các cán bộ kiểm tra, quy trình này được thực hiện
cho đến khi không còn túi bài thi đáng ngờ nào, nhiệm vụ của đội cán bộ kiểm tra là tìm
ra bài thi bị sửa điểm. Nếu bài thi đó được tìm ra thì cả 2 quy trình con ở trên đều phải
dừng lại.

2.2.2.2.4. Cancel end event (Sự kiện kết thúc với hiệu lệnh hủy)

Sự kiện kết thúc với hiệu lệnh hủy cho biết việc một tiến trình con hoặc một giao

dịch bị hủy. Hình 2.10 là ví dụ cho sự kiện kết thúc với hiệu lệnh hủy cho việc cập nhật

thành tích của cán bộ UET.

Hình 2. 10: Ví dụ về sự kiện kết thúc hủy bỏ.

Trong ví dụ tại Hình 2.10, ở quy trình lớn có một quy trình con là kiểm tra tính
hợp lệ của thông tin thành tích, sau khi cán bộ bấm ghi nhận, quy trình con này sẽ được

20

Downloaded by Anh Nguy?n Hoàng (nguyenhoanganhptit@gmail.com)


lOMoARcPSD|25633883

thực hiện , nếu thông tin hợp lệ và đầy đủ sẽ được ghi nhận để đi tới bước tiếp theo của
quy trình lớn, ngược lại sẽ bị hủy và quy trình lớn được hoàn tác.

2.2.2.3. Task (Tác vụ)

Tác vụ người dùng là đơn vị nhỏ nhất ở mức “nguyên tử” trong mô hình quy trình
nghiệp vụ và không thể chia nhỏ hơn. Hình 2.11 là một danh sách các loại tác vụ chính
được hỗ trợ bởi Activiti Designer, bao gồm User task (Tác vụ người dùng), Service task
(Tác vụ dịch vụ), Script task (Tác vụ kịch bản), Mail task (Tác vụ mail), Manual Task
(Tác vụ thủ công), Business Rule task (Tác vụ theo nguyên tắc nghiệp vụ), Receive task
(Tác vụ nhận), Call Activity (Hoạt động gọi).

Hình 2. 11: Các loại tác vụ.

2.2.2.3.1. User task (Tác vụ người dùng)

Tác vụ người dùng được thực hiện bởi con người có sự hỗ trợ của máy móc hoặc
không. Ở các ví dụ trong 2 phần trên những hình chữ nhật có nội dung bên trong là các
user task.

2.2.2.3.2. Script task (Tác vụ kịch bản)

Tác vụ kịch bản được thực thi bởi các công cụ xử lý nghiệp vụ, trong đó kịch bản
được viết bằng ngôn ngữ mà công cụ có thể hiểu và xử lý.

21

Downloaded by Anh Nguy?n Hoàng (nguyenhoanganhptit@gmail.com)


lOMoARcPSD|25633883

Hình 2. 12: Ví dụ về tác vụ kịch bản.


Trong ví dụ tại Hình 2.12, khi có một đơn hàng được gửi tới hệ thống, hai công
việc kiểm tra điều kiện khuyến mãi và tính tổng đơn hàng đều được hệ thống thực hiện
dựa trên một kịch bản được lập sẵn, sau đó tất cả thông tin đó sẽ được tổng hợp thành
một phiếu thanh toán cũng dựa trên những kịch bản được định sẵn.

2.2.2.3.3. Service Task (Tác vụ dịch vụ)

Tác vụ dịch vụ là tác vụ được thực thi sử dụng dịch vụ web, các ứng dụng tự động
hoặc tương đương.

Hình 2. 13: Ví dụ về tác vụ dịch vụ.

Trong ví dụ tại Hình 2.13, khi có một ai đó gửi tin nhắn đến fanpage của một tổ
chức nào đó, bot sẽ nhận được tin này và tự động gửi một tin nhắn phản hồi là một lời
chào.

2.2.2.3.4. Manual task (Tác vụ thủ công)

Đây là những tác vụ được thực hiện mà không cần đến một ứng dụng hay một
công cụ xử lý nghiệp vụ nào và cần có sự tham gia của con người. Điểm khác của loại
tác vụ này với User Task là tác vụ được thực thi hoàn toàn bởi con người và không có sự
can thiệp của thế giới máy móc.

22

Downloaded by Anh Nguy?n Hoàng (nguyenhoanganhptit@gmail.com)


lOMoARcPSD|25633883

Hình 2. 14: Ví dụ về tác vụ thủ công.

Trong ví dụ tại Hình 2.14, việc lắp đặt điện thoại là một tay người thợ thực hiện
không có sự can thiệp của thế giới máy móc.

2.2.2.3.5. Receive task (Tác vụ nhận)

Tác vụ nhận trong quy trình cho biết tác vụ cần nhận được một thông điệp để có
thể thực thi và tiếp tục đến các tác vụ khác. Trong ví dụ tại Hình 2.15, khi người dùng
gửi thông tin đăng ký tới hệ thống theo biểu mẫu cho sẵn, cần có sự xác thực của họ trước
khi chuyển đến các tác vụ tiếp theo. Nếu người dùng không xác thực thông tin thì thông
tin họ đăng ký sẽ bị để treo.

Hình 2. 15: Ví dụ về tác vụ nhận.

2.2.2.3.6. Business rule task (Tác vụ theo quy tắc nghiệp vụ)

Tác vụ theo quy tắc nghiệp vụ được cung cấp đầu vào theo một nguyên tắc nghiệp
vụ được quy ước và tính toán, xử lý đầu vào theo nguyên tắc này cho ra một kết quả đầu
ra. Hình 2.16 thể hiện một ví dụ về tác vụ theo quy tắc nghiệp vụ. Khi kết thúc học kì,
phòng đào tạo trường ĐHCN mở biểu mẫu nhận ý kiến phản hồi của sinh viên, sau khi
có các phản hồi, thông tin sẽ được xử lý và báo cáo lên cấp trên.

Hình 2. 16: Ví dụ về tác vụ theo nguyên tắc nghiệp vụ.

23

Downloaded by Anh Nguy?n Hoàng (nguyenhoanganhptit@gmail.com)


lOMoARcPSD|25633883

2.2.2.3.7. Call activity (Hoạt động gọi)

Đây không hẳn là một tác vụ, một hoạt động được gọi tham chiếu đến một quy
trình bên ngoài quy trình đang xét, cho phép chúng ta tạo các quy trình có thể tái sử dụng.
Hình 2.17 thể hiện một ví dụ về hoạt động gọi. Khi đi mua đồ tại siêu thị, sau khi check
out ta có thể tùy chọn phương thức thanh toán, tuy nhiên trước đó ta cần đăng ký tham
chiếu tới hệ thống đăng ký thanh toán tại siêu thị đó và hệ thống đăng ký này có thể tái
sử dụng cho các sự kiện khuyến mãi tại siêu thị hay tích điểm đổi quà.
.

Hình 2. 17: Ví dụ về hoạt động gọi.

2.2.2.4. Container

Container là những đơn vị tác vụ lớn mà chứa trong đó là nhiều các tác vụ, quy
trình con.

2.2.2.4.1. Event sub process (Quy trình con gắn với sự kiện)

Quy trình con gắn với sự kiện là sự kiện được tiến hành bằng một quy trình con
và được bắt đầu bằng 1 Error Start Event. Hình 2.18 thể hiện một ví dụ về quy trình con
gắn với sự kiện. Vào đầu năm học, phòng công tác sinh viên sẽ duyệt hồ sơ của các tân
sinh viên mới nhập học, nếu đã đầy đủ thì hồ sơ được đưa vào kho quản lý và kết thúc
tiến trình, còn nếu không quy trình con bổ sung hồ sơ sẽ được tiến hành.

Hình 2. 18: Ví dụ về quy trình con bắt đầu bằng sự kiện.

24

Downloaded by Anh Nguy?n Hoàng (nguyenhoanganhptit@gmail.com)


lOMoARcPSD|25633883

2.2.2.4.2. Transaction (Giao dịch)

Giao dịch là một nhóm hoạt động tạo nên một quy trình con theo nguyên tắc thành
công hoặc fail cả tiến trình, thường kèm theo một sự kiện biên hoàn tác.

Hình 2. 19: Ví dụ về giao dịch.

Ví dụ tại Hình 2.19 mô tả quy trình đăng ký mua hàng online, sau khi đã chọn
được món hàng ưng ý. Người dùng sẽ thực hiện một giao dịch là điền thông tin để cửa
hàng có thể biết được đủ thông tin xác nhận để giao hàng và người mua có thể hủy giao
dịch nếu họ muốn, nếu giao dịch thành công sẽ đi đến bước giao hàng còn không đơn sẽ
bị hủy.

2.2.2.4.3. Sub process (Quy trình con)

Cũng như ví dụ tại Hình 2.19, một giao dich cũng có thể được coi là một tiến
trình con.

2.2.2.4.4. Pool

Bao gồm những thành phần chính trong một quy trình nghiệp vụ cụ thể, có thể
biểu diễn chi tiết các thành phần ở dạng nhiều làn nhỏ cùng thông tin chi tiết về quy trình
nghiệp vụ được biểu diễn (dạng mở - Hình 2.20), hoặc chỉ là một hình chữ nhật rỗng
tượng trưng cho một quy trình nghiệp vụ lớn (dạng đóng – Hình 2.21).

25

Downloaded by Anh Nguy?n Hoàng (nguyenhoanganhptit@gmail.com)


lOMoARcPSD|25633883

Hình 2. 20: Pool dạng đóng.

2.2.2.4.5. Lane
Hình 2. 21: Pool dạng mở.

Lane nằm trong pool, một pool có nhiều lane. Lane biểu thị sự sắp xếp và phân loại
các hoạt động trong quy trình nghiệp vụ dựa trên tính năng hoặc vai trò. Ví dụ như pool
dạng mở ở phần trên, với một pool có tên Approval bao gồm nhiều lane là Customer,
Sales, Contracts,...

2.2.2.5. Gateway (Cổng quyết định)

Cổng quyết định là kí hiệu được dùng khi ta muốn rẽ nhánh quy trình hoặc gộp
các quy trình có thể thực hiện song song.

26

Downloaded by Anh Nguy?n Hoàng (nguyenhoanganhptit@gmail.com)


lOMoARcPSD|25633883

Hình 2. 22: Các loại cổng quyết định.


2.2.2.5.1. Parallel gateway (Cổng quyết định song song)

Cổng quyết định song song là cổng được sử dụng khi từ một tác vụ ta cần thực
hiện nhiều tác vụ khác cùng một lúc tiếp đó. Xem ví dụ về sự kiện kết thúc với hiệu lệnh
hủy ở Hình 2.10.
2.2.2.5.2. Exclusive gateway (Cổng quyết định loại trừ)

Là cổng được sử dụng khi sau một tác vụ ta có một trong các sự lựa chọn để thực
hiện tiếp và chỉ thực hiện một tác vụ trong số các sự lựa chọn đó với một điều kiện nhất
định và những chuỗi tác vụ sau đó từ các tác vụ lựa chọn này gần như không liên quan gì
tới nhau. Xem ví dụ về gấp quần áo ở Hình 2.8.

2.2.2.5.3. Inclusive gateway (Cổng quyết định không độc quyền)

Cổng quyết định không độc quyền là cổng được thực hiện khi có thể có nhiều khả
năng thực hiện cho các tác vụ tiếp theo, có thể là một hoặc nhiều hoặc tất cả. Phân biệt
với các tác vụ song song là tất cả các tác vụ song song đều được thực hiện còn các tác vụ
loại trừ thì chỉ duy nhất một tác vụ thỏa mãn điều kiện sẽ được thực thi tiếp.

Hình 2. 23: Ví dụ về cổng quyết định không độc quyền.

27

Downloaded by Anh Nguy?n Hoàng (nguyenhoanganhptit@gmail.com)


lOMoARcPSD|25633883

Trong ví dụ ở Hình 2.23, khi xem xét hồ sơ ứng tuyển cho mỗi đợt khen thưởng,
người kiểm duyệt sẽ xét đến hai tiêu chí độc lập, có thể một hoặc cả hai tiêu chí này đều
được đáp ứng, cũng có thể không có tiêu chí nào.

2.2.2.5.4. Event gateway (Cổng quyết định sự kiện)

Là cổng được thực hiện khi từ một tác vụ có thể có nhiều tác vụ được thực hiện
tiếp theo dựa trên những sự kiện từ bên ngoài (ví dụ: khoảng thời gian, ngày, giờ,...)

2.2.2.6. Boundary Events (Các sự kiện biên)

Các sự kiện dạng này dùng để điều khiển các hoạt động.

2.2.2.6.1. Timer boundary event (Sự kiện biên thời gian)

Sự kiện biên loại này sẽ cài vào hoạt động một bộ đếm thời gian và khi sự kiện
diễn ra quá thời hạn của bộ đếm, luồng nghiệp vụ phụ từ sự kiện này sẽ được thực hiện.

Hình 2. 24: Ví dụ về sự kiện biên thời gian.


Trong ví dụ trên Hình 2.24, nếu thông tin đăng ký không được xác thực trong 2
ngày thì việc đăng ký sẽ bị hủy.

2.2.2.6.2. Error boundary event (Sự kiện biên lỗi)

Sự kiện biên loại này tạo một luồng nghiệp vụ thay thế nếu luồng nghiệp vụ hiện
thời có lỗi ở một hoạt động được chỉ định và khi có lỗi xảy ra luồng nghiệp vụ thay thế
sẽ được thực hiện.

Hình 2. 25: Ví dụ về sự kiện biên lỗi.

28

Downloaded by Anh Nguy?n Hoàng (nguyenhoanganhptit@gmail.com)


lOMoARcPSD|25633883

Trong ví dụ ở Hình 2.25, với chức năng chuyển tiền của một loại ví điện tử nào
đó, nếu có lỗi trong hệ thống chuyển tiền thì một thông báo lỗi sẽ được gửi về tài khoản
người dùng và quá trình chuyển tiền được hoàn tác.

2.2.2.6.3. Message boundary event (sự kiện biên thông điệp)

Sự kiện biên thông điệp ám chỉ rằng một hoạt động nếu nhận được một thông điệp
được định sẵn sẽ thực hiện luồng nghiệp vụ thay thế và ngắt quãng luồng nghiệp vụ hiện
tại.

Hình 2. 26: Ví dụ về sự kiện biên thông điệp.

Trong ví dụ tại Hình 2.26, nếu trong quá trình chuẩn bị hàng mà khách hàng bỗng
nhiên muốn hủy đặt thì không thực hiện giao hàng nữa mà hủy kiện hàng đang chuẩn bị.

2.2.2.6.4. Cancel boundary event (Sự kiện biên hủy)

Sự kiện biên hủy ám chỉ rằng hoạt động được gắn bị hủy thì sẽ thực hiện luồng
nghiệp vụ thay thế và ngừng luồng nghiệp vụ đang tiến hành. Chỉ áp dụng với các hoạt
động giao dịch (Transaction).

2.2.2.6.5. Compensation boundary event (sự kiện biên hoàn tác)

Loại sự kiện này ám chỉ rằng khi hoạt động được gán có vấn đề thì hoạt động sẽ
được quay lại thực hiện từ đầu.

Hình 2. 27: Ví dụ về sự kiện biên hoàn tác.

29

Downloaded by Anh Nguy?n Hoàng (nguyenhoanganhptit@gmail.com)


lOMoARcPSD|25633883

2.2.2.6.6. Signal boundary event (Sự kiện biên tín hiệu)

Sự kiện biên tín hiệu ám chỉ khi hoạt động được thực hiện mà nhận được tín hiệu
thỏa điều kiện mà sự kiện đề ra thì luồng nghiệp vụ thay thế sẽ được thực hiện.

Hình 2. 28: Ví dụ về sự kiện biên tín hiệu.

Trong ví dụ ở Hình 2.28, khi chuông báo vang lên giờ làm của nhà hàng đã hết
thì nhân viên sẽ gọi điện thông báo cho khách hàng là sẽ giao hàng vào ngày hôm sau.

2.2.2.7. Intermediate event (Sự kiện trung gian)

Sự kiện trung gian ám chỉ một sự kiện xảy ra sau khi một quy trình được thực hiện
trước khi nó kết thúc. Gồm hai loại:

- Sự kiện bắt (Catching event): Là những sự kiện trung gian nhận vào những thông
điệp, tín hiệu để tiếp tục quy trình nghiệp vụ.

- Sự kiện ném (Throwing event): Là những sự kiện trung gian sau khi diễn ra sẽ
ném đi những thông điệp, tín hiệu ra ngoài và tiếp tục quy trình nghiệp vụ.

Hình 2. 29: Các loại sự kiện trung gian.

30

Downloaded by Anh Nguy?n Hoàng (nguyenhoanganhptit@gmail.com)


lOMoARcPSD|25633883

2.2.2.7.1. Timer catching event (sự kiện bắt thời gian)

Trigger của sự kiện bắt thời gian dựa trên một thời điểm cụ thể hoặc một chu
kỳ thời gian.

Hình 2. 30: Ví dụ về sự kiện bắt thời gian.

Trong ví dụ ở Hình 2.30, sinh viên nhận sau khi nhận đề tài khóa luận sẽ nghiên
cứu dưới sự hướng dẫn của giảng viên và báo cáo tiến độ vào ngày 13 và ngày 21 hàng
tháng.

2.2.2.7.2. Message catching event (sự kiện bắt thông điệp)

Trigger của sự kiện bắt thông điệp được xác định là một thông điệp và luồng
nghiệp vụ khi chạy đến đây cần nhận được thông điệp từ một quy trình khác thỏa mãn
một yêu cầu nhất định để tiếp tục.

Hình 2. 31: Ví dụ về sự kiện bắt thông điệp.

Trong ví dụ ở Hình 2.31, ở các bài thi cuối kì online, hệ thống sẽ cung cấp đề thi
cho thí sinh và thí sinh sẽ làm bài, cho đến khi sinh viên nộp bài sẽ lấy kết quả của bài
thi đó và chấm bài cho họ.

2.2.2.7.3. Signal catching event (Sự kiện bắt tín hiệu)

Trigger của sự kiện bắt tín hiệu được xác định là một tín hiệu và luồng nghiệp vụ
khi chạy đến đây cần nhận được thông điệp từ một quy trình khác thỏa mãn một yêu cầu
nhất định để tiếp tục. Ta xét ví dụ về bài thi online ở trên, việc sinh viên nộp bài cũng có
thể coi là một tín hiệu mà hệ thống cần nhận để xử lý và chấm bài cho sinh viên.

2.2.2.7.4. Compensation throwing event (Sự kiện ném hoàn tác)

Sự kiện ném hoàn tác là sự kiện mà qua đây sẽ đưa ra một tín hiệu cho sự kiện
biên loại compensation và luồng nghiệp vụ từ sự kiện biên này sẽ được thực hiện.

31

Downloaded by Anh Nguy?n Hoàng (nguyenhoanganhptit@gmail.com)


lOMoARcPSD|25633883

Hình 2. 32: Ví dụ về sự kiện ném hoàn tác.


Trong ví dụ ở Hình 2.32, đến dịp cuối năm, bộ phận nhân sự của một công ty nào
đó sẽ thu thập thông tin về thành tích của nhân viên và có thưởng. Nếu đạt yêu cầu, mức
thưởng sẽ được tính toán và nhân viên sẽ xác nhận mức thưởng đó. Tuy nhiên, trong quá
trình này nếu nhân viên đạt yêu cầu mắc phải sai phạm ở mức độ nghiêm trọng trở lên
hoặc không đạt yêu cầu thì tiến trình trả thưởng cho nhân viên đó sẽ bị hủy, ở sự kiện
trung gian “Hủy thanh toán” sẽ đưa ra một tín hiệu cho quá trình tính toán mức thưởng
và luồng nghiệp vụ từ sự kiện biên, là việc cắt thưởng sẽ được tiến hành và quay ở lại
hoạt động trước đó.

2.2.2.7.5. None throwing event (Sự kiện ném đơn thuần)

Sự kiện ném đơn thuần là sự kiện không xác định trigger hoặc không đáng quan
tâm đến, và nó như một sự kiện bình thường trong chuỗi nghiệp vụ.

2.2.2.8. Artifact

2.2.2.8.1. Annotation (Chú thích)

Chú thích là yếu tố dùng để mô tả bằng lời những điều kiện của các loại sự kiện bắt
đầu, sự kiện kết thúc hay nhánh của các cổng. Có tác dụng làm rõ và giải thích những
nghiệp vụ khó hiểu hoặc cần thêm thông tin giải thích.

2.2.2.9. Connection (Đối tượng kết nối)

Các đối tượng kết nối liên kết hai đối tượng trong mô hình. Các loại đối tượng kết
nối được thể hiện trong hình 2.33.

32

Downloaded by Anh Nguy?n Hoàng (nguyenhoanganhptit@gmail.com)


lOMoARcPSD|25633883

Hình 2. 33: Các loại đối tượng kết nối.

2.2.2.9.1. Sequence flow (đối tượng kết nối luồng)

Đối tượng kết nối luồng là đối tượng kết nối chỉ sự tuần tự của các hoạt động trong
một luồng nghiệp vụ. Tuy nhiên, sequence flow không thể đi xuyên qua các container,
có nghĩa là sequence flow không thể kết nối hai đối tượng một ở trong container với một
ở ngoài container.

Hình 2. 34: Ví dụ về sequence flow.

2.2.2.9.2. Message flow (Đối tượng kết nối thông điệp)

Đối tượng kết nối thông điệp là đối tượng kết nối chỉ luồng thông điệp được truyền
giữa các pool riêng biệt, không thể kết nối hai đối tượng trong cùng một pool. Ví dụ về
đối tượng kết nối thông điệp được thể hiện ở Hình 2.35.

Hình 2. 35: Message Flow kết nối 2 pool.

33

Downloaded by Anh Nguy?n Hoàng (nguyenhoanganhptit@gmail.com)


lOMoARcPSD|25633883

2.2.2.9.3. Association

Chỉ sự liên kết, chẳng hạn giữa ký hiệu boundary event và annotation liên quan.

Hình 2. 36: Association liên kết chú thích và tác vụ người dùng.

2.4. Một số nền tảng Activiti hỗ trợ BPMN 2.0

Hiện có rất nhiều những nền tảng hỗ trợ cài đặt và sử dụng công cụ mô hình hóa
nghiệp vụ BPMN 2.0. Trong báo cáo này xin được trình bày ba nền tảng đã dùng để
nghiên cứu và tìm hiểu về BPMN 2.0.

2.3.1. Activiti Designer trên IDE Eclipse

2.3.1.1. Giới thiệu về Eclipse và Activiti Designer trên IDE này

Eclipse là một IDE bên cạnh một workspace nền tảng cho phát triển mã nguồn thông
thường còn hỗ trợ người dùng có thể cài đặt các plug-in bên ngoài và tùy chọn môi trường
phát triển.

Eclipse hỗ trợ nhà phát triển khá nhiều ngôn ngữ lập trình như C, C#, C++,... tuy
nhiên hầu hết các nhà phát triển sử dụng chủ yếu IDE này cho lập trình Java và phát triển
các dự án dùng ngôn ngữ Java với các framework liên quan như Spring, Hibernate,...

Ý tưởng về Eclipse được nhen nhóm từ các sản phẩm của VisualAge trên nền tảng
Smalltalk. Tuy nhiên, với các sản phẩm này, toàn bộ mã nguồn được chứa trong một tệp
nén (giống một file zip nhưng ở dạng độc quyền là file .dat) Các class riêng lẻ với những
sản phẩm này không dễ dàng có thể truy cập.

Từ đó, một nhóm phát triển ở bộ phận nghiên cứu IBM Cary NC đã bắt đầu phát
triển một sản phẩm mới. Vào tháng 11/2001, một tập đoàn nghiêm chỉnh được thành lập
với một ban quản lý để tiếp tục phát triển Eclipse dưới dạng phần mềm mã nguồn mở với
số vốn đầu tư khoảng 40.000.000 USD của IBM vào thời điểm đó cùng 8 thành viên ban

34

Downloaded by Anh Nguy?n Hoàng (nguyenhoanganhptit@gmail.com)


lOMoARcPSD|25633883

đầu khác, số lượng thành viên tăng lên 80 vào cuối năm 2003 và đến tháng 01/2004,
Eclipse Foundation được thành lập.

Phiên bản đầu tiên của Eclipse là phiên bản 3.0 chính thức trình làng vào ngày
21/06/2004 dựa trên các đặc tả của nền tảng dịch vụ OSGi và đến nay vẫn đang tiếp tục
được phát triển với những phiên bản cao hơn, hỗ trợ nhiều hơn nhu cầu của những nhà
phát triển hiện nay. Phiên bản gần nhất là phiên bản 4.11 ra mắt vào tháng 03/2019 và
phiên bản 4.12 dự kiến sẽ ra mắt vào tháng 06/2019 tới đây.

Công cụ Acitiviti Designer là một công cụ mô hình hóa có hỗ trợ đồ họa để thiết kế
quy trình nghiệp vụ với mục đích chính là cung cấp một giải pháp để xây dựng quy trình
nghiệp vụ bằng đồ họa tuân theo quy chuẩn BPMN 2.0. Đây là công cụ rất hữu ích dành
những nhà phát triển hay các nhà phân tích nghiệp vụ đã quen cách sử dụng của Eclipse.

Với giao diện dễ nhìn cùng cách sử dụng đơn giản, dễ hiểu, đây là một trong những
công cụ mô hình hóa nghiệp vụ theo chuẩn BPMN 2.0 khá được ưa chuộng bởi các nhà
phân tích nghiệp vụ và các nhà phát triển hiện nay. [3]

2.3.1.2. Cài đặt và sử dụng

Đầu tiên tải về Eclipse2, có thể lựa chọn phiên bản tùy theo ý muốn của nhà phát
triển. Trên trang chủ chỉ hiện ra phiên bản gần nhất ra mắt. Mở file cài đặt sau khi tải về,
cách cài đặt rất đơn giản, khuyến khích không nên sửa những tùy chọn khuyên dùng, chỉ
ấn Next liên tục và điền vào các trường thông tin mà quá trình cài đặt yêu cầu.

Plugin chạy trên nền tảng JDK 7 trở lên tải JDK tại trang chủ của Oracle3, chọn
phiên bản thích hợp tải về và cài đặt. Sau khi cài đặt JDK, cần cài biến môi trường để có
thể làm việc.

Truy cập Properties của This PC, truy cập Advanced System Setting, chọn
Environment Variables..., thêm hai biến JAVA_HOME và JRE_HOME ở mục System
Variables như Hình 2.37. Mỗi lần tạo một biến mới lại click New. Cuối cùng ấn OK để
lưu lại.

2
https://www.eclipse.org/downloads/
3
https://www.oracle.com/technetwork/java/javase/downloads/index.html

35

Downloaded by Anh Nguy?n Hoàng (nguyenhoanganhptit@gmail.com)


lOMoARcPSD|25633883

Hình 2. 37: Cài đặt biến môi trường để sử dụng Plugin.


Mở Eclipse, trên thanh công cụ chọn Help → Install New Software, cửa sổ như
Hình 2.38 xuất hiện.

Hình 2. 38: Giao diện cài đặt Plugin.

36

Downloaded by Anh Nguy?n Hoàng (nguyenhoanganhptit@gmail.com)


lOMoARcPSD|25633883

Click vào Add, điền vào các trường thông tin như hình sau đây rồi ấn Add (Hình
2.39).

Hình 2. 39: Các thông số cài đặt Plugin.

Chú ý cần đảm bảo checkbox Contact all updates sites... đã được tick. Sau đó ấn
Next liên tục, thực hiện các yêu cầu cần thiết và Finish.
Sau khi thực hiện đầy đủ các thao tác trên, việc cài đặt đã thành công và plugin đã
sẵn sàng để sử dụng.
Cách tạo mô hình như sau:
- Tạo project Activiti, trong cửa sổ Eclipse, chọn File → New → Other... , chọn
Activiti Diagram như Hình 2.40:

Hình 2. 40: Tạo mô hình Activiti.

37

Downloaded by Anh Nguy?n Hoàng (nguyenhoanganhptit@gmail.com)


lOMoARcPSD|25633883

Sau đó ấn Next, thay đổi tên của mô hình nếu muốn và chọn thư mục lưu trữ như
Hình 2.41.

Hình 2. 41: Đặt tên và chọn thư mục lưu trữ mô hình.
Ở bước này có hai sự lựa chọn, nếu ấn Finish ngay tại màn hình này, một cửa sổ
trống sẽ được tạo và người dùng có thể tùy ý tạo dựng mô hình theo ý muốn. Nếu ấn
Next, người dùng sẽ có thêm những tùy chọn những mẫu mô hình có sẵn như Hình 2.42.

Hình 2. 42: Những mẫu mô hình có sẵn được hỗ trợ bởi Activiti Designer.

38

Downloaded by Anh Nguy?n Hoàng (nguyenhoanganhptit@gmail.com)


lOMoARcPSD|25633883

Hình 2. 43: Mẫu mô hình Parallel Group Review And Approve Activiti Process.

Hình 2. 44: Cửa sổ làm việc chính với một mô hình rỗng.

Ở cửa sổ trên Hình 2.44, với các tùy chọn đối tượng ở cột bên phải, người dùng chỉ
cần chọn đối tượng cần dùng và kéo thả vào khung làm việc. Hình 2.45 là một ví dụ cho
một mô hình được tạo bằng Activiti Designer.

Hình 2. 45: Một mô hình được xây dựng bằng Activiti Designer.

39

Downloaded by Anh Nguy?n Hoàng (nguyenhoanganhptit@gmail.com)


lOMoARcPSD|25633883

2.3.2. Activiti App trên nền Web

2.3.2.1. Giới thiệu

Ứng dụng được nén và triển khai dưới dạng file war và có sẵn trên trang chủ của
Activiti, sẽ có đầy đủ ứng dụng và những bộ cài cần thiết để chạy ứng dụng.

2.3.2.2. Cài đặt và sử dụng

Truy cập trang chủ của Activiti4, chọn phiên bản muốn sử dụng và tải về. File được
tải về ở dạng file nén.

Sau khi giải nén, chúng ta thấy trong file có những mục như Hình 2.46.

Hình 2. 46: File ứng dụng Activiti sau khi đã giải nén.

Ở phần này chúng ta sẽ chỉ chú ý đến cách thức cài đặt và sử dụng công cụ, còn
những thủ tục liên quan như cài đặt cơ sở dữ liệu và cấu hình sẽ được nói kỹ ở chương
sau.

Để có thể sử dụng được ứng dụng này, chúng ta cần cài đặt Apache Tomcat Server
8.x+, tải bộ cài Tomcat Server5, tham khảo phiên bản muốn tải ở mục Download cột bên
trái, khi đã chọn được phiên bản ưng ý, chọn Windows Service Installer ở mục Core tải
về và cài đặt.

Sau khi cài đặt, kiểm tra xem Tomcat Server đã chạy chưa, nếu chưa thì khởi chạy
server bằng file Monitor Tomcat (có thể tìm bằng trình tìm kiếm của hệ điều hành). Biểu
tượng của Tomcat có hình tam giác màu xanh như Hình 2.47 tức là đã khởi chạy thành
công.

4
https://www.activiti.org/get-started
5
https://tomcat.apache.org/download-80.cgi

40

Downloaded by Anh Nguy?n Hoàng (nguyenhoanganhptit@gmail.com)


lOMoARcPSD|25633883

Hình 2. 47: Khởi chạy Tomcat Server trên taskbar.

Sau khi đã cài đặt xong, chúng ta sẽ có một thư mục Tomcat tại ổ C (có thể tại thư
mục Program Files hoặc Program Files(x86)) như Hình 2.48.

Hình 2. 48: Thư mục của Tomcat sau khi đã cài đặt.

Với file nén Activiti vừa tải về, trong thư mục war có các file như Hình 2.49.

Hình 2. 49: Thư mục war trong file nén ứng dụng Activiti.
Trong phần này chúng ta chỉ chú trọng vào việc cài đặt công cụ với file activiti-
app.war, còn các file activiti-admin.war và activiti-rest.war sẽ được nói rõ hơn ở chương
sau.

Với file activiti-app.war, copy file này vào thư mục webapps trong thư mục Tomcat
như Hình 2.50.

41

Downloaded by Anh Nguy?n Hoàng (nguyenhoanganhptit@gmail.com)


lOMoARcPSD|25633883

Hình 2. 50: Thư mục webapps của Tomcat.


Sau đó khởi chạy công cụ, cần đợi một thời gian để công cụ hoàn tất việc khởi chạy
chứ không ra giao diện ngay như khi truy cập trang web hay các file html thông thường.

Trình duyệt sẽ tự động mở tab khi khởi chạy xong, giao diện màn hình xuất hiện
như Hình 2.51.

Hình 2. 51: Màn hình đăng nhập Activiti App.

Đăng nhập bằng tên đăng nhập mặc định với username: admin và password: test.
Sau khi đăng nhập màn hình xuất hiện như Hình 2.52.

42

Downloaded by Anh Nguy?n Hoàng (nguyenhoanganhptit@gmail.com)


lOMoARcPSD|25633883

Hình 2. 52: Giao diện ứng dụng Activiti App.

Ứng dụng con Kickstart App sẽ được dùng để tạo mô hình, màn hình như Hình
2.52. Click vào Kickstart App để quản lý và tạo dựng mô hình như Hình 2.53.

Hình 2. 53: Màn hình giao diện Kickstart App của Activiti.
Để tạo mới mô hình, đầu tiên người dùng click vào Create Process, cửa sổ nổi như
Hình 2.54 hiện lên, điền đầy đủ Model name và Model key, Description có thể điền hoặc
không.

Hình 2. 54: Tạo mô hình mới trong Activiti App.

43

Downloaded by Anh Nguy?n Hoàng (nguyenhoanganhptit@gmail.com)


lOMoARcPSD|25633883

Click vào Create New Model, cửa sổ làm việc sẽ hiện lên như Hình 2.55.

Hình 2. 55: Xây dựng mô hình nghiệp vụ với Activiti App.

Khi mô hình mới được khởi tạo, sẽ có sẵn một None Start Event trên màn hình, mở
rộng các tùy chọn ở cột bên phải để thấy được tất cả những loại đối tượng được hỗ trợ.
Cách sử dụng cũng như Activiti Designer, chỉ cần kéo thả các đối tượng và liên kết
chúng với nhau trên khung làm việc.
Ở Hình 2.56, ta có thể thấy một số loại mô hình đồ họa được hỗ trợ xuất hiện ở cột
bên trái của cửa sổ làm việc. Về cơ bản các đối tượng được hỗ trợ trong kickstart app
giống với Activiti Designer, ngoài ra có thêm một số loại đối tượng khác như Camel
Task, Mule Task,...

Hình 2. 56: Một số loại đối tượng được hỗ trợ trong Activiti App.

44

Downloaded by Anh Nguy?n Hoàng (nguyenhoanganhptit@gmail.com)


lOMoARcPSD|25633883

Hình 2. 57: Một mô hình được xây dựng bằng Kickstart App của Activiti App.

2.4. Hướng mở rộng công cụ

Hiện tại với công cụ đang có, đã có những user mặc định được tích hợp. Tuy nhiên,
những user này đang có quyền bình đẳng với nhau và có thể truy cập vào tất cả các chức
năng và ứng dụng con được hỗ trợ trong ứng dụng (Hình 2.58).

Hình 2. 58: Các user khác nhau có quyền truy cập bình đẳng với Admin.
Ở đây, ứng dụng con Kickstart App được sử dụng để tạo mô hình nghiệp vụ, tạo
thêm các ứng dụng con cho từng nghiệp vụ cụ thể. Ta có thể tích hợp cơ chế truy cập theo
vai trò RBAC theo hướng chỉ để user Administrator truy cập và điều khiển ứng dụng này,
còn các user khác chỉ có thể truy cập vào những ứng dụng còn lại với những quy trình
nghiệp vụ được định sẵn của admin.

2.5. Tổng kết chương


Qua chương này, chúng ta đã có được những hình dung cụ thể về công cụ Activiti
hiện thời và những nền tảng hỗ trợ cùng hướng mở rộng công cụ. Ở chương sau chúng
ta sẽ áp dụng những gì vừa tìm hiểu được ở chương này cho bài toán cụ thể là bài toán
khen thưởng sinh viên trong trường Đại học Công Nghệ - Đại học Quốc gia Hà Nội và
đi vào phần mở rộng công cụ theo định hướng ở trên.

45

Downloaded by Anh Nguy?n Hoàng (nguyenhoanganhptit@gmail.com)


lOMoARcPSD|25633883

CHƯƠNG 3: CÀI ĐẶT VÀ THỰC NGHIỆM: QUY TRÌNH NGHIỆP VỤ


KHEN THƯỞNG SINH VIÊN TẠI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ -
ĐẠI HỌC QUỐC GIA HÀ NỘI
3.1. Phát biểu bài toán

Vào cuối mỗi năm học hay mỗi dịp lễ đặc biệt nào đó, trong dịp tổng kết, trường
Đại học Công Nghệ luôn chọn ra những sinh viên xuất sắc đạt thành tích cao trong học
tập, nghiên cứu khoa học, hay tham gia nhiệt tình và có đóng góp trong phong trào hoạt
động của khoa, của nhà trường để khen thưởng. Tuy nhiên công việc này hàng năm vẫn
được thực hiện theo cách còn khá thủ công. Hầu hết các hoạt động khen thưởng sinh viên
đều được triển khai dưới dạng văn bản, chuyển từ BCH các khoa lên BCH Đoàn trường,
họp và lấy ý kiến rồi chốt danh sách khen thưởng với quy trình chi tiết như sau.

Đầu tiên, khi tới đợt khen thưởng mới, BCH Đoàn trường sẽ gửi thông báo tới Đoàn
Thanh niên, Đoàn Thanh niên sẽ gửi thông báo đến các khoa rồi sau đó BCH khoa sẽ gửi
thông báo đến các chi đoàn của khoa mình để tìm ra những sinh viên có thành tích tốt
tham gia xét duyệt khen thưởng, các lớp trưởng hay cán bộ của các chi đoàn sẽ lập danh
sách của lớp mình và gửi về cho văn phòng khoa, sau đó văn phòng khoa sẽ tổng hợp các
danh sách được gửi lên từ các chi đoàn của khoa mình và tổng hợp lại gửi lên BCH Đoàn
trường.

Tuy nhiên, vì kinh phí và ngân sách dành cho việc khen thưởng có hạn, nên không
phải tất cả sinh viên đủ điều kiện đều sẽ được khen thưởng theo đúng quy định, mà sẽ có
sự họp bàn từ các thành viên trong BCH Đoàn trường, xét thêm nhiều tiêu chí phụ khác
và sự họp bàn này sẽ được tiến hành một cách cẩn thận, kỹ lưỡng với tiêu chí được xét
tới đầu tiên được xét tới là sự cân bằng trong việc khen thưởng giữa các khoa mà trong
đó mỗi khoa chỉ có một số lượng chỉ tiêu nhất định.

Việc khen thưởng được chia thành hai hạng mục là khen thưởng dựa trên thành tích
học tập, nghiên cứu khoa học và dựa trên những đóng góp cho các hoạt động của Đoàn,
Hội, trường, cụ thể như sau:

Đối với việc khen thưởng thành tích học tập, nghiên cứu khoa học tốt, với số lượng
sinh viên được đề cử ở mỗi khoa, BCH Đoàn trường sẽ duyệt qua danh sách sinh viên đề
cử ở mỗi khoa. Sau đó, danh sách sẽ được gửi xuống phòng Đào tạo và tại đây mỗi sinh
viên sẽ được đối chiếu với kết quả học tập của mình để xác thực, nếu đủ điều kiện về điểm
thì sẽ xét đến các tiêu chí phụ là không được trượt môn nào trong học kì đó, điểm tổng
kết không có môn nào dưới 7.0 và không vi phạm quy chế thi. Sau khi kiểm duyệt đầy đủ,
danh sách sẽ được gửi lại cho BCH Đoàn trường.

46

Downloaded by Anh Nguy?n Hoàng (nguyenhoanganhptit@gmail.com)


lOMoARcPSD|25633883

Đối với việc khen thưởng dành cho những đóng góp với các hoạt động của Đoàn,
Hội, trường, cũng với số lượng sinh viên đề cử từ mỗi khoa, bên cạnh những đóng góp
của những bạn sinh viên đó còn xét đến những tiêu chí khác là điểm trung bình tích lũy
trong học kỳ đó và trong cả quá trình học tập tại trường tính tới thời điểm xét duyệt khen
thưởng không được dưới 2.5, đồng thời sinh viên đó không mắc lỗi nào đáng kể như vi
phạm quy chế thi hay có hành vi vi phạm pháp luật. Với số lượng sinh viên ban đầu, BCH
Đoàn trường sẽ họp bàn và chọn ra những bạn đủ điều kiện xét khen thưởng trong các
danh sách mà các khoa gửi lên và gửi danh sách chọn lọc được cho phòng CTSV và
phòng Đào tạo để xét đến tiêu chí phụ được nói trên. Sau khi kiểm duyệt đầy đủ, danh
sách sẽ được gửi lại cho BCH Đoàn trường.

Với những danh sách được gửi lại từ phòng Đào tạo và phòng CTSV, BCH Đoàn
trường sẽ kiểm tra lại những danh sách này một lần nữa rồi chốt danh sách khen thưởng
và gửi về các văn phòng khoa từ đó thông báo tới các chi đoàn của khoa mình.

Với danh sách khen thưởng được thông báo, các khoa và các chi đoàn của khoa sẽ
xem xét và phản hồi lại với BCH Đoàn trường nếu cần, BCH Đoàn trường sẽ xem xét và
ghi nhận những ý kiến này và sẽ có những điều chỉnh cần thiết. Sẽ có sự trao đổi qua lại
giữa các văn phòng khoa và BCH Đoàn trường cho đến khi danh sách được thống nhất
và đưa lên công khai trên website của trường Đại học Công Nghệ ở mục khen thưởng.

Đối với nghiên cứu sinh và học viên hệ sau Đại học, việc xét duyệt khen thưởng
cũng được tiến hành như trên, nhưng chỉ xét đến thành tích về hoạt động nghiên cứu công
trình nghiên cứu, và chưa có áp dụng với sinh viên trao đổi hay du học sinh các nước bạn.

3.2. Giải pháp hiện thời

Các giải pháp ở thời điểm hiện tại đều được xử lý mà không dùng tới quy trình
nghiệp vụ, không chỉ ở trường Đại học Công Nghệ mà còn rất nhiều những đơn vị trường
Đại học khác trong khối Đại học Quốc gia nói riêng và trên cả nước nói chung. Có thể
với các đơn vị, việc khen thưởng ở thời điểm hiện tại không được cho là cần cầu kì và
quá đầu tư và những công đoạn xét duyệt khen thưởng không có sự trợ giúp của phần
mềm, chương trình công nghệ nào mà hoàn toàn bằng công văn trao đổi qua lại giữa văn
phòng các cấp trong đơn vị và cụ thể với trường Đại học Công Nghệ cũng có sử dụng
những tiêu chí trong phiếu đánh giá rèn luyện của sinh viên hàng kỳ và dữ liệu kết quả
học tập của sinh viên.

Dường như chưa có một đơn vị trường Đại học nào thực hiện quy trình khen thưởng
bằng các phần mềm, chương trình công nghệ. Nhưng có thể khẳng định rằng, với một
chương trình được tích hợp những tiêu chí được dựng sẵn và thống nhất bởi các khoa và

47

Downloaded by Anh Nguy?n Hoàng (nguyenhoanganhptit@gmail.com)


lOMoARcPSD|25633883

Đoàn trường với những dữ liệu được xử lý khi cần thiết, thì sẽ bớt đi được những buổi
họp bàn kéo dài trong nhiều ngày trước mỗi đợt xét khen thưởng, tiết kiệm được rất nhiều
thời gian, tâm sức và thủ tục cũng sẽ nhanh gọn hơn rất nhiều.

Tuy nhiên, dù với bất cứ giải pháp nào đi chăng nữa mà không dùng tới quy trình
nghiệp vụ thì cũng bộc lộ trong đó sự thiếu chuyên nghiệp và những lỗ hổng trong công
tác xét duyệt khen thưởng. Quy trình sẽ trở nên thiếu mạch lạc và có sự chắp vá dẫn tới
khó khăn trong quản lý công tác, và khi có lỗi xảy ra thì việc sửa đổi và cải thiện sẽ rất
phức tạp, sửa được lỗi này lại nảy sinh những lỗi khác, số lượng về các vấn đề cần giải
quyết sẽ tăng lên theo cấp số nhân, càng mất nhiều thời gian sửa lỗi, làm chậm tiến độ
thực hiện công việc và ít nhiều ảnh hưởng đến kế hoạch phát triển của đơn vị. Mặc dù
khả năng xảy ra là rất thấp, nhưng cũng không loại trừ khả năng một số đơn vị vì muốn
có hình ảnh đẹp trong mắt ban lãnh đạo mà có gian lận trong công tác khai thông tin xét
duyệt khen thưởng, dẫn tới sự bất công, thiếu minh bạch và làm mất đi niềm tin trong
đơn vị trường Đại học.

3.3. Xây dựng mô hình BPMN 2.0

Như đã phân tích và chứng minh ở Chương 1 của báo cáo này, chúng ta có thể thấy
được ưu điểm và vai trò của mô hình hóa quy trình nghiệp vụ với các tổ chức, doanh
nghiệp hiện nay, và đây cũng là một công cụ đắc lực dành cho những nhà quản lý chuyên
nghiệp, dày dạn kinh nghiệm. Với việc xét duyệt công tác khen thưởng sinh viên cũng
vậy. Mặc dù chỉ là một công việc nhỏ nhưng cũng cần thiết có sự chuyên nghiệp. Một tổ
chức, doanh nghiệp hay một đơn vị trường Đại học chuyên nghiệp sẽ luôn chuyên nghiệp
ngay từ những công tác nhỏ. Cấp lãnh đạo của trường Đại học cũng sẽ dễ dàng theo dõi,
nắm bắt, quản lý hơn. Công tác với một lộ trình được xây dựng sẵn với những vai trò
được xác định cụ thể cũng sẽ dễ dàng hơn trong quá trình thực hiện.

Trong trường hợp khi thực hiện quy trình có xảy ra sai sót hay rủi ro nào đó, việc
phân công lại và chỉnh sửa mô hình dù mất ít hay nhiều thời gian cũng sẽ giúp cho bộ
phận thực hiện có kinh nghiệm hơn trong những lần vận hành tiếp theo, vì hoạt động
khen thưởng không chỉ diễn ra một lần trong một năm học. Các hoạt động của các phòng
ban và liên chi Đoàn tham gia cũng được sắp xếp một cách khoa học và sẵn sàng thay
đổi dựa trên ý kiến phản hồi của các bên.

Với cách làm đơn giản cùng những quy chuẩn hầu hết bằng ngôn ngữ tự nhiên và
các ký hiệu dễ hiểu, thông dụng, ngay cả với những người không tham gia trực tiếp trong
việc thiết kế mô hình hay không có kiến thức về mô hình hóa nghiệp vụ. Mô hình nghiệp
vụ sau khi được xây dựng xong sẽ trở thành cơ sở để phân công công việc và cách thức
thực hiện đến các phòng ban và liên chi Đoàn tham gia, và như đã nói, sẽ là cơ sở rút

48

Downloaded by Anh Nguy?n Hoàng (nguyenhoanganhptit@gmail.com)


lOMoARcPSD|25633883

kinh nghiệm cho những lần thực hiện sau đó, những lỗi sai và sự bất hợp lý sẽ được khắc
phục và những rủi ro sẽ được hạn chế tối đa, cùng với đó là những kế hoạch được chuẩn
bị trước để phòng chống những rủi ro có thể xảy ra. Qua đó nâng cao hiệu quả trong công
tác thực hiện, tiết kiệm thời gian thực thi nghiệp vụ đồng thời có thể nâng cấp và tăng độ
chuyên nghiệp của quy trình về sau này.

BPMN hỗ trợ đầy đủ những ký hiệu giúp chúng ta xây dựng mô hình nghiệp vụ
khen thưởng sinh viên, cụ thể chi tiết về những ký hiệu này đã được trình bày cụ thể và
chi tiết trong Chương 2 của báo cáo này.

Trong bài toán này, ta sẽ sử dụng công cụ Eclipse với extension Activiti Designer.
Đây là một IDE miễn phí và phổ biến với đa số các lập trình viên nói chung và lập trình
viên Java nói riêng, ngoài ra với cả những người chuyên về thiết kế mô hình nghiệp vụ.
Hơn nữa, việc sử dụng Activiti Designer trên Eclipse cũng rất đơn giản và thuận tiện và
nhanh chóng, chỉ là kéo và thả.

3.4. Thiết kế mô hình

3.4.1. Phân tích bài toán

Với quy trình chi tiết đã nêu ở trên đối với bài toán khen thưởng sinh viên ở trên, sẽ
có 7 thực thể sau tham gia vào quy trình xét duyệt: các thành viên của chi đoàn, lớp
trưởng các chi đoàn, LCĐ các khoa, BCH Đoàn trường, Đoàn Thanh niên, phòng CTSV
và phòng Đào tạo.

7 thực thể trên sẽ tham gia vào từng giai đoạn và hoạt động của quy trình, cụ thể
như sau:
● BCH Đoàn trường soạn thảo công văn về đợt khen thưởng, dự kiến ngân sách và
chỉ tiêu khen thưởng đối với mỗi khoa.
● BCH Đoàn trưởng gửi công văn xuống Đoàn Thanh niên.

● Đoàn Thanh niên gửi thông báo về đợt khen thưởng của BCH Đoàn trường đến
LCĐ các khoa.

● LCĐ các khoa gửi thông báo xuống các chi đoàn của khoa mình.

● Các lớp trưởng các chi đoàn sẽ khảo sát các thành viên trong chi đoàn và tổng hợp
danh sách.

● Các thành viên trong chi đoàn ứng cử với lớp trưởng.

● Các lớp trưởng các chi đoàn gửi danh sách tổng hợp được lên LCĐ khoa mình.

49

Downloaded by Anh Nguy?n Hoàng (nguyenhoanganhptit@gmail.com)


lOMoARcPSD|25633883

● LCĐ các khoa tổng hợp gửi danh sách ứng cử từ các chi đoàn của khoa mình lên
Đoàn trường.

● BCH Đoàn trường tổng hợp các danh sách do các khoa gửi lên, sau đó phân loại
thành 2 hạng mục là khen thưởng về thành tích học tập và khen thưởng về đóng góp
cho các hoạt động Đoàn, Hội, trường (nếu cần).

- Với những danh sách ứng cử khen thưởng thành tích học tập và nghiên cứu khoa
học:

+ BCH Đoàn trường gửi danh sách xuống phòng Đào tạo.

+ Phòng Đào tạo kiểm duyệt kết quả học tập của từng sinh viên trong danh
sách và xét các tiêu chí phụ.

+ Phòng đào tạo gửi danh sách đã kiểm tra về cho BCH Đoàn trường.

- Với những danh sách ứng cử khen thưởng dành cho những đóng góp với các hoạt
động của Đoàn, Hội, trường:

+ BCH Đoàn trường gửi danh sách xuống phòng CTSV.

+ Phòng CTSV sẽ kiểm duyệt hoạt động và quá trình rèn luyện của sinh viên
qua kết quả đánh giá rèn luyện trong phiếu đánh giá của sinh viên trong học kì
đó.

+ Phòng CTSV chuyển danh sách đã kiểm tra cho phòng Đào tạo.

+ Phòng Đào tạo sẽ kiểm duyệt và đối chiếu kết quả học tập của những sinh
viên trong danh sách với điều kiện về điểm tích lũy đã nói ở trên.
+ Phòng Đào tạo gửi danh sách đã kiểm tra về cho BCH Đoàn trường.

● BCH Đoàn trường họp bàn thống nhất và đưa ra danh sách khen thưởng tạm thời.

● BCH Đoàn trường gửi danh sách đã xét duyệt về cho các LCĐ Khoa.

● Các LCĐ khoa gửi danh sách được gửi về từ BCH Đoàn cho các chi đoàn khoa mình.

● Lớp trưởng các chi đoàn tập hợp ý kiến phản hồi của các thành viên trong chi đoàn
và gửi về LCĐ các khoa nếu cần.

● LCĐ các khoa nếu có ý kiến phản hồi từ các chi đoàn sẽ tổng hợp lại và gửi về cho
BCH Đoàn trường.

50

Downloaded by Anh Nguy?n Hoàng (nguyenhoanganhptit@gmail.com)


lOMoARcPSD|25633883

● BCH Đoàn trường nếu nhận được ý kiến phản hồi từ LCĐ các khoa sẽ xử lý những
phản hồi này và chỉnh sửa lại danh sách khen thưởng nếu cần.

● Những sửa đổi sẽ được thông báo lần lượt theo thứ tự các cấp từ LCĐ các khoa đến
các chi đoàn và sẽ có sự phản hồi qua lại ở trên cho đến khi các bên thực thể cùng thống
nhất.

● BCH Đoàn trường đưa ra danh sách khen thưởng chính thức cuối cùng.

● BCH Đoàn trường gửi danh sách khen thưởng chính thức cho phòng CTSV.

● Phòng CTSV đưa danh sách khen thưởng lên công khai tại website của trường Đại
học Công Nghệ.

3.4.2. Dựng mô hình

Để xây dựng mô hình ta dùng Eclipse với Plugin Activiti Designer, cách tạo mô
hình đã trình bày ở trên.

Do mô hình lớn và có nhiều công đoạn nên phần này xin chụp lại một vài hình ảnh
biểu diễn một số điểm chính đáng chú ý trong mô hình với các hình từ 3.1 đến 3.7.

Hình 3. 1: Giai đoạn BCH Đoàn trường dự kiến chỉ tiêu và ra công văn.

51

Downloaded by Anh Nguy?n Hoàng (nguyenhoanganhptit@gmail.com)


lOMoARcPSD|25633883

Hình 3. 2: Giai đoạn lớp trưởng chi đoàn nhận công văn và khảo sát thành tích chi đoàn mình.

Hình 3. 3: Giai đoạn BCH Đoàn trường nhận và tổng hợp danh sách và phân loại khen thưởng.

Hình 3. 4: Giai đoạn kiểm duyệt thông tin kê khai của phòng CTSV.

52

Downloaded by Anh Nguy?n Hoàng (nguyenhoanganhptit@gmail.com)


lOMoARcPSD|25633883

Hình 3. 5: Giai đoạn kiểm duyệt thông tin kê khai của Phòng Đào tạo.

Hình 3. 6: Giai đoạn xác nhận và phản hồi của các chi đoàn và Liên chi đoàn.

Hình 3. 7: Giai đoạn chốt danh sách của BCH Đoàn trường và kết thúc.
3.5. Cài đặt và thực nghiệm

3.5.1. Cài đặt

Sau khi đã cài đặt xong công cụ theo các bước ở Chương 2 của báo cáo này, bước
tiếp theo ta cần cài đặt cơ sở dữ liệu để có thể sử dụng. Khóa luận này sử dụng cơ sở dữ
liệu Oracle.

53

Downloaded by Anh Nguy?n Hoàng (nguyenhoanganhptit@gmail.com)


lOMoARcPSD|25633883

Trước tiên ta cần cài đặt Oracle, tải bộ cài tại trang chủ của Oracle 16, cách cài đặt
rất đơn giản. Sau đó, ta chỉnh sửa lại các file cấu hình trong file cấu hình của bộ mã nguồn
sao cho tương thích với loại cơ sở dữ liệu được dùng. Cần chỉnh sửa ba file cấu hình là
activiti-admin.properties, activiti-app.properties và db.properties như các hình 3.8, 3.9 và
3.10.

Hình 3. 8: Cấu hình file acitviti-admin.properties

Hình 3. 9: Cấu hình file acitviti-app.properties.

6
https://www.oracle.com/technetwork/database/enterpriseedition/downloads/index.html

54

Downloaded by Anh Nguy?n Hoàng (nguyenhoanganhptit@gmail.com)


lOMoARcPSD|25633883

Hình 3. 10: Cấu hình file db.properties.

Sau đó, tạo 2 user tên adminAct và userAct trong Oracle với username và
password đã được khai báo như trong các file cấu hình trên.

Trong file nén activiti-6.0.0 đã tải về ở hướng dẫn cài đặt ở Chương 2, chọn mục
database sau đó vào thư mục create chọn 3 file .sql ứng với cơ sở dữ liệu thích hợp, ở đây
là Oracle. (Hình 3.11)

Hình 3. 11: Các file script tạo bảng cho cơ sở dữ liệu.

55

Downloaded by Anh Nguy?n Hoàng (nguyenhoanganhptit@gmail.com)


lOMoARcPSD|25633883

Tiếp đó mở SQL Developer, với mỗi user đã tạo ở trên, ta đăng nhập và chạy các
script trong 3 file .sql đã cho ở trên, kết quả như Hình 3.12.

Hình 3. 12: Cơ sở dữ liệu được tạo thành công.

3.5.2. Thực nghiệm

3.5.2.1. Tìm hiểu công cụ

Với những diễn giải đã được trình bày trong Chương 2 cùng với bài toán đã được
phát biểu trong Chương 3, ta sẽ triển khai bài toán này theo quy trình nghiệp vụ đã được
định sẵn. Đầu tiên, ta tạo các user ứng với các tác tử đã được nêu trong bài toán. Đăng
nhập bằng username admin, tạo người dùng bằng Identity Management, chọn Create User
và điền đầy đủ thông tin của người dùng mới, kết quả như Hình 3.13:

Hình 3. 13: Tạo người dùng mới trong ứng dụng.

56

Downloaded by Anh Nguy?n Hoàng (nguyenhoanganhptit@gmail.com)


lOMoARcPSD|25633883

Với mô hình nghiệp vụ đã được tạo, cần tạo một ứng dụng con mới phục vụ cho
quy trình nghiệp vụ đó, cũng với user admin, vào Kickstart App, chọn cửa sổ App và
điền đầy đủ những thông số cần thiết, chọn mô hình ở mục Model included… sau đó ấn
Publish.

Hình 3. 14: Tạo app mới trong ứng dụng với quy trình nghiệp vụ cụ thể.

Kết quả sau khi Publish ứng dụng con như Hình 3.15.

Hình 3. 15:App mới đã được tạo.

57

Downloaded by Anh Nguy?n Hoàng (nguyenhoanganhptit@gmail.com)


lOMoARcPSD|25633883

Với ứng dụng đã được tạo, vào ứng dụng này, chọn Process, ấn vào Start Process
và quy trình nghiệp vụ sẽ được tiến hành trên mô hình đã được định sẵn (Hình 3.16).

Hình 3. 16: Bắt đầu quy trình nghiệp vụ với ứng dụng mới.

Các user liên quan khi truy cập vào ứng dụng con này sẽ nhìn thấy tác vụ được
gán và chỉ việc thực hiện theo đúng quy trình đã được định sẵn (Hình 3.17).

Hình 3. 17: Các bên liên quan thực hiện tác vụ của mình.

58

Downloaded by Anh Nguy?n Hoàng (nguyenhoanganhptit@gmail.com)


lOMoARcPSD|25633883

User admin có thể kiểm tra tiến độ dựa vào các Active tasks và Complete tasks
như Hình 3.18.

Hình 3. 18: User admin kiểm tra tiến độ thực hiện quy trình nghiệp vụ.
3.5.2.2. Mở rộng công cụ

Như đã nói ở trên, ta sẽ tích hợp điều khiển truy cập theo vai trò theo hướng ở mục
2.4. Chỉnh sửa mã nguồn như Hình 3.19.

Hình 3. 19: Chỉnh sửa mã nguồn cho công cụ.


Ở file runtime-app-definition-service.js trên, ban đầu, các ứng dụng đều được truy
xuất khi người dùng đăng nhập, ta sẽ đặt thêm điều kiện kiểm tra quyền admin để cấp
quyền truy cập vào các ứng dụng con nhất định, cụ thể ở đây là kickstart app (Hình 3.20).

59

Downloaded by Anh Nguy?n Hoàng (nguyenhoanganhptit@gmail.com)


lOMoARcPSD|25633883

Hình 3. 20: Hàm kiểm tra quyền admin.


Kết quả sau khi chỉnh sửa hiển thị như Hình 3.21.

Hình 3. 21: Kickstart App bị ẩn với những user không phải admin.
3.6. Tổng kết chương

Chương này đã trình bày và tóm tắt lại những gì áp dụng được từ những tìm hiểu
ở hai chương trước vào vấn đề trọng tâm của khóa luận được nói tới ở chương đầu tiên,
là bài toán khen thưởng sinh viên tại trường Đại học Công Nghệ - Đại học Quốc gia Hà
Nội và tích hợp phân quyền truy cập theo vai trò RBAC. Những áp dụng này mặc dù mới
chỉ ở mức sơ khai nhưng cũng đóng góp được một hướng phát triển tính năng khá mới
cho công cụ Activiti hiện thời và tận dụng được tối đa những chức năng đang được tích
hợp hiện thời cho bài toán khen thưởng sinh viên tại trường Đại học Công Nghệ - Đại
học Quốc gia Hà Nội. Trong tương lai những ý tưởng và áp dụng này có thể phát triển
lên một tầm cao mới. Cụ thể sẽ được đề cập ở phần sau.

60

Downloaded by Anh Nguy?n Hoàng (nguyenhoanganhptit@gmail.com)


lOMoARcPSD|25633883

KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN


Qua những trình bày ở trên, ta có thể thấy BPMN 2.0 là một chuẩn ký hiệu đáng
tin cậy trong mô hình hóa quy trình nghiệp vụ với cả các nhà phân tích nghiệp vụ nói
riêng và ngành CNTT nói chung. Mô hình hóa nghiệp vụ giúp chuyên nghiệp hóa cách
thức vận hành quy trình nghiệp vụ, là cơ sở để theo dõi tiến độ và quay lại lịch sử thực
hiện quy trình một cách dễ dàng bất cứ lúc nào, từ đó có thể phát hiện ra sai sót trong
thực thi quy trình và sửa đổi nếu cần. Ngoài ra, với mô hình hóa nghiệp vụ, các nghiệp
vụ sau khi đã được thiết lập và phân tích cho ra một mô hình nhất định còn có thể tái sử
dụng cho những lần thực hiện nghiệp vụ tương tự tiếp theo hay hơn nữa là phát triển
nghiệp vụ mới cho tổ chức, doanh nghiệp.

Cách thức giao tiếp tốt nhất giữa các bên liên quan trong một quy trình nghiệp vụ
chính là mô hình hóa với những ký pháp và sự diễn giải dễ hiểu bằng phần lớn ngôn ngữ
tự nhiên. Mô hình hóa nghiệp vụ còn làm sáng tỏ và dễ hình dung hóa với những nghiệp
vụ phức tạp và chuyên môn cao. Vì vậy đây đã và đang trở thành một trong những sự lựa
chọn hàng đầu của các tổ chức, doanh nghiệp hiện tại, bởi tính hữu hiệu và dễ sử dụng,
dễ xây dựng và dễ trình bày của nó.

Về hướng phát triển với bài toán cụ thể đã được nêu ở Chương 3 của khóa luận
này, có thể tính đến việc lưu dữ liệu và chuyển giao dữ liệu cho các user sử dụng công
cụ. Các file công văn, danh sách,… sẽ được lưu trực tiếp trong ứng dụng và có thể xem
lại nếu cần, tất cả các thao tác của quy trình khen thưởng sinh viên sẽ được thực hiện
hoàn toàn trên công cụ này mà không cần đến các ứng dụng hay thủ tục bên ngoài khác.
Ngoài ra, công cụ sẽ được kết nối với hệ thống dữ liệu điểm tích lũy và dữ liệu rèn luyện
của sinh viên để dễ dàng truy xuất dữ liệu và kiểm tra dữ liệu ngay trên công cụ.

Về hướng phát triển cho việc tích hợp phân quyền RBAC trên công cụ này, có thể
tính đến việc tích hợp chức năng ngay trên giao diện, tất cả những ứng dụng mới được
tạo sẽ được cập nhật trong một danh sách và sẽ được điều khiển truy cập bởi admin, một
bảng biểu sẽ được tích hợp trong công cụ và admin chỉ cần đánh dấu vào những ô tương
ứng để cấp quyền truy cập cho những người dùng khác.

61

Downloaded by Anh Nguy?n Hoàng (nguyenhoanganhptit@gmail.com)


lOMoARcPSD|25633883

TÀI LIỆU THAM KHẢO

• Tiếng Việt:
[1] Nguyễn Ngọc Minh, “Tìm hiểu và vận dụng kỹ thuật mô hình hóa quy trình
nghiệp vụ với BPMN”, Luận văn tốt nghiệp, Đại học Công Nghệ, Đại học Quốc
gia Hà Nội, Chương 1.
• Tiếng Anh:
[2] Stephen A. White, Ph.D Derek Miers, 2008, “BPMN Modeling and Reference
Guide”, Future Strategies Inc., Lighthouse Point, Florida, USA - Chapter 8, 9,
10, 11.
[3] "Where did Eclipse come from?". Eclipse Wiki. Retrieved 16 March 2008.
http://wiki.eclipse.org/FAQ_Where_did_Eclipse_come_from%3F
[4] Activiti User Guide – Chapter 1 & 2
https://www.activiti.org/userguide/
[5] BPMN Specification Document
https://www.omg.org/spec/BPMN/2.0/#documents
• Tiếng Đức:
[6] Franz Bayer, Harald Kühn (ed.), 2013, "Prozessmanagement für Experten -
Impulse für aktuelle und wiederkehrende Themen", Springer-lVerlag Berlin
Heidelberg

62

Downloaded by Anh Nguy?n Hoàng (nguyenhoanganhptit@gmail.com)

You might also like