4. MÔ HÌNH THÀNH PHẦN THỜI GIAN THỰ C
4.3. Cách ợp đồng thời gian thực
Các hợp đồng thời gian thực được định nghĩa theo cùng một cách như đối với các hợp đồng trong phần trước. Các định nghĩa của giao diện được mở rộng bằng cách cho phép của các khai báo của tài nguyên được nhóm lại vào trong tài nguyên có thể tiêu thụ được và tài nguyên không thể tiêu thụ được. Những bất biến hợp đồng giao diện phải mở rộng để mô tả những những sự ràng buộc trên tài nguyên. Trong các thiết kế có nhãn ràng buộc về thời gian của hợp đồng thời gian thực được sử dụng thay vì các thiết kế. Một thành phần thời gian thực là một cài đặt của một hợp đồng thời gian thực. Ta đưa ra đây một ví dụ về hệ thống thành phần thời gian thực dựa trên mô hình đã được nghiên cứu ở trên.
Ta có ví dụ minh họa sau đây.
Ở đây, ngưỡng tài nguyên đặc tính chỉ rõ bộ nhớ thiết lập cho thành phần, và
s.event chỉ rõ tín hiệu từ lập lịch định kì gửi đến tiến trình. Ta sử dụng biểu thức chính quy có nhãn rang buộc về thời gian để biểu diễn hành vi có ràng buộc về thời gian của tiến trình. Mô hình hệ thống thành phần này là một bộ điều khiển định kì thu thập tín hiệu điều khiển thông qua tác tử dựa trên dữ liệu chúng cảm nhận được. Thời gian định kì của vòng điều khiển là 100ms.
component Actuator1{
provided feature int p1;
resource int threshold = 20;
provided method{
name getdata(),
specification true • p10 = portvalue ∧ p10 > 0 ∧ dur = 0 };
provided method{
name execute(),
specification p1 = valid ˫ (actionresult ∧ dur = 30) };
};
component Actuator2{
provided feature int p1;
inv p1 > 0;
resource int threshold = 30;
provided method{
name getdata(),
specification true ˫ p10 = portvalue ∧ p10 > 0 ∧ dur = 0 };
provided method{
name execute(),
specification p1 = valid ˫ (actionresult ∧ dur = 30) };
};
active component Composition{
name main,
specification
((s.event; actuator1.execute()||actuator2.execute();
actuator1.getdata; actuator2.getdata; ), dur ≤ 100)∗
}