Lựa chọn nền tảng web và giải pháp cài đặt

Một phần của tài liệu Ứng dụng ký pháp BPMN2.0 và nền tảng activiti trong tự động hóa quy trình nghiệp vụ (Trang 43)

2.2.3.1. Lựa chọn nền tảng web

Để xây dựng các ứng dụng web mạnh, chúng ta cần có những trợ giúp tối đa có thể, chúng ta cần sử dụng một framework cho ứng dụng web. Apache Struts 2 là một framework mới và hiện đại dành cho ứng dụng web. Struts 2 là thế hệ framework web thứ hai cài đặt mẫu thiết kế MVC (Model – View – Control). Một trong những mục tiêu chính của Struts là tích hợp mẫu thiết kế MVC từ thế giới của ứng dụng desktop sang một framwork ứng dụng web. Đây là bước đi quan trọng trong sự phát triển của các ứng dụng web có thiết kế tốt, bởi vì nó cung cấp một nền tảng cho phép dễ dàng đạt được mô hình MVC. Điều này cho phép lập trình viên không phải bỏ ra nhiều thời gian để xây dựng một kiến trúc tốt cho ứng dụng, thay vào đó họ có thể tập trung vào việc tìm ra giải pháp tốt nhất cho bài đoán nghiệp vụ.

Thiết kế ở mức cao của Struts 2 tuân theo mẫu thiết kế Model-View-Control. Mẫu thiết kế MVC đưa ra một sự phân biệt các thành phần khác nhau áp dụng cho ứng dụng web. Sự phân biệt các thành phần khác nhau cho phép chúng ta quản lý được sự phức tạp của các hệ thống phần mềm lớn bằng cách chia chúng thành các thành phần ở mức cao hơn. Mẫu thiết kế MVC xác định ba thành phần: model, view và controller. Trong Struts 2, chúng được cài đặt bởi action, result và FilterDispatcher như mô tả trong hình dưới [8].

Hình 17: Mô hình MVC của Struts 2 được hiện thực hóa bằng các thành phần core của framework: action, result và FilterDispatcher.

2.2.3.2. Giải pháp cài đặt

Giải pháp chuyển hướng từ màn hình công việc sang các module chức năng

Với cơ chế cài đặt lấy BPM làm trung tâm, các module chức năng (ví dụ module lập danh sách thí sinh, lập danh sách giám thị) được tích hợp vào luồng quy trình và được sử dụng để thực hiện một tác vụ cụ thể. Vấn đề cần giải quyết là từ hành động thực thi một tác vụ của người dùng trên màn hình quản lý công việc chương trình biết phải chuyển hướng người dùng sang module chức năng tương ứng.

Với đầu vào có được từ màn hình công việc là id của tác vụ cần thực thi, chúng ta cần biết tác vụ đó thuộc về định nghĩa quy trình nào, sử dụng dịch vụ TaskService của engine để lấy ra thông tin này.

Theo mô hình MVC của Struts2 để chuyển hướng sang các trang khác nhau đối tượng Model trả về các result khác nhau. Chúng ta có thể định nghĩa ra file cấu hình trong đó lưu thông tin tác vụ ứng với result nào như ví dụ dưới đây

Trong file struts.xml và file tiles.xml cấu hình với result trả về từ đối tượng model trang jsp tương ứng là gì

Task task = taskService.createTaskQuery().taskId(taskId).singleResult(); ProcessDefinition processDefinition =

repositoryService.createProcessDefinitionQuery().processDefinitionId(task.getProcessDefini

tionId()).singleResult();

String taskDef = task.getTaskDefinitionKey(); String processDef = processDefinition.getKey();

<action name="examAction" class="vnu.edu.server.action.BghExamAction"

method="prepare">

<result type="tiles" name="createExam">examMng.page</result> <result type="tiles" name="createSubject">subjectMng.page</result> <result type="tiles" name="createStudent">studentMng.page</result> <result type="tiles" name="createSuperVisor">superVisor.page</result> <result type="tiles" name="backHome">back.home.page</result>

<result name="createStudentChangeSmClass">/WEB- INF/jsp/pages/deploy/exam/pickStudent.jsp</result> </action>

<root>

<processDefinition key="Quy_trinh_to_chuc_thi">

<taskDefinition key="Tao_Ky_Thi">createExam</taskDefinition>

<taskDefinition key="Lap_Mon_Thi_Ky_Thi">createSubject</taskDefinition> <taskDefinition key="Lap_Danh_Sach_Thi_Sinh">createStudent</taskDefinition> <taskDefinition key="Lap_Danh_Sach_Giam_Thi">createSuperVisor

</taskDefinition>

<taskDefinition key="Lap_Danh_Sach_Giam_Thi">createSuperVisor

</taskDefinition>

<taskDefinition key="Vao_Diem">createInputMark</taskDefinition> </processDefinition>

Hình dưới đây mô tả trình tự thực thi của hệ thống khi có thao tác thực thi công việc của người dùng

<tiles-definitions>

<definition name="examMng.page" extends="body.definition"> <put-attribute name="title" value="Tao ki thi" />

<put-attribute name="body" value="/WEB-

INF/jsp/pages/deploy/exam/mngExam.jsp" /> (adsbygoogle = window.adsbygoogle || []).push({});

</definition>

<definition name="subjectMng.page" extends="body.definition"> <put-attribute name="title" value="Lap danh sach mon thi" />

<put-attribute name="body" value="/WEB-

INF/jsp/pages/deploy/exam/mngSubject.jsp" />

</definition>

<definition name="studentMng.page" extends="body.definition"> <put-attribute name="title" value="Lap danh sach thi sinh" />

<put-attribute name="body" value="/WEB-

INF/jsp/pages/deploy/exam/mngStudent2.jsp" />

</definition> </tiles-definitions>

Chương 3: Khảo sát và cài đặt một số quy trình nghiệp vụ

3.1. Tích hợp BPM vào các ứng dụng thông thường

Trên thực tế nhiều hệ thống đã được phát triển và đưa vào sử dụng tại các doanh nghiệp/tổ chức mà không đặt vấn đề về việc quản lý quy trình nghiệp vụ một cách tự động. Vì vậy một vấn đề quan trọng đặt ra là làm thế nào để tích hợp hệ thống BPM vào các hệ thống sẵn có một cách phù hợp với chi phí thấp nhất và hiệu quả cao nhất.

Vì sao cần tích hợp?

Một sự tích hợp hiệu quả giữa hệ thống BPM và ứng dụng thông thường sẽ mang lại hiệu quả rõ rệt đối với quy trình nghiệp vụ. Khi tích hợp với BPM, quy trình được chuẩn hóa và tối ưu hóa, quy trình được vận hành một cách tự động và chính xác, đảm bảo được sự tham gia của các thành phần trong quy trình từ đội ngũ nhân viên làm nghiệp vụ cho tới các chuyên gia và người quản lý. Kết quả là năng suất tăng lên, công việc được xử lý nhanh hơn, tốn ít công sức hơn.

3.1.1. Cơ chế tích hợp

Các ứng dụng khác nhau sử dụng các công nghệ khác nhau, do đó để tích hợp với hệ thống BPM có thể phải sử dụng các chiến lược và công nghệ khác nhau.

a. Ứng dụng lấy BPM làm trung tâm

Trong môi trường lấy BPM làm trung tâm, xử lý nghiệp vụ chỉ là một trong các hoạt động thủ công trong kịch bản của BPM. Khác với các hệ thống BPM độc lập, BPM trong môi trường ứng dụng được thiết kế và cấu trúc đặc biệt để tích hợp và cùng tồn tại với ứng dụng. Cần lưu ý rằng sự tích hợp này không, và không nên bao gồm xử lý giao dịch bên trong hệ thống BPM. Khi bản thân ứng dụng đã được xây dựng với các module xử lý nghiệp vụ thì chúng ta không cần đặt vấn đề xây dựng lại các module đó. Điều quan trọng là BPM cung cấp được cơ chế gắn kết các module sẵn có đấy vào trong một quy trình hoàn chỉnh. Sự tích hợp hiệu quả BPM có thể khác nhau tùy thuộc vào ứng dụng nhưng thường cung cấp:

2. Đảm bảo sự tham gia của các thành phần trong quy trình (cung cấp giao tiếp để giao việc, tiếp nhận và hoàn thành công việc, vv)

3. Gắn kết tác vụ với các module chức năng tương ứng của ứng dụng

4. Trung chuyển dữ liệu từ một module sang module khác có liên quan trong cùng quy trình.

b. Hệ thống BPM đứng độc lập với ứng dụng

Khi đứng độc lập với ứng dụng thì hệ thống BPM chủ yếu đóng vai trò là công cụ để vận hành hoạt động sản xuất kinh doanh một cách tự động theo đúng định nghĩa quy trình. Thông qua hệ thống BPM này người dùng biết được công việc đang tiến triển đến đâu, thực hiện giao việc tiếp nhận và hoàn thành công việc. Để xử lý các công việc người dùng vẫn sử dụng các hệ thống cũ mà không có thay đổi gì.

3.1.2. Khảo sát và thực hành thực tế 3.1.3.1 Quy trình tổ chức thi

a. Vấn đề

Tổ chức thi là một trong những hoạt động chính của nhà trường. Công việc này thường mất nhiều thời gian, công sức và phải huy động nhiều nguồn lực. Có nhiều thành phần tham gia vào quá trình tổ chức thi như ban giám hiệu, nhân viên tổ văn phòng, giáo viên, học sinh. Nếu sự phối hợp giữa các thành phần này không tốt sẽ dẫn đến chất lượng kỳ thi không đảm bảo (bị chậm tiến độ, dễ xảy ra thiếu sót,…).

Các hệ thống tổ chức thi hiện nay thường có cách tiếp cận rời rạc với từng thành phần tham gia vào quá trình tổ chức thi. Thường thì một hệ thống chỉ tập trung vào việc cung cấp các module để xử lý các chức năng chuyên biệt ứng vơi từng đối tượng. Cách tiếp cận này ít hoặc không hỗ trợ sự tương tác giữa các thành phần tham gia vào quy trình. Hậu quả là các công việc trở nên rời rạc đứt quãng, các tương tác phải thực hiện bên ngoài hệ thống – không được quản lý trên hệ thống. Người quản lý sẽ khó giám sát được tiến độ tổ chức thi, các thành phần tham gia tổ chức thi sẽ bị thụ động trong công việc của mình.

Đưa ra quy trình tổ chức thi hoàn chỉnh, trong đó định nghĩa đầy đủ các bước, trình tự thực hiện và vai trò của từng thành phần tham gia. Từng bước trong đó (là các nghiệp vụ chuyên biệt) về cơ bản vẫn được hỗ trợ bởi các module rời rạc truyền thống.

Quy trình này được vận hành một cách tự động nhờ máy quản lý quy trình. Thông qua đó các thành phần tham gia vào quy trình tổ chức thi có thể tương tác qua lại trên hệ thống, người quản lý nắm bắt được tiến độ & các vấn đề gặp phải.

c. Mô hình hóa (adsbygoogle = window.adsbygoogle || []).push({});

Quy trình tổ chức thi được mô hình hóa theo chuẩn BPMN2.0, các tác vụ trong quy trình được liệt kê theo trình tự thực hiện thực tế.

Hình 19: Quy trình tổ chức thi

Có ba thành phần tham gia tổ chức thi được chia thành ba nhóm là BGH (hiệu trưởng, phó hiệu trưởng), NV tổ VP và hệ thống (các tác vụ tự động).

BGH ra quyết định tổ chức kỳ thi, tạo môn thi và lịch thi và cho thi.

Hệ thống thực hiện các tác vụ tự động như: đánh số báo danh, xếp phòng thi, phân công giám thị và gửi email thông báo điểm thi.

Để bắt đầu quy trình tổ chức thi BGH thực hiện tác vụ tạo kỳ thi sau đó khai báo môn thi và lịch thi cho từng môn. Tiếp đó, hệ thống phát sinh hai tác vụ ở nhóm NV tổ VP là lập danh sách thí sinh và lập danh sách giám thị. Danh sách thí sinh được lập theo môn thi còn danh sách giám thị được lập theo kỳ thi. Sau khi danh sách thí sinh được lập hệ thống sẽ tự động thực hiện tác vụ đánh số báo danh và xếp phòng thi. Tác vụ phân công giám thị được thực hiện tự động ngay sau khi cả hai tác vụ xếp phòng thi và lập danh sách giám thị hoàn thành. Khi các tác vụ chuẩn bị thi đã hoàn tất, BGH thực hiện tác vụ cho thi. Khi đã có điểm thi, NV tổ VP vào điểm trên hệ thống để hoàn thành tác vụ vào điểm. Cuối cùng quy trình kết thúc với tác vụ gửi điểm cho thí sinh.

d. Cài đặt

Quy trình tổ chức thi được cài đặt trên nền ứng dụng xây dựng trong chương 2 với mô hình lấy BPM làm trung tâm. Theo đó người dùng thao tác với công việc của mình thông qua giao diện quản lý công việc (hình 14) và giao diện quản trị hệ thống (hình 16).

Khi người dùng đăng nhập theo vai trò BGH, trong mục công việc chưa được giao sẽ xuất hiện công việc tạo kỳ thi thuộc vai trò BGH. Khi người dùng chọn tiếp nhận công việc (hình 20) và thực thi công việc (hình 21) hệ thống sẽ chuyển hướng sang module tạo kỳ thi (hình 22).

Hình 21: Màn hình công việc đã tiếp nhận

Hình 22: Module tạo kỳ thi

Tương tự khi người dùng thực hiện công việc nhập môn thi (hình 23), lập danh sách giám thị (hình 24), lập danh sách thí sinh (hình 25) ứng dụng sẽ chuyển hướng sang module chức năng tương ứng. Do các công việc trên gắn với từng kỳ thi nên thông tin về kỳ thi cần được duy trì trong xuốt quá trình tồn tại của một quy trình tổ chức thi. Activiti hỗ trợ lưu thông tin này trong phạm vi tồn tại của một thể hiện của quy trình như trong đoạn mã nguồn dưới đây.

Hình 23: Module nhập môn thi

Hình 25: Module lập danh sách thí sinh

3.1.3.2 Quy trình tổ chức cuộc họp a. Vấn đề

Trong các doanh nghiệp/tổ chức, họp là hoạt động quan trọng, thường xuyên diễn ra. Thông qua các cuộc họp, lãnh đạo có thể điều hành bộ máy và các bộ phận có thể phối hợp hoạt động. Để cuộc họp có được kết quả tốt nhất có nhiều nội dung phải chuẩn bị như: chuẩn bị nội dung họp, đăng ký phòng họp và các trang thiết bị cần thiết, thống nhất với các bên về thời gian nội dung họp, gửi các tài liệu cần thiết cho các bên tham gia, vv. Do đặc thù là hoạt động có tính phối hợp cao nên các bộ phận tham gia họp cần được cung cấp thông tin đầy đủ, cần có nơi để trao đổi trước nội dung họp. Ngoài ra cũng cần có cơ chế nhắc việc để đảm bảo các bên tham gia họp không bị quên.

b. Giải pháp

Những vấn đề nêu trên có thể được giải quyết hiệu quả khi sử dụng hệ thống BPM. Điểm mạnh của hệ thống này là cơ chế nhắc việc tự động theo quy trình định nghĩa trước, có đầy đủ giao diện để giao việc, dễ dàng trao đổi các tài liệu, dễ dàng thảo luận ý kiến.

Ở đây khác với quy trình tổ chức thi, các tác vụ không được giao theo các vai trò mà sẽ được giao cho một hoặc nhiều người cụ thể. Do vai trò của các thành phần tham gia họp không cố định và không xác định trước.

Ngoài giao diện nhắc việc, giao việc, tiếp nhận công việc hệ thống cũng cần hỗ trợ thêm giao diện thảo luận cho phép các bên tham gia họp có thể thảo luận các ý kiến trực tiếp trên hệ thống.

c. Mô hình hóa

Biểu đồ quy trình dưới đây mô tả quy trình tổ chức họp. Biểu đồ này tuân theo chuẩn BPMN 2.0.

Hình 26: Quy trình tổ chức họp

Quy trình tổ chức họp bắt đầu với tác vụ lên kế hoạch họp. Tại bước này người lập kế hoạch chỉ ra các nội dung: mục tiêu và yêu cầu cuộc họp, nội dung công việc, chuẩn bị tài liệu, xác định thời gian địa điểm, lên kế hoạch phân công người thực hiện. Sau bước lập kế hoạch, nhân viên hành chính phải thực hiện tác vụ chuẩn bị phòng và trang thiết bị. Đồng thời hệ thống thực hiện tác vụ thông báo mời họp tự động gửi mail thông báo cho các bên liên quan. Sau khi nhận mail mời họp những người tham gia phải thực hiện xác nhận có tham gia hay không. Tác vụ tổ chức họp được thực hiện sau khi phòng họp được chẩn bị xong và có xác nhận tham gia của các thành phần trong cuộc họp. Sau khi cuộc họp kết thúc thư ký cuộc họp thực hiện tác vụ ghi biên bản họp. Biên bản họp sau đó sẽ được tự động gửi tới các bên tham gia cuộc họp.

3.2. Tích hợp BPM vào các hệ thống ERP đã có

Vì sao cần tích hợp BPM trong môi trường ERP?

Một sự tích hợp hiệu quả các hệ thống BPM với các hệ thống ERP có thể tạo ra những cải thiện rõ ràng đối với quy trình nghiệp vụ được cài đặt với ERP. Mô hình cùng chạy này hoàn toàn đảm bảo lấy ERP là trung tâm, trong khi đảm bảo và đơn giản hóa sự

Một phần của tài liệu Ứng dụng ký pháp BPMN2.0 và nền tảng activiti trong tự động hóa quy trình nghiệp vụ (Trang 43)