LTS đơn định

Một phần của tài liệu (LUẬN văn THẠC sĩ) nghiên cứu về mô hình hóa và kiểm tra tiến trình nghiệp vụ (Trang 28 - 32)

Định nghĩa 3: Phép ghép nối song song [7]

Phép ghép nối song song là một phép toán kết hợp hành vi của hai dịch vụ Web với nhau.

Ta có LTS M1, LTS M2, và P với M1 = (S1, A1, δ1, s01), M2 = (S2, A2, δ2, s02), P=<{π }, A, Ø, π}. Ký hiệu M1 || M2 được định nghĩa như sau:

- Nếu M1 = P hoặc M2 = Pthì M1 || M2 = P

- Nếu M1 và M2 ≠ P thì M1 || M2 = M = <S, A, δ, s0>. Trong đó: S = S1 x S2, A = A1 È A2, s0 = s01 x s02 và hàm δ được xác định như sau:

+ Với mọi (s1, a, s2) ∈δ1 và (s1’, a, s2’) ∈δ2 thì ((s1, s1’), a, (s2, s2’)) ∈δ. + Với (s1, a, s2) ∈δ1, a ∉A2 thì "q’ ∈ S2 ta có ((s1, s’), a, (s2, s’)) ∈δ. + Với (s1’, a, s2’) ∈δ2, a ∉A1 thì "q ∈ S1 ta có ((s, s1’), a, (s, s2’)) ∈δ.

Định nghĩa 4: LTS M là một LTS an toàn [7] nếu M đơn định và không chứa bất kỳ một trạng thái lỗi π.

Định nghĩa 5: Thuộc tính an toàn p [7] là một thuộc tính đảm bảo không có lỗi xảy ra trong quá trình thực thi hệ thống.

Định nghĩa 6: Dẫn xuất σ của hệ thống LTS [7] M = <S, A, δ, s0> là tập các hành động {a1, a2, …, an} với n hữu hạn. Tồn tại tập {s1, s2, …, si …, sn} (0 ≤ i ≤ n) sao cho (si- 1, ai, …, si) ∈ δ.

Định nghĩa 7: Ngôn ngữ của LTS M [7], được ký hiệu L(M) là tập tất cả các dẫn xuất của M

Định nghĩa 8: Một LTS M thỏa mãn thuộc tính p [7] khi và chỉ khi ∀ ∈ L(M). Ký hiệu M|=p.

Định nghĩa 9: LTS lỗi [7] của thuộc tính p = <S, Ap, δ, s0> là pe = (S ∪ {π}, Ap, δ’, s0) với δ’ = δ ∪ { (s, a, } | a ∈ Ap và ∄s’ ∈ S: (s, a, s’) ∈ }.

Để kiểm tra xem LTS M có thỏa mãn thuộc tính P hay không, kết quả của phép ghép nối M || được tính. Nếu kết quả có thể đạt đến trạng thái π thì M không thỏa mãn p, ngược lại thì M thỏa mãn p.

2.2.2. Ký pháp tiến trình hữu hạn trạng thái - Finite State Process(FSP)

Ký pháp tiến trình hữu hạn trạng thái - Finite State Process (FSP) [5] được tạo ra để mô tả các mô hình tiến trình. FSP có thể mô tả được những hành động, trạng thái của tiến trình.

LTS thường biểu diễn dưới dạng hình học. Tuy nhiên với LTS có số lượng trạng thái nhiều thì biểu diễn bằng LTS trở nên phức tạp. Do vậy ký pháp tiến trình hữu hạn trạng thái FSP được sử dụng để mô tả LTS, giúp biểu diễn các LTS có kích thước lớn, nhiều trạng thái.

a) Các thành phần cơ bản trong FSP:

Tiến trình:Tiến trình là biểu diễn của một trạng thái trong LTS. Tiến trình đại diện cho một thành phần được khởi chạy trong dịch vụ Web hoặc trạng thái của dịch vụ Web. Hành động: Trong FSP là biểu diễn của một hành động trong LTS. Hành động đại diện cho một tác động làm phát sinh hoặc chuyển trạng thái của một dịch vụ Web.

Action prefix ((a -> P)) [5]: Nếu x là một hành động và P là một tiến trình thì một action frefix (a -> P) mô tả một tiến trình trong đó các hành động x hoạt động đúng theo mô tả của tiến trình P[1].Tiến trình P phải viết hoa chữ cái đầu, hành động a viết bằng chữ cái thường.

Lựa chọn(|Choice) [5]: Nếu a, b là các hành động thì (a -> Q | b ->P) mô tả một tiến trình trong đó các hành động đầu tiên tham gia x hoặc y. Các hành động tiếp theo mô tả của Q nếu hành động đầu tiên xảy ra là a, các hành động tiếp theo hoạt động theo mô tả của P nếu hành động đầu tiên xảy ra là b.

Lập chỉ mục cho các quy trình và hành động (indexed process and actions): Khi mô hình các tiến trình và hành động có có những trường hợp những tiến trình và hành động đó có rất nhiều giá trị. Ta có thể gán nhãn cho các quy trình và hành động đó và lập chỉ mục cho chúng.

Tham số tiến trình (Process parameters): khi tiến trình và hành động có nhiều giá trị thì thay vì đánh chỉ mục thì chúng ta có thể tạo tham số để mô tả tiến trình bằng FSP được gọn hơn

Hành động được đảm bảo (Guarded Action): thường rất hữu dụng để định nghĩa các hành động cụ thể nhưng muốn xảy ra phải thỏa mãn một điều kiện nào đó.

b) Các phép toán

Kết hợp các tiến trình: Cú pháp như sau: ||P = (P1 || P2 || …|| Pn)

Tiến trình kết quả là tập các hành động của tiến trình

Thực thi theo điều kiện: Tiến trình P được định nghĩa theo cú pháp như sau: P = if cond then P1 else P2.

Tiến trình P1 sẽ được thực thi, nếu điều kiện cond đúng, tiến trình P2 thực hiện nếu cond sai.

c) Thuộc tính

Một thuộc tính P[1] định nghĩa một tiến trình chứa tập các hành vi dùng để kiểm tra xem hệ thống có thỏa mãn tập các hành vi này hay không. Thuộc tính P được khai báo bởi từ khóa property, theo sau là định nghĩa của một tiến trình

Ví dụ khai báo một thuộc tính như sau:

Chương 3. PHƯƠNG PHÁP CHUYỂN TỪ ĐẶC TẢ BPEL SANG KÝ PHÁP FSP

Ngôn ngữ thực thi tiến trình nghiệp vụ BPEL được sử dụng để định nghĩa các tiến trình nghiệp vụ thực thi trên dịch vụ Web. Nó là ngôn ngữ dùng để hỗ trợ phát triển các ứng dụng phức tạp, lớn đòi hỏi phải tổng hợp nhiều dịch vụ Web khác nhau. Một dịch vụ Web lớn với các chức năng phức tạp được tạo nên từ nhiều dịch vụ Web thành phần có thể được tạo ra thông qua việc định nghĩa tiến trình BPEL.

Trong quá trình phát triển phần mềm, lỗi phần mềm luôn tồn tại vì vậy cần phải được kiểm tra và sửa lỗi. Dịch vụ Web cũng cần phải được kiểm chứng để tìm và sửa lỗi. Đối với phần mềm thông thường, việc kiểm tra được thực hiện trực tiếp trên mã nguồn thông qua các phương pháp kiểm thử. Tuy nhiên việc kiếm chứng trực tiếp trên tiến trình BPEL là không khả thi. Do vậy mà tiến trình BPEL cần phải được chuyển sang một dạng ngôn ngữ hoặc ký pháp có thể kiểm chứng trực tiếp được. Và LTS là một giải pháp để có thể thực hiện được công việc này. Cho một thuộc tính đại diện cho luồng thực thi công việc của tiến trình BPEL được cung cấp để kiểm tra tính thỏa mãn của LTS được chuyển đổi từ tiến trình. Nếu LTS thỏa mãn thì tiến trình BPEL thỏa mãn luồng thực thi công việc. Ngược lại thì tiến trình BPEL không còn thỏa mãn luồng thực thi đó.

Việc kiểm chứng tự động LTS rất khó khăn. Ký pháp FSP dùng để đặc tả các LTS dưới dạng là ngôn ngữ ký hiệu, cho phép kiểm chứng tự động LTS một cách dễ dàng.

Vậy nên để có thể kiểm chứng tự động được tiến trình BPEL thì việc chuyển đổi tiến trình BPEL sang ký pháp tiến trình hữu hạn trạng thái FSP biểu diễn cho LTS tương ứng và tiến hành kiểm chứng trên phần mềm chuyển đổi.

Nội dung chương này sẽ trình bày chi tiết cách chuyển một số hoạt động trong tiến trình BPEL sang ký pháp tiến trình hữu hạn trạng thái FSP.

3.1. Hành động empty

Empty là hoạt động đặc biệt, nó không làm nhiệm vụ gì khi được gọi trong tiến trình BPEL.

Hành động empty được chuyển sang FSP theo công thức sau: Empty_variable = empty.name + “=(“ +empty.name + “->END).”

Với Empty_variable là tên biến chứa chuyển đổi FSP của hành động empty. Tên của tiến trình FSP được tạo bởi trường name của hành động empty. Trường name được sử dụng để tạo tên hành động FSP của tiến trình chuyển đổi.

LTS của hành động empty

Một phần của tài liệu (LUẬN văn THẠC sĩ) nghiên cứu về mô hình hóa và kiểm tra tiến trình nghiệp vụ (Trang 28 - 32)

Tải bản đầy đủ (PDF)

(55 trang)