CHƯƠNG 3 THIẾT KẾ MÔ HÌNH TRIỂN KHAI
3.2 Hướng triển khai vi dịch vụ thiết bị khi quản lý nhiều loại thiết bị:
Trong một vi dịch vụ thiết bị có thể sẽ phải quản lý nhiều loại thiết bị (tương ứng với nhiều hồ sơ thiết bị), mỗi loại thiết bị bao gồm nhiều tài nguyên thiết bị (device resource) bên trong, thì khi đó, việc xử lý tất cả chúng trong chương trình chính của vi dịch vụ sẽ trở nên phức tạp, cồng kềnh, sẽ phải sử dụng các câu lệnh kiểm tra trường hợp (trong lập trình thường dùng “switch - case” hoặc “if - else”) với rất nhiều trường hợp cần xét. Ví dụ trong Hình 3.2 bên dưới (xét các hàm gọi lại và xử lý lệnh), giả sử một dịch vụ thiết bị quản lý nhiều thiết bị loại A, B... và mỗi loại có nhiều tài nguyên thiết bị A1,A2... An, B1, B2... Bn... thì các hàm trong chương trình chính sẽ phải xử lý nhiều trường hợp. [8]
Hình 3.2 Xử lý nhiều loại thiết bị trong chương trình chính
Về mặt lập trình, hướng giải quyết được đề xuất nhằm tăng tính hiệu quả, đơn giản cho phát triển sau này là sẽ mơ-đun hóa từng loại thiết bị thành các thư viện, gói riêng; và bên trong chương trình chính của vi dịch vụ thiết bị, chỉ cần thêm các thư viện đó vào. Minh họa ở Hình 3.4 bên dưới (xét các hàm gọi lại và xử lý lệnh, các hàm khác tương tự).
24
Hình 3.3 Triển khai dịch vụ thiết bị với gói các mơ-đun cho từng loại thiết bị
Trong gói tạm đặt tên là quản lý thiết bị (Device Manager), chứa các mô-đun của từng loại thiết bị, người phát triển sẽ xây dựng các hàm xử lý giống các hàm mà chương trình chính của vi dịch vụ triển khai, để các hàm trong chương trình chính của vi dịch vụ sẽ gọi đến các hàm tương ứng trong gói.
Ưu điểm của cách triển khai này là giúp cho việc triển khai, phát triển chức năng cho từng loại thiết bị độc lập với vi dịch vụ thiết bị và với các loại thiết bị khác. Khi có thay đổi về chức năng hay cách xử lý của một loại thiết bị nào đó, sẽ ít hoặc có thể là khơng phải thay đổi chương trình chính ở vi dịch vụ thiết bị đang sử dụng gói đó. [8]