InterLay sẽ tương tác với các lớp cao hơn thông qua hệ thống gọi của SAP-1 và SAP-2.
3.4.2.1 Truy vấn giá trị tham số thời gian thực
Với các tham số thời gian thực, ứng dụng có thể truy vấn trực tiếp Informer thông qua các giao diện chuẩn.
Hình 3.13:Truy vấn giá trị bởi các ứng dụng người dùng
Bước 1: Các ứng dụng gọi cổng net_get_param() với ID tham số Bước 2: Informer gọi phương thức get() tương ứng với ID tham số
Bước 3: Informer trả về giá trị từ phương thức get() cho đối tượng gọi
3.4.2.2 Cập nhật giá trị tham số thời gian thực
Hình 3.14: Cập nhật giá trị bởi ứng dụng người dùng
Bước 1: Các ứng dụng gọi net_set_param() với ID tham số Bước 2: PE gọi phương thức update()
Bước 3: Enforcer thực hiện kiểm tra tính toàn vẹn cần thiết và gọi phương thức set() để cập nhật giá trị ID tham số
3.4.2.3 Gọi phương thức action()
Bước 1: Các ứng dụng gọi hàm net_invoke_action() với ID thao tác Bước 2: PE gọi phương thức execute()
Bước 3: Enforcer gọi hàm action() tương ứng với ID thao tác
3.4.2.4 Đăng ký sự kiện và thông báo sử dụng đầu nối NetLink
Hình 3.16 : Đăng ký sự kiện và thông báo (sử dụng cổng NetLink)
Bước 1: Hạt nhân đăng ký tập hợp giao thức cho sự kiện, và InterLay và các ứng dụng tạo ổ cắm NetLink với tập hợp giao thức thích hợp.
Bước 2: Sự kiện xảy ra
Bước 3: Chuỗi thông báo hỏi NetLink để gửi thông báo tới cổng NetLink trong hạt nhân
Bước 4: Thông điệp thông báo tới ổ cắm NetLink trong ứng dụng
Bước 5: Hàm gọi lại được đăng ký với cổng NetLink trong trong ứng dụng được gọi để xử lý sự kiện.
3.4.2.5 Đăng ký sự kiện và thông báo sử dụng các tín hiệu
Hình 3.17: Đăng ký sự kiện và thông báo (sử dụng các tín hiệu)
Bước 1: Các ứng dụng gọi hàm net_reg_event() cùng với ID sự kiện
Bước 2: PE cho phép yêu cầu và gọi phương thức event_registration() với ID quá trình Bước 3: Informer đặt ID quá trình trong phương thức notify() và đăng ký phương thức
notify() tới chuỗi thông báo
Bước 4: Sự kiện xảy ra
Bước 5: Chuỗi thông báo gọi phương thức notify() và gửi tín hiệu đến tất cả các ID quá trình chứa trong phương thức notify()