Tải bản đầy đủ (.pdf) (82 trang)

phát triển ứng dụng biên soạn quy trình trực tuyến

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (3.55 MB, 82 trang )

BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƢỜNG ĐẠI HỌC CẦN THƠ
KHOA CÔNG NGHỆ THÔNG TIN & TRUYỀN THÔNG
BỘ MÔN MẠNG MÁY TÍNH VÀ TRUYỀN THÔNG

LUẬN VĂN TỐT NGHIỆP ĐẠI HỌC
NGÀNH TRUYỀN THÔNG & MẠNG MÁY TÍNH

Đề tài

PHÁT TRIỂN ỨNG DỤNG
BIÊN SOẠN QUY TRÌNH
TRỰC TUYẾN
Ngƣời hƣớng dẫn
TS. Ngô Bá Hùng

Sinh viên thực hiện
Phạm Hoàng Diệu
Mã số: 1101722
Khóa: K36

Cần Thơ, 11/2014


LỜI CẢM ƠN
Để hoàn thành đề tài tốt nghiệp này, tôi đã nhận đƣợc rất nhiều sự giúp đỡ tận
tình về chuyên môn cũng nhƣ sự hỗ trợ về mọi mặt của nhiều thầy, cô trƣờng Đại
học Cần Thơ, Khoa Công nghệ Thông tin & Truyền thông, gia đình và đặc biệt là
thầy Ngô Bá Hùng. Tôi xin chân thành cảm ơn:
Thầy Ngô Bá Hùng, ngƣời tận tình hƣớng dẫn và giúp đỡ tôi trong quá trình
thực hiện luận văn.


Tập thể cán bộ khoa Công nghệ Thông tin & Truyền thông đã tạo điều kiện
thuận lợi và giúp đỡ tôi trong suốt thời gian thực hiện luận văn.
Các thầy, cô khoa Công nghệ Thông tin & Truyền thông đã tận tình truyền dạy
những kiến thức để tôi có thể hoàn thành luận văn này.
Và cuối cùng, xin cảm ơn gia đình đã hỗ trợ, động viên về mọi mặt trong suốt
thời gian học tập và hoàn thành luận văn.
Xin cảm ơn quý thầy cô, gia đình bằng tất cả tình cảm yêu thương chân thành
nhất!.
Cần Thơ, tháng 11 năm 2014
Phạm Hoàng Diệu

1


MỤC LỤC
LỜI CẢM ƠN ............................................................................................................1
MỤC LỤC ..................................................................................................................2
DANH MỤC ĐỒ THỊ, BIỂU BẢNG VÀ HÌNH ẢNH ..........................................4
TÓM LƢỢC ..............................................................................................................7
ABSTRACT ...............................................................................................................8
PHẦN I: GIỚI THIỆU .............................................................................................9
I.1. Đặt vấn đề .........................................................................................................9
I.1.1. Bài toán quy trình và cải tiến quy trình .....................................................9
I.1.2. Giải quyết bài toán quy trình và cải tiến quy trình ..................................10
I.2. Những nghiên cứu liên quan ...........................................................................10
I.2.1. Sơ lƣợt về các công cụ biên soạn quy trình .............................................10
I.2.2. Nhận xét các công cụ và hƣớng phát triển của luận văn .........................12
I.3. Mục tiêu đề tài ................................................................................................13
I.4. Đối tƣợng và phạm vi nghiên cứu ..................................................................13
I.5. Phƣơng pháp nghiên cứu ................................................................................13

I.6. Nội dung nghiên cứu.......................................................................................14
I.7. Bố cục của quyển luận văn .............................................................................14
PHẦN II: NỘI DUNG .............................................................................................15
Chƣơng 1 – Đặc tả yêu cầu .................................................................................15
II.1.1. Yêu cầu đề tài .........................................................................................15
II.1.2. Phát triển các tính năng mới dựa trên một workflow engine .................16
II.1.3. Kiến trúc ứng dụng .................................................................................17
II.1.4. Phạm vi chức năng .................................................................................18
II.1.5. Phạm vi triển khai...................................................................................18
II.1.6. Phạm vi sử dụng .....................................................................................18
II.1.7. Cơ sở lý thuyết........................................................................................18
Chƣơng 2 – Thiết kế giải pháp ...........................................................................31
II.2.1. Hƣớng thiết kế chƣơng trình ..................................................................31
II.2.2. Màn hình giao diện và sơ đồ hoạt động các chức năng của ứng dụng
biên soạn quy trình ............................................................................................32
II.2.3. Sơ đồ lớp.................................................................................................47
II.2.4. Sơ đồ tuần tự các chức năng của ứng dụng biên soạn quy trình ............48
II.2.5. Thiết kế cơ sở dữ liệu .............................................................................55
Chƣơng 3 – Cài đặt giải pháp ............................................................................57
II.3.1. Cài đặt một stencil set ............................................................................57
2


II.3.2. Generate và transform file XML ............................................................60
II.3.3. Các chức năng import và export file ......................................................64
II.3.4. Các chức năng quản lý ngƣời dùng ........................................................66
Chƣơng 4 – Đánh giá kiểm thử ..........................................................................69
II.4.1. Mục tiêu kiểm thử ..................................................................................69
II.4.2. Kịch bản kiểm thử và các bƣớc chạy chƣơng trình ................................69
II.4.3. Kết quả quá trình thực thi .......................................................................73

PHẦN III: KẾT LUẬN ...........................................................................................80
III.1. Kết quả đạt đƣợc ..........................................................................................80
III.2. Kết quả chƣa đạt đƣợc..................................................................................80
III.3. Hƣớng phát triển ..........................................................................................80
TÀI LIỆU THAM KHẢO ......................................................................................81

3


DANH MỤC ĐỒ THỊ, BIỂU BẢNG VÀ HÌNH ẢNH
Danh mục hình ảnh
Hình 1.0: Minh họa trình tự công việc cho việc giao hàng .........................................9
Hình 1.1: Giao diện của Workflow Editor ................................................................11
Hình 1.2: JGraph MVC .............................................................................................11
Hình 1.3: Công cụ biên soạn mô hình mạng Petri sử dụng thƣ viện JGraphX .........12
Hình 2.0: Kiến trúc ứng dụng ...................................................................................17
Hình 2.1: Kiến trúc N-Tier của ứng dụng .................................................................17
Hình 2.2: Lịch sử phát triển của BPMN ...................................................................20
Hình 2.3: Mô hình hóa một quy trình bằng BPMN ..................................................20
Hình 2.4: Cấu trúc một file XML..............................................................................23
Hình 2.5: Ngôn ngữ mô tả workflow chuẩn BPMN 2.0 ...........................................23
Hình 2.6: Minh họa kỹ thuật XSLT ..........................................................................26
Hình 2.7: Ngôn ngữ mô tả workflow theo chuẩn Kaleo Workflow Liferay 6.0.......27
Hình 2.8: Ký pháp trong ngôn ngữ mô tả Kaleo Workflow .....................................27
Hình 2.9: Một workflow đƣợc mô tả bằng ký pháp Kaleo .......................................28
Hình 2.10: Mô hình thiết kế chƣơng trình ................................................................31
Hình 2.11: Thiết kế màn hình công cụ biên soạn......................................................32
Hình 2.12: Sơ đồ Use Case của công cụ biên soạn ...................................................33
Hình 2.13: Thiết kế màn hình chức năng Đăng nhập ...............................................34
Hình 2.14: Thiết kế màn hình chức năng Đăng ký ...................................................36

Hình 2.15: Thiết kế màn hình chức năng Đổi mật khẩu ...........................................38
Hình 2.16: Thiết kế màn hình chức năng Quên mật khẩu ........................................40
Hình 2.17: Màn hình chọn các chức năng Import .....................................................41
Hình 2.18: Thiết kế màn hình chức năng Import từ BPMN2 ...................................42
Hình 2.19: Màn hình chọn các chức năng Export .....................................................43
Hình 2.20: Thiết kế màn hình chức năng Export BPMN2........................................44
Hình 2.21: Thiết kế màn hình chức năng Export KALEO .......................................46
Hình 2.22: Sơ đồ lớp của ứng dụng biên soạn quy trình ..........................................47
Hình 2.23: Sơ đồ tuần tự chức năng Đăng nhập .......................................................48
Hình 2.24: Sơ đồ tuần tự chức năng Đăng xuất ........................................................49
Hình 2.25: Sơ đồ tuần tự chức năng Đăng ký ...........................................................49
Hình 2.26: Sơ đồ tuần tự chức năng Đổi mật khẩu ...................................................50
Hình 2.27: Sơ đồ tuần tự chức năng Quên mật khẩu ................................................51
Hình 2.28: Sơ đồ tuần tự chức năng Import từ BPMN2 ...........................................52
Hình 2.29: Sơ đồ tuần tự chức năng Export BPMN2 ...............................................53
4


Hình 2.30: Sơ đồ tuần tự chức năng Export PNG .....................................................54
Hình 2.31: Sơ đồ tuần tự chức năng Export PDF .....................................................54
Hình 2.32: Sơ đồ tuần tự chức năng Export KALEO ...............................................55
Hình 2.33: Bảng ngƣời dùng trong cơ sở dữ liệu ứng dụng .....................................56
Hình 2.34: Prefix một mô tả đồ họa ..........................................................................57
Hình 2.35: Mô tả đồ họa cho đối tƣợng canvas ........................................................58
Hình 2.36 : Khai báo đối tƣợng canvas trong trang HTML......................................58
Hình 2.37 : Mô tả đồ họa đối tƣợng Task trong BPMN 2.0 .....................................59
Hình 2.38: Cấu trúc file bpmn2.0.json ......................................................................59
Hình 2.39: Mô tả đối tƣợng đồ họa Task và thuộc tính ............................................60
Hình 2.40: Sơ đồ tuần tự quá trình sinh mã XML ....................................................61
Hình 2.41: Hàm doPost() của servlet UUIDBasedRepositoryServlet ......................61

Hình 2.42: Hàm unmarshall chuyển đổi mã JSON sang XML BPMN2 ..................62
Hình 2.43: Sơ đồ tuần tự quá trình chuyển đổi mã XML .........................................63
Hình 2.44: Hàm doPost chuyển đổi mã XML ..........................................................63
Hình 2.45: Mã thực hiện chức năng import BPMN2 ................................................64
Hình 2.46: Hàm createUnmarshaller tạo bộ phân tích cú pháp ................................64
Hình 2.47: Hàm marshall chuyển đổi mô tả BPMN2 sang JSON ............................64
Hình 2.48: Hàm doPost() FileStoreServlet chuẩn hóa nội dung file ........................65
Hình 2.49: Hàm execute() của LoginAction class xử lý yêu cầu đăng nhập ............66
Hình 2.50: Hàm execute() của ResigterAction class xử lý yêu cầu đăng ký ............67
Hình 2.51: Hàm execute() xử lý chức năng yêu cầu quên mật khẩu ........................68
Hình 2.52: Đăng nhập ứng dụng ...............................................................................70
Hình 2.53: Biên soạn quy trình duyệt đơn sinh viên.................................................71
Hình 2.54: Chỉnh sửa thuộc tính notifications của task “gvk duyet” ........................71
Hình 2.55: Chỉnh sửa thuộc tính scripted assignment của task “cvht duyet” ...........72
Hình 2.56: Export workflow sang Kaleo XML ........................................................72
Hình 2.57: Đăng nhập Liferay Portal ........................................................................73
Hình 2.58: Workflow Definitions của Liferay Portal ...............................................73
Hình 2.59: Upload Definition Workflow ..................................................................74
Hình 2.60: Dynamic Data Lists của Liferay Portal ...................................................74
Hình 2.61: Data List Definitions ...............................................................................75
Hình 2.62: Thêm một danh sách đơn ........................................................................75
Hình 2.63: Thêm danh sách đơn thành công.............................................................76
Hình 2.64: Danh sách đơn ở tài khoản sinh viên ......................................................76
Hình 2.65: Nhập thông tin đơn để gửi ......................................................................77
Hình 2.66: Trạng thái chờ duyệt của đơn..................................................................77

5


Hình 2.67: Giáo vụ khoa nhận đƣợc thông báo ........................................................78

Hình 2.68: Giáo vụ khoa nhận đơn của sinh viên thành công ..................................78
Hình 2.69: Cố vấn học tập nhận đƣợc đơn từ giáo vụ khoa......................................79
Hình 2.70: Cố vấn học tập duyệt đơn .......................................................................79
Hình 2.71: Đơn đã đƣợc duyệt ..................................................................................79
Danh mục biểu bảng
Bảng 2.0: Các nhóm ký hiệu BPMN.........................................................................22
Bảng 2.1: Mô tả Use Case Đăng nhập ......................................................................33
Bảng 2.2: Các bƣớc thực hiện trong Use Case Đăng nhập .......................................34
Bảng 2.3: Mô tả màn hình chức năng Đăng nhập .....................................................34
Bảng 2.4: Mô tả Use Case Đăng ký ..........................................................................35
Bảng 2.5: Các bƣớc thực hiện trong Use Case Đăng ký ...........................................35
Bảng 2.6: Mô tả màn hình chức năng Đăng ký.........................................................36
Bảng 2.7: Mô tả Use Case Đổi mật khẩu ..................................................................37
Bảng 2.8: Các bƣớc thực hiện trong Use Case Đổi mật khẩu...................................37
Bảng 2.9: Mô tả màn hình chức năng Đổi mật khẩu ................................................38
Bảng 2.10: Mô tả Use Case Quên mật khẩu .............................................................39
Bảng 2.11: Các bƣớc thực hiện trong Use Case Quên mật khẩu ..............................39
Bảng 2.12: Mô tả màn hình chức năng Quên mật khẩu ............................................40
Bảng 2.13: Mô tả Use Case Import từ BPMN2 ........................................................40
Bảng 2.14: Các bƣớc thực hiện trong Use Case Import từ BPMN2 .........................41
Bảng 2.15: Mô tả màn hình chức năng Import từ BPMN2 .......................................42
Bảng 2.16: Mô tả Use Case Export BPMN2 ............................................................43
Bảng 2.17: Các bƣớc thực hiện trong Use Case Export BPMN2 .............................43
Bảng 2.18: Mô tả màn hình chức năng Export BPMN2 ...........................................44
Bảng 2.19: Mô tả Use Case Export PNG ..................................................................44
Bảng 2.20: Các bƣớc thực hiện trong Use Case Export PNG ..................................45
Bảng 2.21: Mô tả Use Case Export PDF ..................................................................45
Bảng 2.22: Các bƣớc thực hiện trong Use Case Export PDF ...................................45
Bảng 2.23: Mô tả Use Case Export KALEO ............................................................46
Bảng 2.24: Các bƣớc thực hiện trong Use Case Export KALEO .............................46

Bảng 2.26: Mô tả màn hình chức năng Export KALEO ...........................................47

6


TÓM LƢỢC
Workflow (luồng công việc) là sơ đồ thể hiện thứ tự các bƣớc xử lý, tác vụ, sự
kiện hoặc tƣơng tác làm nên một quy trình để thực hiện nghiệp vụ nào đó của công
ty. Quy trình này có thể có nhiều bộ phận, cá nhân tham gia. Nguồn gốc của “luồng
công việc” bắt nguồn từ công tác xử lý văn bản: văn bản cần đƣợc di chuyển từ nơi
này đến nơi khác để xử lý các công việc khác nhau (đọc, sửa đổi, góp ý, xem lại,
phê duyệt…).
Một workflow bao gồm các ký pháp (hình) là các loại nút và các cạnh nối các
nút lại với nhau.
Để ngƣời dùng dễ dàng sử dụng sơ đồ workflow, ta cần xây dựng công cụ trực
quan giúp ngƣời dùng vẽ các mô hình đồng thời tự động sinh mã cho workflow theo
ngôn ngữ mô tả workflow.
Ngôn ngữ mô tả workflow trong đề tài này đƣợc xây dựng bằng XML. XML
là ngôn ngữ tạo cấu trúc dữ liệu có tính đơn giản, dễ dàng sử dụng và linh động.
Đề tài này xây dựng một ứng dụng trực tuyến cung cấp chức năng vẽ
workflow, các vị trí và thuộc tính của từng loại nút và các cạnh nối đƣợc mô tả bằng
JSON. Một thƣ viện sẽ phân tích các chuỗi JSON và mô tả lại bằng XML theo
chuẩn BPMN 2.0.
Ngƣời dùng có thể biên soạn sơ đồ workflow một cách trực quan với từng
nghiệp vụ mà công ty có.

7


ABSTRACT

Workflow is the sequence diagram showing the process steps, tasks, events or
interact to create a process to carry out certain operations of the company. This
process can have multiple departments and individuals involved. The origin of the
workflow is derived from the work of handling document: document to be moved
from one place to another to handle different tasks (read, modify, comment, review,
approval…).
A workflow consists of the notation is the type of nodes and transitions
connecting the nodes together.
For users to easily use the workflow diagram, we need to build visualization
tool help users draw models and automatically generate the code for the workflow
with workflow description language.
Workflow description language for this thesis is XML. XML is the language
generated data structure with the simplicity, ease of use and flexibility.
This thesis build a web application provice drawing workflow, the position
and attributes of each type of nodes and transitions are described by JSON. A
library will parse the JSON string in XML (BPMN 2.0 standard).
Users can render workflow diagrams in intuitive way with every business
activity of the company.

8


PHẦN I: GIỚI THIỆU
I.1. Đặt vấn đề
I.1.1. Bài toán quy trình và cải tiến quy trình
Mỗi sản phẩm, dịch vụ của một doanh nghiệp, công ty, tổ chức là kết quả của
một loạt các hoạt động sản xuất, quản lý… thƣờng gọi là các quy trình kinh doanh.
Các quy trình là mục tiêu và cũng là công cụ để tổ chức các hoạt động trong doanh
nghiệp và cải thiện mối quan hệ giữa chúng nhằm tạo ra những quy trình khoa học,
thống nhất. Thông qua việc quản lý các quy trình ngƣời chủ doanh nghiệp, công ty,

tổ chức có thể tiếp cận với việc giảm chi phí quản lý, cải thiện sự hài lòng của
khách hàng, đối tác,… xây dựng các sản phẩm và dịch vụ mới trong thời gian nhanh
nhất với chi phí hợp lý nhất và cuối cùng là chiếm lĩnh thị trƣờng bằng các lợi thế
cạnh tranh và gia tăng lợi nhuận.
Việc xây dựng quy trình và cải tiến quy trình là điều thiết yếu đối với mỗi
doanh nghiệp, công ty và tổ chức. Để hoạt động ổn định, xây dựng và cải tiến một
quy trình phải đảm bảo các yếu tố:
(1) Quy trình phải có khả năng xử lý công việc theo trình tự. Ví dụ nhƣ trình tự
công việc cho việc giao hàng có thể minh họa nhƣ sau:

Hình 1.0: Minh họa trình tự công việc cho việc giao hàng
(2) Khả năng giám sát hoạt động kinh doanh, xem xét trình tự công việc, phê duyệt
công việc, hoạch định việc phân quyền trong từng bƣớc xử lý công việc để đảm bảo
tính đúng đắng của thông tin công việc và truy cứu trách nhiệm sau này. Một quy
trình còn phải trả lời đƣợc những câu hỏi: Ai phải làm công việc này? Ai sử dụng
cái này? Ai sẽ liên hệ với ai? Luồng công việc sẽ đi nhƣ thế nào?.
(3) Khả năng thực thi nhiều tham số trong mỗi công việc.

9


I.1.2. Giải quyết bài toán quy trình và cải tiến quy trình
Từ những yêu cầu trên cần phải xây dựng một công cụ giúp mô hình hóa một
quy trình kinh doanh. Mặt khác, do tính chất trình tự của quy trình nên mỗi lần chạy
công việc khác nhau sẽ cho kết quả khác nhau, ngƣời quản lý quy trình phải thay
đổi công việc hoặc trình tự công việc để phù hợp với công việc thực tế, những vấn
đề trong quy trình cũ sẽ đƣợc thay đổi trong quy trình mới. Việc chỉnh sửa và thi
hành các quy trình diễn ra thƣờng xuyên và phải chỉnh sửa thông qua code mô tả
quy trình.
Vì vậy một công cụ biên soạn trực quan cho phép ngƣời dùng biên soạn và

chỉnh sửa rất cần thiết.

I.2. Những nghiên cứu liên quan
I.2.1. Sơ lượt về các công cụ biên soạn quy trình
Hiện nay có khá nhiều công cụ biên soạn quy trình là open-source hoặc
closed-source. Một số công cụ tiêu biểu:
Java Workflow Tooling (JWT)
Workflow Editor (WE) là bộ công cụ trực quan cho phép tạo, quản lý các
workflow. Đƣợc xây dựng nhƣ một plugin của Eclipse dựa trên các JWT API nó có
thể chuyển đổi mô hình JWT-model thành BPMN (và ngƣợc lại).
Công cụ này cho phép ngƣời dùng vẽ các node (công việc) và các transition
(đƣờng liên kết) giữa các node đó. Ngƣời dùng có thể thao tác trên mô hình
workflow một cách trực quan bằng chuột, có thể di chuyển, thêm, sửa, xóa…
JWT đƣợc phát triển dựa trên Java, nó sử dụng các biểu tƣợng BPMN
(Bussiness Process Modeling Notation) cho phép ngƣời dùng tạo các quy trình của
doanh nghiệp và xuất chúng ra dạng file XML theo chuẩn BPMN 2.0 (ngoài ra có
thể sử dụng các chuẩn khác nhau STP-IM, XPDL, jPDL).
Ngoài các tính năng trên, JWT còn cung cấp chức năng Runtime trong giai
đoạn phát triển.

10


Hình 1.1: Giao diện của Workflow Editor
JGraph/JGraphX
JGraphX là một thƣ viện mô hình hóa dựa trên Java Swing đƣợc cấp phép
theo BSD license. Nó cung cấp các chức năng để hiển thị trực quan và trƣơng tác
giữa các node-transition, ngƣời dùng có thể tạo đƣợc quy trình kinh doanh, sơ đồ tổ
chức, biểu đồ kiến trúc vi mạch, VLSI, CAD, công cụ UML, mạng viễn thông.
JGraphX cũng hỗ hợ để xuất ra định dạng XML.

JGraphX đƣợc thiết kế bằng cách dùng các Design Patterns để cung cấp các
hàm API cho việc mô hình hóa vì vậy nó có thể tạo các mô hình với nhiều kiểu
khác nhau.

Hình 1.2: JGraph MVC

11


Vì JGraphX là một thƣ viện open-source nên ngƣời dùng có thể sử dụng để tự
xây dựng một công cụ biên soạn mô hình, dƣới đây là một ví dụ:

Hình 1.3: Công cụ biên soạn mô hình mạng Petri sử dụng thư viện JGraphX
(Ảnh project tại />Một phiên bản khác của JGraphX là mxGraph. Khác với JGraphX, mxGraph
sử dụng thƣ viện JavaScript để mô hình hóa và mxGraph là phiên bản closedsource.

I.2.2. Nhận xét các công cụ và hướng phát triển của luận văn
Ngoài hai công cụ trên còn nhiều công cụ khác. Nhận xét chung chúng có các
đặc điểm nhƣ: cho phép ngƣời dùng biên soạn quy trình với tƣơng tác trực quan,
cho phép xuất ra định dạng XML theo chuẩn mà nhà phát triển quy định.Thích hợp
để giải nhiều bài toán quy trình khác nhau.
Tuy nhiên, theo đặc thù của đề tài luận văn yêu cầu, công cụ biên soạn phải
đƣợc phát triển để hoạt động nhƣ một ứng dụng trực tuyến, có thể giải quyết nhiều
bài toán quy trình và mô hình hóa và kết hợp với ứng dụng khác để cùng giải quyết
vấn đề. Định hƣớng trong việc phát triển luận văn có thể nhƣ sau:

12


(1) Sử dụng một workflow engine có sẵn để cung cấp chức năng biên soạn quy

trình.
(2) Tập trung vào chuyển đổi JSON thành định dạng XML với nhiều chuẩn khác
nhau.
(3) Sử dụng ngôn ngữ lập trình Java vì ngôn ngữ này cung cấp rất nhiều API để xử
lý các yêu cầu mô hình hóa.
(4) Liên kết công cụ biên soạn và Kaleo Workflow trong Liferay để thử nghiệm
cùng giải quyết một bài toán quy trình cụ thể.

I.3. Mục tiêu đề tài
Mục tiêu của đề tài nhằm phát triển một ứng dụng biên soạn quy trình trên nền
web có các tính năng:
- Cho phép ngƣời dùng biên soạn quy trình một cách trực quan với các biểu
tƣợng theo chuẩn BPMN.
- Xuất mô hình ra định dạng XML với chuẩn BPMN 2.0, định dạng PDF hoặc
hình ảnh PNG.
- Chuyển đổi chuẩn BPMN sang chuẩn định dạng XML workflow definition
của Kaleo Workflow trong Liferay để kết hợp cùng giải một bài toán quy trình cụ
thể.

I.4. Đối tƣợng và phạm vi nghiên cứu
Phát triển một ứng dụng biên soạn quy trình phục vụ cho việc mô hình hóa
quy trình kinh doanh của doanh nghiệp.
Ứng dụng hoạt động trên nền localhost, máy chủ Tomcat và cơ sở dữ liệu
MySQL. Chức năng chính là biên soạn quy trình và và chuyển đổi giữa các ngôn
ngữ mô hình hóa.

I.5. Phƣơng pháp nghiên cứu
Phân chia thực hiện luận văn theo từng giai đoạn, sắp xếp thời gian và công
việc cụ thể trong từng giai đoạn. Ở mỗi giai đoạn kết hợp với hƣớng dẫn và nhận
xét của giảng viên hƣớng dẫn để thực hiện.


13


I.6. Nội dung nghiên cứu
Luận văn đƣợc chia công việc theo tuần với những công việc cụ thể:
Tuần 1: Phân tích mục tiêu đề tài, tìm kiếm tài liệu liên quan đề tài.
Tuần 2: Tìm hiểu các giải pháp để xây dựng ứng dụng biên soạn, mô hình hóa quy
trình kinh doanh bằng BPMN.
Tuần 3: Tìm hiểu về Liferay Portal và cài đặt.
Tuần 4, 5, 6, 7, 8, 9, 10: Xây dựng công cụ biên soạn quy trình.
Tuần 11: Xây dựng chức năng quản lý ngƣời dùng.
Tuần 12: Kiểm thử các chức năng biên soạn và chứng thực ngƣời dùng.
Tuần 13: Thử nghiệm ứng dụng biên soạn và Kaleo Workflow của Liferay Portal.
Tuần 14, 15: Cập nhật và hoàn chỉnh các chức năng biên soạn.
Tuần 16: Viết và chỉnh sửa báo cáo.
Tuần 17: Bảo vệ luận văn.

I.7. Bố cục của quyển luận văn
Bố cục của luận văn bao gồm:
Phần 1: Giới thiệu
Đặt vấn đề - bài toán quy trình và cải tiến quy trình
Những nghiên cứu liên quan và nhận xét
Mục tiêu đề tài, đối tƣợng, phạm vi, phƣơng pháp và nội dung nghiên cứu
Phần 2: Nội dung
Đặc tả yêu cầu
Thiết kế giải pháp
Cài đặt giải pháp
Đánh giá kiểm thử
Phần 3: Kết luận

Kết quả đạt đƣợc và hƣớng phát triển
Tài liệu tham khảo và phụ lục

14


PHẦN II: NỘI DUNG
Chƣơng 1 – Đặc tả yêu cầu
Chƣơng này trình bày yêu cầu đề tài, phát triển các tính năng mới dựa trên một
workflow engine, kiến trúc ứng dụng, phạm vi chức năng, phạm vi triển khai và
phạm vi sử dụng và cơ sở lý thuyết.

II.1.1. Yêu cầu đề tài
Một quy trình kinh doanh có các tính chất chủ yếu sau:
(1) Quy trình này đƣợc thực hiện bởi nhiều bộ phận và cá nhân trong công ty. Một
công việc đƣợc thực hiện bởi một ngƣời không thể coi là quy trình nghiệp vụ.
(2) Quy trình là một chuỗi công việc có tính cấu trúc hoặc bán cấu trúc. Điều đó có
nghĩa chuỗi công việc phải đƣợc thực hiện một cách có quy tắc có logic chứ không
đƣợc thực hiện một cách tùy tiện.
(3) Các công việc trong quy trình có thể thực hiện theo trình tự nối tiếp hoặc song
song.
(4) Chuỗi các công việc phải đƣợc thực hiện với mục đích là hƣớng đến một mục
tiêu cuối cùng.
Do có nhiều tính chất và quy luật đặc biệt, để dễ dàng quản lý sơ đồ và ngƣời
dùng có thể sử dụng sơ đồ workflow hiệu quả, đề tài này mong muốn xây dựng
công cụ biên soạn trực quan giúp ngƣời dùng vẽ các mô hình đồng thời tự động sinh
mã cho workflow theo ngôn ngữ mô tả workflow. Ngôn ngữ mô tả workflow trong
đề tài này đƣợc xây dựng bằng XML. XML là ngôn ngữ tạo cấu trúc dữ liệu có tính
đơn giản, dễ dàng sử dụng và linh động.
Về mặt tổng quan, ứng dụng sử dụng các tính năng có sẵn của một workflow

engine để cung cấp tính năng biên soạn quy trình, sau đó tập trung phát triển các
tính năng sinh mã XML và chuyển đổi mã XML, ứng dụng dựa trên nền công nghệ
mạng Internet, áp dụng kỹ thuật lập trình Java và các gói hỗ trợ đồ họa. Đề tài cũng
hƣớng đến những mục tiêu sau:
 Đáp ứng tốt yêu cầu về mô hình hóa quy trình với giao diện linh hoạt.
 Áp dụng công nghệ có khả năng xử lý trực tuyến, cơ sở dữ liệu tập trung.

15


 Chƣơng trình chạy trên giao diện Web Browser với kiến trúc Client/Server,
hệ thống máy chủ ứng dụng phiên bản Ubuntu từ 12.04 đến 14.04, các máy
trạm phiên bản Windows 2000 đến Windows 8.1, các Distro Linux phổ biến.
 Đáp ứng yêu cầu hiệu năng và khả năng mở rộng của ứng dụng.
 Đáp ứng các chức năng quản trị, phân quyền và bảo mật thông tin.

II.1.2. Phát triển các tính năng mới dựa trên một workflow engine
Workflow engine là phần mềm ứng dụng cho phép định nghĩa quy trình bằng
ngôn ngữ mô hình hóa, là thành phần quan trọng để xây dựng công cụ biên soạn
quy trình. Đề tài sử dụng một workflow engine để cung cấp các tính năng biên soạn
quy trình, sau đó tập trung vào phát triển các tính sinh mã XML và chuyển đổi mã
XML sang các ngôn ngữ mô tả khác. Workflow engine đƣợc chọn sử dụng trong đề
tài là Oryx.
Oryx là một nền tảng mở cho phép phát triển các công cụ biên soạn quy trình
kinh doanh với giấy phép GNU GPL v3. Oryx là một dự án nằm trong nghiên cứu
Business Process Technology của nhóm Hasso Plattner Institue thuộc IT Systems
Engineering, University of Potsdam (Đại học Postdam, Đức). Oryx cung cấp các
khả năng nổi bậc để phát triển công cụ biên soạn:
 Tạo một công cụ biên soạn mới bằng các khai báo mô tả mà nhà phát triển
quy định, các mô tả này còn đƣợc gọi là stencil-set. Một stencil-set bao gồm

một file JSON dùng mô tả các nút và thuộc tính, các file SVG mô tả đồ họa
và các icons là hình ảnh các nút hoặc liên kết trong workflow.
 Dễ dàng mở rộng chức năng cho công cụ biên soạn bằng cách phát triển các
plugin.
 Giao diện đƣợc xây dựng bằng ngôn ngữ JavaScript.
 Hỗ trợ I18N (Internationalization and localization).
Các tính năng sẵn có của Oryx:
 Cung cấp khả năng biên soạn quy trình dựa vào stencil-set mà ngƣời phát
triển cài đặt.
 Import từ file JSON và export thành file JSON.
Các tính năng cập nhật và xây dựng thêm mới:
 Import từ file BMPN và export thành file BPMN
 Export PNG, PDF, Kaleo Workflow Liferay 6.0.

16


II.1.3. Kiến trúc ứng dụng
Xây dựng ứng dụng biên soạn quy trình nền web với kiến trúc phân tầng và cơ
sở dữ liệu tập trung.

Hình 2.0: Kiến trúc ứng dụng

Hình 2.1: Kiến trúc N-Tier của ứng dụng

17


II.1.4. Phạm vi chức năng
Ứng dụng giải quyết các chức năng nghiệp vụ sau:

 Biên soạn và chỉnh sửa quy trình với chuẩn BPMN 2.0.
 Cho phép export sơ đồ ra các định dạng: PDF, PNG, XML BPMN 2.0, XML
Kaleo Workflow Definition 6.0…
 Cho phép import sơ đồ từ file JSON hoặc XML BPMN 2.0.

II.1.5. Phạm vi triển khai
Ứng dụng đƣợc triển khai trên localhost, máy chủ Apache Tomcat 8.0 trên
Ubuntu 14.04 và cơ sở dữ liệu MySQL.

II.1.6. Phạm vi sử dụng
Kết quả sau khi biên soạn quy trình đƣợc xuất ra các file XML BPMN 2.0, các
file XML này có thể đƣợc sử dụng trong các công cụ biên soạn quy trình BPMN
khác hoặc các hệ thống BPM (Business Process Management) có sử dụng mô tả
BPMN 2.0.
Các file XML BPMN 2.0 này cũng có thể đƣợc transform sang các ngôn ngữ
mô hình hóa khác theo yêu cầu sử dụng.
Ngƣời dùng có thể đăng ký tài khoản để sử dụng ứng dụng.

II.1.7. Cơ sở lý thuyết
II.1.7.1. Khái niệm workflow
Workflow (luồng công việc) là sơ đồ thể hiện thứ tự các bƣớc xử lý, tác vụ, sự
kiện hoặc tƣơng tác làm nên một quy trình để thực hiện nghiệp vụ nào đó của công
ty. Quy trình này có thể có nhiều bộ phận, cá nhân tham gia. Nguồn gốc của “luồng
công việc” bắt nguồn từ công tác xử lý văn bản: văn bản cần đƣợc di chuyển từ nơi
này đến nơi khác để xử lý các công việc khác nhau (đọc, sửa đổi, góp ý, xem lại,
phê duyệt…).
Workflow đƣợc thiết kế với mục đích xử lý công việc theo đúng trình tự logic
và quy luật của một công ty, hơn nữa workflow còn giúp giảm tính phức tạp trong
mối liên hệ giữa khách hàng và công ty.
Với những đặc tính trên workflow thƣờng đƣợc dùng trong Business Process

Re-engineering (BPR). BPR còn đƣợc biết đến nhƣ một chiến lƣợc quản lý kinh
doanh (business management strategy), kỹ thuật này xuất hiện đầu những năm
1990, nó tập trung và việc phân tích và thiết kế workflow và quy trình kinh doanh
18


của một tổ chức. Mục đích giúp cho tổ chức cơ bản suy nghĩ lại cách làm việc của
họ, cải thiện chất lƣợng sản phẩm, dịch vụ, cắt giảm chi phí hoạt động và nâng cao
tính cạnh tranh.
Một sơ đồ workflow bao gồm các ký pháp (hình ảnh) là các loại nút và các
cạnh nối các nút lại với nhau. Bƣớc đầu tiên của một luồng công việc thƣờng đƣợc
khởi xƣớng từ một sự kiện bên ngoài.

II.1.7.2. Ngôn ngữ mô hình hóa BPMN
II.1.7.2.1. Khái niệm
BPMN (Business Process Modeling Notation) hay hệ thống ký hiệu mô hình
hóa quy trình kinh doanh là hệ thống ký hiệu hỗ trợ cho mô tả, phân tích và thực thi
quy trình kinh doanh dƣới dạng workflow. BPMN là cầu nối lấp đầy lỗ hổng giữa
việc thiết kế và triển khai quy trình kinh doanh.
II.1.7.2.2. Ƣu điểm và nhƣợc điểm
Ƣu điểm:
 Cung cấp bộ ký hiệu dễ hiểu giúp giảm đi sự nhầm lẫn cho những ngƣời làm
kinh doanh hay công nghệ thông tin.
 Có thể dễ dàng ánh xạ sang ngôn ngữ mô hình hóa khác.
Nhƣợc điểm:
 BPMN chỉ hỗ trợ một loại sơ đồ.
 Không hỗ trợ thiết kế hệ thống.
II.1.7.2.3. Lịch sử phát triển của BPMN
BPMN ban đầu đƣợc phát triển bởi Business Process Management Initiative
(BPMI). Phiên bản đầu tiên version 1.0 đƣợc phát hành vào tháng 5 năm 2004.

Tháng 6 năm 2005, BPMI sát nhập với Object Management Group (OMG). Năm
2010, version 2.0 đƣợc phát hành. Hiện nay phiên bản mới nhất là version 2.0.2
đƣợc công bố chính thức vào tháng 12 năm 2013 với tiêu chuẩn ISO/IEC 19510.
Qua nhiều năm phát triển, BPMN đƣợc các nhà phân tích kinh doanh lựa chọn
làm hình mẫu trong việc mô hình hóa quy trình kinh doanh.

19


Hình 2.2: Lịch sử phát triển của BPMN
II.1.7.2.4. Hệ thống ký hiệu

Hình 2.3: Mô hình hóa một quy trình bằng BPMN
BPMN có bốn nhóm ký hiệu chính là flow objects, swimlanes, artifacts và
connecting objects. Sau đây là bảng mô tả các ký hiệu thƣờng đƣợc sử dụng.
Flow Objects
Ký hiệu
Events

Tên ký hiệu
Start Event

Ý nghĩa
Sự hiện đầu tiên của quy
trình

20


Activities


Gateways

Intermediate
Event

Sự kiện xảy ra bất kỳ

Event Event

Sự kiện kết thúc quy trình

Task

Là một hoạt động xử lý
trong quy trình, đƣợc sử
dụng khi công việc không
thể chia nhỏ hơn nữa

Sub-process

Là hoạt động chứa các
hoạt động nhỏ bên trong

Exclusive

Điều khiển luồng công
việc đến duy nhất một
công việc khác dựa và
điều kiện


Parallel

Điều khiển luồng công
việc thành nhiều công
việc song song

Inclusive

Điều khiển luồng công
việc thành nhiều công
việc khác dựa vào điều
kiện

Swimlanes
Pool, Lanes

Tổ chức các công việc
thành các loại riêng biệt,
giải quyết từng khía cạnh
của một quy trình

Artifacts
Group

Tổ chức lại các task thành
một quá trình có ý nghĩa
quan trọng trong tổng thể
một quy trình


Annotation

Mô tả bổ sung hoặc ghi
chú cho một đối tƣợng

21


Data Object

Đại diện cho dữ liệu đƣợc
đặt vào trong một quá
trình. Dữ liệu này có thể
đƣợc gửi đi hoặc đƣợc lƣu
trữ

Connecting Objects
Sequence
Flow

Dòng chảy luồng công
việc đến một đối tƣợng
khác

Message
Flow

Gửi thông điệp cho một
đối tƣợng


Association

Mối quan hệ giữa artifacts
và flow objects

Bảng 2.0: Các nhóm ký hiệu BPMN

II.1.7.3. Ngôn ngữ mô tả workflow XML
II.1.7.3.1. Giới thiệu XML và lý do sử dụng làm ngôn ngữ mô tả Workflow
XML (eXtensible Markup Language) là ngôn ngữ mô tả cấu trúc dữ liệu.
XML có các ƣu điểm:
 Có khả năng mô tả nhiều loại dữ liệu khác nhau, mọi thông tin đều mô tả
dƣới dạng text, dễ dàng xử lý.
 Có thể dễ dàng đƣợc tuần tự hóa và truyền đi giữa các lớp trong hệ thống và
truyền qua mạng.
 Có thể tạo và chỉnh sửa tài liệu XML trên các trình soạn thảo thông thƣờng,
không cần có chƣơng trình chuyên dụng để đọc gây phức tạp và khó khăn.
 Tài liệu XML cho phép các tên dữ liệu ở cấu trúc thứ bậc, ý nghĩa các phần
tử và thuộc tính có tính chất mở và có thể tùy ý định nghĩa. Điều này giúp
các tag của tài liệu XML có thể đƣợc đặt phù hợp với từng ngôn ngữ mô tả
cụ thể, và cú pháp chung của các ngôn ngữ đó là cố định.
Cấu trúc một file XML bao gồm các thành phần chính:

22


Hình 2.4: Cấu trúc một file XML
II.1.7.3.2. Cú pháp ngôn ngữ mô tả workflow theo chuẩn BPMN 2.0
Workflow đƣợc mô tả theo chuẩn BPMN 2.0 có cấu trúc nhƣ sau:


Hình 2.5: Ngôn ngữ mô tả workflow chuẩn BPMN 2.0
Sau đây là trình bày các thành phần chính của ngôn ngữ mô tả workflow theo
chuẩn BPMN 2.0, các đối tƣợng đồ họa ngôn ngữ này mô tả đã đƣợc trình bày trong
mục II.1.7.2.4. Hệ thống ký hiệu
(1) Thẻ bpmn2:definitions
Là thẻ chính trong chuẩn mô tả, có hai thẻ con là bpmn2:process và bpmn2:
BPMNDiagram. Các thuộc tính bắt buộc phải có là:

23


xmlns=" />xmlns:xsi=" />xsi:schemaLocation=" />BPMN20.xsd"
xmlns:bpmn2=" />xmlns:bpmndi=" />xmlns:dc=" />xmlns:di=" />(2) Thẻ bpmn2:process
Là thẻ con của thẻ bpmn2:definitions, thẻ này mô tả các thành phần trong
một workflow ví dụ nhƣ các nút, đƣờng nối các nút…
(3) Thẻ bpmn2:startEvent
Là thẻ con của thẻ bpmn2:process, mô tả đổi tƣợng đồ họa Start Event là
trạng thái bắt đầu của một workflow.
(4) Thẻ bpmn2:endEvent
Là thẻ con của thẻ bpmn2:process, mô tả đối tƣợng đồ họa End Event là
trạng thái kết thúc của một workflow.
(5) Thẻ bpmn2:task
Là thẻ con của thẻ bpmn2:process, mô tả đối tƣợng đồ họa Task là công việc
trong workflow.
(6) Thẻ bpmn2:inclusiveGateway
Là thẻ con của thẻ bpmn2:process, mô tả đối tƣợng đồ họa Inclusive Gateway
dùng để điều khiển luồng workflow, nó chứa điều kiện để điều khiển luồng công
việc đến duy nhất một công việc khác.
(7) Thẻ bpmn2:parallelGateway
Là thẻ con của thẻ bpmn2:process, mô tả đối tƣợng đồ họa Parallel Gateway

dùng để điều khiển luồng công việc khi muốn chia một công việc chính thành nhiều
công việc nhỏ và nhóm kết quả các công việc đó để chuyển đến cho một công việc
khác.
Thuộc tính:
 gatewayDirection=”Diverging”: Chia một công việc lớn thành nhiều công
việc nhỏ

24


×