BPML định nghĩa tất cả 17 loại Activity và 3 loại Process. Tất cả các loại Activity đều được xuất phát từ một loại cơ bản thơng dụng (common base type) sau. Các thuộc tính của loại cơ bản:
- name: Tên cơng việc
- documentation: Tài liệu mơ tả cơng việc.
- other: Các thuộc tính khác định nghĩa cho 1 loại Activity cụ thể. 2.2.2.3. Ngữ cảnh cơng việc (The activity context):
5
Business Process Modeling Language, 13/11/2002, Assaf Arkin, Intalio
6
IEEE Workshop on advanced issues of e-commerce and web-based information system, 26-28/6/2002, Newport Beach, California.
Trang 23
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 cơng việc mà thực hiện trong cùng ngữ cảnh sử dụng ngữ cảnh để trao đổi thơng tin thơng qua thuộc tính được định nghĩa trong ngữ cảnh. Ví dụ, một cơng việc nhận vào một thơng điệp thiết lập các giá trị cho một thuộc tính từ nội dung của thơng điệp. Một chuỗi tuần tự con các cơng việc sử dụng giá trị của thuộc tính
vừa được tạo để tạo và gửi một thơng điệp ra.
Ngữ cảnh định nghĩa tính chất thơng dụng cho tất cả các cơng việc trong ngữ cảnh đĩ, ví dụ bắt các điều kiện và lỗi ngoại lệ, cung cấp các ngữ nghĩa nguyên tố, định nghĩa rang buộc thời gian…
Các cơng việc và ngữ cảnh được xây dựng theo kiểu phân cấp. Ngữ cảnh hiện tại của cơng việc này cĩ thể là ngữ cảnh con của một vài ngữ cảnh khác, và cũng cĩ thể là “cha” của nhiều ngữ cảnh con khác.
2.2.2.4. Cơng việc đơn giản và cơng việc phức hợp (simple andcomplex activity): complex activity):
Ø Cơngviệc đơngiản(Simple activity): là một con việc mà khơng thể phân rã nhỏ hơn. Các loại cơng việc đơn giản được định nghĩa trong BPML:
o Action: Thực hiện hoặc gọi một hành động liên quan đến trao đổi các thơng điệp vào và ra.
o Assign: Gán một giá trị mới cho thuộc tính.
o Call: Tạo mới một quy trình và chờ cho quy trình hồn tất.
o Compensate: Gọi thực hiện đền bù (compensation) cho các quy trình đã được đặt tên.
o Delay: Diễn tả sự trơi đi của thời gian.
o Emty: Khơng làm gì hết.
o Fault: Phát ra lỗi trong ngữ cảnh hiện tại.
o Raise: Phát sinh một tín hiệu.
o Spawn: Khởi tạo một quy trình nhưng khơng chờ cho quy trình hồn
tất.
o Synch: Đồng bộ hĩa trên một tín hiệu
Trang 24
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ơng việc phức hợp (Complex activity): Là sự kết hợp của một hoặc
nhiều cơng việc. Các cơng việc cĩ thể là đơn giản hoặc phức hợp. Một cơng việc phức hợp chức một tập một hoặc nhiều cơng việc và hướng trực tiếp đến sự thực hiện của các cơng việc từ một trong các tập cơng việc này.
Các loại cơng việc phức hợp được định nghĩa trong BPML:
o All: Thực hiện các cơng việc song song.
o Choice: Thực hiện các cơng việc từ một trong tập các cơng việc, được chọn thực hiện để đáp ứng cho một sự kiện.
o Foreach: Thực hiện các cơng việc một lần cho mỗi cơng việc trong
danh sách các cơng việc.
o Sequence: Thực hiện các cơng việc theo thứ tự tuần tự.
o Switch: Thực hiện các cơng việc từ một trong tập các cơng việc, được chọn dựa vào giá trị đúng của điều kiện.
o Until: Thực hiện các cơng việc một hoặc nhiều lần dựa vào giá trị đúng của điều kiện.
o While: Thực hiện các cơng việc khơng hoặc nhiều lần dựa vào giá trị
đúng của điều kiện.
2.2.2.5. Thể hiện cơng việc (Activity instance):
Sự định nghĩa cơng việc chỉ rõ một thể hiện cơng việc sẽ được thực hiện như thế nào. Nhiều thể hiện của cơng việc đĩ cĩ thể được thực hiện song song. Mặc dù các thể hiện này được khởi tạo từ cùng một định nghĩa cơng việc, chúng là khác nhau và khơng cĩ liên quan trực tiếp với nhau.
Cáctrạngtháicủamộtthểhiệncơngviệc:
o Ready: Thể hiện cơng việc chưa thực hiện bất kỳ cơng việc nào. Ở trạng thái này chúng ta cĩ thể thực hiện bỏ qua cơng việc, khi đĩ nĩ chuyển qua “Cancelled” (tức là cơng việc bị hủy bỏ).
o Active: Thể hiện cơng việc đang thực hiện cơng việc cụ thể theo định nghĩa của nĩ.
Trang 25
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
o Completing: Thể hiện cơng việc đã thực hiện tất cả các cơng việc mà nĩ được định nghĩa, và bây giờ đang thực hiện tất cả các cơng việc được yêu cầu để hồn tất.
cầu để hồn tất.
o Aborting: Thể hiện cơng việc khơng thể hồn tất cơng việc được định
nghĩa và đang thực hiện tất cả các cơng việc được yêu cầu để bỏ qua (kết thúc thất bại). Một số cơng việc mà thể hiện cơng việc phải thực hiện khi ở trạng thái này: kiểm sốt lỗi, kết thúc giao tác, thực hiện đền bù…
o Aborted: Thể hiện cơng việc đã thực hiện tất cả các cơng việc được yêu cầu để bỏ qua.
Sơ đồ chuyển đổi trạng thái:
Hình3SơđồchuyểnđổitrạngtháithểhiệncơngviệctrongBPML
2.2.3. Quy trình (Process):
Quy trình là một loại cơng việc phức hợp mà định nghĩa trong nĩ ngữ cảnh cho sự thực thi. Quy trình bao gồm nhiều cơng việc và hướng trực tiếp đến sự thực thi của các cơng việc này. Quy trình cĩ thể xem như là một cơng việc của một quy trình lớn hơn. Quy trình thường được định nghĩa như một đơn vị cĩ tính tái sử dụng của cơng việc.
2.2.3.1. Sự khởi tạo quy trình:
Tuỳ theo định nghĩa quy trình mà chúng ta cĩ ba cách khởi tạo sau:
Trang 26
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
Ø Activity: Các cơng việc loạicall,compensate, vàspawn được dùng để khởi tạo định nghĩa quy trình mà cĩ sự thể hiện loạiactivity. Các quy trình đang khởi tạo và đã khởi tạo phải ở cùng ngữ cảnh hoặc các ngữ cảnh liên quan. Định nghĩa quy trình đang khởi tạo phụ thuộc vào quy trình đã khởi tạo.
Hai quy trình này gắn kết chặt chẽ với nhau.
Ø Message: Một quy trình được khởi tạo để trả lời cho một thơng điệp đầu vào cĩ thể được triển khai như một dịch vụ độc lập và cĩ thể được khởi tạo từ các tiến trình được triển khai trong các hệ thống khác hoặc trong các hệ thống mạng. Các quy trình như vậy khơng gắn kết chặt chẽ với nhau và cĩ thể được triển khai và thực hiện trong mơi trường khơng thống nhất suy ra độc lập từ những quy trình khác. Tất cả các cơng việc phát sinh sự kiện phải là “actionactivities”.
Ø Signal: Một quy trình được khởi tạo để đáp ứng cho việc phát sinh một tín hiệu chỉ cĩ thể được khởi tạo trong ngữ cảnh của đối tượng. Một quy trình lưới (nested process) cĩ thể đáp ứng một tín hiệu được phát sinh bởi các cơng việc khác đang mà thực thi trong cùng ngữ cảnh. Hình thức khởi tạo này chỉ được thực hiện đối với các quy trình được định nghĩa như một phần của quy trình khác lớn hơn, ví dụ như nested processes và exception processes. Tất cả các cơng việc phát sinh sự kiện phải là “synch activities”. Bảng so sánh ba cách khởi tạo tiến trình: để tiện cho việc tham khảo chúng em xin giữ nguyên bảng so sánh gốc bằng tiếng anh.
Instantation Definition Inputs Instantiating
activity
Activity No event Parameter Call,compensate,
spawn,schedule
Message Event activity=a
Action name=a Receive
messageA Send messageA
Trang 27
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
messageA
Message Event activity=a b
Exclusive=true
Action name=a eceive messgeA
A ction name=b
Receive messageB Event activity=a b Exclusive=false Action name=a Receive messgeA Action name=b Receive messageB messageA or messageB messageA and messageB Send messageA or messageB Send messageA and messageB
Signal Event activity=a
Synch name=a signalA condA
Signal Event activity=a b
Exclusive= true Synch name=a signalA condA synch name=b signalB condB
signalA Raise signalA
signalA or signalB Raise signalA or signalB
Signal Event activity=a b
Exclusive= false
signalA and signalB
Raise signalA and signalB
Synch name=a signalA condA synch name=b signalB condB
Bảng1Bảnsosánhcácloạikhởitạoquytrình
Trang 28
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
Nếu quy trình khơng được định nghĩa để tương tác với các cơng việc khác đang thực hiện trong cùng ngữ cảnh, hoặc khơng được khởi tạo bởi quy trình khác được định nghĩa trong cùng ngữ cảnh thì định nghĩa nên được khởi tạo theo loại “message”.
2.2.3.2. Nested process:
process được dùng như một cơng việc trong một quy trình lớn hơn, để cục bộ hĩa sự định nghĩa quy trình trong ngữ cảnh mà nĩ được sử dụng, và để ràng buộc sự khởi tạo và cĩ giá trị của quy trình đối với ngữ cảnh cụ thể.
Nested process được khởi tạo trong ngữ cảnh mà nĩ được định nghĩa, cĩ thể truy cập các thuộc tính được định nghĩa trong ngữ cảnh đĩ, khởi tạo các quy trình khác mà được định nghĩa trong ngữ cảnh đĩ, sử dụng tín hiệu để tương tác với các cơng việc khác được định nghĩa trong cùng ngữ cảnh, và sử dụng các quy trình ngoại lệ (exception processes) và bắt lỗi (fault handler) được định nghĩa bởi ngữ cảnh.
Một “top– level process” là một định nghĩa quy trình mà khơng áp dụng cục bộ cho bất kỳ ngữ cảnh cụ thể nào, nĩ được định nghĩa tại cấp độ gĩi (package level) và khơng chia ngữ cảnh của nĩ với các “top – level process” khác. “Top – level process” cĩ thể được khởi tạo bất kỳ lúc nào. “Top – level process” khơng sử dụng loại khởi tạo “signalactivity”.
“Exception process” là một loại nested process đặc biệt. Khi “exception
process” được khởi tạo thì nĩ buộc cơng việc cha phải huỷ bỏ. Trong khi đĩ “nested process” cĩ thể được khởi tạo nhiều lần trong một ngữ cảnh đối tượng, chỉ duy nhất một “exception process” được khởi tạo trong một ngữ cảnh đối tượng cho trước.
“Compensation process” là một dạng “nested process” đặc biệt khác. Một
“compensation process” được khởi tạo sau khi thể hiện quy trình cha hồn tất để đền bù cho bất kỳ cơng việc nào mà nĩ đã thực hiện. “Compensation process” chỉ
Trang 29
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 khởi tạo nếu thể hiện quy trình cha đã hồn tất và cĩ thể được khởi tạo duy nhất một lần.
2.2.3.3. Định nghĩa quy trình (process definition): Bao gồm các thuộc tính sau:
Name :tên quy trình.
Documentation: tài liệu mơ tả quy trình.
Identity: Một hoặc nhiều tên định danh.
Persistent: thuộc tính sự liên tục.
Event: sự kiện khởi tạo.
Paranmeters: khơng cĩ hoặc cĩ nhiều tham số đầu vào.
Activityset: một tập các cơng việc.
Compensation: compensation process.
2.2.3.4. Tham số (parameter): Bao gồm các thuộc tính sau:
Name: tên tham số.
Direction: input, output.
Requyre: true nế được yêu cầu, mặc định là false.
Code: mã số lỗi (chỉ dành cho output).
Thuộc tínhdirection xác định tham số là tham số vào hay tham số ra.
• Input: Khi một quy trình được khởi tạo, một giá trị đầu vào của tham số được gắn cho một thuộc tính đã được đặt tên trong quy trình.
• Output: Khi một tiến trình hồn thành hay bỏ dở (abort), giá trị của thuộc tính thể hiện quy trình được sử dụng như một giá trị ra cho tham số.
2.2.3.5. Định danh quy trình (process indentity):
Định danh quy trình phục vụ như một phương tiện để xác định một thể hiện quy trình cụ thể từ một tập hợp các thể hiện quy trình được khởi tạo từ cùng một định nghĩa. Nĩ cũng xác định các thể hiện quy trình liên quan trong một tập hợp các thể hiện được khởi tạo từ các định nghĩa khác nhau.
Cấu trúc định danh
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
Name: tên định danh
Properties: một hoặc nhiều thuộc tính.
Documentation: tài liệu mơ tả. 2.2.4. Ngữ cảnh (Context):
Ngữ cảnh định nghĩa một mơi trường cho việc thực thi các cơng việc liên quan. Các cơng việc thực thi trong cùng ngữ cảnh sử dụng ngữ cảnh cho việc trao đổi thơng tin và phối hợp hoạt động. Một cơng việc cĩ thể truy cập và sửa đổi giá trị của thuộc tính được định nghĩa trong ngữ cảnh, khởi tạo một “nested process”, phát và đồng bộ hĩa tín hiệu…
Ngữ cảnh định nghĩa các thuộc tính thơng dụng cho tất cả các cơng việc đang thực hiện trong nĩ.Nĩ định nghĩa các điều kiện ngoại lệ và lỗi được quản lý như thế nào, cung cấp các ngữ nghĩa nguyên tố cho việc truy xuất thuộc tính và trao đổi thơng điệp…
Một định nghĩa ngữ cảnh chứa các định nghĩa cục bộ (local definitions) cho các thực thể mà chỉ cĩ thể truy cập trong ngữ cảng đĩ. Định nghĩa ngữ cảnh cĩ thể được kế thừa.
Cĩ hai loại ngữ cảnh: Current context và Process context.
• Currentcontext: Là ngữ cảnh mà trong đĩ một cơng việc được định nghĩa,
bao gồm ngữ cảnh chứa định nghĩa cơng việc và tất cả các ngữ cảnh cha.
• Process context: Là ngữ cảnh được dùng chung cho tất cả các cơng việc thực hiện như một phần của định nghĩa quy trình. Ngữ cảnh này phục vụ như là ngữ cảnh cha cho ngữ cảnh của nested và exception process.
Ngữ cảnh tiến trình của “top – level process” được gọi là root context, vì nĩ khơng là ngữ cảnh con của bất kỳ ngữ cảnh cha nào.
Các thể hiện ngữ cảnh được khởi tạo từ cùng định nghĩa ngữ cảnh là khác nhau và khơng dùng chung bất kỳ thể hiện nào của định nghĩa cục bộ. Đặc biệt, hai thể hiện “top – level process” khơng dùng chung bất kỳ thể hiện thuộc tính , thể hiện cơng việc và thể hiện của “nested process”.
2.2.4.1. Định nghĩa cục bộ (Local definition): bao gồm 6 loại sau: Trang 31
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
• Exception: Định nghĩa một “exception process” cục bộ đối với ngữ cảnh để đảm bảo các quy trình chỉ đáp ứng các sự kiện từ thể hiện của ngữ cảnh đĩ, và tất cả các sự kiện dừng tất cả các cơng việc đang thực hiện trong thể hiện ngữ cảnh đĩ.
• Process: Định nghĩa một quy trình cục bộ đối với ngữ cảnh để đảm bảo các quy trình chỉ cĩ thể được khởi tạo trong thể hiện của ngữ cảnh đĩ.
• Property: Định nghĩa một thuộc tính cục bộ trong ngữ cảnh để đảm bảo giá trị của thể hiện thuộc tính chỉ cĩ thể được truy cập và sửa đổi từ các cơng việc đang thực hiện trong thể hiện của ngữ cảnh đĩ. Nĩ được dùng để giới hạn quyền truy cập đối với thuộc tính.
• Schedule: Định nghĩa một kế hoạch cục bộ trong ngữ cảnh để đảm bảo kế hoạch sẽ phát sinh các sự kiện thời gian trong khi các cơng việc đang thực hiện trong thể hiện của ngữ cảnh.
• Signal: Định nghĩa một tín hiệu cục bộ trong ngữ cảnh để đảm bảo tín hiệu chỉ cĩ thể được phát sinh và được đồng bộ hĩa bởi các cơng việc đang thực hiện trong thể hiện của ngữ cảnh.
2.2.4.2. Định nghĩa ngữ cảnh (Context definition): bao gồm các thuộc tính sau:
Atomic: True nếu là ngữ cảnh nguyên tố.
Exception: Khơng hoặc nhiều “exception process”.
Processes: Khơng hoặc nhiều định nghĩa quy trình.
Properties: Khơng hoặc nhiều định nghĩa thuộc tính.
Schedule: Khơng hoặc nhiều định nghĩa kế hoạch.
Signals: Khơng hoặc nhiều định nghĩa tín hiệu.
Faults: Khơng hoặc nhiều bộ quản lý lỗi.
2.2.5. Thuộc tính (Property):
Một định nghĩa thuộc tính khai báo tên, kiểu và cung cấp một giá trị khởi tạo ban đầu (cĩ thể khơng cĩ). Một thể hiện thuộc tính giữ giá trị của thuộc tính.
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ột thể hiện ngữ cảnh khơng thể cĩ hai thể hiện thuộc tính cùng tên. Hai thể hiện thuộc tính cùng tên là khác nhau nếu chúng thuộc hai thể hiện ngữ cảnh khác nhau.
Thể hiện thuộc tính được khởi tạo khi một trong các điều sau xẩy ra:
• Định nghĩa thuộc tính khởi gán giá trị ban đầu khi thể hiện ngữ cảnh được
tạo.
• Định nghĩa thuộc tính được xác định bởi một thuộc tính tham chiếu
(referenceattribute) và một thể hiện thuộc tính với cùng định nghĩa tồn tại trong thể hiện ngữ cảnh cha khi một thể hiện ngữ cảnh được tạo. Thể hiện thuộc tính sẽ cĩ cùng giá trị với thể hiện thuộc tính mà nĩ được tham chiếu.
• Một giá trị được gán đầu tiên từ bất kỳ cơng việc nào thực hiện trong thể