Chương 2 Kiến thức nền tảng
3.4. Thể thức tương tác tương tranh ràng buộc thời gian
3.4.1. Thể thức tương tác
Thể thức tương tác là một trong những phần quan trọng nhất trong mơ hình thành phần phần mềm, đã có rất nhiều cơng trình nghiên cứu về chủ đề này [15,51,53,55,94,95]. Các nghiên cứu đã đề cập đến những chủ đề khác nhau chẳng hạn như thể thức tương tác, hợp đồng, quan hệ đầu vào đầu ra của giao diện thành phần, tính đồng bộ và bất đồng bộ. Tuy nhiên, các kỹ thuật này không trực quan, không đủ mạnh để đặc tả thể thức tương tác các thành phần thời gian thực.
Một thể thức tương tác được đặc tả trong thành phần phần mềm là một tiền điều kiện cho thứ tự lời gọi các dịch vụ trong thành phần đó. Khi mơi trường muốn sử dụng các dịch vụ trong thành phần phần mềm, chuỗi hành vi của môi trường phải tuân thủ thể thức của thành phần phần mềm. Trong
hệ thống thời gian thực, khi một dịch vụ được gọi thì cần một khoảng thời gian để thực thi. Nếu các dịch vụ bị gọi q dày hệ thống có thể khơng đáp ứng được và có thể gây lỗi. Bởi vậy, cần phải đặc tả khoảng thời gian tối thiểu giữa hai lời gọi liên tiếp cho những dịch vụ cần thời gian thực thi. Một khả năng nữa cần phải xem xét khi đặc tả loại ràng buộc thời gian này đó là các thành phần phần mềm cung cấp các dịch vụ theo cách song song. Trong trường hợp này các ràng buộc thời gian không áp dụng cho các dịch vụ tương tranh. Chúng ta xét một ví dụ sau:
Ví dụ 3.1. Cho một hệ thống điều tiết khơng khí và nhiệt độ được minh họa như trong Hình 3.2. Hệ thống này có hai khối điều khiển cảm biến 1, ký hiệu
(KĐKCB1), khối điều khiển cảm biến 2, ký hiệu (KĐKCB2), khối điều khiển
thiết bị 1, ký hiệu (KĐKT B1), khối điều khiển thiết bị 2, ký hiệu (KĐKT B2), khối điều khiển thiết bị 3, ký hiệu (KĐKT B3), đóng vai trị là các thành phần
phần mềm và khối điều khiển trung tâm, ký hiệu (KĐKT T), đóng vai trị là
mơi trường của các thành phần này. Các cảm biến đo thông tin của môi trường lần lượt viết tắt tương ứng A: áp suất, Đ: độ ẩm, N: nhiệt độ, và tên các thiết bị điều chỉnh nhiệt độ, gió và độ ẩm được viết tắt tương ứng Nh: nhiệt độ, Gi: gió, Đâ: độ ẩm. Dãy hành động của KĐKCB1 và KĐKCB2 được minh họa bằng biểu thức chính quy dưới đây.
(S1(A1Đ1N1)∗F1)∗, (S2(A21Đ21N21)∗F2)∗, (S2(A22Đ22N22)∗F2)∗, và các dãy hành động thuộc KĐKT B1, KĐKT B2, KĐKT B3 như sau:
(SB1(N h1Gi1Đˆa1)∗FB1)∗, (SB2(N h2Gi2Đˆa2)∗FB2)∗, (SB3(N h3Gi3Đˆa3)∗FB3)∗ Khối ĐK trung tâm Cảm biến A21, Đ21, N21 Cảm biến A1, Đ1, N1 Vị trí 1 Vị trí 2 KĐKCB2 Thiết bị Nh1, Gi1, Đâ1 Thiết bị Nh2, Gi2, Đâ2 Thiết bị Nh3, Gi3, Đâ3 Vị trí 4 Vị trí 5 Vị trí 6 KĐKCB1 KĐKTB1 KĐKTB2 KĐKTB3 Cảm biến A22, Đ22, N22 Vị trí 3
Khối KĐKTT gửi một chuỗi yêu cầu ω = (S1S2A1A21A22Đ1N1Đ21Đ22F1N21N22F2) cho khối cảm biến KĐKCB1 và KĐKCB2. Câu hỏi đặt ra là liệu các khối cảm biến KĐKCB1 và KĐKCB2 có đáp ứng được yêu cầu của KĐKT T hay khơng? tức là ω có thỏa thể thức của khối KĐKCB1 và KĐKCB2 hay không? Chuỗi ω thỏa thể thức của KĐKCB1 và KĐKCB2 vì nó thỏa đối với phép chiếu chuỗi ω trên từng bảng chữ cái của nhóm cảm biến. Vấn đề này được làm sáng tỏ trong các ví dụ tiếp theo. Ký hiệu S1, S2 và F1, F2 tương ứng với trạng thái bắt đầu và trạng thái kết thúc của KĐKCB1 và KĐKCB2.
Để khái quát hóa, đặt Σi, i = 1, k, là bảng chữ cái biểu diễn tên của một nhóm các dịch vụ trong một thành phần phần mềmC, k ∈ N. ĐặtR≥0 là tập số thực không âm biểu diễn miền thời gian. Đặt Ω = Ski=1Σi là tập tất cả các dịch vụ của thành phần C cung cấp. Lý thuyết này quy định các dịch vụ trong cùng bảng chữ cái Σi thực thi tuần tự, còn các dịch vụ trong các bảng chữ cái khác nhau thì được phép thực thi song song. Với mỗi Σi, các dịch vụ có thể trùng với các dịch vụ ở bảng chữ cái khác nhưng chúng không chứa nhau. Tức là, Σi là tập cực đại các dịch vụ cần để thực thi một cách tuần tự. Khi k = 1 thì khơng có sự tương tranh trong thành phần phần mềm. Mỗi dịch vụ trong Ω cần một khoảng thời gian để thực thi, được xác định bằng ánh xạ δ : Ω 7→ R≥0. Do đó, một dịch vụ a∈ Ω cần tối thiểu δ(a) đơn vị thời gian để hoàn thành nhiệm vụ.
Một thể thức đặc tả một ràng buộc trên thứ tự thời gian của các dịch vụ trong một bảng chữ cái thứ Σi riêng rẽ và điều này được mơ hình hóa một cách hiệu quả bằng biểu thức chính quy Ei trên bảng chữ cái Σi.
Định nghĩa 3.1 (Thể thức tương tác). Một thể thức tương tác π là một bộ
h(Σ1,E1), . . . ,(Σk,Ek), δi. Trong đó δ : Ω →R≥0, và với mọi i = 1, k, Ei là biểu thức chính quy trên bảng chữ cái Σi, Ω =Ski=1Σi.
Ví dụ 3.2. Ví dụ này minh họa thể thức tương tác của các thành phần phần mềm trong Ví dụ 3.1. Đặt Ωs1 = {S1, A1,Đ1, N1, F1} và πs1 tương ứng với tập các dịch vụ và thể thức của khối KĐKCB1. Đặt Ωs2 =
{S2, A21,Đ21, N21, A22,Đ22, N22, F2} và πs2 tương ứng với tập các dịch vụ và thể thức của khối KĐKCB2.
Đặt ΩB1 = {SB1, N h1, Gi1,Đˆa1, FB1} và πB1 tương ứng với tập các dịch vụ và thể thức của khối KĐKT B1. Đặt ΩB2 ={SB2, N h2, Gi2,Đˆa2, FB2} và πB2 tương ứng với tập các dịch vụ và thể thức của khối KĐKT B1.
Đặt ΩB3 ={SB3, N h3, Gi3,Đˆa3, FB3} và πB3 tương ứng với tập các dịch vụ và thể thức của khối KĐKT B1.
(i) Ta có thể thức πs1 của KĐKCB1 như sau: πs1 =h(Σs1,Es1), δs1i, trong đó
(Σs1,Es1) = ({S1, A1,Đ1, N1, F1}, pref(S1(A1Đ1N1)∗F1)∗. (ii) Ta có thể thức πs2 của KĐKCB2 như sau:
πs2 =h(Σs21,Es21),(Σs22,Es22), δs2i, trong đó
(Σs21,Es21) = ({S2, A21,Đ21, N21, F2}, pref((S2(A21Đ21N21)∗F2)∗), (Σs22,Es22) = ({S2, A22,Đ22, N22, F2}, pref((S2(A22Đ22N22)∗F2)∗).
(iii) Thể thức πB1 của KĐKT B1 như sau: πB1 =h(ΣB1,EB1), δB1i, trong đó
(ΣB1,EB1) = ({SB1, N h1, Gi1,Đˆa1, FB1}, pref((SB1(N h1Gi1Đˆa1)∗FB1)∗),
(iv) Thể thức πB2 của KĐKT B2 như sau: πB2 =h(ΣB2,EB2), δB1i, trong đó
(ΣB2,EB2) = ({SB2, N h2, Gi2,Đˆa2, FB2}, pref((SB2(N h2Gi2Đˆa2)∗FB2)∗),
(v) Thể thức πB3 của KĐKT B3 như sau: πB3 =h(ΣB3,EB3), δB3i, trong đó
(ΣB3,EB3) = ({SB3, N h3, Gi3,Đˆa3, FB3}, pref((SB3(N h3Gi3Đˆa3)∗FB3)∗).
Ở đây, δ(S1) = δ(F1) = δ(S2) = δ(F2) = 1, δ(SB1) = δ(FB1) = δ(SB2) =
δ(FB2) = δ(SB3) = δ(FB3) = 1 đơn vị thời gian, nghĩa là thời gian khởi động và thời gian kết thúc của các bộ điều khiển được giả định là 1 đơn vị thời gian. δ(χs) = 5, χs là các dịch vụ còn lại trong πSi, i = 1,2. δ(χB) = 5, χBj là các dịch vụ còn lại trong πBj, j=1,2,3.
Như vậy, Ví dụ 3.2 đã minh họa thể thức tương tác trong các thành phần phần mềm của hệ thống thời gian thực trong Ví dụ 3.1. Ký hiệupref biểu diễn biểu thức chính quy tiền tố đóng (pref ix−closed) là biểu thức chính quy được
biểu diễn bằng ơtơmát với trạng thái bất kỳ là trạng thái kết thúc.
Khi một hệ thống hoạt động, các dịch vụ phải tuân thủ các thể thức của thành phần phần mềm của nó, tức là tuân thủ các yếu tố về thứ tự thực hiện
và ràng buộc thời gian. Để biểu diễn ngữ nghĩa của các hoạt động này, luận án sử dụng ngôn ngữ thời gian và ơtơmát thời gian làm mơ hình của hệ thống. Do đó, ngơn ngữ thời gian biểu diễn các chuỗi hành vi trong hệ thống này.
Một từ thời gian trên bảng chữ cái Ω là một chuỗi ω = (a1, τ1)(a2, τ2). . .(an, τn) trong đó τi−1 ≤ τi, i = 1, n, τ0 = 0. Dãy hành vi này thể hiện hành động thứ ai xảy ra tại thời điểm thứ τi. Cho một thể thức π
như Định nghĩa 3.1. Đặt untimed(ω) = (a1a2. . . an), với mỗi từ ζ ∈Ω∗ được ký hiệu bởi ζ|Σi là phép chiếu của ζ trên Σi, tức là một từ nhận được từ ζ bằng cách loại bỏ các ký tự không thuộc Σi. Đặt L(E) là ngơn ngữ sinh bởi biểu thức chính quy E. Sự tuân thủ thể thức tương tác của một thành phần phần mềm được khái quát trong Định nghĩa 3.2.
Định nghĩa 3.2 (Sự tuân thủ thể thức). Một từ thời gian ω = (a1, τ1)(a2, τ2). . .(an, τn) tuân thủ thể thức π, ký hiệu bởi ω |= π, khi và chỉ khi với mọi i ≤k thì các điều sau đúng.
(i) untimed(ω)|Σi ∈ L(Ei), và
(ii) đặt untimed(ω) =aj1aj2. . . ajmi, thì τjl+1−τjl ≥ δ(ajl) với mọi l < mi.
Ví dụ 3.3. Giả sử KĐKTT gửi một chuỗi yêu cầu các dịch vụ ω = (S1,0)(S2,0)(A1,5)(A21,6)(A22,11)(Đ1,11)(N1,16)(Đ21,17)(Đ22,18)(F1,22) (N21,22)(N22,25)(F2,30) cho các khối cảm biếnKĐKCB1 vàKĐKCB2. Chúng ta kiểm tra xem KĐKCB1 và KĐKCB2 có đáp ứng được yêu cầu này hay không? Theo Định nghĩa 3.2, ta có
(i) untimed(ω)|Σs
1 = S1A1Đ1N1F1 ∈ L(Es1), và
(ii) untimed(ω) =S1, A1,Đ1, N1, F1, thì τjl+1 −τjl ≥δ(ajl) với mọi l < mi.
t 0 5 6 11 16 17 18 22 25 30 S1 S2 A1 Đ1 N1 F1 A21 Đ21 N21 F2 A22 Đ22 N22 KĐKCB1 KĐKCB2
Hình 3.3: Minh họa chuỗi hành động ω trên trục thời gian.
Để thuận tiện cho việc phân tích các chuỗi hành động, ví dụ này coi đơn vị thời gian tính theo giây. Tại hành động S1, thời điểm khởi tạo τS1 = 0,
Như vậy hệ thống đã khởi tạo xong và sẵn sàng cho hành động A1 hoạt động. Đến giây thứ 11 bắt đầu gọi hành động Đ1, τĐ1 − τA1 = 6 ≥ δ(A1) = 5, với
cách tương tự chúng ta có thể tính cho các dịch vụ cịn lại. Vậy, chuỗi ω = (S1,0)(S2,0)(A1,5)(A21,6)(A22,11)(Đ1,11)(N1,16)(Đ21,17)(Đ22,18)(F1,22) (N21,22)(N22,25)(F2,30) tuân thủ thể thức của KĐKCB1 và KĐKCB2. Nếu hành động Đ1 xảy ra tại thời điểm τĐ1 = 9, ta có τĐ1−τA1 = 4≤ δ(A1) = 5, thì
chuỗi ω đã cho vi phạm thể thức πs1 vì KĐKCB1 khơng đáp ứng kịp u cầu.
Thể thức π là một tập các cặp (Σ,E). Do đó, theo lý thuyết ngơn ngữ hình thức, biểu thức chính quy và ngơn ngữ chính quy đóng với phép hợp, phép giao và phép lấy phần bù. Trong phần này, luận án kế thừa tồn bộ những lý thuyết đó để phục vụ cho việc biểu diễn các hành vi của thành phần phần mềm trong các trường hợp riêng lẻ cũng như khi kết hợp chúng với nhau, riêng trường hợp mơ hình hóa các hoạt động song song, tương tranh của các thành phần với nhau, các phép toán sẽ được định nghĩa riêng rẽ.
Trong trường hợp ghép song song các giao diện thành phần, giả sử cho hai thành phần phần mềm C1 và C2 với hai chuỗi hành vi tương ứng là ω1 và ω2. Thành phần phần mềm C1 hoạt động song song với thành phần phần mềm C2, thì thể thức của thành phần phần mềm ghép được ký hiệu là π1||π2, và chuỗi thực thi ω1||ω2 biểu diễn tiến trình hoạt động song song của hai thành phần phần mềm này và phải thỏa thể thức π1||π2, ký hiệu bởi ω1||ω2 |= π1||π2. Luận án định nghĩa phép toán ghép song song của hai thể thức theo Định nghĩa 3.3.
Định nghĩa 3.3 (Ghép song song hai thể thức). Cho hai thể thức π =
h(Σ1,E1), . . . ,(Σk,Ek), δi và π0 = h(Σ10,E01), . . . ,(Σ0h,E0h), δ0i. Phép ghép song
song của π với π0 là một thể thức π||, ký hiệu π|| = π||π0, π|| = h(Σi∪Σ0j,Ei∪
E0j), δ||i, i = 1, k, j = 1, h, trong đó δ|| : S
i=1,k,j=1,h(Σi ∪Σ0j) 7→ R≥0, tức là với mọi từ thời gian ω|| =ω||ω0, ω |=π và ω0 |=π0 thì ω|| |=π||.
Trong Ví dụ 3.3, KĐKCB1 và KĐKCB2 thực thi song với nhau. Trong
KĐKCB2 cũng có hai tiến trình thực thi song song.
Trong trường hợp ghép nối tiếp, thành phần phần mềm C2 ghép nối tiếp với thành phần phần mềm C1 thì chuỗi thực thi này, ký hiệu là ω1◦ω2, phải lần lượt tuân thủ thể thức π1 và π2 một cách tương ứng, ký hiệu ω1◦ω2 |=π1◦π2. Phép ghép nối tiếp của hai thể thức được định nghĩa một cách hình thức trong Định nghĩa 3.4 sau đây:
Định nghĩa 3.4 (Ghép nối tiếp hai thể thức). Cho hai thể thức π =
h(Σ1,E1), . . . ,(Σk,Ek), δi và π0 = h(Σ10,E01), . . . ,(Σ0h,E0h), δ0i. Phép ghép nối tiếp
của π0 với π là một thể thức π◦, ký hiệu π◦ =π◦π0, π◦ =h(Σi∪Σ0j,Ei.E0j), δ◦i,
i = 1, k, j = 1, h, trong đóδ◦ : S
i=1,k,j=1,h(Σi∪Σ0j) 7→ R≥0, tức là với mọi từ thời gian ω◦ =ω◦ω0, ω |=π và ω0 |=π0 thì ω◦ |=π◦.
Định nghĩa này cho biết, khi hai thành phần phần mềm ghép nối tiếp với nhau thì thể thức tương tác của chúng cũng được ghép nối tiếp. Các dãy thực thi của thành phần phần mềm ghép phải thỏa thể thức tương tác này. Tức là, chuỗi hành động ω◦ω0 có ω thỏa thể thức π và ω0 thỏa π0, ánh xạ δ◦ cho biết ràng buộc thời gian tĩnh cho mỗi hành động trong bảng chữ cái Σi∪Σ0j.
Ví dụ 3.4. Ví dụ này minh họa phép ghép nối tiếp KĐKCB1 với KĐKT T. KĐKT T gửi một chuỗi yêu cầu lấy thơng tin từ KĐKCB1 sau đó gửi tiếp chuỗi u cầu cho KĐKT B1. Giả sử KĐKT T gửi chuỗi yêu cầu ω1 = (S1,0)(A1,5)(Đ1,11)(N1,16)(F1,22) cho KĐKCB1 sau đó gửi chuỗi yêu cầu ω2 = (SB1,25)(N h1,32)(Gi1,37)(Đâ1,42)(FB1,50)
cho KĐKT B1. Theo Định nghĩa 3.4, π◦ = πs1 ◦ πB1 gồm các thành phần sau Σ◦ = Σs1 ◦ ΣB1 = {S1, A1,Đ1, N1, F1, SB1, N h1, Gi1,Đˆa1, FB1},
E◦ = Es1 ◦ EB1 = ((S1(A1Đ1N1)∗F1)∗).((SB1(N h1Gi1Đˆa1)∗FB1)∗)
và δ◦ : (Σs1 ∪ ΣB1) 7→ R≥0. Chuỗi ω◦ = ω1 ◦ ω2 = (S1,0)(A1,5)(Đ1,11)(N1,16)(F1,22)(SB1,25)(N h1,32)(Gi1,37)(Đâ1,42)(FB1,50).
Khi kiểm tra, chúng ta thấy ω◦ tuẩn thủ thể thức tương tác π◦.