Đại diện cho một chuỗi các sự kiện thời gian. Nếu sự kiện thời gian được tính tốn từ các thể hiện thuộc tính thì sự kiện thời gian cĩ thể đươc thay đổi bằng cách gán giá trị mới cho các thuộc tính này. Kế hoạch cĩ thể được sửa đổi, hủy bỏ hoặc làm phát sinh một sự kiện thời gian khác. Kế hoạch cũng cĩ thể đại diện cho một rang buộc về thời gian bằng cách phát sinh một lỗi buộc các cơng việc hoặc quy trình liên quan phải bỏ dở.
Thể hiện kế hoạch được tạo từ sự định nghĩa kế hoạch. Thể hiện kế hoạch theo dấu sự kiện thời gian tiếp theo và kích hoạt tại một thời gian xác định.
Thể hiện kế hoạch tính tốn sự kiện thời gian tiếp theo dựa vào các đặc điểm sau:
• Giá trị của thể hiện thuộc tính cung cấp sự kiện thời gian tiếp theo.
• Giá trị của thuộc tính duration đựơc thêm vào thể hiện thời gian tại thời
điểm kế hoạch được tạo.
• Giá trị của thuộc tínhrepeat được thêm vào thể hiện thời gian hiện hành
Định nghĩa kế hoạch:
Name
Documentation
Process: Tên quy trình.
Code: Mã số lỗi. Duration Instant Reapeat Other: Các cơ chế khác. 2.2.8. Ngoại lệ (Exception):
Một quy trình phải cĩ khả năng phát hiện các điều kiện ngoại lệ nếu chúng được giao tiếp bởi các quy trình khác sử dụng các thơng điệp, báo hiệu bằng tín
Trang 35
hiệu, hoặc là kết quả của các cơng việc mà thất bại để hồn tất. Quy trình tác động trở lại các điều kiện ngoại lệ này sử dụng “exception process” và bộ kiểm sốt lỗi.
2.2.8.1. Quy trình ngoại lệ (Exception process):
Các biến cố ngoại lệ cĩ thể xẩy ra làm cho các cơng việc và quy trình khơng thể hồn tất thành cơng. Các biến cố ngoại lệ cĩ thể được phát sinh từ các thơng điệp vào, yêu cầu quy trình phải kết thúc tất cả các cơng việc và hồn tất ngay tức thì, hoặc từ một nguồn phát sinh một tín hiệu thơng báo điều kiện ngoại lệ. Exception process chỉ được khởi tạo một lần trong một thể hiện ngữ cảnh và chỉ đáp ứng cho một thơng điệp vào hoặc một tín hiệu được phát sinh. Khi nĩ được khởi tạo tất cả các cơng việc đang thực hiện trong ngữ cảnh đĩ bị kết thúc.
Exception process cắt ngang sự thực hiện của một cơng việc cha và buộc nĩ phải bỏ dở. Cơng việc định nghĩa các “exception process” cắt ngang nĩ trong một ngữ cảnh con. Sự cắt ngang chỉ cĩ thể xảy ra khi cơng việc đang ở trạng thái “active”
Định nghĩa “exception process” giống như định nghĩa “nested process”, với một số khác biệt sau:
• “Exception process” khơng hỗ trợ kiểu khởi tạo “activity”, và khơng thể
đuợc khởi tạo từ các loại cơng việc “call”,”spawn”. Thuộc tính tham số khơng được hỗ trợ.
• Bởi vì chỉ cĩ một “Exception process” được khởi tạo trong một thể hiện
ngữ cảnh, nên nĩ cĩ cùng định danh như quy trình cha. Thuộc tính “identity” khơng được hỗ trợ.
• “Exception process” khơng được đền bù. Thuộc tính “compensation” khơng
được hỗ trợ.
Một thể hiện “Exception process” tồn tại nếu thể hiện quy trình cha tồn tại. Thuộc tính “persistent” khơng được hỗ trợ.
2.2.8.2. Lỗi và kiểm sốt lỗi (Fault và Fault handler):
Một lỗi là một điều kiện sai mà ngăn một cơng việc kết thúc thành cơng, hoặc phục hồi từ một lỗi khác.
Trang 36
Nghiên cứu và xây dựng ứng dụng hỗ trợ vận hành tiến trình nghiệp vụ (BPML) trên mơi trường WEB
kiểm sốt lỗi (Fault handler). Kiểm sốt lỗi được thực hiện sau “exception process”. Điều này cho phép các cơng việc cha bỏ dở mà khơng để lại lỗi, thậm chí khi “exception process” để lại lỗi.
Khi tất cả các cơng việc trong thể hiện ngữ cảnh kết thúc hoặc bỏ dở, một kiểm sốt lỗi được thực hiện. Các kiểm sốt lỗi là một phần của định nghĩa ngữ cảnh, và thực hiện trong thể hiện ngữ cảnh nơi mà lỗi được phát sinh. Sau khi thực hiện xong kiểm sốt lỗi, cơng việc cha chuyển qua trạng thái “aborted”.
Cấu trúc kiểm sốt lỗi:
Name: Tên kiểm sốt lỗi.
Code: một hoặc nhiều mã lỗi.
Documentation: Tài liệu mơ tả.
Activities: một hoặc nhiều cơng việc (cĩ sắp thứ tự).
2.2.8.3. Chấm dứt cơng việc (Terminating activity):
Một cơng việc cĩ thể chấm dứt mà khộng ảnh hưởng đến các đối tượng khác chỉ khi nĩ đang ở trạng thái “ready”. Thực chất là cơng việc bị hủy bỏ (cancelled). Nếu cơng việc ở bất kỳ trạng thái nào khác thì nĩ khơng thể chấm dứt và phải kết thúc hoặc bỏ dở. Một thể hiện cơng việc chấm dứt bằng các chuyển qua trạng thái “aborting”, sau đĩ chuyển qua “aborted”.
Các cơng việc phức hợp cĩ thể chấm dứt khi đang ở trạng thái “ready” hoặc “active”. Ở trạng thái “active” chúng thực hiện các cơng việc được định nghĩa trong ngữ cảnh con và chấm dứt bằng cách phát ra lỗi “bpml:terminate” trong thể hiện ngữ cảnh đĩ. Kết quả là cơng việc phức hợp chuyển qua trạng thái “aborting” và kết thúc hoặc hồn thành tất cả các cơng việc đang thực hiện. Sau đĩ cơng việc phức hợp thực hiện một kiểm sốt lỗi, và cuối cùng chuyển qua trạng thái “aborted”.
2.2.8.4. Đền bù (Compensation):
Khi một cơng việc gặp một điều kiện ngoại lệ ngăn chúng hồn thành thì nên trả lại những gì nĩ đã làm trước khi bỏ dở. Nếu quy trình đã chiếm giữ các tài
Trang 37
Nghiên cứu và xây dựng ứng dụng hỗ trợ vận hành tiến trình nghiệp vụ (BPML) trên mơi trường WEB
các quy trình khác cĩ thể sử dụng. Nếu quy trình đã thực hiện cơng việc cĩ khả năng đảo ngược thì nên đảo ngược lại cơng việc đĩ.
Đền bù là sự phục hồi lại tất cả ảnh hưởng của một cơng việc đã hồn thành. Một quy trình đền bù (Compensation process) là một quy trình được định nghĩa như một phần của quy trình cha với mục đích thực hiện sự đền bù. Quy trình đền bù chỉ cĩ thể được khởi tạo khi thể hiện quy trình cha hồn tất. Nếu quy trình cha thất bại để hồn tất thì dùng kiểm sốt lỗi để phục hồi và đền bù. Trong kiểm sốt lỗi cĩ thể chứa các quy trình đền bù của bất kỳ quy trình nào mà nĩ được khởi tạo.
Định nghĩa quy trình đền bù giống định nghĩa quy trình lưới (nested process), với một số khác biệt sau:
• Thêm hai thuộc tính “instant”, “duration”.
• Vì chỉ cĩ một quy trình đền bù cĩ thể được tạo thể hiện từ một thể hiện quy
trình cha, nên nĩ cĩ cùng định danh như quy trình cha. Thuộc tính “indentity” khơng được hỗ trợ.
• Quy trình đền bù khơng thể được đền bù. Thuộc tính “compensation”
khơng được hỗ trợ.
• Một thể hiện quy trình đền bù tồn tại nếu thể hiện quy trình cha tồn tại.
Thuộc tính “persistent” khơng được hỗ trợ. 2.2.9. Giao tác (Transaction):
2.2.9.1. Cơng việc nguyên tố (Atomic activity):
Một cơng việc nguyên tố là một cơng việc thực hiện như một đơn vị cơng việc riêng lẻ. Một cơng việc nguyên tố đảm bảo rằng các cơng việc khác sẽ khơng thấy kết quả từng phần trong khi cơng việc đang thực hiện, chỉ thấy được kết quả sau khi cơng việc thực hiện xong.
Hầu hết các cơng việc đơn là cơng việc nguyên tố. Một số ngoại lệ là loại cơng việc:call,compensate,action khi thuộc tính“activities” được xác định.
2.2.9.2. Persistent process: Trang 38
Nghiên cứu và xây dựng ứng dụng hỗ trợ vận hành tiến trình nghiệp vụ (BPML) trên mơi trường WEB
mơi trường phục hồi sự cố (do các điều kiện ngoại cảnh ví dụ : hệ thống bị dừng do mất điện…). Khi hệ thống bị dừng xẩy ra, thì cơng việc phải cho phép thực hiện tiếp ở trạng thái đã tồn tại rồi (thực hiện tiếp cơng việc mà cơng việc đã làm rồi trước khi sự cố xẩy ra). “Persistence” được định nghĩa như là khả năng gọi lại một thể hiện quy trình đã tồn tại sau khi hệ thống bị dừng.
Một thể hiện “persistent process” được định nghĩa như là trạng thái của thể hiện quy trình tồn tại sau sự thực hiện của các cơng việc nguyên tố. Thể hiện quy trình phải gọi lại tất cả các cơng việc nguyên tố đã hồn thành hay bỏ dở.
Sự thực thi BPML cung cấp mơi trường phục hồi sự cố cho việc thực hiện các quy trình bằng cách thực hiện hai cơ chế phục hồi “backward” và “forward”.
• Forward: Là khả năng gọi các thể hiện quy trình sau khi hệ thống thất bại, đưa chúng trở về trạng thái tồn tại và tiếp tục thực hiện chúng.
• Backward: Là khả năng hủy bỏ một cơng việc nguyên tố mà chưa hồn thành hoặc bỏ dở trước khi hệ thống xảy ra sự cố.
2.2.9.3. Giao tác (Transaction):
Các phương thức giao tác cho phép hai quy trình tương tác với nhau thơng qua trao đổi thơng điệp để phối hợp cùng hồn thành cơng việc của chúng. Cĩ hai loại giao tác: atomic transaction, open nested transaction.
• Atomic transaction: Cho phép hai hệ thống thực hiện các cơng việc
nguyên tố trong một ngữ cảnh nguyên tố dùng chung, do đĩ cả hai cơng việc hồn thành và bỏ dở cùng nhau. Đầu ra của giao tác là sự kết hợp của tất cả các đầu ra của tất cả các cơng việc thực hiện như một phần của ngữ cảnh của giao tác. Đầu ra của giao tác thành cơng nếu tất cả các đầu ra của các cơng việc thành cơng, thất bại nếu bất kỳ cơng việc nào khơng thể kết thúc hoặc trạng thái của cơng việc đĩ khơng thể xác định được.
Ngữ cảnh giao tác được xác định trước khi thực hiện cơng việc đầu tiên trong giao tác. Ngữ cảnh giao tác được kết nối như một phần của trao đổi thơng điệp để chỉ rằng các cơng việc phải thực hiện như một phần của giao tác đĩ.
Trang 39
Nghiên cứu và xây dựng ứng dụng hỗ trợ vận hành tiến trình nghiệp vụ (BPML) trên mơi trường WEB
thành cho đến khi các đầu ra của giao tác được xác định. Chúng vẫn giữ nguyên trạng thái “completing”, chờ một giải pháp cho đầu ra của giao tác. Sau khi đầu ra giao tác được xác định (thành cơng) thì cơng việc chuyển qua trạng thái “completed”.
• Open nested transaction: Các cơng việc khơng phải nguyên tố cần phối hợp với nhau sử dụng “open nested transaction”. Trong khi “atomic transaction” được sủ dụng cho các giao tác ngắn, thì “open nested transaction” thích hợp cho cả giao tác ngắn và dài. Một “open nested transaction” cĩ thể bao gồm các cơng việc thực hiện tương tác yêu cầu/ trả lời (request/response) sử dụng các hành động đồng bộ hĩa, và các cơng việc thực hiện qua một thời gian dài.
Một “open nested transaction” cĩ thể bao gồm sự thực thi của một hoặc nhiều “open nested transaction” và “atomic transaction”.
Các cơng việc khơng là nguyên tố giao tiếp với ngữ cảnh giao tác và đầu ra giao tác giống như cách giao tiếp của cơng việc nguyên tố.
2.2.10.Hàm (Function):
Đặc tả BPML cung cấp một số hàm cần thiết cho việc định nghĩa quy trình cĩ khả năng thực thi. Một định nghĩa quy trình cĩ thể sử dụng bất kỳ hàm nào trong mơ tả quy trình.
Cấu trúc chung:
returnType funcName(paramType paramName,…) BPML phân chia làm hai loại hàm chính:
• Generic: Tập hợp các hàm dùng để tương tác với các thơng tin tổng quát như: thời gian, định danh…
• Instances: Dùng để tương tác với các thơng tin của thể hiện cơng việc
trong quá trình thực hiện của cơng việc, ví dụ: thơng tin trạng thái.
2.3.Ngơnngữmơhình hĩaeXPDL:
2.3.1. Giới thiệu:
Trang 40
Nghiên cứu và xây dựng ứng dụng hỗ trợ vận hành tiến trình nghiệp vụ (BPML) trên mơi trường WEB
hai sinh viên Trần Đăng Khoa và Phạm Minh Tuấn, sinh viên trường Đại học Khoa học Tự nhiên, đã nghiên cứu và đề xuất ngơn ngữ mơ hình hĩa eXPDL.7
eXPDL quan tâm đặc biệt đến việc mơ hình hĩa các quy trình trong thực tế, khơng quan tâm đến “siêu mơ hình” (meta - model). Ngơn ngữ XPDL là ngơn ngữ mơ hình hĩa hướng luồng cơng việc với khả năng vận hành và tính chuẩn hĩa luồng cơng việc rất cao. Ngơn ngữ BPML là ngơn ngữ xem xét quy trình dưới dạng cấu trúc điều khiển, nĩ cĩ tính biểu đạt và tính hình thức rất cao. eXPDL là sự kết hợp của XPDL và BPML. Tuy nhiên eXPDL được xây dựng chủ yếu dựa vào XPDL cĩ kết hợp bổ sung các khái niệm mới của BPML để tăng tính diễn đạt.
2.3.2. Những cải tiến của eXPDL so với XPDL và BPML:
Phần này đã được trình bày chi tiết trong luận văn cử nhân tin học của Trần Đăng Khoa và Phạm Minh Tuấn. Dưới đây chúng em xin tĩm tắt lại một số ý chính:
2.3.2.1. Loại bỏ sự nhập nhằng giữa các hoạt động và các cổng điều khiển:
• XPDL: Đồng nhất các cổng điều khiển với các hoạt động.
• BPML: Các cổng điều khiển khơng được định nghĩa, mà việc điều
khiển các luồng cơng việc thơng qua các hoạt động chuẩn (được định nghĩa như các khối cấu trúc (while,switch,all, choice,…).
• eXPDL: Định nghĩa thêm đối tượng Gateway. Gateway làm nhiệm vụ thể hiện ngữ nghĩa đồng bộ hĩa giữa các luồng cơng việc trong quy trình. Cĩ thể chia Gateway thành 4 loại cơ bản : AND, OR, XOR, COMPLEX.
2.3.2.2. Hỗ trợ mơ tả các tiến trình thuộc loại Ad – Hoc:
Tiến trình loại AdHoc là các tiến trình bên trong nĩ các hoạt động khơng được quy định thứ tự thực hiện . Tất cả các hoạt động này sẽ được thực hiện tùy ý cho
7Tìm hiểu XPDL và xây dựng ứng dụng minh hoạ,Trần Đăng Khoa và Phạm Minh Tuấn, Luận văn cử nhân tin học, Tp.HCM 2004.
Trang 41
Nghiên cứu và xây dựng ứng dụng hỗ trợ vận hành tiến trình nghiệp vụ (BPML) trên mơi trường WEB
khơng cĩ 2 hoạt động nào được tiến hành song song cùng lúc. Đây là tiến trình thuộc về mẫu “đường vào song song” (Interleaved Parallel Routing).
• XPDL: Định nghĩa hai loại cổng là Split và Join nhưng khơng đủ ngữ nghĩa thể hiện cho Ad - Học.
• BPML: Khơng cĩ cơ chế trực tiếp hỗ trợ mẫu này.
• eXPDL: Cung cấp thuộc tính để chỉ ra tiến trình thuộc loại Ad - Học.
2.3.2.3. Hỗ trợ mơ tả các hoạt động đa thể hiện: Cĩ 4 mẫu hoạt động đa thể hiện:
• Mẫu đa thể hiện khơng đồng bộ
• Mẫu đa thể hiện biết thơng tin ở thời điểm thiết kế
• Mẫu đa thể hiện biết trước thơng tin ở thời điểm thực thi
• Mẫu đa thể hiện khơng biết trước thơng tin.
• XPDL: chỉ thể hiện được mẫu đa thể hiện khơng đồng bộ và mẫu đa thể hiện biết thơng tin ở thời điểm thiết kế.
• BPML: hỗ trợ được tất cả các mẫu đa thể hiện thơng qua việc sử dụng các hoạt động điều khiển.
• eXPDL: Cung cấp các thuộc tính hỗ trợ cho việc thể hiện của mẫu đa thể hiện trong các tác vụ và các tiến trình con.
2.3.2.4. Bổ sung các sự kiện vào mơ hình nghiệp vụ:
• XPDL: Khơng hỗ trợ cơ chế đĩn bắt sự kiện giữa các hoạt động thành phần với nhau.
• BPML: cho phép mơ tả cơ chế này ở mức độ tương đối thơng qua các tín hiệu (signal).
• eXPDL: Cung cấp 3 loại sự kiện chính:
- Cácsựkiệnkíchhoạttiếntrình:StartEvents
- Cácsựkiệnkếtthúctiếntrình :End Events
Trang 42
Nghiên cứu và xây dựng ứng dụng hỗ trợ vận hành tiến trình nghiệp vụ (BPML) trên mơi trường WEB
Events.
2.3.2.5. Hỗ trợ mơ tả cơ chế giao tác của hoạt động nghiệp vụ:
• XPDL: Khơng hỗ trợ việc định nghĩa các hoạt động mang tính giao tác.
• BPML: Cĩ khả năng định nghĩa giao tác.
• eXPDL: Hỗ trợ thơng qua thuộc tính Transaction của các tiến trình con và các sự kiện Cancel bên trong tiến trình con này.
2.3.2.6. Hỗ trợ mơ tả cơ chế giải quyết đền bù:
eXPDL cung cấp cơ chế giải quyết đền bù thơng qua các sự kiện Intermediate Event loại Compensation hoặc các End Event loại Compensation.
2.3.2.7. Hỗ trợ mơ tả cơ chế phát sinh và giải quyết lỗi:
• XPDL: Khơng đủ ngữ nghĩa mơ tả cơ chế này.
• BPML: Hỗ trợ mơ tả cơ chế này.