Với sự xuất hiện của công nghệ thông tin, các quy trình làm việcđược tự động hóa một phần hay toàn bộ bởi các hệ thống thông tin như các chươngtrình máy tính thực hiện các tác vụ v
Trang 1ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC
CHUYÊN NGÀNH CÔNG NGHỆ THÔNG TIN
Đề tài:
NGHIÊN CỨU VÀ XÂY DỰNG HỆ THỐNG QUẢN LÝ TIẾN TRÌNH CÔNG VIỆC (Workflow Management System)
Sinh viên thực hiện: NGUYỄN THẾ TÂN
Lớp Công nghệ phần mềm – K44
Giáo viên hướng dẫn: ThS BÙI THỊ HOÀ
Hà Nội 5-2004
Trang 2Lời cảm ơn
Để có thể hoàn thành đồ án tốt nghiệp này, em xin trân trọng cảm ơn tập thể các thầy giáo, cô giáo trường đại học Bách Khoa Hà Nội nói chung, khoa Công nghệ thông tin, bộ môn Công nghệ phần mềm nói riêng, đã đào tạo, truyền đạt cho
em những kiến thức, những kinh nghiệm quý báu trong suốt quá trình 5 năm học tập và rèn luyện.
Em xin trân trọng cảm ơn cô giáo Bùi Thị Hòa – Giảng viên bộ môn Công nghệ phần mềm, khoa Công nghệ thông tin, trường Đại học Bách Khoa Hà Nội đã tận tình hướng dẫn em trong quá trình làm đồ án tốt nghiệp Đồng thời em cũng xin bày tỏ lòng biết ơn của mình tới công ty TNHH tin học Tân Trí Tuệ Trẻ ( ISoftCo ), các anh, các chị trong công ty ISoftCo và anh Đỗ Hữu Binh, giám đốc điều hành công ty đã tạo điều kiện, giúp đỡ em trong quá trình học tập và làm đồ án.
Cuối cùng là lời cảm ơn trân thành của em tới gia đình, toàn thể bạn bè đã động viên chăm sóc, đóng góp ý kiến, giúp cho đồ án tốt nghiệp của em hoàn thành tốt đẹp.
Tuy nhiên, do thời gian và trình độ có hạn nên đồ án này không thể tránh khỏi những thiếu sót, em rất mong được sự đóng góp ý kiến của các thầy, các cô cùng toàn thể các bạn để giúp cho đồ án này được hoàn thiện hơn Em xin trân thành cảm ơn
Hà Nội ngày 15 tháng 5 năm 2004
Nguyễn Thế Tân
Trang 3MỤC LỤC
Lời cảm ơn 2
1.3 Các mẫu tiến trình công việc (workflow patterns) 13
2.1 Khái niệm WfMS 16
2.2 Kiến trúc chung của WfMS 18
2.3 Đặc điểm của hệ thống quản lý tiến trình công việc 21
2.4 Sự cần thiết của hệ thống quản lý tiến trình công việc 23
3 WfMS VÀ CÁC HỆ THỐNG TƯƠNG TỰ 25
3.1 Workflow và ngôn ngữ lập trình 25
3.2 Workflow, hệ điều hành và các hệ xử lý theo lô 26
3.3 Workflow và những môi trường làm việc xác định 28
3.4 Workflow và sự mô phỏng máy tính 28
CHƯƠNG II NHỮNG CÔNG NGHỆ SỬ DỤNG 30
1 STRUTS 30
2.1 Tổng quan về Hibernate 32
2.2 Kiến trúc của Hibernate 33
2.3 Ngôn ngữ truy vấn Hibernate 36
PHẦN II XÂY DỰNG HỆ THỐNG QUẢN LÝ TIẾN TRÌNH CÔNG VIỆC
41
CHƯƠNG I XÁC ĐỊNH YÊU CẦU THỰC TẾ 41
Trang 41 XÁC ĐỊNH YÊU CẦU NGƯỜI DÙNG 41
1.1 Các định nghĩa 41
1.2 Các yêu cầu cụ thể 43
2 TÌM HIỂU MỘT SỐ HỆ THỐNG QUẢN LÝ TIẾN TRÌNH ĐÃ CÓ Ở
2.1 Hệ thống quản lý tài liệu eDOCman của CMC 47
2.2 Hệ thống thông tin điều hành AIS 48
CHƯƠNG II PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG 51
1.1 Các thành phần chính của hệ thống 51
1.2 Cấu trúc các khái niệm trong hệ thống quản lý tiến trình 53
2.1 Biểu đồ các trường hợp sử dụng 55
2.2 Các chức năng chính của hệ thống 56
CHƯƠNG III THIẾT KẾ CHI TIẾT 58
1 THÔNG TIN ĐỊNH NGHĨA QUY TRÌNH 58
1.2 Mô tả chung 58
1.3 Các thành phần của một định nghĩa quy trình 60
2 WORKFLOW RUN-TIME SYSTEM 71
2.1 Các gói chính của hệ thống71
2.2 Gói util 72
CHƯƠNG IV SẢN PHẨM THU ĐƯỢC 79
2 XU HƯỚNG PHÁT TRIỂN TRONG TƯƠNG LAI81
Trang 5Danh mục các từ viết tắt trong đồ án
CORBA Common Object Request Broker Architecture
JSTL JavaServer Pages Standard Tag Library
IDE Integreated Development EnvironmentJ2EE Java 2 Platform, Enterprise Edition
APIs Application Program Interface
WPDL Workflow Process Definition Language
Trang 6Danh mục các hình vẽ trong đồ án
-o0o -Hình 1: Quy trình xin nghỉ phép 12
Hình 2: Mô hình WfMS Workflow Reference Model 19
Hình 3: Mối quan hệ giữa logic quy trình và các hoạt động quy trình25
Hình 4: Thời gian xử lý của workflow, hệ điều hành, và các hệ xử lý theo lô.
27
Hình 5: Kiến trúc mô hình MVC 30
Hình 6: Mô hình framework Struts 31
Hình 7: Kiến trúc Hibernate nhìn ở mức cao 33
Hình 8: Phương pháp tiếp cận “lite” 34
Hình 9: Phương pháp tiếp cận “full cream” 34
Hình 10: Kiến trúc phát triển hệ thống 51
Hình 11: Công cụ định nghĩa quy trình công việc 52
Hình 12: Cấu trúc các khái niệm 54
Hình 13: Biểu đồ các trường hợp sử dụng 55
Hình 14: Workflow run-time System 58
Hình 15: Các thuật ngữ được dùng để định nghĩa quy trình 59
Hình 16: Ví dụ về cấu trúc của thông tin định nghĩa quy trình 60
Hình 17: Các gói chính trong hệ thống 71
Hình 18: Thành phần của gói util 72
Hình 19: Thành phần của gói workflow 72
Hình 20: Biểu đồ lớp trong gói workflow.definition 73
Hình 21: Biểu đồ lớp của gói workflow.execution 74
Hình 22: Biểu đồ lớp của gói workflow.organisation 75
Hình 23: Thành phần của gói web75
Hình 24: Luồng thực hiện của user 76
Hình 25: Luồng thực hiện của admin 77
Hình 26: Màn hình đăng nhập hệ thống 80
Hình 27: Màn hình làm việc của hệ thống 80
Trang 8ĐẶT VẤN ĐỀ
1 GIỚI THIỆU BÀI TOÁN
Ngày nay các doanh nghiệp kinh doanh đang phải đối phó với vấn đề cạnhtranh toàn cầu Giảm giá thành kinh doanh, phát triển nhanh các dịch vụ và các sảnphẩm mới là các mục tiêu chủ yếu Các yêu cầu đó buộc các doanh nghiệp phảikhông ngừng xem xét lại và tối ưu hoá cách thức kinh doanh và phải luôn thay đổicác hệ thống thông tin và các ứng dụng tin học để hỗ trợ các quy trình kinh doanh,làm cho chúng ngày càng hiện đại hơn
Khái niệm workflow được rút ra từ khái niệm quy trình trong sản xuất vàquy trình làm việc trong các công sở Các quy trình đã tồn tại trong quá trình côngnghiệp hoá và là sản phẩm của quá trình tìm kiếm một giải pháp nhằm tăng hiệuquả sản xuất bằng cách tập trung vào khía cạnh thủ tục của quy trình hoạt động Cácquy trình này thông thường tách rời các hoạt động công việc thành các tác vụ, cácluật, các vai trò và các quy trình mà chúng quy định được định nghĩa rõ ràng, điềuchỉnh hầu hết các quy trình công việc trong sản xuất và trong các công sở
Ban đầu, các quy trình này được thực hiện hoàn toàn bởi con người thôngqua các vật dụng Với sự xuất hiện của công nghệ thông tin, các quy trình làm việcđược tự động hóa một phần hay toàn bộ bởi các hệ thống thông tin như các chươngtrình máy tính thực hiện các tác vụ và làm cho các luật có hiệu lực mà trước đâychúng được thực hiện hoàn toàn bởi con người
Về cơ bản, công nghệ workflow tạo ra các điều kiện đó bằng cách cung cấpcác phương pháp luận và phần mềm để hỗ trợ các đặc trưng sau:
Sử dụng mô hình hoá quy trình công việc để nắm bắt các quy trình công việcnhư là các đặc tả workflow
Sử dụng công nghệ tái kỹ nghệ quy trình công việc để tối ưu hoá các quytrình lý thuyết
Sử dụng các workflow tự động để tạo ra sự thi hành workflow từ các đặc tảworkflow
Trang 9Hơn nữa, các công ty còn yêu cầu tích hợp và sắp xếp hợp lý các hoạt độngkinh doanh một cách rõ ràng, khoa học để tăng thêm các dịch vụ và rút ngắn thờigian phân phối Khi đó giá trị của quá trình tích hợp sẽ trở thành một nhân tố quantrọng cần phải xem xét không chỉ cho các công việc kinh doanh qua mạng Các quytrình công việc của các doanh nghiệp khác nhau cần phải được tích hợp một cáchtương đồng trong các quy trình công việc được tái kỹ nghệ sao cho có hiệu suất vàhiệu quả cao hơn.
Ngày nay các công nghệ nổi bật như các đối tượng công việc, công nghệhướng thành phần và ngôn ngữ đánh dấu mở rộng (XML) được đánh giá như là cáccông nghệ cốt lõi để giải quyết thành công những thách thức đó
Để đáp ứng các yêu đó cần xây dựng những hệ thống quản lý́ tiến trình côngviệc, hỗ trợ tối đa cho việc quản lý thực thi các công việc
Những lý do trên đã tạo cho tôi mong muốn “Nghiên cứu và xây dựng hệ
thống quản lý tiến trình công việc” hỗ trợ công tác quản lý các quy trình công việc
trong các doanh nghiệp, các tổ chức Hệ thống này sẽ trợ giúp các doanh nghiệp,các tổ chức dễ dàng mô hình hoá các quy trình công việc và hỗ trợ các công cụ đắclực để quản lý việc thực thi các quy trình công việc đó
Bài toán xây dựng hệ thống quản lý tiến trình công việc đã được quan tâmnghiên cứu và phát triển trong thời gian gần đây và đã có nhiều sản phẩm có thể đápứng được một phần nào đó nhu cầu của thị trường Tuy nhiên bài toán quản lý quytrình công việc là một bài toán rất rộng và có đặc thù riêng đối với từng doanhnghiệp, từng tổ chức, từng lĩnh vực sản xuất khác nhau Trong phạm vi đồ án nàytôi sẽ thực hiện các công việc sau:
Tìm hiểu thế nào là một hệ thống quản lý tiến trình công việc
Nghiên cứu các công nghệ cần thiết để xây dựng lên một hệ thống quản lýtiến trình công việc
Xây dựng một hệ thống quản lý tiến trình công việc
Trang 10Nhưng do thời gian có hạn nên trong phần xây dựng một hệ thống quản lý
tiến trình công việc tôi tập trung vào các vấn đề sau:
Xây dựng nên khung các khái niệm dùng để định nghĩa (đặc tả) các quy trìnhcông việc
Xây dựng một máy workflow (workflow engine) cho phép triển khai các
quy trình đã được định nghĩa và hỗ trợ quản lý sự thực thi các quy trình đãđược triển khai
Xây dựng một số chức năng cho phép quản lý, theo dõi các quá trình hoạtđộng của hệ thống
Phát triển một công cụ đồ hoạ cho phép người dùng có thể tạo ra các địnhnghĩa quy trình
Trang 11PHẦN I CƠ SỞ LÝ THUYẾT
CHƯƠNG I HỆ THỐNG QUẢN LÝ TIẾN TRÌNH CÔNG VIỆC
Trong đồ án này, trước hết chúng ta cần xem xét hai khái niệm, một là tiến
trình công việc (workflow) hay còn gọi là luồng công việc và hai là hệ thống quản lý tiến trình công việc (workflow management system) Nó bao gồm các định nghĩa của công nghệ luồng công việc và mô hình tham chiếu luồng công việc (workflow
reference model).
1 WORKFLOW LÀ GÌ?
1.1 Khái niệm workflow
Workflow được định nghĩa như là sự tự động hóa của một quá trình côngviệc trong các tài liệu đặc tả nó Thông tin hay các tác vụ được chuyển từ một haynhiều bên tham gia tới các bên còn lại yêu cầu thực hiện theo các luật, các quy tắcmang tính thủ tục Một workflow được tạo ra từ nhiều chức năng và các hoạt độngkhác nhau như quá trình xem xét, danh sách các tác vụ, các khai báo, theo dõi tìnhtrạng thực hiện, thời gian thực hiện, các báo cáo, v.v
Thông thường thì workflow bao gồm một chuỗi có logic các bước có thứ bậc
để định nghĩa một quy trình công việc Mỗi bước chứa một tác vụ cần hoàn thànhvà các bên tham gia sẽ thực hiện tác vụ đó Tác vụ có thể là các công việc như xemxét nhiệm vụ, quá trình phê chuẩn hay một yêu cầu cập nhật tài liệu v.v Một vài tác
vụ đơn giản trong workflow phân cấp như gửi thư điện tử có thể được làm tự độngvà không yêu cầu các bên tham gia Workflow tự động có vai trò quan trọng trongmột tổ chức bởi vì nó bảo đảm sức nặng hợp lý và độ chính xác tối đa khi phân táncông việc hay các tác vụ cho các bên tham gia Nó nâng cao khả năng điều khiểncủa một quy trình với ít sự hướng dẫn, loại trừ các công việc không đúng chỗ, giảmthời gian trễ và đảm bảo các tác vụ được thực hiện theo đúng các chính sách và thủtục của công ty
Trang 121.2 Ví dụ workflow
Hình 1: Quy trình xin nghỉ phép
Ta xem xét quy trình xử lý đối với một đơn xin nghỉ phép của nhân viêntrong công ty Khi có nhân viên có nhu cầu nghỉ phép (nhân viên đó khởi tạo mộtthể hiện của quy trình xin nghỉ phép), yêu cầu nghỉ phép được quyết định bởi ngườiquản lý trong công ty Người quản lý sẽ quyết định có đồng ý hay không đồng ý vớiđơn xin nghỉ phép của nhân viên đó (tương ứng với hành động evaluating trong
quy trình trên) Nếu nhân viên đó được chấp nhận yêu cầu (tương ứng với approve)
hệ thống sẽ tự động chuyển tới hai hành động tiếp theo là ghi chú về nguồn nhân sự(HR notification) trong công ty của cán bộ quản lý nhân sự và hành động ghinhận phê chuẩn (approval notification) được gửi tới người yêu cầu nghỉphép (requester) Sau khi hoàn thành hai hoạt động trên, quy trình sẽ kết thúc.ngược lại, nếu người quản lý quyết định không đồng ý với yêu cầu nghỉ phép, hệthống sẽ chuyển tới trạng thái ghi nhận sự không phê chuẩn (disapprovalnotification) Sau khi thực hiện xong công việc đó, hệ thống chuyển tới trạngthái kết thúc
Trên đây là quá trình xử lý của một quy trình công việc rất đơn giản Đối vớinhững quy trình công việc phức tạp, rất khó có thể thực hiện một cách đồng bộ các
Trang 13hoạt động theo đúng quy trình đặt ra đồng thời rất khó theo dõi tiến độ thực hiệncác công việc trong quy trình Yêu cầu đặt ra là phải xây dựng một hệ thống giúpcác nhà quản lý có thể dễ dàng quản lý quá trình thực hiện công việc theo các quytrình định sẵn trong công ty một cách tự động đồng thời giúp cho các nhân viêntrong các công ty có thể thực hiện công việc có hiệu quả hơn.
1.3 Các mẫu tiến trình công việc (workflow patterns)
a Các mẫu cơ bản (Basic Control Patterns)
Sequence (tuần tự): một hoạt động trong quy trình workflow được sẵn sàng sau
khi hoàn thành hoạt động khác trong cùng quy trình
Parallel Split (Fork) (chia song song): một điểm trên quy trình workflow khi một
luồng điều khiển đơn bị chia thành nhiều luồng điều khiển có thể thực hiện songsong, sau đó cho phép các hoạt động thực hiện đồng bộ hay theo một thứ tự nào đó
Synchronization (Join) (đồng bộ): một điểm trên quy trình workflow khi nhiều
quy trình con hoạt động song song cùng tiến vào một luồng điều khiển, sau đó đồng
bộ hóa đa luồng điều khiển
Exclusive Choice (lựa chọn loại trừ): một điểm trong quy trình, dựa trên quyết
định của người dùng hay các dữ liệu điều khiển, một hay vài nhánh được lựa chọn
b Các mẫu đồng bộ và rẽ nhánh tiên tiến (Advanced Branching and Synchronization Patterns)
Multi-choice (đa lựa chọn): một điểm trong quy trình, tùy theo sự quyết định hay
dữ liệu điều khiển workflow, một số nhánh được chọn
Synchronizing Merge (Kết hợp đồng bộ): một thời điểm trong quy trình khi nhiều
hướng quy tụ vào một luồng đơn Nếu nhiều hơn một hướng quy tụ, cần đồng bộluồng hoạt động Nếu chỉ có một hướng, các nhánh khác nhau sẽ quy tụ mà khôngcần đồng bộ Trong mẫu này có một giả định là khi một nhánh đã được kích hoạtsẵn sàng thì không thể kích hoạt lại trong khi bộ hợp nhất vẫn chờ các nhánh kháchoàn thành
Trang 14Multi-merge (đa kết hợp): một thời điểm trong quy trình workflow nơi mà hai hay
nhiều nhánh quy tụ lại mà không cần đồng bộ Nếu nhiều hơn một nhánh được kíchhoạt, có thể đồng thời, hoạt động theo sau quá trình hợp nhất được bắt đầu với tất cảcác kích hoạt của tất cả các nhánh đến
Discriminator: là một điểm trong quy trình mà nó đợi một trong các nhánh đến
hoàn thành trước khi kích hoạt hoạt động tiếp theo Từ thời điểm đó, nó đợi tất cảcác nhánh còn lại hoàn thành và bỏ dở chúng Một trong tất cả các nhánh đến đượckhởi tạo, nó tự động xác lập lại vì vậy nó có thể khởi tạo trở lại (điều này rất quantrọng trong nếu không nó không thể được sử dụng trong ngữ cảnh lặp)
N-out-of-M-join: một điểm trong quy trình khi M luồng tới song song được hội tụ
lại thành một luồng Khi N trong số M luồng tới hoàn thành, hoạt động tiếp theo sẽđược kích hoạt Sự hoàn thành của tất cả các luồng tới có thể được bỏ qua Tương
tự như Discriminator, một khi tất cả các nhánh tới đã được kích hoạt, bộ phận kếthợp sẽ tự thiết lập lại và vì vậy nó có thể kích hoạt trở lại
c Các mẫu có cấu trúc
Arbitrary Cycles (các chu trình bất kỳ): một điểm trong quy trình nơi mà nhiều
hoạt động có thể thực hiện lặp đi lặp lại
Implicit Termination (kết thúc ngầm): một quy trình con sẽ bị chấm dứt khi
không có gì cần phải làm Nói cách khác, không có hoạt động nào còn hoạt độngtrong workflow và không có hoạt động có thể được kích hoạt (tại cùng thời điểm đóworkflow vẫn hoạt động)
d Các mẫu bao gồm đa thể hiện (Patterns Involving Multiple Instances)
Multiple Instances Without Synchronization (đa thể hiện không cần đồng bộ):
Trong trường hợp này nhiều thể hiện của một hoạt động có thể được tạo ra, cónghĩa là đó là một khả năng sinh ra luồng mới của điều khiển Mỗi luồng của điềukhiển là độc lập với các luồng khác Hơn nữa, không cần đồng bộ các luồng
Multiple Instances With a Priori Design Time Knowledge (đa thể hiện được xác định tại thời điểm thiết kế): đối với một quy trình, một hoạt động có thể được
Trang 15kích hoạt nhiều lần Số lượng các thể hiện của một hoạt động trong quy trình đóđược xác định tại thời điểm thiết kế Một khi tất cả các thể hiện được hoàn thành,một vài hoạt động khác được bắt đầu.
Multiple Instances With a Priori Runtime Knowledge (đa thể hiện được xác định tại thời điểm chạy): trong trường hợp một hoạt động được kích hoạt nhiều
lần Số lượng các thể hiện của hoạt động thay đổi và có thể phụ thuộc vào đặc điểmcủa các trường hợp cụ thể hay khả năng của các nguồn tài nguyên nhưng phải đượcxác định tại một vài trạng thái trong thời gian chạy, trước khi các thể hiện của hoạtđộng đó được tạo ra Khi các thể hiện đó hoàn thành thì một số hoạt động khácđược bắt đầu
Multiple Instances Without a Priori Runtime Knowledge (đa thể hiện không xác định được ở thời điểm thiết kế): Trong trường hợp một hoạt động được kích
hoạt nhiều lần Số lượng các thể hiện của hoạt động đó không biết trước trong thờigian thiết kế, và cũng không biết tại bất kỳ trạng thái nào trong thời gian chạy,trước khi các thể hiện của hoạt động đó được kích hoạt Khi tất cả các thể hiện củahoạt động được hoàn thành, một số hoạt động khác được bắt đầu Sự khác biệt vớimẫu Multiple Instances With a Priori Runtime Knowledge là ở chỗ trong khi một sốthể hiện đang được thực hiện hay đã hoàn thành thì một thể hiện mới có thể đượctạo ra
e Các mẫu dựa trên trạng thái (State-based patterns)
Deferred Choice (lựa chọn bị trì hoãn): một điểm trong quy trình nơi mà một
trong vài nhánh được chọn Ngược lại với XOR-split, sự lựa chọn là không rõ ràng(ví dụ dựa theo dữ liệu hay quyết định) nhưng vài khả năng được đề nghị với môitrường thực thi Tuy nhiên, ngược lại với AND-split, chỉ có một trường hợp đượcthực thi Điều đó có nghĩa là khi môi trường kích hoạt một trong các nhánh, cácnhánh còn lại bị bỏ qua Chú ý rằng sự lựa chọn được hoãn lại cho đến khi quá trình
xử lý của nhánh có khả năng được thực sự bắt đầu, có nghĩa là thời điểm lựa chọnlà trễ đến mức có thể
Interleaved Parallel Routing (định tuyến song song chèn): một tập các hoạt động
được thực hiện theo một thứ tự tùy ý: mỗi một hoạt động trong tập đó được thực
Trang 16hiện, thứ tự thực hiện được quyết định tại thời điểm chạy và không có hai hoạt độngđược thực hiện tại cùng một thời điểm (có nghĩa là không có hai hoạt động đượckích hoạt trong cùng một thể hiện của workflow tại cùng một thời điểm).
Milestone (Mốc): Sự kích hoạt của một hoạt động phụ thuộc vào trường hợp bắt
đầu trong một trạng thái xác định, có nghĩa là hoạt động đó chỉ được kích hoạt nếumột mốc cố định đã được hoàn thành và quy trình chưa kết thúc Ví dụ xét 3 hoạtđộng có tên A, B và C Hoạt động A chỉ được kích hoạt nếu hoạt động B đã đượcthực hiện và hoạt động C chưa được thực hiện, có nghĩa là A không thể được kíchhoạt trước khi thực hiện B và A không thể được kích hoạt sau khi thực hiện C
f Các mẫu hủy bỏ (Cancellation Patterns)
Cancel Activity (hủy hoạt động): một hoạt động đã được kích hoạt mà không có
khả năng sử dụng, có nghĩa là luồng xử lý đang đợi sự thực hiện của một hoạt động
đã bị loại bỏ
Cancel Case (hủy trường hợp): Trường hợp mà một thể hiện của workflow được
loại bỏ hoàn toàn (có nghĩa là thậm chí nếu các phần của quy trình đã được tạo ranhiều lần, tất cả các hậu duệ bị xóa bỏ)
2 HỆ THỐNG QUẢN LÝ TIẾN TRÌNH CÔNG VIỆC
2.1 Khái niệm WfMS
Hiện nay có rất nhiều định nghĩa khác nhau về các hệ thống quản lý tiếntrình công việc (WorkFlow Management System - WfMS) Trong phạm vi đồ ánnày hệ thống quản lý tiến trình công việc có thể được hiểu như sau:
Hệ thống quản lý tiến trình công việc là hệ thống cho phép các tổ chức, cơquan, doanh nghiệp định nghĩa và điều khiển các hoạt động của mình bằng cách kếthợp với các quy trình công việc Thêm vào đó, nhiều hệ thống quản lý còn cho phépkhả năng đo lường và phân tích quá trình thực hiện của một quy trình và vì vậy cóthể cải tiến liên tục các quy trình công việc Sự cải thiện có thể là ngắn hạn (ví dụnhư vị trí thực của các tác vụ để cân bằng tốt hơn gánh nặng công việc tại bất kỳthời điểm nào) hay dài hạn (ví dụ như định nghĩa lại sự phân chia của quy trìnhworkflow để tránh khỏi hiện tượng thắt cổ chai trong tương lai) Hầu hết các hệ
Trang 17thống workflow cũng được tích hợp với các hệ thống khác được sử dụng bởi tổchức như hệ thống quản lý tài liệu, hệ thống quản lý CSDL, hệ thống quản lý thưđiện tử, các sản phẩm tự động công sở, hệ thống thông tin địa lý (GIS), các sảnphẩm ứng dụng v.v Sự tích hợp đó cung cấp một môi trường thực thi cho phép mộtquy trình có thể triệu gọi các hệ thống hoạt động độc lập khác Nó cũng cung cấpcác phương thức để tổ chức tài liệu từ nhiều nguồn khác nhau.
Mặc dù trên thị trường hiện nay có rất nhiều sản phẩm hỗ trợ quản lý tiếntrình công việc khác nhau nhưng nhìn chung mỗi WfMS phải có những khả năng cơbản sau:
Khả năng đặc tả và mô hình hóa quy trình công việc
Khả năng phối hợp và quản lý quá trình thực thi của quy trình công việc
Khả năng nắm bắt các ngoại lệ trong quy trình công việc
Khả năng theo dõi các trạng thái của quy trình công việc và khả năng đánhgiá quy trình
Khả năng phân tích, mô phỏng và kiểm thử hành vi của quy trình công việc.Các nhà phát triển ứng dụng workflow dựa vào các công cụ (tools) để đặc tảquy trình công việc và dữ liệu mà quy trình xử lý Công cụ đặc tả kết hợp chặt chẽvới kho dịch vụ workflow, nơi chứa các định nghĩa về hệ thống quy trình công việc
đó Một quy trình công việc dựa trên mô hình workflow chuẩn được dùng để kiểmsoát dữ liệu và điều khiển luồng thực hiện giữa các tác vụ của workflow Một dịch
vụ ban hành các luật trong workflow (bao gồm một hệ thống quản lý và một hệthống thực thi) chứa các thành phần thực thi theo thời gian (execution-timecomponents), cung cấp một môi trường thực thi tiến trình công việc Một hệ thống
hỗ trợ thực thi tiến trình công việc theo thời gian cho phép thực hiện có hiệu quảcác liên tác (inter-tasks) phụ thuộc, lập lịch thực hiện các tác vụ, quản lý dữ liệutrong quy trình công việc và đảm bảo một môi trường thực thi tin cậy Các công cụquản trị và quản lý được dùng để quản lý người dùng và vai trò của nhóm côngviệc, định nghĩa các luật (các chính sách bảo mật, chính sách xác thực v.v.), quản lýkiểm toán, theo dõi tiến trình, lần vết, mô phỏng và báo cáo những dữ liệu được tạo
ra trong suốt quá trình thực thi quy trình công việc
Trang 182.2 Kiến trúc chung của WfMS
Hiện nay có rất nhiều sản phẩm hỗ trợ quản lý tiến trình công việc sẵn cótrên thị trường với một số khả năng nào đó Công nghệ workflow đã được sử dụngtrong hầu hết các lĩnh vực như ngân hàng, tài chính, bảo hiểm, chăm sóc sức khỏe,truyền thông, sản xuất và quản lý tài liệu v.v Mặc dù công nghệ workflow được sửdụng rất thành công trong các lĩnh vực đó nhưng có một trở ngại lớn đó là việc ápdụng rộng rãi các chuẩn của công nghệ workflow Hầu hết mọi khách hàng sử dụngworkflow đều có một mô hình workflow, ngôn ngữ đặc tả và các APIs của riêng họ.Mỗi sản phẩm được phát triển theo một chuẩn riêng của nó, điều đó có nghĩa làkhông có một chuẩn thống nhất trong các lĩnh vực khác nhau Do đó, các chuẩn lànhân tố quan trọng trong việc tạo ra khả năng xâm nhập của workflow
Trong những năm gần đây, nhiều nỗ lực của Workflow ManagementCoaliation (WfMC) đã có tác dụng đáng kể trong quá trình thiết lập các chuẩnworkflow Hơn nữa, các chuẩn khác như CORBA (Common Object Request BrokerArchitecture) của OMG, Com của Microsoft cũng đã tạo ra một bước tiến vĩ đạitrong công nghệ workflow Ta cần tìm cách tích hợp các ứng dụng liên quan trongWfMSs Chúng ta coi các ứng dụng cộng tác như là các ứng dụng workflow kháchtrong hệ WfMSs Do đó chúng ta chọn mô hình WfMS-Workflow Reference Model(mô hình tham chiếu workflow) là mô hình cơ sở Sau đâu là mô tả tóm tắt về môhình WfMS-Workflow Reference Model
Trang 19Hình 1: Mô hình WfMS Workflow Reference Model
WfMC định nghĩa WfMS như là một hệ thống mà có thể định nghĩa, tạo ravà quản lý sự thực thi các workflow thông qua việc sử dụng các phần mềm chạytrên một hay nhiều máy workflow (workflow engines) Các máy workflow này cóthể hiểu các định nghĩa, đặc tả tiến trình công việc, tương tác với các bên tham gia,
sử dụng các công cụ và các ứng dụng khác
Chuẩn công việc của WfMC được tập trung theo mô hình tham chiếuworkflow Mô hình trên đặc tả một framework cho các hệ thống workflow, xác địnhcác các đặc điểm, các chức năng và các giao diện Tiêu điểm dựa trên việc đặc tảnăm hệ giao diện lập trình ứng dụng (APIs), chúng bao quanh các máy workflow(workflow engines) Các giao diện lập trình ứng dụng cung cấp các phương tiệnchuẩn cho giao tiếp giữa các workflow engines và các workflow clients (bao gồmcả các thành phần workflow khác như công cụ định nghĩa quy trình và các công cụtheo dõi)
Dịch vụ ban hành sắc lệnh quy trình công việc (workflow enactment service)cung cấp một môi trường thời gian chạy trong đó sự thể hiện của quy trình và sựhoạt hóa xảy ra bằng cách dùng một hay nhiều máy quản lý workflow, các máy này
Trang 20có tác dụng dịch và hoạt hóa các phần hay toàn bộ định nghĩa quy trình và tươngtác với các nguồn tài nguyên cần thiết từ bên ngoài để xử lý các hoạt động.
Một máy workflow (workflow engine) cung cấp môi trường thực thi theothời gian cho các thể hiện của workflow trong workflow enactment service Một sốchức năng có thể được nắm giữ bởi workflow engine như:
Làm rõ định nghĩa quy trình
Điều khiển hoạt động các thể hiện của quy trình
Dịch chuyển giữa các hoạt động trong quy trình
Kiểm soát quá trình đăng nhập của các bên tham gia riêng
Xác định các mục công việc phục vụ cho chăm sóc người dùng và giao diện
hỗ trợ tương tác người dùng
Bảo trì dữ liệu điều khiển workflow và các dữ liệu liên quan
Truyền các dữ liệu liên quan từ ứng dụng tới các người dùng và ngược lại
Một giao diện để triệu gọi các ứng dụng từ xa hay liên kết với bất cứ dữ liệuworkflow nào có liên quan
Giám sát các hoạt động điều khiển, quản trị và các mục đích kiểm toán.Tương tác xảy ra giữa ứng dụng khách hàng và máy workflow thông quamột giao diện được định nghĩa tốt gắn với khái niệm một worklist – một dang sáchcác mục công việc được giao cho những người dùng có liên quan (hay nhóm cácngười dùng thông thường) bởi máy workflow Tại mức đơn giản nhất, worklist cóthể được sử dụng bởi máy workflow với mục đích gán các mục công việc, và bởicác worklist handler với mục đích tìm các mục công việc để đưa tới người dùng vàyêu cầu xử lý Sự hoạt hóa của các mục công việc riêng lẻ trong worklist có thểdưới sự điều khiển của ứng dụng workflow khách hay khách hàng đầu cuối Mộtdãy các thủ tục được định nghĩa giữa workflow client application và workflowenactment service để cho phép thêm mới vào worklist Các hoạt động đã được hoànthành và các hoạt động tạm thời bị ngưng lại thành có thể bị xoá khỏi worklist Lờitriệu gọi ứng dụng có thể được nắm giữ bởi worklist handler, trực tiếp hay dưới
Trang 21điều khiển của người dùng cuối Giao diện ứng dụng người dùng (client applicationinterface – interface 2) cung cấp các API để quản lý các workflow worklist Nó baogồm các thao tác với worklist, quản lý trạng thái tiến trình, điều khiển quá trình vàhoạt động, kết nối và huỷ kết nối worklist.
2.3 Đặc điểm của hệ thống quản lý tiến trình công việc
Một vài tính năng cơ bản của một hệ thống quản lý tiến trình công việc
Process Definition Tool (Công cụ định nghĩa tiến trình): một công cụ đồ
họa hay văn bản được dùng để định nghĩa các quy trình công việc Mỗi hoạt độngtrong quy trình được kết hợp với con người hay một ứng dụng tin học Các luậtđược tạo ra để xác định cách mà các hoạt động được thực thi qua workflow và cácđiều khiển của nó để chi phối từng hoạt động Một vài hệ thống quản lý tiến trìnhcông việc cho phép những thay đổi mang tính động đối với quy trình công việcbằng cách lựa chọn tác nhân với những thông tin bí mật về quản lý
Simulation, Prototyping and Piloting (mô phỏng, chế thử và dẫn đường):
Một số hệ thống cho phép mô phỏng workflow, tạo ra các nguyên mẫu hay cácphiên bản thử nghiệm của một workflow riêng vì vậy nó có thể được dùng thử vàkiểm chứng trên một môi trường mang tính giới hạn trước khi đi vào sản xuất
Task Initiation & Control (tạo và điều khiển tác vụ): Quy trình công việc
đã được định nghĩa ở trên được khởi tạo và các nguồn tài nguyên thích về conngười và công nghệ thông tin được sắp xếp hay được cam kết để hoàn thành từnghoạt động theo sự tiến triển của quy trình
Rules Based Decision Making (Tạo quyết định dựa trên các luật): Các luật
được tạo ra cho từng bước để xác định cách mà các dữ liệu liên quan đến workflowđược xử lý, vạch lộ trình, theo dõi và điều khiển Một ví dụ như sau: một luật sinh
ra thư điện tử xác nhận khi một điều kiện xảy ra Một luật khác có thể cài đặt lộtrình có điều kiện của các tài liệu và các tác vụ dựa trên nội dung của các trường dữliệu Còn các luật khác có thể triệu gọi các ứng dụng riêng để hiển thị dữ liệu
Trang 22Document Routing (định hướng tài liệu): Trong các hệ thống đơn giản,
điều đó có thể được thực hiện bằng cách chuyển một file hay thư mục từ một bênnhận đến các bên khác Trong các hệ thống phức tạp, nó được thực hiện bằng cáchkiểm tra các tài liệu ngoài kho trung tâm Tất cả các hệ thống có thể cho phép đánhdấu các tài liệu vì vậy mỗi người tham gia vào quy trình có thể thêm các lời nhậnxét của họ mà không ảnh hưởng đến tài liệu ban đầu
Invocation of Applications to View and Manipulate Data (triệu gọi các ứng dụng để theo dõi và thao tác dữ liệu): Các hệ xử lý từ (Word-processors),
bảng công tác, các hệ GIS, các ứng dụng v.v có thể được gọi cho phép các nhânviên tạo, cập nhận và xem các tài liệu
Worklists: Cho phép mỗi nhân viên nhanh chóng xác định các tác vụ hiện tại
của họ cùng với các thông tin như ngày hẹn phải hoàn thành, ngày hoàn thành, mức
độ ưu tiên v.v Trong một vài hệ thống có thể hiển thị dự đoán gánh nặng công việc.Các hệ thống này phân tích các jobs trong workflow và thời gian thực hiện của từngbước sau đó được ước lượng khi các tác vụ sẽ cần để thực hiện riêng lẻ
Task Automation (các tác vụ tự động): Các tác vụ đã được tính toán có thể
được gọi tự động Ví dụ như viết thư điện tử, các thư thông báo hay chạy các ứngdụng Task Automation yêu cầu sự tùy biến của các sản phẩm workflow cơ bản
Event Notification (ghi chú sự kiện): Nhân viên hoặc các nhà quản lý có thể
được báo tin khi tới các mốc định trước, khi sức nặng công việc tăng lên, v.v
Distribution (Routing) Lists for Messages/Mail (danh sách phân tán (định tuyến) cho thông điệp và thư điện tử): các danh sách phân tán có thể được tạo ra để
gửi các thông báo đặc biệt tới nhân viên
Process Monitoring (theo dõi tiến trình): Hệ thống có thể cung cấp thông
tin có giá trị về sức nặng công việc hiện thời, sức nặng công việc trong tương lai,hiện tượng thắt cổ chai (hiện tại hay tiềm năng), v.v
Access to Information over the World Wide Web (truy xuất thông tin qua world wide web): một vài hệ thống cung cấp mô đun giao tiếp Web để cung cấp
thông tin về workflow cho các khách hàng, các nhà cung cấp, các cộng tác viên haycác nhân viên
Trang 23Tracking and Logging of Activities (Các hoạt động theo dõi và lần vết):
Thông tin về từng bước có thể được ghi lại Có thể bao gồm thời gian bắt đầu, thờigian hoàn thành, các thành viên được chỉ định cho một tác vụ, các trường dữ liệudùng làm khóa để cho biết trạng thái của tác vụ
Administration and Security (quản trị và bảo mật): một số chức năng
thường được cung cấp để định danh các bên tham gia và các đặc quyền cá nhân
2.4 Sự cần thiết của hệ thống quản lý tiến trình công việc
Công cụ quản lý tiến trình công việc có thể coi như là một dịp để cải thiện cảnhững quy trình công việc cơ bản và những cấu trúc tổ chức đã tồn tại Rất nhiềulợi ích có thể được tích lũy nếu hệ thống quản lý luồng công việc được cài đặt nhưlà một phần của giải pháp công việc lớn hơn
Opportunities for Organizational Change (Những khả năng thay đổi có tổ chức): Ngày nay, hệ thống quản lý tiến trình công việc có thể giúp các cơ quan hay
doanh nghiệp đạt được những thay đổi có tổ chức cần thiết để hoạt động có hiệuquả hơn Những thay đổi có thể bao gồm việc đạt được một cấu trúc tổ chức cânbằng hơn và sự định hướng nhóm tốt hơn Khi các bước hoạt động, các luật, và cácvai trò được xây dựng cho hệ thống, thật dễ dàng để quản lý các quy trình côngviệc Thêm vào đó, các giao tiếp được cải thiện được cung cấp bởi các thông báo,
sự chia sẻ tài liệu và sự cải thiện khả năng hiểu biết về chính hệ thống có thể làmtăng sự hợp tác giữa các thành viên hay giữa các đội, các nhóm Hệ thống quản lýluồng công việc được dùng để phục vụ cho việc hợp nhất các con người có các kỹnăng khác nhau vào một khối thống nhất
Opportunities for Process Change (khả năng thay đổi quy trình): Hệ thống
quản lý tiến trình công việc buộc các tổ chức phải khảo sát và định nghĩa các quytrình công việc của họ Vì vậy họ phải xem xét và thiết kế lại các quy trình côngviệc của họ Trên thực tế, cần thiết phải phân tích và cải tiến quy trình cơ bản trướckhi cài đặt hệ thống để tránh khỏi những hạn chế hay thất bại Một tổ chức tối ưumột quy trình theo ba mục tiêu là: “cực tiểu hóa tối đa thời gian thực hiện, tối đa
Trang 24hóa giá trị của quy trình, hay tối đa hóa độ mềm dẻo tại thời điểm tiếp xúc kháchhàng”.
Một số nguyên tắc để đạt được điều đó là:
1 Cực tiểu thời gian thực hiện
Giảm số lượng các bên tham gia trong quy trình
Giảm tối đa thời gian hoàn thành của mỗi tác vụ
Giảm thời gian chuyển giao công việc giữa các tác vụ
Giảm tối đa thời gian chờ đợi của một dự án
Tăng số lượng các tác vụ chạy song song
2 Tối đa hóa giá trị (tức là cải tiến chất lượng sản phẩm hay giảm giá thành)
Áp dụng các lộ trình, các luật và các quy định của luồng công việc tiêuchuẩn một cách tự động cho các trường hợp cụ thể
Cung cấp cho các bên tham gia khả năng truy xuất các thông tin cơ sởngay lập tức và trực tuyến
Khả năng thông báo và theo dõi liên tục
Ước lượng giá trị kết hợp với các tài liệu trên giấy
3 Tối đa hóa sự mềm dẻo
Cung cấp nhiều khả năng truy cập
Lấy thông tin khách hàng chỉ một lần
Hỗ trợ các xử lý giao dịch phân tán
Làm cho luồng công việc thật mềm dẻo tùy theo yêu cầu khách hàng
Improved/Increased Access to Information (cải thiện, tăng cường khả năng truy xuất thông tin): Các thông tin về quy trình nằm rải rác ở các thành viên
khác nhau có thể được kết hợp và sẵn dùng cho tất cả người lao động Điều đó rấthữu ích cho những người lao động mới, họ có ít hiểu biết về các thao tác công việcphức tạp
Trang 25Improved Security & Reliability (tăng tính bảo mật và an toàn): Hệ thống
quản lý tiến trình công việc kết hợp dữ liệu từ nhiều ứng dụng khác nhau và cungcấp các dữ liệu đó một cách có tổ chức và toàn vẹn Sử dụng các kỹ thuật như chínhsách phân quyền (xác định người có thể truy xuất hay thay đổi thông tin), điềukhiển tiến trình (ví dụ một tài liệu cần được phê chuẩn trước khi chuyển tới bướctiếp theo), quản lý phiên bản, sao lưu hệ thống, dữ liệu sẽ trở nên tin cậy hơn
3.1 Workflow và ngôn ngữ lập trình
Sự cài đặt các workflow chung quy là viết một đặc tả quy trình trong mộtngôn ngữ workflow Những người thiết kế workflow thu thập các định nghĩa quytrình với các công cụ mà chúng thể hiện chỉ một phần của lĩnh vực mà chúng hiểu.Định nghĩa đó đặc tả một chuỗi các hoạt động, sự phụ thuộc lẫn nhau và dữ liệutrao đổi giữa các hoạt động đó trong tầng flow Vì vậy, phải chăng workflow chỉ làmột ngôn ngữ đặc tả lĩnh vực?
Hình 1: Mối quan hệ giữa logic quy trình và các hoạt động quy trình
Mặc dù đặc tả quy trình chứa các hàm xây dựng giống như đã thấy trong cácngôn ngữ lập trình, các hệ thống quản lý tiến trình công việc có nhiều đặc điểm là
Trang 26duy nhất đối với workflow Ví dụ các đặc điểm như sự theo dõi, lịch sử thực thi vànhững sự can thiệp bằng tay của con người không xuất hiện trong các ngôn ngữ lậptrình Ngoài ra, các yêu cầu đặc tả lĩnh vực làm cho quá trình thực thi workflowkhác hẳn với thực thi chương trình.
Nhưng sự giống nhau giữa các ngôn ngữ lập trình và workflow là làm cho cókhả năng sử dụng các tính năng đặc biệt đã nêu
Một vài hệ thống workflow cung cấp một ngôn ngữ định nghĩa workflowđược dùng để định nghĩa workflow, ngôn ngữ ánh xạ các mô hình quy trình bêndưới Ví dụ như Flow Definition Language (FDL) được sử dụng bởi MQSeriesWorkflow của IBM, và Workflow Process Definition Language (WPDL) được đềxuất bởi Workflow Management Coalition Các hệ thống workflow khác cung cấpmột trình biên tập quy trình bằng đồ họa Cách tiếp cận này cho phép người dùngxây dựng quy trình bằng cách kéo thả, nối và cấu hình các khối xây dựng quy trìnhbằng chuột Thực chất bên trong là trình soạn thảo quy trình dịch sự biểu diến đồhọa thành ngôn ngữ hay định dạng trong được hiểu bởi hệ thống workflow
3.2 Workflow, hệ điều hành và các hệ xử lý theo lô
Có nhiều hệ thống xử lý các công việc, quản lý tài nguyên và lập lịch Ví dụ,
hệ điều hành xử lý các tiến trình Tương tự, các hệ thống dùng chung tải quản lýcông việc theo lô và việc thực thi các chương trình không cần sự can thiệp củangười dùng Vì vậy, liệu workflow có phải là một hệ điều hành chạy trong môitrường người dùng hay một hệ thống xử lý theo lô được đề cao với một hệ soạnthảo đồ họa? Các hệ workflow chạy trong thời gian dài Ví dụ một quy trình xử lýcác hóa đơn thế chấp được hoạt động hàng năm Trên thực tế, đặc điểm đó là mộttrong những lý do vì sao các hệ thống workflow ghi chép sự tiến hóa của quy trìnhvào một kho an toàn Người dùng workflow không đủ khả năng nới lỏng trongtrường hợp hỏng phần cứng Thêm vào đó, với các quy trình chậm, workflow cũng
xử lý các hoạt động của quy trình chậm Ví dụ người đứng đầu các sở giao dịch chovay của một ứng dụng thế chấp có thể yêu cầu vài ngày để đánh giá một yêu cầu thếchấp
Trang 27Các hệ điều hành cũng giải quyết vấn đề quản lý quy trình và lập lịch tàinguyên Trên thực tế, dựa vào tính tương tự giữa các hệ điều hành và các hệworkflow, đôi khi workflow được đề cập đến như là các hệ điều hành ứng dụng.Tuy nhiên, các hệ điều hành có thời gian xử lý khác so với workflow So sánh vớiworkflow, thời gian xử lý của các hệ điều hành là rất ngắn Các hoạt động củachúng (ví dụ các chương trình của người dùng) cũng thực thi nhanh hơn các hoạtđộng của workflow Ngoài ra, trong khi các hệ điều hành tiêu biểu cung cấp cácthông tin về các tiến trình đang chạy, chúng không cung cấp các đặc điểm riêng củaworkflow như lịch sử thực thi hay những can thiệp bằng tay.
Các hệ thống xử lý theo lô quản lý các tiến trình thực hiện không cần thôngtin vào Mỗi lô công việc yêu cầu truy cập một tập các nguồn tài nguyên dùngchung Một hệ thống dùng chung tải (load share system) cung cấp điều khiển truyxuất các tài nguyên dùng chung và đảm bảo rằng mỗi công việc cần có được các tàinguyên cầu thiết để chạy Đặc biệt, các hệ thống này không yêu cầu tương tác củangười dùng và chạy không cần giám sát
Tóm lại, workflow, hệ điều hành và hệ xử lý theo lô có các đặc điểm thờigian xử lý khác nhau Tại một đầu của phổ thời gian, workflow tiêu biểu có thờigian chạy đến hàng ngày, hàng tuần, hàng tháng thậm chí hàng năm Tại đầu kia,các hệ điều hành xử lý các tác vụ trong vài phút Giữa hai thái cực đó, các công việctheo lô có thời gian thực thi đến hàng giờ Hơn nữa, các tác vụ mà workflow xử lýbao gồm cả những công việc của con người còn các hệ điều hành, và các hệ xử lýtheo lô thực thi mà không cần tương tác với người dùng
Trang 28Hình 1: Thời gian xử lý của workflow, hệ điều hành, và các hệ xử lý
theo lô.
3.3 Workflow và những môi trường làm việc xác định
Các hệ thống quản lý luồng công việc điều phối các tác nhân của quy trình
để hướng tới mục tiêu quy trình thông thường Các tác nhân tiêu biểu của quy trìnhbao gồm các người dùng workflow và các ứng dụng cho phép workflow Lĩnh vựccủa công việc xác định là cung cấp các môi trường để mọi người làm việc cùngnhau trong một vấn đề chung Do đó, phải chăng workflow chỉ là một sự mở rộng
cử môi trường làm việc xác định mà con người được hỗ trợ bởi các phần mềm ứngdụng
Một ứng dụng dùng máy tính và các dịch vụ mạng để giúp đỡ một nhóm cáccông nhân kiểm soát công việc của họ được xem như là một phần mềm nhóm.Trong khi cả workflow và công việc xác định đều thuộc về phần mềm nhóm, chúngkhác nhau ở chỗ công việc mang tính cộng tác được thực thi như thế nào
Do đó, sự khác nhau cơ bản giữa hệ thống workflow và những môi trườngcông việc xác định nảy sinh từ mô hình xử lý được đặt trên tầng flow Một mô hình
xử lý rõ ràng đặc tả trình tự, sự phụ thuộc lẫn nhau giữa các hoạt động được thực thibởi tác nhân của nó trên tầng work Trong thời gian chạy, hệ thống quản lý tiếntrình công việc đảm bảo rằng các quy trình được thực thi theo đúng định nghĩa củachúng
Trang 29Hơn nữa, các hệ thống quản lý tiến trình công việc cũng phải hỗ trợ các kỹthuật đặc biệt cho phép tương tác với các phần mềm ứng dụng cũng như con người.Các ứng dụng mà yêu cầu một sự kết hợp giữa những công việc được thực hiện bởicon người và công việc được thực hiện bởi phần mềm chính là các hệ thốngworkflow Ngược lại, các môi trường cho các công việc cụ thể chỉ bao gồm conngười và vì vậy tập chung vào cung cấp một dãy rộng lớn các kỹ thuật đặc biệt đểtương tác người dùng máy tính.
3.4 Workflow và sự mô phỏng máy tính
Sự mô phỏng máy tính (computer simulation) là dùng phần mềm mô hình
của các khái niệm thế giới thực để mô hình các trạng thái thay đổi theo thời gian.Các bộ mô phỏng có tác dụng thu thập các số liệu thống kê về mô hình mà chúng
mô phỏng Workflow tương tự như sự mô phỏng trong đó quy trình mô tả hệ thốngworkflow thực thi là mô hình phần mềm thực tế diễn tả thế giới thực Tại thời điểmchạy, hệ thống quản lý luồng công việc ghi lại dữ liệu về cách mà mô hình quytrình bộc lộ ra tại thời điểm đó Vì vậy, phải chăng workflow chỉ là một sự môphỏng máy tính? Cả sự mô phỏng máy tính và workflow dùng phần mềm để môhình và thu thập thông tin về quá trình chạy của chúng Trên thực tế, điểm giốngnhau này thúc đẩy con người sử dụng workflow cho các thí nghiệm khoa học Các
hệ thống workflow khoa học giúp đỡ các nhà khoa học làm việc với các mô hìnhtính toán Chúng nắm giữ các hoạt động như lần vết, theo dõi và bám sát dữ liệutrong các thí nghiệm yêu cầu một lượng lớn dữ liệu
Tuy nhiên, sự khác nhau cơ bản giữa các bộ mô phỏng và các hệ thốngworkflow là ở mục đích sử dụng của chúng Sự mô phỏng máy tính giúp con ngườihiểu tình huống mô phỏng như là sự mô phỏng hữu ích trong quá trình thiết kế cáctrạng thái khi con người thăm dò các giải pháp Ngược lại, workflow cho phépngười dùng mô tả một thủ tục thực thi công việc, giúp đỡ quá trình điều phối vàthực thi các thủ tục và cung cấp thông tin về hành vi trong thời gian chạy của thủtục Thông thường con người sử dụng workflow để cài đặt các mô hình quy trìnhmà họ đã kiểm thử và làm việc theo sự mong chờ của họ Do đó, mô phỏng máytính được bổ sung các chức năng cung cấp bởi các hệ thống workflow Trên thực tế,
Trang 30một và hệ thống quản lý workflow bao gồm cả những khả năng mô tả tiến trình vìvậy người dùng có thể thẩm tra các quy trình trước khi họ cài đặt chúng.
Trang 31CHƯƠNG II NHỮNG CÔNG NGHỆ SỬ DỤNG
1 STRUTS
Trong thế giới của Java, Struts là một sự thể hiện của mô hình MVC mãnguồn mở được biết đến và được nói đến nhiều nhất Gần đây các thành viên thamgia phát triển Struts đã nâng cao chức năng lõi của Struts và cải thiện hỗ trợ Viewtrong mô hình MVC, hợp nhất với Tiles để tăng cường sự phát triển hướng thànhphần, tăng tính tái sử dụng lại, nâng cao tính thống nhất
Kiến trúc MVC bắt nguồn từ Smalltalk, đầu tiên nó được áp dụng để ánh xạđầu vào truyền thống, các xử lý và tác vụ ra với mô hình tương tác người dùng bằngđồ họa Tuy nhiên, dễ dàng liên hệ các khái niệm đó với lĩnh vực ứng dụng đa tầngphục vụ cho doanh nghiệp (multi-tier enterprise application)
Hình 1: Kiến trúc mô hình MVC
Cốt lõi của framework struts là một lớp điều khiển mềm dẻo dựa trên cáccông nghệ chuẩn như Java Servlets, JavaBeans, ResourceBundles, và XML cũngnhư các gói Jakarta Common khác nhau Struts khuyến khích các kiến trúc ứng
Trang 32dụng dựa trên mô hình tới tiếp cận, một sự thay đổi của mô hình thiết kế View-Controller (MVC) cổ điển.
Model-Struts cung cấp thành phần controller của chính nó và được tích hợp với các
kỹ thuật khác cung cấp model và view Với Model, struts có thể tương tác với các
kỹ thuật truy cập dữ liệu chuẩn như JDBC và EJB cũng như là hầu hết các gói củacác nhà cung cấp khác như Hibernate, iBATIS, hay Object Relational Bridge VớiView, Struts làm việc tốt với JavaServer Pages, bao gồm JSTL and JSF, cũng nhưVelocity Templates, XSLT, và các hệ thống trình diễn khác
Struts framework cung cấp một nền móng vô hình cho tất cả các ứng dụngweb chuyên nghiệp cần tồn tại lâu dài Struts giúp bạn tạo ra một môi trường pháttriển mở rộng cho ứng dụng của bạn, dựa trên việc công bố các chuẩn và các mẫuthiết kế đã được chứng minh
Hình 2: Mô hình framework Struts
Trang 332 HIBERNATE
2.1 Tổng quan về Hibernate
Hibernate là một dịch vụ các truy vấn cho các đối tượng và các quan hệ rấtmạnh và có hiệu năng cao cho ngôn ngữ lập trình Java Hibernate cho phép bạnphát triển các “persistent object” kế thừa các cách biểu diễn đối tượng thông thườngcủa Java như kết hợp, tính thừa kế, tính đa hình, tính kết cấu và Java collectionsframework Ngôn ngữ truy vấn Hibernate (HQL) được thiết kế như là một sự mởrộng nhỏ mang tính hướng đối tượng so với SQL, cung cấp một cầu nối tao nhãgiữa đối tượng và các thế giới quan hệ Ngày nay, Hibernate là giải pháp ORM phổbiến nhất của Java
Hibernate loại bỏ việc sử dụng việc tạo mã khi xây dựng và xử lý bytecode
(build-time code generation/bytecode processing) Để thay thế, quá trình ánh xạ và
sự tạo mã bytecode chạy thực được sử dụng và quá trình sinh mã SQL xảy ra tạithời điểm khởi động hệ thống Giải pháp đó đảm bảo rằng Hibernate không đụngchạm tới quá trình gỡ rối IDE ở trên và quá trình biên dịch gia tăng
Hibernate hỗ trợ tất cả các hệ thống quản trị cơ sở dữ liệu: Oracle, DB2,MySQL, PostgreSQL, Sybase, SAP DB, HypersonicSQL, Microsoft SQL Server,Informix, FrontBase, Ingres, Progress, Mckoi SQL, Pointbase and Interbase.Hibernate dễ dàng hỗ trợ thêm các hệ quản trị cơ sở dữ liệu khác thông qua các bộđiều khiển JDBC
Tất nhiên, Hibernate tích hợp một cách tao nhã (và không bị hạn chế) với tấtcả các server hỗ trợ ứng dụng J2EE và các web container phổ biến Hibernate được
hỗ trợ bởi các công cụ phát triển mã nguồn mở như Xdoclet, Middlegen vàAndroMDA
Trang 342.2 Kiến trúc của Hibernate
Hình 1: Kiến trúc Hibernate nhìn ở mức cao.
Hình trên biểu diễn cách mà Hibernate sử dụng CSDL và cấu hình dữ liệu đểcung cấp các dịch vụ tồn tại lâu dài (và các đối tượng tồn tại lâu dài) cho ứng dụng
Một vài cách nhìn chi tiết hơn về kiến trúc thời gian chạy của Hibernate sẽđược trình bày dưới đây Hibernate rất mềm dẻo và hỗ trợ một số phương pháp tiếpcận Chúng ta sẽ xem xét Hibernate ở hai thái cực khác nhau
Kiến trúc “lite” có ứng dụng cung cấp các kết nối JDBC của riêng nó và cácgiao dịch của riêng nó Cách tiếp cận này sử dụng một tập rất nhỏ các APIs củaHibernate
Trang 35Hình 2: Phương pháp tiếp cận “lite”
Kiến trúc “full cream” tách ứng dụng ra khỏi các giao diện lập trình ứngdụng JDBC/JTA và để Hibernate quan tâm tới các chi tiết cụ thể
Hình 3: Phương pháp tiếp cận “full cream”
Định nghĩa các đối tượng trong biểu đồ:
Trang 36SessionFactory (net.sf.hibernate.SessionFactory): một kho chứa các tuyến
an toàn (threadsafe) các phép ánh xạ đã được biên dịch và chúng không thể bị thaythế Một nhà máy cho các Session (phiên làm việc) Một khách hàng củaConnection-Provider Có thể nắm giữ một kho dữ liệu mà có thể được dùnglại giữa các giao dịch
Session (net.sf.hibernate.Session): một tuyến đơn (single-threaded), đối
tượng tồn tại trong thời gian ngắn, biểu diễn một trao đổi giữa ứng dụng và một khochứa tồn tại lâu dài, bao bọc một kết nối JDBC, là nơi sản xuất các Transaction(giao dịch) Nó nắm giữ một kho chứa các Persistent Object
Persistent Objects and Collections (các đối tượng tồn tại lâu dài): Tồn tại
trong thời gian ngắn, các đối tượng đơn tuyến chứa các trạng thái tồn tại lâu dài vàcác chức năng giao dịch Đó có thể là các JavaBean thông thường, điều đặc biệt là ởchỗ nó được kết hợp tức thời với chỉ một Session
Transient Objects and Collections (các đối tượng tồn tại trong thời gian ngắn): Các thể hiện của các lớp tồn tại lâu dài mà hiện tại không kết hợp với một
Session Có thể chúng vừa được tạo ra bởi ứng dụng và không tiếp tục tồn tạihay chúng được tạo ra bởi một Session khép kín (closed Session)
Transaction (net.sf.hibernate.Transaction) (giao dịch): một tuyến đơn, đối
tượng tồn tại trong thời gian ngắn và được sử dụng bởi ứng dụng để xác định rõ cáckhối công việc nguyên tố Tách ứng dụng ra khỏi JDBC, JTA hay giao dịchCORBA Một Session có thể có thể kéo dài qua vài Transaction
ConnectionProvider (net.sf.hibernate.connection.ConnectionProvider) (nhà cung cấp các kết nối): nơi sản xuất và là kho chứa các kết nối JDBC Tách
ứng dụng khỏi Datasource hay DriverManager Datasource hay DriverManagerkhông lộ ra với ứng dụng
TransactionFactory (net.sf.hibernate.TransactionFactory): Nơi sản xuất
các thể hiện của Transaction Các giao dịch này không lộ ra với ứng dụng.Trong kiến trúc “lite”, ứng dụng bỏ qua các giao diện lập trình ứng dụng
Trang 37Transaction/ TransactionFactory và ConnectionProvider để kếtnối trực tiếp với JTA hay JDBC.
2.3 Ngôn ngữ truy vấn Hibernate
Hibernate được trang bị một ngôn ngữ truy vấn vô cùng mạnh mẽ và trôngrất giống ngôn ngữ truy vấn SQL Nhưng đừng bị đánh lừa bởi cú pháp, HQL làngôn ngữ truy vấn hoàn toàn hướng đối tượng, hiểu các khái niệm như kế thừa, đahình và kết hợp Hibernate cũng có các mệnh đề truy vấn tương tự như ngôn ngữtruy vấn SQL
Mệnh đề form:
Câu lệnh truy vấn đơn giản nhất của Hibernate là form
Ví dụ from Cat: câu truy vấn này sẽ trả về tất cả các thể hiện của lớp Cat
Hầu hết bạn cần gán một bí danh nếu bạn muốn tham chiếu tới Cat trong phần kháccủa câu truy vấn
from Cat as cat: Câu truy vấn này gán bí danh cat cho các thể hiện của Catvì vậy chúng ta có thể sử dụng bí danh này trong phần sau của câu truy vấn Từkhoá as là tuỳ chọn, nghĩa là bạn có thể viết from Cat cat
Kết hợp và liên kết
Chúng ta cũng có thể gán các bí danh để kết hợp các thực thể hay thậm chítới các phần tử của một tập các giá trị sử dụng join
Ví dụ: from Cat as cat inner join cat.mate as mate
left outer join cat.kittens as kittenCác kiểu kết hợp được hỗ trợ bởi HQL cũng giống như ANSI SQL
inner join
left outer join
right outer join
full join (ít dùng)
Trang 38Hơn nữa, một kết hợp tìm nạp (fetch join) cho phép kết hợp hay tập hợp cácgiá trị được khởi tạo cùng với các đối tượng cha của chúng, sử dụng một lựa chọnđơn Điều này thực sự hữu ích trong trường hợp một tập hợp
from Cat as cat inner join fetch cat.mate left joinfetch cat.kittens
Một fetch join không cần thiết phải gán các bí danh bởi vì các đốitượng kết hợp sẽ không được dùng trong mệnh đề where (hay bất kỳ mệnh đề nàokhác) Ngoài ra các đối tượng kết hợp sẽ không được trả về trực tiếp trong kết quảcủa câu truy vấn Thay vào đó chúng có thể được truy xuất thông qua đối tượngcha
Cần nhớ rằng trong sự cài đặt hiện tại, chỉ có một tập vai trò có thể được tìmnạp trong một câu truy vấn Ngoài ra, fetch có thể không được sử dụng trong cáccâu truy vấn được gọi dùng scroll() hay iterate() Cuối cùng, fulljoin fetch và right join fetch là không có nghĩa
Mệnh đề Select
Mệnh đề select lựa chọn các đối tượng và các thuộc tính trong tập kết quảcủa câu truy vấn Ví dụ: select mate from Cat as cat inner joincat.mate as mate Câu truy vấn này sẽ lựa chọn các mate của các Cat khác.Thậm chí bạn có thể biểu diễn câu truy vấn trên một cách súc tích hơn như:select cat.mate from Cat cat
Hơn nữa bạn có thể lựa chọn một tập các phần tử bằng cách sử dụng chứcnăng đặc biệt elements Câu truy vấn sau sẽ trả về tất cả các kitten của bất kỳcat nào: select elements(cat.kittens) from Cat cat
Các hàm toàn thể
Các truy vấn có thể trả về các hàm tổng thể của các thuộc tính Ví dụ:
max(cat.weight), count(cat) from Cat cat
Trang 39Các tập hợp cũng có thể xuất hiện trong các hàm tổng thể trong mệnh đềselect:
select cat, count( elements(cat.kittens)) from Cat catgroup by cat
Các hàm tổng thể được Hibernate hỗ trợ là:
avg( ), sum( ), min( ), max( )
count(*)
count( ), count(distinct ), count(all )distinct và tất cả các từ khoá khác cũng được dùng và có cùng ngữ nghĩa nhưtrong SQL: select distinct cat.name from Cat cat
select count(distinct cat.name), count(cat) from Cat cat
Tính đa hình
Một truy vấn như: from Cat as cat trả về các thể hiện không chỉ củaCat mà còn của lớp con DomesticCat Các truy vấn Hibernate có thể đặt tên bất cứmột lớp hay giao diện Java nào trong mệnh đề form Truy vấn sẽ trả về tất cả cácthể hiện của tất cả các lớp persistent mà kế thừa lớp đó hay cài đặt giao diện đó
Mệnh đề where, order by, group by
Mệnh đề where cho phép bạn thu hẹp danh sách của các thể hiện trả về
Ví dụ: from Cat as cat where cat.name='Fritz' sẽ trả về các thểhiện của Cat mang tên 'Fritz' Còn select foo from Foo foo, Bar barwhere foo.startDate = bar.date sẽ trả về tất cả các thể hiện của Foomà tồn tại một thể hiện của Bar với thuộc tính date bằng thuộc tính startDatecủa Foo
Ngoài ra HQL còn hỗ trợ các mệnh đề như: order by, group by
Truy vấn con
Với những cơ sở dữ liệu mà có hỗ trợ các lựa chọn lồng nhau, Hibernate hỗtrợ các truy vấn con trong các truy vấn Một truy vấn con phải được bao quanh bởi
Trang 40các dấu ngoặc đơn (thường do một hàm toàn thể SQL gọi) Thậm chí các truy vấncon có quan hệ (truy vấn con tham chiếu đến một bí danh trong truy vấn outer)cũng được phép.
from Cat fatcat where fatcat.weight > (selectavg(cat.weight) from DomesticCat cat)
XML (eXtensible Markup Language) là một tập các luật cho phép địnhnghĩa các thẻ (tag) Các thẻ được định nghĩa dùng trong tài liệu XML tạo cấu trúccho tài liệu XML và HTML (Hypertext Markup Language) đều là ngôn ngữ đánhdấu và có nguồn gốc từ SGML (Standard Generalized Markup Language), mộtngôn ngữ đánh dấu có cấu trúc chặt chẽ và phức tạp được phát triển vào những năm
1960 Trong khi HTML là một tập các thẻ sử dụng để định dạng thì XML có thể tựđịnh nghĩa các thẻ và tự quyết định cấu trúc của tài liệu (tính tự mô tả) ChuẩnXML được công bố chỉ quy định về cấu trúc logic và không quy định tên các thẻ.Tên các thẻ được tự do định nghĩa đối với từng tài liệu XML cụ thể
Giống như SGML, XML là một meta-language (siêu ngôn ngữ) nên có khảnăng mô tả các ngôn ngữ mới Các ngôn ngữ mới được phái sinh bởi XML nhưXSL, XML Schema , cũng được công bố thành các chuẩn và được dùng bổ trợ vớitài liệu XML XML là ngôn ngữ đánh dấu cao cấp có khả năng định dạng dữ liệu cócấu trúc
Các đặc trưng cơ bản của XML:
XML là ngôn ngữ đánh dấu (markup) nên đơn giản, dễ viết Tên các thẻ dongười dùng tự định nghĩa Bản thân file XML là file văn bản nên không đòihỏi chương trình đặc biệt để soạn thảo
Có tính cấu trúc: cấu trúc của tài liệu XML được quy định nhờ DTD(Document Type Definition) hoặc schema (lược đồ) Nội dung, cú pháp vàkiểu dữ liệu của một lớp tài liệu XML được kiểm tra tính hợp lệ (validate)nhờ các DTD và schema quy định cấu trúc chính xác của lớp tài liệu đó