1. Trang chủ
  2. » Luận Văn - Báo Cáo

NGHIÊN cứu và xây DỰNG ỨNG DỤNG hỗ TRỢ QUẢN lý LUỒNG CÔNG VIỆC (WORKFLOW FOUNDATION NET)

86 145 1

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 86
Dung lượng 7,24 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Tại sao lại dùng luồng công việc workflow: Lý do lớn nhất là vì luồng công việc cho phép ta mô hình hóa một cách trực quan và rõ ràng các luồng điều khiển của một ứng dụng.. Ngoài ra wor

Trang 1

ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH

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

Giảng viên hướng dẫn: TS.NGÔ THANH HÙNG

Sinh viên thực hiện: VÕ NHƯ THÔNG – NGUYỄN TRIỆU QUỐC Lớp: CNPM02

Khóa: 2

TP Hồ Chí Minh, tháng 1 năm 2012

Trang 2

Trong thời gian qua, chúng em đã nghiên cứu tìm hiểu để làm cách nào tin học hóa mô hình “Một cửa”, đây là mô hình giúp xử lí một công việc có các phòng ban liên quan và qua nhiều khâu, mà công việc sẽ được hoàn thành qua từng khâu

Tại sao lại dùng luồng công việc (workflow): Lý do lớn nhất là vì luồng công việc cho phép ta mô hình hóa một cách trực quan và rõ ràng các luồng điều khiển của một ứng dụng Thay vì biểu diễn logic ứng dụng của ta bằng một mớ mã phức tạp, thì khai báo logic đó bằng luồng công việc rõ ràng là làm đơn giản hơn Nhờ đó, ta có thể kiểm tra logic ứng dụng của ta, làm trực quan hóa nó, theo vết nó khi thực thi và kể cả thay đổi nó khi đang chạy Điều này rõ ràng là tuyệt vời

Ngoài ra workflow cho phép phối hợp làm việc giữa con người và phần mềm bằng các loại giao diện tương tác khác nhau: email, web-form, winform, instant message

Tại sao nên dùng WF: WF là nền tảng cho phép các nhà phát triển xây dựng các ứng dụng có các luồng công việc trở nên đơn giản hơn Thực tế, có rất nhiều nhà phát triển đã phát triển framework của riêng họ, điều này cho thấy sự cần thiết phải có một framework đủ tốt hỗ trợ cho các ứng dụng về luồng công việc Sự ra đời của WF đã giải quyết được nhu cầu này Một workflow trong WF được cấu thành từ các activity Theo quan điểm của người lập trình thì workflow hay activity đều là các đối tượng được hình thành từ các lớp, do vậy có thể định nghĩa được các workflow hay activity tùy ý Cũng giống winform hoặc webform có điều khiển chuẩn thì Microsoft cũng cung cấp các activity cơ bản gọi là BAL (Base Activity Library), hầu hết các workflow đều được xây dựng chỉ từ các activity này Nhà phát triển có thể thiết kế workflow rất trực quan qua công cụ thiết kế workflow đồ họa trên (Workflow Designer) Visual Studio Rất nhiều người thích tính trực quan và dễ dàng nắm bắt của giao diện đồ họa này nhưng cũng có người thích những dòng mã hơn, vì thế WF cho phép họ làm như thế hoặc phối hợp cả hai cách Như vậy WF cho hiệu quả phát triển workflow luôn ở mức cao nhất, thuận tiện nhất với tất cả mọi người Workflow được WF hỗ trợ phát triển nhanh chóng và dễ dàng như vậy nên chi phí phát triển sẽ giảm đáng kể mà chất lượng vẫn được đảm bảo

Vì các tiện ích của WF mà chúng em đã chọn đề tài “Nghiên cứu và xây dựng ứng dụng hỗ trợ quản lý luồng công việc (workflow foundation net)

Trang 3

”, cụ thể là phát triển một phần mềm giúp hỗ trợ phòng công tác chính trị sinh viên xử

lí các công việc mà trước giờ sinh viên hay cán bộ phòng công tác chính trị sinh viên phải tự làm bằng tay

Nội dung chính của tài liệu này bao gồm

Chương 1: Khảo sát

Chương 2: Cơ sở lí thuyết

Chương 4: Phân tích thiết kế

Chương 3: Cài đặt

Chương 5: Kiểm tra và đánh giá

Chương 6: Kết luận

Trang 4

1

MỤC LỤC

MỤC LỤC 1

BẢNG VIẾT TẮT 4

1 MỤC TIÊU VÀ PHẠM VI CỦA ĐỀ TÀI 4

1.1 Đặt vấn đề 4

1.1.1 Hiện trạng thực tại 4

1.1.1.1 Duyệt đơn cho sinh viên 4

1.1.1.2 Tổ chức cuộc thi viết 4

1.1.2 Giải pháp đưa ra 4

1.2 Mục tiêu 5

1.3 Phạm vi 5

2 KHẢO SÁT HIỆN TRẠNG 6

2.1 Quy trình thủ công hiện tại đang sử dụng 6

2.1.1 Quy trình duyệt đơn 6

2.1.2 Về quy trình tổ chức cuộc thi 6

2.2 Hệ thống tin học hóa dùng để thay thế 6

2.2.1 Duyệt đơn 6

2.2.2 Tổ chức cuộc thi 6

2.3 Đánh giá hệ thống hiện hữu 7

2.4 Định hướng nghiên cứu và giải pháp 7

2.4.1 Dữ liệu 7

2.4.1.1 Dữ liệu vào: 7

2.4.1.2 Các xử lí cần thiết: 7

2.4.1.3 Dữ liệu ra: 8

2.4.2 Công nghệ sử dụng 8

2.4.3 Yêu cầu chức năng 8

2.4.4 Yêu cầu phi chức năng 8

Trang 5

2

2.4.4.1 Một số biểu mẫu được sử dụng trong hệ thống 8

3 CƠ SỞ LÍ THUYẾT 12

3.1 Workflow là gì 12

3.2 Khảo sát các ứng dụng quản lí workflow trên thị trường 12

3.3 Kiến trúc của Windows Workflow Foundation 15

3.3.1 Hai loại activity 16

3.3.1.1 Giới thiệu tổng quan về Activity 17

3.3.2 Lưu trú 20

3.3.3 Các dịch vụ chạy (runtime service) trong WF 20

3.3.4 Mô hình xây dựng workflow 25

3.3.5 Các loại workflow trong WF 25

3.3.6 So sánh WF với WCF 26

4 PHÂN TÍCH THIẾT KẾ 27

4.1 Phân tích hệ thống 27

4.1.1 Mô hình use case 27

4.1.2 Mô hình DFD 28

4.1.2.1 Mô hình ngữ cảnh 28

4.1.2.2 Mô hình cấp 1 của process quản lí tài khoản 29

4.1.2.3 Mô hình cấp 1 của process tác vụ quản lí cuộc thi 29

4.1.2.4 Mô hình cấp 1 của process tham dự cuộc thi 29

4.1.2.5 Mô hình cấp 1 của process duyệt đơn 29

4.1.2.6 Mô hình cấp 1 quy trình quản lý động cuộc thi 30

4.1.3 Mô hình thực thể 30

4.1.3.1 Mô tả thực thể 31

4.1.3.2 Mô tả quan hệ 33

4.2 Thiết kế chương trình 35

4.2.1 Thiết kế dữ liệu 35

Trang 6

3

4.2.1.1 Chuyển sang mô hình quan hệ tư mô hình thực thể kết hợp 35

4.2.1.2 Sơ đồ CSDL 37

4.2.1.3 Diễn giải CSDL 38

4.2.2 Diễn giải luồng công việc 45

4.2.2.1 Mô tả luồng công việc của quy trình duyệt đơn 45

4.2.2.2 Mô tả luồng làm việc của quy trình chấm bài thi 48

4.2.3 Thiết kế màn hình 53

4.2.3.1 Sơ đồ màn hình 53

4.2.3.2 Danh sách màn hình 58

5 CÀI ĐẶT 77

5.1 Về phía server 77

5.2 Về phía client 80

6 KIỂM TRA VÀ ĐÁNH GIÁ 81

7 KẾT LUẬN 81

7.1 Kết quả đạt được 81

7.2 Những điều chưa đạt được 81

7.3 Hướng phát triển 81

TÀI LIỆU THAM KHẢO 83

Trang 7

1.1 Đặt vấn đề

1.1.1 Hiện trạng thực tại

1.1.1.1 Duyệt đơn cho sinh viên

Hiện nay, khi sinh viên có nhu cầu chứng các loại đơn như Xác nhận sinh viên, miễn giảm học phí thì đều phải lên tận trường để nộp đơn và ghi các thông tin cần thiết Đều này rất bất tiện khi trường nằm xa nhà của các sinh viên, càng bất tiện hơn khi nếu sinh viên thuộc diện đào tạo từ xa Đi 1 quãng đường dài để xin nộp đơn trong thời buổi công nghệ thông tin phát triển thì thật vô lý và lãng phí thời gian, công sức Chưa hết, sinh viên có thể gặp phải 1 vài trường hợp như lên đến nơi thì cơ quan không làm việc, hoặc đã nộp đơn, hẹn ngày đến lấy, đến khi lên đến nơi thì vẫn chưa có đơn trả về Rất lãng phí cho sinh viên Chưa hết, đối với nhà trường, là phòng công tác chính trị sinh viên, việc mang đơn bằng giấy di chuyển qua các phòng ban tiềm ẩn nguy cơ thất lạc hoặc hư hại các đơn từ Do đó

hệ thống hiện tại bất tiện vô cùng

1.1.1.2 Tổ chức cuộc thi viết

Với phong trào đoàn hội ngày càng phát triển, Việc tổ chức các cuộc thi viết

sẽ diễn ra thường xuyên để phục vụ công tác báo chí phong trào như tạp chí UIT, hoặc các cuộc thi học thuật cần có 1 cơ chế tổ chức các cuộc thi này Hiện vẫn chưa có quy trình tin học nào cho công tác này

Trang 8

5

Bằng việc xây dựng 1 website phục vụ điều này, giúp cho hệ thống dễ dàng tiếp cận từ mọi nơi, đáp ứng nhu cầu đưa ra

1.2 Mục tiêu

Tin học hóa công tác giải quyết yêu cầu từ sinh viên của phòng công tác chính trị sinh viên trường Đại học Công Nghệ Thông Tin – Đại học Quốc Gia TP HCM

Đơn giản hóa và giúp tiết kiệm thời gian cho sinh viên cũng như cán bộ nhân viên phòng công tác chính trị sinh viên trong việc giải quyết các yêu cầu của sinh viên

Tin học hóa công tác tổ chức một số phong trào trong trường

1.3 Phạm vi

Phạm vi của đề tài xoay quanh việc tin học hóa một số các công việc nhất định của phòng công tác chính trị sinh viên

Ví dụ:

 Giải quyết yêu cầu xin cấp giấy xác nhận sinh viên

 Giải quyết yêu cầu xin miễn giảm học phí

 Giải quyết yêu cầu xin cấp thẻ sinh viên

 Cho phép tạo các loại đơn mới đưa vào quy trình duyệt, Đồng thời định nghĩa quy trình duyệt cho riêng loại đơn đó

 Tổ chức các cuộc thi viết phong trào qua mạng

Tất cả đều được thực hiện thông qua máy tính

Trang 9

6

2.1 Quy trình thủ công hiện tại đang sử dụng

2.1.1 Quy trình duyệt đơn

Để thực hiện nhu cầu làm đơn xác nhận sinh viên, miễn giảm học phí, cấp thẻ sinh viên thì sinh viên cần phải làm các bước sau:

 Về phía sinh viên

o Làm đơn xin xác nhận sinh viên tại phòng CTCTSV

o Đợi khoảng 1 tuần để nhận được giấy xác nhận sinh viên ở trường

 Về phía phòng CTCTSV

o Nhân viên phòng CTCTSV sẽ duyệt qua các đơn một lần

o Chuyển đến các cấp tiếp theo có thẩm quyền duyệt

o Sau khi các cấp tiếp theo có thẩm quyền quyết định duyệt xong thì sẽ gửi giấy xác nhận về nơi sinh viên nhận đơn

Việc này khá đơn giản nhưng đối với các ta sinh viên ở xa nhà, gặp nhừng ngày nghỉ, thì các ta đó phải đi xa đến trường vài lần để hoàn thành các thủ tục trên, như vậy rất mất thời gian, và cũng không phải lúc nào phòng CTCTSV cũng

mở cửa

2.1.2 Về quy trình tổ chức cuộc thi

Hiện chưa có quy trình tổ chức cuộc thi nào đang hoạt động cả

2.2 Hệ thống tin học hóa dùng để thay thế

2.2.1 Duyệt đơn

Về phía sinh viên

-Vào website chọn mục xin làm giấy xác nhận sinh viên -Đợi đến ngày lên lấy giấy

Về phía phòng CTCTSV

-Nhân viên phòng CTCTSV đăng nhập vào website và duyệt các đơn trong thẩm quyền của mình

- Sau khi duyệt xong thì đơn sẽ tự động chuyển đến các cấp tiếp theo

có thẩm quyền duyệt mà nhân viên phòng CTCTSV không cần phải

di chuyển, hay đi tìm các cấp có thẩm quyền

- Các cấp tiếp theo cũng sẽ duyệt bằng cách đăng nhập vào website

- Đến khi cấp cuối cùng duyệt xong thì giấy xác nhận sẽ được in ra

và gửi đến cho sinh viên

Ngoài ra cho phép định nghĩa các loại đơn mới, định nghĩa quy trình duyệt

để phục vụ nhu cầu càng mở rộng

2.2.2 Tổ chức cuộc thi

Trang 10

7

Website đưa ra 1 tính năng mới đó là cho phép mở các cuộc thi viết , rồi chấm điểm kiểu nhiều người chấm 1 bài thi rồi quy ra điểm trung bình Tính năng nếu xét về mặt kỹ thuật thì nó bộc lộ rõ được sự tiện dụng của việc phát triển ứng dụng theo mô hình workflow mà WF4 hỗ trợ , thích hợp cho việc minh họa ứng dụng

 Về phía phòng CTCTSV

o Khi có đề tài sẽ đăng nhập vào hệ thống và mở ra 1 cuộc thi , nêu

rõ nội dung cuộc thi để sinh viên biết

o Sau khi cuộc thi được mở trên web sẽ có thông báo lên trang chủ , sinh viên lên web có thể gửi bài viết của mình tham gia dự thi

o Đến khi hết hạn nhận bài thi , Sinh viên không thể đăng bài dự thi lên được nữa

o Bài dự thi của sinh viên sẽ được chuyển cho các vị giám khảo chấm song song , sau khi chấm thì mỗi bài thi sẽ được quy ra điểm trung bình mà các vị giám khảo chấm bài thi đó Sau khi bài thi được chấm hết sẽ công bố lên trang chủ Cuộc thi kết thúc

2.3 Đánh giá hệ thống hiện hữu

Công tác tại phong CTCTSV hiện nay được thực hiên chủ yếu thủ công ghi chép trên giấy tờ là chính, chuyển đơn qua lại giữa các phòng ban cũng khá vất vả

Và nhân viên cũng có thể có nhầm lẫn làm lạc mất đơn hay duyệt thiếu đơn của sinh viên, các vấn đề đó hoàn toàn có thể xảy ra khi số lượng sinh viên vào trường ngày một đông

Với việc cài đặt hệ thống giúp quản lí các việc trên, chúng em hi vọng sẽ giúp ích được nhiều cho công tác hỗ trợ sinh viên của phòng CTCTSV

2.4 Định hướng nghiên cứu và giải pháp

2.4.1 Dữ liệu

2.4.1.1 Dữ liệu vào:

- Các dữ liệu của sinh viên được thu thập trong quá trình sinh viên học tập và làm việc tại trường

- Các mẫu đơn, bảng biểu phục vụ cho công tác hỗ trợ cho sinh viên

- Các bài thi tham gia các cuộc thi từ sinh viên

2.4.1.2 Các xử lí cần thiết:

- Thực hiện duyệt đơn qua các đơn vị

- Quản lí việc theo dõi trạng thái duyệt của các yêu cầu của sinh viên

Trang 11

8

- Quản lí việc chấm điểm các bài thi của sinh viên

- Xuất ra các biểu mẫu liên quan đến các tác vụ

- Lưu trữ tất cả các hành vi trong luồng đi của dữ liệu

2.4.1.3 Dữ liệu ra:

- Nhật kí các tác vụ đã thực hiện

- Các mẫu đơn liên quan đến các tác vụ mà sinh viên yêu cầu

- Kết quả các cuộc thi đã tổ chức

2.4.3 Yêu cầu chức năng

Hệ thống được xây dựng cho phép

 Thực hiện yêu cầu một cách dễ dàng

 Duyệt đơn nhanh chóng, dễ thao tác

 Hỗ trợ xuất ra các biểu mẫu cũng như các sản phẩm đầu ra tương ứng với từng tác vụ

 Hỗ trợ việc chấm điểm các bài thi mà sinh viên gửi về

 Hỗ trợ tổng kết các kết quả sau khi chấm điểm

 Hỗ trợ quản lý động đối với quy trình luồng công việc

2.4.4 Yêu cầu phi chức năng

 Hệ thống hoạt động tin cậy, dữ liệu được cất giữ an toàn

 Giao diện thân thiện, dễ sử dụng

 Truy cập thông tin nhanh

2.4.4.1 Một số biểu mẫu được sử dụng trong hệ thống

Trang 12

9

Hình 2-1 Giấy xác nhận sinh viên

Trang 13

10

Hình 2-2 Đơn xin miễn giảm học phí

Trang 14

11

Hình 2-3 Đơn xin cấp thẻ sinh viên

Trang 15

1 Workflow được cấu thành bởi 1 chuỗi các bước xử lý ghép lại với nhau

Được biểu diễn trên mô hình dòng chảy (flow paradigm), nơi mà mỗi bước xử lý phải được hoàn tất trước khi chuyển sang bước xử lý kế tiếp

Nó được miêu tả như là một chuỗi các hoạt động, được xem là công việc của 1

cá nhân, 1 tổ chức, trên 1 hay nhiều hệ thống khác nhau Workflow được xem như

1 cách trừu tượng hóa công việc ngoài đời thật

3.2 Khảo sát các ứng dụng quản lí workflow trên thị trường

dùng nghiệp vụ và chuyên gia tiến trình nếu không có kinh nghiệm lập trình thì

cũng có thể thiết kế và chạy 1 workflow

Nó đem lại các lợi ích như :

o Giảm tải hiệu quả các công việc giấy tờ

o Sử dụng tài nguyên hiệu quả hơn

o Cải thiện kết quả kinh doanh

Giới thiệu Windows Workflow Foundation (WF)

WF là 1 nền tảng công nghệ của Microsoft dùng để xây dựng các ứng dụng luồng công việc Nền tảng bao gồm các bộ công cụ cho phép thiết kế và quản lý

workflow, một mô hình lập trình cho việc cài đặt workflow logic, engine luật lệ, và engine thực thi luồng công việc

Trang 16

13

Công nghệ này được ra đời vào tháng 11 năm 2006 như là một phần của nền tảng NET framework 3.0 (còn gọi là WinFX) WF, không chỉ cho phép ta phối hợp các công việc như các chương trình truyền thống, nó có có một vài điểm khác biệt

quan trọng sau:

 WF có thể điều khiển các công việc chạy trong thời gian dài bằng cách lưu trữ(persisting) workflow vào chỗ lâu bền (trái với bộ nhớ chỉ tồn tại khi hệ điều hành chạy) như là đĩa cứng,cơ sở dữ liệu khi workflow không làm gì

và nạp trở lại khi workflow tiếp tục làm việc

 Thể hiện của workflow có thể được chỉnh sửa động khi đang chạy (thêm

điều kiện mới,cách xử lý khác với khi nó được tạo ra)

 WF là mộ phương pháp lập trình khai báo (trái với lập trình viết mã lệnh) bằng cách kết nối các thành phần được định nghĩa sẵn (gọi là “hành động” - activity)

 WF cho phép ta khai báo các luật nghiệp vụ, chúng tách rời mã vì vậy ta dễ dàng sửa đổi chúng về sau

 WF hỗ trợ các kiểu hệ thống khác nhau với hai loại workflow: workflow

trình tự(sequential) và workflow máy trạng thái

Lợi ích của mô hình lập trình WF

Lập trình viên ai cũng muốn xây dựng 1 phần mềm tốt Nếu phần mềm đó là ứng dụng máy chủ, thì muốn được tốt nó phải dễ dàng mở rộng, đảm trách nạp tải lớn

mà ko tiêu tốn quá nhiều tài nguyên Ngoài ra nó còn phải dễ dàng hiểu được, cho người viết ra chúng và cả người bảo trì chúng

Để đạt được các mục tiêu đó ko phải dễ, Tiếp cận giúp cho ứng dụng dễ dàng mở rộng thường tách ứng dụng thành nhiều phần, chia mã logic thành nhiều khúc

riêng biệt và rất khó để hiểu được, do đó việc viết ra 1 chương trình thống nhất là bất khả thi Cái cần thiết là cách giữ logic ứng dụng thống nhất, dễ hiểu, đồng thời làm cho ứng dụng dễ dàng mở rộng

WF là giải pháp cho vấn đề trên, Bằng cách hỗ trợ tạo mã logic bằng luồng công việc, WF đem đến 1 nền tảng cho việc tạo ra ứng dụng thống nhất, đồng thời dễ

dàng mở rộng Ngoài ra, WF còn đơn giản hóa các thách thức của việc phát triển phần mềm như chỉ ra các công việc tiến hành song song, theo dấu thực thi chương trình

Lý do nên sử dụng WF

Trang 17

14

WF ko chỉ đơn thuần là ứng dụng để quản lý luồng công việc như ProcessMaker, Joget chỉ giới hạn đối với logic nghiệp vụ WF đưa ra 1 mô hình lập trình mới,

mô hình lập trình workflow, cho phép phát triển các ứng dụng có tuổi đời dài Xét

về độ tùy biến và mở rộng, cũng như độ chuyên nghiệp thì WF lại hơn hẳn Cho

nên chúng tôi chọn WF để phát triển chương trình

Lý do lớn nhất là vì luồng công việc cho phép bạn mô hình hóa một cách trực quan

và rõ ràng các luồng điều khiển của một ứng dụng Thay vì biểu diễn logic ứng

dụng của bạn bằng một mớ mã phức tạp, thì khai báo logic đó bằng luồng công

việc rõ ràng là làm đơn giản hơn Nhờ đó, bạn có thể kiểm tra logic ứng dụng của bạn, làm trực quan hóa nó, theo vết nó khi thực thi và kể cả thay đổi nó khi đang chạy Điều này rõ ràng là tuyệt vời

Ngoài ra workflow cho phép phối hợp làm việc giữa con người và phần mềm bằng các loại giao diện tương tác khác nhau: email, web-form, winform, instant messageTại sao nên dùng WF: WF là nền tảng cho phép các nhà phát triển xây dựng các

ứng dụng có các luồng công việc trở nên đơn giản hơn Thực tế, có rất nhiều nhà phát triển đã phát triển framework của riêng họ, điều này cho thấy sự cần thiết phải

có một framework đủ tốt hỗ trợ cho các ứng dụng về luồng công việc Sự ra đời

của WF đã giải quyết được nhu cầu này Một workflow trong WF được cấu thành

từ các activity

Theo quan điểm của người lập trình thì workflow hay activity đều là các đối tượng được hình thành từ các lớp, do vậy có thể định nghĩa được các workflow hay

activity tùy ý Cũng giống winform hoặc webform có điều khiển chuẩn thì

Microsoft cũng cung cấp các activity cơ bản gọi là BAL (Base Activity Library), hầu hết các workflow đều được xây dựng chỉ từ các activity này Nhà phát triển có thể thiết kế workflow rất trực quan qua công cụ thiết kế workflow đồ họa trên

(Workflow Designer) Visual Studio Rất nhiều người thích tính trực quan và dễ

dàng nắm bắt của giao diện đồ họa này nhưng cũng có người thích những dòng mã hơn, vì thế WF cho phép họ làm như thế hoặc phối hợp cả hai cách Như vậy WF cho hiệu quả phát triển workflow luôn ở mức cao nhất, thuận tiện nhất với tất cả mọi người Workflow được WF hỗ trợ phát triển nhanh chóng và dễ dàng như vậy nên chi phí phát triển sẽ giảm đáng kể mà chất lượng vẫn được đảm bảo

Các sản phẩm trên thị trường được viết bằng WF

Microsoft Sharepoint : là 1 nền tảng ứng dụng web được phát triển bởi

Microsoft, được phát hành lần đầu tiên năm 2001, Sharepoint thường được dùng

để quản lý nội dung web và hệ thống quản lý văn bản Nhưng thật ra nó là 1 nền

tảng rộng lớn hơn của công nghệ web, có khả năng được tùy chỉnh để đáp ứng

nhiều giải pháp ở nhiều lĩnh vực rộng rãi

Trang 18

15

Microsoft Speech Server là sản phẩm được thiết kế cho phép chứng thực và triển khai ứng dụng IVR trong các hệ thống nhận dạng bài nói (Speech

Recognition), chuyển bài văn thành bài nói (Speech Synthesis)

Microsoft Biztalk Server : Cho phép các ứng dụng khác nhau trong doanh nghiệp giao tiếp được với nhau, tự động hóa được các quy trình doanh nghiệp

Microsoft Identity Integration Server: sản phẩm quản lý nhận dạng, là dịch

vụ cho phép tích hợp các thông tin nhận dạng từ nhiều nguồn khác nhau Mục đích

là đem lại cho tổ chức sự thống nhất nhân dạng của người dùng/tài nguyên giữa

các doanh nghiệp

Microsoft Dynamics : là 1 nhánh của ERP(enterprise resource planning) và

CRM (customer relationship management)

3.3 Kiến trúc của Windows Workflow Foundation

Như đã giới thiệu ở trên, WF là một thành phần nằm trong nền tảng NET 3.0 Bên cạnh WF, NET 3.0 còn có một số mô hình lập trình mới như là WCF, WPF, CardSpace

WF là một thành phần nằm trong nền tảng NET 3.0 Bên cạnh WF, NET 3.0 còn có một số mô hình lập trình mới như là WCF, WPF, CardSpace

Hình 3-1 Vị trí WF trong NET 3.0

Trang 19

ra từ BAL - thư viện activity cơ bản của WF hoặc cũng có thể là các activity tùy biến của người dùng Một workflow sẽ chạy trong Runtime Engine, trong Runtime Engine có thể bao gồm cả các dịch vụ chạy (Runtime Service) Đến lượt Runtime Engine lại được lưu trú ở một tiến trình của ứng dụng chủ (host process), ứng dụng chủ có thể là bất cứ loại ứng dụng nào của NET chạy phía client hay server: winform, winservice, webform, web service

3.3.1 Hai loại activity

Trang 20

 Activity tùy biến: Ta có thể dễ dàng tạo activity mới đáp ứng nghiệp vụ của ta Activity tùy biến có thể thực hiện chức năng nào

đó, từ đơn giản chẳng hạn như câu lệnh SQL Insert dữ liệu đến phức tạp như là tạo một đơn đặt hàng

3.3.1.1 Giới thiệu tổng quan về Activity

Activity (hành động) đối với các workflow trong Windows Workflow Foundation (WF) cũng giống như các khối logo trong một khối xếp hình, tức

là nó là đơn vị cơ bản của workflow Một tiến trình nghiệp vụ có thể được chia thành nhiều phần được gọi là các tác vụ nhỏ Có thể lấy ví dụ về các tác vụ nhỏ như: đọc dữ liệu từ cơ sở dữ liệu, sinh ra file dùng dữ liệu đó, truyền file đến server dùng FTP hoặc một dịch vụ Web Mỗi tác vụ nhỏ đó thường tập trung vào

Trang 21

18

một công việc cụ thể, và người ta dùng thuật ngữ Activity để chỉ các tác vụ nhỏ đó trong workflow

Khi xây dựng một workflow, bạn thường gắn kết các Activity đơn lẻ lại với nhau rồi xây dựng trình tự di chuyển từ activity này sang activity khác Một vài activity đóng vai trò như là bao gói của các activity khác Activity mà được lựa chọ để quản lý tất cả các activity khác được gọi là activity gốc

Các đối tượng activity trong các workflow là các đối tượng của các lớp thừa kế từ lớp System.Workflow.ComponentModel.Activity Lớp Activity

là một lớp rất đơn giản, nó không làm một tác vụ nào cả nhưng nó đóng vai trò làm lớp cha cho tất cả các activity khác vì frame work WF quy định trong các workflow chỉ có các thành phần thuộc lớp (chính xác hơn là thuộc lớp con của) Activity này Tuy định nghĩa Activity khá đơn giản nhưng các lớp thừa kế từ Activity thường rất phức tạp bởi nó phải cài đặt các logic và tính chất để hoạt động trong workflow Thư viện các activity cơ bản (BAL) cung cấp khá nhiều activity rất hữu ích và có nhiều tính năng rất hay được sử dụng Tất nhiên khi cần có các activity thực thi những chức năng đặc biệt, người dùng cũng có thể tạo các activity của riêng họ gọi là Activity tùy biến (Custom Acitivity)

Để hiểu rõ hơn về Activity, phần sau đây là bảng thống kê các thuộc tính và phương thức của lớp Activity:

Các thuộc tính của Activity

Description Các miêu tả của người dùng về actvity

Enabled Giá trị thể hiện rằng liệu thể hiện của nó được cho phép

thực thi và phê chuẩn (validation) hay không

ExecutionResult Cho phép đọc giá trị ActivityExecutionResult của lần gần

nhất chạy thể hiện của nó (Giá trị có thể là: Canceled, Compensated, Faulted, None hoặc Succeeded)

ExecutionStatus Cho phép đọc trạng thái của workflow dưới dạng mộ

trong các giá trị của ActivityExecutionStatus (Canceling, Closed, Compensating, Executing, Faulting, and Initialized)

Name Cho phép thiết lập hoặc đọc tên thể hiện của activity này

Parent Lấy (tham chiếu) đến activity mà chứa activity này

WorkflowInstanceId Tham chiếu đến tên định danh workflow liên quan đến

activity này

Các phương thức của Activity

Trang 22

19

Cancel Hủy bỏ việc thực thi của activity

Clone Trả về một bản copy hoàn toàn (deep copy – tức là bảng

copy chứa toàn bộ giá trị

dữ liệu giống như bản gốc) Execute Đồng bộ các tiến trình của activity

GetActivityByName Nếu được thực thi trên một activity phức, phương thức

này trả về activity được gọi tên nếu nó nằm trong activity phức đó Load Load một thể hiện của một activty từ một stream (dòng:

file, mạng…) RaiseEvent Gây ra một sự kiện gắn với DependencyProperty được

chỉ ra RaiseGenericEvent<T> Gây ra một sự kiện gắn với DependencyProperty được

tham chiếu Tác dụng của RaiseEvent và RaiseGenericEvent là giống nhau – sinh ra sự kiện tuy nhiên RaiseGenericEvent là phiên bản tổng quát hơn (dùng các đối số templated)

Save Lưu bản copy của một activity vào một stream

Các phương thức của Activity thông thường đều là các phương thức virtual hoặc protected Mục đích của điều này là để người dùng override chúng

và cung cấp các cài đặt của thể cho các nhu cầu cụ thể Phương thức quan trong nhất là Execute, là phương thức bạn cần gọi để bắt đầu chạy một workflow

Về quan hệ bao chứa thì các activity có thể chia làm hai nhóm: phức hợp và đơn giản Các activity phức hợp có thể chia ra làm các activity khác Một ví

dụ rất điển hình của activity phức hợp là các activity trình tự (nó chứa một loạt các activity bên trong, ví dụ như if-else, delay, và code) Các activity cơ bản chẳng hạn như activity delay hoặc code như vừa kể đến ở trên là cá activity thực hiện các tác vụ đơn

Windows Workflow cung cấp cho người dùng hai loại workflow, đó

là workflow trình tự (Sequence) và workflow máy trạng thái (State machine)

 Một workflow trình tự sau khi thực thi thành công một activity sẽ chuyển sang activity kế tiếp, tức là thực thi một chuỗi các activity nối tiếp nhau Ví dụ đơn giản: một worflow trình tự mô hình hóa một tiến trình di chuyển các bản ghi từ một file log được nén đặt ở một website vào một bảng của cơ sở dữ liệu Bước 1 có thể là download file log được nén đó, bước 2 có thể là giải nén file, bước 3 là chèn

Trang 23

20

các bản ghi vào bảng, và bước 4 là tạo các số liệu tổng hợp từ các bản ghi mới

 Các workflow máy trạng thái lại phụ thuộc vào các sự kiện để đưa workflow đến điểm kết thúc, một máy trạng thái chứa một tập các trạng thái và tập các sự kiện Máy trạng thái luôn ở trong một và chỉ một các trạng thái được định nghĩa trước và không thể chuyển sang trạng thái khác chừng nào chưa có một sự kiện diễn ra

3.3.2 Lưu trú

Vì WF không phải là một ứng dụng độc lập, nên nó cần phải được cho lưu trú lên một ứng dụng NET khác Ứng dụng chủ có thể là bất cứ loại ứng dụng .NET nào chẳng hạn như winform, ASP.NET, console, Windows Service hoặc web service

Mặc dù workflow là nơi hầu hết các nghiệp vụ quan trọng thực thi, nhưng ứng dụng chủ cũng rất quan trọng vì nó là nơi diễn ra vòng đời thi hành của workflow Ứng dụng chủ là nơi workflow khởi hành và thường là nơi người dùng tương tác

Mô hình có ứng dụng chủ này rất phù hợp vì cho phép WF tập trung vào xử

lý nghiệp vụ, còn các tương tác có thể được giao phó cho bất cứ loại ứng dụng nào khác trong NET

Việc tương tác giữa WF với ứng dụng chủ ra sao?

Tất nhiên WF không thể thực thi một mình, nó cần có tương tác với môi trường bên ngoài chính là ứng dụng chủ WF cung cấp cơ chế cho phép ta dễ dàng

và nhanh chóng truyền dữ liệu vào ra workflow, ngoài ra các phương thức có thể điều khiển sự kiện để tương tác với bên ngoài Để dùng tham số giao tiếp giữa workflow và ứng dụng chủ, trong đoạn mã tạo workflow bằng phương thức CreateWorkflow của lớp WorkflowRuntime, ta có thể truyền đối tượng Dictionary<string, object> chứa các thành phần tham số cần thiết cho workflow

Dạng giao tiếp khác của workflow là dịch vụ giao tiếp nội tại (local communication services), dạng giao tiếp này được thực hiện giữa các lớp thông qua các sự kiện và phương thức Ứng dụng chủ có thể “nói chuyện” với workflow bằng cách kích hoạt các sự kiện mà được xử lý ở bên trong workflow Workflow cũng có thể giao tiếp với ứng dụng chủ bằng cách gọi các phương thức Đây là dạng thông dụng của giao tiếp vì nó dùng khái các niệm đã quen thuộc đối với các nhà phát triển

3.3.3 Các dịch vụ chạy (runtime service) trong WF

Trang 24

21

Hình 3-4 Dịch vụ chạy trong WF Các dịch vụ chạy trong WF chứa các lớp chuẩn và lớp người dùng tùy biến cần thiết cho engine của workflow runtime trong quá trình thi hành (hình 5) Các dịch vụ này thực hiện các tác vụ liên quan đến thực thi và bảo trì workflow Sau đây là một số dịch vụ:

Transaction

(giao tác)

Là dịch vụ giúp bạn bảo đảm tính toàn vẹn của ứng dụng workflow Transaction được định nghĩa là một nhóm các activity phải được thực thi thành công toàn bộ Nếu một activity trong chuỗi mà bị lỗi, các hành động đã thực hiện phải được quay lui Tuy nhiên các transaction mà thực thi trong thời gian dài không phải lúc nào cũng có thể quay lui, thay vào đó nó một số logic được triển khai

để đảm bảo trạng thái ổn định của workflow Kiến trúc dịch vụ transaction trong WF hỗ trợ hai loại transaction là transaction

DefaultWorkflowTransactionService

(mặc định) SharedConnectionWorkflow -TransactionService

Trang 25

22

ACID (Atomic – nguyên tử, Consistency – nhất quán, Isolate – phân tách và Durable – lâu bền) và transaction chạy lâu dài (long-running) Transaction chạy lâu dài khác với ACID

ở chỗ nó không có tính Isolate, bởi vì có các activity nhất định không thể quay lui Ví dụ trong transaction nào đó có giao tiếp với khách hàn, khi hành động gửi email tới khách hàng đã thực thi, nếu sau đó có activity nào đó bị lỗi thì cũng không thể lấy lại được email đã gửi, lúc này cách tốt nhất để đảm bảo transaction vẫn thực thi tốt là đợi khách hàng gửi lại email báo là họ đã lỗi

Tracking

(theo dõi)

Lịch vụ này cho phép bạn theo dõi và ghi lại sự thực thi của workflow Dịch vụ tracking dùng khái niệm tracking profiles và tracking channels để xác định activity nào cần theo dõi và loại phương tiện lưu trữ là gì

Lớp trừu tượng TrackingService dùng để quản lý các profile và channel cho workflow runtime Thông thường, người ta hay lưu thông tin đó vào SQL Server

SqlTrackingService

Trang 26

23

Persistence Một trong những nguyên tắc

của workflow là nó cần phải lưu được trạng thái và có thể chạy trong thời gian dài

Nguyên tắc này quan trọng

vì workflow phải tương tác với các tác nhân ngoài như người dùng và ứng dụng khác, các nghiệp vụ này có thể thực hiện trong khoảng thời gian dài và có những lúc không làm gì cả do các tác nhân này có thể đang thực hiện lại quay ra làm việc khác rồi mới tiếp tục quay trở lại với workflow Những lúc workflow không làm gì

cả trong khoảng thời gian dài mà nó vẫn tồn tại trong

bộ nhớ sẽ làm tốn tài nguyên máy tính, do vậy WF hỗ trợ

cơ chế cho phép tháo workflow ra khỏi bộ nhớ và lưu ra phương tiện lưu trữ lâu dài chẳng hạn như cơ sở

dữ liệu Cơ chế như vậy được gọi là persistence

SqlWorkflowPersistenceService

Scheduling Cho phép bạn định nghĩa

cách workflow thi hành trong mối quan hệ với các thread thế nào Mặc định

WF chạy các workflow theo

cơ schế không đồng bộn, thức là khi workflow khởi động từ ứng dụng chủ, nó chạy trong một thread riêng biệt và trả về điều khiển cho

DefaultWorkflowScheduler Service, ManualWorkflow SchedulerService

Trang 27

Tuy nhiên với các ứng dụng web form hay web service chạy trên server, thì tốt hơn

là khóa thread của ứng dụng chủ lại đợi cho workflow trả

về điều khiển vì nếu không ứng dụng chủ mà hồi đáp cho client ngay thì không có giá trị gì hết Tất cả việc điều khiển cơ chế thread như vậy được thực hiện bằng dịch vụ scheduling

Workflow

Loader

Cho phép tạo thể hiện của workflow khi gọi phương thức CreateWorkflow

DefaultWorkflow LoaderService

Data

Exchange

Quản lý các dịch vụ truyền thông tùy biến

bị lỗi hay không WF cho phép người dùng định nghĩa các dịch vụ của riêng họ và được sử dụng như các dịch

vụ chuẩn được cung cấp sẵn trong frame work

Thừa kế từ lớp WorkflowRuntimeService

Trang 28

25

3.3.4 Mô hình xây dựng workflow

Để xây dựng workflow trong WF, người ta có thể tạo “khai báo” workflow bằng một ngôn ngữ dựa trên XML gọi là XAML, hoặc có thể dùng mã lập trình C# hoặc VB, hoặc kết hợp cả hai cách đó Sau khi đã xây dựng được workflow cần biên dịch chúng thành NET assembly để có thể thực thi được trong môi trường NET runtime Quá trình biên dịch gồm hai công đoạn:

 Dịch từ mã khai báo hoặc mã lập trình thành các đoạn mã C#/VB thuần túy bằng công cụ Workflow Compiler (file wfc.exe)

 Dịch từ mã C#/VB sang NET assembly giống như các ứng dụng NET truyền thống

Hình 3-5 Mô hình xây dựng workflow trong WF

3.3.5 Các loại workflow trong WF

Windows Workflow Foundation cung cấp hai loại workflow: trình tự (sequential) và máy trạng thái (state-machine) Mỗi loại có đặc điểm và tập các activity riêng

 Workflow trình tự là loại thông dụng hơn và là ví dụ mà người ta hay nghĩ khi nói đến workflow Loại workflow này mô tả một tiến trình

có điểm khởi đầu, sau đó thực thi một số các activity theo thứ tự được định sẵn rồi cuối cùng đi đến điểm kết thúc Trong workflow trình tự bạn có thể dùng các logic điều khiển tương tự các ứng dụng truyền thống: if-then, vòng lặp while, điểm khác biệt ở đây là các

Trang 29

26

logic điều khiển này có thể được thể hiện trực quan và được khai báo chứ không cần lập trình

 Workflow máy trạng thái khác với workflow trình tự ở chỗ nó là sự chuyển đổi linh hoạt giữa các trạng thái chứ không phải là sự thi hành theo thứ tự định trước Việc chuyển đổi gây ra bởi các sự kiện Workflow loại này bao giờ cũng bắt đầu ở trạng thái khởi đầu, sau

đó hoạt động di chuyển trạng thái và có thể đạt đến trạng thái kết thúc

3.3.6 So sánh WF với WCF

Về phương diện truyền thông, WF cung cấp cho chúng ta một vài công cụ

cơ bản để làm việc qua web service với XML Dùng WF chúng ta có thể xuất một workflow như là một web service, và mọi người có thể dùng web service này dễ dàng Phải chăng tính năng này giống với WCF

WCF là công nghệ nền tảng nhằm thống nhất nhiều mô hình lập trình giao tiếp được hỗ trợ trong NET 3.0 thành một mô hình duy nhất Đúng là WCF cung cấp cho chúng ta các công cụ để có thể cài đặt và sử dụng web service, nhưng WCF mạnh mẽ hơn so với WF rất nhiều Mục đích chính của WCF là thống nhất tất cả các mô hình lập trình cho tất cả các tiến trình giao truyền thông, nó cho phép chúng ta xây dựng các kết nối dựa trên kiến trúc hướng dịch vụ (SOAs) Với SOAs, các phần mềm chuyển từ gọi phương thức sang việc dùng các dịch vụ Trong các hệ thống phần mềm lớn thì các tiến trình gọi dịch vụ này rất phức tạp và tốn kém

Tóm lại, WF mạnh về mặt hỗ trợ thiết lập các luồng công việc nhưng không mạnh về mặt truyền thông giao tiếp hướng dịch vụ như WCF

Trang 30

27

4.1 Phân tích hệ thống

4.1.1 Mô hình use case

Hình 4-1 Mô hình use case

Admin Người dùng với vai trò quản trị hệ thống

Student Người dùng với vai trò sinh viên

Checker Người dùng tham gia vào quy trình duyệt đơn, chịu trách nhiệm

kiểm tra sơ bộ các loại đơn và đem đi duyệt nếu đạt yêu cầu Approver Tham gia vào quy trình duyệt đơn với tư cách là người ra quyết định

cuối cùng với đơn đó Đồng thời chịu trách nhiệm in đơn ra để chuyển cho sinh viên

Judge Người dùng với vai trò là giám khảo cuộc thi, tham gia vào quy

trình chấm điểm cho cuộc thi

Trang 31

Cho phép tạo loại đơn mới, định nghĩa quy trình duyệt đơn đó

Chỉnh sửa quy trình duyệt đơn

Sinh viên khi có nhu cầu tạo đơn để duyệt thì sẽ dùng tính năng này

để tạo đơn xin duyệt

Được phép xem bài thi của các thí sinh và tiến hành chấm điểm

Duyệt đơn Người có thẩm quyền duyệt đơn sẽ được phép tiến hành duyệt

Trang 32

29

Hình 4-2 Mô hình ngữ cảnh

4.1.2.2 Mô hình cấp 1 của process quản lí tài khoản

Hình 4-3 Mô hình cấp 1 của process quản lí tài khoản

4.1.2.3 Mô hình cấp 1 của process tác vụ quản lí cuộc thi

Hình 4-4 Mô hình cấp 1 của process tác vụ quản lí cuộc thi

4.1.2.4 Mô hình cấp 1 của process tham dự cuộc thi

Hình 4-5 Mô hình cấp 1 của process tham dự cuộc thi

4.1.2.5 Mô hình cấp 1 của process duyệt đơn

Trang 33

30

Hình 4-6 Mô hình cấp 1 của process duyệt đơn

4.1.2.6 Mô hình cấp 1 quy trình quản lý động cuộc thi

Hình 4-7 Mô hình cấp 1 của process duyệt đơn

4.1.3 Mô hình thực thể

Trang 34

Student

DoB Address EduMode StartYear TimeLast Role

Contest

GradeSub mission

0,n

Date

Content Title Id

Đại diện cho 1 tác vụ, đơn cần được duyệt

Trang 35

32

4.1.3.1.3 Excemptuition Task

Đại diện cho đơn xin miễn giảm học phí

4.1.3.1.4 User

Đại diện cho người dùng hệ thống

4.1.3.1.5 Student

Trang 36

33

Đại diện cho sinh viên

4.1.3.1.6 Contest

Đại diện cho cuộc thi

Judges Các giám khảo đưuọc mời chấm điểm cuộc

thi

Chuỗi

ExpDate Ngày sinh viên hết hạn nộp bài thi Ngày

4.1.3.2 Mô tả quan hệ

4.1.3.2.1 Submiss

Đại diện cho bài thi được sinh viên gửi tham dự cuộc thi

Trang 37

34

4.1.3.2.2 GradeSubmission

Đại diện cho quan hệ chấm điểm bài thi

4.1.3.2.3 Create

Đại diện cho việc Tạo đơn

Log Nhật ký ghi lại hoạt động của quy trình duyệt

đơn

Đa trị

4.1.3.2.4 Validate

Đại diện cho việc duyệt đơn

Trang 38

35

Ba thực thể Task, SimpleTask, ExcemptuitionTask có quan hệ kế thừa

 Task(Id, Kind, Status, Reason, Hometown, ParentName, Street,

Ward,District,Province,Type,Tuition, Fault)

Thực thể User

 STAFF(RealName, Username)

Thực thể Student kế thừa User

 STUDENT(NumCode (do UserName chuyển tên),Name (do RealName chuyển tên),DoB, Address, Class, StartYear, TimeLast, EduMode)

 Task(Id, Kind, Status, Reason, Hometown, ParentName, Street,

Ward,District,Province,Type,Tuition, Fault, Username)

Validate

 Validate(Username,Id(của Task),Id (của Validate),Kind,Note,Date)

 LOG(Id,Kind,Task(id của Task),Note,Date,Writer(Username chuyển tên thành))

Submiss

 Submiss(Username, Date, Content, Title, Id(của Contest), Id(của

Submiss) )

Trang 39

36

 SUBMISSION(Id(của Submission), Username, Date, TestContent,

 TASKKIND(Id,Description)

Mỗi chương trình học đối với sinh viên đều quy định thời gian học kéo dài trong mấy năm, hiện có 2 giá trị là 4/4.5 năm Cần 1 bảng để lưu các giá trị này lại

 TIMELAST(Id,Description)

Mỗi sinh viên đều thuộc 1 trong 2 hệ đào tạo sau: đài tạo chính quy, đào tạo

từ xa Cần bảng để lưu lại

Trang 40

37

Nhằm cung cấp tính năng thông báo cho người dùng các thông tin quan trọng như báo đơn đã được duyệt, hết hạn nộp bài thi Cần tạo 1 bảng để lưu lại

 NOTIFICATION(Id,Username , Cont, IsNew, Date)

Khi có thông báo quan trọng như kết quả cuộc thi, cần được công bố lên trang chủ cho mọi người biết, thì phải có 1 bảng để thực hiện chuyện đó

 NEWS(Title,NewsContent, Id, Date)

Mỗi cuộc thi đều có trạng thái nằm trong khoảng giá trị như: Khởi tại, chờ chấm điểm, kết thúc Do đó cần 1 bảng để lưu lại

Ngoài việc thiết kế cơ sỡ dữ liệu cho phù hợp với yêu cầu đề tài phần mềm, phần mềm còn sử dụng cơ sở dữ liệu thiết kế sẵn của ASP.NET để quản lý tài khoản người dùng (các bảng có tiếp đầu ngữ là aspnet)

Sau đây là sơ đồ cơ sở dữ liệu quan hệ :

4.2.1.2 Sơ đồ CSDL

Ngày đăng: 23/12/2018, 06:13

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w