Tiến trình nghiệp vụ

Một phần của tài liệu Nghiên cứu kiến trúc hướng dịch vụ và đối tượng - 6 docx (Trang 25 - 27)

• Partner links: mô tả mối quan hệ giữa hai dịch vụ (bản thân tiến trình cũng có thể coi như là một dịch vụ).

• Partners: các thực thể tham gia vào tiến trình (các dịch vụ và đối tượng sử dụng tiến trình).

• Varibles: là các đối tượng để lưu dữ liệu trong quá trình xử lý.

• Correlation sets: một tập các dữ liệu mà nhận diện duy nhất một thể hiện tiến trình. Tại các thời điểm khác nhau của tiến trình, các correlation sets khác nhau vẫn có thể dùng đểđặc trưng cho cùng một tiến trình.

• Fault handlers: mô tả cách xử lý của tiến trình khi có lỗi xảy ra.

• Compensation handlers: mô tả cách quay ngược một xử lý đã được thực hiện và hoàn thành.

• Event handlers: xử lý khi có các thông điệp gửi đến hay khi có một biến cố thời gian.

• Activity: các xử lý, một xử lý có thể chứa các xử lý khác.

Điu phi yêu cu

Mỗi tiến trình phải có ít nhất một xử lý kích hoạt. Một thể hiện của tiến trình được tạo ra khi một trong các xử lý kích hoạt được kích hoạt, hoặc là bởi các thông điệp được gửi đến, hoặc là bởi các biến cố thời gian (Alarm) của <pick>.

Engine sẽ chuyển các thông điệp gửi đến đúng thể hiện của tiến trình. Nếu có dữ liệu correlation, engine sẽ cố gắng tìm đúng thể hiện có dữ liệu correlation phù hợp và chuyển thông điệp cho thể hiện đó. Nếu thông điệp đó không có dữ liệu correlation và engine tìm thấy một xử lý kích hoạt thích hợp thì nó sẽ tạo thể hiện của tiến trình đó.

Hình 7-7 – Sơđồđiều phối thông điệp của engine

Hàng đợi các đối tượng ch nhn thông đip

Hàng đợi này sẽ chứa các xử lý chờ nhận thông điệp hiện đang được thực thi của tất cả các thể hiện tiến trình. Các xử lý chờ nhận thông điệp này đều chứa một xử lý <onMessage> như một phần của <pick> hay của một trình xử lý sự kiện (event handler). Một hành động chờ nhận thông điệp được gọi là đang thực thi khi nó được “cha” của nó (scope, flow, sequence…) đưa vào hàng đợi nhưng vẫn chưa nhận được thông điệp mà nó cần.

Hàng đợi này cũng chứa những thông điệp từ bên ngoài gửi đến nhưng chưa tìm thấy một xử lý chờ nhận thông điệp thích hợp để chuyển đến. Các thông điệp này sẽđược xếp trong hàng đợi cho đến khi hết thời gian cho phép (time-out). Thời gian time-out này do engine qui định trong tập tin cấu hình (UnmatchedReceiveTimeout).

Nếu một tiến trình đưa vào hàng đợi một xử lý giống như là receive, thì xử lý này sẽ đợi cho đến khi dữ liệu thích hợp gửi đến hay cho đến khi tiến trình đó kết thúc (có thể là do lỗi hay do một xử lý <terminate>). Các xử lý <picks> thì hơi khác: <onMessage> hay <onAlarm> đầu tiên nào mà được kích hoạt thì ngay lập tức trạng

Một phần của tài liệu Nghiên cứu kiến trúc hướng dịch vụ và đối tượng - 6 docx (Trang 25 - 27)